1 2014-12-11 Eric Botcazou <ebotcazou@adacore.com>
3 * doc/md.texi (Insn Lengths): Fix description of (pc).
5 2014-12-11 Jan Hubicka <hubicka@ucw.cz>
8 * passes.c (execute_todo): Update call of remove_unreachable_nodes.
9 * ipa-chkp.c (chkp_produce_thunks): Use TODO_remove_functions.
10 * cgraphunit.c (symbol_table::process_new_functions): Add
11 IPA_SSA_AFTER_INLINING.
12 (ipa_passes): Update call of remove_unreachable_nodes.
13 (symbol_table::compile): Remove call of remove_unreachable_nodes.
14 * ipa-inline.c (inline_small_functions): Do not ICE with
16 (ipa_inline): Update symtab->state; fix formatting
17 update call of remove_unreachable_nodes.
18 * passes.c (execute_todo): Update call of remove_unreachable_nodes.
19 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
20 * cgraph.h (enum symtab_state): Add IPA_SSA_AFTER_INLINING.
21 (remove_unreachable_nodes): Update.
22 * ipa.c (process_references): Keep external references only
24 (walk_polymorphic_call_targets): Keep possible polymorphic call
25 target only when devirtualizing.
26 (symbol_table::remove_unreachable_nodes): Remove BEFORE_INLINING_P
28 (ipa_single_use): Update comment.
29 * ipa-pure-const.c (cdtor_p): New function.
30 (propagate_pure_const): Track if some cdtor was turned pure/const.
31 (execute): Return TODO_remove_functions if needed.
32 * ipa-comdats.c (ipa_comdats): Update comment.
34 2014-12-11 Aldy Hernandez <aldyh@redhat.com>
36 * dwarf2out.c (gen_lexical_block_die): Remove unused `depth'
38 (gen_inlined_subroutine_die): Same.
39 (gen_block_die): Same.
40 (decls_for_scope): Same.
42 2014-12-11 Renlin Li <renlin.li@arm.com>
44 * config/aarch64/aarch64-cores.def: Change all AARCH64_FL_FPSIMD to
46 * config/aarch64/aarch64.c (all_cores): Use FLAGS from
47 aarch64-cores.def file only.
49 2014-12-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
52 * diagnostic.c (diagnostic_action_after_output): Make it extern.
53 Take diagnostic_t argument instead of diagnostic_info. Count also
54 DK_WERROR towards max_errors.
55 (diagnostic_report_diagnostic): Update call according to the above.
56 (error_recursion): Likewise.
57 * diagnostic.h (diagnostic_action_after_output): Declare.
58 * pretty-print.c (pp_formatted_text_data): Delete.
59 (pp_append_r): Call output_buffer_append_r.
60 (pp_formatted_text): Call output_buffer_formatted_text.
61 (pp_last_position_in_text): Call output_buffer_last_position_in_text.
62 * pretty-print.h (output_buffer_formatted_text): New.
63 (output_buffer_append_r): New.
64 (output_buffer_last_position_in_text): New.
66 2014-12-11 Kyrylo Tkachov kyrylo.tkachov@arm.com
68 * config/aarch64/aarch64.c (aarch64_parse_extension): Update error
69 message to say +no only when removing extension.
71 2014-12-11 Andrew MacLeod <amacleod@redhat.com>
73 * config/tilepro/gen-mul-tables.cc: Add insn-codes.h to include list
74 for generator file. Add comment indicating it is a generated file.
75 * config/tilepro/mul-tables.c: Update generated file.
76 * config/tilegx/mul-tables.c: Likewise.
78 2014-12-11 Segher Boessenkool <segher@kernel.crashing.org>
80 * combine.c (try_combine): Do not allow combining a PARALLEL I2
81 with a register move I3 if that I2 is an asm.
83 2014-12-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
85 * config/arm/arm_neon.h (vrndqn_f32): Rename to...
86 (vrndnq_f32): ... this.
87 (vrndqa_f32): Rename to...
88 (vrndaq_f32): ... this.
89 (vrndqp_f32): Rename to...
90 (vrndpq_f32): ... this.
91 (vrndqm_f32): Rename to...
92 (vrndmq_f32): ... this.
93 (vrndx_f32): New intrinsic.
94 (vrndxq_f32): Likewise.
96 2014-12-11 Marek Polacek <polacek@redhat.com>
98 * fold-const.c (fold_negate_expr): Add ANY_INTEGRAL_TYPE_P check.
99 (extract_muldiv_1): Likewise.
100 (maybe_canonicalize_comparison_1): Likewise.
101 (fold_comparison): Likewise.
102 (tree_binary_nonnegative_warnv_p): Likewise.
103 (tree_binary_nonzero_warnv_p): Likewise.
104 * gimple-ssa-strength-reduction.c (legal_cast_p_1): Likewise.
105 * tree-scalar-evolution.c (simple_iv): Likewise.
106 (scev_const_prop): Likewise.
107 * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
108 * tree-vect-generic.c (expand_vector_operation): Likewise.
109 * tree.h (ANY_INTEGRAL_TYPE_CHECK): Define.
110 (ANY_INTEGRAL_TYPE_P): Define.
111 (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED, TYPE_OVERFLOW_TRAPS):
112 Add ANY_INTEGRAL_TYPE_CHECK.
113 (any_integral_type_check): New function.
115 2014-12-11 Tobias Burnus <burnus@net-b.de>
116 Manuel López-Ibáñez <manu@gcc.gnu.org>
118 * error.c (gfc_get_terminal_width): Renamed from
119 get_terminal_width and use same-named common function.
120 (gfc_error_init_1): Update call.
122 2014-12-10 Aldy Hernandez <aldyh@redhat.com>
124 * gdbhooks.py (class DWDieRefPrinter): New class.
125 (build_pretty_printer): Register dw_die_ref's.
127 2014-12-10 Ilya Tocar <ilya.tocar@intel.com>
129 * config.gcc: Support "knl".
130 * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knl".
131 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
133 * config/i386/i386.c (m_KNL): Define.
134 (processor_target_table): Add "knl".
136 (ix86_issue_rate): Add PROCESSOR_KNL.
137 (ix86_adjust_cost): Ditto.
138 (ia32_multipass_dfa_lookahead): Ditto.
139 (get_builtin_code_for_version): Handle "knl".
140 (fold_builtin_cpu): Ditto.
141 * config/i386/i386.h (TARGET_KNL): Define.
142 (processor_type): Add PROCESSOR_KNL.
143 * config/i386/i386.md (attr "cpu"): Add knl.
144 * config/i386/x86-tune.def: Add m_KNL.
146 2014-12-10 Jan Hubicka <hubicka@ucw.cz>
148 * doc/invoke.texi: (-devirtualize-at-ltrans): Document.
149 * lto-cgraph.c (lto_output_varpool_node): Mark initializer as removed
150 when it is not streamed to the given ltrans.
151 (compute_ltrans_boundary): Make code adding all polymorphic
152 call targets conditional with !flag_wpa || flag_ltrans_devirtualize.
153 * common.opt (fdevirtualize-at-ltrans): New flag.
155 2014-12-10 Ilya Verbin <ilya.verbin@intel.com>
157 * varpool.c (varpool_node::get_create): Force output of vars with
158 "omp declare target" attribute.
160 2014-12-10 Marc Glisse <marc.glisse@inria.fr>
162 * real.h (HONOR_NANS): Replace macro with 3 overloaded declarations.
163 * real.c: Include rtl.h and options.h.
164 (HONOR_NANS): Define three overloads.
165 * builtins.c (fold_builtin_classify, fold_builtin_unordered_cmp):
166 Simplify argument of HONOR_NANS.
167 * fold-const.c (combine_comparisons, fold_truth_not_expr,
168 fold_cond_expr_with_comparison, merge_truthop_with_opposite_arm,
169 fold_comparison, fold_binary_loc): Likewise.
170 * ifcvt.c (noce_try_move, noce_try_minmax): Likewise.
171 * ipa-inline-analysis.c (add_clause,
172 set_cond_stmt_execution_predicate): Likewise.
173 * match.pd: Likewise.
174 * rtlanal.c (may_trap_p_1): Likewise.
175 * simplify-rtx.c (simplify_const_relational_operation): Likewise.
176 * tree-if-conv.c (parse_predicate): Likewise.
177 * tree-ssa-ccp.c (valid_lattice_transition): Likewise.
178 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
179 * tree-ssa-phiopt.c (minmax_replacement, neg_replacement): Likewise.
180 * tree-ssa-reassoc.c (eliminate_using_constants): Likewise.
181 * tree-ssa-tail-merge.c (gimple_equal_p): Likewise.
183 2014-12-10 Jakub Jelinek <jakub@redhat.com>
185 PR tree-optimization/62021
186 * omp-low.c (simd_clone_adjust_return_type): Use
187 vector of pointer_sized_int_node types instead vector of pointer
189 (simd_clone_adjust_argument_types): Likewise.
191 2014-12-10 Jakub Jelinek <jakub@redhat.com>
192 Evgeny Stupachenko <evstupac@gmail.com>
195 * config/i386/i386.c (expand_vec_perm_pblendv): If not testing_p,
196 set dcopy.target to a new pseudo.
198 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org>
200 * config/rs6000/rs6000.md (*add<mode>3): Remove condition.
202 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org>
204 * config/rs6000/40x.md (ppc403-compare): Remove "compare".
205 config/rs6000/440.md (ppc440-compare): Remove "compare".
206 config/rs6000/476.md (ppc476-compare): Remove "compare".
207 config/rs6000/601.md (ppc601-compare): Remove "compare".
208 config/rs6000/603.md (ppc603-compare): Remove "compare".
209 config/rs6000/6xx.md (ppc604-compare): Remove "compare".
210 config/rs6000/7450.md (ppc7450-compare): Remove "compare".
211 config/rs6000/7xx.md (ppc750-compare): Remove "compare".
212 config/rs6000/8540.md (ppc8540_su): Remove "compare".
213 config/rs6000/cell.md (cell-fast-cmp, cell-cmp-microcoded): Remove
215 config/rs6000/e300c2c3.md (ppce300c3_cmp): Remove "compare".
216 config/rs6000/e500mc.md (e500mc_su): Remove "compare".
217 config/rs6000/e500mc64.md (e500mc64_su2): Remove "compare".
218 config/rs6000/e5500.md (e5500_sfx2): Remove "compare".
219 config/rs6000/e6500.md (e6500_sfx2): Remove "compare".
220 config/rs6000/mpc.md (mpccore-compare): Remove "compare".
221 config/rs6000/power4.md (power4-compare): Remove "compare".
222 config/rs6000/power5.md (power5-compare): Remove "compare".
223 config/rs6000/power6.md (power6-compare): Remove "compare".
224 config/rs6000/power7.md (power7-compare): Remove "compare".
225 config/rs6000/power8.md (power8-compare): Remove "compare". Update
227 config/rs6000/rs6000.c (rs6000_adjust_cost) <TYPE_COMPARE>: Remove
229 (is_cracked_insn): Remove TYPE_COMPARE case.
230 (insn_must_be_first_in_group) <TYPE_COMPARE>: Remove (twice).
231 config/rs6000/rs6000.md (type): Remove "compare".
232 (cell_micro): Remove "compare".
233 config/rs6000/rs64.md (rs64a-compare): Remove "compare".
235 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org>
237 * config/rs6000/rs6000.md (*anddi3_2rld_dot, *anddi3_rld_dot2):
238 Change type from "compare" to "two".
240 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org>
243 * config/rs6000/predicates.md (unsigned_comparison_operator): New.
244 (signed_comparison_operator): New.
245 * config/rs6000/rs6000-protos.h (rs6000_emit_eqne): Declare.
246 * config/rs6000/rs6000.c (rs6000_emit_eqne): New function.
247 (rs6000_emit_sCOND): Remove ISEL test (move it to the expander).
248 * config/rs6000/rs6000.md (add<mode>3 for SDI): Expand DImode
249 add to addc,adde directly, if !TARGET_POWERPC64.
250 (sub<mode>3 for SDI): Expand DImode sub to subfc,subfe directly,
251 if !TARGET_POWERPC64.
252 (neg<mode>2): Delete expander.
253 (*neg<mode>2): Rename to "neg<mode>2".
254 (addti3, subti3): Delete.
255 (addti3, subti3): New expanders.
256 (*adddi3_noppc64, *subdi3_noppc64, *negdi2_noppc64): Delete.
257 (cstore<mode>4_unsigned): New expander.
258 (cstore<mode>4): Allow GPR as output (not just SI). Rewrite.
259 (cstore<mode>4 for FP): Remove superfluous quotes.
260 (*eq<mode>, *eq<mode>_compare, *plus_eqsi and splitter,
261 *compare_plus_eqsi and splitter, *plus_eqsi_compare and splitter,
262 *neg_eq0<mode>, *neg_eq<mode>, *ne0_<mode>, plus_ne0_<mode>,
263 compare_plus_ne0_<mode> and splitter, *compare_plus_ne0_<mode>_1 and
264 splitter, *plus_ne0_<mode>_compare and splitter, *leu<mode>,
265 *leu<mode>_compare and splitter, *plus_leu<mode>, *neg_leu<mode>,
266 *and_neg_leu<mode>, *ltu<mode>, *ltu<mode>_compare, *plus_ltu<mode>,
267 *plus_ltu<mode>_1, *plus_ltu<mode>compare, *neg_ltu<mode>, *geu<mode>,
268 *geu<mode>_compare and splitter, *plus_geu<mode>, *neg_geu<mode>,
269 *and_neg_geu<mode>, *plus_gt0<mode>, *gtu<mode>, *gtu<mode>_compare,
270 *plus_gtu<mode>, *plus_gtu<mode>_1, *plus_gtu<mode>_compare,
271 *neg_gtu<mode>, 12 anonymous insns, and 12 anonymous splitters):
273 (eq<mode>3, ne<mode>3): New.
274 (*neg_eq_<mode>, *neg_ne_<mode>): New.
275 (*plus_eq_<mode>, *plus_ne_<mode>): New.
276 (*minus_eq_<mode>, *minus_ne_<mode>): New.
278 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org>
281 * config/rs6000/predicates.md (adde_operand): New.
282 * config/rs6000/rs6000.md (add<mode>3_carry): New.
283 (*add<mode>3_imm_carry_pos): New.
284 (*add<mode>3_imm_carry_0): New.
285 (*add<mode>3_imm_carry_m1): New.
286 (*add<mode>3_imm_carry_neg): New.
287 (add<mode>3_carry_in): New.
288 (*add<mode>3_carry_in_internal): New.
289 (add<mode>3_carry_in_0): New.
290 (add<mode>3_carry_in_m1): New.
291 (subf<mode>3_carry): New.
292 (*subf<mode>3_imm_carry_0): New.
293 (*subf<mode>3_imm_carry_m1): New.
294 (subf<mode>3_carry_in): New.
295 (*subf<mode>3_carry_in_internal): New.
296 (subf<mode>3_carry_in_0): New.
297 (subf<mode>3_carry_in_m1): New.
298 (subf<mode>3_carry_in_xx): New.
300 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org>
303 * config/rs6000/rs6000.md (*add<mode>3_internal1): Rename to
305 (*add<mode>3_internal2, *add<mode>3_internal3, and (their splitters):
307 (*add<mode>3_dot, *add<mode>3_dot2): New.
308 (*add<mode>3_imm_dot, *add<mode>3_imm_dot2): New.
310 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org>
313 * config/rs6000/rs6000.md (*add<mode>3_internal1): Remove addic
316 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org>
319 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
320 *ctr<mode>_internal5, *ctr<mode>_internal6): Change "r" alternatives
321 to "b". Increase length.
322 (splitters for these): Split to cmp+addi instead of addic.
324 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org>
327 * config/rs6000/darwin.md (macho_low_si): Remove "r" alternative.
328 (macho_low_di): Ditto.
329 * config/rs6000/rs6000.md (*largetoc_low): Ditto.
330 (tocref<mode>): Ditto.
332 * config/rs6000/spe.md (mov_si<mode>_e500_subreg0_elf_low_be): Ditto.
333 (mov_si<mode>_e500_subreg0_elf_low_le): Ditto.
334 (mov_si<mode>_e500_subreg4_elf_low_be): Ditto. Reformat condition.
335 (mov_si<mode>_e500_subreg4_elf_low_le): Ditto.
337 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org>
340 * config/rs6000/rs6000.c (TARGET_MD_ASM_CLOBBERS): Define.
341 (rs6000_md_asm_clobbers): New function.
343 2014-12-10 Felix Yang <felix.yang@huawei.com>
345 * config/aarch64/aarch64-protos.h (aarch64_function_profiler): Remove
346 declaration of removed function.
348 2014-12-10 Richard Biener <rguenther@suse.de>
351 (move_computations_dom_walker::before_dom_children): Clear
352 SSA_NAME_RANGE_INFO on moved stmts.
354 2014-12-10 Martin Liska <mliska@suse.cz>
356 * sreal.c (sreal::shift_right): New implementation
357 for int64_t as m_sig.
358 (sreal::normalize): Likewise.
359 (sreal::to_int): Likewise.
360 (sreal::operator+): Likewise.
361 (sreal::operator-): Likewise.
362 (sreal::operator*): Likewise.
363 (sreal::operator/): Likewise.
364 (sreal::signedless_minus): Removed.
365 (sreal::signedless_plus): Removed.
366 (sreal::debug): const keyword is added.
367 * sreal.h (sreal::operator<): New implementation
368 for int64_t as m_sig.
369 * ipa-inline.c (recursive_inlining): LONG_MIN is replaced
372 2014-12-10 Martin Liska <mliska@suse.cz>
374 * gimple-iterator.h (gsi_start_bb_nondebug): New function.
375 * ipa-icf-gimple.c (func_checker::compare_bb): Correct iteration
376 replaces loop based on precomputed number of non-debug statements.
378 2014-12-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
380 * config/linux.c (linux_has_ifunc_p): Remove.
381 * config/linux.h (TARGET_HAS_IFUNC_P): Use default version.
383 2014-12-10 Mantas Mikaitis <mantas.mikaitis@arm.com>
385 * contrib/check_GNU_style.sh (col): Got rid of cut operation
386 from the pipe chain and instead added cut inside awk command.
388 2014-12-10 Richard Biener <rguenther@suse.de>
390 PR tree-optimization/64191
391 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not
392 mark clobbers as necessary.
393 (eliminate_unnecessary_stmts): Keep clobbers live if we can.
395 2014-12-10 Jakub Jelinek <jakub@redhat.com>
398 * config/i386/sse.md (vec_dupv4sf): Move after
399 <mask_codefor><avx512>_vec_dup_gpr<mode><mask_name> pattern.
400 (*vec_dupv4si, *vec_dupv2di): Likewise.
401 (<mask_codefor><avx512>_vec_dup_mem<mode><mask_name>): Merge into ...
402 (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>): ... this
404 (*vec_dup<mode> AVX2_VEC_DUP_MODE splitter): Disable for
405 TARGET_AVX512VL (for QI/HI scalar modes only if TARGET_AVX512BW
407 * config/i386/i386.c (enum ix86_builtins): Remove
408 IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
409 IX86_BUILTIN_PBROADCASTQ128_MEM_MASK and
410 IX86_BUILTIN_PBROADCASTQ512_MEM.
411 (bdesc_args): Use __builtin_ia32_pbroadcastq512_gpr_mask,
412 __builtin_ia32_pbroadcastq256_gpr_mask and
413 __builtin_ia32_pbroadcastq128_gpr_mask instead of *_mem_mask
414 regardless of OPTION_MASK_ISA_64BIT.
415 * config/i386/avx512fintrin.h (_mm512_set1_epi64,
416 _mm512_mask_set1_epi64, _mm512_maskz_set1_epi64): Use *_gpr_mask
417 builtins regardless of whether TARGET_64BIT is defined or not.
418 * config/i386/avx512vlintrin.h (_mm256_mask_set1_epi64,
419 _mm256_maskz_set1_epi64, _mm_mask_set1_epi64, _mm_maskz_set1_epi64):
422 * config/i386/sse.md (*mov<mode>_internal, *avx512f_gatherdi<mode>_2):
423 Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
425 2014-12-10 Oleg Endo <olegendo@gcc.gnu.org>
428 * doc/extend.texi (__builtin_sh_set_fpscr): Fix typo.
430 2014-12-10 Marek Polacek <polacek@redhat.com>
432 PR tree-optimization/61686
433 * tree-ssa-reassoc.c (range_entry_cmp): Use q->high instead of
436 2014-12-10 Kito Cheng <kito@0xlab.org>
438 * doc/libgcc.texi: Update text to match implementation in
441 2014-12-09 Trevor Saunders <tsaunders@mozilla.com>
443 * plugin.c, plugin.def, ggc.h, ggc-common.c, gengtype.h, gengtype.c,
444 gengtype-state.c, gengtype-parse.c, gentype-lex.l, gcc-plugin.h,
445 doc/plugins.texi, doc/gty.texi: Remove support for if_marked and
448 2014-12-10 Oleg Endo <olegendo@gcc.gnu.org>
451 * doc/extend.texi (__builtin_sh_get_fpscr, __builtin_sh_get_fpscr):
454 2014-12-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
457 * tree-ssa-reassoc.c (acceptable_pow_call): Disable transformation
458 for BUILT_IN_POW when flag_errno_math is present.
460 2014-12-09 Ilya Verbin <ilya.verbin@intel.com>
462 * lto-wrapper.c (compile_offload_image): Start processing in_argv
464 (run_gcc): Put offload objects into offload_argv, put LTO objects and
465 possible preceding arguments into lto_argv.
466 Pass offload_argv to compile_images_for_offload_targets instead of argv.
467 Use lto_argv for LTO recompilation instead of argv.
469 2014-12-09 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
471 * doc/install.texi: Describe --with-aix-soname option.
473 2014-12-09 Alan Lawrence <alan.lawrence@arm.com>
475 * config/aarch64/aarch64-simd.md (aarch64_get_lanedi): Remove.
477 2014-12-09 Alan Lawrence <alan.lawrence@arm.com>
480 * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane):
482 * config/aarch64/aarch64-simd.md (aarch64_be_checked_get_lane<mode\>):
484 * config/aarch64/arm_neon.h (aarch64_vget_lane_any): Use GCC
485 vector extensions, __aarch64_lane, __builtin_aarch64_im_lane_boundsi.
486 (__aarch64_vget_lane_f32, __aarch64_vget_lane_f64,
487 __aarch64_vget_lane_p8, __aarch64_vget_lane_p16,
488 __aarch64_vget_lane_s8, __aarch64_vget_lane_s16,
489 __aarch64_vget_lane_s32, __aarch64_vget_lane_s64,
490 __aarch64_vget_lane_u8, __aarch64_vget_lane_u16,
491 __aarch64_vget_lane_u32, __aarch64_vget_lane_u64,
492 __aarch64_vgetq_lane_f32, __aarch64_vgetq_lane_f64,
493 __aarch64_vgetq_lane_p8, __aarch64_vgetq_lane_p16,
494 __aarch64_vgetq_lane_s8, __aarch64_vgetq_lane_s16,
495 __aarch64_vgetq_lane_s32, __aarch64_vgetq_lane_s64,
496 __aarch64_vgetq_lane_u8, __aarch64_vgetq_lane_u16,
497 __aarch64_vgetq_lane_u32, __aarch64_vgetq_lane_u64): Delete.
498 (__aarch64_vdup_lane_any): Use __aarch64_vget_lane_any, remove
500 (__aarch64_vdup_lane_f32, __aarch64_vdup_lane_f64,
501 __aarch64_vdup_lane_p8, __aarch64_vdup_lane_p16,
502 __aarch64_vdup_lane_s8, __aarch64_vdup_lane_s16,
503 __aarch64_vdup_lane_s32, __aarch64_vdup_lane_s64,
504 __aarch64_vdup_lane_u8, __aarch64_vdup_lane_u16,
505 __aarch64_vdup_lane_u32, __aarch64_vdup_lane_u64,
506 __aarch64_vdup_laneq_f32, __aarch64_vdup_laneq_f64,
507 __aarch64_vdup_laneq_p8, __aarch64_vdup_laneq_p16,
508 __aarch64_vdup_laneq_s8, __aarch64_vdup_laneq_s16,
509 __aarch64_vdup_laneq_s32, __aarch64_vdup_laneq_s64,
510 __aarch64_vdup_laneq_u8, __aarch64_vdup_laneq_u16,
511 __aarch64_vdup_laneq_u32, __aarch64_vdup_laneq_u64): Remove argument
512 to __aarch64_vdup_lane_any.
513 (vget_lane_f32, vget_lane_f64, vget_lane_p8, vget_lane_p16,
514 vget_lane_s8, vget_lane_s16, vget_lane_s32, vget_lane_s64,
515 vget_lane_u8, vget_lane_u16, vget_lane_u32, vget_lane_u64,
516 vgetq_lane_f32, vgetq_lane_f64, vgetq_lane_p8, vgetq_lane_p16,
517 vgetq_lane_s8, vgetq_lane_s16, vgetq_lane_s32, vgetq_lane_s64,
518 vgetq_lane_u8, vgetq_lane_u16, vgetq_lane_u32, vgetq_lane_u64,
519 vdupb_lane_p8, vdupb_lane_s8, vdupb_lane_u8, vduph_lane_p16,
520 vduph_lane_s16, vduph_lane_u16, vdups_lane_f32, vdups_lane_s32,
521 vdups_lane_u32, vdupb_laneq_p8, vdupb_laneq_s8, vdupb_laneq_u8,
522 vduph_laneq_p16, vduph_laneq_s16, vduph_laneq_u16, vdups_laneq_f32,
523 vdups_laneq_s32, vdups_laneq_u32, vdupd_laneq_f64, vdupd_laneq_s64,
524 vdupd_laneq_u64, vfmas_lane_f32, vfma_laneq_f64, vfmad_laneq_f64,
525 vfmas_laneq_f32, vfmss_lane_f32, vfms_laneq_f64, vfmsd_laneq_f64,
526 vfmss_laneq_f32, vmla_lane_f32, vmla_lane_s16, vmla_lane_s32,
527 vmla_lane_u16, vmla_lane_u32, vmla_laneq_f32, vmla_laneq_s16,
528 vmla_laneq_s32, vmla_laneq_u16, vmla_laneq_u32, vmlaq_lane_f32,
529 vmlaq_lane_s16, vmlaq_lane_s32, vmlaq_lane_u16, vmlaq_lane_u32,
530 vmlaq_laneq_f32, vmlaq_laneq_s16, vmlaq_laneq_s32, vmlaq_laneq_u16,
531 vmlaq_laneq_u32, vmls_lane_f32, vmls_lane_s16, vmls_lane_s32,
532 vmls_lane_u16, vmls_lane_u32, vmls_laneq_f32, vmls_laneq_s16,
533 vmls_laneq_s32, vmls_laneq_u16, vmls_laneq_u32, vmlsq_lane_f32,
534 vmlsq_lane_s16, vmlsq_lane_s32, vmlsq_lane_u16, vmlsq_lane_u32,
535 vmlsq_laneq_f32, vmlsq_laneq_s16, vmlsq_laneq_s32, vmlsq_laneq_u16,
536 vmlsq_laneq_u32, vmul_lane_f32, vmul_lane_s16, vmul_lane_s32,
537 vmul_lane_u16, vmul_lane_u32, vmuld_lane_f64, vmuld_laneq_f64,
538 vmuls_lane_f32, vmuls_laneq_f32, vmul_laneq_f32, vmul_laneq_f64,
539 vmul_laneq_s16, vmul_laneq_s32, vmul_laneq_u16, vmul_laneq_u32,
540 vmulq_lane_f32, vmulq_lane_s16, vmulq_lane_s32, vmulq_lane_u16,
541 vmulq_lane_u32, vmulq_laneq_f32, vmulq_laneq_f64, vmulq_laneq_s16,
542 vmulq_laneq_s32, vmulq_laneq_u16, vmulq_laneq_u32) : Use
543 __aarch64_vget_lane_any.
545 2014-12-09 Alan Lawrence <alan.lawrence@arm.com>
548 * gcc/config/aarch64-builtins.c (aarch64_simd_expand_args): Update error
549 message for SIMD_ARG_CONSTANT.
551 2014-12-09 Alan Lawrence <alan.lawrence@arm.com>
554 * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
555 TYPES_BINOPV): Delete.
556 (enum aarch64_builtins): Add AARCH64_BUILTIN_SIMD_LANE_CHECK and
557 AARCH64_SIMD_PATTERN_START.
558 (aarch64_init_simd_builtins): Register
559 __builtin_aarch64_im_lane_boundsi; use AARCH64_SIMD_PATTERN_START.
560 (aarch64_simd_expand_builtin): Handle AARCH64_BUILTIN_LANE_CHECK; use
561 AARCH64_SIMD_PATTERN_START.
563 * config/aarch64/aarch64-simd.md (aarch64_im_lane_boundsi): Delete.
564 * config/aarch64/aarch64-simd-builtins.def (im_lane_bound): Delete.
566 * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK): New.
567 (__aarch64_vget_lane_f64, __aarch64_vget_lane_s64,
568 __aarch64_vget_lane_u64, __aarch64_vset_lane_any, vdupd_lane_f64,
569 vdupd_lane_s64, vdupd_lane_u64, vext_f32, vext_f64, vext_p8, vext_p16,
570 vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
571 vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
572 vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
573 vextq_u64, vmulq_lane_f64): Use __AARCH64_LANE_CHECK.
575 2014-12-09 Alan Lawrence <alan.lawrence@arm.com>
578 * config/aarch64/arm_neon.h (__AARCH64_NUM_LANES, __aarch64_lane *2):
580 (aarch64_vset_lane_any): Redefine using previous, same for BE + LE.
581 (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
582 vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
583 vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64): Remove
585 (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8, vld1_lane_p16,
586 vld1_lane_s8, vld1_lane_s16, vld1_lane_s32, vld1_lane_s64,
587 vld1_lane_u8, vld1_lane_u16, vld1_lane_u32, vld1_lane_u64): Call
588 __aarch64_vset_lane_any rather than vset_lane_xxx.
590 2014-12-09 Alan Lawrence <alan.lawrence@arm.com>
592 * config/aarch64/aarch64.md (absdi2): Remove scratch operand by
593 earlyclobbering result operand.
595 * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
596 Remove final qualifier_internal.
597 (aarch64_fold_builtin): Stop folding abs builtins, except on floats.
599 2014-12-09 Wilco Dijkstra <wilco.dijkstra@arm.com>
601 * gcc/config/aarch64/aarch64-protos.h (tune-params): Add reasociation
603 * gcc/config/aarch64/aarch64.c (TARGET_SCHED_REASSOCIATION_WIDTH):
605 (aarch64_reassociation_width): New function.
606 (generic_tunings): Add reassociation tuning parameters.
607 (cortexa53_tunings): Likewise.
608 (cortexa57_tunings): Likewise.
609 (thunderx_tunings): Likewise.
611 2014-12-09 Andrew Pinski apinski@cavium.com
612 Kyrylo Tkachov kyrylo.tkachov@arm.com
614 * config/aarch64/aarch64.c (AARCH64_FUSE_CMP_BRANCH): New define.
615 (thunderx_tunings): Add AARCH64_FUSE_CMP_BRANCH to fuseable_ops.
616 (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_CMP_BRANCH.
618 2014-12-09 David Malcolm <dmalcolm@redhat.com>
621 * dumpfile.c (gcc::dump_manager::get_dump_file_info_by_switch):
623 (gcc::dump_manager::get_dump_file_name): Split out bulk of
624 implementation into a new overloaded variant taking a
626 * dumpfile.h (gcc::dump_manager::get_dump_file_info_by_switch):
628 (gcc::dump_manager::get_dump_file_name): New overloaded variant of
629 this function, taking a dump_file_info *.
631 2014-12-09 Uros Bizjak <ubizjak@gmail.com>
635 2014-11-28 H.J. Lu <hongjiu.lu@intel.com>
637 PR rtl-optimization/64037
638 * combine.c (setup_incoming_promotions): Pass the argument
639 before any promotions happen to promote_function_mode.
641 2014-12-09 Richard Biener <rguenther@suse.de>
643 PR tree-optimization/64193
644 * tree-ssa-alias.c (walk_non_aliased_vuses): Add valueize parameter
645 and valueize the VUSE before looking up the def stmt.
646 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
647 * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Pass vn_valueize
648 to walk_non_aliased_vuses.
649 (vn_reference_lookup): Likewise.
650 * tree-ssa-dom.c (lookup_avail_expr): Pass NULL as valueize
651 callback to walk_non_aliased_vuses.
653 2014-12-09 Richard Biener <rguenther@suse.de>
656 * fold-const.c (fold_binary_loc): Use TREE_OVERFLOW_P.
658 2014-12-09 Richard Biener <rguenther@suse.de>
660 PR tree-optimization/64191
661 * tree-vect-stmts.c (vect_stmt_relevant_p): Clobbers are
662 not relevant (nor are their uses).
664 2014-12-09 Ilya Enkovich <ilya.enkovich@intel.com>
666 * lto/lto-partition.c (privatize_symbol_name): Correctly
667 privatize instrumentation clones.
669 2014-12-09 Ilya Enkovich <ilya.enkovich@intel.com>
671 * lto-cgraph.c (input_cgraph_1): Don't break existing
672 instrumentation clone references.
673 * lto/lto-symtab.c (lto_cgraph_replace_node): Redirect
674 instrumented_version references appropriately.
676 2014-12-09 Ilya Enkovich <ilya.enkovich@intel.com>
679 * tree-chkp.c (chkp_make_static_bounds): Share bounds var
680 between nodes sharing assembler name.
682 2014-12-08 Michael Meissner <meissner@linux.vnet.ibm.com>
685 * config/rs6000/rs6000.c (rs6000_emit_move): Do not split TFmode
686 constant moves if -mupper-regs-df.
688 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Optimize moving
690 (movtd_64bit_nodm): Likewise.
691 (mov<mode>_32bit, FMOVE128 case): Likewise.
693 2014-12-08 Sandra Loosemore <sandra@codesourcery.com>
695 * simplify-rtx.c (simplify_relational_operation_1): Handle
696 simplification identities for BICS patterns.
698 2014-12-08 Trevor Saunders <tsaunders@mozilla.com>
700 * config/nvptx/nvptx.c: Convert htabs to hash_table.
702 2014-12-08 David Edelsohn <dje.gcc@gmail.com>
705 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner)
706 [SYMBOL_REF]: Do not explicitly call create_TOC_reference for
707 TARGET_TOC. Always use rs6000_emit_move.
709 2014-12-08 Mark Wielaard <mjw@redhat.com>
712 * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_ATOMIC.
714 2014-11-15 David Wohlferd <dw@LimeGreenSocks.com>
717 * cfgexpand.c (expand_asm_operands): Count all inline asm params.
719 2014-12-08 David Malcolm <dmalcolm@redhat.com>
722 * cgraph.h (xstrdup_for_dump): New function.
723 * cgraph.c (cgraph_node::get_create): Replace use of xstrdup
724 within fprintf with xstrdup_for_dump.
725 (cgraph_edge::make_speculative): Likewise.
726 (cgraph_edge::resolve_speculation): Likewise.
727 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
728 (cgraph_node::dump): Likewise.
729 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
730 * ipa-cp.c (perhaps_add_new_callers): Likewise.
731 * ipa-inline.c (report_inline_failed_reason): Likewise.
732 (want_early_inline_function_p): Likewise.
733 (edge_badness): Likewise.
734 (update_edge_key): Likewise.
735 (flatten_function): Likewise.
736 (inline_always_inline_functions): Likewise.
737 * ipa-profile.c (ipa_profile): Likewise.
738 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
739 (ipa_make_edge_direct_to_target): Likewise.
740 (remove_described_reference): Likewise.
741 (propagate_controlled_uses): Likewise.
742 * ipa-utils.c (ipa_merge_profiles): Likewise.
744 2014-12-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
747 * ipa-polymorphic-call.c
748 (pa_polymorphic_call_context::ipa_polymorphic_call): Allow RESULT_DECL.
750 2014-12-08 Alex Velenko <Alex.Velenko@arm.com>
752 * config/aarch64/aarch64.md (and_one_cmpl<mode>3_compare0_no_reuse):
754 * (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse):
757 2014-12-08 Felix Yang <felix.yang@huawei.com>
758 Haijian Zhang <z.zhanghaijian@huawei.com>
759 Jiji Jiang <jiangjiji@huawei.com>
760 Pengfei Sui <suipengfei@huawei.com>
762 * config/aarch64/arm_neon.h (vrecpe_u32, vrecpeq_u32): Rewrite using
764 (vfma_f32, vfmaq_f32, vfmaq_f64, vfma_n_f32, vfmaq_n_f32, vfmaq_n_f64,
765 vfms_f32, vfmsq_f32, vfmsq_f64): Likewise.
766 (vhsub_s8, vhsub_u8, vhsub_s16, vhsub_u16, vhsub_s32, vhsub_u32,
767 vhsubq_s8, vhsubq_u8, vhsubq_s16, vhsubq_u16, vhsubq_s32, vhsubq_u32,
768 vsubhn_s16, vsubhn_u16, vsubhn_s32, vsubhn_u32, vsubhn_s64, vsubhn_u66,
769 vrsubhn_s16, vrsubhn_u16, vrsubhn_s32, vrsubhn_u32, vrsubhn_s64,
770 vrsubhn_u64, vsubhn_high_s16, vsubhn_high_u16, vsubhn_high_s32,
771 vsubhn_high_u32, vsubhn_high_s64, vsubhn_high_u64, vrsubhn_high_s16,
772 vrsubhn_high_u16, vrsubhn_high_s32, vrsubhn_high_u32, vrsubhn_high_s64,
773 vrsubhn_high_u64): Likewise.
774 * config/aarch64/iterators.md (VDQ_SI): New mode iterator.
775 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_URECPE.
776 * config/aarch64/aarch64-simd.md (aarch64_urecpe<mode>): New pattern.
777 * config/aarch64/aarch64-simd-builtins.def (shsub, uhsub, subhn, rsubhn,
778 subhn2, rsubhn2, urecpe): New builtins.
780 2014-12-08 Ilya Tocar <ilya.tocar@intel.com>
782 * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Handle v64qi.
783 * config/i386/sse.md (VEC_PERM_AVX2): Add v64qi.
785 2014-12-08 Ilya Tocar <ilya.tocar@intel.com>
787 * config/i386/i386.c (expand_vec_perm_broadcast_1): Handle v64qi.
788 (expand_vec_perm_vpermi2_vpshub2): New.
789 (ix86_expand_vec_perm_const_1): Use it.
790 (ix86_vectorize_vec_perm_const_ok): Handle v64qi.
791 * config/i386/sse.md (VEC_PERM_CONST): Add v64qi.
793 2014-12-08 Ilya Enkovich <ilya.enkovich@intel.com>
795 * tree-chkp.c (chkp_build_returned_bound): Don't predict
796 return bounds for strchr calls.
798 2014-12-08 Ilya Enkovich <ilya.enkovich@intel.com>
800 * tree-chkp.c (chkp_call_returns_bounds_p): New.
801 (chkp_build_returned_bound): Use zero bounds as
802 returned by calls not returning bounds.
804 2014-12-08 Richard Biener <rguenther@suse.de>
806 * builtins.c (fold_builtin_0): Remove unused ignore parameter.
807 (fold_builtin_1): Likewise.
808 (fold_builtin_3): Likewise.
809 (fold_builtin_varargs): Likewise.
810 (fold_builtin_2): Likewise. Do not fold stpcpy here.
811 (fold_builtin_n): Adjust.
812 (fold_builtin_stpcpy): Move to gimple-fold.c.
813 (gimple_fold_builtin_stpcpy): Moved and gimplified from builtins.c.
814 (gimple_fold_builtin): Fold stpcpy here.
816 2014-12-07 Trevor Saunders <tsaunders@mozilla.com>
818 * symtab.c (symtab_node::verify): Check for section attribute before
819 asserting something isn't in a section and a comdat group.
821 2014-12-07 Oleg Endo <olegendo@gcc.gnu.org>
824 * config/sh/sh.md (extendqihi2): Allow only for TARGET_SH1.
826 2014-12-07 Eric Botcazou <ebotcazou@adacore.com>
828 * compare-elim.c: Fix head comment.
829 (conforming_compare): Remove redundant test.
830 (can_eliminate_compare): New function extracted from...
831 (before_dom_children): ...here. Use it, replace direct uses of
832 flag_non_call_exceptions and tidy up.
833 (maybe_select_cc_mode): Tidy up.
835 2014-12-07 Felix Yang <felix.yang@huawei.com>
836 Shanyao Chen <chenshanyao@huawei.com>
838 * config/aarch64/aarch64-simd.md (clrsb<mode>2, popcount<mode>2): New
840 * config/aarch64/aarch64-simd-builtins.def (clrsb, popcount): New
842 * config/aarch64/arm_neon.h (vcls_s8, vcls_s16, vcls_s32, vclsq_s8,
843 vclsq_s16, vclsq_s32, vcnt_p8, vcnt_s8, vcnt_u8, vcntq_p8, vcntq_s8,
844 vcntq_u8): Rewrite using builtin functions.
846 2014-12-07 Jan Hubicka <hubicka@ucw.cz>
848 * symtab.c (symtab_node::equal_address_to): New function.
849 * cgraph.h (symtab_node::equal_address_to): Declare.
850 * fold-const.c (fold_comparison, fold_binary_loc): Use it.
851 * c-family/c-common.c: Refuse weaks for symbols that can not change
854 2014-12-07 Jonathan Wakely <jwakely@redhat.com>
856 * doc/invoke.texi (Warning Options): Fix spelling and grammar.
858 2014-12-06 James Greenhalgh <james.greenhalgh@arm.com>
859 Sebastian Pop <s.pop@samsung.com>
860 Brian Rzycki <b.rzycki@samsung.com>
862 PR tree-optimization/54742
863 * params.def (max-fsm-thread-path-insns, max-fsm-thread-length,
864 max-fsm-thread-paths): New.
866 * doc/invoke.texi (max-fsm-thread-path-insns, max-fsm-thread-length,
867 max-fsm-thread-paths): Documented.
869 * tree-cfg.c (split_edge_bb_loc): Export.
870 * tree-cfg.h (split_edge_bb_loc): Declared extern.
872 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Restore the
873 original value of cond when simplification fails.
874 (fsm_find_thread_path): New.
875 (fsm_find_control_statement_thread_paths): New.
876 (thread_through_normal_block): Call find_control_statement_thread_paths.
878 * tree-ssa-threadupdate.c (dump_jump_thread_path): Pretty print
881 (duplicate_seme_region): New.
882 (thread_through_all_blocks): Generate code for EDGE_FSM_THREAD edges
883 calling duplicate_seme_region.
885 * tree-ssa-threadupdate.h (jump_thread_edge_type): Add EDGE_FSM_THREAD.
887 2014-12-06 H.J. Lu <hongjiu.lu@intel.com>
890 * config/i386/i386.c (decide_alg): Don't assert "alg != libcall"
891 for TARGET_INLINE_STRINGOPS_DYNAMICALLY.
893 2014-12-05 Jakub Jelinek <jakub@redhat.com>
896 * sanopt.c (maybe_optimize_asan_check_ifn): If base_checks is
897 non-NULL, call maybe_get_dominating_check on it even if g is
900 2014-12-05 Jeff Law <law@redhat.com>
902 * doc/md.texi: Note problems using function calls to determine
903 insn lengths and point readers to a potential workaround.
905 2014-12-05 Andreas Schwab <schwab@linux-m68k.org>
907 * combine.c (is_parallel_of_n_reg_sets)
908 (can_split_parallel_of_n_reg_sets): Only define if !HAVE_cc0.
910 2014-12-05 Andrew Pinski <apinski@cavium.com>
912 * config/aarch64/aarch64-simd-builtins.def (bswap): Use CF2 rather
913 than CF10 so 2 is appended on the code.
914 * config/aarch64/aarch64-simd.md (bswap<mode>): Rename to ...
915 (bswap<mode>2): This so it matches for the optabs.
917 2014-12-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
919 * regrename.c (find_best_rename_reg): Rename to ...
920 (find_rename_reg): This. Also add a parameter to skip tick check.
921 * regrename.h: Likewise.
922 * config/c6x/c6x.c (try_rename_operands): Adapt to above renaming.
924 2014-12-05 Martin Jambor <mjambor@suse.cz>
927 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Convert alignment
928 from bits to bytes after checking they are byte-aligned.
930 2014-12-05 Renlin Li <renlin.li@arm.com>
932 * config/aarch64/aarch64-opts.h (AARCH64_CORE): Rename IDENT to SCHED.
933 * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
934 * config/aarch64/aarch64.c (AARCH64_CORE): Rename X to IDENT,
937 2014-12-05 Bin Cheng <bin.cheng@arm.com>
939 * config/aarch64/aarch64.md (load_pair<mode>): Split to
940 load_pairsi, load_pairdi, load_pairsf and load_pairdf.
941 (load_pairsi, load_pairdi, load_pairsf, load_pairdf): Split
942 from load_pair<mode>. New alternative to support int/fp
943 registers in fp/int mode patterns.
944 (store_pair<mode>:): Split to store_pairsi, store_pairdi,
945 store_pairsf and store_pairdi.
946 (store_pairsi, store_pairdi, store_pairsf, store_pairdf): Split
947 from store_pair<mode>. New alternative to support int/fp
948 registers in fp/int mode patterns.
949 (*load_pair_extendsidi2_aarch64): New pattern.
950 (*load_pair_zero_extendsidi2_aarch64): New pattern.
951 (aarch64-ldpstp.md): Include.
952 * config/aarch64/aarch64-ldpstp.md: New file.
953 * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
955 (extract_base_offset_in_addr): New.
956 (aarch64_operands_ok_for_ldpstp): New.
957 (aarch64_operands_adjust_ok_for_ldpstp): New.
958 * config/aarch64/aarch64.c (enum sched_fusion_type): New enum.
959 (TARGET_SCHED_FUSION_PRIORITY): New hook.
960 (fusion_load_store): New functon.
961 (extract_base_offset_in_addr): New function.
962 (aarch64_gen_adjusted_ldpstp): New function.
963 (aarch64_sched_fusion_priority): New function.
964 (aarch64_operands_ok_for_ldpstp): New function.
965 (aarch64_operands_adjust_ok_for_ldpstp): New function.
967 2014-12-05 Olivier Hainque <hainque@adacore.com>
969 * defaults.h: (DWARF_REG_TO_UNWIND_COLUMN): Define default.
970 * dwarf2cfi.c (init_one_dwarf_reg_size): Honor
971 DWARF_REG_TO_UNWIND_COLUMN.
973 2014-12-05 Olivier Hainque <hainque@adacore.com>
975 * dwarf2cfi.c (init_one_dwarf_reg_size): New helper, processing
976 one particular reg for expand_builtin_init_dwarf_reg_sizes.
977 (expand_builtin_init_dwarf_reg_sizes): Rework to use helper and
978 account for dwarf register spans.
980 2014-12-05 Ilya Enkovich <ilya.enkovich@intel.com>
983 * config/i386/i386.md (*jcc_1_bnd): New.
986 (*jcc_1): Remove bnd prefix.
990 2014-12-05 Renlin Li <renlin.li@arm.com>
992 * config/aarch64/aarch64.c (aarch64_parse_cpu): Don't define
994 (aarch64_override_options): Use selected_cpu's tuning.
996 2014-12-05 David Edelsohn <dje.gcc@gmail.com>
998 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append
999 alignment to section name. Increase default alignment to word.
1001 2014-12-05 Martin Jambor <mjambor@suse.cz>
1003 * cgraph.h (cgraph_node): New method expand_all_artificial_thunks.
1004 (cgraph_edge): New method redirect_callee_duplicating_thunks.
1005 * cgraphclones.c (duplicate_thunk_for_node): Donot expand newly
1007 (redirect_edge_duplicating_thunks): Turned into edge method
1008 redirect_callee_duplicating_thunks.
1009 (cgraph_node::expand_all_artificial_thunks): New method.
1010 (create_clone): Call expand_all_artificial_thunks.
1011 * ipa-cp.c (perhaps_add_new_callers): Call
1012 redirect_callee_duplicating_thunks instead of redirect_callee.
1013 Also call expand_all_artificial_thunks.
1015 2014-12-05 Ilya Enkovich <ilya.enkovich@intel.com>
1018 * doc/sourcebuild.texi: Add mempcpy and stpcpy for Effective-Target Keywords.
1020 2014-12-05 Manuel López-Ibáñez <manu@gcc.gnu.org>
1022 * diagnostic.h (diagnostic_expand_location): New inline function.
1023 * diagnostic.c (diagnostic_build_prefix): Use it.
1024 (diagnostic_show_locus): Likewise.
1026 2014-12-04 H.J. Lu <hongjiu.lu@intel.com>
1029 * configure.ac (HAVE_LD_PIE_COPYRELOC): Always define.
1030 * configure: Regenerated.
1032 2014-12-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
1034 * diagnostic.c (diagnostic_color_init): New.
1035 * diagnostic.h: Declare.
1036 * gcc.c (driver::global_initializations): Use it.
1037 (driver_handle_option): Handle -fdiagnostics-color_.
1038 * toplev.c: Do not include diagnostic-color.h.
1039 (process_options): Do not initialize color diagnostics here.
1040 * common.opt (fdiagnostics-color=): Add Driver.
1041 * opts-global.c (init_options_once): Initialize color here.
1042 * opts.c (common_handle_option): Use diagnostics_color_init.
1043 * diagnostic-color.h: Fix comment.
1045 2014-12-04 David Malcolm <dmalcolm@redhat.com>
1047 * tree-pretty-print.c (INDENT): Rename "buffer" to "pp".
1049 (buffer): Rename this variable to...
1052 (do_niy): Rename param from "buffer" to "pp".
1053 (dump_decl_name): Likewise.
1054 (dump_function_name): Likewise.
1055 (dump_function_declaration): Likewise.
1056 (dump_array_domain): Likewise.
1057 (dump_omp_clause): Likewise.
1058 (dump_omp_clauses): Likewise.
1059 (dump_location): Likewise.
1060 (dump_block_node): Likewise.
1061 (dump_generic_node): Likewise.
1062 (print_declaration): Likewise.
1063 (print_struct_decl): Likewise.
1064 (print_call_name): Likewise.
1065 (pretty_print_string): Likewise.
1066 (newline_and_indent): Likewise.
1068 (print_generic_decl): Update for renaming of "buffer" to
1070 (print_generic_stmt): Likewise.
1071 (print_generic_stmt_indented): Likewise.
1072 (print_generic_expr): Likewise.
1073 (maybe_init_pretty_print): Likewise.
1075 2014-12-04 David Malcolm <dmalcolm@redhat.com>
1078 * tree-pretty-print.c: Eliminate include of <new>.
1079 (buffer): Convert this variable from a pretty_printer to a
1081 (initialized): Eliminate this variable in favor of the NULL-ness
1083 (print_generic_decl): Update for "buffer" becoming a pointer.
1084 (print_generic_stmt): Likewise.
1085 (print_generic_stmt_indented): Likewise.
1086 (print_generic_expr): Likewise.
1087 (maybe_init_pretty_print): Likewise, allocating "buffer" on the
1088 heap and using its non-NULL-ness to ensure idempotency.
1090 2014-12-04 David Malcolm <dmalcolm@redhat.com>
1093 * ipa-prop.c (ipa_register_cgraph_hooks): Guard insertion of
1094 ipa_add_new_function on function_insertion_hook_holder being
1096 * ipa-reference.c (ipa_reference_c_finalize): Remove
1097 node_removal_hook_holder and node_duplication_hook_holder if
1098 they've been added to symtab.
1099 * toplev.c (toplev::finalize): Call ipa_reference_c_finalize
1100 before cgraph_c_finalize so that the former can access "symtab".
1102 2014-12-04 David Malcolm <dmalcolm@redhat.com>
1104 * doc/cfg.texi (GIMPLE statement iterators): Add note about
1105 gphi_iterator, and use one in the example.
1106 * doc/gimple.texi (Tuple specific accessors): Add missing
1107 GIMPLE_GOTO section and menu item.
1108 (gimple_build_asm, gimple gimple_build_assign_with_ops)
1109 gimple_call_mark_uninlinable, gimple_call_cannot_inline_p): Remove
1110 description of removed functions.
1111 (gimple_build_assign, gimple_build_bind, gimple_build_call,
1112 gimple_build_call_from_tree, gimple_build_call_vec,
1113 gimple_build_catch, gimple_build_cond,
1114 gimple_build_cond_from_tree, gimple_build_debug_bind,
1115 gimple_build_eh_filter, gimple_build_label, gimple_build_goto,
1116 gimple_build_omp_atomic_load, gimple_build_omp_atomic_store,
1117 gimple_build_omp_continue, gimple_build_omp_critical,
1118 gimple_build_omp_for, gimple_build_omp_parallel,
1119 gimple_build_omp_sections, gimple_build_omp_single,
1120 gimple_build_return, gimple_build_resx, gimple_build_switch,
1121 gimple_build_try): Update return type within description to
1122 reflect changes in gimple.h to using gimple subclasses.
1123 (gimple_build_asm_vec): Update return type, params and
1125 (gimple_asm_ninputs): Update param.
1126 (gimple_asm_noutputs, gimple_asm_nclobbers, gimple_asm_input_op
1127 gimple_asm_set_input_op, gimple_asm_output_op
1128 gimple_asm_set_output_op, gimple_asm_clobber_op,
1129 gimple_asm_set_clobber_op, gimple_asm_string,
1130 gimple_asm_volatile_p, gimple_asm_set_volatile, gimple_bind_vars,
1131 gimple_bind_set_vars, gimple_bind_append_vars, gimple_bind_body,
1132 gimple_bind_set_body, gimple_bind_add_stmt, gimple_bind_add_seq,
1133 gimple_bind_block, gimple_bind_set_block, gimple_call_set_fn,
1134 gimple_call_return_type, gimple_call_set_chain,
1135 gimple_call_set_tail, gimple_call_tail_p,
1136 gimple_call_copy_skip_args, gimple_catch_types,
1137 gimple_catch_types_ptr, gimple_catch_handler,
1138 gimple_catch_set_types, gimple_catch_set_handler,
1139 gimple_cond_set_code, gimple_cond_set_lhs, gimple_cond_set_rhs,
1140 gimple_cond_true_label, gimple_cond_set_true_label,
1141 gimple_cond_set_false_label, gimple_cond_false_label,
1142 gimple_cond_make_false, gimple_cond_make_true,
1143 gimple_eh_filter_set_types, gimple_eh_filter_set_failure,
1144 gimple_eh_must_not_throw_fndecl,
1145 gimple_eh_must_not_throw_set_fndecl, gimple_label_label,
1146 gimple_label_set_label, gimple_goto_set_dest,
1147 gimple_omp_atomic_load_set_lhs, gimple_omp_atomic_load_lhs,
1148 gimple_omp_atomic_load_set_rhs, gimple_omp_atomic_load_rhs,
1149 gimple_omp_atomic_store_set_val, gimple_omp_atomic_store_val,
1150 gimple_omp_continue_control_def,
1151 gimple_omp_continue_control_def_ptr,
1152 gimple_omp_continue_set_control_def,
1153 gimple_omp_continue_control_use,
1154 gimple_omp_continue_control_use_ptr,
1155 gimple_omp_continue_set_control_use, gimple_omp_critical_name,
1156 gimple_omp_critical_name_ptr, gimple_omp_critical_set_name,
1157 gimple_omp_parallel_clauses_ptr, gimple_omp_parallel_set_clauses,
1158 gimple_omp_parallel_child_fn, gimple_omp_parallel_child_fn_ptr,
1159 gimple_omp_parallel_set_child_fn, gimple_omp_parallel_data_arg,
1160 gimple_omp_parallel_data_arg_ptr,
1161 gimple_omp_parallel_set_data_arg, gimple_omp_single_set_clauses,
1162 gimple_phi_set_result, gimple_phi_set_arg, gimple_resx_region,
1163 gimple_resx_set_region, gimple_return_retval,
1164 gimple_return_set_retval, gimple_switch_num_labels,
1165 gimple_switch_set_num_labels, gimple_switch_index,
1166 gimple_switch_set_index, gimple_switch_label,
1167 gimple_switch_set_label, gimple_switch_default_label,
1168 gimple_switch_set_default_label, gimple_try_set_eval,
1169 gimple_try_set_cleanup): Update initial param within description
1170 to reflect changes in gimple.h to using gimple subclasses.
1171 (Adding a new GIMPLE statement code): Update to reflect gimple
1172 statement subclassing.
1174 2014-12-04 Sriraman Tallam <tmsriram@google.com>
1175 H.J. Lu <hongjiu.lu@intel.com>
1177 * configure.ac (HAVE_LD_PIE_COPYRELOC): Defined to 1 if
1178 Linux/x86-64 linker supports PIE with copy reloc.
1179 * config.in: Regenerated.
1180 * configure: Likewise.
1182 * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
1183 pc-relative address for undefined, non-weak, non-function
1184 symbol reference in 64-bit PIE if linker supports PIE with
1187 * doc/sourcebuild.texi: Document pie_copyreloc target.
1189 2014-12-04 Marek Polacek <polacek@redhat.com>
1192 * fold-const.c (fold_unary_loc): Perform the negation in A's type
1193 when transforming ~ (A - 1) or ~ (A + -1) to -A.
1195 2014-12-04 Tobias Burnus <burnus@net-b.de>
1197 * Makefile.in: Remove CLOOGLIB and CLOOGINC.
1199 2014-12-04 Richard Biener <rguenther@suse.de>
1201 * doc/match-and-simplify.texi: Update for recent changes.
1203 2014-12-04 Martin Jambor <mjambor@suse.cz>
1205 * ipa-prop.h (ipa_alignment): New type.
1206 (ipa_jump_func): New field alignment.
1207 (ipcp_transformation_summary) New type.
1208 (ipcp_grow_transformations_if_necessary): Declare.
1209 (ipa_node_agg_replacements): Removed.
1210 (ipcp_transformations): Declare.
1211 (ipcp_get_transformation_summary): New function.
1212 (ipa_get_agg_replacements_for_node): Use it.
1213 * ipa-cp.c (ipcp_param_lattices): New field alignment.
1214 (print_all_lattices): Also print alignment.
1215 (alignment_bottom_p): New function.
1216 (set_alignment_to_bottom): Likewise.
1217 (set_all_contains_variable): Also set alignment to bottom.
1218 (initialize_node_lattices): Likewise.
1219 (propagate_alignment_accross_jump_function): New function.
1220 (propagate_constants_accross_call): Call it.
1221 (ipcp_store_alignment_results): New function.
1222 (ipcp_driver): Call it.
1223 * ipa-prop.c (ipa_node_agg_replacements): Removed.
1224 (ipcp_transformations): New.
1225 (ipa_print_node_jump_functions_for_edge): Also print alignment.
1226 (ipa_set_jf_unknown): New function.
1227 (detect_type_change_from_memory_writes): Use ipa_set_jf_unknown.
1228 (ipa_compute_jump_functions_for_edge): Also calculate alignment.
1229 (update_jump_functions_after_inlining): Use ipa_set_jf_unknown.
1230 (ipcp_grow_transformations_if_necessary): New function.
1231 (ipa_set_node_agg_value_chain): Use ipcp_transformations.
1232 (ipa_node_removal_hook): Likewise.
1233 (ipa_node_duplication_hook): Also duplicate alignment results.
1234 (ipa_write_jump_function): Also stream alignments.
1235 (ipa_read_jump_function): Use ipa_set_jf_unknown, also stream
1237 (write_agg_replacement_chain): Renamed to
1238 write_ipcp_transformation_info, also stream alignments.
1239 (read_agg_replacement_chain): Renamed to
1240 read_ipcp_transformation_info, also stream alignments.
1241 (ipa_prop_write_all_agg_replacement): Renamed to
1242 ipcp_write_transformation_summaries. Stream always.
1243 (ipa_prop_read_all_agg_replacement): Renamed to
1244 ipcp_read_transformation_summaries.
1245 (ipcp_update_alignments): New function.
1246 (ipcp_transform_function): Call it, free also alignments.
1248 2014-12-04 Richard Biener <rguenther@suse.de>
1250 * gimple-fold.c (replace_stmt_with_simplification): Properly
1251 fail when maybe_push_res_to_seq fails.
1253 2014-12-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
1255 * config/aarch64/aarch64.md (define_insn "prefetch"): New.
1257 2014-12-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1259 * doc/install.texi: Remove mentions of cloog and ppl.
1260 * doc/invoke.texi: Likewise
1262 2014-12-04 Jakub Jelinek <jakub@redhat.com>
1265 * convert.c (convert_to_real, convert_to_expr, convert_to_complex):
1266 Handle COMPOUND_EXPR.
1268 2014-12-04 Richard Biener <rguenther@suse.de>
1270 * builtins.c (target_newline): Export.
1271 (target_percent_s_newline): Likewise.
1272 (fold_builtin_1): Do not fold printf functions here.
1273 (fold_builtin_2): Likewise.
1274 (fold_builtin_3): Likewise, do not fold strncat.
1275 (fold_builtin_strncat): Move to gimple-fold.c.
1276 (fold_builtin_printf): Likewise.
1277 * builtins.h (target_newline): Declare.
1278 (target_percent_s_newline): Likewise.
1279 * gimple-fold.c (gimple_fold_builtin_strncat): Move from
1280 builtins.c and gimplify.
1281 (gimple_fold_builtin_printf): Likewise.
1282 (gimple_fold_builtin): Fold strncat, printf, printf_unlocked,
1283 vprintf, printf_chk and vprintf_chk here.
1285 2014-12-03 David Edelsohn <dje.gcc@gmail.com>
1287 * config/rs6000/rs6000.md (floatsidf2_internal): Use std::swap.
1288 (floatunssidf2_internal): Same.
1289 * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Same.
1290 (rs6000_emit_int_cmove): Same.
1291 (rs6000_sched_reorder): Same.
1292 (altivec_expand_vec_perm_const): Same.
1293 (rs6000_expand_vec_perm_const_1): Same.
1295 2014-12-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1297 PR rtl-optimization/64010
1298 * reload.c (push_reload): Before reusing a register contained
1299 in an operand as input reload register, ensure that it is not
1300 used in CALL_INSN_FUNCTION_USAGE.
1302 2014-12-03 Ulrich Drepper <drepper@gmail.com>
1304 * Makefile.in: Use $(LN_S) instead of $(LN) -s and remove file first
1307 2014-12-03 Jakub Jelinek <jakub@redhat.com>
1309 * expmed.c (expand_mult): Use std::swap.
1312 * expmed.c (expand_widening_mult): Return const0_rtx if
1315 * doc/gimple.texi (gimple_build_assign_with_ops): Remove.
1316 (gimple_build_assign): Document the new overloads.
1318 2014-12-03 Michael Meissner <meissner@linux.vnet.ibm.com>
1321 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
1322 not create LO_SUM address for constant addresses if the type can
1323 go in Altivec registers.
1325 2014-12-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
1328 * pretty-print.c (output_buffer::output_buffer): Init flush_p to true.
1329 (pp_flush): Flush only if flush_p.
1330 (pp_really_flush): New.
1331 * pretty-print.h (struct output_buffer): Add flush_p.
1332 (pp_really_flush): Declare.
1334 2014-12-03 Jakub Jelinek <jakub@redhat.com>
1336 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add $(GENGTYPE_OBJS),
1337 gcc-ar.o, gcc-nm.o and gcc-ranlib.o.
1338 (GENGTYPE_OBJS): New.
1339 (gengtype-lex.o, gengtype-parse.o, gengtype-state.o, gengtype.o):
1340 Remove explicit dependencies.
1341 (CFLAGS-gengtype-lex.o, CFLAGS-gengtype-parse.o,
1342 CFLAGS-gengtype-state.o, CFLAGS-gengtype.o): Add -DHOST_GENERATOR_FILE
1343 instead of -DGENERATOR_FILE.
1344 (CFLAGS-errors.o): New.
1345 * gengtype.c: Instead of testing GENERATOR_FILE define, test
1346 HOST_GENERATOR_FILE. If defined, include config.h and define
1347 GENERATOR_FILE afterwards, otherwise include bconfig.h.
1348 * gengtype-parse.c: Likewise.
1349 * gengtype-state.c: Likewise.
1350 * gengtype-lex.l: Likewise.
1351 * errors.c: Likewise.
1353 2014-12-03 Joern Rennecke <joern.rennecke@embecosm.com>
1355 * config/epiphany/epiphany.c (epiphany_override_options):
1356 If TARGET_SOFT_CMPSF is not enabled, set flag_finite_math_only.
1357 * config/epiphany/epiphany.md (mov<mode>cc): Don't use
1358 reverse_condition_maybe_unordered if flag_finite_math_only is set.
1360 2014-12-03 Andrew Stubbs <ams@codesourcery.com>
1364 2014-09-17 Andrew Stubbs <ams@codesourcery.com>
1365 * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
1366 when architecture is older than ARMv7.
1368 2014-12-03 Richard Biener <rguenther@suse.de>
1370 * builtins.c (target_percent_c): Export.
1371 (fold_builtin_fprintf): Move to gimple-fold.c.
1372 (fold_builtin_2): Do not fold fprintf functions.
1373 (fold_builtin_3): Likewise.
1374 (fold_builtin_4): Remove.
1375 (fold_builtin_n): Do not call fold_builtin_4.
1376 * builtins.h (target_percent_c): Declare.
1377 * gimple-fold.c (gimple_fold_builtin_fprintf): Move from
1378 builtins.c and gimplify.
1379 (gimple_fold_builtin): Fold fprintf, fprintf_unlocked, vfprintf,
1380 fprintf_chk and vfprintf_chk here.
1382 2014-12-03 Martin Jambor <mjambor@suse.cz>
1385 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Check
1386 type sizes before view_converting.
1388 2014-12-03 H.J. Lu <hongjiu.lu@intel.com>
1390 PR rtl-optimization/64151
1391 PR rtl-optimization/64156
1392 * ira-costs.c (scan_one_insn): Revert r218266.
1394 2014-12-03 Richard Biener <rguenther@suse.de>
1396 * builtins.c (fold_builtin_fpclassify): Change to take
1397 array of arguments instead of CALL_EXPR tree.
1398 (MAX_ARGS_TO_FOLD_BUILTIN): Remove.
1399 (fold_builtin_n): Dispatch to fold_builtin_varargs.
1400 (fold_call_expr): Always use fold_builtin_n.
1401 (fold_builtin_call_array): Change to not build the unfolded call,
1402 always use fold_builtin_n.
1403 (fold_builtin_varargs): Change to take array of arguments instead
1405 (fold_call_stmt): Always use fold_builtin_n.
1406 * tree.c (build_call_expr_loc_array): Use fold_build_call_array_loc.
1407 * fold-const.c (fold_build_call_array_loc): Build the call
1408 if fold_builtin_call_array returned NULL_TREE.
1409 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Do not build
1410 a CALL_EXPR and use fold_builtin_call_array instead of
1413 2014-12-03 Alan Lawrence <alan.lawrence@arm.com>
1415 * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>, orn<mode>3,
1416 bic<mode>3, add<mode>3, sub<mode>3, neg<mode>2, abs<mode>2, and<mode>3,
1417 ior<mode>3, xor<mode>3, one_cmpl<mode>2,
1418 aarch64_simd_lshr<mode> ,arch64_simd_ashr<mode>,
1419 aarch64_simd_imm_shl<mode>, aarch64_simd_reg_sshl<mode>,
1420 aarch64_simd_reg_shl<mode>_unsigned, aarch64_simd_reg_shr<mode>_signed,
1421 ashl<mode>3, lshr<mode>3, ashr<mode>3, vashl<mode>3,
1422 reduc_plus_scal_<mode>, aarch64_vcond_internal<mode><mode>,
1423 vcondu<mode><mode>, aarch64_cm<optab><mode>, aarch64_cmtst<mode>):
1424 Change VDQ to VDQ_I.
1426 (mul<mode>3): Change VDQM to VDQ_BHSI.
1427 (aarch64_simd_vec_set<mode>,vashr<mode>3, vlshr<mode>3, vec_set<mode>,
1428 aarch64_mla<mode>, aarch64_mls<mode>, <su><maxmin><mode>3,
1429 aarch64_<sur>h<addsub><mode>): Change VQ_S to VDQ_BHSI.
1431 (*aarch64_<su>mlal<mode>, *aarch64_<su>mlsl<mode>,
1432 aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>,
1433 aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>, aarch64_<sur>shll_n<mode>):
1434 Change VDW to VD_BHSI.
1435 (*aarch64_combinez<mode>, *aarch64_combinez_be<mode>):
1436 Change VDIC to VD_BHSI.
1438 * config/aarch64/aarch64-simd-builtins.def (saddl, uaddl, ssubl, usubl,
1439 saddw, uaddw, ssubw, usubw, shadd, uhadd, srhadd, urhadd, sshll_n,
1440 ushll_n): Change BUILTIN_VDW to BUILTIN_VD_BHSI.
1442 * config/aarch64/iterators.md (SDQ_I, VDQ, VQ_S, VSDQ_I_BHSI, VDQM, VDW,
1443 VDIC, VDQQHS): Remove.
1444 (Vwtype): Update comment (changing VDW to VD_BHSI).
1446 2014-12-03 Richard Biener <rguenther@suse.de>
1449 * builtins.c (fold_builtin_logarithm): Implement simplifications ...
1450 * match.pd: ... here as patterns.
1452 2014-12-03 Prachi Godbole <prachi.godbole@imgtec.com>
1454 * config/mips/p5600.md (define_automaton, define_cpu_unit): Replace
1455 p5600_agen_pipe and p5600_alu_pipe with p5600_agen_alq_pipe.
1456 (p5600_int_arith_1, p5600_int_arith_2, p5600_int_arith_4): Change
1459 2014-12-03 Tom de Vries <tom@codesourcery.com>
1461 PR rtl-optimization/63957
1462 * doc/invoke.texi: Replace -fuse-caller-save with -fipa-ra.
1463 * final.c (rest_of_handle_final): Replace flag_use_caller_save with
1465 (get_call_reg_set_usage): Same.
1466 * lra-assigns.c (lra_assign): Same.
1467 * lra-constraints.c (need_for_call_save_p): Same.
1468 * lra-lives.c (process_bb_lives): Same.
1469 * lra.c (lra): Same.
1470 * calls.c (expand_call): Same.
1471 (emit_library_call_value_1): Same.
1472 * config/arm/arm.c (arm_option_override): Same.
1473 * opts.c (default_options_table): Replace OPT_fuse_caller_save with
1475 * target.def (call_fusage_contains_non_callee_clobbers): Replace
1476 fuse-caller-save with fipa-ra.
1477 * doc/tm.texi (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Same.
1480 2014-12-03 Yury Gribov <y.gribov@samsung.com>
1482 * sanopt.c (maybe_get_single_definition): New function.
1483 (maybe_get_dominating_check): Ditto.
1484 (can_remove_asan_check): Ditto.
1485 (struct tree_map_traits): New struct.
1486 (struct sanopt_ctx): Use custom traits for asan_check_map.
1487 (maybe_optimize_ubsan_null_ifn): Move code to
1488 maybe_get_dominating_check.
1489 (maybe_optimize_asan_check_ifn): Move code and take non-SSA expressions
1490 into account when optimizing.
1491 (sanopt_optimize_walker): Optimize ASan checks even when
1494 2014-12-03 Ilya Enkovich <ilya.enkovich@intel.com>
1496 * config/i386/constraints.md (Yr): New.
1497 * config/i386/i386.h (reg_class): Add NO_REX_SSE_REGS.
1498 (REG_CLASS_NAMES): Likewise.
1499 (REG_CLASS_CONTENTS): Likewise.
1500 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add alternatives
1501 which use only NO_REX_SSE_REGS.
1502 (vec_set<mode>_0): Likewise.
1503 (*vec_setv4sf_sse4_1): Likewise.
1504 (sse4_1_insertps): Likewise.
1505 (*sse4_1_extractps): Likewise.
1506 (*sse4_1_mulv2siv2di3<mask_name>): Likewise.
1507 (*<sse4_1_avx2>_mul<mode>3<mask_name>): Likewise.
1508 (*sse4_1_<code><mode>3<mask_name>): Likewise.
1509 (*sse4_1_<code><mode>3): Likewise.
1510 (*sse4_1_eqv2di3): Likewise.
1511 (sse4_2_gtv2di3): Likewise.
1512 (*vec_extractv4si): Likewise.
1513 (*vec_concatv2si_sse4_1): Likewise.
1514 (vec_concatv2di): Likewise.
1515 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Likewise.
1516 (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Likewise.
1517 (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Likewise.
1518 (<vi8_sse4_1_avx2_avx512>_movntdqa): Likewise.
1519 (<sse4_1_avx2>_mpsadbw): Likewise.
1520 (<sse4_1_avx2>packusdw<mask_name>): Likewise.
1521 (<sse4_1_avx2>_pblendvb): Likewise.
1522 (sse4_1_pblendw): Likewise.
1523 (sse4_1_phminposuw): Likewise.
1524 (sse4_1_<code>v8qiv8hi2<mask_name>): Likewise.
1525 (sse4_1_<code>v4qiv4si2<mask_name>): Likewise.
1526 (sse4_1_<code>v4hiv4si2<mask_name>): Likewise.
1527 (sse4_1_<code>v2qiv2di2<mask_name>): Likewise.
1528 (sse4_1_<code>v2hiv2di2<mask_name>): Likewise.
1529 (sse4_1_<code>v2siv2di2<mask_name>): Likewise.
1530 (sse4_1_ptest): Likewise.
1531 (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Likewise.
1532 (sse4_1_round<ssescalarmodesuffix>): Likewise.
1533 * config/i386/subst.md (mask_prefix4): New.
1534 * config/i386/x86-tune.def (X86_TUNE_AVOID_4BYTE_PREFIXES): New.
1536 2014-12-03 Segher Boessenkool <segher@kernel.crashing.org>
1538 PR rtl-optimization/52714
1539 * combine.c (try_combine): Allow combining two insns into two
1540 new insns if at least one of those is a noop.
1542 2014-12-03 Bin Cheng <bin.cheng@arm.com>
1544 * target.def (fusion_priority): Wrap code with @smallexample.
1545 * doc/tm.texi: Regenerated.
1547 2014-12-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
1549 * diagnostic.c (diagnostic_show_locus): Honor override_column when
1552 2014-12-02 Dmitry Vyukov <dvyukov@google.com>
1554 * asan.c: (asan_finish_file): Use default priority for constructors
1557 2014-12-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1560 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove
1561 invalid UNSPEC_TOCREL sanity check under ENABLE_CHECKING.
1563 2014-12-02 H.J. Lu <hongjiu.lu@intel.com>
1566 * config/i386/i386.c (decide_alg): Stop only if there aren't
1567 any usable algorithms.
1569 2014-12-02 Tom de Vries <tom@codesourcery.com>
1571 PR rtl-optimization/63718
1572 * config/arm/arm.c (arm_option_override): Disable fuse-caller-save for
1575 2014-12-02 Richard Biener <rguenther@suse.de>
1577 * match.pd: When combining divisions exclude the degenerate
1578 case involving INT_MIN from overflow handling.
1580 2014-12-02 Wilco Dijkstra <wilco.dijkstra@arm.com>
1582 * ira-costs.c (scan_one_insn): Improve spill cost adjustment.
1584 2014-12-02 Martin Jambor <mjambor@suse.cz>
1587 * ipa-cp.c (same_node_or_its_all_contexts_clone_p): New function.
1588 (cgraph_edge_brings_value_p): New parameter dest, use
1589 same_node_or_its_all_contexts_clone_p and check availability.
1590 (cgraph_edge_brings_value_p): Likewise.
1591 (get_info_about_necessary_edges): New parameter dest, pass it to
1592 cgraph_edge_brings_value_p. Update caller.
1593 (gather_edges_for_value): Likewise.
1594 (perhaps_add_new_callers): Use cgraph_edge_brings_value_p to check
1595 both the destination and availability.
1597 2014-12-02 Uros Bizjak <ubizjak@gmail.com>
1600 * config/alpha/alpha.md (call_value_osf_tlsgd): Do not split insn
1601 using post-reload splitter. Use peephole2 pass instead.
1602 (call_value_osf_tlsldm): Ditto.
1603 (TLS_CALL): New int iterator.
1604 (tls): New int attribute.
1605 (call_value_osf_<tls>): Merge insn pattern from call_value_osf_tlsgd
1606 and call_value_tlsldm using TLS_CALL int iterator.
1608 2014-12-02 Richard Biener <rguenther@suse.de>
1609 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
1611 * genmatch.c: Include hash-set.h.
1612 (fatal_at): Add source_location overload.
1613 (parser::record_operlist): New method.
1614 (parser::push_simplify): Likewise.
1615 (parser::oper_lists_set): New member.
1616 (parser::oper_lists): Likewise.
1617 (parser::parse_operation): Record seen operator list references.
1618 (parser::parse_c_expr): Likewise.
1619 (parser::parse_simplify): Init oper_lists_set and oper_lists
1620 and use push_simplify.
1621 (parser::parser): Init oper_lists_set and oper_lists.
1623 2014-12-02 Richard Biener <rguenther@suse.de>
1625 * match.pd: Restrict division combining to trunc_div and
1628 2014-12-02 Jakub Jelinek <jakub@redhat.com>
1630 * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv):
1631 Remove NULL last argument from create_tmp_var calls.
1632 * config/mips/mips.c (mips_atomic_assign_expand_fenv): Likewise.
1633 * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Likewise.
1634 * config/i386/i386.c (add_condition_to_bb,
1635 ix86_atomic_assign_expand_fenv): Likewise.
1636 * config/mep/mep.c (mep_gimplify_va_arg_expr): Likewise.
1637 * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
1638 * config/aarch64/aarch64-builtins.c
1639 (aarch64_atomic_assign_expand_fenv): Likewise.
1640 * config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr):
1642 * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Likewise.
1643 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Likewise.
1644 * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
1646 * config/alpha/alpha.c (alpha_gimple_fold_builtin): Use
1647 gimple_build_assign instead of gimple_build_assign_with_ops and swap
1648 the order of first two arguments.
1649 * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
1650 Likewise. Remove last NULL_TREE argument.
1652 2014-12-01 Segher Boessenkool <segher@kernel.crashing.org>
1654 PR rtl-optimization/59278
1655 * combine (reg_dead_at_p): Consider REG_UNUSED notes.
1657 2014-12-01 Segher Boessenkool <segher@kernel.crashing.org>
1659 * combine.c (try_combine): Use is_parallel_of_n_reg_sets some more.
1661 2014-12-01 Segher Boessenkool <segher@kernel.crashing.org>
1663 * combine.c (is_parallel_of_n_reg_sets): New function.
1664 (can_split_parallel_of_n_reg_sets): New function.
1665 (try_combine): If I2 is a PARALLEL of two SETs, split it into
1666 two insns if possible.
1668 2014-12-01 Tobias Burnus <burnus@net-b.de>
1669 Jack Howarth <howarth@bromo.med.uc.edu>
1672 * configure.ac (ac_has_isl_schedule_constraints_compute_schedule):
1674 * doc/install.texi (ISL): Permit ISL 0.14.
1675 * graphite-optimize-isl.c (getScheduleForBandList, optimize_isl):
1676 Conditionally use ISL 0.13+ functions.
1677 * graphite-interchange.c: Make 'extern "C"' conditional.
1678 * graphite-isl-ast-to-gimple.c: Ditto.
1679 * graphite-poly.c: Ditto.
1680 * graphite-sese-to-poly.c: Ditto.
1681 * config.in: Regenerate.
1682 * gcc/configure: Regenerate.
1684 2014-12-01 Segher Boessenkool <segher@kernel.crashing.org>
1686 * combine.c (distribute_links): Handle multiple SETs.
1688 2014-12-01 Segher Boessenkool <segher@kernel.crashing.org>
1690 * combine.c (struct insn_link): New field `regno'.
1691 (alloc_insn_link): New parameter `regno'. Use it.
1692 (find_single_use): Check the new field.
1693 (can_combine_def_p, can_combine_use_p): New functions. Split
1695 (create_log_links): ... here. Correct data type of `regno'.
1696 Adjust call to alloc_insn_link.
1697 (adjust_for_new_dest): Find regno, use it in call to
1699 (try_combine): Check reg_used_between_p when combining a PARALLEL
1700 as earlier insn. Adjust call to alloc_insn_link.
1701 (distribute_links): Check the new field.
1703 2014-12-01 David Malcolm <dmalcolm@redhat.com>
1706 * real.c (real_from_string): Add missing mpfr_clear.
1708 2014-12-01 David Malcolm <dmalcolm@redhat.com>
1711 * tree-ssa-math-opts.c (execute_cse_sincos_1): Fix a missing
1712 release of stmts by converting it to an auto_vec.
1714 2014-12-01 Richard Biener <rguenther@suse.de>
1716 * Makefile.in (gimple-match.o-warn): Use -Wno-unused instead of
1717 -Wno-unused-variable and -Wno-unused-but-set-variable to restore
1718 bootstrap with old GCC.
1719 (generic-match.o-warn): Likewise.
1721 2014-12-01 Richard Biener <rguenther@suse.de>
1723 * fold-const.c (const_binop): Handle POINTER_PLUS_EXPR.
1724 Properly handle FIXED_CST shifts by INTEGER_CST.
1725 (const_binop): Move COMPLEX_EXPR, VEC_PACK_TRUNC_EXPR,
1726 VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR,
1727 VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_EVEN_EXPR and
1728 VEC_WIDEN_MULT_ODD_EXPR handling here from ...
1729 (fold_binary_loc): ... here. Call const_binop overload
1732 2014-12-01 Marek Polacek <polacek@redhat.com>
1733 Jakub Jelinek <jakub@redhat.com>
1736 * ubsan.c (instrument_object_size): Stop searching if the base
1737 occurs in abnormal phi.
1739 2014-12-01 Marek Polacek <polacek@redhat.com>
1742 * ubsan.c (is_ubsan_builtin_p): Check also built-in class.
1744 2014-12-01 Jakub Jelinek <jakub@redhat.com>
1746 * gimple.h (gimple_build_assign_stat): Remove prototype.
1747 (gimple_build_assign): Remove define. Add overload prototypes
1748 with tree lhs and either a tree rhs, or enum tree_code and
1749 1, 2 or 3 tree operands.
1750 * gimple.c (gimple_build_assign_stat): Renamed to...
1751 (gimple_build_assign): ... this. Add overloads with
1752 enum tree_code and 1, 2 or 3 tree operands.
1753 (gimple_build_assign_with_ops): Remove 1 and 2 operand overloads.
1754 Rename the 3 operand overload to ...
1755 (gimple_build_assign_1): ... this. Make it static inline.
1756 * tree-ssa-strlen.c (get_string_length): Use gimple_build_assign
1757 instead of gimple_build_assign_with_ops, swap the order of first
1758 two arguments and adjust formatting where necessary.
1759 * tree-vect-slp.c (vect_get_constant_vectors,
1760 vect_create_mask_and_perm): Likewise.
1761 * tree-ssa-forwprop.c (simplify_rotate): Likewise.
1762 * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
1763 maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
1764 * tsan.c (instrument_builtin_call): Likewise.
1765 * tree-chkp.c (chkp_compute_bounds_for_assignment,
1766 chkp_generate_extern_var_bounds): Likewise.
1767 * tree-loop-distribution.c (generate_memset_builtin): Likewise.
1768 * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
1769 * gimple-builder.c (build_assign, build_type_cast): Likewise.
1770 * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
1771 * value-prof.c (gimple_divmod_fixed_value, gimple_mod_pow2,
1772 gimple_mod_subtract): Likewise.
1773 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
1774 * tree-vect-patterns.c (vect_recog_dot_prod_pattern,
1775 vect_recog_sad_pattern, vect_handle_widen_op_by_const,
1776 vect_recog_widen_mult_pattern, vect_recog_pow_pattern,
1777 vect_recog_widen_sum_pattern, vect_operation_fits_smaller_type,
1778 vect_recog_over_widening_pattern, vect_recog_widen_shift_pattern,
1779 vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
1780 vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
1781 adjust_bool_pattern_cast, adjust_bool_pattern,
1782 vect_recog_bool_pattern): Likewise.
1783 * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge,
1784 insert_initializers, introduce_cast_before_cand,
1785 replace_one_candidate): Likewise.
1786 * tree-ssa-math-opts.c (insert_reciprocals, powi_as_mults_1,
1787 powi_as_mults, build_and_insert_binop, build_and_insert_cast,
1788 pass_cse_sincos::execute, bswap_replace, convert_mult_to_fma):
1790 * tree-tailcall.c (adjust_return_value_with_ops,
1791 update_accumulator_with_ops): Likewise.
1792 * tree-predcom.c (reassociate_to_the_same_stmt): Likewise.
1793 * tree-ssa-reassoc.c (build_and_add_sum,
1794 optimize_range_tests_to_bit_test, update_ops,
1795 maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
1796 negate_value, repropagate_negates, attempt_builtin_powi,
1797 reassociate_bb): Likewise.
1798 * tree-vect-loop.c (vect_is_simple_reduction_1,
1799 get_initial_def_for_induction, vect_create_epilog_for_reduction):
1801 * ipa-split.c (split_function): Likewise.
1802 * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
1803 abs_replacement, neg_replacement): Likewise.
1804 * tree-profile.c (gimple_gen_edge_profiler): Likewise.
1805 * tree-vrp.c (simplify_truth_ops_using_ranges,
1806 simplify_float_conversion_using_ranges,
1807 simplify_internal_call_using_ranges): Likewise.
1808 * gimple-fold.c (rewrite_to_defined_overflow, gimple_build): Likewise.
1809 * tree-vect-generic.c (expand_vector_divmod,
1810 optimize_vector_constructor): Likewise.
1811 * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn,
1812 instrument_bool_enum_load): Likewise.
1813 * tree-ssa-loop-manip.c (create_iv): Likewise.
1814 * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
1815 expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
1816 expand_cilk_for, simd_clone_adjust): Likewise.
1817 * trans-mem.c (expand_transaction): Likewise.
1818 * tree-vect-data-refs.c (bump_vector_ptr, vect_permute_store_chain,
1819 vect_setup_realignment, vect_permute_load_chain,
1820 vect_shift_permute_load_chain): Likewise.
1821 * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
1822 vectorizable_simd_clone_call, vect_gen_widened_results_half,
1823 vect_create_vectorized_demotion_stmts, vectorizable_conversion,
1824 vectorizable_shift, vectorizable_operation, vectorizable_store,
1825 permute_vec_elements, vectorizable_load): Likewise.
1827 2014-12-01 Richard Biener <rguenther@suse.de>
1830 * tree.c (int_cst_hasher::hash): Use TYPE_UID instead of
1831 htab_hash_pointer to not break PCH.
1833 2014-12-01 Richard Biener <rguenther@suse.de>
1835 PR tree-optimization/15346
1836 * Makefile.in (gimple-match.o-warn): Remove -Wno-unused-parameter,
1837 add -Wno-unused-but-set-variable.
1838 * match.pd: Combine two successive divisions.
1840 2014-12-01 Richard Biener <rguenther@suse.de>
1843 * match.pd: Allow conversions in ~A + 1 -> -A, add -A - 1 -> ~A
1845 * fold-const.c (fold_binary_loc): Remove transforms here.
1847 2014-12-01 Maciej W. Rozycki <macro@codesourcery.com>
1849 * config/mips/mips.c (mips16_build_call_stub): Move the save of
1850 the return address in $18 ahead of passing arguments to FPRs.
1852 2014-12-01 Ilya Enkovich <ilya.enkovich@intel.com>
1855 * tree-chkp.c (chkp_find_bound_slots_1): Allow non constant
1856 values in array domain.
1858 2014-12-01 Yuri Rumyantsev <ysrumyan@gmail.com>
1860 PR tree-optimization/63941
1861 * tree-if-conv.c (add_to_predicate_list): Delete wrong assertion that
1862 DOM_BB has non-true predicate, conditionally set non-true predicate
1865 2014-12-01 Martin Jambor <mjambor@suse.cz>
1868 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Convert
1869 value of the argument to the type of the value in the condition.
1871 2014-12-01 Oleg Endo <olegendo@gcc.gnu.org>
1875 * config/sh/sh.c (sh_unspec_insn_p,
1876 sh_insn_operands_modified_between_p): New functions.
1877 (sh_split_movrt_negc_to_movt_xor): Do not delete insn if its operands
1878 are modified or if it has side effects, may trap or is volatile.
1880 2014-11-29 Jakub Jelinek <jakub@redhat.com>
1882 * gimple-expr.h (create_tmp_var_raw, create_tmp_var,
1883 create_tmp_reg): Add default NULL value to last argument.
1884 * tree-ssanames.h (make_ssa_name, copy_ssa_name): Likewise.
1885 * gimple-low.c (lower_builtin_posix_memalign): Remove NULL
1886 last argument from create_tmp_var_raw, create_tmp_var,
1887 create_tmp_reg, make_ssa_name and copy_ssa_name calls.
1888 * tree-ssa-strlen.c (get_string_length): Likewise.
1889 * tree-emutls.c (gen_emutls_addr, lower_emutls_1): Likewise.
1890 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
1891 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
1892 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
1893 * tree-ssa-forwprop.c (simplify_rotate): Likewise.
1894 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
1895 * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
1896 maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
1897 * tsan.c (instrument_expr, instrument_builtin_call,
1898 instrument_func_entry): Likewise.
1899 * varpool.c (add_new_static_var): Likewise.
1900 * tree-loop-distribution.c (generate_memset_builtin): Likewise.
1901 * gimplify.c (internal_get_tmp_var, gimplify_return_expr,
1902 gimplify_modify_expr_to_memcpy, gimplify_modify_expr_to_memset,
1903 gimplify_init_ctor_eval_range, gimplify_init_constructor,
1904 gimplify_omp_atomic, gimplify_expr): Likewise.
1905 * gimple-builder.c (build_assign, build_type_cast): Likewise.
1906 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1,
1907 slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge,
1908 vect_loop_versioning): Likewise.
1909 * tree-if-conv.c (version_loop_for_if_conversion): Likewise.
1910 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
1911 * tree-vect-patterns.c (vect_handle_widen_op_by_const,
1912 vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
1913 vect_recog_over_widening_pattern): Likewise.
1914 * tree-sra.c (build_ref_for_offset, create_access_replacement):
1916 * tree-cfg.c (make_blocks): Likewise.
1917 * tree-eh.c (lower_eh_constructs_2, lower_resx, lower_eh_dispatch):
1919 * tree-ssa-propagate.c (update_call_from_tree): Likewise.
1920 * tree-complex.c (get_component_ssa_name, expand_complex_div_wide):
1922 * tree-ssa-math-opts.c (build_and_insert_cast): Likewise.
1923 * tree-tailcall.c (update_accumulator_with_ops): Likewise.
1924 * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm,
1925 execute_load_motion, reassociate_to_the_same_stmt): Likewise.
1926 * tree-ssa-reassoc.c (build_and_add_sum,
1927 optimize_range_tests_to_bit_test, update_ops,
1928 maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
1929 negate_value, repropagate_negates): Likewise.
1930 * tree-vect-loop.c (vect_is_simple_reduction_1,
1931 vect_create_epilog_for_reduction): Likewise.
1932 * ipa-split.c (split_function): Likewise.
1933 * tree-inline.c (remap_ssa_name, setup_one_parameter,
1934 declare_return_variable, tree_function_versioning): Likewise.
1935 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
1936 * cfgexpand.c (update_alias_info_with_stack_vars, expand_used_vars):
1938 * tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
1939 neg_replacement): Likewise.
1940 * gimplify-me.c (force_gimple_operand_1, gimple_regimplify_operands):
1942 * tree-vrp.c (simplify_truth_ops_using_ranges,
1943 simplify_float_conversion_using_ranges,
1944 simplify_internal_call_using_ranges): Likewise.
1945 * tree-switch-conversion.c (emit_case_bit_tests,
1946 build_one_array, build_arrays, gen_def_assigns): Likewise.
1947 * gimple-fold.c (gimple_fold_builtin_memory_op,
1948 gimple_fold_builtin_strcat, gimple_fold_call, gimple_build): Likewise.
1949 * tree-vect-generic.c (expand_vector_divmod,
1950 optimize_vector_constructor): Likewise.
1951 * ubsan.c (ubsan_encode_value, ubsan_expand_null_ifn,
1952 ubsan_expand_objsize_ifn, instrument_si_overflow,
1953 instrument_bool_enum_load, instrument_nonnull_arg): Likewise.
1954 * tree-outof-ssa.c (insert_backedge_copies): Likewise.
1955 * tree-ssa-loop-manip.c (create_iv,
1956 tree_transform_and_unroll_loop): Likewise.
1957 * omp-low.c (scan_omp_parallel, lower_rec_simd_input_clauses,
1958 lower_rec_input_clauses, lower_lastprivate_clauses,
1959 expand_parallel_call, expand_omp_for_static_chunk,
1960 expand_omp_atomic_pipeline, expand_omp_target,
1961 maybe_add_implicit_barrier_cancel, lower_omp_single_simple,
1962 lower_omp_critical, lower_omp_for, task_copyfn_copy_decl,
1963 lower_depend_clauses, lower_omp_target, lower_omp_1,
1964 ipa_simd_modify_stmt_ops, simd_clone_adjust): Likewise.
1965 * tree-parloops.c (take_address_of, create_phi_for_local_result,
1966 create_call_for_reduction_1, separate_decls_in_region,
1967 create_parallel_loop): Likewise.
1968 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_dependence,
1969 handle_scalar_deps_crossing_scop_limits): Likewise.
1970 * trans-mem.c (lower_transaction, build_tm_load, build_tm_store,
1971 expand_assign_tm, expand_call_tm, expand_transaction,
1972 ipa_tm_insert_gettmclone_call): Likewise.
1973 * tree-vect-data-refs.c (bump_vector_ptr, vect_setup_realignment):
1975 * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
1976 vectorizable_call, vectorizable_simd_clone_call,
1977 vectorizable_conversion, vectorizable_store, permute_vec_elements,
1978 vectorizable_load): Likewise.
1980 2014-11-29 Tobias Burnus <burnus@net-b.de>
1981 Manuel López-Ibáñez <manu@gcc.gnu.org>
1983 * opt-functions.awk (lang_enabled_by): Support || for
1985 * optc-gen.awk: Ditto.
1986 * doc/options.texi (LangEnabledBy, EnabledBy): Document the
1989 2014-11-28 Mike Stump <mikestump@comcast.net>
1991 * bitmap.c (bitmap_ior): Zap current as it could be deleted.
1992 (bitmap_ior_and_compl): Likewise.
1994 2014-11-28 Vladimir Makarov <vmakarov@redhat.com>
1997 * lra.c (lra_substitute_pseudo): Ignore constant with int mode for
2000 2014-11-28 Segher Boessenkool <segher@kernel.crashing.org>
2003 * config/rs6000/rs6000.md (and<mode>3): Don't generate
2004 and<mode>3_imm unless rs6000_gen_cell_microcode is true.
2006 2014-11-28 Vladimir Makarov <vmakarov@redhat.com>
2008 PR rtl-optimization/64087
2009 * lra-lives.c (process_bb_lives): Add debug output.
2010 (lra_create_live_ranges): Don't remove dead insn on the second
2011 call of lra_create_live_ranges_1.
2013 2014-11-28 H.J. Lu <hongjiu.lu@intel.com>
2015 PR rtl-optimization/64037
2016 * combine.c (setup_incoming_promotions): Pass the argument
2017 before any promotions happen to promote_function_mode.
2019 2014-11-28 Evgeny Stupachenko <evstupac@gmail.com>
2021 * tree-vect-data-refs.c (vect_transform_grouped_load): Limit shift
2022 permutations to loads group of size 3.
2024 2014-11-28 Jiong Wang <jiong.wang@arm.com>
2026 * config/arm/arm.md (copysignsf3): New pattern.
2027 (copysigndf3): Likewise.
2029 2014-11-28 Andrey Turetskiy <andrey.turetskiy@intel.com>
2030 Ilya Verbin <ilya.verbin@intel.com>
2032 * omp-low.c (lower_omp_critical): Mark critical sections
2033 inside target functions as offloadable.
2035 2014-11-28 Ilya Verbin <ilya.verbin@intel.com>
2037 * lto-wrapper.c (run_gcc): Set have_lto and have_offload if at least one
2038 file contains sections with LTO and offload IR, respectively.
2040 2014-11-28 Ilya Verbin <ilya.verbin@intel.com>
2042 * cgraphunit.c (ipa_passes): Handle flag_generate_offload.
2043 (symbol_table::compile): Set flag_generate_offload if there is something
2045 * common.opt (flag_generate_offload): New Variable declaration.
2046 * dwarf2out.c (dwarf2out_finish): Handle flag_generate_offload.
2047 * ipa-inline-analysis.c (inline_generate_summary): Do not skip if
2048 flag_generate_offload is set.
2049 * lto-streamer.c (gate_lto_out): Handle flag_generate_offload.
2050 * passes.c (ipa_write_summaries): Do not skip if flag_generate_offload
2052 * toplev.c (compile_file): Emit LTO marker if offload info has been
2053 previously emitted. Do not emit lto_slim marker if
2054 flag_generate_offload is without flag_generate_lto.
2055 * tree.c (free_lang_data): Do not skip if flag_generate_offload is set.
2057 2014-11-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2059 * config/arm/arm-cores.def (cortex-a17.cortex-a7): New entry.
2060 * config/arm/arm-tables.opt: Regenerate.
2061 * config/arm/arm-tune.md: Regenerate.
2062 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a17.cortex-a7.
2063 * config/arm/t-aprofile: Add cortex-a17.cortex-a7 entry to
2066 2014-11-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2068 * config/arm/arm.md (generic_sched): Specify cortexa17 in 'no' list.
2069 Include cortex-a17.md.
2070 * config/arm/arm.c (arm_issue_rate): Specify 2 for cortexa17.
2071 * config/arm/arm-cores.def (cortex-a17): New entry.
2072 * config/arm/arm-tables.opt: Regenerate.
2073 * config/arm/arm-tune.md: Regenerate.
2074 * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=cortex-a17.
2075 * config/arm/cortex-a17.md: New file.
2076 * config/arm/cortex-a17-neon.md: New file.
2077 * config/arm/driver-arm.c (arm_cpu_table): Add entry for cortex-a17.
2078 * config/arm/t-aprofile: Add cortex-a17 entries to MULTILIB_MATCHES.
2080 2014-11-28 Richard Biener <rguenther@suse.de>
2083 * genmatch.c (dt_node::gen_kids_1): New function, split out
2084 from dt_node::gen_kids.
2085 (decision_tree::cmp_node): DT_TRUE are generally not equal.
2086 (decision_tree::find_node): Treat DT_TRUE as barrier for
2087 node CSE on the same level.
2088 (dt_node::append_node): Do not keep DT_TRUE last.
2089 (dt_node::gen_kids): Emit code after each DT_TRUE node seen.
2091 2014-11-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2093 * config/arm/t-aprofile (MULTILIB_MATCHES): New entry for
2096 2014-11-27 Uros Bizjak <ubizjak@gmail.com>
2098 * config/i386/i386.md (preferred_for_size): New attribute
2099 (*pushxf): Split Yx*r constraints to r,*r. Use preferred_for_size
2100 attribute to conditionally disable alternative 1.
2101 (*pushdf): Split Yd*r constraints to r,*r. Use preferred_for_size
2102 and prefered_for_speed attributes to conditionally disable
2104 (*movxf_internal): Split Yx*r constraints to r,*r. Use
2105 preferred_for_size attribute to conditionally disable
2106 alternatives 3 and 4.
2107 (*movdf_internal): Split Yd*r constraints to r,*r. Use
2108 preferred_for_size and prefered_for_speed attributes to conditionally
2109 disable alternatives 3 and 4.
2110 * config/i386/constraints.md (Yd, Yx): Remove register constraints.
2112 2014-11-27 Eric Botcazou <ebotcazou@adacore.com>
2114 * dwarf2out.c (set_block_origin_self): Skip nested functions.
2116 2014-11-27 H.J. Lu <hongjiu.lu@intel.com>
2119 * config/i386/i386.h (REAL_PIC_OFFSET_TABLE_REGNUM): Use
2121 * config/i386/rdos64.h (REAL_PIC_OFFSET_TABLE_REGNUM): Removed.
2123 2014-11-27 Martin Liska <mliska@suse.cz>
2124 David Malcolm <dmalcolm@redhat.com>
2126 * ipa-icf.c (sem_function::equals_private): int* is replaced with
2128 (sem_function::bb_dict_test): Likewise.
2129 * ipa-icf.h: Likewise.
2131 2014-11-27 Richard Biener <rguenther@suse.de>
2134 * fold-const.c (const_unop): Re-instantiate missing condition
2135 before calling fold_abs_const.
2137 PR tree-optimization/64088
2138 * tree-ssa-tail-merge.c (update_debug_stmt): After resetting
2139 the stmt break from the loop over use operands.
2141 2014-11-27 Ilya Tocar <ilya.tocar@intel.com>
2143 * config/i386/cpuid.h (bit_MPX, bit_BNDREGS, bit_BNDCSR):
2145 * config/i386/i386.c (get_builtin_code_for_version): Add avx512f.
2146 (fold_builtin_cpu): Ditto.
2147 * doc/extend.texi: Documment it.
2149 2014-11-27 Jakub Jelinek <jakub@redhat.com>
2152 * expr.c (expand_expr_addr_expr_1) <case COMPOUND_LITERAL_EXPR>:
2153 Handle it by returning address of COMPOUND_LITERAL_EXPR_DECL
2154 not only if modifier is EXPAND_INITIALIZER, but whenever
2155 COMPOUND_LITERAL_EXPR_DECL is non-NULL and TREE_STATIC.
2157 PR tree-optimization/64024
2158 * tree-vectorizer.h (struct _stmt_vec_info): Remove simd_clone_fndecl
2159 field. Add simd_clone_info field.
2160 (STMT_VINFO_SIMD_CLONE_FNDECL): Remove.
2161 (STMT_VINFO_SIMD_CLONE_INFO): Define.
2162 * tree-vect-stmts.c (vectorizable_simd_clone_call): Adjust for
2163 STMT_VINFO_SIMD_CLONE_FNDECL becoming first element of
2164 STMT_VINFO_SIMD_CLONE_INFO vector. For linear arguments, remember
2165 base and linear_step from analysis phase and use it during transform
2166 phase, biased by the difference between LOOP_VINFO_NITERS{_UNCHANGED,}
2167 multiplied by linear_step.
2168 (free_stmt_vec_info): Release STMT_VINFO_SIMD_CLONE_INFO.
2171 * alias.c (find_base_term): Use std::swap. Prefer tmp2
2172 if it is CONSTANT_P other than CONST_INT.
2174 2014-11-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
2177 * config/arm/arm.c (dump_minipool): dispatch to consttable pattern
2179 * config/arm/arm.md (consttable_1): Move from config/arm/thumb1.md and
2180 make it TARGET_EITHER.
2181 (consttable_2): Move from config/arm/thumb1.md, make it TARGET_EITHER
2182 and move HFmode handling from consttable_4 to it.
2183 (consttable_4): Move HFmode handling to consttable_2 pattern.
2184 * config/arm/thumb1.md (consttable_1): Move to config/arm/arm.md.
2185 (consttable_2): Ditto.
2187 2014-11-27 Richard Biener <rguenther@suse.de>
2189 * tree-ssa-sccvn.c (try_to_simplify): Allow
2190 gimple_fold_stmt_to_constant_1 to follow SSA edges.
2192 2014-11-27 Richard Biener <rguenther@suse.de>
2194 PR tree-optimization/64083
2195 * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
2196 forcibly mark loop for removal the wrong way.
2198 2014-11-27 Richard Biener <rguenther@suse.de>
2201 * alias.c (mems_in_disjoint_alias_sets_p): Remove assert
2202 and instead return false when !fstrict-aliasing.
2204 2014-11-27 Richard Biener <rguenther@suse.de>
2206 PR tree-optimization/61634
2207 * tree-vect-slp.c: Include gimple-walk.h.
2208 (vect_detect_hybrid_slp_stmts): Rewrite to propagate hybrid
2209 down the SLP tree for one scalar statement.
2210 (vect_detect_hybrid_slp_1): New walker function.
2211 (vect_detect_hybrid_slp_2): Likewise.
2212 (vect_detect_hybrid_slp): Properly handle pattern statements
2213 in a pre-scan over all loop stmts.
2215 2014-11-27 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2218 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2219 * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
2220 aarch64_convert_mode, aarch64_gen_ccmp_first,
2221 aarch64_gen_ccmp_next): New functions.
2222 (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.
2224 2014-11-26 Jakub Jelinek <jakub@redhat.com>
2226 * gcc.c (SANITIZER_SPEC): Don't error on -fsanitize=thread
2227 without -pie or -shared, error on -fsanitize=thread -static instead.
2229 2014-11-26 Bernd Edlinger <bernd.edlinger@hotmail.de>
2232 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Fix comment.
2233 (cgraph_node::function_or_virtual_thunk_symbol): New function.
2234 (cgraph_node::call_for_symbol_and_aliases): Fix comment.
2235 (cgraph_node::call_for_symbol_thunks_and_aliases): Adjust comment.
2236 Add new optional parameter exclude_virtual_thunks.
2237 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Add new
2238 optional parameter exclude_virtual_thunks.
2239 (cgraph_node::set_const_flag): Don't propagate to virtual thunks.
2240 (cgraph_node::set_pure_flag): Likewise.
2241 (cgraph_node::function_symbol): Simplified.
2242 (cgraph_node::function_or_virtual_thunk_symbol): New function.
2243 * ipa-pure-const.c (analyze_function): For virtual thunks set
2244 pure_const_state to IPA_NEITHER.
2245 (propagate_pure_const): Use function_or_virtual_thunk_symbol.
2247 2014-11-26 Richard Biener <rguenther@suse.de>
2250 * tree-data-ref.c (split_constant_offset_1): Do not follow
2251 SSA edges for SSA names with SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2253 2014-11-26 Richard Biener <rguenther@suse.de>
2255 * fold-const.h (const_unop): Declare.
2256 (const_binop): Likewise.
2257 * fold-const.c (const_binop): Export overload that expects
2258 a type parameter and dispatches to fold_relational_const as well.
2259 Check both operand kinds for guarding the transforms.
2260 (const_unop): New function, with constant folding from fold_unary_loc.
2261 (fold_unary_loc): Dispatch to const_unop for tcc_constant operand.
2262 Remove constant folding done there from the simplifications.
2263 (fold_binary_loc): Check for constants using CONSTANT_CLASS_P.
2264 (fold_negate_expr): Remove dead code from the REAL_CST case.
2265 Avoid building garbage in the COMPLEX_CST case.
2266 * gimple-match-head.c (gimple_resimplify1): Dispatch to
2268 (gimple_resimplify2): Dispatch to const_binop.
2269 (gimple_simplify): Likewise.
2271 2014-11-26 Ilya Enkovich <ilya.enkovich@intel.com>
2274 * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Ignore
2275 debug statement when searching for a new position for
2276 bounds load/creation statement.
2278 2014-11-26 Marek Polacek <polacek@redhat.com>
2281 * asan.c (initialize_sanitizer_builtins): Add BT_FN_SIZE_CONST_PTR_INT
2282 var. Conditionally build BUILT_IN_OBJECT_SIZE decl.
2283 (ATTR_PURE_NOTHROW_LEAF_LIST): Define.
2285 2014-11-26 Ilya Enkovich <ilya.enkovich@intel.com>
2288 * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Use
2289 proper size for function_code bitfield.
2290 (pack_ts_function_decl_value_fields): Likewise.
2292 2014-11-21 Mark Wielaard <mjw@redhat.com>
2294 * doc/invoke.texi (-gdwarf-@{version}): Mention experimental DWARFv5.
2295 * opts.c (common_handle_option): Accept -gdwarf-5.
2296 * dwarf2out.c (is_cxx): Add DW_LANG_C_plus_plus_11 and
2297 DW_LANG_C_plus_plus_14.
2298 (lower_bound_default): Likewise. Plus DW_LANG_C11.
2299 (gen_compile_unit_die): Output DW_LANG_C_plus_plus_11,
2300 DW_LANG_C_plus_plus_14 or DW_LANG_C11.
2301 (output_compilation_unit_header): Output at most a DWARFv4 header.
2302 (output_skeleton_debug_sections): Likewise.
2303 (output_line_info): Likewise.
2304 (output_aranges): Document header version number.
2306 2014-11-26 Richard Biener <rguenther@suse.de>
2308 * gimple-fold.c (get_symbol_constant_value): Allow all
2309 GIMPLE register type zero-constants.
2311 2014-11-26 Mark Wielaard <mjw@redhat.com>
2313 * dwarf2out.c (gen_subprogram_die): Add DW_AT_noreturn when the
2314 function decl has TREE_THIS_VOLATILE.
2316 2014-11-26 Richard Biener <rguenther@suse.de>
2318 PR tree-optimization/62238
2319 * tree-predcom.c (ref_at_iteration): Unshare the expression
2320 before gimplifying it.
2321 (prepare_initializers_chain): Discard unused seq.
2323 2014-11-26 Prachi Godbole <prachi.godbole@imgtec.com>
2325 * config/mips/mips.c (mips_rtx_cost_data): Fix memory_latency cost
2328 2014-11-25 Vladimir Makarov <vmakarov@redhat.com>
2330 * ira-lives.c (process_bb_node_lives): Make code with conditional
2331 REAL_PIC_OFFSET_TABLE_REGNUM.
2333 2014-11-25 Vladimir Makarov <vmakarov@redhat.com>
2336 * ira-lives.c (process_bb_node_lives): Check and remove conflict
2337 of pic pseudo with pic hard reg.
2339 2014-11-25 Rohit <rohitarulraj@freescale.com>
2342 * config/rs6000/darwin.h (REGISTER_NAMES): Update based on 32 newly
2343 added GCC hard register numbers for SPE high registers.
2345 2014-11-25 Segher Boessenkool <segher@kernel.crashing.org>
2347 * bt-load.c (migrate_btr_defs): Get the key of a heap entry
2348 before removing it, not after.
2350 2014-11-25 Segher Boessenkool <segher@kernel.crashing.org>
2352 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Remove
2355 2014-11-25 Segher Boessenkool <segher@kernel.crashing.org>
2357 * config/rs6000/sysv4.h (ASM_OUTPUT_REG_POP): Use addi instead
2360 2014-11-25 Segher Boessenkool <segher@kernel.crashing.org>
2362 * config/rs6000/rs6000.md (iorxor, IORXOR): Delete code_attrs.
2363 (rest of file): Replace those with code resp. CODE.
2365 2014-11-25 Tom de Vries <tom@codesourcery.com>
2367 * tree-cfg.c (verify_sese): New function.
2368 (move_sese_region_to_fn): Call verify_sese.
2369 * tree-cfg.h (verify_sese): Declare.
2371 2014-11-25 Richard Biener <rguenther@suse.de>
2374 * lto-streamer-out.c (output_struct_function_base): Stream
2376 * lto-streamer-in.c (input_struct_function_base): Likewise.
2378 2014-11-25 Martin Liska <mliska@suse.cz>
2382 * sreal.c (sreal::operator+): Addition fixed.
2383 (sreal::signedless_plus): Negative numbers are
2385 (sreal::operator-): Subtraction is fixed.
2386 (sreal::signedless_minus): Negative numbers are
2388 * sreal.h (sreal::operator<): Equal negative numbers
2389 are compared correctly.
2390 (sreal::shift): New checking asserts are introduced.
2393 2014-11-25 Richard Biener <rguenther@suse.de>
2395 PR tree-optimization/61927
2396 * tree-vect-loop.c (vect_analyze_loop_2): Revert ordering
2397 of group and pattern analysis to the one in GCC 4.8.
2399 2014-11-25 Ilya Tocar <ilya.tocar@intel.com>
2400 Jakub Jelinek <jakub@redhat.com>
2402 * gcc.c (handle_foffload_option): Remove unnecessary calls to strchr,
2404 * lto-wrapper.c (append_offload_options): Likewise.
2406 2014-11-25 Eric Botcazou <ebotcazou@adacore.com>
2408 * config/rs6000/rs6000.c (rs6000_call_aix): For the AIX ABI, do not
2409 load the static chain if the call was originally direct.
2411 2014-11-25 Jan Hubicka <hubicka@ucw.cz>
2414 * ipa-prop.c (ipa_analyze_call_uses): Don't call get_dynamic_type when
2415 devirtualization is disabled.
2417 2014-11-24 Michael Meissner <meissner@linux.vnet.ibm.com>
2420 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
2421 Altivec & -16 mask if the type is not valid for Altivec registers.
2422 (rs6000_secondary_reload_memory): Add support for ((reg + const) +
2423 reg) that occurs during push_reload processing.
2425 * config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
2426 alternative for moving constant vectors which are easy altivec
2427 constants to GPRs. Set the length attribute each of the
2430 * config/rs6000/rs6000-cpus.def: Undo November 21st changes, a
2431 work in progress patch was committed instead of the fixes for
2433 * config/rs6000/rs6000.c: Likewise.
2435 2014-11-22 Jan Hubicka <hubicka@ucw.cz>
2438 * ipa-inline-transform.c (can_remove_node_now_p_1): Handle alises
2439 and -fno-devirtualize more carefully.
2440 (can_remove_node_now_p): Update.
2442 2014-11-24 Andrew Pinski <apinski@cavium.com>
2445 * shrink-wrap.c (move_insn_for_shrink_wrap): Allow LO_SUM also.
2447 2014-11-24 Alan Lawrence <alan.lawrence@arm.com>
2449 * config/aarch64/aarch64-simd.md (vec_shr<mode>): New.
2451 2014-11-24 Alan Lawrence <alan.lawrence@arm.com>
2453 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
2454 Refactor by combining switch statements and make arrays into scalars.
2456 2014-11-24 David Edelsohn <dje.gcc@gmail.com>
2459 * dbxout.c: Include stringpool.h
2460 (dbxout_type) [default]: Ignore auto type.
2462 2014-11-24 Richard Biener <rguenther@suse.de>
2464 PR tree-optimization/63679
2465 * tree-ssa-sccvn.c: Include ipa-ref.h, plugin-api.h and cgraph.h.
2466 (copy_reference_ops_from_ref): Fix non-constant ADDR_EXPR case
2467 to properly leave off at -1.
2468 (fully_constant_vn_reference_p): Generalize folding from
2469 constant initializers.
2470 (vn_reference_lookup_3): When looking through aggregate copies
2471 handle offsetted reads and try simplifying the result to
2473 * gimple-fold.h (fold_ctor_reference): Export.
2474 * gimple-fold.c (fold_ctor_reference): Likewise.
2476 2014-11-24 Petr Murzin <petr.murzin@intel.com>
2478 * simplify-rtx.c (simplify_ternary_operation): Simplify
2479 vec_merge (vec_duplicate (vec_select)).
2481 2014-11-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2483 * config/aarch64/aarch64.c (AARCH64_FUSE_ADRP_LDR): Define.
2484 (cortexa53_tunings): Specify AARCH64_FUSE_ADRP_LDR in fuseable_ops.
2485 (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_LDR.
2487 2014-11-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2489 * config/aarch64/aarch64.c (AARCH64_FUSE_MOVK_MOVK): Define.
2490 (cortexa53_tunings): Specify AARCH64_FUSE_MOVK_MOVK in fuseable_ops.
2491 (cortexa57_tunings): Likewise.
2492 (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_MOVK_MOVK.
2494 2014-11-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2496 * sched-deps.c (sched_macro_fuse_insns): Do not check modified_in_p
2497 in the not conditional jump case.
2498 * doc/tm.texi (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
2499 * target.def (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
2501 2014-11-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2503 * config/aarch64/aarch64.c: Include tm-constrs.h
2504 (AARCH64_FUSE_ADRP_ADD): Define.
2505 (cortexa57_tunings): Add AARCH64_FUSE_ADRP_ADD to fuseable_ops.
2506 (cortexa53_tunings): Likewise.
2507 (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_ADD.
2509 2014-11-24 Martin Liska <mliska@suse.cz>
2511 * ipa-inline.c (edge_badness): long is replaced by sreal
2512 as fibonacci_heap template type.
2513 (update_edge_key): Likewise.
2514 (inline_small_functions): Likewise.
2516 2014-11-24 Martin Liska <mliska@suse.cz>
2518 * predict.c (propagate_freq): More elegant sreal API is used.
2519 (estimate_bb_frequencies): Precomputed constants replaced by integer
2521 * sreal.c (sreal::normalize): New function.
2522 (sreal::to_int): Likewise.
2523 (sreal::operator+): Likewise.
2524 (sreal::operator-): Likewise.
2525 (sreal::signedless_plus): Likewise.
2526 (sreal::signedless_minus): Likewise.
2527 (sreal::operator/): Negative number support is added.
2528 * sreal.h: Definition of new functions added.
2529 (inline sreal operator<<): New function.
2530 (inline sreal operator>>): Likewise.
2532 2014-11-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2534 * config/aarch64/aarch64-protos.h (struct tune_params): Add
2536 * config/aarch64/aarch64.c (generic_tunings): Specify fuseable_ops.
2537 (cortexa53_tunings): Likewise.
2538 (cortexa57_tunings): Likewise.
2539 (thunderx_tunings): Likewise.
2540 (aarch64_macro_fusion_p): New function.
2541 (aarch_macro_fusion_pair_p): Likewise.
2542 (TARGET_SCHED_MACRO_FUSION_P): Define.
2543 (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
2544 (AARCH64_FUSE_MOV_MOVK): Likewise.
2545 (AARCH64_FUSE_NOTHING): Likewise.
2547 2014-11-24 Martin Liska <mliska@suse.cz>
2550 * bb-reorder.c (find_traces_1_round): decreate_key is replaced
2551 with replace_key method.
2552 * fibonacci_heap.h (fibonacci_heap::insert): New argument.
2553 (fibonacci_heap::replace_key_data): Likewise.
2554 (fibonacci_heap::replace_key): New method that can even increment key,
2555 this operation costs O(log N).
2556 (fibonacci_heap::extract_min): New argument.
2557 (fibonacci_heap::delete_node): Likewise.
2559 2014-11-24 Richard Biener <rguenther@suse.de>
2561 PR tree-optimization/55334
2562 * function.h (struct function): Add last_clique member.
2563 * tree-inline.c (remap_dependence_clique): New function.
2564 (remap_gimple_op_r): Remap dependence cliques in MEM_REFs.
2565 (copy_tree_body_r): Likewise.
2566 (copy_cfg_body): Free dependence map.
2567 (copy_gimple_seq_and_replace_locals): Likewise.
2568 * tree-pretty-print.c (dump_generic_node): Dump
2570 * tree-ssa-alias.c (refs_may_alias_p_1): Use dependence info
2571 to answer alias query.
2572 * tree-ssa-structalias.c: Include tree-phinodes.h, ssa-iterators.h,
2573 tree-pretty-print.h and gimple-walk.h.
2574 (struct variable_info): Add is_restrict_var flag and ruid
2576 (new_var_info): Initialize is_restrict_var.
2577 (make_constraint_from_restrict): Likewise.
2578 (create_variable_info_for): Exclude restricts from global vars
2580 (intra_create_variable_infos): But not those from parameters.
2581 (visit_loadstore): New function.
2582 (maybe_set_dependence_info): Likewise.
2583 (compute_dependence_clique): Likewise.
2584 (compute_may_aliases): Call compute_dependence_clique.
2585 * tree-data-ref.c (dr_analyze_indices): Copy dependence info
2587 (dr_may_alias_p): Use recorded dependence info to answer
2589 * tree-core.h (struct tree_base): Add clique, base struct in
2591 * tree.h (MR_DEPENDENCE_CLIQUE): New macro.
2592 (MR_DEPENDENCE_BASE): Likewise.
2593 * tree-inline.h (dependence_hasher): New hash-map kind.
2594 (struct copy_body_data): Add dependence_map pointer.
2595 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Avoid
2596 throwing away dependence info.
2597 * tree-streamer-in.c (unpack_value_fields): Stream dependence info.
2598 * tree-streamer-out.c (streamer_pack_tree_bitfields): Likewise.
2600 2014-11-23 Oleg Endo <olegendo@gcc.gnu.org>
2603 * config/sh/sh_optimize_sett_clrt.cc
2604 (sh_optimize_sett_clrt::find_last_ccreg_values): Return bool instead
2605 of void. Abort at complex edges.
2606 (sh_optimize_sett_clrt::execute): Do nothing if find_last_ccreg_values
2609 2014-11-22 John David Anglin <danglin@gcc.gnu.org>
2612 * configure.ac: Check for strtol, strtoul, strtoll and strtoull
2614 * configure: Regenerated.
2615 * config.in: Regenerated.
2617 2014-11-22 Jan Hubicka <hubicka@ucw.cz>
2619 * ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline
2620 clones as having abstract origin used.
2621 * ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract
2623 (clone_inlined_nodes): Copy abstract originflag.
2624 * lto-cgraph.c (compute_ltrans_boundary): Use get_create to get
2625 abstract origin node.
2627 2014-11-22 Uros Bizjak <ubizjak@gmail.com>
2629 * params.def (PARAM_MAX_COMPLETELY_PEELED_INSNS): Increase to 200.
2630 * config/i386/i386.c (ix86_option_override_internal): Do not increase
2631 PARAM_MAX_COMPLETELY_PEELED_INSNS.
2633 2014-11-22 Oleg Endo <olegendo@gcc.gnu.org>
2637 * config/sh/sh_treg_combine.cc (sh_treg_combine::make_not_reg_insn):
2638 Do not emit bitwise not insn. Emit logical not insn sequence instead.
2639 Adjust related comments throughout the file.
2641 2014-11-22 Oleg Endo <olegendo@gcc.gnu.org>
2645 * config/sh/sh.c (sh_is_logical_t_store_expr,
2646 sh_try_omit_signzero_extend): Use rtx_insn* for insn argument.
2647 (sh_split_movrt_negc_to_movt_xor): New function.
2648 (sh_find_set_of_reg): Move to ...
2649 * config/sh/sh-protos.h (sh_find_set_of_reg): ... here and convert
2650 to template function.
2651 (set_of_reg): Use rtx_insn* for insn member.
2652 (sh_is_logical_t_store_expr, sh_try_omit_signzero_extend): Use
2653 rtx_insn* for insn argument.
2654 * config/sh/sh.md (movrt_negc, *movrt_negc): Split into movt-xor
2655 sequence using new sh_split_movrt_negc_to_movt_xor function.
2656 (movrt_xor): Allow also for SH2A.
2657 (*movt_movrt): Delete insns and splits.
2659 2014-11-22 Marc Glisse <marc.glisse@inria.fr>
2661 PR tree-optimization/60770
2662 * tree-sra.c (clobber_subtree): New function.
2663 (sra_modify_constructor_assign): Call it.
2665 2014-11-21 Vladimir Makarov <vmakarov@redhat.com>
2668 * lra-lives.c (mark_regno_live, mark_regno_dead): Remove last
2670 (process_bb_lives): Rename dead_insn_p on remove_p
2671 and global_live_info_p on dead_insn_p. Calculate local live info
2672 unconditionally. Remove last argument in calls mark_regno_live and
2673 mark_regno_dead. Reorganize body of EXECUTE_IF_SET_IN_BITMAP.
2674 (lra_create_live_ranges): Rename to lra_create_live_ranges_1.
2675 Return bool. Rename global_live_info_p on dead_insn_p. Return
2676 flag of live info change.
2677 (lra_create_live_ranges): New.
2679 2014-11-21 Jakub Jelinek <jakub@redhat.com>
2683 * internal-fn.c (expand_arith_overflow_result_store,
2684 expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow): Use
2685 do_compare_rtx_and_jump instead of emit_cmp_and_jump_insns everywhere,
2686 adjust arguments to those functions. Use unsignedp = true for
2687 EQ, NE, GEU, LEU, LTU and GTU comparisons.
2689 PR tree-optimization/64006
2690 * tree-vrp.c (stmt_interesting_for_vrp): Return true
2691 for {ADD,SUB,MUL}_OVERFLOW internal calls.
2692 (vrp_visit_assignment_or_call): For {ADD,SUB,MUL}_OVERFLOW
2693 internal calls, check if any REALPART_EXPR/IMAGPART_EXPR
2694 immediate uses would change their value ranges and return
2695 SSA_PROP_INTERESTING if so, or SSA_PROP_NOT_INTERESTING
2696 if there are some REALPART_EXPR/IMAGPART_EXPR immediate uses
2697 interesting for vrp.
2699 2014-11-21 Michael Meissner <meissner@linux.vnet.ibm.com>
2702 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
2703 Altivec & -16 mask if the type is not valid for Altivec registers.
2704 (rs6000_secondary_reload_memory): Add support for ((reg + const) +
2705 reg) that occurs during push_reload processing.
2707 * config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
2708 alternative for moving constant vectors which are easy altivec
2709 constants to GPRs. Set the length attribute each of the
2712 2014-11-21 Matthew Fortune <matthew.fortune@imgtec.com>
2714 * configure.ac: When checking for MIPS .module support ensure that
2715 o32 FPXX is supported to avoid a second configure check.
2716 * configure: Regenerate.
2718 2014-11-21 Jiong Wang <jiong.wang@arm.com>
2720 * config/aarch64/iterators.md (VS): New mode iterator.
2721 (vsi2qi): New mode attribute.
2723 * config/aarch64/aarch64-simd-builtins.def: New entry for ctz.
2724 * config/aarch64/aarch64-simd.md (ctz<mode>2): New pattern for ctz.
2725 * config/aarch64/aarch64-builtins.c
2726 (aarch64_builtin_vectorized_function): Support BUILT_IN_CTZ.
2728 2014-11-21 H.J. Lu <hongjiu.lu@intel.com>
2731 * configure: Regenerated.
2733 2014-11-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2735 * config/aarch64/arm_neon.h (vsqrt_f64): New intrinsic.
2737 2014-11-21 Ilya Tocar <ilya.tocar@intel.com>
2739 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
2740 OPTION_MASK_ISA_PCOMMIT_SET): New.
2741 (ix86_handle_option): Handle OPT_mpcommit.
2742 * config.gcc: Add pcommitintrin.h
2743 * config/i386/pcommitintrin.h: New file.
2744 * config/i386/cpuid.h (bit_PCOMMIT): Define.
2745 * config/i386/driver-i386.c (host_detect_local_cpu): Detect pcommit.
2746 * config/i386/i386-c.c (ix86_target_macros_internal): Define
2748 * config/i386/i386.c (ix86_target_string): Add -mpcommit.
2749 (PTA_PCOMMIT): Define.
2750 (ix86_option_override_internal): Handle new option.
2751 (ix86_valid_target_attribute_inner_p): Add pcommit.
2752 (ix86_builtins): Add IX86_BUILTIN_PCOMMIT.
2753 (bdesc_special_args): Add __builtin_ia32_pcommit.
2754 * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Define.
2755 * config/i386/i386.md (unspecv): Add UNSPECV_PCOMMIT.
2756 (pcommit): New instruction.
2757 * config/i386/i386.opt: Add mpcommit.
2758 * config/i386/x86intrin.h: Include pcommitintrin.h.
2760 2014-11-20 Mark Wielaard <mjw@redhat.com>
2763 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use lang_GNU_C.
2764 * config/darwin.c (darwin_file_end): Use lang_GNU_CXX.
2765 (darwin_override_options): Likewise.
2766 * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
2768 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
2770 * dbxout.c (get_lang_number): Likewise.
2771 (dbxout_type): Likewise.
2772 (dbxout_symbol_location): Likewise.
2773 * dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype
2774 also for DW_LANG_{C,C99,ObjC}.
2775 (highest_c_language): New function.
2776 (gen_compile_unit_die): Call highest_c_language to merge LTO
2777 TRANSLATION_UNIT_LANGUAGE. Use strncmp language_string to
2778 determine if DW_LANG_C99 or DW_LANG_C89 should be returned.
2779 * fold-const.c (fold_cond_expr_with_comparison): Use lang_GNU_CXX.
2780 * langhooks.h (struct lang_hooks): Add version comment to name.
2781 (lang_GNU_C): New function declaration.
2782 (lang_GNU_CXX): Likewise.
2783 * langhooks.c (lang_GNU_C): New function.
2784 (lang_GNU_CXX): Likewise.
2785 * vmsdbgout.c (vmsdbgout_init): Use lang_GNU_C and lang_GNU_CXX.
2787 2014-11-21 Ilya Tocar <ilya.tocar@intel.com>
2789 * common/config/i386/i386-common.c (OPTION_MASK_ISA_CLWB_UNSET,
2790 OPTION_MASK_ISA_CLWB_SET): New.
2791 (ix86_handle_option): Handle OPT_mclwb.
2792 * config.gcc: Add clwbintrin.h.
2793 * config/i386/clwbintrin.h: New file.
2794 * config/i386/cpuid.h (bit_CLWB): Define.
2795 * config/i386/driver-i386.c (host_detect_local_cpu): Detect clwb.
2796 * config/i386/i386-c.c (ix86_target_macros_internal): Define
2798 * config/i386/i386.c (ix86_target_string): Add -mclwb.
2800 (ix86_option_override_internal): Handle new option.
2801 (ix86_valid_target_attribute_inner_p): Add clwb.
2802 (ix86_builtins): Add IX86_BUILTIN_CLWB.
2803 (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clwb.
2804 (ix86_expand_builtin): Handle IX86_BUILTIN_CLWB.
2805 * config/i386/i386.h (TARGET_CLWB, TARGET_CLWB_P): Define.
2806 * config/i386/i386.md (unspecv): Add UNSPECV_CLWB.
2807 (clwb): New instruction.
2808 * config/i386/i386.opt: Add mclwb.
2809 * config/i386/x86intrin.h: Include clwbintrin.h.
2811 2014-11-21 Ilya Tocar <ilya.tocar@intel.com>
2813 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET
2814 OPTION_MASK_ISA_AVX512VBMI_UNSET): New.
2815 (ix86_handle_option): Handle OPT_mavx512vbmi.
2816 * config.gcc: Add avx512vbmiintrin.h, avx512vbmivlintrin.h.
2817 * config/i386/avx512vbmiintrin.h: New file.
2818 * config/i386/avx512vbmivlintrin.h: Ditto.
2819 * config/i386/cpuid.h (bit_AVX512VBMI): New.
2820 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vbmi.
2821 * config/i386/i386-c.c (ix86_target_macros_internal): Define
2823 * config/i386/i386.c (ix86_target_string): Add -mavx512vbmi.
2824 (PTA_AVX512VBMI): Define.
2825 (ix86_option_override_internal): Handle new options.
2826 (ix86_valid_target_attribute_inner_p): Add avx512vbmi,
2827 (ix86_builtins): Add IX86_BUILTIN_VPMULTISHIFTQB512,
2828 IX86_BUILTIN_VPMULTISHIFTQB256, IX86_BUILTIN_VPMULTISHIFTQB128,
2829 IX86_BUILTIN_VPERMVARQI512_MASK, IX86_BUILTIN_VPERMT2VARQI512,
2830 IX86_BUILTIN_VPERMT2VARQI512_MASKZ, IX86_BUILTIN_VPERMI2VARQI512,
2831 IX86_BUILTIN_VPERMVARQI256_MASK, IX86_BUILTIN_VPERMVARQI128_MASK,
2832 IX86_BUILTIN_VPERMT2VARQI256, IX86_BUILTIN_VPERMT2VARQI256_MASKZ,
2833 IX86_BUILTIN_VPERMT2VARQI128, IX86_BUILTIN_VPERMI2VARQI256,
2834 IX86_BUILTIN_VPERMI2VARQI128.
2835 (bdesc_special_args): Add __builtin_ia32_vpmultishiftqb512_mask,
2836 __builtin_ia32_vpmultishiftqb256_mask,
2837 __builtin_ia32_vpmultishiftqb128_mask,
2838 __builtin_ia32_permvarqi512_mask, __builtin_ia32_vpermt2varqi512_mask,
2839 __builtin_ia32_vpermt2varqi512_maskz,
2840 __builtin_ia32_vpermi2varqi512_mask, __builtin_ia32_permvarqi256_mask,
2841 __builtin_ia32_permvarqi128_mask, __builtin_ia32_vpermt2varqi256_mask,
2842 __builtin_ia32_vpermt2varqi256_maskz,
2843 __builtin_ia32_vpermt2varqi128_mask,
2844 __builtin_ia32_vpermt2varqi128_maskz,
2845 __builtin_ia32_vpermi2varqi256_mask,
2846 __builtin_ia32_vpermi2varqi128_mask.
2847 (ix86_hard_regno_mode_ok): Allow big masks for AVX512VBMI.
2848 * config/i386/i386.h (TARGET_AVX512VBMI, TARGET_AVX512VBMI_P): Define.
2849 * config/i386/i386.opt: Add mavx512vbmi.
2850 * config/i386/immintrin.h: Include avx512vbmiintrin.h,
2851 avx512vbmivlintrin.h.
2852 * config/i386/sse.md (unspec): Add UNSPEC_VPMULTISHIFT.
2853 (VI1_AVX512VL): New iterator.
2854 (<avx512>_permvar<mode><mask_name>): Use it.
2855 (<avx512>_vpermi2var<mode>3_maskz): Ditto.
2856 (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Ditto.
2857 (<avx512>_vpermi2var<mode>3_mask): Ditto.
2858 (<avx512>_vpermt2var<mode>3_maskz): Ditto.
2859 (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Ditto.
2860 (<avx512>_vpermt2var<mode>3_mask): Ditto.
2861 (vpmultishiftqb<mode><mask_name>): Ditto.
2863 2014-11-21 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2865 PR rtl-optimization/63952
2866 * optabs.c (prepare_cmp_insn): Do not call can_compare_p for CCmode.
2867 * config/s390/s390.md ("cbranchcc4"): Accept any s390_comparison.
2868 Remove incorrect TARGET_HARD_FLOAT check and no-op expander code.
2870 2014-11-21 Ilya Tocar <ilya.tocar@intel.com>
2872 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512IFMA_SET,
2873 OPTION_MASK_ISA_AVX512IFMA_UNSET): New.
2874 (ix86_handle_option): Handle OPT_mavx512ifma.
2875 * config.gcc: Add avx512ifmaintrin.h, avx512ifmavlintrin.h.
2876 * config/i386/avx512ifmaintrin.h: New file.
2877 * config/i386/avx512ifmaivlntrin.h: Ditto.
2878 * config/i386/cpuid.h (bit_AVX512IFMA): New.
2879 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
2881 * config/i386/i386-c.c (ix86_target_macros_internal): Define
2883 * config/i386/i386.c (ix86_target_string): Add -mavx512ifma.
2884 (PTA_AVX512IFMA): Define.
2885 (ix86_option_override_internal): Handle new options.
2886 (ix86_valid_target_attribute_inner_p): Add avx512ifma.
2887 (ix86_builtins): Add IX86_BUILTIN_VPMADD52LUQ512,
2888 IX86_BUILTIN_VPMADD52HUQ512, IX86_BUILTIN_VPMADD52LUQ256,
2889 IX86_BUILTIN_VPMADD52HUQ256, IX86_BUILTIN_VPMADD52LUQ128,
2890 IX86_BUILTIN_VPMADD52HUQ128, IX86_BUILTIN_VPMADD52LUQ512_MASKZ,
2891 IX86_BUILTIN_VPMADD52HUQ512_MASKZ, IX86_BUILTIN_VPMADD52LUQ256_MASKZ,
2892 IX86_BUILTIN_VPMADD52HUQ256_MASKZ, IX86_BUILTIN_VPMADD52LUQ128_MASKZ,
2893 IX86_BUILTIN_VPMADD52HUQ128_MASKZ.
2894 (bdesc_special_args): Add __builtin_ia32_vpmadd52luq512_mask,
2895 __builtin_ia32_vpmadd52luq512_maskz,
2896 __builtin_ia32_vpmadd52huq512_mask,
2897 __builtin_ia32_vpmadd52huq512_maskx,
2898 __builtin_ia32_vpmadd52luq256_mask,
2899 __builtin_ia32_vpmadd52luq256_maskz,
2900 __builtin_ia32_vpmadd52huq256_mask,
2901 __builtin_ia32_vpmadd52huq256_maskz,
2902 __builtin_ia32_vpmadd52luq128_mask,
2903 __builtin_ia32_vpmadd52luq128_maskz,
2904 __builtin_ia32_vpmadd52huq128_mask,
2905 __builtin_ia32_vpmadd52huq128_maskz,
2906 * config/i386/i386.h (TARGET_AVX512IFMA, TARGET_AVX512IFMA_P): Define.
2907 * config/i386/i386.opt: Add mavx512ifma.
2908 * config/i386/immintrin.h: Include avx512ifmaintrin.h,
2909 avx512ifmavlintrin.h.
2910 * config/i386/sse.md (unspec): Add UNSPEC_VPMADD52LUQ,
2912 (VPMADD52): New iterator.
2913 (vpmadd52type): New attribute.
2914 (vpamdd52huq<mode>_maskz): New.
2915 (vpamdd52luq<mode>_maskz): Ditto.
2916 (vpamdd52<vpmadd52type><mode><sd_maskz_name>): Ditto.
2917 (vpamdd52<vpmadd52type><mode>_mask): Ditto.
2919 2014-11-21 Alan Lawrence <alan.lawrence@arm.com>
2922 2014-09-22 Alan Lawrence <alan.lawrence@arm.com>
2923 * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
2925 2014-11-21 Andrew Bennett <andrew.bennett@imgtec.com>
2927 * config/mips/mips.c (mips_process_sync_loop): Place a
2928 nop in the delay slot of the branch likely instruction.
2929 (mips_output_sync_loop): Ensure mips_branch_likely is
2930 set before calling mips_output_sync_loop.
2931 (mips_sync_loop_insns): Likewise.
2933 2014-11-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2936 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Allow
2937 the base pointer of vec_vsx_ld and vec_vsx_st to take a pointer to
2940 2014-11-21 Georg-Johann Lay <avr@gjlay.de>
2942 Forward-port from 2014-10-30 4_9-branch r216934
2945 * config/avr/avr-protos.h (regmask): New inline function.
2946 (avr_fix_inputs, avr_emit3_fix_outputs): New protos.
2947 * config/avr/avr.c (avr_fix_operands, avr_move_fixed_operands)
2948 (avr_fix_inputs, avr_emit3_fix_outputs): New functions.
2949 * config/avr/avr-fixed.md (mulqq3_nomul, muluqq3_nomul)
2950 (mul<ALL2QA>3, mul<ALL4A>3, <usdiv><ALL1Q>3, <usdiv><ALL2QA>3)
2951 (<usdiv><ALL4A>3, round<ALL124QA>3): Fix input operands.
2952 * config/avr/avr-dimode.md (add<ALL8>3, sub<ALL8>3)
2953 (<ss_addsub><ALL8S>3, <us_addsub><ALL8U>3, cbranch<ALL8>4)
2954 (<di_shifts><ALL8>3, <any_extend>mulsidi3): Fix input operands.
2955 * config/avr/avr.md (mulqi3_call, mulhi3_call, mulsi3, mulpsi3)
2956 (mulu<QIHI>si3, muls<QIHI>si3, mulohisi3, <any_extend>mulhisi3)
2957 (usmulhisi3, <any_extend>mulhi3_highpart, mulsqipsi3)
2958 (fmul, fmuls, fmulsu): Fix operands. Turn insn into expander as
2961 2014-11-21 Jakub Jelinek <jakub@redhat.com>
2964 * config/ia64/ia64.c (ia64_attribute_takes_identifier_p): New function.
2965 (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Redefine to it.
2967 2014-11-21 James Greenhalgh <james.greenhalgh@arm.com>
2969 * config/aarch64/aarch64-simd.md
2970 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Add a tab between
2971 output mnemonic and operands.
2972 (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
2973 (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
2975 2014-11-21 Evgeny Stupachenko <evstupac@gmail.com>
2977 * config/i386/i386.c (ix86_option_override_internal): Increase
2978 PARAM_MAX_COMPLETELY_PEELED_INSNS.
2980 2014-11-21 Evgeny Stupachenko <evstupac@gmail.com>
2983 * config/i386/i386.c (expand_vec_perm_even_odd_pack): New.
2984 (expand_vec_perm_even_odd_1): Add new expand for V8HI mode,
2985 replace for V16QI, V16HI and V32QI modes.
2986 (ix86_expand_vec_perm_const_1): Add new expand.
2988 2014-11-21 Nick Clifton <nickc@redhat.com>
2990 * config/rl78/rl78-real.md (movqi_from_es): New pattern.
2991 * config/rl78/rl78.c (struct machine_function): Add uses_es field.
2992 (rl78_expand_prologue): Save the ES register in interrupt handlers
2994 (rl78_expand_epilogue): Restore the ES register if necessary.
2995 (rl78_start_function): Mention if the function uses the ES
2997 (rl78_lo16): Record the use of the ES register.
2998 (transcode_memory_rtx): Likewise.
3000 2014-11-21 Jakub Jelinek <jakub@redhat.com>
3002 PR tree-optimization/61773
3003 * tree-ssa-strlen.c (get_string_length): Don't assert
3004 stpcpy has been prototyped if si->stmt is BUILT_IN_MALLOC.
3007 * simplify-rtx.c (simplify_immed_subreg): Return NULL for integer
3008 modes wider than MAX_BITSIZE_MODE_ANY_INT. If not using
3009 CONST_WIDE_INT, make sure r fits into CONST_DOUBLE.
3011 2014-11-21 Markus Trippelsdorf <markus@trippelsdorf.de>
3013 * config/rs6000/rs6000.c (includes_rldic_lshift_p): Use
3014 HOST_WIDE_INT_M1U instead of ~0.
3015 (includes_rldicr_lshift_p): Likewise.
3017 2014-11-21 Chung-Ju Wu <jasonwucj@gmail.com>
3019 * config/nds32/nds32.c (nds32_legitimate_address_p): For LO_SUM,
3020 we need to look into its operand to determine if it is a valid
3023 2014-11-21 Chung-Ju Wu <jasonwucj@gmail.com>
3025 * config/nds32/nds32.c (nds32_emit_stack_push_multiple): Add new
3026 vaarg_p argument and create correct CFI info.
3027 (nds32_expand_prologue): Pass true or false to
3028 nds32_emit_stack_push_multiple function.
3030 2014-11-21 Chung-Ju Wu <jasonwucj@gmail.com>
3032 * config/nds32/nds32.c (nds32_expand_prologue): Set fp_adjust_insn
3033 as RTX_FRAME_RELATED_P rtx.
3035 2014-11-21 Chung-Ju Wu <jasonwucj@gmail.com>
3037 * config/nds32/nds32.opt (march): Add help message.
3039 2014-11-20 Patrick Palka <ppalka@gcc.gnu.org>
3041 * tree-vrp.c (test_for_singularity): New parameter
3042 strict_overflow_p. Set *strict_overflow_p to true if signed
3043 overflow must be undefined for the return value to satisfy the
3045 (simplify_cond_using_ranges): Don't perform the simplification
3046 if it violates overflow rules.
3048 2014-11-20 Marek Polacek <polacek@redhat.com>
3050 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Fix typo.
3052 2014-11-20 Andrew Stubbs <ams@codesourcery.com>
3054 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
3055 condition would be removed due to undefined behaviour.
3057 2014-11-20 Andrew Pinski <apinski@cavium.com>
3061 * ipa-polymorphic-call.c (possible_placement_new):
3062 Use POINTER_SIZE instead of GET_MODE_BITSIZE (Pmode).
3063 (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
3064 (extr_type_from_vtbl_ptr_store): Likewise.
3066 2014-11-20 Markus Trippelsdorf <markus@trippelsdorf.de>
3068 * config/rs6000/constraints.md: Avoid signed integer overflows.
3069 * config/rs6000/predicates.md: Likewise.
3070 * config/rs6000/rs6000.c (num_insns_constant_wide): Likewise.
3071 (includes_rldic_lshift_p): Likewise.
3072 (includes_rldicr_lshift_p): Likewise.
3073 * emit-rtl.c (const_wide_int_htab_hash): Likewise.
3074 * loop-iv.c (determine_max_iter): Likewise.
3075 (iv_number_of_iterations): Likewise.
3076 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Likewise.
3077 * varasm.c (get_section_anchor): Likewise.
3079 2014-11-20 Charles Baylis <charles.baylis@linaro.org>
3082 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Pass
3083 expression to aarch64_simd_lane_bounds.
3084 * config/aarch64/aarch64-protos.h (aarch64_simd_lane_bounds): Update
3086 * config/aarch64/aarch64-simd.md: (aarch64_combinez<mode>): Update
3087 call to aarch64_simd_lane_bounds.
3088 (aarch64_get_lanedi): Likewise.
3089 (aarch64_ld2_lane<mode>): Likewise.
3090 (aarch64_ld3_lane<mode>): Likewise.
3091 (aarch64_ld4_lane<mode>): Likewise.
3092 (aarch64_im_lane_boundsi): Likewise.
3093 * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Add exp
3094 parameter. Report calling function in error message if exp is non-NULL.
3096 2014-11-20 Segher Boessenkool <segher@kernel.crashing.org>
3099 * config/sh/sh.c: Use signed char for signed field.
3101 2014-11-20 Trevor Saunders <tsaunders@mozilla.com>
3103 * cfgexpand.c, gimple-ssa.h, trans-mem.c: Replace htab with
3106 2014-11-20 Trevor Saunders <tsaunders@mozilla.com>
3108 * ipa-utils.c, lto-section-in.c, lto-streamer.h,
3109 tree-scalar-evolution.c: Replace htab with hash_table.
3111 2014-11-20 Trevor Saunders <tsaunders@mozilla.com>
3113 * lto-section-in.c (lto_delete_in_decl_state): Adjust.
3114 (lto_free_function_in_decl_state): Likewise.
3115 * lto-streamer-out.c (copy_function_or_variable): Likewise.
3116 * lto-streamer.h (lto_file_decl_data_get_ ## name): Likewise.
3117 (lto_file_decl_data_num_ ## name ## s): Likewise.
3118 (struct lto_tree_ref_table): Remove.
3119 (struct lto_in_decl_state): Replace lto_tree_ref_table with vec<tree>.
3121 2014-11-20 Trevor Saunders <tsaunders@mozilla.com>
3123 * hash-map.h (hash_map::iterator): New class.
3124 (hash_map::begin): New method.
3125 (hash_map::end): Likewise.
3126 * alias.c, config/alpha/alpha.c, dwarf2asm.c, omp-low.c, tree.h:
3127 replace splay_tree with hash_map.
3129 2014-11-20 Trevor Saunders <tsaunders@mozilla.com>
3131 * hash-table.h (hash_table::hash_table): Call alloc_entries.
3132 (hash_table::alloc_entries): new method.
3133 (hash_table::expand): Call alloc_entries.
3134 (hash_table::empty): Likewise.
3136 2014-11-20 Trevor Saunders <tsaunders@mozilla.com>
3138 * config/i386/i386.c, function.c, trans-mem.c, tree-core.h,
3139 tree.c, tree.h, ubsan.c, varasm.c: Use hash_table instead of htab.
3141 2014-11-20 Trevor Saunders <tsaunders@mozilla.com>
3143 * doc/gty.texi: Document the new cache gty attribute.
3144 * gengtype.c (finish_cache_funcs): New function.
3145 (write_roots): Call gt_clear_cache on global variables with the cache
3147 * ggc-common.c (ggc_mark_roots): Call gt_clear_caches.
3148 * ggc.h (gt_clear_caches): New declaration.
3149 * hash-table.h (struct ggc_cache_hasher): New hasher for caches in gc
3151 (gt_cleare_cache): New function.
3152 * emit-rtl.c, rtl.h, tree.c: Use hash_table instead of htab.
3154 2014-11-20 Segher Boessenkool <segher@kernel.crashing.org>
3156 * combine.c (try_combine): Prefer to delete dead SETs inside
3157 a PARALLEL over keeping them.
3159 2014-11-20 Segher Boessenkool <segher@kernel.crashing.org>
3161 * combine.c (combine_validate_cost): Always print the insn costs
3164 2014-11-20 Richard Henderson <rth@redhat.com>
3167 * config/i386/i386.c (ix86_static_chain): Reinstate the check
3168 for DECL_STATIC_CHAIN.
3170 2014-11-20 Tejas Belagod <tejas.belagod@arm.com>
3172 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol):
3174 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate,
3175 aarch64_cannot_force_const_mem, aarch64_classify_address,
3176 aarch64_classify_symbolic_expression): Fixup call to
3177 aarch64_classify_symbol.
3178 (aarch64_classify_symbol): Add range-checking for
3179 symbol + offset addressing for tiny and small models.
3181 2014-11-20 Richard Biener <rguenther@suse.de>
3184 * match.pd ((p +p off1) +p off2 -> (p +p (off1 + off2))):
3185 Guard with single-use operand 0.
3187 2014-11-20 Richard Biener <rguenther@suse.de>
3189 PR tree-optimization/63677
3190 * tree-ssa-dom.c: Include gimplify.h for unshare_expr.
3191 (avail_exprs_stack): Make a vector of pairs.
3192 (struct hash_expr_elt): Replace stmt member with vop member.
3193 (expr_elt_hasher::equal): Simplify.
3194 (initialize_hash_element): Adjust.
3195 (initialize_hash_element_from_expr): Likewise.
3196 (dom_opt_dom_walker::thread_across_edge): Likewise.
3197 (record_cond): Likewise.
3198 (dom_opt_dom_walker::before_dom_children): Likewise.
3199 (print_expr_hash_elt): Likewise.
3200 (remove_local_expressions_from_table): Restore previous state
3202 (record_equivalences_from_stmt): Record &x + CST as constant
3203 &MEM[&x, CST] for further propagation.
3204 (vuse_eq): New function.
3205 (lookup_avail_expr): For loads use the alias oracle to see
3206 whether a candidate from the expr hash is usable.
3207 (avail_expr_hash): Do not hash VUSEs.
3209 2014-11-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3212 * config/arm/arm.md (*movhi_insn): Use right formatting
3215 2014-11-20 Igor Zamyatin <igor.zamyatin@intel.com>
3218 * function.c (assign_parms): Move init of pic_offset_table_rtx
3220 * cfgexpand.c (expand_used_vars): ...here.
3222 2014-11-19 Jan Hubicka <hubicka@ucw.cz>
3224 * tree.c (free_lang_data_in_type): If BINFO has no important
3225 information in it, set it to NULL.
3226 (get_binfo_at_offset): Do not walk fields, only bases.
3227 * ipa-utils.h (polymorphic_type_binfo_p): Be ready for BINFO_TYPE
3229 * ipa-polymorphic-call.c (record_known_type): Likewise.
3231 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3234 * ipa-icf.c (sem_item_optimizer::~sem_item_optimizer): Free each
3235 congruence_class_group *.
3237 2014-11-19 Uros Bizjak <ubizjak@gmail.com>
3240 * config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
3241 Output "b" and "nb" suffix for FP mode.
3243 2014-11-19 Jan Hubicka <hubicka@ucw.cz>
3246 * tree-streamer-out.c (write_ts_function_decl_tree_pointers): Stream out
3247 DECL_FUNCTION_SPECIFIC_TARGET
3248 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): Stream in
3249 DECL_FUNCTION_SPECIFIC_TARGET.
3251 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3254 * pass_manager.h (GCC_PASS_LISTS): Add all_late_ipa_passes.
3256 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3259 * lra.c (lra): After creating live ranges in preparation for call
3260 to lra_inheritance, set live_p to true.
3262 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3265 * tree-ssa-threadedge.c (thread_across_edge): Don't just release
3267 * tree-ssa-threadupdate.c (delete_jump_thread_path): Likewise.
3269 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3272 * tree-ssa-pre.c (do_regular_insertion): Convert "avail" from
3273 vec<> to auto_vec<> to fix a leak.
3275 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3278 * dwarf2out.c (dwarf2out_c_finalize): Free producer_string.
3280 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3283 * ira-costs.c (ira_costs_c_finalize): New function.
3284 * ira.h (ira_costs_c_finalize): New prototype.
3285 * toplev.c (toplev::finalize): Call ira_costs_c_finalize.
3287 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3290 * ipa-reference.c (ipa_reference_c_finalize): Release
3291 optimization_summary_obstack.
3293 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3296 * toplev.c (toplev::finalize): Free opts_obstack.
3298 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3301 * toplev.c (toplev::finalize): Clean up save_decoded_options.
3303 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3307 (find_rarely_executed_basic_blocks_and_crossing_edges): Convert
3308 local bbs_in_hot_partition from vec<> to auto_vec<>.
3310 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3313 * config/alpha/alpha.c (alpha_option_override): Remove static from
3314 "handle_trap_shadows_info" and "align_insns_info".
3315 * config/i386/i386.c (ix86_option_override): Likewise for
3316 "insert_vzeroupper_info".
3317 * config/rl78/rl78.c (rl78_asm_file_start): Likewise for
3318 "rl78_devirt_info" and "rl78_move_elim_info".
3319 * config/rs6000/rs6000.c (rs6000_option_override): Likewise for
3320 "analyze_swaps_info".
3321 * context.c (gcc::context::~context): New.
3322 * context.h (gcc::context::~context): New.
3323 * dumpfile.c (dump_files): Add "false" initializers for new field
3325 (gcc::dump_manager::~dump_manager): New.
3326 (gcc::dump_manager::dump_register): Add param "take_ownership".
3327 * dumpfile.h (struct dump_file_info): Add field "owns_strings".
3328 (gcc::dump_manager::~dump_manager): New.
3329 (gcc::dump_manager::dump_register): Add param "take_ownership".
3330 * pass_manager.h (gcc::pass_manager::operator delete): New.
3331 (gcc::pass_manager::~pass_manager): New.
3332 * passes.c (pass_manager::register_one_dump_file): Pass "true" to
3333 new "owns_strings" argument to dump_register.
3334 (pass_manager::operator delete): New.
3335 (delete_pass_tree): New function.
3336 (pass_manager::~pass_manager): New.
3337 * statistics.c (statistics_early_init): Pass "false" to
3338 new "owns_strings" argument to dump_register.
3339 * toplev.c (toplev::finalize): Clean up the context and thus the
3342 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3345 * reginfo.c (finish_subregs_of_mode): Replace obstack_finish with
3346 obstack_free when cleaning up valid_mode_changes_obstack.
3348 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3351 * opts.c (finalize_options_struct): New.
3352 * opts.h (finalize_options_struct): New.
3353 * toplev.c (toplev::finalize): Call finalize_options_struct
3354 on global_options and global_options_set.
3356 2014-11-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3357 Jakub Jelinek <jakub@redhat.com>
3361 * gcc.c (process_command): Don't check for input/output
3362 filename equality if output is HOST_BIT_BUCKET.
3363 * toplev.c (init_asm_output): Likewise.
3365 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3367 Merger of git branch "gimple-classes-v2-option-3".
3369 * ChangeLog.gimple-classes: New.
3371 * coretypes.h (struct gcond): Add forward decl.
3372 (struct gdebug): Likewise.
3373 (struct ggoto): Likewise.
3374 (struct glabel): Likewise.
3375 (struct gswitch): Likewise.
3376 (struct gassign): Likewise.
3377 (struct gasm): Likewise.
3378 (struct gcall): Likewise.
3379 (struct gtransaction): Likewise.
3380 (struct greturn): Likewise.
3381 (struct gbind): Likewise.
3382 (struct gcatch): Likewise.
3383 (struct geh_filter): Likewise.
3384 (struct geh_mnt): Likewise.
3385 (struct geh_else): Likewise.
3386 (struct gresx): Likewise.
3387 (struct geh_dispatch): Likewise.
3388 (struct gphi): Likewise.
3389 (struct gtry): Likewise.
3390 (struct gomp_atomic_load): Likewise.
3391 (struct gomp_atomic_store): Likewise.
3392 (struct gomp_continue): Likewise.
3393 (struct gomp_critical): Likewise.
3394 (struct gomp_for): Likewise.
3395 (struct gomp_parallel): Likewise.
3396 (struct gomp_task): Likewise.
3397 (struct gomp_sections): Likewise.
3398 (struct gomp_single): Likewise.
3399 (struct gomp_target): Likewise.
3400 (struct gomp_teams): Likewise.
3402 * doc/gimple.texi (Class hierarchy of GIMPLE statements): Update
3403 for renaming of gimple subclasses.
3405 * gdbhooks.py: Update.
3407 * gimple-iterator.c (gsi_for_phi): New.
3408 (gsi_start_phis): Strengthen return type from gimple_stmt_iterator
3410 * gimple-iterator.h (struct gphi_iterator): New subclass of
3411 gimple_stmt_iterator.
3412 (gsi_for_phi): New prototype.
3413 (gsi_start_phis): Strengthen return type from gimple_stmt_iterator
3415 (gsi_next_nonvirtual_phi): Strengthen param from
3416 gimple_stmt_iterator * to gphi_iterator *, and local "phi" from
3419 * gsstruct.def: Update for renamings of classes.
3421 * gimple.c (gimple_build_return): Strengthen return type from
3422 gimple to greturn *.
3423 (gimple_call_reset_alias_info): Strengthen param to gcall *.
3424 (gimple_build_call_1): Strengthen return type from gimple to
3426 (gimple_build_call_vec): Likewise.
3427 (gimple_build_call): Likewise.
3428 (gimple_build_call_valist): Likewise.
3429 (gimple_build_call_internal_1): Likewise.
3430 (gimple_build_call_internal): Likewise.
3431 (gimple_build_call_internal_vec): Likewise.
3432 (gimple_build_call_from_tree): Likewise.
3433 (gimple_build_assign_stat): Strengthen return type from gimple to
3435 (gimple_build_assign_with_ops): Likewise.
3436 (gimple_build_assign_with_ops): Likewise.
3437 (gimple_build_cond): Strengthen return type from gimple to
3439 (gimple_build_cond_from_tree): Likewise.
3440 (gimple_cond_set_condition_from_tree): Require a gcond *.
3441 (gimple_build_label): Strengthen return type from gimple to
3443 (gimple_build_goto): Strengthen return type from gimple to
3445 (gimple_build_bind): Strengthen return type from gimple to
3447 (gimple_build_asm_1): Strengthen return type from gimple to
3449 (gimple_build_asm_vec): Likewise.
3450 (gimple_build_catch): Strengthen return type from gimple to
3452 (gimple_build_eh_filter): Strengthen return type from gimple to
3454 (gimple_build_eh_must_not_throw): Strengthen return type from
3455 gimple to geh_mnt *.
3456 (gimple_build_eh_else): Strengthen return type from gimple to
3458 (gimple_build_try): Update for renaming of gimple_statement_try to
3460 (gimple_build_resx): Strengthen return type from gimple to
3462 (gimple_build_switch_nlabels): Strengthen return type from gimple
3464 (gimple_build_switch): Likewise.
3465 (gimple_build_eh_dispatch): Strengthen return type from gimple to
3467 (gimple_build_debug_bind_stat): Strengthen return type from gimple
3469 (gimple_build_debug_source_bind_stat): Strengthen return type from
3471 (gimple_build_omp_critical): Strengthen return type from gimple to
3473 (gimple_build_omp_for): Strengthen return type from gimple to
3475 (gimple_build_omp_parallel): Strengthen return type from gimple to
3477 (gimple_build_omp_task): Strengthen return type from gimple to
3479 (gimple_build_omp_continue): Strengthen return type from gimple to
3481 (gimple_build_omp_sections): Strengthen return type from gimple to
3483 (gimple_build_omp_single): Strengthen return type from gimple to
3485 (gimple_build_omp_target): Strengthen return type from gimple to
3487 (gimple_build_omp_teams): Strengthen return type from gimple to
3489 (gimple_build_omp_atomic_load): Strengthen return type from gimple
3490 to gomp_atomic_load *.
3491 (gimple_build_omp_atomic_store): Strengthen return type from gimple
3492 to gomp_atomic_store *.
3493 (gimple_build_transaction): Strengthen return type from gimple
3495 (empty_stmt_p): Replace check for GIMPLE_BIND with a dyn_cast.
3496 (gimple_call_fnspec): Require a const gcall *.
3497 (gimple_call_arg_flags): Likewise.
3498 (gimple_call_return_flags): Likewise.
3499 (gimple_set_bb): Add a checked cast.
3500 (gimple_copy): Within the cases, add locals of the appropriate
3501 subclass and use in place of "stmt" and "copy" for typesafety.
3502 (gimple_has_side_effects): Add a checked cast.
3503 (gimple_could_trap_p_1): Likewise.
3504 (gimple_call_copy_skip_args): Require a gcall *, and return one.
3505 (gimple_asm_clobbers_memory_p): Require a const gasm *.
3506 (infer_nonnull_range): Replace a check for GIMPLE_RETURN with a
3507 dyn_cast, introducing local "return_stmt" and using ti in place
3510 * gimple.h (gimple_vec): Eliminate this typedef.
3511 (struct gimple_statement_call): Rename to...
3512 (struct gcall): ...this.
3513 (struct gimple_statement_bind): Rename to...
3514 (struct gbind): ...this.
3515 (struct gimple_statement_catch): Rename to...
3516 (struct gcatch): ...this.
3517 (struct gimple_statement_eh_filter): Rename to...
3518 (struct geh_filter): ...this.
3519 (struct gimple_statement_eh_else): Rename to...
3520 (struct geh_else): ...this.
3521 (struct gimple_statement_eh_mnt): Rename to...
3522 (struct geh_mnt): ...this.
3523 (struct gimple_statement_phi): Rename to...
3524 (struct gphi): ...this.
3525 (struct gimple_statement_resx): Rename to...
3526 (struct gresx): ...this.
3527 (struct gimple_statement_eh_dispatch): Rename to...
3528 (struct geh_dispatch): ...this.
3529 (struct gimple_statement_try): Rename to...
3530 (struct gtry): ...this.
3531 (struct gimple_statement_asm): Rename to...
3532 (struct gasm): ...this.
3533 (struct gimple_statement_omp_critical): Rename to...
3534 (struct gomp_critical): ...this.
3535 (struct gimple_statement_omp_for): Rename to...
3536 (struct gomp_for): ...this.
3537 (struct gimple_statement_omp_parallel): Rename to...
3538 (struct gomp_parallel): ...this.
3539 (struct gimple_statement_omp_target): Rename to...
3540 (struct gomp_target): ...this.
3541 (struct gimple_statement_omp_task): Rename to...
3542 (struct gomp_task): ...this.
3543 (struct gimple_statement_omp_sections): Rename to...
3544 (struct gomp_sections): ...this.
3545 (struct gimple_statement_omp_continue): Rename to...
3546 (struct gomp_continue): ...this.
3547 (struct gimple_statement_omp_single): Rename to...
3548 (struct gomp_single): ...this.
3549 (struct gimple_statement_omp_teams): Rename to...
3550 (struct gomp_teams): ...this.
3551 (struct gimple_statement_omp_atomic_load): Rename to...
3552 (struct gomp_atomic_load): ...this.
3553 (struct gimple_statement_omp_atomic_store :): Rename to...
3554 (struct gomp_atomic_store :): ...this.
3555 (struct gimple_statement_transaction): Rename to...
3556 (struct gtransaction): ...this.
3557 (struct gcond): New subclass.
3558 (struct gdebug): New subclass.
3559 (struct ggoto): New subclass.
3560 (struct glabel): New subclass.
3561 (struct gswitch): New subclass.
3562 (struct gassign): New subclass.
3563 (struct greturn): New subclass.
3564 (is_a_helper <gimple_statement_asm *>::test): Rename to...
3565 (is_a_helper <gasm *>::test): ...this.
3566 (is_a_helper <gimple_statement_bind *>::test): Rename to...
3567 (is_a_helper <gbind *>::test): ...this.
3568 (is_a_helper <gassign *>::test): New.
3569 (is_a_helper <gimple_statement_call *>::test): Rename to...
3570 (is_a_helper <gcall *>::test): ...this.
3571 (is_a_helper <gimple_statement_catch *>::test): Rename to...
3572 (is_a_helper <gcatch *>::test): ...this.
3573 (is_a_helper <gimple_statement_resx *>::test): Rename to...
3574 (is_a_helper <gresx *>::test): ...this.
3575 (is_a_helper <gcond *>::test): New.
3576 (is_a_helper <gdebug *>::test): New.
3577 (is_a_helper <ggoto *>::test): New.
3578 (is_a_helper <glabel *>::test): New.
3579 (is_a_helper <gimple_statement_eh_dispatch *>::test): Rename to...
3580 (is_a_helper <geh_dispatch *>::test): ...this.
3581 (is_a_helper <gimple_statement_eh_else *>::test): Rename to...
3582 (is_a_helper <geh_else *>::test): ...this.
3583 (is_a_helper <gimple_statement_eh_filter *>::test): Rename to...
3584 (is_a_helper <geh_filter *>::test): ...this.
3585 (is_a_helper <gimple_statement_eh_mnt *>::test): Rename to...
3586 (is_a_helper <geh_mnt *>::test): ...this.
3587 (is_a_helper <gimple_statement_omp_atomic_load *>::test): Rename to...
3588 (is_a_helper <gomp_atomic_load *>::test): ...this.
3589 (is_a_helper <gimple_statement_omp_atomic_store *>::test): Rename to...
3590 (is_a_helper <gomp_atomic_store *>::test): ...this.
3591 (is_a_helper <gimple_statement_omp_continue *>::test): Rename to...
3592 (is_a_helper <gomp_continue *>::test): ...this.
3593 (is_a_helper <gimple_statement_omp_critical *>::test): Rename to...
3594 (is_a_helper <gomp_critical *>::test): ...this.
3595 (is_a_helper <gimple_statement_omp_for *>::test): Rename to...
3596 (is_a_helper <gomp_for *>::test): ...this.
3597 (is_a_helper <gimple_statement_omp_parallel *>::test): Rename to...
3598 (is_a_helper <gomp_parallel *>::test): ...this.
3599 (is_a_helper <gimple_statement_omp_target *>::test): Rename to...
3600 (is_a_helper <gomp_target *>::test): ...this.
3601 (is_a_helper <gimple_statement_omp_sections *>::test): Rename to...
3602 (is_a_helper <gomp_sections *>::test): ...this.
3603 (is_a_helper <gimple_statement_omp_single *>::test): Rename to...
3604 (is_a_helper <gomp_single *>::test): ...this.
3605 (is_a_helper <gimple_statement_omp_teams *>::test): Rename to...
3606 (is_a_helper <gomp_teams *>::test): ...this.
3607 (is_a_helper <gimple_statement_omp_task *>::test): Rename to...
3608 (is_a_helper <gomp_task *>::test): ...this.
3609 (is_a_helper <gimple_statement_phi *>::test): Rename to...
3610 (is_a_helper <gphi *>::test): ...this.
3611 (is_a_helper <gimple_statement_transaction *>::test): Rename to...
3612 (is_a_helper <gtransaction *>::test): ...this.
3613 (is_a_helper <greturn *>::test): New.
3614 (is_a_helper <gswitch *>::test): New.
3615 (is_a_helper <gimple_statement_try *>::test): Rename to...
3616 (is_a_helper <gtry *>::test): ...this.
3617 (is_a_helper <const gimple_statement_asm *>::test): Rename to...
3618 (is_a_helper <const gasm *>::test): ...this.
3619 (is_a_helper <const gimple_statement_bind *>::test): Rename to...
3620 (is_a_helper <const gbind *>::test): ...this.
3621 (is_a_helper <const gimple_statement_call *>::test): Rename to...
3622 (is_a_helper <const gcall *>::test): ...this.
3623 (is_a_helper <const gimple_statement_catch *>::test): Rename to...
3624 (is_a_helper <const gcatch *>::test): ...this.
3625 (is_a_helper <const gimple_statement_resx *>::test): Rename to...
3626 (is_a_helper <const gresx *>::test): ...this.
3627 (is_a_helper <const gimple_statement_eh_dispatch *>::test): Rename to...
3628 (is_a_helper <const geh_dispatch *>::test): ...this.
3629 (is_a_helper <const gimple_statement_eh_filter *>::test): Rename to...
3630 (is_a_helper <const geh_filter *>::test): ...this.
3631 (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
3633 (is_a_helper <const gomp_atomic_load *>::test): ...this.
3634 (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
3636 (is_a_helper <const gomp_atomic_store *>::test): ...this.
3637 (is_a_helper <const gimple_statement_omp_continue *>::test):
3639 (is_a_helper <const gomp_continue *>::test): ...this.
3640 (is_a_helper <const gimple_statement_omp_critical *>::test):
3642 (is_a_helper <const gomp_critical *>::test): ...this.
3643 (is_a_helper <const gimple_statement_omp_for *>::test): Rename to...
3644 (is_a_helper <const gomp_for *>::test): ...this.
3645 (is_a_helper <const gimple_statement_omp_parallel *>::test):
3647 (is_a_helper <const gomp_parallel *>::test): ...this.
3648 (is_a_helper <const gimple_statement_omp_target *>::test): Rename to...
3649 (is_a_helper <const gomp_target *>::test): ...this.
3650 (is_a_helper <const gimple_statement_omp_sections *>::test):
3652 (is_a_helper <const gomp_sections *>::test): ...this.
3653 (is_a_helper <const gimple_statement_omp_single *>::test): Rename to...
3654 (is_a_helper <const gomp_single *>::test): ...this.
3655 (is_a_helper <const gimple_statement_omp_teams *>::test): Rename to...
3656 (is_a_helper <const gomp_teams *>::test): ...this.
3657 (is_a_helper <const gimple_statement_omp_task *>::test): Rename to...
3658 (is_a_helper <const gomp_task *>::test): ...this.
3659 (is_a_helper <const gimple_statement_phi *>::test): Rename to...
3660 (is_a_helper <const gphi *>::test): ...this.
3661 (is_a_helper <const gimple_statement_transaction *>::test): Rename to...
3662 (is_a_helper <const gtransaction *>::test): ...this.
3663 (gimple_build_return): Strengthen return type to greturn *.
3664 (gimple_call_reset_alias_info): Require a gcall *.
3665 (gimple_build_call_vec): Return a gcall *.
3666 (gimple_build_call): Likewise.
3667 (gimple_build_call_valist): Likewise.
3668 (gimple_build_call_internal): Likewise.
3669 (gimple_build_call_internal_vec): Likewise.
3670 (gimple_build_call_from_tree): Likewise.
3671 (gimple_build_assign_stat): Return a gassign *.
3672 (gimple_build_assign_with_ops): Likewise.
3673 (gimple_build_cond): Return a gcond *.
3674 (gimple_build_cond_from_tree): Likewise.
3675 (gimple_cond_set_condition_from_tree): Require a gcond *.
3676 (gimple_build_label): Return a glabel *.
3677 (gimple_build_goto): Return a ggoto *.
3678 (gimple_build_bind): Return a gbind *.
3679 (gimple_build_asm_vec): Return a gasm *.
3680 (gimple_build_catch): Return a gcatch *.
3681 (gimple_build_eh_filter): Return a geh_filter *.
3682 (gimple_build_eh_must_not_throw): Return a geh_mnt *.
3683 (gimple_build_eh_else): Return a geh_else *.
3684 (gimple_build_try): Return a gtry *.
3685 (gimple_build_resx): Return a gresx *.
3686 (gimple_build_switch_nlabels): Return a gswitch *.
3687 (gimple_build_switch): Return a gswitch *.
3688 (gimple_build_eh_dispatch): Return a geh_dispatch *.
3689 (gimple_build_debug_bind_stat): Return a gdebug *.
3690 (gimple_build_debug_source_bind_stat): Return a gdebug *.
3691 (gimple_build_omp_critical): Return a gomp_critical *.
3692 (gimple_build_omp_for): Return a gomp_for *.
3693 (gimple_build_omp_parallel): Return a gomp_parallel *.
3694 (gimple_build_omp_task): Return a gomp_task *.
3695 (gimple_build_omp_continue): Return a gomp_continue *.
3696 (gimple_build_omp_sections): Return a gomp_sections *.
3697 (gimple_build_omp_single): Return a gomp_single *.
3698 (gimple_build_omp_target): Return a gomp_target *.
3699 (gimple_build_omp_teams): Return a gomp_teams *.
3700 (gimple_build_omp_atomic_load): Return a gomp_atomic_load *.
3701 (gimple_build_omp_atomic_store): Return a gomp_atomic_store *.
3702 (gimple_build_transaction): Return a gtransaction *.
3703 (gimple_call_arg_flags): Require a const gcall *.
3704 (gimple_call_return_flags): Likewise.
3705 (gimple_call_copy_skip_args): Require and return a gcall *.
3706 (gimple_asm_clobbers_memory_p): Require a const gasm *.
3707 (gimple_seq_first_stmt_as_a_bind): New.
3708 (gimple_assign_nontemporal_move_p): Require a const gassign *
3709 rather than a const_gimple.
3710 (gimple_call_internal_fn): Update for renaming to gcall.
3711 (gimple_call_fntype): Likewise.
3712 (gimple_call_set_fntype): Require a gcall * rather than a gimple.
3713 (gimple_call_set_fn): Likewise.
3714 (gimple_call_set_internal_fn): Likewise.
3715 (gimple_call_set_chain): Likewise.
3716 (gimple_call_set_tail): Likewise.
3717 (gimple_call_tail_p): Likewise.
3718 (gimple_call_set_return_slot_opt): Likewise.
3719 (gimple_call_return_slot_opt_p): Likewise.
3720 (gimple_call_set_from_thunk): Likewise.
3721 (gimple_call_from_thunk_p): Likewise.
3722 (gimple_call_set_va_arg_pack): Likewise.
3723 (gimple_call_va_arg_pack_p): Likewise.
3724 (gimple_call_set_nothrow): Likewise.
3725 (gimple_call_nothrow_p): Likewise.
3726 (gimple_call_set_alloca_for_var): Likewise.
3727 (gimple_call_alloca_for_var_p): Likewise.
3728 (gimple_call_use_set): Likewise.
3729 (gimple_call_clobber_set): Likewise.
3730 (gimple_call_return_type): Require a const gcall * rather than a
3732 (gimple_call_chain_ptr): Likewise.
3733 (gimple_call_copy_flags): Require a pair of gcall *.
3734 (gimple_cond_set_code): Require a gcond * rather than a gimple
3735 (gimple_cond_set_lhs): Likewise.
3736 (gimple_cond_set_rhs): Likewise.
3737 (gimple_cond_set_true_label): Likewise.
3738 (gimple_cond_set_false_label): Likewise.
3739 (gimple_cond_make_false): Likewise.
3740 (gimple_cond_make_true): Likewise.
3741 (gimple_cond_lhs_ptr): Require a const gcond * rather than a
3743 (gimple_cond_rhs_ptr): Likewise.
3744 (gimple_cond_true_label): Likewise.
3745 (gimple_cond_false_label): Likewise.
3746 (gimple_cond_true_p): Likewise.
3747 (gimple_cond_false_p): Likewise.
3748 (gimple_cond_set_condition): Likewise.
3749 (gimple_label_label): Require a const glabel *.
3750 (gimple_label_set_label): Require a glabel *.
3751 (gimple_goto_set_dest): Require a ggoto *.
3752 (gimple_bind_vars): Require a const gbind *.
3753 (gimple_bind_block): Likewise.
3754 (gimple_bind_set_vars): Require a gbind *.
3755 (gimple_bind_append_vars): Likewise.
3756 (gimple_bind_body_ptr): Likewise.
3757 (gimple_bind_body): Likewise.
3758 (gimple_bind_set_body): Likewise.
3759 (gimple_bind_add_stmt): Likewise.
3760 (gimple_bind_add_seq): Likewise.
3761 (gimple_bind_set_block): Likewise.
3762 (gimple_asm_ninputs): Require a const gasm *.
3763 (gimple_asm_noutputs): Likewise.
3764 (gimple_asm_nclobbers): Likewise.
3765 (gimple_asm_nlabels): Likewise.
3766 (gimple_asm_input_op): Likewise.
3767 (gimple_asm_input_op_ptr): Likewise.
3768 (gimple_asm_output_op): Likewise.
3769 (gimple_asm_output_op_ptr): Likewise.
3770 (gimple_asm_clobber_op): Likewise.
3771 (gimple_asm_label_op): Likewise.
3772 (gimple_asm_string): Likewise.
3773 (gimple_asm_volatile_p): Likewise.
3774 (gimple_asm_input_p): Likewise.
3775 (gimple_asm_set_input_op): Require a gasm *.
3776 (gimple_asm_set_output_op): Likewise.
3777 (gimple_asm_set_clobber_op): Likewise.
3778 (gimple_asm_set_label_op): Likewise.
3779 (gimple_asm_set_volatile): Likewise.
3780 (gimple_asm_set_input): Likewise.
3781 (gimple_catch_types): Require a const gcatch *.
3782 (gimple_catch_types_ptr): Require a gcatch *.
3783 (gimple_catch_handler_ptr): Likewise.
3784 (gimple_catch_handler): Likewise.
3785 (gimple_catch_set_types): Likewise.
3786 (gimple_catch_set_handler): Likewise.
3787 (gimple_eh_filter_types): Update for renaming of subclass to
3789 (gimple_eh_filter_types_ptr): Likewise.
3790 (gimple_eh_filter_failure_ptr): Likewise.
3791 (gimple_eh_filter_set_types): Require a geh_filter *.
3792 (gimple_eh_filter_set_failure): Likewise.
3793 (gimple_eh_must_not_throw_fndecl): Require a geh_mnt *.
3794 (gimple_eh_must_not_throw_set_fndecl): Likewise.
3795 (gimple_eh_else_n_body_ptr): Require a geh_else *.
3796 (gimple_eh_else_n_body): Likewise.
3797 (gimple_eh_else_e_body_ptr): Likewise.
3798 (gimple_eh_else_e_body): Likewise.
3799 (gimple_eh_else_set_n_body): Likewise.
3800 (gimple_eh_else_set_e_body): Likewise.
3801 (gimple_try_set_kind): Require a gtry *.
3802 (gimple_try_set_catch_is_cleanup): Likewise.
3803 (gimple_try_set_eval): Likewise.
3804 (gimple_try_set_cleanup): Likewise.
3805 (gimple_try_eval_ptr): Update for renaming of subclass to gtry.
3806 (gimple_try_cleanup_ptr): Likewise.
3807 (gimple_phi_capacity): Update for renaming of subclass to gphi.
3808 (gimple_phi_num_args): Likewise.
3809 (gimple_phi_result): Likewise.
3810 (gimple_phi_result_ptr): Likewise.
3811 (gimple_phi_arg): Likewise.
3812 (gimple_phi_set_result): Require a gphi *.
3813 (gimple_phi_set_arg): Likewise.
3814 (gimple_phi_arg_def_ptr): Likewise.
3815 (gimple_phi_arg_edge): Likewise.
3816 (gimple_phi_arg_location): Likewise.
3817 (gimple_phi_arg_location_from_edge): Likewise.
3818 (gimple_phi_arg_set_location): Likewise.
3819 (gimple_phi_arg_has_location): Likewise.
3820 (gimple_resx_region): Require a const gresx *.
3821 (gimple_resx_set_region): Require a gresx *.
3822 (gimple_eh_dispatch_region): Require a const geh_dispatch *.
3823 (gimple_eh_dispatch_set_region): Require a geh_dispatch *.
3824 (gimple_switch_num_labels): Require a const gswitch *.
3825 (gimple_switch_set_num_labels): Likewise.
3826 (gimple_switch_index): Likewise.
3827 (gimple_switch_index_ptr): Likewise.
3828 (gimple_switch_label): Likewise.
3829 (gimple_switch_default_label): Likewise.
3830 (gimple_switch_set_index): Require a gswitch *.
3831 (gimple_switch_set_label): Likewise.
3832 (gimple_switch_set_default_label): Likewise.
3833 (gimple_omp_critical_name): Require a const gomp_critical *.
3834 (gimple_omp_critical_name_ptr): Require a gomp_critical *.
3835 (gimple_omp_critical_set_name): Likewise.
3836 (gimple_omp_for_set_kind): Require a gomp_for *.
3837 (gimple_omp_for_set_combined_p): Likewise.
3838 (gimple_omp_for_set_combined_into_p): Likewise.
3839 (gimple_omp_for_clauses): Update for renaming of subclass to
3841 (gimple_omp_for_clauses_ptr): Likewise.
3842 (gimple_omp_for_set_clauses): Likewise.
3843 (gimple_omp_for_collapse): Likewise.
3844 (gimple_omp_for_index): Likewise.
3845 (gimple_omp_for_index_ptr): Likewise.
3846 (gimple_omp_for_set_index): Likewise.
3847 (gimple_omp_for_initial): Likewise.
3848 (gimple_omp_for_initial_ptr): Likewise.
3849 (gimple_omp_for_set_initial): Likewise.
3850 (gimple_omp_for_final): Likewise.
3851 (gimple_omp_for_final_ptr): Likewise.
3852 (gimple_omp_for_set_final): Likewise.
3853 (gimple_omp_for_incr): Likewise.
3854 (gimple_omp_for_incr_ptr): Likewise.
3855 (gimple_omp_for_set_incr): Likewise.
3856 (gimple_omp_for_pre_body): Likewise.
3857 (gimple_omp_for_set_pre_body): Likewise.
3858 (gimple_omp_parallel_clauses): Update for renaming of subclass to
3860 (gimple_omp_parallel_clauses_ptr): Require a gomp_parallel *.
3861 (gimple_omp_parallel_set_clauses): Likewise.
3862 (gimple_omp_parallel_child_fn_ptr): Likewise.
3863 (gimple_omp_parallel_set_child_fn): Likewise.
3864 (gimple_omp_parallel_data_arg_ptr): Likewise.
3865 (gimple_omp_parallel_set_data_arg): Likewise.
3866 (gimple_omp_parallel_child_fn): Require a const gomp_parallel *.
3867 (gimple_omp_parallel_data_arg): Likewise.
3868 (gimple_omp_task_clauses): Update for renaming of subclass to
3870 (gimple_omp_task_clauses_ptr): Likewise.
3871 (gimple_omp_task_set_clauses): Likewise.
3872 (gimple_omp_task_child_fn): Likewise.
3873 (gimple_omp_task_child_fn_ptr): Likewise.
3874 (gimple_omp_task_set_child_fn): Likewise.
3875 (gimple_omp_task_data_arg): Likewise.
3876 (gimple_omp_task_data_arg_ptr): Likewise.
3877 (gimple_omp_task_set_data_arg): Likewise.
3878 (gimple_omp_taskreg_clauses): Whitespace fixes.
3879 (gimple_omp_taskreg_clauses_ptr): Likewise.
3880 (gimple_omp_taskreg_set_clauses): Likewise.
3881 (gimple_omp_taskreg_child_fn): Likewise.
3882 (gimple_omp_taskreg_child_fn_ptr): Likewise.
3883 (gimple_omp_taskreg_set_child_fn): Likewise.
3884 (gimple_omp_taskreg_data_arg): Likewise.
3885 (gimple_omp_taskreg_data_arg_ptr): Likewise.
3886 (gimple_omp_taskreg_set_data_arg): Likewise.
3887 (gimple_omp_task_copy_fn): Update for renaming of subclass to
3889 (gimple_omp_task_copy_fn_ptr): Likewise.
3890 (gimple_omp_task_set_copy_fn): Likewise.
3891 (gimple_omp_task_arg_size): Likewise.
3892 (gimple_omp_task_arg_size_ptr): Likewise.
3893 (gimple_omp_task_set_arg_size): Likewise.
3894 (gimple_omp_task_arg_align): Likewise.
3895 (gimple_omp_task_arg_align_ptr): Likewise.
3896 (gimple_omp_task_set_arg_align): Likewise.
3897 (gimple_omp_single_clauses): Update for renaming of subclass to
3899 (gimple_omp_single_clauses_ptr): Likewise.
3900 (gimple_omp_single_set_clauses): Likewise.
3901 (gimple_omp_target_clauses): Update for renaming of subclass to
3903 (gimple_omp_target_clauses_ptr): Likewise.
3904 (gimple_omp_target_set_clauses): Require a gomp_target *.
3905 (gimple_omp_target_set_kind): Likewise.
3906 (gimple_omp_target_child_fn_ptr): Likewise.
3907 (gimple_omp_target_set_child_fn): Likewise.
3908 (gimple_omp_target_data_arg_ptr): Likewise.
3909 (gimple_omp_target_set_data_arg): Likewise.
3910 (gimple_omp_target_child_fn): Require a const gomp_target *.
3911 (gimple_omp_target_data_arg): Likewise.
3912 (gimple_omp_teams_clauses): Update for renaming of subclass to
3914 (gimple_omp_teams_clauses_ptr): Likewise.
3915 (gimple_omp_teams_set_clauses): Require a gomp_teams *.
3916 (gimple_omp_sections_clauses): Update for renaming of subclass to
3918 (gimple_omp_sections_clauses_ptr): Likewise.
3919 (gimple_omp_sections_set_clauses): Likewise.
3920 (gimple_omp_sections_control): Likewise.
3921 (gimple_omp_sections_control_ptr): Likewise.
3922 (gimple_omp_sections_set_control): Likewise.
3923 (gimple_omp_for_set_cond): Likewise.
3924 (gimple_omp_for_cond): Likewise.
3925 (gimple_omp_atomic_store_set_val): Require a gomp_atomic_store *.
3926 (gimple_omp_atomic_store_val_ptr): Likewise.
3927 (gimple_omp_atomic_load_set_lhs): Likewise.
3928 (gimple_omp_atomic_store_val): Require a const gomp_atomic_store *.
3929 (gimple_omp_atomic_load_lhs): Likewise.
3930 (gimple_omp_atomic_load_rhs): Likewise.
3931 (gimple_omp_atomic_load_lhs_ptr): Require a gomp_atomic_load *.
3932 (gimple_omp_atomic_load_set_rhs): Likewise.
3933 (gimple_omp_atomic_load_rhs_ptr): Likewise.
3934 (gimple_omp_continue_control_def): Require a const gomp_continue *.
3935 (gimple_omp_continue_control_use): Likewise.
3936 (gimple_omp_continue_control_def_ptr): Require a gomp_continue *.
3937 (gimple_omp_continue_set_control_def): Likewise.
3938 (gimple_omp_continue_control_use_ptr): Likewise.
3939 (gimple_omp_continue_set_control_use): Likewise.
3940 (gimple_transaction_body_ptr): Require a gtransaction *.
3941 (gimple_transaction_body): Likewise.
3942 (gimple_transaction_label_ptr): Likewise.
3943 (gimple_transaction_label): Require a const gtransaction *.
3944 (gimple_transaction_subcode): Likewise.
3945 (gimple_transaction_set_body): Require a gtransaction *.
3946 (gimple_transaction_set_label): Likewise.
3947 (gimple_transaction_set_subcode): Likewise.
3948 (gimple_return_retval_ptr): Require a const greturn *.
3949 (gimple_return_retval): Likewise.
3950 (gimple_return_set_retval): Require a greturn *.
3951 (gimple_expr_type): Introduce local "call_stmt" and use in place of
3952 "stmt" for typesafety.
3954 * asan.c: Use gimple subclasses.
3955 * auto-profile.c: Likewise.
3956 * builtins.c: Likewise.
3957 * builtins.h: Likewise.
3958 * cfgexpand.c: Likewise.
3959 * cfgloop.c: Likewise.
3960 * cfgloopmanip.c: Likewise.
3961 * cgraph.c: Likewise.
3962 * cgraph.h: Likewise.
3963 * cgraphbuild.c: Likewise.
3964 * cgraphclones.c: Likewise.
3965 * cgraphunit.c: Likewise.
3967 * gimple-builder.c: Likewise.
3968 * gimple-builder.h: Likewise.
3969 * gimple-fold.c: Likewise.
3970 * gimple-low.c: Likewise.
3971 * gimple-pretty-print.c: Likewise.
3972 * gimple-ssa-isolate-paths.c: Likewise.
3973 * gimple-ssa-strength-reduction.c: Likewise.
3974 * gimple-streamer-in.c: Likewise.
3975 * gimple-streamer-out.c: Likewise.
3976 * gimple-walk.c: Likewise.
3977 * gimplify-me.c: Likewise.
3978 * gimplify.c: Likewise.
3979 * gimplify.h: Likewise.
3980 * graphite-scop-detection.c: Likewise.
3981 * graphite-sese-to-poly.c: Likewise.
3982 * internal-fn.c: Likewise.
3983 * internal-fn.def:: Likewise.
3984 * internal-fn.h: Likewise.
3985 * ipa-icf-gimple.c: Likewise.
3986 * ipa-icf-gimple.h: Likewise.
3987 * ipa-icf.c: Likewise.
3988 * ipa-inline-analysis.c: Likewise.
3989 * ipa-prop.c: Likewise.
3990 * ipa-prop.h: Likewise.
3991 * ipa-pure-const.c: Likewise.
3992 * ipa-split.c: Likewise.
3993 * lto-streamer-in.c: Likewise.
3994 * lto-streamer-out.c: Likewise.
3995 * omp-low.c: Likewise.
3996 * predict.c: Likewise.
3997 * sanopt.c: Likewise.
3999 * ssa-iterators.h: Likewise.
4001 * trans-mem.c: Likewise.
4002 * tree-call-cdce.c: Likewise.
4003 * tree-cfg.c: Likewise.
4004 * tree-cfg.h: Likewise.
4005 * tree-cfgcleanup.c: Likewise.
4006 * tree-chkp.c: Likewise.
4007 * tree-chkp.h: Likewise.
4008 * tree-complex.c: Likewise.
4009 * tree-data-ref.c: Likewise.
4010 * tree-dfa.c: Likewise.
4011 * tree-eh.c: Likewise.
4012 * tree-eh.h: Likewise.
4013 * tree-emutls.c: Likewise.
4014 * tree-if-conv.c: Likewise.
4015 * tree-inline.c: Likewise.
4016 * tree-inline.h: Likewise.
4017 * tree-into-ssa.c: Likewise.
4018 * tree-into-ssa.h: Likewise.
4019 * tree-loop-distribution.c: Likewise.
4020 * tree-nrv.c: Likewise.
4021 * tree-object-size.c: Likewise.
4022 * tree-outof-ssa.c: Likewise.
4023 * tree-parloops.c: Likewise.
4024 * tree-phinodes.c: Likewise.
4025 * tree-phinodes.h: Likewise.
4026 * tree-predcom.c: Likewise.
4027 * tree-profile.c: Likewise.
4028 * tree-scalar-evolution.c: Likewise.
4029 * tree-scalar-evolution.h
4030 * tree-sra.cn_function):
4031 * tree-ssa-alias.c: Likewise.
4032 * tree-ssa-alias.h: Likewise.
4033 * tree-ssa-ccp.c: Likewise.
4034 * tree-ssa-coalesce.c: Likewise.
4035 * tree-ssa-copy.c: Likewise.
4036 * tree-ssa-copyrename.c: Likewise.
4037 * tree-ssa-dce.c: Likewise.
4038 * tree-ssa-dom.c: Likewise.
4039 * tree-ssa-forwprop.c: Likewise.
4040 * tree-ssa-ifcombine.c: Likewise.
4041 * tree-ssa-live.c: Likewise.
4042 * tree-ssa-loop-im.c: Likewise.
4043 * tree-ssa-loop-ivcanon.c: Likewise.
4044 * tree-ssa-loop-ivopts.c: Likewise.
4045 * tree-ssa-loop-manip.c: Likewise.
4046 * tree-ssa-loop-niter.c: Likewise.
4047 * tree-ssa-loop-prefetch.c: Likewise.
4048 * tree-ssa-loop-unswitch.c: Likewise.
4049 * tree-ssa-math-opts.c: Likewise.
4050 * tree-ssa-operands.c: Likewise.
4051 * tree-ssa-phiopt.c: Likewise.
4052 * tree-ssa-phiprop.c: Likewise.
4053 * tree-ssa-pre.c: Likewise.
4054 * tree-ssa-propagate.c: Likewise.
4055 * tree-ssa-propagate.h: Likewise.
4056 * tree-ssa-reassoc.c: Likewise.
4057 * tree-ssa-sccvn.c: Likewise.
4058 * tree-ssa-sccvn.h: Likewise.
4059 * tree-ssa-sink.c: Likewise.
4061 * tree-ssa-structalias.c
4062 * tree-ssa-tail-merge.c: Likewise.
4063 * tree-ssa-ter.c: Likewise.
4064 * tree-ssa-threadedge.c: Likewise.
4065 * tree-ssa-threadedge.h: Likewise.
4066 * tree-ssa-threadupdate.c: Likewise.
4067 * tree-ssa-uncprop.c: Likewise.
4068 * tree-ssa-uninit.c: Likewise.
4069 * tree-ssa.c: Likewise.
4070 * tree-stdarg.c: Likewise.
4071 * tree-switch-conversion.c: Likewise.
4072 * tree-tailcall.c: Likewise.
4073 * tree-vect-data-refs.c: Likewise.
4074 * tree-vect-generic.c: Likewise.
4075 * tree-vect-loop-manip.c: Likewise.
4076 * tree-vect-loop.c: Likewise.
4077 * tree-vect-patterns.c: Likewise.
4078 * tree-vect-slp.c: Likewise.
4079 * tree-vect-stmts.c: Likewise.
4080 * tree-vectorizer.h: Likewise.
4081 * tree-vrp.c: Likewise.
4083 * ubsan.c: Likewise.
4084 * value-prof.c: Likewise.
4085 * value-prof.h: Likewise.
4086 * vtable-verify.c: Likewise.
4088 2014-11-19 Markus Trippelsdorf <markus@trippelsdorf.de>
4090 * config/rs6000/constraints.md: Avoid signed integer overflows.
4091 * config/rs6000/predicates.md: Likewise.
4093 2014-11-19 Renlin Li <Renlin.Li@arm.com>
4096 * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): New.
4098 2014-11-19 Renlin Li <Renlin.Li@arm.com>
4101 * ira.c (ira): Update preferred class.
4103 2014-11-19 Jakub Jelinek <jakub@redhat.com>
4105 * gimple.h (gimple_build_assign_with_ops): Add unary arg overload.
4106 (gimple_assign_set_rhs_with_ops_1): Renamed to ...
4107 (gimple_assign_set_rhs_with_ops): ... this. Adjust binary arg
4108 inline overload to use it. Add unary arg overload.
4109 * gimple.c (gimple_build_assign_with_ops): New unary arg overload.
4110 (gimple_assign_set_rhs_from_tree): Use
4111 gimple_assign_set_rhs_with_ops instead of
4112 gimple_assign_set_rhs_with_ops_1.
4113 (gimple_assign_set_rhs_with_ops_1): Renamed to ...
4114 (gimple_assign_set_rhs_with_ops): ... this.
4115 * ipa-split.c (split_function): Remove last NULL argument
4116 from gimple_build_assign_with_ops call.
4117 * tree-ssa-loop-im.c
4118 (move_computations_dom_walker::before_dom_children): Likewise.
4119 * tsan.c (instrument_builtin_call): Likewise.
4120 * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
4121 vectorizable_conversion, vectorizable_load): Likewise.
4122 * tree-vect-loop.c (vect_is_simple_reduction_1,
4123 get_initial_def_for_induction): Likewise.
4124 * tree-loop-distribution.c (generate_memset_builtin): Likewise.
4125 * tree-vect-patterns.c (vect_handle_widen_op_by_const,
4126 vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
4127 vect_recog_over_widening_pattern, vect_recog_rotate_pattern,
4128 vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern,
4129 vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast,
4130 adjust_bool_pattern, vect_recog_bool_pattern): Likewise.
4131 * tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
4132 neg_replacement): Likewise.
4133 * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
4134 maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
4135 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
4136 * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
4137 expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
4138 simd_clone_adjust): Likewise.
4139 * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
4140 * gimple-ssa-strength-reduction.c (introduce_cast_before_cand,
4141 replace_one_candidate): Likewise.
4142 * gimple-builder.c (build_type_cast): Likewise.
4143 * tree-ssa-forwprop.c (simplify_rotate): Likewise.
4144 (forward_propagate_addr_expr_1): Remove last NULL argument
4145 from gimple_assign_set_rhs_with_ops call.
4146 (simplify_vector_constructor): Use gimple_assign_set_rhs_with_ops
4147 instead of gimple_assign_set_rhs_with_ops_1.
4148 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Remove last NULL
4149 argument from gimple_build_assign_with_ops call.
4150 (repropagate_negates): Remove last NULL argument from
4151 gimple_assign_set_rhs_with_ops call.
4152 * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn): Remove
4153 last NULL argument from gimple_build_assign_with_ops call.
4154 (instrument_bool_enum_load): Likewise. Remove last NULL argument
4155 from gimple_assign_set_rhs_with_ops call.
4156 * tree-ssa-math-opts.c (build_and_insert_cast, convert_mult_to_fma):
4157 Remove last NULL argument from gimple_build_assign_with_ops call.
4158 (bswap_replace): Likewise. Use gimple_assign_set_rhs_with_ops instead
4159 of gimple_assign_set_rhs_with_ops_1.
4160 (convert_plusminus_to_widen): Use gimple_assign_set_rhs_with_ops
4161 instead of gimple_assign_set_rhs_with_ops_1.
4162 * gimple-fold.c (replace_stmt_with_simplification): Likewise.
4163 (rewrite_to_defined_overflow, gimple_build): Remove last NULL argument
4164 from gimple_build_assign_with_ops call.
4165 * tree-ssa-strlen.c (handle_pointer_plus): Remove last NULL argument
4166 from gimple_assign_set_rhs_with_ops call.
4167 * tree-vrp.c (simplify_truth_ops_using_ranges,
4168 simplify_bit_ops_using_ranges): Remove last NULL argument from
4169 gimple_assign_set_rhs_with_ops call.
4170 (simplify_float_conversion_using_ranges,
4171 simplify_internal_call_using_ranges): Remove last NULL argument from
4172 gimple_build_assign_with_ops call.
4174 2014-11-19 Wilco Dijkstra <wdijkstr@arm.com>
4177 * config/aarch64/aarch64.c (generic_regmove_cost): Increase FP move
4180 2014-11-19 Marek Polacek <polacek@redhat.com>
4183 * ubsan.c (instrument_object_size): Check for MEM_REF.
4185 2014-11-19 Ilya Verbin <ilya.verbin@intel.com>
4188 * cgraph.c (cgraph_node::create): Guard g->have_offload with
4189 ifdef ENABLE_OFFLOADING.
4190 * omp-low.c (create_omp_child_function): Likewise.
4191 (expand_omp_target): Guard node->mark_force_output and offload_funcs
4192 with ifdef ENABLE_OFFLOADING.
4193 * varpool.c (varpool_node::get_create): Guard g->have_offload and
4194 offload_vars with ifdef ENABLE_OFFLOADING.
4196 2014-11-19 Felix Yang <felix.yang@huawei.com>
4197 Shanyao Chen <chenshanyao@huawei.com>
4200 * config/arm/arm.md (define_attr "arch"): Add v6t2.
4201 (define_attr "arch_enabled"): Add test for the above.
4202 (*movhi_insn_arch4): Add new alternative.
4204 2014-11-19 Richard Henderson <rth@redhat.com>
4206 * c-family/c-common.c (c_common_reswords): Add
4207 __builtin_call_with_static_chain.
4208 * c-family/c-common.h (RID_BUILTIN_CALL_WITH_STATIC_CHAIN): New.
4209 * c/c-parser.c (c_parser_postfix_expression): Handle it.
4210 * doc/extend.texi (__builtin_call_with_static_chain): Document it.
4212 * calls.c (prepare_call_address): Allow decl or type for first arg.
4213 (expand_call): Pass type to prepare_call_address if no decl.
4214 * gimple-fold.c (gimple_fold_call): Eliminate the static chain if
4215 the function doesn't use it; fold it otherwise.
4216 * gimplify.c (gimplify_call_expr): Gimplify the static chain.
4217 * tree-cfg.c (verify_gimple_call): Allow a static chain on indirect
4220 * targhooks.c (default_static_chain): Remove check for
4222 * config/moxie/moxie.c (moxie_static_chain): Likewise.
4223 * config/i386/i386.c (ix86_static_chain): Allow decl or type
4224 as the first argument.
4225 * config/xtensa/xtensa.c (xtensa_static_chain): Change the name
4226 of the unused first parameter.
4227 * doc/tm.texi (TARGET_STATIC_CHAIN): Document the first parameter
4229 * target.def (static_chain): Likewise.
4231 2014-11-19 Renlin Li <renlin.li@arm.com>
4233 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_FP_FAST,
4234 __ARM_FEATURE_FMA, __ARM_FP, __ARM_FEATURE_NUMERIC_MAXMIN, __ARM_NEON_FP.
4236 2014-11-19 Marek Polacek <polacek@redhat.com>
4239 * fold-const.c (negate_expr_p) <case NEGATE_EXPR>: Return
4240 !TYPE_OVERFLOW_SANITIZED.
4241 (fold_negate_expr) <case INTEGER_CST>: Fold when overflow
4242 does not trap and when overflow wraps, or when SANITIZE_SI_OVERFLOW
4245 2014-11-19 Ilya Tocar <ilya.tocar@intel.com>
4247 * collect2.c (main): Don't call fatal_error before
4248 diagnostic_initialize.
4249 * lto-wrapper.c (main): Likewise.
4251 2014-11-19 Tom de Vries <tom@codesourcery.com>
4253 PR tree-optimization/62167
4254 * tree-ssa-tail-merge.c (stmt_local_def): Handle statements with vuse
4256 (gimple_equal_p): Don't use vn_valueize to compare for lhs equality of
4259 2014-11-19 Jakub Jelinek <jakub@redhat.com>
4261 PR tree-optimization/63915
4262 * tree-vect-stmts.c (vectorizable_simd_clone_call): Pass
4263 true instead of false as last argument to gsi_replace.
4266 * internal-fn.c (expand_ubsan_result_store): New function.
4267 (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
4268 Use it instead of just emit_move_insn.
4270 2014-11-19 Richard Biener <rguenther@suse.de>
4272 PR tree-optimization/63844
4273 * omp-low.c (fixup_child_record_type): Use a restrict qualified
4274 referece type for the receiver parameter.
4276 2014-11-19 Jakub Jelinek <jakub@redhat.com>
4279 * ubsan.c: Include tree-eh.h.
4280 (instrument_bool_enum_load): Handle loads that can throw.
4282 PR rtl-optimization/63843
4283 * simplify-rtx.c (simplify_binary_operation_1) <case ASHIFTRT>: For
4284 optimization of ashiftrt of subreg of lshiftrt, check that code
4287 2014-11-18 Andrew MacLeod <amacleod@redhat.com>
4289 * attribs.c (decl_attributes): Remove always true condition,
4290 TREE_TYPE(x) will never compare equal to a TYPE_DECL.
4292 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
4295 * target.def (use_by_pieces_infrastructure_p): Take unsigned
4296 HOST_WIDE_INT as the size parameter.
4297 * targhooks.c (default_use_by_pieces_infrastructure_p): Likewise.
4298 * targhooks.h (default_use_by_pieces_infrastructure_p): Likewise.
4299 * config/arc/arc.c (arc_use_by_pieces_infrastructure_p)): Likewise.
4300 * config/mips/mips.c (mips_use_by_pieces_infrastructure_p)): Likewise.
4301 * config/s390/s390.c (s390_use_by_pieces_infrastructure_p)): Likewise.
4302 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p)): Likewise.
4303 * config/aarch64/aarch64.c
4304 (aarch64_use_by_pieces_infrastructure_p)): Likewise.
4305 * doc/tm.texi: Regenerate.
4307 2014-11-18 Jan Hubicka <hubicka@ucw.cz>
4309 * ipa-cp.c (ipcp_cloning_candidate_p): Use opt_for_fn.
4310 (ipa_value_from_jfunc, ipa_context_from_jfunc): Skip sanity check.
4311 (ipa_get_indirect_edge_target_1): Use opt_for_fn.
4312 (good_cloning_opportunity_p): Likewise.
4313 (ipa-cp gate): Enable ipa-cp with LTO.
4314 * ipa-profile.c (ipa_propagate_frequency): Use opt_for_fn.
4315 * ipa.c (symbol_table::remove_unreachable_nodes): Always build type
4317 * ipa-inline-transform.c (inline_transform): Check if there are inlines
4318 to apply even at -O0.
4319 * cgraphunit.c (cgraph_node::finalize_function): Use opt_for_fn.
4320 (analyze_functions): Build type inheritance graph.
4321 * ipa-inline.c (can_inline_edge_p): Use opt_for_fn.
4322 (want_early_inline_function_p, want_inline_small_function_p):
4324 (check_callers): Likewise.
4325 (edge_badness): Likewise.
4326 (inline_small_functions): Always be ready for indirect inlining
4328 (ipa_inline): Always use want_inline_function_to_all_callers_p.
4329 (early_inline_small_functions): Use opt_for_fn.
4330 * ipa-inline-analysis.c (estimate_function_body_sizes): use opt_for_fn.
4331 (estimate_function_body_sizes): Likewise.
4332 (compute_inline_parameters): Likewise.
4333 (estimate_edge_devirt_benefit): Likewise.
4334 (inline_analyze_function): Likewise.
4335 * ipa-devirt.c (ipa_devirt): Likewise.
4336 (gate): Use in_lto_p.
4337 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): Use opt_for_fn.
4338 (try_make_edge_direct_virtual_call): Likewise.
4339 (update_indirect_edges_after_inlining): Likewise.
4340 (ipa_free_all_structures_after_ipa_cp): Add in_lto_p check.
4341 * common.opt (findirect-inlining): Turn into optimization.
4342 * ipa-pure-const.c (add_new_function): Use opt_for_fn.
4343 (pure_const_generate_summary): Likewise.
4344 (gate_pure_const): Always enable with in_lto_p.
4346 2014-11-18 Maciej W. Rozycki <macro@codesourcery.com>
4348 * config/mips/mips.md (compression): Add `micromips32' setting.
4349 (enabled, length): Handle it.
4350 (shift_compression): Replace `micromips' with `micromips32' in
4351 the `compression' attribute.
4352 (*add<mode>3, sub<mode>3): Likewise.
4354 2014-11-18 Maciej W. Rozycki <macro@codesourcery.com>
4356 * gcc/config/mips/mips.md (*jump_absolute): Use a branch when in
4357 range, a jump otherwise.
4359 2014-11-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4361 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_to_from_gp):
4363 (cortex_a15_gp_to_vfp): ...This.
4364 (cortex_a15_fp_to_gp): ...And this.
4365 Define and comment bypass from vfp operations to fp->gp moves.
4367 2014-11-18 Martin Liska <mliska@suse.cz>
4369 * var-tracking.c (vt_find_locations): New fibonacci_node is used.
4371 2014-11-18 Martin Liska <mliska@suse.cz>
4373 * bt-load.c (add_btr_def): New fibonacci_heap is used.
4374 (migrate_btr_defs): Likewise.
4376 2014-11-18 Martin Liska <mliska@suse.cz>
4378 * tracer.c (tail_duplicate): New fibonacci_heap class is used.
4380 2014-11-18 Martin Liska <mliska@suse.cz>
4382 * bb-reorder.c (mark_bb_visited): New fibonacci_heap is used.
4383 (find_traces): Likewise.
4384 (find_traces_1_round): Likewise.
4386 2014-11-18 Martin Liska <mliska@suse.cz>
4388 * fibonacci_heap.h: New file.
4389 (fibonacci_heap::insert): Created from fibheap_insert.
4390 (fibonacci_heap::empty): Created from fibheap_empty.
4391 (fibonacci_heap::nodes): Created from fibheap_nodes.
4392 (fibonacci_heap::min_key): Created from fibheap_min_key.
4393 (fibonacci_heap::decrease_key): Created from fibheap_replace_key.
4394 (fibonacci_heap::replace_key_data): Created from fibheap_replace_key_data.
4395 (fibonacci_heap::extract_min): Created from fibheap_extract_min.
4396 (fibonacci_heap::min): Created from fibheap_min.
4397 (fibonacci_heap::replace_data): Created from fibheap_replace_data.
4398 (fibonacci_heap::delete_node): Created from fibheap_delete_node.
4399 (fibonacci_heap::union_with): Created from fibheap_union.
4400 * ipa-inline.c (update_edge_key): New heap API is used.
4401 (update_caller_keys): Likewise.
4402 (update_callee_keys): Likewise.
4403 (lookup_recursive_calls): Likewise.
4404 (recursive_inlining): Likewise.
4405 (add_new_edges_to_heap): Likewise.
4406 (heap_edge_removal_hook): Likewise.
4407 (inline_small_functions): Likewise.
4409 2014-11-18 Marek Polacek <polacek@redhat.com>
4412 * asan.c (asan_global_struct): Create a TYPE_DECL for "__asan_global",
4413 put it into TYPE_NAME and TYPE_STUB_DECL.
4414 * ubsan.c (ubsan_type_descriptor_type): New variable.
4415 Function renamed to ...
4416 (ubsan_get_type_descriptor_type): ... this. Cache
4417 return value in ubsan_type_descriptor_type variable.
4418 Create a TYPE_DECL for "__ubsan_type_descriptor", put it into
4419 TYPE_NAME and TYPE_STUB_DECL.
4420 (ubsan_get_source_location_type): Create a TYPE_DECL for
4421 "__ubsan_source_location", put it into TYPE_NAME and TYPE_STUB_DECL.
4422 (ubsan_type_descriptor, ubsan_create_data): Call
4423 ubsan_get_type_descriptor_type instead of ubsan_type_descriptor_type.
4424 Create a TYPE_DECL for name, put it into TYPE_NAME and TYPE_STUB_DECL.
4426 2014-11-18 Felix Yang <felix.yang@huawei.com>
4428 * config/aarch64/aarch64.c (doloop_end): New pattern.
4429 * config/aarch64/aarch64.md (TARGET_CAN_USE_DOLOOP_P): Implement.
4431 2014-11-18 Jason Merrill <jason@redhat.com>
4433 * tree.c (warn_deprecated_use): Show declaration with inform.
4435 2014-11-18 Richard Biener <rguenther@suse.de>
4437 PR tree-optimization/63914
4438 * tree-ssa-ccp.c (canonicalize_value): Remove float value
4440 (valid_lattice_transition): Allow (partial) transition
4441 from NaN to non-NaN if !HONOR_NANS.
4442 (set_lattice_value): Check for valid lattice transitions
4443 only when checking is enabled.
4445 2014-11-18 Bernd Schmidt <bernds@codesourcery.com>
4447 * config/nvptx/nvptx.c: Include <sstream> directly after "config.h".
4449 2014-11-18 Christophe Lyon <christophe.lyon@linaro.org>
4451 * config/arm/neon-testgen.ml (emit_prologue): Handle new
4452 compile_test_optim argument.
4453 (emit_automatics): Rename to emit_variables. Support variable
4454 indentation of its output.
4455 (compile_test_optim): New function.
4456 (test_intrinsic): Call compile_test_optim.
4457 * config/arm/neon.ml (features): Add Compiler_optim.
4458 (ops): Add Compiler_optim feature to Vbic and Vorn.
4459 (type_in_crypto_only): Replace 'or' by '||'.
4460 (reinterp): Likewise.
4461 (reinterpq): Likewise.
4463 2014-11-18 Alan Lawrence <alan.lawrence@arm.com>
4465 * config/aarch64/arm_neon.h (vld1_dup_f32, vld1_dup_f64, vld1_dup_p8,
4466 vld1_dup_p16, vld1_dup_s8, vld1_dup_s16, vld1_dup_s32, vld1_dup_s64,
4467 vld1_dup_u8, vld1_dup_u16, vld1_dup_u32, vld1_dup_u64, vld1q_dup_f32,
4468 vld1q_dup_f64, vld1q_dup_p8, vld1q_dup_p16, vld1q_dup_s8, vld1q_dup_s16,
4469 vld1q_dup_s32, vld1q_dup_s64, vld1q_dup_u8, vld1q_dup_u16,
4470 vld1q_dup_u32, vld1q_dup_u64): Replace inline asm with vdup_n_ and
4471 pointer dereference.
4473 2014-11-18 Marc Glisse <marc.glisse@inria.fr>
4475 * tree.c (element_mode, integer_truep): New functions.
4476 * tree.h (element_mode, integer_truep): Declare them.
4477 * fold-const.c (negate_expr_p, fold_negate_expr, combine_comparisons,
4478 fold_cond_expr_with_comparison, fold_real_zero_addition_p,
4479 fold_comparison, fold_ternary_loc, tree_call_nonnegative_warnv_p,
4480 fold_strip_sign_ops): Use element_mode.
4481 (fold_binary_loc): Use element_mode and element_precision.
4482 * match.pd: Use integer_truep, element_mode, element_precision,
4483 VECTOR_TYPE_P and build_one_cst. Extend some transformations to
4484 vectors. Simplify A/-A.
4486 2014-11-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4488 * config/arm/arm.md (unaligned_loaddi): Use std::swap instead of
4489 manual swapping implementation.
4490 (movcond_addsi): Likewise.
4491 * config/arm/arm.c (arm_canonicalize_comparison): Likewise.
4492 (arm_select_dominance_cc_mode): Likewise.
4493 (arm_reload_out_hi): Likewise.
4494 (gen_operands_ldrd_strd): Likewise.
4495 (output_move_double): Likewise.
4496 (arm_print_operand_address): Likewise.
4497 (thumb_output_move_mem_multiple): Likewise.
4500 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
4502 * config/arm/arm-builtins.c (CONVERT_QUALIFIERS): Delete.
4503 (COPYSIGNF_QUALIFIERS): Likewise.
4504 (CREATE_QUALIFIERS): Likewise.
4505 (DUP_QUALIFIERS): Likewise.
4506 (FLOAT_WIDEN_QUALIFIERS): Likewise.
4507 (FLOAT_NARROW_QUALIFIERS): Likewise.
4508 (REINTERP_QUALIFIERS): Likewise.
4509 (RINT_QUALIFIERS): Likewise.
4510 (SPLIT_QUALIFIERS): Likewise.
4511 (FIXCONV_QUALIFIERS): Likewise.
4512 (SCALARMUL_QUALIFIERS): Likewise.
4513 (SCALARMULL_QUALIFIERS): Likewise.
4514 (SCALARMULH_QUALIFIERS): Likewise.
4515 (SELECT_QUALIFIERS): Likewise.
4516 (VTBX_QUALIFIERS): Likewise.
4517 (SHIFTIMM_QUALIFIERS): Likewise.
4518 (SCALARMAC_QUALIFIERS): Likewise.
4519 (LANEMUL_QUALIFIERS): Likewise.
4520 (LANEMULH_QUALIFIERS): Likewise.
4521 (LANEMULL_QUALIFIERS): Likewise.
4522 (SHIFTACC_QUALIFIERS): Likewise.
4523 (SHIFTINSERT_QUALIFIERS): Likewise.
4524 (VTBL_QUALIFIERS): Likewise.
4525 (LOADSTRUCT_QUALIFIERS): Likewise.
4526 (LOADSTRUCTLANE_QUALIFIERS): Likewise.
4527 (STORESTRUCT_QUALIFIERS): Likewise.
4528 (STORESTRUCTLANE_QUALIFIERS): Likewise.
4529 (neon_builtin_type_mode): Delete.
4530 (v8qi_UP): Map to V8QImode.
4531 (v8qi_UP): Map to V8QImode.
4532 (v4hi_UP): Map to V4HImode.
4533 (v4hf_UP): Map to V4HFmode.
4534 (v2si_UP): Map to V2SImode.
4535 (v2sf_UP): Map to V2SFmode.
4536 (di_UP): Map to DImode.
4537 (v16qi_UP): Map to V16QImode.
4538 (v8hi_UP): Map to V8HImode.
4539 (v4si_UP): Map to V4SImode.
4540 (v4sf_UP): Map to V4SFmode.
4541 (v2di_UP): Map to V2DImode.
4542 (ti_UP): Map to TImode.
4543 (ei_UP): Map to EImode.
4544 (oi_UP): Map to OImode.
4545 (neon_itype): Delete.
4546 (neon_builtin_datum): Remove itype, make mode a machine_mode.
4547 (VAR1): Update accordingly.
4548 (arm_init_neon_builtins): Use machine_mode directly.
4549 (neon_dereference_pointer): Likewise.
4550 (arm_expand_neon_args): Use qualifiers to decide operand types.
4551 (arm_expand_neon_builtin): Likewise.
4552 * config/arm/arm_neon_builtins.def: Remap operation type for
4555 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
4557 * config/arm/arm-builtins.c (arm_scalar_builtin_types): New.
4558 (enum arm_simd_type): Likewise.
4559 (struct arm_simd_type_info): Likewise
4560 (arm_mangle_builtin_scalar_type): Likewise.
4561 (arm_mangle_builtin_vector_type): Likewise.
4562 (arm_mangle_builtin_type): Likewise.
4563 (arm_simd_builtin_std_type): Likewise.
4564 (arm_lookup_simd_builtin_type): Likewise.
4565 (arm_simd_builtin_type): Likewise.
4566 (arm_init_simd_builtin_types): Likewise.
4567 (arm_init_simd_builtin_scalar_types): Likewise.
4568 (arm_init_neon_builtins): Rewrite using qualifiers.
4569 * config/arm/arm-protos.h (arm_mangle_builtin_type): New.
4570 * config/arm/arm-simd-builtin-types.def: New file.
4571 * config/arm/t-arm (arm-builtins.o): Depend on it.
4572 * config/arm/arm.c (arm_mangle_type): Call arm_mangle_builtin_type.
4573 * config/arm/arm_neon.h (int8x8_t): Use new internal type.
4574 (int16x4_t): Likewise.
4575 (int32x2_t): Likewise.
4576 (float16x4_t): Likewise.
4577 (float32x2_t): Likewise.
4578 (poly8x8_t): Likewise.
4579 (poly16x4_t): Likewise.
4580 (uint8x8_t): Likewise.
4581 (uint16x4_t): Likewise.
4582 (uint32x2_t): Likewise.
4583 (int8x16_t): Likewise.
4584 (int16x8_t): Likewise.
4585 (int32x4_t): Likewise.
4586 (int64x2_t): Likewise.
4587 (float32x4_t): Likewise.
4588 (poly8x16_t): Likewise.
4589 (poly16x8_t): Likewise.
4590 (uint8x16_t): Likewise.
4591 (uint16x8_t): Likewise.
4592 (uint32x4_t): Likewise.
4593 (uint64x2_t): Likewise.
4595 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
4597 * gcc/config/arm/arm-builtins.c (arm_type_qualifiers): New.
4598 (neon_itype): Add new types corresponding to the types used in
4600 (arm_unop_qualifiers): New.
4601 (arm_bswap_qualifiers): Likewise.
4602 (arm_binop_qualifiers): Likewise.
4603 (arm_ternop_qualifiers): Likewise.
4604 (arm_getlane_qualifiers): Likewise.
4605 (arm_lanemac_qualifiers): Likewise.
4606 (arm_setlane_qualifiers): Likewise.
4607 (arm_combine_qualifiers): Likewise.
4608 (arm_load1_qualifiers): Likewise.
4609 (arm_load1_lane_qualifiers): Likewise.
4610 (arm_store1_qualifiers): Likewise.
4611 (arm_storestruct_lane_qualifiers): Likewise.
4612 (UNOP_QUALIFIERS): Likewise.
4613 (DUP_QUALIFIERS): Likewise.
4614 (SPLIT_QUALIFIERS): Likewise.
4615 (CONVERT_QUALIFIERS): Likewise.
4616 (FLOAT_WIDEN_QUALIFIERS): Likewise.
4617 (FLOAT_NARROW_QUALIFIERS): Likewise.
4618 (RINT_QUALIFIERS): Likewise.
4619 (COPYSIGNF_QUALIFIERS): Likewise.
4620 (CREATE_QUALIFIERS): Likewise.
4621 (REINTERP_QUALIFIERS): Likewise.
4622 (BSWAP_QUALIFIERS): Likewise.
4623 (BINOP_QUALIFIERS): Likewise.
4624 (FIXCONV_QUALIFIERS): Likewise.
4625 (SCALARMUL_QUALIFIERS): Likewise.
4626 (SCALARMULL_QUALIFIERS): Likewise.
4627 (SCALARMULH_QUALIFIERS): Likewise.
4628 (TERNOP_QUALIFIERS): Likewise.
4629 (SELECT_QUALIFIERS): Likewise.
4630 (VTBX_QUALIFIERS): Likewise.
4631 (GETLANE_QUALIFIERS): Likewise.
4632 (SHIFTIMM_QUALIFIERS): Likewise.
4633 (LANEMAC_QUALIFIERS): Likewise.
4634 (SCALARMAC_QUALIFIERS): Likewise.
4635 (SETLANE_QUALIFIERS): Likewise.
4636 (SHIFTINSERT_QUALIFIERS): Likewise.
4637 (SHIFTACC_QUALIFIERS): Likewise.
4638 (LANEMUL_QUALIFIERS): Likewise.
4639 (LANEMULL_QUALIFIERS): Likewise.
4640 (LANEMULH_QUALIFIERS): Likewise.
4641 (COMBINE_QUALIFIERS): Likewise.
4642 (VTBL_QUALIFIERS): Likewise.
4643 (LOAD1_QUALIFIERS): Likewise.
4644 (LOADSTRUCT_QUALIFIERS): Likewise.
4645 (LOAD1LANE_QUALIFIERS): Likewise.
4646 (LOADSTRUCTLANE_QUALIFIERS): Likewise.
4647 (STORE1_QUALIFIERS): Likewise.
4648 (STORESTRUCT_QUALIFIERS): Likewise.
4649 (STORE1LANE_QUALIFIERS): Likewise.
4650 (STORESTRUCTLANE_QUALIFIERS): Likewise.
4651 (neon_builtin_datum): Keep track of qualifiers.
4654 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
4656 * config/arm/arm-builtins.c (VAR1): Add a comma.
4657 (VAR2): Rewrite in terms of VAR1.
4658 (VAR3-10): Likewise.
4659 (arm_builtins): Remove leading comma before ARM_BUILTIN_MAX.
4660 * config/arm/arm_neon_builtins.def: Remove trailing commas.
4662 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
4664 * config.gcc (extra_objs): Add arm-builtins.o for arm*-*-*.
4665 (target_gtfiles): Add config/arm/arm-builtins.c for arm*-*-*.
4666 * config/arm/arm-builtins.c: New.
4667 * config/arm/t-arm (arm_builtins.o): New.
4668 * config/arm/arm-protos.h (arm_expand_builtin): New.
4669 (arm_builtin_decl): Likewise.
4670 (arm_init_builtins): Likewise.
4671 (arm_atomic_assign_expand_fenv): Likewise.
4672 * config/arm/arm.c (arm_atomic_assign_expand_fenv): Remove prototype.
4673 (arm_init_builtins): Likewise.
4674 (arm_init_iwmmxt_builtins): Likewise
4675 (safe_vector_operand): Likewise
4676 (arm_expand_binop_builtin): Likewise
4677 (arm_expand_unop_builtin): Likewise
4678 (arm_expand_builtin): Likewise
4679 (arm_builtin_decl): Likewise
4680 (insn_flags): Remove static.
4681 (tune_flags): Likewise.
4682 (enum arm_builtins): Move to config/arm/arm-builtins.c.
4683 (arm_init_neon_builtins): Likewise.
4684 (struct builtin_description): Likewise.
4685 (arm_init_iwmmxt_builtins): Likewise.
4686 (arm_init_fp16_builtins): Likewise.
4687 (arm_init_crc32_builtins): Likewise.
4688 (arm_init_builtins): Likewise.
4689 (arm_builtin_decl): Likewise.
4690 (safe_vector_operand): Likewise.
4691 (arm_expand_ternop_builtin): Likewise.
4692 (arm_expand_binop_builtin): Likewise.
4693 (arm_expand_unop_builtin): Likewise.
4694 (neon_dereference_pointer): Likewise.
4695 (arm_expand_neon_args): Likewise.
4696 (arm_expand_neon_builtin): Likewise.
4697 (neon_split_vcombine): Likewise.
4698 (arm_expand_builtin): Likewise.
4699 (arm_builtin_vectorized_function): Likewise.
4700 (arm_atomic_assign_expand_fenv): Likewise.
4702 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
4704 * config/arm/t-arm (arm.o): Include arm-protos.h in the recipe.
4705 * config/arm/arm.c (FL_CO_PROC): Move to arm-protos.h.
4706 (FL_ARCH3M): Likewise.
4707 (FL_MODE26): Likewise.
4708 (FL_MODE32): Likewise.
4709 (FL_ARCH4): Likewise.
4710 (FL_ARCH5): Likewise.
4711 (FL_THUMB): Likewise.
4712 (FL_LDSCHED): Likewise.
4713 (FL_STRONG): Likewise.
4714 (FL_ARCH5E): Likewise.
4715 (FL_XSCALE): Likewise.
4716 (FL_ARCH6): Likewise.
4717 (FL_VFPV2): Likewise.
4718 (FL_WBUF): Likewise.
4719 (FL_ARCH6K): Likewise.
4720 (FL_THUMB2): Likewise.
4721 (FL_NOTM): Likewise.
4722 (FL_THUMB_DIV): Likewise.
4723 (FL_VFPV3): Likewise.
4724 (FL_NEON): Likewise.
4725 (FL_ARCH7EM): Likewise.
4726 (FL_ARCH7): Likewise.
4727 (FL_ARM_DIV): Likewise.
4728 (FL_ARCH8): Likewise.
4729 (FL_CRC32): Likewise.
4730 (FL_SMALLMUL): Likewise.
4731 (FL_IWMMXT): Likewise.
4732 (FL_IWMMXT2): Likewise.
4733 (FL_TUNE): Likewise.
4734 (FL_FOR_ARCH2): Likewise.
4735 (FL_FOR_ARCH3): Likewise.
4736 (FL_FOR_ARCH3M): Likewise.
4737 (FL_FOR_ARCH4): Likewise.
4738 (FL_FOR_ARCH4T): Likewise.
4739 (FL_FOR_ARCH5): Likewise.
4740 (FL_FOR_ARCH5T): Likewise.
4741 (FL_FOR_ARCH5E): Likewise.
4742 (FL_FOR_ARCH5TE): Likewise.
4743 (FL_FOR_ARCH5TEJ): Likewise.
4744 (FL_FOR_ARCH6): Likewise.
4745 (FL_FOR_ARCH6J): Likewise.
4746 (FL_FOR_ARCH6K): Likewise.
4747 (FL_FOR_ARCH6Z): Likewise.
4748 (FL_FOR_ARCH6ZK): Likewise.
4749 (FL_FOR_ARCH6T2): Likewise.
4750 (FL_FOR_ARCH6M): Likewise.
4751 (FL_FOR_ARCH7): Likewise.
4752 (FL_FOR_ARCH7A): Likewise.
4753 (FL_FOR_ARCH7VE): Likewise.
4754 (FL_FOR_ARCH7R): Likewise.
4755 (FL_FOR_ARCH7M): Likewise.
4756 (FL_FOR_ARCH7EM): Likewise.
4757 (FL_FOR_ARCH8A): Likewise.
4758 * config/arm/arm-protos.h: Take definitions moved from arm.c.
4760 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
4762 * config/arm/arm.c (arm_expand_neon_builtin): Remove "Magic Word"
4763 parameter, rearrange switch statement accordingly.
4764 (arm_evpc_neon_vrev): Remove "Magic Word".
4765 * config/arm/unspecs.md (unspec): Split many UNSPECs to
4766 rounding, or signed/unsigned variants.
4767 * config/arm/neon.md (vcond<mode><mode>): Remove "Magic Word" code.
4768 (vcondu<mode><mode>): Likewise.
4769 (neon_vadd): Remove "Magic Word" operand.
4770 (neon_vaddl): Remove "Magic Word" operand, convert to use
4771 signed/unsigned iterator.
4772 (neon_vaddw): Likewise.
4773 (neon_vhadd): Likewise, also iterate over "rounding" forms.
4774 (neon_vqadd): Remove "Magic Word" operand, convert to use
4775 signed/unsigned iterator.
4776 (neon_v<r>addhn): Remove "Magic Word" operand, convert to iterate
4777 over "rounding" forms.
4778 (neon_vmul): Remove "Magic Word" operand, iterate over
4779 polynomial/float instruction forms.
4780 (neon_vmla): Remove "Magic Word" operand.
4781 (neon_vfma): Likewise.
4782 (neon_vfms): Likewise.
4783 (neon_vmls): Likewise.
4784 (neon_vmlal): Remove "Magic Word" operand, iterate over
4785 signed/unsigned forms.
4786 (neon_vmlsl): Likewise.
4787 (neon_vqdmulh): Remove "Magic Word" operand, iterate over "rounding"
4789 (neon_vqdmlal): Remove "Magic Word" operand, iterate over
4790 signed/unsigned forms.
4791 (neon_vqdmlsl): Likewise.
4792 (neon_vmull): Likewise.
4793 (neon_vqdmull): Remove "Magic Word" operand.
4794 (neon_vsub): Remove "Magic Word" operand.
4795 (neon_vsubl): Remove "Magic Word" operand, convert to use
4796 signed/unsigned iterator.
4797 (neon_vsubw): Likewise.
4798 (neon_vhsub): Likewise.
4799 (neon_vqsub): Likewise.
4800 (neon_v<r>subhn): Remove "Magic Word" operand, convert to iterate
4801 over "rounding" forms.
4802 (neon_vceq): Remove "Magic Word" operand.
4803 (neon_vcge): Likewise.
4804 (neon_vcgeu): Likewise.
4805 (neon_vcgt): Likewise.
4806 (neon_vcgtu): Likewise.
4807 (neon_vcle): Likewise.
4808 (neon_vclt): Likewise.
4809 (neon_vcage): Likewise.
4810 (neon_vcagt): Likewise.
4811 (neon_vabd): Remove "Magic Word" operand, iterate over
4812 signed/unsigned forms, and split out...
4813 (neon_vabdf): ...this as new.
4814 (neon_vabdl): Remove "Magic Word" operand, iterate over
4815 signed/unsigned forms.
4816 (neon_vaba): Likewise.
4817 (neon_vmax): Remove "Magic Word" operand, iterate over
4818 signed/unsigned and max/min forms, and split out...
4819 (neon_v<maxmin>f): ...this as new.
4820 (neon_vmin): Delete.
4821 (neon_vpadd): Remove "Magic Word" operand.
4822 (neon_vpaddl): Remove "Magic Word" operand, iterate over
4823 signed/unsigned variants.
4824 (neon_vpadal): Likewise.
4825 (neon_vpmax): Remove "Magic Word" operand, iterate over
4826 signed/unsigned and max/min forms, and split out...
4827 (neon_vp<maxmin>f): ...this as new.
4828 (neon_vpmin): Delete.
4829 (neon_vrecps): Remove "Magic Word" operand.
4830 (neon_vrsqrts): Likewise.
4831 (neon_vabs): Likewise.
4832 (neon_vqabs): Likewise.
4833 (neon_vneg): Likewise.
4834 (neon_vqneg): Likewise.
4835 (neon_vcls): Likewise.
4836 (neon_vcnt): Likewise.
4837 (neon_vrecpe): Likewise.
4838 (neon_vrsqrte): Likewise.
4839 (neon_vmvn): Likewise.
4840 (neon_vget_lane): Likewise.
4841 (neon_vget_laneu): New.
4842 (neon_vget_lanedi): Remove "Magic Word" operand.
4843 (neon_vget_lanev2di): Likewise.
4844 (neon_vcvt): Remove "Magic Word" operand, iterate over
4845 signed/unsigned variants.
4846 (neon_vcvt_n): Likewise.
4847 (neon_vmovn): Remove "Magic Word" operand.
4848 (neon_vqmovn): Remove "Magic Word" operand, iterate over
4849 signed/unsigned variants.
4850 (neon_vmovun): Remove "Magic Word" operand.
4851 (neon_vmovl): Remove "Magic Word" operand, iterate over
4852 signed/unsigned variants.
4853 (neon_vmul_lane): Remove "Magic Word" operand.
4854 (neon_vmull_lane): Remove "Magic Word" operand, iterate over
4855 signed/unsigned variants.
4856 (neon_vqdmull_lane): Remove "Magic Word" operand.
4857 (neon_vqdmulh_lane): Remove "Magic Word" operand, iterate over
4859 (neon_vmla_lane): Remove "Magic Word" operand.
4860 (neon_vmlal_lane): Remove "Magic Word" operand, iterate over
4861 signed/unsigned variants.
4862 (neon_vqdmlal_lane): Remove "Magic Word" operand.
4863 (neon_vmls_lane): Likewise.
4864 (neon_vmlsl_lane): Remove "Magic Word" operand, iterate over
4865 signed/unsigned variants.
4866 (neon_vqdmlsl_lane): Remove "Magic Word" operand.
4867 (neon_vmul_n): Remove "Magic Word" operand.
4868 (neon_vmull_n): Rename to...
4869 (neon_vmulls_n): ...this, remove "Magic Word" operand.
4870 (neon_vmullu_n): New.
4871 (neon_vqdmull_n): Remove "Magic Word" operand.
4872 (neon_vqdmulh_n): Likewise.
4873 (neon_vqrdmulh_n): New.
4874 (neon_vmla_n): Remove "Magic Word" operand.
4875 (neon_vmls_n): Likewise.
4876 (neon_vmlal_n): Rename to...
4877 (neon_vmlals_n): ...this, remove "Magic Word" operand.
4878 (neon_vmlalu_n): New.
4879 (neon_vqdmlal_n): Remove "Magic Word" operand.
4880 (neon_vmlsl_n): Rename to...
4881 (neon_vmlsls_n): ...this, remove "Magic Word" operand.
4882 (neon_vmlslu_n): New.
4883 (neon_vqdmlsl_n): Remove "Magic Word" operand.
4884 (neon_vrev64): Remove "Magic Word" operand.
4885 (neon_vrev32): Likewise.
4886 (neon_vrev16): Likewise.
4887 (neon_vshl): Remove "Magic Word" operand, iterate over
4888 signed/unsigned and "rounding" forms.
4889 (neon_vqshl): Likewise.
4890 (neon_vshr_n): Likewise.
4891 (neon_vshrn_n): Remove "Magic Word" operand, iterate over
4893 (neon_vqshrn_n): Remove "Magic Word" operand, iterate over
4894 signed/unsigned and "rounding" forms.
4895 (neon_vqshrun_n): Remove "Magic Word" operand, iterate over
4897 (neon_vshl_n): Remove "Magic Word" operand.
4898 (neon_vqshl_n): Remove "Magic Word" operand, iterate over
4899 signed/unsigned variants.
4900 (neon_vqshlu_n): Remove "Magic Word" operand.
4901 (neon_vshll_n): Remove "Magic Word" operand, iterate over
4902 signed/unsigned variants.
4903 (neon_vsra_n): Remove "Magic Word" operand, iterate over
4904 signed/unsigned and "rounding" forms.
4905 * config/arm/iterators.md (VPF): New.
4912 (VMLAL_LANE): Likewise.
4914 (VMLSL_LANE): Likewise.
4915 (VQDMULH): Likewise,
4916 (VQDMULH_LANE): Likewise.
4918 (VMULL_LANE): Likewise.
4926 (VMAXMIN): Likewise.
4927 (VMAXMINF): Likewise.
4930 (VPMAXMIN): Likewise.
4931 (VPMAXMINF): Likewise.
4932 (VCVT_US): Likewise.
4933 (VCVT_US_N): Likewise.
4939 (VSHRN_N): Likewise.
4940 (VQSHRN_N): Likewise.
4941 (VQSHRUN_N): Likewise.
4942 (VQSHL_N): Likewise.
4943 (VSHLL_N): Likewise.
4949 (shift_op): Likewise.
4950 * config/arm/arm_neon_builtins.def (vaddl): Split to...
4951 (vaddls): ...this and...
4953 (vaddw): Split to...
4954 (vaddws): ...this and...
4956 (vhadd): Split to...
4957 (vhadds): ...this and...
4958 (vhaddu): ...this and...
4959 (vrhadds): ...this and...
4961 (vqadd): Split to...
4962 (vqadds): ...this and...
4964 (vaddhn): Split to itself and...
4967 (vmulf): ...this and...
4969 (vmlal): Split to...
4970 (vmlals): ...this and...
4972 (vmlsl): Split to...
4973 (vmlsls): ...this and...
4975 (vqdmulh): Split to itself and...
4976 (vqrdmulh): ...this.
4977 (vmull): Split to...
4978 (vmullp): ...this and...
4979 (vmulls): ...this and...
4981 (vmull_n): Split to...
4982 (vmulls_n): ...this and...
4983 (vmullu_n): ...this.
4984 (vmull_lane): Split to...
4985 (vmulls_lane): ...this and...
4986 (vmullu_lane): ...this.
4987 (vqdmulh_n): Split to itself and...
4988 (vqrdmulh_n): ...this.
4989 (vqdmulh_lane): Split to itself and...
4990 (vqrdmulh_lane): ...this.
4992 (vshls): ...this and...
4993 (vshlu): ...this and...
4994 (vrshls): ...this and...
4996 (vqshl): Split to...
4997 (vqshls): ...this and...
4998 (vqrshlu): ...this and...
4999 (vqrshls): ...this and...
5001 (vshr_n): Split to...
5002 (vshrs_n): ...this and...
5003 (vshru_n): ...this and...
5004 (vrshrs_n): ...this and...
5005 (vrshru_n): ...this.
5006 (vshrn_n): Split to itself and...
5007 (vrshrn_n): ...this.
5008 (vqshrn_n): Split to...
5009 (vqshrns_n): ...this and...
5010 (vqshrnu_n): ...this and...
5011 (vqrshrns_n): ...this and...
5012 (vqrshrnu_n): ...this.
5013 (vqshrun_n): Split to itself and...
5014 (vqrshrun_n): ...this.
5015 (vqshl_n): Split to...
5016 (vqshl_s_n): ...this and...
5017 (vqshl_u_n): ...this.
5018 (vshll_n): Split to...
5019 (vshlls_n): ...this and...
5020 (vshllu_n): ...this.
5021 (vsra_n): Split to...
5022 (vsras_n): ...this and...
5023 (vsrau_n): ...this and.
5024 (vrsras_n): ...this and...
5025 (vrsrau_n): ...this and.
5026 (vsubl): Split to...
5027 (vsubls): ...this and...
5029 (vsubw): Split to...
5030 (vsubws): ...this and...
5032 (vqsub): Split to...
5033 (vqsubs): ...this and...
5035 (vhsub): Split to...
5036 (vhsubs): ...this and...
5038 (vsubhn): Split to itself and...
5041 (vabds): ...this and...
5042 (vabdu): ...this and...
5044 (vabdl): Split to...
5045 (vabdls): ...this and...
5048 (vabas): ...this and...
5049 (vabau): ...this and...
5050 (vabal): Split to...
5051 (vabals): ...this and...
5054 (vmaxs): ...this and...
5055 (vmaxu): ...this and...
5058 (vmins): ...this and...
5059 (vminu): ...this and...
5061 (vpmax): Split to...
5062 (vpmaxs): ...this and...
5063 (vpmaxu): ...this and...
5065 (vpmin): Split to...
5066 (vpmins): ...this and...
5067 (vpminu): ...this and...
5069 (vpaddl): Split to...
5070 (vpaddls): ...this and...
5072 (vpadal): Split to...
5073 (vpadals): ...this and...
5076 (vqmovn): Split to...
5077 (vqmovns): ...this and...
5079 (vmovl): Split to...
5080 (vmovls): ...this and...
5082 (vmlal_lane): Split to...
5083 (vmlals_lane): ...this and...
5084 (vmlalu_lane): ...this.
5085 (vmlsl_lane): Split to...
5086 (vmlsls_lane): ...this and...
5087 (vmlslu_lane): ...this.
5088 (vmlal_n): Split to...
5089 (vmlals_n): ...this and...
5090 (vmlalu_n): ...this.
5091 (vmlsl_n): Split to...
5092 (vmlsls_n): ...this and...
5093 (vmlslu_n): ...this.
5094 (vext): Make type "SHIFTINSERT".
5096 (vcvts): ...this and...
5098 (vcvt_n): Split to...
5099 (vcvts_n): ...this and...
5101 * config/arm/arm_neon.h (vaddl_s8): Remove "Magic Word".
5102 (vaddl_s16): Likewise.
5103 (vaddl_s32): Likewise.
5104 (vaddl_u8): Likewise.
5105 (vaddl_u16): Likewise.
5106 (vaddl_u32): Likewise.
5107 (vaddw_s8): Likewise.
5108 (vaddw_s16): Likewise.
5109 (vaddw_s32): Likewise.
5110 (vaddw_u8): Likewise.
5111 (vaddw_u16): Likewise.
5112 (vaddw_u32): Likewise.
5113 (vhadd_s8): Likewise.
5114 (vhadd_s16): Likewise.
5115 (vhadd_s32): Likewise.
5116 (vhadd_u8): Likewise.
5117 (vhadd_u16): Likewise.
5118 (vhadd_u32): Likewise.
5119 (vhaddq_s8): Likewise.
5120 (vhaddq_s16): Likewise.
5121 (vhaddq_s32): Likewise.
5122 (vhaddq_u8): Likewise.
5123 (vhaddq_u16): Likewise.
5124 (vrhadd_s8): Likewise.
5125 (vrhadd_s16): Likewise.
5126 (vrhadd_s32): Likewise.
5127 (vrhadd_u8): Likewise.
5128 (vrhadd_u16): Likewise.
5129 (vrhadd_u32): Likewise.
5130 (vrhaddq_s8): Likewise.
5131 (vrhaddq_s16): Likewise.
5132 (vrhaddq_s32): Likewise.
5133 (vrhaddq_u8): Likewise.
5134 (vrhaddq_u16): Likewise.
5135 (vrhaddq_u32): Likewise.
5136 (vqadd_s8): Likewise.
5137 (vqadd_s16): Likewise.
5138 (vqadd_s32): Likewise.
5139 (vqadd_s64): Likewise.
5140 (vqadd_u8): Likewise.
5141 (vqadd_u16): Likewise.
5142 (vqadd_u32): Likewise.
5143 (vqadd_u64): Likewise.
5144 (vqaddq_s8): Likewise.
5145 (vqaddq_s16): Likewise.
5146 (vqaddq_s32): Likewise.
5147 (vqaddq_s64): Likewise.
5148 (vqaddq_u8): Likewise.
5149 (vqaddq_u16): Likewise.
5150 (vqaddq_u32): Likewise.
5151 (vqaddq_u64): Likewise.
5152 (vaddhn_s16): Likewise.
5153 (vaddhn_s32): Likewise.
5154 (vaddhn_s64): Likewise.
5155 (vaddhn_u16): Likewise.
5156 (vaddhn_u32): Likewise.
5157 (vaddhn_u64): Likewise.
5158 (vraddhn_s16): Likewise.
5159 (vraddhn_s32): Likewise.
5160 (vraddhn_s64): Likewise.
5161 (vraddhn_u16): Likewise.
5162 (vraddhn_u32): Likewise.
5163 (vraddhn_u64): Likewise.
5164 (vmul_p8): Likewise.
5165 (vmulq_p8): Likewise.
5166 (vqdmulh_s16): Likewise.
5167 (vqdmulh_s32): Likewise.
5168 (vqdmulhq_s16): Likewise.
5169 (vqdmulhq_s32): Likewise.
5170 (vqrdmulh_s16): Likewise.
5171 (vqrdmulh_s32): Likewise.
5172 (vqrdmulhq_s16): Likewise.
5173 (vqrdmulhq_s32): Likewise.
5174 (vmull_s8): Likewise.
5175 (vmull_s16): Likewise.
5176 (vmull_s32): Likewise.
5177 (vmull_u8): Likewise.
5178 (vmull_u16): Likewise.
5179 (vmull_u32): Likewise.
5180 (vmull_p8): Likewise.
5181 (vqdmull_s16): Likewise.
5182 (vqdmull_s32): Likewise.
5183 (vmla_s8): Likewise.
5184 (vmla_s16): Likewise.
5185 (vmla_s32): Likewise.
5186 (vmla_f32): Likewise.
5187 (vmla_u8): Likewise.
5188 (vmla_u16): Likewise.
5189 (vmla_u32): Likewise.
5190 (vmlaq_s8): Likewise.
5191 (vmlaq_s16): Likewise.
5192 (vmlaq_s32): Likewise.
5193 (vmlaq_f32): Likewise.
5194 (vmlaq_u8): Likewise.
5195 (vmlaq_u16): Likewise.
5196 (vmlaq_u32): Likewise.
5197 (vmlal_s8): Likewise.
5198 (vmlal_s16): Likewise.
5199 (vmlal_s32): Likewise.
5200 (vmlal_u8): Likewise.
5201 (vmlal_u16): Likewise.
5202 (vmlal_u32): Likewise.
5203 (vqdmlal_s16): Likewise.
5204 (vqdmlal_s32): Likewise.
5205 (vmls_s8): Likewise.
5206 (vmls_s16): Likewise.
5207 (vmls_s32): Likewise.
5208 (vmls_f32): Likewise.
5209 (vmls_u8): Likewise.
5210 (vmls_u16): Likewise.
5211 (vmls_u32): Likewise.
5212 (vmlsq_s8): Likewise.
5213 (vmlsq_s16): Likewise.
5214 (vmlsq_s32): Likewise.
5215 (vmlsq_f32): Likewise.
5216 (vmlsq_u8): Likewise.
5217 (vmlsq_u16): Likewise.
5218 (vmlsq_u32): Likewise.
5219 (vmlsl_s8): Likewise.
5220 (vmlsl_s16): Likewise.
5221 (vmlsl_s32): Likewise.
5222 (vmlsl_u8): Likewise.
5223 (vmlsl_u16): Likewise.
5224 (vmlsl_u32): Likewise.
5225 (vqdmlsl_s16): Likewise.
5226 (vqdmlsl_s32): Likewise.
5227 (vfma_f32): Likewise.
5228 (vfmaq_f32): Likewise.
5229 (vfms_f32): Likewise.
5230 (vfmsq_f32): Likewise.
5231 (vsubl_s8): Likewise.
5232 (vsubl_s16): Likewise.
5233 (vsubl_s32): Likewise.
5234 (vsubl_u8): Likewise.
5235 (vsubl_u16): Likewise.
5236 (vsubl_u32): Likewise.
5237 (vsubw_s8): Likewise.
5238 (vsubw_s16): Likewise.
5239 (vsubw_s32): Likewise.
5240 (vsubw_u8): Likewise.
5241 (vsubw_u16): Likewise.
5242 (vsubw_u32): Likewise.
5243 (vhsub_s8): Likewise.
5244 (vhsub_s16): Likewise.
5245 (vhsub_s32): Likewise.
5246 (vhsub_u8): Likewise.
5247 (vhsub_u16): Likewise.
5248 (vhsub_u32): Likewise.
5249 (vhsubq_s8): Likewise.
5250 (vhsubq_s16): Likewise.
5251 (vhsubq_s32): Likewise.
5252 (vhsubq_u8): Likewise.
5253 (vhsubq_u16): Likewise.
5254 (vhsubq_u32): Likewise.
5255 (vqsub_s8): Likewise.
5256 (vqsub_s16): Likewise.
5257 (vqsub_s32): Likewise.
5258 (vqsub_s64): Likewise.
5259 (vqsub_u8): Likewise.
5260 (vqsub_u16): Likewise.
5261 (vqsub_u32): Likewise.
5262 (vqsub_u64): Likewise.
5263 (vqsubq_s8): Likewise.
5264 (vqsubq_s16): Likewise.
5265 (vqsubq_s32): Likewise.
5266 (vqsubq_s64): Likewise.
5267 (vqsubq_u8): Likewise.
5268 (vqsubq_u16): Likewise.
5269 (vqsubq_u32): Likewise.
5270 (vqsubq_u64): Likewise.
5271 (vsubhn_s16): Likewise.
5272 (vsubhn_s32): Likewise.
5273 (vsubhn_s64): Likewise.
5274 (vsubhn_u16): Likewise.
5275 (vsubhn_u32): Likewise.
5276 (vsubhn_u64): Likewise.
5277 (vrsubhn_s16): Likewise.
5278 (vrsubhn_s32): Likewise.
5279 (vrsubhn_s64): Likewise.
5280 (vrsubhn_u16): Likewise.
5281 (vrsubhn_u32): Likewise.
5282 (vrsubhn_u64): Likewise.
5283 (vceq_s8): Likewise.
5284 (vceq_s16): Likewise.
5285 (vceq_s32): Likewise.
5286 (vceq_f32): Likewise.
5287 (vceq_u8): Likewise.
5288 (vceq_u16): Likewise.
5289 (vceq_u32): Likewise.
5290 (vceq_p8): Likewise.
5291 (vceqq_s8): Likewise.
5292 (vceqq_s16): Likewise.
5293 (vceqq_s32): Likewise.
5294 (vceqq_f32): Likewise.
5295 (vceqq_u8): Likewise.
5296 (vceqq_u16): Likewise.
5297 (vceqq_u32): Likewise.
5298 (vceqq_p8): Likewise.
5299 (vcge_s8): Likewise.
5300 (vcge_s16): Likewise.
5301 (vcge_s32): Likewise.
5302 (vcge_f32): Likewise.
5303 (vcge_u8): Likewise.
5304 (vcge_u16): Likewise.
5305 (vcge_u32): Likewise.
5306 (vcgeq_s8): Likewise.
5307 (vcgeq_s16): Likewise.
5308 (vcgeq_s32): Likewise.
5309 (vcgeq_f32): Likewise.
5310 (vcgeq_u8): Likewise.
5311 (vcgeq_u16): Likewise.
5312 (vcgeq_u32): Likewise.
5313 (vcle_s8): Likewise.
5314 (vcle_s16): Likewise.
5315 (vcle_s32): Likewise.
5316 (vcle_f32): Likewise.
5317 (vcle_u8): Likewise.
5318 (vcle_u16): Likewise.
5319 (vcle_u32): Likewise.
5320 (vcleq_s8): Likewise.
5321 (vcleq_s16): Likewise.
5322 (vcleq_s32): Likewise.
5323 (vcleq_f32): Likewise.
5324 (vcleq_u8): Likewise.
5325 (vcleq_u16): Likewise.
5326 (vcleq_u32): Likewise.
5327 (vcgt_s8): Likewise.
5328 (vcgt_s16): Likewise.
5329 (vcgt_s32): Likewise.
5330 (vcgt_f32): Likewise.
5331 (vcgt_u8): Likewise.
5332 (vcgt_u16): Likewise.
5333 (vcgt_u32): Likewise.
5334 (vcgtq_s8): Likewise.
5335 (vcgtq_s16): Likewise.
5336 (vcgtq_s32): Likewise.
5337 (vcgtq_f32): Likewise.
5338 (vcgtq_u8): Likewise.
5339 (vcgtq_u16): Likewise.
5340 (vcgtq_u32): Likewise.
5341 (vclt_s8): Likewise.
5342 (vclt_s16): Likewise.
5343 (vclt_s32): Likewise.
5344 (vclt_f32): Likewise.
5345 (vclt_u8): Likewise.
5346 (vclt_u16): Likewise.
5347 (vclt_u32): Likewise.
5348 (vcltq_s8): Likewise.
5349 (vcltq_s16): Likewise.
5350 (vcltq_s32): Likewise.
5351 (vcltq_f32): Likewise.
5352 (vcltq_u8): Likewise.
5353 (vcltq_u16): Likewise.
5354 (vcltq_u32): Likewise.
5355 (vcage_f32): Likewise.
5356 (vcageq_f32): Likewise.
5357 (vcale_f32): Likewise.
5358 (vcaleq_f32): Likewise.
5359 (vcagt_f32): Likewise.
5360 (vcagtq_f32): Likewise.
5361 (vcalt_f32): Likewise.
5362 (vcaltq_f32): Likewise.
5363 (vtst_s8): Likewise.
5364 (vtst_s16): Likewise.
5365 (vtst_s32): Likewise.
5366 (vtst_u8): Likewise.
5367 (vtst_u16): Likewise.
5368 (vtst_u32): Likewise.
5369 (vtst_p8): Likewise.
5370 (vtstq_s8): Likewise.
5371 (vtstq_s16): Likewise.
5372 (vtstq_s32): Likewise.
5373 (vtstq_u8): Likewise.
5374 (vtstq_u16): Likewise.
5375 (vtstq_u32): Likewise.
5376 (vtstq_p8): Likewise.
5377 (vabd_s8): Likewise.
5378 (vabd_s16): Likewise.
5379 (vabd_s32): Likewise.
5380 (vabd_f32): Likewise.
5381 (vabd_u8): Likewise.
5382 (vabd_u16): Likewise.
5383 (vabd_u32): Likewise.
5384 (vabdq_s8): Likewise.
5385 (vabdq_s16): Likewise.
5386 (vabdq_s32): Likewise.
5387 (vabdq_f32): Likewise.
5388 (vabdq_u8): Likewise.
5389 (vabdq_u16): Likewise.
5390 (vabdq_u32): Likewise.
5391 (vabdl_s8): Likewise.
5392 (vabdl_s16): Likewise.
5393 (vabdl_s32): Likewise.
5394 (vabdl_u8): Likewise.
5395 (vabdl_u16): Likewise.
5396 (vabdl_u32): Likewise.
5397 (vaba_s8): Likewise.
5398 (vaba_s16): Likewise.
5399 (vaba_s32): Likewise.
5400 (vaba_u8): Likewise.
5401 (vaba_u16): Likewise.
5402 (vaba_u32): Likewise.
5403 (vabaq_s8): Likewise.
5404 (vabaq_s16): Likewise.
5405 (vabaq_s32): Likewise.
5406 (vabaq_u8): Likewise.
5407 (vabaq_u16): Likewise.
5408 (vabaq_u32): Likewise.
5409 (vabal_s8): Likewise.
5410 (vabal_s16): Likewise.
5411 (vabal_s32): Likewise.
5412 (vabal_u8): Likewise.
5413 (vabal_u16): Likewise.
5414 (vabal_u32): Likewise.
5415 (vmax_s8): Likewise.
5416 (vmax_s16): Likewise.
5417 (vmax_s32): Likewise.
5418 (vmax_f32): Likewise.
5419 (vmax_u8): Likewise.
5420 (vmax_u16): Likewise.
5421 (vmax_u32): Likewise.
5422 (vmaxq_s8): Likewise.
5423 (vmaxq_s16): Likewise.
5424 (vmaxq_s32): Likewise.
5425 (vmaxq_f32): Likewise.
5426 (vmaxq_u8): Likewise.
5427 (vmaxq_u16): Likewise.
5428 (vmaxq_u32): Likewise.
5429 (vmin_s8): Likewise.
5430 (vmin_s16): Likewise.
5431 (vmin_s32): Likewise.
5432 (vmin_f32): Likewise.
5433 (vmin_u8): Likewise.
5434 (vmin_u16): Likewise.
5435 (vmin_u32): Likewise.
5436 (vminq_s8): Likewise.
5437 (vminq_s16): Likewise.
5438 (vminq_s32): Likewise.
5439 (vminq_f32): Likewise.
5440 (vminq_u8): Likewise.
5441 (vminq_u16): Likewise.
5442 (vminq_u32): Likewise.
5443 (vpadd_s8): Likewise.
5444 (vpadd_s16): Likewise.
5445 (vpadd_s32): Likewise.
5446 (vpadd_f32): Likewise.
5447 (vpadd_u8): Likewise.
5448 (vpadd_u16): Likewise.
5449 (vpadd_u32): Likewise.
5450 (vpaddl_s8): Likewise.
5451 (vpaddl_s16): Likewise.
5452 (vpaddl_s32): Likewise.
5453 (vpaddl_u8): Likewise.
5454 (vpaddl_u16): Likewise.
5455 (vpaddl_u32): Likewise.
5456 (vpaddlq_s8): Likewise.
5457 (vpaddlq_s16): Likewise.
5458 (vpaddlq_s32): Likewise.
5459 (vpaddlq_u8): Likewise.
5460 (vpaddlq_u16): Likewise.
5461 (vpaddlq_u32): Likewise.
5462 (vpadal_s8): Likewise.
5463 (vpadal_s16): Likewise.
5464 (vpadal_s32): Likewise.
5465 (vpadal_u8): Likewise.
5466 (vpadal_u16): Likewise.
5467 (vpadal_u32): Likewise.
5468 (vpadalq_s8): Likewise.
5469 (vpadalq_s16): Likewise.
5470 (vpadalq_s32): Likewise.
5471 (vpadalq_u8): Likewise.
5472 (vpadalq_u16): Likewise.
5473 (vpadalq_u32): Likewise.
5474 (vpmax_s8): Likewise.
5475 (vpmax_s16): Likewise.
5476 (vpmax_s32): Likewise.
5477 (vpmax_f32): Likewise.
5478 (vpmax_u8): Likewise.
5479 (vpmax_u16): Likewise.
5480 (vpmax_u32): Likewise.
5481 (vpmin_s8): Likewise.
5482 (vpmin_s16): Likewise.
5483 (vpmin_s32): Likewise.
5484 (vpmin_f32): Likewise.
5485 (vpmin_u8): Likewise.
5486 (vpmin_u16): Likewise.
5487 (vpmin_u32): Likewise.
5488 (vrecps_f32): Likewise.
5489 (vrecpsq_f32): Likewise.
5490 (vrsqrts_f32): Likewise.
5491 (vrsqrtsq_f32): Likewise.
5492 (vshl_s8): Likewise.
5493 (vshl_s16): Likewise.
5494 (vshl_s32): Likewise.
5495 (vshl_s64): Likewise.
5496 (vshl_u8): Likewise.
5497 (vshl_u16): Likewise.
5498 (vshl_u32): Likewise.
5499 (vshl_u64): Likewise.
5500 (vshlq_s8): Likewise.
5501 (vshlq_s16): Likewise.
5502 (vshlq_s32): Likewise.
5503 (vshlq_s64): Likewise.
5504 (vshlq_u8): Likewise.
5505 (vshlq_u16): Likewise.
5506 (vshlq_u32): Likewise.
5507 (vshlq_u64): Likewise.
5508 (vrshl_s8): Likewise.
5509 (vrshl_s16): Likewise.
5510 (vrshl_s32): Likewise.
5511 (vrshl_s64): Likewise.
5512 (vrshl_u8): Likewise.
5513 (vrshl_u16): Likewise.
5514 (vrshl_u32): Likewise.
5515 (vrshl_u64): Likewise.
5516 (vrshlq_s8): Likewise.
5517 (vrshlq_s16): Likewise.
5518 (vrshlq_s32): Likewise.
5519 (vrshlq_s64): Likewise.
5520 (vrshlq_u8): Likewise.
5521 (vrshlq_u16): Likewise.
5522 (vrshlq_u32): Likewise.
5523 (vrshlq_u64): Likewise.
5524 (vqshl_s8): Likewise.
5525 (vqshl_s16): Likewise.
5526 (vqshl_s32): Likewise.
5527 (vqshl_s64): Likewise.
5528 (vqshl_u8): Likewise.
5529 (vqshl_u16): Likewise.
5530 (vqshl_u32): Likewise.
5531 (vqshl_u64): Likewise.
5532 (vqshlq_s8): Likewise.
5533 (vqshlq_s16): Likewise.
5534 (vqshlq_s32): Likewise.
5535 (vqshlq_s64): Likewise.
5536 (vqshlq_u8): Likewise.
5537 (vqshlq_u16): Likewise.
5538 (vqshlq_u32): Likewise.
5539 (vqshlq_u64): Likewise.
5540 (vqrshl_s8): Likewise.
5541 (vqrshl_s16): Likewise.
5542 (vqrshl_s32): Likewise.
5543 (vqrshl_s64): Likewise.
5544 (vqrshl_u8): Likewise.
5545 (vqrshl_u16): Likewise.
5546 (vqrshl_u32): Likewise.
5547 (vqrshl_u64): Likewise.
5548 (vqrshlq_s8): Likewise.
5549 (vqrshlq_s16): Likewise.
5550 (vqrshlq_s32): Likewise.
5551 (vqrshlq_s64): Likewise.
5552 (vqrshlq_u8): Likewise.
5553 (vqrshlq_u16): Likewise.
5554 (vqrshlq_u32): Likewise.
5555 (vqrshlq_u64): Likewise.
5556 (vshr_n_s8): Likewise.
5557 (vshr_n_s16): Likewise.
5558 (vshr_n_s32): Likewise.
5559 (vshr_n_s64): Likewise.
5560 (vshr_n_u8): Likewise.
5561 (vshr_n_u16): Likewise.
5562 (vshr_n_u32): Likewise.
5563 (vshr_n_u64): Likewise.
5564 (vshrq_n_s8): Likewise.
5565 (vshrq_n_s16): Likewise.
5566 (vshrq_n_s32): Likewise.
5567 (vshrq_n_s64): Likewise.
5568 (vshrq_n_u8): Likewise.
5569 (vshrq_n_u16): Likewise.
5570 (vshrq_n_u32): Likewise.
5571 (vshrq_n_u64): Likewise.
5572 (vrshr_n_s8): Likewise.
5573 (vrshr_n_s16): Likewise.
5574 (vrshr_n_s32): Likewise.
5575 (vrshr_n_s64): Likewise.
5576 (vrshr_n_u8): Likewise.
5577 (vrshr_n_u16): Likewise.
5578 (vrshr_n_u32): Likewise.
5579 (vrshr_n_u64): Likewise.
5580 (vrshrq_n_s8): Likewise.
5581 (vrshrq_n_s16): Likewise.
5582 (vrshrq_n_s32): Likewise.
5583 (vrshrq_n_s64): Likewise.
5584 (vrshrq_n_u8): Likewise.
5585 (vrshrq_n_u16): Likewise.
5586 (vrshrq_n_u32): Likewise.
5587 (vrshrq_n_u64): Likewise.
5588 (vshrn_n_s16): Likewise.
5589 (vshrn_n_s32): Likewise.
5590 (vshrn_n_s64): Likewise.
5591 (vshrn_n_u16): Likewise.
5592 (vshrn_n_u32): Likewise.
5593 (vshrn_n_u64): Likewise.
5594 (vrshrn_n_s16): Likewise.
5595 (vrshrn_n_s32): Likewise.
5596 (vrshrn_n_s64): Likewise.
5597 (vrshrn_n_u16): Likewise.
5598 (vrshrn_n_u32): Likewise.
5599 (vrshrn_n_u64): Likewise.
5600 (vqshrn_n_s16): Likewise.
5601 (vqshrn_n_s32): Likewise.
5602 (vqshrn_n_s64): Likewise.
5603 (vqshrn_n_u16): Likewise.
5604 (vqshrn_n_u32): Likewise.
5605 (vqshrn_n_u64): Likewise.
5606 (vqrshrn_n_s16): Likewise.
5607 (vqrshrn_n_s32): Likewise.
5608 (vqrshrn_n_s64): Likewise.
5609 (vqrshrn_n_u16): Likewise.
5610 (vqrshrn_n_u32): Likewise.
5611 (vqrshrn_n_u64): Likewise.
5612 (vqshrun_n_s16): Likewise.
5613 (vqshrun_n_s32): Likewise.
5614 (vqshrun_n_s64): Likewise.
5615 (vqrshrun_n_s16): Likewise.
5616 (vqrshrun_n_s32): Likewise.
5617 (vqrshrun_n_s64): Likewise.
5618 (vshl_n_s8): Likewise.
5619 (vshl_n_s16): Likewise.
5620 (vshl_n_s32): Likewise.
5621 (vshl_n_s64): Likewise.
5622 (vshl_n_u8): Likewise.
5623 (vshl_n_u16): Likewise.
5624 (vshl_n_u32): Likewise.
5625 (vshl_n_u64): Likewise.
5626 (vshlq_n_s8): Likewise.
5627 (vshlq_n_s16): Likewise.
5628 (vshlq_n_s32): Likewise.
5629 (vshlq_n_s64): Likewise.
5630 (vshlq_n_u8): Likewise.
5631 (vshlq_n_u16): Likewise.
5632 (vshlq_n_u32): Likewise.
5633 (vshlq_n_u64): Likewise.
5634 (vqshl_n_s8): Likewise.
5635 (vqshl_n_s16): Likewise.
5636 (vqshl_n_s32): Likewise.
5637 (vqshl_n_s64): Likewise.
5638 (vqshl_n_u8): Likewise.
5639 (vqshl_n_u16): Likewise.
5640 (vqshl_n_u32): Likewise.
5641 (vqshl_n_u64): Likewise.
5642 (vqshlq_n_s8): Likewise.
5643 (vqshlq_n_s16): Likewise.
5644 (vqshlq_n_s32): Likewise.
5645 (vqshlq_n_s64): Likewise.
5646 (vqshlq_n_u8): Likewise.
5647 (vqshlq_n_u16): Likewise.
5648 (vqshlq_n_u32): Likewise.
5649 (vqshlq_n_u64): Likewise.
5650 (vqshlu_n_s8): Likewise.
5651 (vqshlu_n_s16): Likewise.
5652 (vqshlu_n_s32): Likewise.
5653 (vqshlu_n_s64): Likewise.
5654 (vqshluq_n_s8): Likewise.
5655 (vqshluq_n_s16): Likewise.
5656 (vqshluq_n_s32): Likewise.
5657 (vqshluq_n_s64): Likewise.
5658 (vshll_n_s8): Likewise.
5659 (vshll_n_s16): Likewise.
5660 (vshll_n_s32): Likewise.
5661 (vshll_n_u8): Likewise.
5662 (vshll_n_u16): Likewise.
5663 (vshll_n_u32): Likewise.
5664 (vsra_n_s8): Likewise.
5665 (vsra_n_s16): Likewise.
5666 (vsra_n_s32): Likewise.
5667 (vsra_n_s64): Likewise.
5668 (vsra_n_u8): Likewise.
5669 (vsra_n_u16): Likewise.
5670 (vsra_n_u32): Likewise.
5671 (vsra_n_u64): Likewise.
5672 (vsraq_n_s8): Likewise.
5673 (vsraq_n_s16): Likewise.
5674 (vsraq_n_s32): Likewise.
5675 (vsraq_n_s64): Likewise.
5676 (vsraq_n_u8): Likewise.
5677 (vsraq_n_u16): Likewise.
5678 (vsraq_n_u32): Likewise.
5679 (vsraq_n_u64): Likewise.
5680 (vrsra_n_s8): Likewise.
5681 (vrsra_n_s16): Likewise.
5682 (vrsra_n_s32): Likewise.
5683 (vrsra_n_s64): Likewise.
5684 (vrsra_n_u8): Likewise.
5685 (vrsra_n_u16): Likewise.
5686 (vrsra_n_u32): Likewise.
5687 (vrsra_n_u64): Likewise.
5688 (vrsraq_n_s8): Likewise.
5689 (vrsraq_n_s16): Likewise.
5690 (vrsraq_n_s32): Likewise.
5691 (vrsraq_n_s64): Likewise.
5692 (vrsraq_n_u8): Likewise.
5693 (vrsraq_n_u16): Likewise.
5694 (vrsraq_n_u32): Likewise.
5695 (vrsraq_n_u64): Likewise.
5696 (vabs_s8): Likewise.
5697 (vabs_s16): Likewise.
5698 (vabs_s32): Likewise.
5699 (vabs_f32): Likewise.
5700 (vabsq_s8): Likewise.
5701 (vabsq_s16): Likewise.
5702 (vabsq_s32): Likewise.
5703 (vabsq_f32): Likewise.
5704 (vqabs_s8): Likewise.
5705 (vqabs_s16): Likewise.
5706 (vqabs_s32): Likewise.
5707 (vqabsq_s8): Likewise.
5708 (vqabsq_s16): Likewise.
5709 (vqabsq_s32): Likewise.
5710 (vneg_s8): Likewise.
5711 (vneg_s16): Likewise.
5712 (vneg_s32): Likewise.
5713 (vneg_f32): Likewise.
5714 (vnegq_s8): Likewise.
5715 (vnegq_s16): Likewise.
5716 (vnegq_s32): Likewise.
5717 (vnegq_f32): Likewise.
5718 (vqneg_s8): Likewise.
5719 (vqneg_s16): Likewise.
5720 (vqneg_s32): Likewise.
5721 (vqnegq_s8): Likewise.
5722 (vqnegq_s16): Likewise.
5723 (vqnegq_s32): Likewise.
5724 (vmvn_s8): Likewise.
5725 (vmvn_s16): Likewise.
5726 (vmvn_s32): Likewise.
5727 (vmvn_u8): Likewise.
5728 (vmvn_u16): Likewise.
5729 (vmvn_u32): Likewise.
5730 (vmvn_p8): Likewise.
5731 (vmvnq_s8): Likewise.
5732 (vmvnq_s16): Likewise.
5733 (vmvnq_s32): Likewise.
5734 (vmvnq_u8): Likewise.
5735 (vmvnq_u16): Likewise.
5736 (vmvnq_u32): Likewise.
5737 (vmvnq_p8): Likewise.
5738 (vcls_s8): Likewise.
5739 (vcls_s16): Likewise.
5740 (vcls_s32): Likewise.
5741 (vclsq_s8): Likewise.
5742 (vclsq_s16): Likewise.
5743 (vclsq_s32): Likewise.
5744 (vclz_s8): Likewise.
5745 (vclz_s16): Likewise.
5746 (vclz_s32): Likewise.
5747 (vclz_u8): Likewise.
5748 (vclz_u16): Likewise.
5749 (vclz_u32): Likewise.
5750 (vclzq_s8): Likewise.
5751 (vclzq_s16): Likewise.
5752 (vclzq_s32): Likewise.
5753 (vclzq_u8): Likewise.
5754 (vclzq_u16): Likewise.
5755 (vclzq_u32): Likewise.
5756 (vcnt_s8): Likewise.
5757 (vcnt_u8): Likewise.
5758 (vcnt_p8): Likewise.
5759 (vcntq_s8): Likewise.
5760 (vcntq_u8): Likewise.
5761 (vcntq_p8): Likewise.
5762 (vrecpe_f32): Likewise.
5763 (vrecpe_u32): Likewise.
5764 (vrecpeq_f32): Likewise.
5765 (vrecpeq_u32): Likewise.
5766 (vrsqrte_f32): Likewise.
5767 (vrsqrte_u32): Likewise.
5768 (vrsqrteq_f32): Likewise.
5769 (vrsqrteq_u32): Likewise.
5770 (vget_lane_s8): Likewise.
5771 (vget_lane_s16): Likewise.
5772 (vget_lane_s32): Likewise.
5773 (vget_lane_f32): Likewise.
5774 (vget_lane_u8): Likewise.
5775 (vget_lane_u16): Likewise.
5776 (vget_lane_u32): Likewise.
5777 (vget_lane_p8): Likewise.
5778 (vget_lane_p16): Likewise.
5779 (vget_lane_s64): Likewise.
5780 (vget_lane_u64): Likewise.
5781 (vgetq_lane_s8): Likewise.
5782 (vgetq_lane_s16): Likewise.
5783 (vgetq_lane_s32): Likewise.
5784 (vgetq_lane_f32): Likewise.
5785 (vgetq_lane_u8): Likewise.
5786 (vgetq_lane_u16): Likewise.
5787 (vgetq_lane_u32): Likewise.
5788 (vgetq_lane_p8): Likewise.
5789 (vgetq_lane_p16): Likewise.
5790 (vgetq_lane_s64): Likewise.
5791 (vgetq_lane_u64): Likewise.
5792 (vcvt_s32_f32): Likewise.
5793 (vcvt_f32_s32): Likewise.
5794 (vcvt_f32_u32): Likewise.
5795 (vcvt_u32_f32): Likewise.
5796 (vcvtq_s32_f32): Likewise.
5797 (vcvtq_f32_s32): Likewise.
5798 (vcvtq_f32_u32): Likewise.
5799 (vcvtq_u32_f32): Likewise.
5800 (vcvt_n_s32_f32): Likewise.
5801 (vcvt_n_f32_s32): Likewise.
5802 (vcvt_n_f32_u32): Likewise.
5803 (vcvt_n_u32_f32): Likewise.
5804 (vcvtq_n_s32_f32): Likewise.
5805 (vcvtq_n_f32_s32): Likewise.
5806 (vcvtq_n_f32_u32): Likewise.
5807 (vcvtq_n_u32_f32): Likewise.
5808 (vmovn_s16): Likewise.
5809 (vmovn_s32): Likewise.
5810 (vmovn_s64): Likewise.
5811 (vmovn_u16): Likewise.
5812 (vmovn_u32): Likewise.
5813 (vmovn_u64): Likewise.
5814 (vqmovn_s16): Likewise.
5815 (vqmovn_s32): Likewise.
5816 (vqmovn_s64): Likewise.
5817 (vqmovn_u16): Likewise.
5818 (vqmovn_u32): Likewise.
5819 (vqmovn_u64): Likewise.
5820 (vqmovun_s16): Likewise.
5821 (vqmovun_s32): Likewise.
5822 (vqmovun_s64): Likewise.
5823 (vmovl_s8): Likewise.
5824 (vmovl_s16): Likewise.
5825 (vmovl_s32): Likewise.
5826 (vmovl_u8): Likewise.
5827 (vmovl_u16): Likewise.
5828 (vmovl_u32): Likewise.
5829 (vmul_lane_s16): Likewise.
5830 (vmul_lane_s32): Likewise.
5831 (vmul_lane_f32): Likewise.
5832 (vmul_lane_u16): Likewise.
5833 (vmul_lane_u32): Likewise.
5834 (vmulq_lane_s16): Likewise.
5835 (vmulq_lane_s32): Likewise.
5836 (vmulq_lane_f32): Likewise.
5837 (vmulq_lane_u16): Likewise.
5838 (vmulq_lane_u32): Likewise.
5839 (vmla_lane_s16): Likewise.
5840 (vmla_lane_s32): Likewise.
5841 (vmla_lane_f32): Likewise.
5842 (vmla_lane_u16): Likewise.
5843 (vmla_lane_u32): Likewise.
5844 (vmlaq_lane_s16): Likewise.
5845 (vmlaq_lane_s32): Likewise.
5846 (vmlaq_lane_f32): Likewise.
5847 (vmlaq_lane_u16): Likewise.
5848 (vmlaq_lane_u32): Likewise.
5849 (vmlal_lane_s16): Likewise.
5850 (vmlal_lane_s32): Likewise.
5851 (vmlal_lane_u16): Likewise.
5852 (vmlal_lane_u32): Likewise.
5853 (vqdmlal_lane_s16): Likewise.
5854 (vqdmlal_lane_s32): Likewise.
5855 (vmls_lane_s16): Likewise.
5856 (vmls_lane_s32): Likewise.
5857 (vmls_lane_f32): Likewise.
5858 (vmls_lane_u16): Likewise.
5859 (vmls_lane_u32): Likewise.
5860 (vmlsq_lane_s16): Likewise.
5861 (vmlsq_lane_s32): Likewise.
5862 (vmlsq_lane_f32): Likewise.
5863 (vmlsq_lane_u16): Likewise.
5864 (vmlsq_lane_u32): Likewise.
5865 (vmlsl_lane_s16): Likewise.
5866 (vmlsl_lane_s32): Likewise.
5867 (vmlsl_lane_u16): Likewise.
5868 (vmlsl_lane_u32): Likewise.
5869 (vqdmlsl_lane_s16): Likewise.
5870 (vqdmlsl_lane_s32): Likewise.
5871 (vmull_lane_s16): Likewise.
5872 (vmull_lane_s32): Likewise.
5873 (vmull_lane_u16): Likewise.
5874 (vmull_lane_u32): Likewise.
5875 (vqdmull_lane_s16): Likewise.
5876 (vqdmull_lane_s32): Likewise.
5877 (vqdmulhq_lane_s16): Likewise.
5878 (vqdmulhq_lane_s32): Likewise.
5879 (vqdmulh_lane_s16): Likewise.
5880 (vqdmulh_lane_s32): Likewise.
5881 (vqrdmulhq_lane_s16): Likewise.
5882 (vqrdmulhq_lane_s32): Likewise.
5883 (vqrdmulh_lane_s16): Likewise.
5884 (vqrdmulh_lane_s32): Likewise.
5885 (vmul_n_s16): Likewise.
5886 (vmul_n_s32): Likewise.
5887 (vmul_n_f32): Likewise.
5888 (vmul_n_u16): Likewise.
5889 (vmul_n_u32): Likewise.
5890 (vmulq_n_s16): Likewise.
5891 (vmulq_n_s32): Likewise.
5892 (vmulq_n_f32): Likewise.
5893 (vmulq_n_u16): Likewise.
5894 (vmulq_n_u32): Likewise.
5895 (vmull_n_s16): Likewise.
5896 (vmull_n_s32): Likewise.
5897 (vmull_n_u16): Likewise.
5898 (vmull_n_u32): Likewise.
5899 (vqdmull_n_s16): Likewise.
5900 (vqdmull_n_s32): Likewise.
5901 (vqdmulhq_n_s16): Likewise.
5902 (vqdmulhq_n_s32): Likewise.
5903 (vqdmulh_n_s16): Likewise.
5904 (vqdmulh_n_s32): Likewise.
5905 (vqrdmulhq_n_s16): Likewise.
5906 (vqrdmulhq_n_s32): Likewise.
5907 (vqrdmulh_n_s16): Likewise.
5908 (vqrdmulh_n_s32): Likewise.
5909 (vmla_n_s16): Likewise.
5910 (vmla_n_s32): Likewise.
5911 (vmla_n_f32): Likewise.
5912 (vmla_n_u16): Likewise.
5913 (vmla_n_u32): Likewise.
5914 (vmlaq_n_s16): Likewise.
5915 (vmlaq_n_s32): Likewise.
5916 (vmlaq_n_f32): Likewise.
5917 (vmlaq_n_u16): Likewise.
5918 (vmlaq_n_u32): Likewise.
5919 (vmlal_n_s16): Likewise.
5920 (vmlal_n_s32): Likewise.
5921 (vmlal_n_u16): Likewise.
5922 (vmlal_n_u32): Likewise.
5923 (vqdmlal_n_s16): Likewise.
5924 (vqdmlal_n_s32): Likewise.
5925 (vmls_n_s16): Likewise.
5926 (vmls_n_s32): Likewise.
5927 (vmls_n_f32): Likewise.
5928 (vmls_n_u16): Likewise.
5929 (vmls_n_u32): Likewise.
5930 (vmlsq_n_s16): Likewise.
5931 (vmlsq_n_s32): Likewise.
5932 (vmlsq_n_f32): Likewise.
5933 (vmlsq_n_u16): Likewise.
5934 (vmlsq_n_u32): Likewise.
5935 (vmlsl_n_s16): Likewise.
5936 (vmlsl_n_s32): Likewise.
5937 (vmlsl_n_u16): Likewise.
5938 (vmlsl_n_u32): Likewise.
5939 (vqdmlsl_n_s16): Likewise.
5940 (vqdmlsl_n_s32): Likewise.
5942 2014-11-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5944 * config/arm/arm.c (arm_new_rtx_costs, case PLUS, MINUS):
5945 Add cost of alu.arith in simple SImode case.
5947 2014-11-18 Jiong Wang <jiong.wang@arm.com>
5949 * lra-eliminations.c (update_reg_eliminate): Relax gcc_assert for fixed
5952 2014-11-18 Marat Zakirov <m.zakirov@samsung.com>
5954 * opts.c (finish_options): Disable aggressive opts for sanitizer.
5955 (common_handle_option): Move code to finish_options.
5957 2014-11-18 Yury Gribov <y.gribov@samsung.com>
5960 * stor-layout.c (min_align_of_type): Respect user alignment
5963 2014-11-18 Ilya Enkovich <ilya.enkovich@intel.com>
5965 * passes.c (remove_cgraph_node_from_order): New.
5966 (do_per_function_toporder): Register cgraph removal
5969 2014-11-17 Terry Guo <terry.guo@arm.com>
5971 * config/arm/arm.c (arm_issue_rate): Return 2 for cortex-m7.
5972 * config/arm/arm.md (generic_sched): Exclude cortex-m7.
5973 (generic_vfp): Likewise.
5974 * config/arm/cortex-m7.md: Pipeline description for cortex-m7.
5976 2014-11-17 Vladimir Makarov <vmakarov@redhat.com>
5978 PR rtl-optimization/63906
5979 * lra-remat.c (operand_to_remat): Check SP and
5980 frame_pointer_required.
5982 2014-11-17 Mircea Namolaru <mircea.namolaru@inria.fr>
5984 * doc/invoke.texi (floop-unroll-and-jam): Document
5985 (loop-unroll-jam-size): Likewise.
5986 (loop-unroll-jam-depth): Likewise.
5987 * graphite-optimize-isl.c (getPrevectorMap_full): Modify comment.
5988 (getScheduleForBandList): Replaced unsafe union_map reuse.
5990 2014-11-17 Andrew Pinski <apinski@cavium.com>
5992 * config/aarch64/thunderx.md: Remove copyright which should not
5995 2014-11-17 Michael Meissner <meissner@linux.vnet.ibm.com>
5996 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5998 * config/rs6000/rs6000.c (RELOAD_REG_AND_M16): Add support for
5999 Altivec style vector loads that ignore the bottom 3 bits of the
6001 (rs6000_debug_addr_mask): New function to print the addr_mask
6002 values if debugging.
6003 (rs6000_debug_print_mode): Call rs6000_debug_addr_mask to print
6005 (rs6000_setup_reg_addr_masks): Add support for Altivec style
6006 vector loads that ignore the bottom 3 bits of the address. Allow
6007 pre-increment and pre-decrement on floating point, even if the
6008 -mupper-regs-{sf,df} options were used.
6009 (rs6000_init_hard_regno_mode_ok): Rework DFmode support if
6010 -mupper-regs-df. Add support for -mupper-regs-sf. Rearrange code
6011 placement for direct move support.
6012 (rs6000_option_override_internal): Add checks for -mupper-regs-df
6013 requiring -mvsx, and -mupper-regs-sf requiring -mpower8-vector.
6014 If -mupper-regs, set both -mupper-regs-sf and -mupper-regs-df,
6015 depending on the underlying cpu.
6016 (rs6000_secondary_reload_fail): Add ATTRIBUTE_NORETURN.
6017 (rs6000_secondary_reload_toc_costs): Helper function to identify
6018 costs of a TOC load for secondary reload support.
6019 (rs6000_secondary_reload_memory): Helper function for secondary
6020 reload, to determine if a particular memory operation is directly
6021 handled by the hardware, or if it needs support from secondary
6022 reload to create a valid address.
6023 (rs6000_secondary_reload): Rework code, to be clearer. If the
6024 appropriate -mupper-regs-{sf,df} is used, use FPR registers to
6025 reload scalar values, since the FPR registers have D-form
6026 addressing. Move most of the code handling memory to the function
6027 rs6000_secondary_reload_memory, and use the reg_addr structure to
6028 determine what type of address modes are supported. Print more
6029 debug information if -mdebug=addr.
6030 (rs6000_secondary_reload_inner): Rework entire function to be more
6031 general. Use the reg_addr bits to determine what type of
6032 addressing is supported.
6033 (rs6000_preferred_reload_class): Rework. Move constant handling
6034 into a single place. Prefer using FLOAT_REGS for scalar floating
6036 (rs6000_secondary_reload_class): Use a FPR register to move a
6037 value from an Altivec register to a GPR, and vice versa. Move VSX
6038 handling above traditional floating point.
6040 * config/rs6000/rs6000.md (mov<mode>_hardfloat, FMOVE32 case):
6041 Delete some spaces in the constraints.
6042 (DF->DF move peephole2): Disable if -mupper-regs-{sf,df} to
6043 allow using FPR registers to load/store an Altivec register for
6044 scalar floating point types.
6045 (SF->SF move peephole2): Likewise.
6046 (DFmode splitter): Add a define_split to move floating point
6047 constants to the constant pool before register allocation.
6048 Normally constants are put into the pool immediately, but
6049 -ffast-math delays putting them into the constant pool for the
6050 reciprocal approximation support.
6051 (SFmode splitter): Likewise.
6053 * config/rs6000/rs6000.opt (-mupper-regs-df): Make option public.
6054 (-mupper-regs-sf): Likewise.
6056 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
6057 __UPPER_REGS_DF__ if -mupper-regs-df. Define __UPPER_REGS_SF__ if
6059 (-mupper-regs): New combination option that sets -mupper-regs-sf
6060 and -mupper-regs-df by default if the cpu supports the instructions.
6062 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
6063 -mupper-regs, -mupper-regs-sf, and -mupper-regs-df.
6065 * config/rs6000/predicates.md (memory_fp_constant): New predicate
6066 to return true if the operand is a floating point constant that
6067 must be put into the constant pool, before register allocation
6070 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Enable
6071 -mupper-regs-df by default.
6072 (ISA_2_7_MASKS_SERVER): Enable -mupper-regs-sf by default.
6073 (POWERPC_MASKS): Add -mupper-regs-{sf,df} as options set by the
6074 various -mcpu=... options.
6075 (power7 cpu): Enable -mupper-regs-df by default.
6077 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
6080 2014-11-17 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6082 * ira-conflicts.c (build_conflict_bit_table): Add the current
6083 object to OBJECTS_LIVE after traversing OBJECTS_LIVE.
6085 2014-11-17 Jan Hubicka <hubicka@ucw.cz>
6087 * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
6088 (ipa_get_indirect_edge_target): Add SPECULATIVE argument.
6089 (devirtualization_time_bonus): Use it.
6090 (ipcp_discover_new_direct_edges): Likewise.
6091 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Update.
6092 * ipa-prop.h (ipa_get_indirect_edge_target): Update prototype.
6094 2014-11-17 Jan Hubicka <hubicka@ucw.cz>
6096 * tree.c (free_lang_data_in_decl): Set DECL_FUNCTION_SPECIFIC_OPTIMIZATION
6097 to optimization_default_node.
6099 2014-11-17 Jan Hubicka <hubicka@ucw.cz>
6101 * cgraphunit.c (analyze_functions): Use opt_for_fn.
6102 * cgraph.h (cgraph_node::optimize_for_size_p): Likewise.
6104 2014-11-17 Jan Hubicka <hubicka@ucw.cz>
6106 * cgraph.c (symbol_table::create_edge): Use opt_for_fn.
6107 (cgraph_node::cannot_return_p): Likewise.
6108 (cgraph_edge::cannot_lead_to_return_p): Likewise.
6109 (cgraph_edge::maybe_hot_p): Likewise.
6111 2014-11-17 Jan Hubicka <hubicka@ucw.cz>
6113 * predict.c (maybe_hot_frequency_p): Use opt_for_fn.
6114 (optimize_function_for_size_p): Likewise.
6115 (probably_never_executed): Likewise; replace cfun by fun.
6117 2014-11-17 Alan Lawrence <alan.lawrence@arm.com>
6119 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Add
6120 variant reading from memory and assembling to ld1.
6122 * config/aarch64/arm_neon.h (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8,
6123 vld1_lane_p16, vld1_lane_s8, vld1_lane_s16, vld1_lane_s32,
6124 vld1_lane_s64, vld1_lane_u8, vld1_lane_u16, vld1_lane_u32,
6125 vld1_lane_u64, vld1q_lane_f32, vld1q_lane_f64, vld1q_lane_p8,
6126 vld1q_lane_p16, vld1q_lane_s8, vld1q_lane_s16, vld1q_lane_s32,
6127 vld1q_lane_s64, vld1q_lane_u8, vld1q_lane_u16, vld1q_lane_u32,
6128 vld1q_lane_u64): Replace asm with vset_lane and pointer dereference.
6130 2014-11-17 Jason Merrill <jason@redhat.com>
6132 * tree-inline.c (copy_fn): New.
6133 * tree-inline.h: Declare it.
6135 2014-11-17 Alan Lawrence <alan.lawrence@arm.com>
6137 * config/aarch64/aarch64-builtins.c (TYPES_CREATE): Remove.
6138 * config/aarch64/aarch64-simd-builtins.def (create): Remove.
6139 * config/aarch64/aarch64-simd.md (aarch64_create<mode>): Remove.
6140 * config/aarch64/arm_neon.h (vcreate_f64, vreinterpret_f64_s64,
6141 vreinterpret_f64_u64): Replace __builtin_aarch64_createv1df with C casts.
6142 * config/aarch64/iterators.md (VD1): Remove.
6144 2014-11-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6146 * config/aarch64/aarch64-cores.def (cortex-a53): Remove
6147 AARCH64_FL_CRYPTO from feature flags.
6148 (cortex-a57): Likewise.
6149 (cortex-a57.cortex-a53): Likewise.
6151 2014-11-17 Jan Hubicka <hubicka@ucw.cz>
6153 * tree.c (free_lang_data_in_decl): Annotate all functio nbodies with
6154 DECL_FUNCTION_SPECIFIC_TARGET.
6155 * i386.c (ix86_set_current_function): Handle explicit default options.
6157 2014-11-17 Ilya Enkovich <ilya.enkovich@intel.com>
6159 * builtins.c (expand_builtin_memcpy_with_bounds): Use target hook
6161 (expand_builtin_mempcpy_with_bounds): Likewise.
6162 (expand_builtin_memset_with_bounds): Likewise.
6164 2014-11-17 Ilya Enkovich <ilya.enkovich@intel.com>
6166 * tree-ssa-strlen.c: include ipa-chkp.h, cgraph.h,
6167 ipa-ref.h, plugin-api.h.
6168 (get_string_length): Handle calls with bounds.
6169 (adjust_last_stmt): Likewise.
6170 (handle_builtin_strchr): Likewise.
6171 (handle_builtin_strcpy): Likewise.
6172 (handle_builtin_memcpy): Likewise.
6173 (handle_builtin_strcat): Likewise.
6175 2014-11-17 Ilya Enkovich <ilya.enkovich@intel.com>
6177 * tree-chkp-opt.c (chkp_get_nobnd_fndecl): New.
6178 (chkp_get_nochk_fndecl): New.
6179 (chkp_optimize_string_function_calls): New.
6180 (chkp_opt_execute): Call chkp_optimize_string_function_calls.
6181 * tree-cfg.h (insert_cond_bb): New.
6182 * tree-cfg.c (insert_cond_bb): New.
6184 2014-11-17 Ilya Enkovich <ilya.enkovich@intel.com>
6186 * tree-core.h (built_in_class): Add builtin codes to be used
6187 by Pointer Bounds Checker for instrumented builtin functions.
6188 * tree-streamer-in.c: Include ipa-chkp.h.
6189 (streamer_get_builtin_tree): Created instrumented decl if
6191 * ipa-chkp.h (chkp_maybe_clone_builtin_fndecl): New.
6192 * ipa-chkp.c (chkp_build_instrumented_fndecl): Support builtin
6194 (chkp_maybe_clone_builtin_fndecl): New.
6195 (chkp_maybe_create_clone): Support builtin function decls.
6196 (chkp_versioning): Clone builtin functions.
6197 * tree-chkp.c (chkp_instrument_normal_builtin): New.
6198 (chkp_add_bounds_to_call_stmt): Support builtin functions.
6199 (chkp_replace_function_pointer): Likewise.
6200 * builtins.c (expand_builtin_memcpy_args): New.
6201 (expand_builtin_memcpy): Call expand_builtin_memcpy_args.
6202 (expand_builtin_memcpy_with_bounds): New.
6203 (expand_builtin_mempcpy_with_bounds): New.
6204 (expand_builtin_mempcpy_args): Add orig_exp arg. Support
6205 BUILT_IN_CHKP_MEMCPY_NOBND_NOCHK
6206 (expand_builtin_memset_with_bounds): New.
6207 (expand_builtin_memset_args): Support BUILT_IN_CHKP_MEMSET_NOBND_NOCHK.
6208 (expand_builtin_with_bounds): New.
6209 * builtins.h (expand_builtin_with_bounds): New.
6210 * expr.c (expand_expr_real_1): Support instrumented builtin calls.
6212 2014-11-17 Dodji Seketeli <dodji@redhat.com>
6214 * gimple.h (gimple_set_visited, gimple_visited_p)
6215 (gimple_set_plf, gimple_plf, gimple_set_uid, gimple_uid): Add more
6216 comments to these accessors.
6218 2014-11-17 Georg-Johann Lay <avr@gjlay.de>
6220 * config/avr/avr-log.c (avr_log_set_avr_log) [TARGET_ALL_DEBUG]:
6221 Set avr_log_details to "all".
6223 2014-11-17 Richard Biener <rguenther@suse.de>
6226 * match.pd: Guard X / CST -> X * CST' transform against
6229 2014-11-17 Terry Guo <terry.guo@arm.com>
6231 * config/arm/thumb1.md (*addsi3_cbranch_scratch): Updated to UAL
6234 2014-11-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
6236 * ifcvt.c (HAVE_cbranchcc4): Define.
6237 (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
6238 Use HAVE_cbranchcc4.
6240 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6242 * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
6243 aarch64_convert_mode, aarch64_gen_ccmp_first,
6244 aarch64_gen_ccmp_next): New functions.
6245 (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.
6247 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6249 * config/aarch64/aarch64-protos.h (aarch64_ccmp_mode_to_code): New.
6250 * aarch64.c (aarch64_nzcv_codes): New data.
6251 (aarch64_ccmp_mode_to_code): New.
6252 (aarch64_print_operand): Output nzcv.
6253 config/aarch64/aarch64.md (cbranchcc4, *ccmp_and, *ccmp_ior, cstorecc4):
6255 (cstore<mode>4): Handle ccmp_cc_register.
6256 * config/aarch64/predicates.md (const0_operand): New.
6258 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6260 * config/aarch64/aarch64-modes.def: Define ccmp CC mode.
6261 * config/aarch64/aarch64.c (aarch64_get_condition_code_1): New function
6262 extacted from aarch64_get_condition_code.
6263 (aarch64_get_condition_code): Call aarch64_get_condition_code_1.
6264 config/aarch64/predicates.md (ccmp_cc_register): New predicate.
6266 014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6268 * config/aarch64/constraints.md (Usn, aarch64_ccmp_immediate,
6269 aarch64_ccmp_operand): New constraints.
6271 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6273 * Makefile.in: Add ccmp.o.
6276 * expr.c: include "ccmp.h"
6277 (expand_cond_expr_using_cmove): Handle VOIDmode.
6278 (expand_expr_real_1): Try to expand ccmp.
6280 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6282 * cfgexpand.c (expand_gimple_cond): Check ccmp.
6283 * expmed.c (emit_cstore): Make it global.
6284 * expmed.h: #include "insn-codes.h"
6285 (emit_cstore): New prototype.
6286 * expr.c (expand_operands): Make it global.
6287 * expr.h (expand_operands): New prototype.
6288 * optabs.c (get_rtx_code): Make it global.
6289 * optabs.h (get_rtx_code): New prototype.
6291 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6293 * target.def (gen_ccmp_first, gen_ccmp_first): Add two new hooks.
6294 * doc/tm.texi.in (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
6295 * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
6297 2014-11-16 Patrick Palka <ppalka@gcc.gnu.org>
6300 * tree-ssa-forwprop.c (forward_propagate_into_comparison_1):
6301 Always combine comparisons or conversions from booleans.
6303 2014-11-16 Jan Hubicka <hubicka@ucw.cz>
6305 * ipa-polymorphic-call.c
6306 (ipa_polymorphic_call_context::speculation_consistent_p): Constify.
6307 (ipa_polymorphic_call_context::meet_speculation_with): New function.
6308 (ipa_polymorphic_call_context::combine_with): Handle types in construction
6310 (ipa_polymorphic_call_context::equal_to): Do not bother about useless
6312 (ipa_polymorphic_call_context::meet_with): New function.
6313 * cgraph.h (class ipa_polymorphic_call_context): Add
6314 meet_width, meet_speculation_with; constify speculation_consistent_p.
6315 * ipa-cp.c (ipa_context_from_jfunc): Handle speculation; combine with incomming
6317 (propagate_context_accross_jump_function): Likewise; be more cureful.
6318 about set_contains_variable.
6319 (ipa_get_indirect_edge_target_1): Fix handling of dynamic type changes.
6320 (find_more_scalar_values_for_callers_subset): Fix.
6321 (find_more_contexts_for_caller_subset): Perform meet operation.
6323 2014-11-16 Jan Hubicka <hubicka@ucw.cz>
6325 * passes.c (execute_one_pass): Do not apply all transforms prior
6326 every simple IPA pass.
6327 * cgraphunit.c: Do not include fibheap.h
6328 (expand_thunk): Use get_untransformed_body.
6329 (cgraph_node::expand): Likewise.
6330 * tree-ssa-structalias.c (ipa_pta_execute): Skip inline clones.
6331 * cgraph.c (release_function_body): Do not push cfun when CFG is not there.
6332 (cgraph_node::get_untransformed_body): Break out from ...
6333 (cgraph_node::get_body): ... here; add code to apply all transforms.
6334 * cgraph.h (cgraph_node): Add get_untransformed_body.
6335 * ipa-icf.c (sem_function::init): Use get_untransformed_body.
6336 * cgraphclones.c (duplicate_thunk_for_node): Likewise.
6337 * tree-inline.c (expand_call_inline): LIkewise.
6338 * i386.c (ix86_reset_to_default_globals): Break out from ...
6339 (ix86_set_current_function): ... here;
6340 (ix86_reset_previous_fndecl): Use it.
6341 (ix86_simd_clone_adjust): Use ix86_reset_previous_fndecl.
6343 2014-11-16 Eric Botcazou <ebotcazou@adacore.com>
6345 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around.
6346 * doc/tm.texi: Regenerate.
6348 2014-11-16 Uros Bizjak <ubizjak@gmail.com>
6350 * config/sh/sh.c: Do not include algorithm.
6351 (sh_emit_scc_to_t): Replace open-coded swap with std::swap
6353 (sh_emit_compare_and_branch): Ditto.
6354 (sh_emit_compare_and_set): Ditto.
6355 * config/sh/sh.md (replacement peephole2): Ditto.
6356 (cstore4_media): Ditto.
6359 2014-11-15 Vladimir Makarov <vmakarov@redhat.com>
6361 * lra-remat.c (cand_transf_func): Process regno for
6362 rematerialization too.
6363 * lra.c (lra): Switch on rematerialization pass.
6365 2014-11-15 Vladimir Makarov <vmakarov@redhat.com>
6367 * lra.c (lra): Switch off rematerialization pass.
6369 2014-11-15 Marc Glisse <marc.glisse@inria.fr>
6371 * config/i386/xmmintrin.h (_mm_add_ps, _mm_sub_ps, _mm_mul_ps,
6372 _mm_div_ps, _mm_store_ss, _mm_cvtss_f32): Use vector extensions
6373 instead of builtins.
6374 * config/i386/emmintrin.h (__v2du, __v4su, __v8hu, __v16qu): New
6376 (_mm_sqrt_sd): Fix comment.
6377 (_mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
6378 _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
6379 _mm_mullo_epi16, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
6380 _mm_cmplt_epi8, _mm_cmplt_epi16, _mm_cmplt_epi32, _mm_cmpgt_epi8,
6381 _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_and_si128, _mm_or_si128,
6382 _mm_xor_si128, _mm_store_sd, _mm_cvtsd_f64, _mm_storeh_pd,
6383 _mm_cvtsi128_si64, _mm_cvtsi128_si64x, _mm_add_pd, _mm_sub_pd,
6384 _mm_mul_pd, _mm_div_pd, _mm_storel_epi64, _mm_movepi64_pi64):
6385 Use vector extensions instead of builtins.
6386 * config/i386/smmintrin.h (_mm_cmpeq_epi64, _mm_cmpgt_epi64,
6387 _mm_mullo_epi32): Likewise.
6388 * config/i386/avxintrin.h (__v4du, __v8su, __v16hu, __v32qu):
6390 (_mm256_add_pd, _mm256_add_ps, _mm256_div_pd, _mm256_div_ps,
6391 _mm256_mul_pd, _mm256_mul_ps, _mm256_sub_pd, _mm256_sub_ps):
6392 Use vector extensions instead of builtins.
6393 * config/i386/avx2intrin.h (_mm256_cmpeq_epi8, _mm256_cmpeq_epi16,
6394 _mm256_cmpeq_epi32, _mm256_cmpeq_epi64, _mm256_cmpgt_epi8,
6395 _mm256_cmpgt_epi16, _mm256_cmpgt_epi32, _mm256_cmpgt_epi64,
6396 _mm256_and_si256, _mm256_or_si256, _mm256_xor_si256, _mm256_add_epi8,
6397 _mm256_add_epi16, _mm256_add_epi32, _mm256_add_epi64,
6398 _mm256_mullo_epi16, _mm256_mullo_epi32, _mm256_sub_epi8,
6399 _mm256_sub_epi16, _mm256_sub_epi32, _mm256_sub_epi64): Likewise.
6400 * config/i386/avx512fintrin.h (__v8du, __v16su, __v32hu, __v64qu):
6402 (_mm512_or_si512, _mm512_or_epi32, _mm512_or_epi64, _mm512_xor_si512,
6403 _mm512_xor_epi32, _mm512_xor_epi64, _mm512_and_si512,
6404 _mm512_and_epi32, _mm512_and_epi64, _mm512_mullo_epi32,
6405 _mm512_add_epi64, _mm512_sub_epi64, _mm512_add_epi32,
6406 _mm512_sub_epi32, _mm512_add_pd, _mm512_add_ps, _mm512_sub_pd,
6407 _mm512_sub_ps, _mm512_mul_pd, _mm512_mul_ps, _mm512_div_pd,
6408 _mm512_div_ps): Use vector extensions instead of builtins.
6409 * config/i386/avx512bwintrin.h (_mm512_mullo_epi16, _mm512_add_epi8,
6410 _mm512_sub_epi8, _mm512_sub_epi16, _mm512_add_epi16): Likewise.
6411 * config/i386/avx512dqintrin.h (_mm512_mullo_epi64): Likewise.
6412 * config/i386/avx512vldqintrin.h (_mm256_mullo_epi64, _mm_mullo_epi64):
6415 2014-11-15 Jan Hubicka <hubicka@ucw.cz>
6417 * lto-streamer-out.c (hash_tree): Use cl_optimization_hash.
6418 * lto-streamer.h (cl_optimization_stream_out, cl_optimization_stream_in): Declare.
6419 * optc-save-gen.awk: Generate cl_optimization LTO streaming and hashing routines.
6420 * opth-gen.awk: Add prototype of cl_optimization_hash.
6421 * tree-streamer-in.c (unpack_ts_optimization): Remove.
6422 (streamer_unpack_tree_bitfields): Use cl_optimization_stream_in.
6423 * tree-streamer-out.c (pack_ts_optimization): Remove.
6424 (streamer_pack_tree_bitfields): Use cl_optimization_stream_out.
6426 2014-11-15 Mircea Namolaru <mircea.namolaru@inria.fr>
6428 * common.opt (flag_loop_unroll_and_jam): New flag.
6429 * params.def (PARAM_LOOP_UNROLL_JAM_SIZE): Parameter for unroll and
6431 (PARAM_LOOP_UNROLL_JAM_DEPTH): Likewise.
6432 * graphite-poly.h (struct poly_bb:map_sepclass): New field
6433 * graphite-poly.c (new_poly_bb): Initialization for new field.
6434 (apply_poly_transforms): Support for unroll and jam flag.
6435 * graphite-isl-ast-to-gimple.c (generate_luj_sepclass): Compute the
6437 (generate_luj_sepclass_opt): Build the separation class option.
6438 (generate_luj_options): Set unroll and jam options.
6439 (set_options): Support for unroll and jam options.
6440 (scop_to_isl_ast): Likewise
6441 * graphite-optimize-isl.c (getPrevectorMap_full): New function for
6442 computing the separating class map.
6443 (optimize_isl): Support for the separating class map.
6444 (apply_schedule_map_to_scop): Likewise.
6445 (getScheduleMap): Likewise.
6446 (getScheduleForBand): Likewise.
6447 (getScheduleForBandList): Likewise.
6448 * graphite.c (gate_graphite_transforms): Add unroll and jam flag.
6449 * toplev.c (process_options) Likewise.
6451 2014-11-15 Eric Botcazou <ebotcazou@adacore.com>
6453 * tree-cfg.c (replace_loop_annotate_in_block): New function extracted
6455 (replace_loop_annotate): ...here. Call it on the header and on the
6456 latch block, if any. Restore proper behavior of final cleanup.
6458 2014-11-15 Eric Botcazou <ebotcazou@adacore.com>
6460 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add log message
6461 for max-completely-peeled-insns limit.
6463 2014-11-14 Jan Hubicka <hubicka@ucw.cz>
6465 * ipa-prop.h (ipa_known_type_data): Remove.
6466 (ipa_binfo_from_known_type_jfunc): Remove.
6468 2014-11-14 Andrew Pinski <apinski@cavium.com>
6470 * config/aarch64/aarch64-cores.def (thunderx): Change the scheduler
6472 * config/aarch64/aarch64.md: Include thunderx.md.
6473 (generic_sched): Set to no for thunderx.
6474 * config/aarch64/thunderx.md: New file.
6476 2014-11-14 Michael Meissner <meissner@linux.vnet.ibm.com>
6478 * config/rs6000/predicates.md (easy_fp_constant): Delete redunant
6481 * config/rs6000/vector.md (VEC_R): Move secondary reload support
6482 insns to rs6000.md from vector.md.
6483 (reload_<VEC_R:mode>_<P:mptrsize>_store): Likewise.
6484 (reload_<VEC_R:mode>_<P:mptrsize>_load): Likewise.
6485 (vec_reload_and_plus_<mptrsize>): Likewise.
6487 * config/rs6000/rs6000.md (Fa): New mode attribute to give
6488 constraint for the Altivec registers for a type.
6489 (RELOAD): New mode iterator for all of the types that have
6490 secondary reload address support to load up a base register.
6491 (extendsfdf2_fpr): Use correct constraint.
6492 (copysign<mode>3_fcpsgn): For SFmode, use correct xscpsgndp
6494 (floatsi<mode>2_lfiwax): Add support for -mupper-regs-{sf,df}.
6495 Generate the non-VSX instruction if all registers were FPRs. Do
6496 not use the patterns in vsx.md for scalar operations.
6497 (floatsi<mode>2_lfiwax_mem): Likewise.
6498 (floatunssi<mode>2_lfiwzx): Likewise.
6499 (floatunssi<mode>2_lfiwzx_mem): Likewise.
6500 (fix_trunc<mode>di2_fctidz): Likewise.
6501 (fixuns_trunc<mode>di2_fctiduz): Likewise.
6502 (fctiwz_<mode>): Likewise.
6503 (fctiwuz_<mode>): Likewise.
6505 (floatdidf2_fpr): Likewise.
6506 (floatdidf2_mem): Likewise.
6507 (floatunsdidf2): Likewise.
6508 (floatunsdidf2_fcfidu): Likewise.
6509 (floatunsdidf2_mem): Likewise.
6510 (floatdisf2_fcfids): Likewise.
6511 (floatdisf2_mem): Likewise.
6512 (floatdisf2_internal1): Add explicit test for not FCFIDS to make
6513 it more obvious that the code is for pre-ISA 2.06 machines.
6514 (floatdisf2_internal2): Likewise.
6515 (floatunsdisf2_fcfidus): Add support for -mupper-regs-{sf,df}.
6516 Generate the non-VSX instruction if all registers were FPRs. Do
6517 not use the patterns in vsx.md for scalar operations.
6518 (floatunsdisf2_mem): Likewise.
6519 (reload_<RELOAD:mode>_<P:mptrsize>_store): Move the reload
6520 handlers here from vector.md, and expand the types we generate
6521 reload handlers for.
6522 (reload_<RELOAD:mode>_<P:mptrsize>_load): Likewise.
6523 (vec_reload_and_plus_<mptrsize>): Likewise.
6525 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Only provide the
6526 vector forms of the instructions. Move VSX scalar forms to
6527 rs6000.md, and add support for -mupper-regs-sf.
6528 (vsx_floatuns<VSi><mode>2): Likewise.
6529 (vsx_fix_trunc<mode><VSi>2): Likewise.
6530 (vsx_fixuns_trunc<mode><VSi>2): Likewise.
6531 (vsx_float_fix_<mode>2): Delete DF version, rename to
6532 vsx_float_fix_v2df2.
6533 (vsx_float_fix_v2df2): Likewise.
6535 2014-11-14 Martin Jambor <mjambor@suse.cz>
6537 * ipa-prop.h (jump_func_type): Removed value IPA_JF_KNOWN_TYPE.
6538 (ipa_pass_through_data): Removed field type_preserved.
6539 (ipa_ancestor_jf_data): removed fields type and type_preserved.
6540 (ipa_jump_func): Removed field known_type.
6541 (ipa_get_jf_known_type_offset): Removed.
6542 (ipa_get_jf_known_type_base_type): Likewise.
6543 (ipa_get_jf_known_type_component_type): Likewise.
6544 (ipa_get_jf_ancestor_type): Likewise.
6545 * ipa-cp.c (print_ipcp_constant_value): Removed BINFO handling.
6546 (ipa_get_jf_pass_through_result): Likewise.
6547 (ipa_get_jf_ancestor_result): Always build ptr_node_type accesses.
6548 (values_equal_for_ipcp_p): Removed BINFO handling.
6549 (ipa_get_indirect_edge_target_1): Updated comment.
6550 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Removed handling
6551 of IPA_JF_KNOWN_TYPE jump functions. Do not print removed fields.
6552 (ipa_set_jf_known_type): Removed.
6553 (ipa_set_jf_simple_pass_through): Do not set removed fields. Update
6555 (ipa_set_jf_arith_pass_through): Likewise.
6556 (ipa_set_ancestor_jf): Likewise.
6557 (ipa_binfo_from_known_type_jfunc): Removed.
6558 (prop_type_change_info): Removed fields known_current_type and
6559 multiple_types_encountered.
6560 (extr_type_from_vtbl_ptr_store): Removed.
6561 (check_stmt_for_type_change): Do not attempt to identify changed type.
6562 (detect_type_change_from_memory_writes): Do not set the removed fields,
6563 always set jfunc to unknown.
6564 (compute_complex_assign_jump_func): Do not detect dynamic type change.
6565 (compute_complex_ancestor_jump_func): Likewise.
6566 (compute_known_type_jump_func): Removed.
6567 (ipa_compute_jump_functions_for_edge): Do not detect dynamic type
6568 change. Do not comute known type jump functions.
6569 (combine_known_type_and_ancestor_jfs): Removed.
6570 (update_jump_functions_after_inlining): Removed handling of
6571 IPA_JF_KNOWN_TYPE jump functions. Do not set removed fields.
6572 (ipa_write_jump_function): Do not stream removed fields or known type
6574 (ipa_read_jump_function): Likewise.
6576 2014-11-14 Vladimir Makarov <vmakarov@redhat.com>
6578 * lra-int.h (lra_create_live_ranges): Add parameter.
6579 * lra-lives.c (temp_bitmap): Move higher.
6580 (initiate_live_solver): Move temp_bitmap initialization into
6581 lra_live_ranges_init.
6582 (finish_live_solver): Move temp_bitmap clearing into
6584 (process_bb_lives): Add parameter. Use it to control live info
6585 update and dead insn elimination. Pass it to mark_regno_live and
6587 (lra_create_live_ranges): Add parameter. Pass it to
6589 (lra_live_ranges_init, lra_live_ranges_finish): See changes in
6590 initiate_live_solver and finish_live_solver.
6591 * lra-remat.c (do_remat): Process insn non-operand hard regs too.
6592 Use temp_bitmap to update avail_cands.
6593 * lra.c (lra): Pass new parameter to lra_create_live_ranges. Move
6594 check with lra_need_for_spill_p after live range pass. Switch on
6595 rematerialization pass.
6597 2014-11-14 Martin Jambor <mjambor@suse.cz>
6599 * ipa-prop.h (ipa_get_jf_pass_through_type_preserved): use
6600 agg_preserved flag instead.
6601 (ipa_get_jf_ancestor_type_preserved): Likewise.
6602 (ipa_node_params): Rename known_vals to known_csts, update all users.
6603 New field known_contexts.
6604 (ipa_get_indirect_edge_target): Update prototype.
6605 (ipcp_poly_ctx_values_pool): Declare.
6606 (ipa_context_from_jfunc): Likewise.
6607 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Updated prototype.
6608 * cgraph.h (ipa_polymorphic_call_context): New method equal_to. New
6609 parameter newline of method dump.
6610 * ipa-cp.c (ctxlat): New field.
6611 (ipcp_values_pool): Renamed to ipcp_cst_values_pool, updated all users.
6612 (ipcp_poly_ctx_values_pool):New variable.
6613 (ipa_get_poly_ctx_lat): New function.
6614 (print_ipcp_constant_value): New overloaded function for contexts.
6615 (print_all_lattices): Also print contexts.
6616 (ipa_topo_info): New field contexts;
6617 (set_all_contains_variable): Also set the flag in the context lattice.
6618 (initialize_node_lattices): Likewise for flag bottom.
6619 (ipa_get_jf_ancestor_result): Removed BINFO handling.
6620 (ipa_value_from_jfunc): Likewise.
6621 (ipa_context_from_jfunc): New function.
6622 (values_equal_for_ipcp_p): New overloaded function for contexts.
6623 (allocate_and_init_ipcp_value): Construct the value.
6624 (allocate_and_init_ipcp_value): New overloaded function for contexts.
6625 (propagate_scalar_accross_jump_function): Removed handling of
6626 KNOWN_TYPE jump functions.
6627 (propagate_context_accross_jump_function): New function.
6628 (propagate_constants_accross_call): Also propagate contexts.
6629 (ipa_get_indirect_edge_target_1): Work on contexts rather than BINFOs.
6630 (ipa_get_indirect_edge_target): Likewise.
6631 (devirtualization_time_bonus): Likewise.
6632 (gather_context_independent_values): Create and populate known_contexts
6633 vector rather than known_binfos.
6634 (perform_estimation_of_a_value): Work on contexts rather than BINFOs.
6635 (estimate_local_effects): Likewise.
6636 (add_all_node_vals_to_toposort): Also add contexts to teir topological
6638 (ipcp_propagate_stage): Also propagate effects of contexts.
6639 (ipcp_discover_new_direct_edges): Receive and pass known_contexts to
6640 ipa_get_indirect_edge_target_1.
6641 (cgraph_edge_brings_value_p): New overloaded function for contexts.
6642 (create_specialized_node): Work on contexts rather than BINFOs.
6643 (find_more_contexts_for_caller_subset): New function.
6644 (known_contexts_useful_p): New function.
6645 (copy_useful_known_contexts): Likewise.
6646 (modify_known_vectors_with_val): Likewise.
6647 (ipcp_val_in_agg_replacements_p): Renamed to
6648 ipcp_val_agg_replacement_ok_p, return true for all offset indicating
6650 (ipcp_val_agg_replacement_ok_p): New overloaded function for contexts.
6651 (decide_about_value): Work on contexts rather than BINFOs.
6652 (decide_whether_version_node): Likewise.
6653 (ipcp_driver): Initialize the new alloc pool.
6654 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Prettify
6655 printing of edge contexts.
6656 (ipa_set_ancestor_jf): Replace assert with conditional setting of
6657 type_preserved to false.
6658 (update_jump_functions_after_inlining): Use access function instead of
6659 reading agg_preserved directly. Store combined context in the ancestor
6661 (try_make_edge_direct_virtual_call): Work on contexts rather than
6663 (update_indirect_edges_after_inlining): Get context from
6664 ipa_context_from_jfunc.
6665 (ipa_free_node_params_substructures): Free also known_contexts.
6666 (ipa_free_all_structures_after_ipa_cp): Free the new alloc pool.
6667 (ipa_free_all_structures_after_iinln): Likewise.
6668 * ipa-inline-analysis.c (evaluate_properties_for_edge): Work on
6669 contexts rather than BINFOs.
6670 (estimate_edge_devirt_benefit): Likewise.
6671 (estimate_edge_size_and_time): Likewise.
6672 (estimate_calls_size_and_time): Likewise.
6673 (estimate_node_size_and_time): Likewise.
6674 (estimate_ipcp_clone_size_and_time): Likewise.
6675 (do_estimate_edge_time): Likewise.
6676 (do_estimate_edge_size): Likewise.
6677 (do_estimate_edge_hints): Likewise.
6678 * ipa-polymorphic-call.c (ipa_polymorphic_call_context::dump): New
6679 parameter newline, ouput newline only when it is set.
6680 (ipa_polymorphic_call_context::equal_to): New method.
6682 2014-11-14 Martin Jambor <mjambor@suse.cz>
6684 * ipa-cp.c (ipcp_value_source): Converted to a template class. All
6685 users converted to the same specialization as the using class/function
6686 or specialization on tree.
6687 (ipcp_value): Likewise.
6688 (ipcp_lattice): Likewise.
6689 (ipcp_agg_lattice): Now derived from tree specialization of
6691 (values_topo): Moved to new class value_topo_info.
6692 (ipa_lat_is_single_const): Turned into ipcp_lattice::is_single_const.
6693 Updated all callers.
6694 (print_lattice): Turned into ipcp_lattice::print. Updated all
6696 (value_topo_info): New class template.
6697 (ipa_topo_info): New field constants. New constructor.
6698 (build_toporder_info): Do not clear stack_top, only checkign assert
6700 (set_lattice_to_bottom): Turned into ipcp_lattice::set_to_bottom.
6701 Updated all callers.
6702 (set_lattice_contains_variable): Turned into
6703 ipcp_lattice::set_contains_variable. Updated all callers.
6704 (add_value_source): Turned into ipcp_value::add_source. Updated all
6706 (allocate_and_init_ipcp_value): New function.
6707 (add_value_to_lattice): Turned into ipcp_lattice::add_value. Last
6708 parameter got default a value. Updated all callers.
6709 (add_scalar_value_to_lattice): Removed, users converted to using
6710 ipcp_lattice::add_value with default value of the last parameter.
6711 (add_val_to_toposort): Turned to value_topo_info::add_val. Updated
6713 (propagate_effects): Made method of value_topo_info.
6714 (cgraph_edge_brings_value_p): Now a template function.
6715 (get_info_about_necessary_edges): Likewise.
6716 (gather_edges_for_value): Likewise.
6717 (perhaps_add_new_callers): Likewise.
6718 (decide_about_value): Likewise.
6719 * ipa-prop.h (ipcp_lattice): Remove fowrward declaration.
6721 2014-11-14 Jakub Jelinek <jakub@redhat.com>
6723 * doc/install.texi (--with-diagnostics-color=): Document.
6725 * tree-ssa.dce.c (eliminate_unnecessary_stmts): Eliminate
6726 IFN_GOMP_SIMD_LANE without lhs as useless.
6728 * ipa-pure-const.c (struct funct_state_d): Add can_free field.
6729 (varying_state): Add true for can_free.
6730 (check_call): For builtin or internal !nonfreeing_call_p set
6732 (check_stmt): For asm volatile and asm with "memory" set
6734 (analyze_function): Clear local->can_free initially, continue
6735 calling check_stmt until all flags are computed, dump can_free
6737 (pure_const_write_summary): Write can_free flag.
6738 (pure_const_read_summary): Read it back.
6739 (propagate_pure_const): Propagate also can_free flag, set
6740 w->nonfreeing_fn if it is false after propagation.
6741 * cgraph.h (cgraph_node): Add nonfreeing_fn member.
6742 * gimple.c: Include ipa-ref.h, lto-streamer.h and cgraph.h.
6743 (nonfreeing_call_p): Return cgraph nonfreeing_fn flag if set.
6744 Also return true for IFN_ABNORMAL_DISPATCHER.
6745 * cgraph.c (cgraph_node::dump): Dump nonfreeing_fn flag.
6746 * lto-cgraph.c (lto_output_node): Write nonfreeing_fn flag.
6747 (input_overwrite_node): Read it back.
6749 2014-11-14 Jakub Jelinek <jakub@redhat.com>
6750 Marek Polacek <polacek@redhat.com>
6752 * sanopt.c: Include tree-ssa-operands.h.
6753 (struct sanopt_info): Add has_freeing_call_p,
6754 has_freeing_call_computed_p, imm_dom_path_with_freeing_call_p,
6755 imm_dom_path_with_freeing_call_computed_p, freeing_call_events,
6756 being_visited_p fields.
6757 (struct sanopt_ctx): Add asan_check_map field.
6758 (imm_dom_path_with_freeing_call, maybe_optimize_ubsan_null_ifn,
6759 maybe_optimize_asan_check_ifn): New functions.
6760 (sanopt_optimize_walker): Use them, optimize even ASAN_CHECK
6762 (pass_sanopt::execute): Call sanopt_optimize even for
6764 * gimple.c (nonfreeing_call_p): Return true for non-ECF_LEAF
6767 2014-11-14 Alan Lawrence <alan.lawrence@arm.com>
6769 * tree-vect-loop.c (vect_create_epilog_for_reduction): Move code for
6770 'if (extract_scalar_result)' to the only place that it is true.
6772 2014-11-14 H.J. Lu <hongjiu.lu@intel.com>
6774 * config.gcc (default_gnu_indirect_function): Set to yes
6775 for i[34567]86-*-linux* and x86_64-*-linux* if not targeting
6778 2014-11-14 Felix Yang <felix.yang@huawei.com>
6779 Jiji Jiang <jiangjiji@huawei.com>
6781 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): Use
6782 VALL mode iterator instead of VALLDI.
6784 2014-11-14 Jan Hubicka <hubicka@ucw.cz>
6786 * optc-save-gen.awk: Output cl_target_option_eq,
6787 cl_target_option_hash, cl_target_option_stream_out,
6788 cl_target_option_stream_in functions.
6789 * opth-gen.awk: Output prototypes for
6790 cl_target_option_eq and cl_target_option_hash.
6791 * lto-streamer.h (cl_target_option_stream_out,
6792 cl_target_option_stream_in): Declare.
6793 * tree.c (cl_option_hash_hash): Use cl_target_option_hash.
6794 (cl_option_hash_eq): Use cl_target_option_eq.
6795 * tree-streamer-in.c (unpack_value_fields): Stream in
6797 * lto-streamer-out.c (DFS::DFS_write_tree_body): Follow
6798 DECL_FUNCTION_SPECIFIC_TARGET.
6799 (hash_tree): Hash TREE_TARGET_OPTION; visit
6800 DECL_FUNCTION_SPECIFIC_TARGET.
6801 * tree-streamer-out.c (streamer_pack_tree_bitfields): Skip
6803 (streamer_write_tree_body): Output TS_TARGET_OPTION.
6805 2014-11-14 Richard Biener <rguenther@suse.de>
6807 * gimple-fold.h (gimple_fold_stmt_to_constant_1): Add 2nd
6808 valueization hook defaulted to no_follow_ssa_edges.
6809 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Pass
6810 2nd valueization hook to gimple_simplify.
6811 * tree-ssa-ccp.c (valueize_op_1): New function to be
6812 used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
6814 * tree-vrp.c (vrp_valueize_1): New function to be
6815 used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
6816 (vrp_visit_assignment_or_call): Adjust.
6818 2014-11-14 Marek Polacek <polacek@redhat.com>
6820 * fold-const.c (fold_negate_expr): Don't fold INTEGER_CST if
6821 that overflows when SANITIZE_SI_OVERFLOW is on. Guard -(-A)
6822 folding with TYPE_OVERFLOW_SANITIZED.
6824 2014-11-14 Marek Polacek <polacek@redhat.com>
6827 * asan.c (ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST,
6828 ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST): Define.
6829 * builtin-attrs.def (ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST):
6831 * builtins.c (fold_builtin_0): Don't include ubsan.h. Don't
6832 instrument BUILT_IN_UNREACHABLE here.
6833 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Make
6835 * sanopt.c (pass_sanopt::execute): Instrument BUILT_IN_UNREACHABLE.
6836 * tree-ssa-ccp.c (optimize_unreachable): Bail out if
6837 SANITIZE_UNREACHABLE.
6838 * ubsan.c (ubsan_instrument_unreachable): Rewrite for GIMPLE.
6839 * ubsan.h (ubsan_instrument_unreachable): Adjust declaration.
6841 2014-11-14 Alan Lawrence <alan.lawrence@arm.com>
6843 * config/rs6000/vector.md (vec_shl_<mode>): Remove.
6844 (vec_shr_<mode>): Reverse shift if BYTES_BIG_ENDIAN.
6846 2014-11-14 Alan Lawrence <alan.lawrence@arm.com>
6848 * optabs.c (shift_amt_for_vec_perm_mask): Remove code conditional on
6850 * tree-vect-loop.c (calc_vec_perm_mask_for_shift,
6851 vect_create_epilog_for_reduction): Likewise.
6852 * doc/md.texi (vec_shr_m): Clarify direction of shifting.
6854 2014-11-14 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6857 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Split out
6858 numerical immediate handling to...
6859 (aarch64_internal_mov_immediate): ...this. New.
6860 (aarch64_rtx_costs): Use aarch64_internal_mov_immediate.
6861 (aarch64_mov_operand_p): Relax predicate.
6862 * config/aarch64/aarch64.md (mov<mode>:GPI): Do not expand CONST_INTs.
6863 (*movsi_aarch64): Turn into define_insn_and_split and new alternative
6865 (*movdi_aarch64): Likewise.
6867 2014-11-14 Richard Biener <rguenther@suse.de>
6869 * match.pd: Implement more binary patterns exercised by
6871 * fold-const.c (sing_bit_p): Export.
6872 (exact_inverse): Likewise.
6873 (fold_binary_loc): Remove patterns here.
6874 (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
6875 * fold-const.h (sing_bit_p): Declare.
6876 (exact_inverse): Likewise.
6878 2014-11-14 Marek Polacek <polacek@redhat.com>
6880 * tree.c (build_common_builtin_nodes): Remove doubled ECF_LEAF.
6882 2014-11-14 Richard Biener <rguenther@suse.de>
6884 * genmatch.c (add_operator): Allow CONSTRUCTOR.
6885 (dt_node::gen_kids): Handle CONSTRUCTOR not as GENERIC.
6886 (parser::parse_op): Allow to iterate over predicates.
6888 2014-11-14 Jakub Jelinek <jakub@redhat.com>
6890 * configure.ac (--with-diagnostics-color): New configure
6891 option, default to --with-diagnostics-color=auto.
6892 * toplev.c (process_options): Use DIAGNOSTICS_COLOR_DEFAULT
6893 to determine -fdiagnostics-color= option default.
6894 * doc/invoke.texi (-fdiagnostics-color=): Document new
6896 * configure: Regenerated.
6897 * config.in: Regenerated.
6899 2014-11-13 Teresa Johnson <tejohnson@google.com>
6901 PR tree-optimization/63841
6902 * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
6904 2014-11-14 Bin Cheng <bin.cheng@arm.com>
6906 * timevar.def (TV_SCHED_FUSION): New time var.
6907 * passes.def (pass_sched_fusion): New pass.
6908 * config/arm/arm.c (TARGET_SCHED_FUSION_PRIORITY): New.
6909 (extract_base_offset_in_addr, fusion_load_store): New.
6910 (arm_sched_fusion_priority): New.
6911 (arm_option_override): Disable scheduling fusion by default
6912 on non-armv7 processors or ldrd/strd isn't preferred.
6913 * sched-int.h (struct _haifa_insn_data): New field.
6914 (INSN_FUSION_PRIORITY, FUSION_MAX_PRIORITY, sched_fusion): New.
6915 * sched-rgn.c (rest_of_handle_sched_fusion): New.
6916 (pass_data_sched_fusion, pass_sched_fusion): New.
6917 (make_pass_sched_fusion): New.
6918 * haifa-sched.c (sched_fusion): New.
6919 (insn_cost): Handle sched_fusion.
6920 (priority): Handle sched_fusion by calling target hook.
6921 (enum rfs_decision): New enum value.
6922 (rfs_str): New element for RFS_FUSION.
6923 (rank_for_schedule): Support sched_fusion.
6924 (schedule_insn, max_issue, prune_ready_list): Handle sched_fusion.
6925 (schedule_block, fix_tick_ready): Handle sched_fusion.
6926 * common.opt (flag_schedule_fusion): New.
6927 * tree-pass.h (make_pass_sched_fusion): New.
6928 * target.def (fusion_priority): New.
6929 * doc/tm.texi.in (TARGET_SCHED_FUSION_PRIORITY): New.
6930 * doc/tm.texi: Regenerated.
6931 * doc/invoke.texi (-fschedule-fusion): New.
6933 2014-11-13 Rong Xu <xur@google.com>
6936 * cfgrtl.c (emit_barrier_after_bb): Append the barrier to the
6937 footer, instead of unconditionally overwritten.
6939 2014-11-14 Martin Jambor <mjambor@suse.cz>
6941 * cgraph.h (clear_outer_type): Make public. Fix comment.
6942 * ipa-devirt.c (possible_polymorphic_call_targets): Use
6943 clear_outer_type when resetting the context.
6945 2014-11-13 Dominique Dhumieres <dominiq@lps.ens.fr>
6948 * gcc.c (handle_foffload_option): Replace strchrnul with strchr.
6949 * lto-wrapper.c (parse_env_var, append_offload_options): Likewise.
6951 2014-11-13 Alan Lawrence <alan.lawrence@arm.com>
6953 * fold-const.c (const_binop): Remove code handling VEC_RSHIFT_EXPR.
6954 * tree-cfg.c (verify_gimple_assign_binary): Likewise.
6955 * tree-inline.c (estimate_operator_cost): Likewise.
6956 * tree-pretty-print.c (dump_generic_node, op_code_prio, op_symbol_code):
6959 * tree-vect-generic.c (expand_vector_operations_1): Remove assertion
6960 against VEC_RSHIFT_EXPR.
6962 * optabs.h (expand_vec_shift_expr): Remove.
6963 * optabs.c (optab_for_tree_code): Remove case VEC_RSHIFT_EXPR.
6964 (expand_vec_shift_expr): Remove.
6965 * tree.def (VEC_RSHIFT_EXPR): Remove
6967 2014-11-13 Alan Lawrence <alan.lawrence@arm.com>
6969 * optabs.c (can_vec_perm_p): Update comment, does not consider vec_shr.
6970 (shift_amt_for_vec_perm_mask): New.
6971 (expand_vec_perm_1): Use vec_shr_optab if second vector is const0_rtx
6972 and mask appropriate.
6974 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): New.
6975 (have_whole_vector_shift): New.
6976 (vect_model_reduction_cost): Call have_whole_vector_shift instead of
6977 looking for vec_shr_optab.
6978 (vect_create_epilog_for_reduction): Likewise; also rename local variable
6979 have_whole_vector_shift to reduce_with_shift; output VEC_PERM_EXPRs
6980 instead of VEC_RSHIFT_EXPRs.
6982 * tree-vect-stmts.c (vect_gen_perm_mask_checked): Extend comment.
6984 2014-11-13 Alan Lawrence <alan.lawrence@arm.com>
6986 * tree-vectorizer.h (vect_gen_perm_mask): Remove.
6987 (vect_gen_perm_mask_checked, vect_gen_perm_mask_any): New.
6989 * tree_vec_data_refs.c (vect_permute_load_chain,
6990 vec_permute_store_chain, vec_shift_permute_load_chain): Replace
6991 vect_gen_perm_mask & assert with vect_gen_perm_mask_checked.
6993 * tree-vect-stmts.c (vectorizable_mask_load_store, vectorizable_load):
6995 (vect_gen_perm_mask_checked): New.
6996 (vect_gen_perm_mask): Remove can_vec_perm_p check, rename to...
6997 (vect_gen_perm_mask_any): ...this.
6998 (perm_mask_for_reverse): Call can_vec_perm_p and
6999 vect_gen_perm_mask_checked.
7001 2014-11-13 Felix Yang <felix.yang@huawei.com>
7003 * ipa-utils.h: Fix typo in comments.
7004 * ipa-profile.c: Likewise.
7005 * tree-ssa-loop-ivcanon.c: Fix typo in comments and debugging dumps.
7007 2014-11-13 Teresa Johnson <tejohnson@google.com>
7009 PR tree-optimization/63841
7010 * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
7012 2014-11-13 Teresa Johnson <tejohnson@google.com>
7014 PR tree-optimization/63841
7015 * tree.c (initializer_zerop): A clobber does not zero initialize.
7017 2014-11-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7019 * optabs.c (prepare_operand): Gracefully fail if the mode of X
7020 does not match the operand mode expected by the insn pattern.
7022 2014-11-13 Richard Biener <rguenther@suse.de>
7024 * match.pd: Add tcc_comparison, inverted_tcc_comparison
7025 and inverted_tcc_comparison_with_nans operator lists.
7026 Use tcc_comparison in the truth_valued_p predicate definition.
7027 Restrict logical_inverted_value with bit_xor to integral types.
7028 Build a boolean true for simplifying x |^ !x because of
7029 vector types. Implement patterns from forward_propagate_comparison
7030 * tree-ssa-forwprop.c (forward_propagate_comparison): Remove.
7031 (get_prop_dest_stmt): Likewise.
7032 (pass_forwprop::execute): Do not call it.
7033 * fold-const.c (fold_unary_loc): Remove the pattern here.
7035 2014-11-13 Ilya Verbin <ilya.verbin@intel.com>
7036 Andrey Turetskiy <andrey.turetskiy@intel.com>
7038 * config.gcc (*-intelmic-* | *-intelmicemul-*): Add i386/t-intelmic to
7040 (i[34567]86-*-* | x86_64-*-*): Build mkoffload$(exeext) with the
7041 accelerator compiler.
7042 * config/i386/intelmic-mkoffload.c: New file.
7043 * config/i386/t-intelmic: Ditto.
7045 2014-11-13 Bernd Schmidt <bernds@codesourcery.com>
7046 Andrey Turetskiy <andrey.turetskiy@intel.com>
7047 Ilya Verbin <ilya.verbin@intel.com>
7049 * common.opt (foffload, foffload-abi): New options.
7050 * config/i386/i386.c (ix86_offload_options): New static function.
7051 (TARGET_OFFLOAD_OPTIONS): Define.
7052 * coretypes.h (enum offload_abi): New enum.
7053 * doc/tm.texi: Regenerate.
7054 * doc/tm.texi.in (TARGET_OFFLOAD_OPTIONS): Document.
7055 * gcc.c (offload_targets): New static variable.
7056 (handle_foffload_option): New static function.
7057 (driver_handle_option): Handle OPT_foffload_.
7058 (driver::maybe_putenv_OFFLOAD_TARGETS): Set OFFLOAD_TARGET_NAMES
7059 according to offload_targets.
7060 * hooks.c (hook_charptr_void_null): New hook.
7061 * hooks.h (hook_charptr_void_null): Declare.
7062 * lto-opts.c: Include lto-section-names.h.
7063 (lto_write_options): Append options from target offload_options hook and
7064 store them to offload_lto section. Do not store target-specific,
7065 driver and diagnostic options in offload_lto section.
7066 * lto-wrapper.c (merge_and_complain): Handle OPT_foffload_ and
7068 (append_compiler_options, append_linker_options)
7069 (append_offload_options): New static functions.
7070 (compile_offload_image): Add new arguments with options.
7071 Call append_compiler_options and append_offload_options.
7072 (compile_images_for_offload_targets): Add new arguments with options.
7073 (find_and_merge_options): New static function.
7074 (run_gcc): Outline options handling into the new functions:
7075 find_and_merge_options, append_compiler_options, append_linker_options.
7076 * opts.c (common_handle_option): Don't handle OPT_foffload_.
7077 Forbid OPT_foffload_abi_ for non-offload compiler.
7078 * target.def (offload_options): New target hook.
7080 2014-11-13 Ilya Verbin <ilya.verbin@intel.com>
7081 Bernd Schmidt <bernds@codesourcery.com>
7082 Andrey Turetskiy <andrey.turetskiy@intel.com>
7083 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
7085 * gcc.c (spec_host_machine, accel_dir_suffix): New variables.
7086 (process_command): Tweak path construction for the possibility
7087 of being configured as an offload compiler.
7088 (driver::maybe_putenv_OFFLOAD_TARGETS): New function.
7089 (driver::main): Call maybe_putenv_OFFLOAD_TARGETS.
7090 (driver::set_up_specs): Tweak path construction for the possibility of
7091 being configured as an offload compiler.
7092 * lto-wrapper.c (OFFLOAD_TARGET_NAMES_ENV): Define.
7093 (offload_names, offloadbegin, offloadend): New static variables.
7094 (free_array_of_ptrs, parse_env_var, access_check, compile_offload_image)
7095 (compile_images_for_offload_targets, copy_file, find_offloadbeginend):
7096 New static functions.
7097 (run_gcc): Determine whether offload sections are present. If so, run
7098 compile_images_for_offload_targets and return the names of new generated
7099 objects to linker. If there are offload sections, but no LTO sections,
7100 then return the copies of input objects without link-time recompilation.
7102 2014-11-13 Richard Biener <rguenther@suse.de>
7104 * genmatch.c (dt_node::gen_kids): Fix placement of break statement.
7106 2014-11-13 Ilya Verbin <ilya.verbin@intel.com>
7107 Bernd Schmidt <bernds@codesourcery.com>
7108 Andrey Turetskiy <andrey.turetskiy@intel.com>
7109 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
7111 * Makefile.in (GTFILES): Add omp-low.h to list of GC files.
7112 * cgraphunit.c: Include omp-low.h.
7113 * doc/tm.texi: Regenerate.
7114 * doc/tm.texi.in (TARGET_RECORD_OFFLOAD_SYMBOL): Document.
7115 * gengtype.c (open_base_files): Add omp-low.h to ifiles.
7116 * lto-cgraph.c (output_offload_tables): New function.
7117 (input_offload_tables): Likewise.
7118 * lto-section-in.c (lto_section_name): Add "offload_table".
7119 * lto-section-names.h (OFFLOAD_VAR_TABLE_SECTION_NAME): Define.
7120 (OFFLOAD_FUNC_TABLE_SECTION_NAME): Likewise.
7121 * lto-streamer-out.c (lto_output): Call output_offload_tables.
7122 * lto-streamer.h (lto_section_type): Add LTO_section_offload_table.
7123 (output_offload_tables, input_offload_tables): Declare.
7124 * omp-low.c: Include common/common-target.h and lto-section-names.h.
7125 (offload_funcs, offload_vars): New global <tree, va_gc> vectors.
7126 (expand_omp_target): Add child_fn into offload_funcs vector.
7127 (add_decls_addresses_to_decl_constructor): New function.
7128 (omp_finish_file): Likewise.
7129 * omp-low.h (omp_finish_file, offload_funcs, offload_vars): Declare.
7130 * target.def (record_offload_symbol): New DEFHOOK.
7131 * toplev.c: Include omp-low.h.
7132 (compile_file): Call omp_finish_file.
7133 * varpool.c: Include omp-low.h.
7134 (varpool_node::get_create): Add decl into offload_vars vector.
7136 2014-11-13 Ilya Verbin <ilya.verbin@intel.com>
7137 Ilya Tocar <ilya.tocar@intel.com>
7138 Andrey Turetskiy <andrey.turetskiy@intel.com>
7139 Bernd Schmidt <bernds@codesourcery.com>
7141 * cgraph.c: Include context.h.
7142 (cgraph_node::create): Set node->offloadable and g->have_offload if
7143 decl have "omp declare target" attribute.
7144 * cgraph.h (symtab_node): Add need_lto_streaming and offloadable flags.
7145 * cgraphunit.c: Include lto-section-names.h.
7146 (ipa_passes): Call ipa_write_summaries if there is something to write to
7147 OFFLOAD_SECTION_NAME_PREFIX sections.
7148 (symbol_table::compile): Set flag_generate_lto if there is something to
7150 Replace flag_lto with flag_generate_lto before lto_streamer_hooks_init.
7151 * context.c (gcc::context::context): Initialize have_offload with false.
7152 * context.h (class context): Add have_offload flag.
7153 * ipa-inline-analysis.c (inline_generate_summary): Do not exit under
7155 (inline_free_summary): Always remove hooks.
7156 * lto-cgraph.c (referenced_from_other_partition_p): Ignore references
7157 from non-offloadable nodes while streaming a node into offload section.
7158 (reachable_from_other_partition_p): Likewise.
7159 (select_what_to_stream): New function.
7160 (compute_ltrans_boundary): Do not call
7161 lto_set_symtab_encoder_in_partition if the node should not be streamed.
7162 * lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX): Define.
7163 (section_name_prefix): Declare.
7164 * lto-streamer.c (section_name_prefix): New variable.
7165 (lto_get_section_name): Use section_name_prefix instead of
7166 LTO_SECTION_NAME_PREFIX.
7167 * lto-streamer.h (select_what_to_stream): Declare.
7168 * omp-low.c: Include context.h.
7169 (is_targetreg_ctx): New function.
7170 (scan_sharing_clauses): Use offloadable flag, instead of an attribute.
7171 (create_omp_child_function, check_omp_nesting_restrictions): Use new
7172 is_targetreg_ctx function. Replace usage of "omp declare target"
7173 attribute with a cgraph_node flag offloadable.
7174 (expand_omp_target): Set mark_force_output for offloadable functions.
7175 (lower_omp_critical): Set offloadable flag for omp critical symbol.
7176 * passes.c (ipa_write_summaries): New argument offload_lto_mode. Call
7177 select_what_to_stream. Do not call lto_set_symtab_encoder_in_partition
7178 if the node should not be streamed out.
7179 * tree-pass.h (ipa_write_summaries): New bool argument.
7180 * varpool.c: Include context.h.
7181 (varpool_node::get_create): Set node->offloadable and g->have_offload if
7182 decl have "omp declare target" attribute.
7184 2014-11-13 Bernd Schmidt <bernds@codesourcery.com>
7185 Thomas Schwinge <thomas@codesourcery.com>
7186 Ilya Verbin <ilya.verbin@intel.com>
7187 Andrey Turetskiy <andrey.turetskiy@intel.com>
7189 * Makefile.in (real_target_noncanonical, accel_dir_suffix)
7190 (enable_as_accelerator): New variables substituted by configure.
7191 (libsubdir, libexecsubdir, unlibsubdir): Tweak for the possibility of
7192 being configured as an offload compiler.
7193 (DRIVER_DEFINES): Pass new defines DEFAULT_REAL_TARGET_MACHINE and
7195 (install-cpp, install-common, install_driver, install-gcc-ar): Do not
7196 install for the offload compiler.
7197 * config.in: Regenerate.
7198 * configure: Regenerate.
7199 * configure.ac (real_target_noncanonical, accel_dir_suffix)
7200 (enable_as_accelerator): Compute new variables.
7201 (ACCEL_COMPILER): Define if the compiler is built as the accel compiler.
7202 (OFFLOAD_TARGETS): List of target names suitable for offloading.
7203 (ENABLE_OFFLOADING): Define if list of offload targets is not empty.
7204 * doc/install.texi (Options specification): Document
7205 --enable-as-accelerator-for and --enable-offload-targets.
7207 2014-11-13 H.J. Lu <hongjiu.lu@intel.com>
7209 PR tree-optimization/63828
7210 * ipa-polymorphic-call.c (possible_placement_new): Check
7211 POINTER_SIZE, instead of BITS_PER_WORD, for pointer size.
7213 2014-11-13 Eric Botcazou <ebotcazou@adacore.com>
7215 * doc/tm.texi.in (SELECT_CC_MODE): Update example.
7216 (REVERSIBLE_CC_MODE): Fix example.
7217 (REVERSE_CONDITION): Fix typo.
7218 * doc/tm.texi: Regenerate.
7220 2014-11-13 Tom de Vries <tom@codesourcery.com>
7222 * omp-low.c (pass_data_expand_omp): Set properties_provided to
7224 (pass_expand_omp::gate): Remove function. Move gate expression to ...
7225 (pass_expand_omp::execute): ... here, as new variable gate. Add early
7226 exit if gate is false.
7227 (pass_data pass_data_expand_omp_ssa): New pass_data.
7228 (class pass_expand_omp_ssa): New pass.
7229 (make_pass_expand_omp_ssa): New function.
7230 * passes.def (pass_parallelize_loops): Use PUSH_INSERT_PASSES_WITHIN
7231 instead of NEXT_PASS.
7232 (pass_expand_omp_ssa): Add after pass_parallelize_loops.
7233 * tree-parloops.c (gen_parallel_loop): Remove call to omp_expand_local.
7234 (pass_parallelize_loops::execute): Don't do cleanups TODO_cleanup_cfg
7235 and TODO_rebuild_alias yet. Add TODO_update_ssa. Set
7236 cfun->omp_expand_needed.
7237 * tree-pass.h: Add define PROP_gimple_eomp.
7238 (make_pass_expand_omp_ssa): Declare.
7240 2014-11-13 Marek Polacek <polacek@redhat.com>
7242 * tree.h (TYPE_OVERFLOW_SANITIZED): Define.
7243 * fold-const.c (fold_binary_loc): Use it.
7244 * match.pd: Likewise.
7246 2014-11-14 Kirill Yukhin <kirill.yukhin@intel.com>
7248 * lra-lives.c (struct bb_data): Rename to ...
7249 (struct bb_data_pseudos): ... this.
7250 (initiate_live_solver): Update struct name.
7252 2014-11-13 Richard Biener <rguenther@suse.de>
7254 * match.pd: Implement conditional expression patterns.
7255 * tree-ssa-forwprop.c (forward_propagate_into_cond): Remove
7257 (combine_cond_exprs): Remove.
7258 (pass_forwprop::execute): Do not call combine_cond_exprs.
7259 * fold-const.c (fold_ternary_loc): Remove patterns here.
7260 (pedantic_omit_one_operand_loc): Remove.
7262 2014-12-13 Richard Biener <rguenther@suse.de>
7265 * match.pd: Implement bswap patterns for transforms checked by
7266 gcc.dg/builtin-bswap-8.c.
7268 2014-11-13 Vladimir Makarov <vmakarov@redhat.com>
7270 * lra.c (lra): Switch off rematerialization pass.
7272 2014-11-12 Vladimir Makarov <vmakarov@redhat.com>
7274 * common.opt (flra-remat): New.
7275 * opts.c (default_options_table): Add entry for flra_remat.
7276 * timevar_def (TV_LRA_REMAT): New.
7277 * doc/invoke.texi (-flra-remat): Add description of the new
7279 * doc/passes.texi (-flra-remat): Remove lra-equivs.c and
7280 lra-saves.c. Add lra-remat.c.
7281 * Makefile.in (OBJS): Add lra-remat.o.
7282 * lra-remat.c: New file.
7283 * lra.c: Add info about the rematerialization pass in the top
7285 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info):
7286 Process unallocatable regs too.
7287 (lra_constraint_new_insn_uid_start): Remove.
7288 (lra): Add code for calling rematerialization sub-pass.
7289 * lra-int.h (lra_constraint_new_insn_uid_start): Remove.
7290 (lra_constrain_insn, lra_remat): New prototypes.
7291 (lra_eliminate_regs_1): Add parameter.
7292 * lra-lives.c (make_hard_regno_born, make_hard_regno_dead):
7293 Process unallocatable hard regs too.
7294 (process_bb_lives): Ditto.
7295 * lra-spills.c (remove_pseudos): Add argument to
7296 lra_eliminate_regs_1 call.
7297 * lra-eliminations.c (lra_eliminate_regs_1): Add parameter. Use it
7298 for sp offset calculation.
7299 (lra_eliminate_regs): Add argument for lra_eliminate_regs_1 call.
7300 (eliminate_regs_in_insn): Add parameter. Use it for sp offset
7302 (process_insn_for_elimination): Add argument for
7303 eliminate_regs_in_insn call.
7304 * lra-constraints.c (get_equiv_with_elimination): Add argument
7305 for lra_eliminate_regs_1 call.
7306 (process_addr_reg): Add parameter. Use it.
7307 (process_address_1): Ditto. Add argument for process_addr_reg
7309 (process_address): Ditto.
7310 (curr_insn_transform): Add parameter. Use it. Add argument for
7311 process_address calls.
7312 (lra_constrain_insn): New function.
7313 (lra_constraints): Add argument for curr_insn_transform call.
7315 2014-11-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
7317 * opts-global.c (postpone_unknown_option_warning): Fix spelling.
7318 (print_ignored_options): Fix quoting.
7319 * opts.c (common_handle_option): Likewise.
7320 (set_debug_level): Likewise.
7321 * toplev.c (process_options): Likewise.
7323 2014-11-12 Jakub Jelinek <jakub@redhat.com>
7326 * ipa-pure-const.c (propagate_nothrow): Walk w->indirect_calls
7327 chain instead of node->indirect_calls. Put !can_throw into
7328 conditions of all the loops.
7330 2014-11-12 H.J. Lu <hongjiu.lu@intel.com>
7332 * config/i386/i386.c (x86_output_mi_thunk): Use gen_rtx_REG to
7333 set pic_offset_table_rtx.
7335 2014-11-12 Matthew Fortune <matthew.fortune@imgtec.com>
7337 * common/config/mips/mips-common.c (mips_handle_option): Ensure
7338 that -mfp32, -mfp64 disable -mfpxx and -mfpxx disables -mfp64.
7339 * config.gcc (--with-fp-32): New option.
7340 (--with-odd-spreg-32): Likewise.
7341 * config.in (HAVE_AS_DOT_MODULE): New config define.
7342 * config/mips/mips-protos.h
7343 (mips_secondary_memory_needed): New prototype.
7344 (mips_hard_regno_caller_save_mode): Likewise.
7345 * config/mips/mips.c (mips_get_reg_raw_mode): New static prototype.
7346 (mips_get_arg_info): Assert that V2SFmode is only handled specially
7347 with TARGET_PAIRED_SINGLE_FLOAT.
7348 (mips_return_mode_in_fpr_p): Likewise.
7349 (mips16_call_stub_mode_suffix): Likewise.
7350 (mips_get_reg_raw_mode): New static function.
7351 (mips_return_fpr_pair): O32 return values span two registers.
7352 (mips16_build_call_stub): Likewise.
7353 (mips_function_value_regno_p): Support both FP return registers.
7354 (mips_output_64bit_xfer): Use mthc1 whenever TARGET_HAS_MXHC1. Add
7355 specific cases for TARGET_FPXX to move via memory.
7356 (mips_dwarf_register_span): For TARGET_FPXX pretend that modes larger
7357 than UNITS_PER_FPREG 'span' one register.
7358 (mips_dwarf_frame_reg_mode): New static function.
7359 (mips_file_start): Switch to using .module instead of .gnu_attribute.
7360 No longer support FP ABI 4 (-mips32r2 -mfp64), replace with FP ABI 6.
7361 Add FP ABI 5 (-mfpxx) and FP ABI 7 (-mfp64 -mno-odd-spreg).
7362 (mips_save_reg, mips_restore_reg): Always represent DFmode frame
7363 slots with two CFI directives even for O32 FP64.
7364 (mips_for_each_saved_gpr_and_fpr): Account for fixed_regs when
7365 saving/restoring callee-saved registers.
7366 (mips_hard_regno_mode_ok_p): Implement O32 FP64A extension.
7367 (mips_secondary_memory_needed): New function.
7368 (mips_option_override): ABI check for TARGET_FLOATXX. Disable
7369 odd-numbered single-precision registers when using TARGET_FLOATXX.
7370 Implement -modd-spreg and defaults.
7371 (mips_conditional_register_usage): Redefine O32 FP64 to match O32 FP32
7372 callee-saved behaviour.
7373 (mips_hard_regno_caller_save_mode): Implement.
7374 (TARGET_GET_RAW_RESULT_MODE): Define target hook.
7375 (TARGET_GET_RAW_ARG_MODE): Define target hook.
7376 (TARGET_DWARF_FRAME_REG_MODE): Define target hook.
7377 * config/mips/mips.h (TARGET_FLOAT32): New macro.
7378 (TARGET_O32_FP64A_ABI): Likewise.
7379 (TARGET_CPU_CPP_BUILTINS): TARGET_FPXX is __mips_fpr==0. Add
7380 _MIPS_SPFPSET builtin define.
7381 (MIPS_FPXX_OPTION_SPEC): New macro.
7382 (OPTION_DEFAULT_SPECS): Pass through --with-fp-32=* to -mfp and
7383 --with-odd-spreg-32=* to -m[no-]odd-spreg.
7384 (ISA_HAS_ODD_SPREG): New macro.
7385 (ISA_HAS_MXHC1): True for anything other than -mfp32.
7386 (ASM_SPEC): Pass through mfpxx, mfp64, -mno-odd-spreg and -modd-spreg.
7387 (MIN_FPRS_PER_FMT): Redefine in terms of TARGET_ODD_SPREG.
7388 (HARD_REGNO_CALLER_SAVE_MODE): Define. Implement O32 FPXX extension
7389 (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
7390 (SECONDARY_MEMORY_NEEDED): Likewise.
7391 (FUNCTION_ARG_REGNO_P): Update for O32 FPXX and FP64 extensions.
7392 * config/mips/mips.md (define_attr enabled): Implement O32 FPXX and
7393 FP64A ABI extensions.
7394 (move_doubleword_fpr<mode>): Use ISA_HAS_MXHC1 instead of
7396 * config/mips/mips.opt (mfpxx): New target option.
7397 (modd-spreg): Likewise.
7398 * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Infer FP ABI from arch.
7399 * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise and remove
7401 * config/mips/t-mti-elf: Remove fp64 multilib.
7402 * config/mips/t-mti-linux: Likewise.
7403 * configure.ac: Detect .module support.
7404 * configure: Regenerate.
7405 * doc/invoke.texi: Document -mfpxx, -modd-spreg, -mno-odd-spreg option.
7406 * doc/install.texi (--with-fp-32, --with-odd-spreg-32): Document new
7409 2014-11-12 H.J. Lu <hongjiu.lu@intel.com>
7412 * config/i386/i386.c (ix86_init_large_pic_reg): New. Extracted
7414 (ix86_init_pic_reg): Here. Use ix86_init_large_pic_reg.
7415 (x86_output_mi_thunk): Set PIC register to %r11. Call
7416 ix86_init_large_pic_reg to initialize PIC register.
7418 2014-11-12 Kai Tietz <ktietz@redhat.com>
7420 * sdbout.c (sdbout_symbol): Eliminate register only
7421 if decl isn't a global variable.
7423 2014-11-12 Alan Lawrence <alan.lawrence@arm.com>
7425 * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Display indices.
7427 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add
7428 qualifier_lane_index.
7429 (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): Rename to...
7430 (aarch64_types_quadop_lane_qualifiers, TYPES_QUADOP_LANE): ...these.
7431 (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): New.
7433 (aarch64_types_getlane_qualifiers): Rename to...
7434 (aarch64_types_binop_imm_qualifiers): ...this.
7435 (TYPES_SHIFTIMM): Follow renaming.
7436 (TYPES_GETLANE): Rename to...
7437 (TYPE_GETREG): ...this.
7439 (aarch64_types_setlane_qualifiers): Rename to...
7440 (aarch64_type_ternop_imm_qualifiers): ...this.
7441 (TYPES_SHIFTINSERT, TYPES_SHIFTACC): Follow renaming.
7442 (TYPES_SETLANE): Follow renaming above, and rename self to...
7443 (TYPE_SETREG): ...this.
7445 (enum builtin_simd_arg): Add SIMD_ARG_LANE_INDEX.
7446 (aarch64_simd_expand_args): Add range check and endianness-flip.
7448 (aarch64_simd_expand_builtin): Add mapping for qualifier_lane_index.
7450 * config/aarch64/aarch64-simd.md
7451 (aarch64_sq<r>dmulh_lane<mode>_internal *2): Rename to...
7452 (aarch64_sq<r>dmulh_lane<mode>): ...this, and remove lane bounds check.
7453 (aarch64_sqdmulh_lane<mode> *2, aarch64_sqrdmulh_lane<mode> *2): Delete.
7455 (aarch64_sq<r>dmulh_laneq<mode>_internal): Rename to...
7456 (aarch64_sq<r>dmulh_lane<mode>): ...this.
7458 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal *2): Rename to...
7459 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): ...this.
7461 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal *2): Rename to...
7462 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): ...this.
7464 (aarch64_sqdmull_lane<mode>_internal *2): Rename to...
7465 (aarch64_sqdmull_lane<mode>): ...this.
7467 (aarch64_sqdmull_laneq<mode>_internal *2): Rename to...
7468 (aarch64_sqdmull_laneq<mode>): ...this.
7470 (aarch64_sqdmulh_laneq<mode>, aarch64_sqrdmulh_laneq<mode>,
7471 (aarch64_sqdmlal_lane<mode>, aarch64_sqdmlal_laneq<mode>,
7472 aarch64_sqdmlsl_lane<mode>, aarch64_sqdmlsl_laneq<mode>,
7473 aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Delete.
7475 (aarch64_sqdmlal2_lane<mode>, aarch64_sqdmlal2_laneq<mode>,
7476 aarch64_sqdmlsl2_lane<mode>, aarch64_sqdmlsl2_laneq<mode>,
7477 aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>): Remove
7478 bounds check and lane flip.
7480 * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane,
7481 get_dregoi, get_dregci, getdregxi, get_qregoi,get_qregci, get_qregxi,
7482 set_qregoi, set_qregci, set_qregxi): Change qualifiers to GETREG.
7484 (sqdmlal_lane, sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq,
7485 sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq, sqdmlsl2_laneq): Follow
7486 renaming of TERNOP_LANE to QUADOP_LANE.
7488 (sqdmull_lane, sqdmull_laneq, sqdmull2_lane, sqdmull2_laneq,
7489 sqdmulh_lane, sqdmulh_laneq, sqrdmulh_lane, sqrdmulh_laneq): Set
7490 qualifiers to TERNOP_LANE.
7492 2014-11-12 Tobias Burnus <burnus@net-b.de>
7494 * Makefile.in (CLOOGLIBS, CLOOGINC): Remove.
7495 * configure.ac: Ditto.
7496 * graphite-interchange.c: Remove HAVE_CLOOG block.
7497 * config.in: Regenerate.
7498 * configure: Regenerate.
7500 2014-11-12 Jiong Wang <jiong.wang@arm.com>
7502 * config/aarch64/aarch64.h (CALL_USED_REGISTERS): Mark LR as
7504 (EPILOGUE_USES): Guard the check by epilogue_completed.
7505 * config/aarch64/aarch64.c (aarch64_layout_frame): Explictly check for
7507 (aarch64_can_eliminate): Check LR_REGNUM liveness.
7509 2014-11-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7511 * config/arm/arm.c (*<arith_shift_insn>_shiftsi): Fix typo.
7513 2014-11-12 Marek Polacek <polacek@redhat.com>
7515 * fold-const.c (fold_binary_loc): Don't fold if the result
7517 * match.pd (A + (-B) -> A - B, A - (-B) -> A + B,
7518 -(-A) -> A): Likewise.
7520 2014-11-12 Richard Biener <rguenther@suse.de>
7522 Merge from match-and-simplify branch
7523 2014-11-04 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
7525 * genmatch.c (user_id): Add new member is_oper_list.
7526 (user_id::user_id): Add new default argument.
7527 (parser::parse_operator_list): New function.
7528 (parser::parse_for): Allow operator-list.
7529 (parser::parse_pattern): Call parser::parse_operator_list.
7530 (parser::parse_operation): Reject operator-list.
7531 * match-builtin.pd: Define operator lists POWs, CBRTs and SQRTs.
7533 2014-10-31 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
7535 * genmatch.c (parser::parse_c_expr): Mark user-defined ops as used.
7537 2014-10-30 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
7539 * genmatch.c (parser::parse_op): Check if predicate is used in
7542 2014-10-29 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
7544 * genmatch.c (parser::parse_for): Make sure to have a valid
7545 token to report errors at.
7547 2014-10-28 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
7549 * genmatch.c (parser): Add new member parsing_match_operand.
7550 (parser::parse_operation): Check for conditional convert in result
7552 (parser::parse_expr): Check for commutative operator in result operand.
7553 Check for :type in match operand.
7554 (parser::parse_simplify): Set/unset parsing_match_operand.
7555 (parser::parser): Initialize parsing_match_operand.
7557 2014-10-28 Richard Biener <rguenther@suse.de>
7559 * genmatch.c (parser::parse_for): Properly check for already
7562 2014-10-28 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
7564 * genmatch.c (error_cb): Adjust for printing warnings.
7565 (warning_at): New function.
7566 (user_id): Add new member used.
7567 (get_operator): Mark user_id as used.
7568 (parse_for): Warn for unused operators.
7570 2014-11-12 Richard Biener <rguenther@suse.de>
7572 * match.pd: Implement simple complex operations cancelling.
7573 * fold-const.c (fold_unary_loc): Remove them here.
7575 2014-11-12 Joseph Myers <joseph@codesourcery.com>
7577 * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
7578 Define __NO_MATH_ERRNO__ if -fno-math-errno.
7579 * doc/cpp.texi (__NO_MATH_ERRNO__): Document predefined macro.
7581 2014-11-12 Richard Biener <rguenther@suse.de>
7583 * genmatch.c (::gen_transform): Add capture_info and
7584 expand_compares arguments.
7585 (struct expr): Add is_generic flag.
7586 (lower_cond): New functions lowering [VEC_]COND_EXPR
7587 conditions to a GENERIC and a GIMPLE variant.
7588 (lower): Call lower_cond.
7589 (cmp_operand): Also compare the is_generic flag.
7590 (capture_info::cinfo): Add cond_expr_cond_p flag.
7591 (capture_info::capture_info): Pass down whether the
7592 expression argument is a COND_EXPR condition.
7593 (capture_info::walk_match): Likewise, mark captures
7594 capturing COND_EXPR conditions with cond_expr_cond_p.
7595 (expr::gen_transform): Pass down whether we need to
7596 expand compares from COND_EXPR conditions.
7597 (capture::gen_transform): Expand compares substituted
7598 from COND_EXPR conditions into non-COND_EXPR conditions.
7599 (dt_operand::gen_gimple_expr): Handle explicitely marked
7600 GENERIC expressions as generic.
7601 (dt_simplify::gen): Pass whether we need to expand
7602 conditions to gen_transform. Handle capture results
7603 which are from COND_EXPR conditions.
7604 (main): Pass gimple flag down to lower.
7606 2014-11-12 Jakub Jelinek <jakub@redhat.com>
7609 * builtin-attrs.def (ATTR_NOTHROW_TYPEGENERIC_LEAF): New attribute.
7610 * builtins.c (fold_builtin_arith_overflow): New function.
7611 (fold_builtin_3): Use it.
7612 * builtins.def (BUILT_IN_ADD_OVERFLOW, BUILT_IN_SUB_OVERFLOW,
7613 BUILT_IN_MUL_OVERFLOW, BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW,
7614 BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW,
7615 BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW,
7616 BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW,
7617 BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADDL_OVERFLOW,
7618 BUILT_IN_UADDLL_OVERFLOW, BUILT_IN_USUB_OVERFLOW,
7619 BUILT_IN_USUBL_OVERFLOW, BUILT_IN_USUBLL_OVERFLOW,
7620 BUILT_IN_UMUL_OVERFLOW, BUILT_IN_UMULL_OVERFLOW,
7621 BUILT_IN_UMULLL_OVERFLOW): New built-in functions.
7622 * builtin-types.def (BT_PTR_UINT, BT_PTR_ULONG, BT_PTR_LONGLONG,
7623 BT_FN_BOOL_INT_INT_INTPTR, BT_FN_BOOL_LONG_LONG_LONGPTR,
7624 BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, BT_FN_BOOL_UINT_UINT_UINTPTR,
7625 BT_FN_BOOL_ULONG_ULONG_ULONGPTR,
7626 BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, BT_FN_BOOL_VAR): New.
7627 * expr.c (write_complex_part): Remove prototype, no longer static.
7628 * expr.h (write_complex_part): New prototype.
7629 * function.c (aggregate_value_p): For internal functions return 0.
7630 * gimple-fold.c (arith_overflowed_p): New functions.
7631 (gimple_fold_call): Fold {ADD,SUB,MUL}_OVERFLOW internal calls.
7632 * gimple-fold.h (arith_overflowed_p): New prototype.
7633 * tree-ssa-dce.c: Include tree-ssa-propagate.h and gimple-fold.h.
7634 (find_non_realpart_uses, maybe_optimize_arith_overflow): New
7636 (eliminate_unnecessary_stmts): Transform {ADD,SUB,MUL}_OVERFLOW
7637 into COMPLEX_CST/COMPLEX_EXPR if IMAGPART_EXPR of the result is
7639 * gimplify.c (gimplify_call_expr): Handle gimplification of
7640 internal calls with lhs.
7641 * internal-fn.c (get_range_pos_neg, get_min_precision,
7642 expand_arith_overflow_result_store): New functions.
7643 (ubsan_expand_si_overflow_addsub_check): Renamed to ...
7644 (expand_addsub_overflow): ... this. Add LOC, LHS, ARG0, ARG1,
7645 UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
7646 Handle ADD_OVERFLOW and SUB_OVERFLOW expansion.
7647 (ubsan_expand_si_overflow_neg_check): Renamed to ...
7648 (expand_neg_overflow): ... this. Add LOC, LHS, ARG1, IS_UBSAN
7649 arguments, remove STMT argument. Handle SUB_OVERFLOW with
7650 0 as first argument expansion.
7651 (ubsan_expand_si_overflow_mul_check): Renamed to ...
7652 (expand_mul_overflow): ... this. Add LOC, LHS, ARG0, ARG1,
7653 UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
7654 Handle MUL_OVERFLOW expansion.
7655 (expand_UBSAN_CHECK_ADD): Use expand_addsub_overflow, prepare
7657 (expand_UBSAN_CHECK_SUB): Use expand_addsub_overflow or
7658 expand_neg_overflow, prepare arguments for it.
7659 (expand_UBSAN_CHECK_MUL): Use expand_mul_overflow, prepare arguments
7661 (expand_arith_overflow, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW,
7662 expand_MUL_OVERFLOW): New functions.
7663 * internal-fn.def (ADD_OVERFLOW, SUB_OVERFLOW, MUL_OVERFLOW): New
7665 * tree-vrp.c (check_for_binary_op_overflow): New function.
7666 (extract_range_basic): Handle {REAL,IMAG}PART_EXPR if the operand
7667 is SSA_NAME set by {ADD,SUB,MUL}_OVERFLOW internal functions.
7668 (simplify_internal_call_using_ranges): Handle {ADD,SUB,MUL}_OVERFLOW
7670 * optabs.def (umulv4_optab): New optab.
7671 * config/i386/i386.md (umulv<mode>4, <u>mulvqi4): New define_expands.
7672 (*umulv<mode>4, *<u>mulvqi4): New define_insns.
7673 * doc/extend.texi (Integer Overflow Builtins): Document
7674 __builtin_*_overflow.
7676 2014-11-12 Richard Biener <rguenther@suse.de>
7678 * genmatch.c (capture_info::capture_info): Add missing
7680 (capture_info::walk_match): Fix COND_EXPR handling.
7681 (capture_info::walk_result): Likewise.
7683 2014-11-12 Richard Biener <rguenther@suse.de>
7686 * match.pd: Add missing conversion to the -(T)-X pattern.
7688 2014-11-12 Richard Biener <rguenther@suse.de>
7691 * hash-table.h: Include ggc.h also for generator programs.
7692 * genmatch.c (ggc_internal_cleared_alloc): Properly define
7693 using MEM_STAT_DECL instead of CXX_MEM_STAT_INFO.
7695 2014-11-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
7697 PR tree-optimization/63761
7698 * tree-ssa-math-opts.c (bswap_replace): Construct gsi from cur_stmt
7699 rather than taking it as a parameter. Add some comments to explain the
7700 gsi_move_before in case of load and why canonicalization of bswap into
7701 a rotation is only done for 16bit values.
7702 (pass_optimize_bswap::execute): Adapt for loop via gsi to make gsi
7703 refer to the statement just before cur_stmt. Ignore 16bit bswap that
7704 are already in canonical form. Adapt bswap_replace to removal of its
7707 2014-11-12 Richard Sandiford <richard.sandiford@arm.com>
7709 * rtl.h (rtx_function, for_each_rtx, for_each_rtx_in_insn): Delete.
7710 * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1, for_each_rtx):
7711 (for_each_rtx_in_insn): Delete.
7712 (init_rtlanal): Remove initialization of non_rtx_starting_operands.
7713 * df-core.c: Remove reference to for_each_rtx in comment.
7715 2014-11-12 Tejas Belagod <tejas.belagod@arm.com>
7717 * Makefile.in (TEXI_GCC_FILES): Remove arm-acle-intrinsics.texi,
7718 arm-neon-intrinsics.texi, aarch64-acle-intrinsics.texi.
7719 * doc/aarch64-acle-intrinsics.texi: Remove.
7720 * doc/arm-acle-intrinsics.texi: Remove.
7721 * doc/arm-neon-intrinsics.texi: Remove.
7722 * doc/extend.texi: Consolidate sections AArch64 intrinsics,
7723 ARM NEON Intrinsics, ARM ACLE Intrinsics into one ARM C Language
7724 Extension section. Add references to public ACLE specification.
7726 2014-11-11 Patrick Palka <ppalka@gcc.gnu.org>
7728 * tree-vrp.c (register_edge_assert_for_2): Change return type to
7729 void and adjust accordingly.
7730 (register_edge_assert_for_1): Likewise.
7731 (register_edge_assert_for): Likewise.
7732 (find_conditional_asserts): Likewise.
7733 (find_switch_asserts): Likewise.
7734 (find_assert_locations_1): Likewise.
7735 (find_assert_locations): Likewise.
7736 (insert_range_insertions): Inspect the need_assert_for bitmap.
7738 2014-11-11 Andrew Pinski <apinski@cavium.com>
7741 * config.gcc (aarch64*-*-*): Set target_gtfiles to include
7743 * config/aarch64/aarch64-builtins.c: Include gt-aarch64-builtins.h
7744 at the end of the file.
7746 2014-11-11 Anthony Brandon <anthony.brandon@gmail.com>
7747 Manuel López-Ibáñez <manu@gcc.gnu.org>
7750 * diagnostic-core.h: Add prototype for fatal_error.
7751 * diagnostic.c (fatal_error): New function fatal_error.
7752 * gcc.c (store_arg): Remove have_o_argbuf_index.
7753 (process_command): Check if input and output files are the same.
7754 * toplev.c (init_asm_output): Check if input and output files are
7757 2014-11-11 Eric Botcazou <ebotcazou@adacore.com>
7759 * reorg.c (fill_slots_from_thread): Do not copy frame-related insns.
7761 2014-11-11 Eric Botcazou <ebotcazou@adacore.com>
7764 * config/sparc/sparc.c (function_arg_vector_value): Deal with vectors
7765 smaller than 8 bytes.
7766 (sparc_function_arg_1): Tweak.
7767 (sparc_function_value_1): Tweak.
7769 2014-11-11 David Malcolm <dmalcolm@redhat.com>
7771 * ChangeLog.jit: New.
7772 * Makefile.in (doc_build_sys): New variable, set to "sphinx" if
7773 sphinx is installed, falling back to "texinfo" otherwise.
7774 (FULL_DRIVER_NAME): New variable, adapted from the
7775 install-driver target. New target, a symlink within the builddir,
7776 linked to "xgcc", for use when running the JIT library from the
7778 (MOSTLYCLEANFILES): Add FULL_DRIVER_NAME.
7779 (install-driver): Use $(FULL_DRIVER_NAME) rather than spelling it
7781 * configure.ac (doc_build_sys): New variable, set to "sphinx" if
7782 sphinx is installed, falling back to "texinfo" otherwise.
7783 (GCC_DRIVER_NAME): Generate a gcc-driver-name.h file containing
7784 GCC_DRIVER_NAME for the benefit of jit/internal-api.c.
7785 * configure: Regenerate.
7786 * doc/install.texi (--enable-host-shared): Specify that this is
7787 required when building libgccjit.
7788 (Tools/packages necessary for modifying GCC): Add Sphinx.
7789 * timevar.def (TV_JIT_REPLAY): New.
7794 2014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
7797 * configure: Regenerate.
7799 2014-11-11 James Greenhalgh <james.greenhalgh@arm.com>
7801 * config/aarch64/aarch64-simd.md
7802 (aarch64_simd_bsl<mode>_internal): Remove float cases, canonicalize.
7803 (aarch64_simd_bsl<mode>): Add gen_lowpart expressions where we
7804 are punning between float vectors and integer vectors.
7806 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
7808 * config/alpha/alpha.c (alpha_emit_conditional_branch): Replace
7809 open-coded swap with std::swap to swap values.
7810 (alpha_emit_setcc): Ditto.
7811 (alpha_emit_conditional_move): Ditto.
7812 (alpha_split_tmode_pair): Ditto.
7814 2014-11-11 Evgeny Stupachenko <evstupac@gmail.com>
7816 * tree-vect-data-refs.c (vect_shift_permute_load_chain): Extend shift
7817 permutations on power of 2 cases.
7819 2014-11-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7821 * config/aarch64/aarch64.h (MACHMODE): Remove 'enum' keyword.
7822 (CUMULATIVE_ARGS): Guard on !defined(USED_FOR_TARGET).
7824 2014-11-11 Richard Biener <rguenther@suse.de>
7826 * tree-core.h (pedantic_lvalues): Remove.
7827 * fold-const.c (pedantic_lvalues): Likewise.
7828 (pedantic_non_lvalue_loc): Remove conditional non_lvalue_loc call.
7830 2014-11-11 Martin Liska <mliska@suse.cz>
7834 * ipa-icf.c (sem_function::merge): Add new target symbol alias
7836 (sem_variable::merge): Likewise.
7837 * ipa-icf.h (target_supports_symbol_aliases_p): New function.
7839 2014-11-11 Richard Biener <rguenther@suse.de>
7841 * match.pd: Implement patterns from associate_plusminus
7842 and factor in differences from the fold-const.c implementation.
7843 * fold-const.c (fold_binary_loc): Remove patterns here.
7844 * tree-ssa-forwprop.c (associate_plusminus): Remove.
7845 (pass_forwprop::execute): Don't call it.
7846 * tree.c (tree_nop_conversion_p): New function, factored
7847 from tree_nop_conversion.
7848 * tree.h (tree_nop_conversion_p): Declare.
7850 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
7852 * system.h: Include algorithm and utility.
7853 * rtl.h: Do not include utility here.
7854 * wide-int.h: Ditto.
7855 * tree-vect-data-refs.c (swap): Remove template.
7856 (vect_prune_runtime_alias_test_list): Use std::swap instead of swap.
7858 2014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
7862 * system.h: Include <string> before "safe-ctype.h"
7863 * wide-int.h (wi::smin, wi::smax, wi::umin, wi::umax): Prefix
7864 calls to min/max with wi namespace.
7865 * ipa-chkp.c: Don't include <string>.
7867 2014-11-11 Terry Guo <terry.guo@arm.com>
7869 * doc/invoke.texi (-masm-syntax-unified): Reword and fix typo.
7870 * config/arm/thumb1.md (*thumb_mulsi3): Use movs to move low
7872 (*thumb1_movhf): Likewise.
7874 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
7876 * sreal.c (sreal::to_int): Use INTTYPE_MAXIMUM (int64_t)
7877 instead of INT64_MAX.
7879 2014-11-11 Tobias Burnus <burnus@net-b.de>
7881 * doc/install.texi (Prerequisites): Remove CLooG.
7883 2014-11-10 Trevor Saunders <tsaunders@mozilla.com>
7885 * ipa-inline.c (edge_badness): Adjust.
7886 (inline_small_functions): Likewise.
7887 * predict.c (propagate_freq): Likewise.
7888 (estimate_bb_frequencies): Likewise.
7889 * sreal.c (sreal::dump): Rename from dump_sreal.
7891 (copy): Remove function.
7892 (sreal::shift_right): Rename from sreal_sift_right.
7893 (sreal::normalize): Rename from normalize.
7894 (sreal_init): Remove function.
7895 (sreal::to_int): Rename from sreal_to_int.
7896 (sreal_compare): Remove function.
7897 (sreal::operator+): Rename from sreal_add.
7898 (sreal::operator-): Rename from sreal_sub.
7899 (sreal::operator*): Rename from sreal_mul.
7900 (sreal::operator/): Rename from sreal_div.
7901 * sreal.h (class sreal): Adjust.
7902 (inline sreal &operator+=): New operator.
7903 (inline sreal &operator-=): Likewise.
7904 (inline sreal &operator/=): Likewise.
7905 (inline sreal &operator*=): Likewise.
7906 (inline bool operator!=): Likewise.
7907 (inline bool operator>): Likewise.
7908 (inline bool operator<=): Likewise.
7909 (inline bool operator>=): Likewise.
7911 2014-11-11 Bin Cheng <bin.cheng@arm.com>
7913 * sched-deps.c (sched_analyze_1): Check pending list if it is not
7914 less than MAX_PENDING_LIST_LENGTH.
7915 (sched_analyze_2, sched_analyze_insn, deps_analyze_insn): Ditto.
7917 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
7919 * config/i386/i386.c (ix86_decompose_address): Replace open-coded
7920 swap with std::swap to swap values.
7921 (ix86_fixup_binary_operands): Ditto.
7922 (ix86_binary_operator_ok): Ditto.
7923 (ix86_prepare_fp_compare_args): Ditto.
7924 (ix86_expand_branch): Ditto.
7925 (ix86_expand_carry_flag_compare): Ditto.
7926 (ix86_expand_int_movcc): Ditto.
7927 (ix86_prepare_sse_fp_compare_args): Ditto.
7928 (ix86_expand_sse_fp_minmax): Ditto.
7929 (ix86_expand_int_vcond): Ditto.
7930 (ix86_split_long_move): Ditto.
7931 (ix86_expand_sse_comi): Ditto.
7932 (ix86_expand_sse_compare_and_jump): Ditto.
7933 (ix86_expand_sse_compare_mask): Ditto.
7934 * config/i386/i386.md (*add<mode>_1): Ditto.
7935 (addsi_1_zext): Ditto.
7938 (*add<mode>_2): Ditto.
7939 (*addsi_2_zext): Ditto.
7940 (*add<mode>_3): Ditto.
7941 (*addsi_3_zext): Ditto.
7942 (*add<mode>_5): Ditto.
7943 (absneg splitter): Ditto.
7945 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
7948 2014-10-31 Uros Bizjak <ubizjak@gmail.com>
7951 * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
7952 * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
7953 * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
7954 be reloaded through memory.
7958 2014-11-11 Jakub Jelinek <jakub@redhat.com>
7959 Martin Liska <mliska@suse.cz>
7961 * ipa-icf-gimple.c (func_checker::compare_bb): Fix comment typo.
7962 (func_checker::compare_gimple_call): Compare gimple_call_fn,
7963 gimple_call_chain, gimple_call_fntype and call flags.
7965 2014-11-10 Vladimir Makarov <vmakarov@redhat.com>
7967 PR rtl-optimization/63620
7968 PR rtl-optimization/63799
7969 * lra-lives.c (process_bb_lives): Do not delete EH_REGION, trapped
7970 and setting PIC pseudo insns.
7971 (lra_create_live_ranges): Fix the typo.
7973 2014-11-10 Patrick Palka <ppalka@gcc.gnu.org>
7976 * tree-ssa-propagate.c (may_propagate_copy): Allow propagating
7977 SSA copies whose source and destination names both occur in
7980 2014-11-10 Roman Gareev <gareevroman@gmail.com>
7982 * Makefile.in: Remove the compilation of graphite-clast-to-gimple.o.
7983 * common.opt: Remove using of fgraphite-code-generator flag.
7984 * flag-types.h: Likewise.
7985 * graphite.c: Remove using of CLooG.
7986 * graphite-blocking.c: Likewise.
7987 * graphite-dependences.c: Likewise.
7988 * graphite-poly.c: Likewise.
7989 * graphite-poly.h: Likewise.
7990 * graphite-scop-detection.c: Likewise.
7991 * graphite-sese-to-poly.c: Likewise.
7992 * graphite-clast-to-gimple.c: Removed.
7993 * graphite-clast-to-gimple.h: Likewise.
7994 * graphite-htab.h: Likewise.
7996 2014-11-10 Paolo Carlini <paolo.carlini@oracle.com>
7998 * doc/invoke.texi ([-Wshift-count-negative, -Wshift-count-overflow]):
8001 2014-11-10 Richard Sandiford <richard.sandiford@arm.com>
8003 * config/frv/frv.c (frv_io_handle_use_1): Delete.
8004 (frv_io_handle_use): Use find_all_hard_regs.
8006 2014-11-10 Richard Sandiford <richard.sandiford@arm.com>
8008 * config/frv/frv.c (frv_registers_conflict_p_1): Take an rtx rather
8009 than an rtx *. Take the regstate_t directly rather than via a void *.
8010 Return a bool rather than an int. Iterate over all subrtxes here.
8011 (frv_registers_conflict_p): Update accordingly.
8013 2014-11-10 Richard Sandiford <richard.sandiford@arm.com>
8015 * config/frv/frv.c: Include rtl-iter.h.
8016 (frv_acc_group_1): Delete.
8017 (frv_acc_group): Use FOR_EACH_SUBRTX.
8019 2014-11-10 Richard Sandiford <richard.sandiford@arm.com>
8021 * config/frv/frv.c: Move include of rtl.h after hard-reg-set.h.
8022 (frv_clear_registers_used): Delete.
8023 (frv_ifcvt_modify_tests): Use find_all_hard_regs.
8025 2014-11-10 Jan Hubicka <hubicka@ucw.cz>
8028 * calls.c (initialize_argument_information): When emitting thunk call
8029 use original memory placement of the argument.
8031 2014-11-10 Renlin Li <renlin.li@arm.com>
8034 * tree-ssa-threadupdate.c (compute_path_counts): Bound path_in_freq.
8036 2014-11-10 Thomas Preud'homme <thomas.preudhomme@arm.com>
8038 * expmed.c (expand_shift_1): Expand 8 bit rotate of 16 bit value to
8039 bswaphi if available.
8041 2014-11-10 Bernd Schmidt <bernds@codesourcery.com>
8043 * config/nvptx/nvptx.c: New file.
8044 * config/nvptx/nvptx.h: New file.
8045 * config/nvptx/nvptx-protos.h: New file.
8046 * config/nvptx/nvptx.md: New file.
8047 * config/nvptx/t-nvptx: New file.
8048 * config/nvptx/nvptx.opt: New file.
8049 * common/config/nvptx/nvptx-common.c: New file.
8050 * config.gcc: Handle nvptx-*-*.
8052 2014-11-10 Richard Biener <rguenther@suse.de>
8054 * tree-ssa-operands.c (finalize_ssa_uses): Properly put
8055 released operands on the free list.
8057 2014-11-10 Richard Biener <rguenther@suse.de>
8059 * match.pd: Implement pattern from simplify_mult.
8060 * tree-ssa-forwprop.c (simplify_mult): Remove.
8061 (pass_forwprop::execute): Do not call simplify_mult.
8063 2014-11-10 Richard Biener <rguenther@suse.de>
8065 PR tree-optimization/63800
8066 * tree-ssa-pre.c (eliminate_push_avail): Push in a way so
8067 we can restore the previous availability in after_dom_children.
8068 (eliminate_dom_walker::after_dom_children): Restore
8069 previous availability.
8071 2014-11-10 Richard Biener <rguenther@suse.de>
8074 * expr.c (expand_expr_real_2): When expanding FMA_EXPRs
8075 properly treat the embedded multiplication as commutative
8076 when looking for feeding negates.
8078 2014-11-10 Joern Rennecke <joern.rennecke@embecosm.com>
8080 * config/avr/avr.h (CPLUSPLUS_CPP_SPEC): Define.
8082 2014-11-10 Martin Liska <mliska@suse.cz>
8084 * gcc.dg/tree-ssa/ldist-19.c: ICF is disabled
8085 for the test because of default char signedness
8086 on powerpc64 target.
8088 2014-11-10 Richard Biener <rguenther@suse.de>
8090 * match.pd: Implement pattern from simplify_conversion_from_bitmask.
8091 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): Remove.
8092 (pass_forwprop::execute): Do not call simplify_conversion_from_bitmask.
8094 2014-11-10 Richard Biener <rguenther@suse.de>
8096 * match.pd: Move rest of the conversion combining patterns
8097 from tree-ssa-forwprop.c.
8098 * tree-ssa-forwprop.c (combine_conversions): Remove.
8099 (pass_forwprop::execute): Do not call it.
8101 2014-11-10 Eric Botcazou <ebotcazou@adacore.com>
8103 * gimple-low.c (lower_function_body): Clear the location of the first
8104 inserted representative return if it also fills in for the fallthru.
8106 2014-11-10 Yuri Rumyantsev <ysrumyan@gmail.com>
8108 * tree-if-conv.c (add_to_predicate_list): Check unconditionally
8109 that bb is always executed to early exit. Use predicate of
8110 cd-equivalent block for join blocks if it exists.
8111 (if_convertible_loop_p_1): Recompute POST_DOMINATOR tree.
8112 (tree_if_conversion): Free post-dominance information.
8114 2014-11-09 Jason Merrill <jason@redhat.com>
8116 * config/i386/avx512vldqintrin.h (_mm256_broadcast_f32x2): __mmask8.
8117 * config/i386/avx512vlintrin.h (_mm256_mask_cvtepi32_storeu_epi16)
8118 (_mm_mask_cvtusepi32_storeu_epi16)
8119 (_mm_mask_cvtsepi64_storeu_epi32): Return void.
8121 2014-11-09 Joern Rennecke <joern.rennecke@embecosm.com>
8123 * config/avr/predicates.md (low_io_address_operand): Fix typo.
8125 2014-11-09 Vladimir Makarov <vmakarov@redhat.com>
8127 PR rtl-optimization/63620
8128 * lra-constraints.c (substitute_pseudo): Add prefix lra_ to the
8129 name. Move to lra.c. Make it external.
8130 (substitute_pseudo_within_insn): Ditto.
8131 (inherit_reload_reg, split_reg, remove_inheritance_pseudos): Use
8133 (undo_optional_reloads): Ditto.
8134 * lra-int.h (lra_dump_bitmap_with_title, lra_substitute_pseudo):
8136 (lra_substitute_pseudo_within_insn): Ditto.
8137 * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): New.
8138 (mark_regno_live): Add parameter. Update bb_gen_pseudos.
8139 (mark_regno_dead): Add parameter. Update bb_gen_pseudos and
8141 (struct bb_data, bb_data_t, bb_data): New.
8142 (get_bb_data, get_bb_data_by_index): Ditto.
8143 (all_hard_regs_bitmap): New.
8144 (live_trans_fun, live_con_fun_0, live_con_fun_n, all_blocks): New.
8145 (initiate_live_solver, finish_live_solver): New.
8146 (process_bb_lives): Change return type. Add code updating local
8147 live data and removing dead insns. Pass new argument to
8148 mark_regno_live and mark_regno_dead. Check changing bb pseudo
8149 life info. Return the result.
8150 (lra_create_live_ranges): Add code to do global pseudo live
8152 (lra_live_ranges_init): Call initiate_live_solver.
8153 (lra_live_ranges_finish): Call finish_live_solver.
8154 * lra.c (lra_dump_bitmap_with_title): New.
8155 (lra_substitute_pseudo, lra_substitute_pseudo_within_insn): Move
8156 from lra-constraints.c.
8158 2014-11-09 Richard Biener <rguenther@suse.de>
8160 * match.pd: Add patterns convering two conversions in a row
8162 * fold-const.c (fold_unary_loc): Remove them here.
8163 * tree-ssa-forwprop.c (combine_conversions): Likewise.
8164 * genmatch.c (dt_node::gen_kids): Check whether we may
8165 follow SSA use-def chains.
8167 2014-11-08 Richard Sandiford <richard.sandiford@arm.com>
8169 * config/aarch64/aarch64.c: Include rtl-iter.h.
8170 (aarch64_tls_operand_p_1): Delete.
8171 (aarch64_tls_operand_p): Use FOR_EACH_SUBRTX.
8173 2014-11-08 Richard Sandiford <richard.sandiford@arm.com>
8175 * config/arm/arm.c (arm_note_pic_base): Delete.
8176 (arm_cannot_copy_insn_p): Use FOR_EACH_SUBRTX.
8178 2014-11-08 Richard Sandiford <richard.sandiford@arm.com>
8180 * config/arm/arm.c: Include rtl-iter.h.
8181 (arm_tls_referenced_p_1): Delete.
8182 (arm_tls_referenced_p): Use FOR_EACH_SUBRTX.
8184 2014-11-08 Richard Sandiford <richard.sandiford@arm.com>
8186 * config/arm/aarch-common.c: Include rtl-iter.h.
8187 (search_term, arm_find_sub_rtx_with_search_term): Delete.
8188 (arm_find_sub_rtx_with_code): Use FOR_EACH_SUBRTX_VAR.
8189 (arm_get_set_operands): Pass the insn pattern rather than the
8191 (arm_no_early_store_addr_dep): Likewise.
8193 2014-11-08 Eric Botcazou <ebotcazou@adacore.com>
8195 * config/arm/arm.c (arm_set_return_address): Mark the store as frame
8197 (thumb_set_return_address): Likewise.
8199 2014-11-07 Jeff Law <law@redhat.com>
8201 PR tree-optimization/61515
8202 * tree-ssa-threadedge.c (invalidate_equivalences): Walk the unwinding
8203 stack rather than looking at every SSA_NAME's value.
8205 2014-11-07 Richard Biener <rguenther@suse.de>
8207 PR tree-optimization/63605
8208 * fold-const.c (fold_binary_loc): Properly use element_precision
8209 for types that may not be scalar.
8211 2014-11-07 Evgeny Stupachenko <evstupac@gmail.com>
8214 * config/i386/i386.md (builtin_setjmp_receiver): Use
8215 pic_offset_table_rtx for PIC register.
8216 (nonlocal_goto_receiver): Delete.
8218 2014-11-07 Daniel Hellstrom <daniel@gaisler.com>
8220 * config.gcc (sparc-*-rtems*): Clean away unused t-elf.
8221 * config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs.
8223 2014-11-07 Martin Liska <mliska@suse.cz>
8226 * cgraphunit.c (cgraph_node::create_wrapper):
8227 TREE_ADDRESSABLE is set to false for a newly created thunk.
8229 2014-11-07 Martin Liska <mliska@suse.cz>
8232 * ipa-icf-gimple.c (func_checker::compare_gimple_switch):
8233 Missing checking for CASE_LOW and CASE_HIGH added.
8235 2014-11-07 Martin Liska <mliska@suse.cz>
8238 * cgraphunit.c (cgraph_node::expand_thunk): DECL_BY_REFERENCE
8239 is correctly handled for thunks created by IPA ICF.
8241 2014-11-07 Jiong Wang <jiong.wang@arm.com>
8242 2014-11-07 Richard Biener <rguenther@suse.de>
8244 PR tree-optimization/63676
8245 * gimple-fold.c (fold_gimple_assign): Do not fold node when
8246 TREE_CLOBBER_P be true.
8248 2014-11-07 Richard Biener <rguenther@suse.de>
8251 * match.pd: Guard conflicting GENERIC pattern properly.
8253 2014-11-07 Richard Biener <rguenther@suse.de>
8255 * match.pd: Add patterns for POINTER_PLUS_EXPR association
8256 and special patterns from tree-ssa-forwprop.c
8257 * fold-const.c (fold_binary_loc): Remove them here.
8258 * tree-ssa-forwprop.c (to_purge): New global bitmap.
8259 (fwprop_set_lattice_val): New function.
8260 (fwprop_invalidate_lattice): Likewise.
8261 (remove_prop_source_from_use): Instead of purging dead EH
8262 edges record blocks to do that in to_purge.
8263 (tidy_after_forward_propagate_addr): Likewise.
8264 (forward_propagate_addr_expr): Invalidate the lattice for
8265 SSA names we release.
8266 (simplify_conversion_from_bitmask): Likewise.
8267 (simplify_builtin_call): Likewise.
8268 (associate_pointerplus_align): Remove.
8269 (associate_pointerplus_diff): Likewise.
8270 (associate_pointerplus): Likewise.
8271 (fold_all_stmts): Merge with ...
8272 (pass_forwprop::execute): ... the original loop over all
8273 basic-blocks. Delay purging dead EH edges and invalidate
8274 the lattice for SSA names we release.
8276 2014-11-07 Terry Guo <terry.guo@arm.com>
8278 * config/arm/arm.opt (masm-syntax-unified): New option.
8279 * doc/invoke.texi (-masm-syntax-unified): Document new option.
8280 * config/arm/arm.h (TARGET_UNIFIED_ASM): Also include thumb1.
8281 (ASM_APP_ON): Redefined.
8282 * config/arm/arm.c (arm_option_override): Thumb2 inline assembly
8283 code always use UAL syntax.
8284 (arm_output_mi_thunk): Use UAL syntax for Thumb1 target.
8285 * config/arm/thumb1.md: Likewise.
8287 2014-11-06 John David Anglin <danglin@gcc.gnu.org>
8289 * config/pa/pa.md (trap): New insn. Add "trap" to attribute type.
8290 Don't allow trap insn in in_branch_delay, in_nullified_branch_delay
8293 2014-11-06 Steve Ellcey <sellcey@imgtec.com>
8295 * config.gcc (mips*-mti-linux*): Remove gnu_ld and gas assignments.
8296 Set default_mips_arch and default_mips_abi instead of tm_defines.
8297 (mips*-*-linux*): Set default_mips_arch and default_mips_abi instead
8299 (mips*-*-*): Check with_arch and with_abi. Set tm_defines.
8300 * config/mips/mips.h (STANDARD_STARTFILE_PREFIX_1): Set default
8301 based on MIPS_ABI_DEFAULT.
8302 (STANDARD_STARTFILE_PREFIX_2): Ditto.
8304 2014-11-06 Joseph Myers <joseph@codesourcery.com>
8306 * doc/invoke.texi (-std=c99, -std=c11): Don't refer to corner
8307 cases of extended identifiers.
8309 2014-11-06 Eric Botcazou <ebotcazou@adacore.com>
8311 * tree-cfgcleanup.c (fixup_noreturn_call): Do not perform DCE here.
8313 2014-11-06 DJ Delorie <dj@redhat.com>
8315 * config/m32c/cond.md (movqicc_<code>_<mode>): Remove mode of
8317 (movhicc_<code>_<mode>): Likewise.
8318 * config/m32c/m32c.c (encode_pattern_1): Specialise PSImode
8320 (m32c_eh_return_data_regno): Change to using memregs to avoid
8321 tying up all the compute regs.
8322 (m32c_legitimate_address_p) Subregs are not valid addresses.
8324 2014-11-06 Bernd Schmidt <bernds@codesourcery.com>
8326 * function.c (thread_prologue_and_epilogue_insns): No longer static.
8327 * function.h (thread_prologue_and_epilogue_insns): Declare.
8329 * target.def (assemble_undefined_decl): New hooks.
8330 * hooks.c (hook_void_FILEptr_constcharptr_const_tree): New function.
8331 * hooks.h (hook_void_FILEptr_constcharptr_const_tree): Declare.
8332 * doc/tm.texi.in (TARGET_ASM_ASSEMBLE_UNDEFINED_DECL): Add.
8333 * doc/tm.texi: Regenerate.
8334 * output.h (assemble_undefined_decl): Declare.
8335 (get_fnname_from_decl): Declare.
8336 * varasm.c (assemble_undefined_decl): New function.
8337 (get_fnname_from_decl): New function.
8338 * final.c (rest_of_handle_final): Use it.
8339 * varpool.c (varpool_output_variables): Call assemble_undefined_decl
8340 for nodes without a definition.
8342 * target.def (call_args, end_call_args): New hooks.
8343 * hooks.c (hook_void_rtx_tree): New empty function.
8344 * hooks.h (hook_void_rtx_tree): Declare.
8345 * doc/tm.texi.in (TARGET_CALL_ARGS, TARGET_END_CALL_ARGS): Add.
8346 * doc/tm.texi: Regenerate.
8347 * calls.c (expand_call): Slightly rearrange the code. Use the two new
8349 (expand_library_call_value_1): Use the two new hooks.
8351 * expr.c (use_reg_mode): Just return for pseudo registers.
8353 * combine.c (try_combine): Don't allow a call as one of the source
8356 * target.def (decl_end): New hook.
8357 * varasm.c (assemble_variable_contents, assemble_constant_contents):
8359 * doc/tm.texi.in (TARGET_ASM_DECL_END): Add.
8360 * doc/tm.texi: Regenerate.
8362 2014-11-06 Renlin Li <renlin.li@arm.com>
8364 * config/aarch64/aarch64.c (aarch64_architecture_version): New.
8365 (processor): New architecture_version field.
8366 (aarch64_override_options): Initialize aarch64_architecture_version.
8367 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_ARCH,
8368 __ARM_ARCH_PROFILE, aarch64_arch_name macro.
8370 2014-11-06 James Greenhalgh <james.greenhalgh@arm.com>
8372 * params.def (sra-max-scalarization-size-Ospeed): New.
8373 (sra-max-scalarization-size-Osize): Likewise.
8374 * doc/invoke.texi (sra-max-scalarization-size-Ospeed): Document.
8375 (sra-max-scalarization-size-Osize): Likewise.
8376 * toplev.c (process_options): Set default values for new
8378 * tree-sra.c (analyze_all_variable_accesses): Use new parameters.
8379 * targhooks.c (get_move_ratio): Remove static designator.
8380 * target.h (get_move_ratio): Declare.
8382 2014-11-06 Marek Polacek <polacek@redhat.com>
8384 * sanopt.c (sanopt_optimize_walker): Limit removal of the checks.
8385 Remove vector limit.
8387 2014-11-06 Richard Biener <rguenther@suse.de>
8389 * match.pd: Implement bitwise binary and unary simplifications
8390 from tree-ssa-forwprop.c.
8391 * fold-const.c (fold_unary_loc): Remove them here.
8392 (fold_binary_loc): Likewise.
8393 * tree-ssa-forwprop.c (simplify_not_neg_expr): Remove.
8394 (truth_valued_ssa_name): Likewise.
8395 (lookup_logical_inverted_value): Likewise.
8396 (simplify_bitwise_binary_1): Likewise.
8397 (hoist_conversion_for_bitop_p): Likewise.
8398 (simplify_bitwise_binary_boolean): Likewise.
8399 (simplify_bitwise_binary): Likewise.
8400 (pass_forwprop::execute): Remove calls to simplify_not_neg_expr
8401 and simplify_bitwise_binary.
8402 * genmatch.c (dt_node::append_true_op): Use safe_as_a for parent.
8403 (decision_tree::insert): Also insert non-expressions.
8405 2014-11-06 Hale Wang <hale.wang@arm.com>
8407 * config/arm/arm-cores.def: Add support for
8408 -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
8409 cortex-m1.small-multiply.
8410 * config/arm/arm-tables.opt: Regenerate.
8411 * config/arm/arm-tune.md: Regenerate.
8412 * config/arm/arm.c: Update the rtx-costs for MUL.
8413 * config/arm/bpabi.h: Handle
8414 -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
8415 cortex-m1.small-multiply.
8416 * doc/invoke.texi: Document
8417 -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
8418 cortex-m1.small-multiply.
8420 2014-11-06 Hale Wang <hale.wang@arm.com>
8422 * config/arm/arm.c: Add cortex-m7 tune.
8423 * config/arm/arm-cores.def: Use cortex-m7 tune.
8425 2014-11-05 Uros Bizjak <ubizjak@gmail.com>
8428 * config/i386/i386.c (in_large_data_p): Reject automatic variables.
8429 (ix86_encode_section_info): Do not check for non-automatic varibles
8430 when setting SYMBOL_FLAG_FAR_ADDR flag.
8431 (x86_64_elf_select_section): Do not check ix86_cmodel here.
8432 (x86_64_elf_unique_section): Ditto.
8433 (x86_elf_aligned_common): Emit tab before .largecomm.
8435 2014-11-05 Joseph Myers <joseph@codesourcery.com>
8437 PR preprocessor/9449
8438 * doc/cpp.texi (Character sets, Tokenization)
8439 (Implementation-defined behavior): Don't refer to UCNs in
8440 identifiers requiring -fextended-identifiers.
8441 * doc/cppopts.texi (-fextended-identifiers): Document as enabled
8442 by default for C99 and later and C++.
8443 * doc/invoke.texi (-std=c99, -std=c11): Don't refer to extended
8444 identifiers needing -fextended-identifiers.
8446 2014-11-05 Ilya Tocar <ilya.tocar@intel.com>
8448 * config/i386/i386.c (expand_vec_perm_pshufb): Try vpermq/vpermd
8449 for 512-bit wide modes.
8450 (expand_vec_perm_1): Use correct versions of patterns.
8451 * config/i386/sse.md (avx512f_vec_dup<mode>_1): New.
8452 (vashr<mode>3<mask_name>): Split V8HImode and V16QImode.
8454 2014-11-05 Ilya Enkovich <ilya.enkovich@intel.com>
8460 * tree-chkp-opt.c: New.
8463 * Makefile.in (OBJS): Add ipa-chkp.o, rtl-chkp.o, tree-chkp.o
8465 (GTFILES): Add tree-chkp.c.
8466 * mode-classes.def (MODE_POINTER_BOUNDS): New.
8467 * tree.def (POINTER_BOUNDS_TYPE): New.
8468 * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
8469 (POINTER_BOUNDS_MODE): New.
8470 (make_pointer_bounds_mode): New.
8471 * machmode.h (POINTER_BOUNDS_MODE_P): New.
8472 * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
8473 (layout_type): Support POINTER_BOUNDS_TYPE.
8474 * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
8475 * tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
8476 * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
8477 (type_contains_placeholder_1): Likewise.
8478 (build_common_tree_nodes): Initialize
8479 pointer_bounds_type_node.
8480 * tree.h (POINTER_BOUNDS_TYPE_P): New.
8481 (pointer_bounds_type_node): New.
8482 (POINTER_BOUNDS_P): New.
8483 (BOUNDED_TYPE_P): New.
8485 (CALL_WITH_BOUNDS_P): New.
8486 * gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
8487 (gimple_call_with_bounds_p): New.
8488 (gimple_call_set_with_bounds): New.
8489 (gimple_return_retbnd): New.
8490 (gimple_return_set_retbnd): New
8491 * gimple.c (gimple_build_return): Increase number of ops
8492 for return statement.
8493 (gimple_build_call_from_tree): Propagate CALL_WITH_BOUNDS_P
8495 * gimple-pretty-print.c (dump_gimple_return): Print second op.
8496 * rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
8497 * gimplify.c (gimplify_init_constructor): Avoid infinite
8498 loop during gimplification of bounds initializer.
8499 * calls.c: Include tree-chkp.h, rtl-chkp.h, bitmap.h.
8500 (special_function_p): Use original decl name when analyzing
8501 instrumentation clone.
8502 (arg_data): Add fields special_slot, pointer_arg and
8504 (store_bounds): New.
8505 (emit_call_1): Propagate instrumentation flag for CALL.
8506 (initialize_argument_information): Compute pointer_arg,
8507 pointer_offset and special_slot for pointer bounds arguments.
8508 (finalize_must_preallocate): Preallocate when storing bounds
8510 (compute_argument_addresses): Skip pointer bounds.
8511 (expand_call): Store bounds into tables separately. Return
8512 result joined with resulting bounds.
8513 * cfgexpand.c: Include tree-chkp.h, rtl-chkp.h.
8514 (expand_call_stmt): Propagate bounds flag for CALL_EXPR.
8515 (expand_return): Add returned bounds arg. Handle returned bounds.
8516 (expand_gimple_stmt_1): Adjust to new expand_return signature.
8517 (gimple_expand_cfg): Reset rtx bounds map.
8518 * expr.c: Include tree-chkp.h, rtl-chkp.h.
8519 (expand_assignment): Handle returned bounds.
8520 (store_expr_with_bounds): New. Replaces store_expr with new bounds
8521 target argument. Handle bounds returned by calls.
8522 (store_expr): Now wraps store_expr_with_bounds.
8523 * expr.h (store_expr_with_bounds): New.
8524 * function.c: Include tree-chkp.h, rtl-chkp.h.
8525 (bounds_parm_data): New.
8526 (use_register_for_decl): Do not registerize decls used for bounds
8528 (assign_parms_augmented_arg_list): Add bounds of the result
8529 structure pointer as the second argument.
8530 (assign_parm_find_entry_rtl): Mark bounds are never passed on
8532 (assign_parm_is_stack_parm): Likewise.
8533 (assign_parm_load_bounds): New.
8534 (assign_bounds): New.
8535 (assign_parms): Load bounds and determine a location for
8537 (diddle_return_value_1): New.
8538 (diddle_return_value): Handle returned bounds.
8539 * function.h (rtl_data): Add field for returned bounds.
8540 * varasm.c: Include tree-chkp.h.
8541 (output_constant): Support POINTER_BOUNDS_TYPE.
8542 (output_constant_pool_2): Support MODE_POINTER_BOUNDS.
8543 (ultimate_transparent_alias_target): Move up.
8544 (make_decl_rtl): For instrumented function use
8545 name of the original decl.
8546 (assemble_start_function): Mark function as global
8547 in case it is instrumentation clone of the global
8549 (do_assemble_alias): Follow transparent alias chain
8550 for identifier. Check if original alias is public.
8551 (maybe_assemble_visibility): Use visibility of the
8552 original function for instrumented version.
8553 (default_unique_section): Likewise.
8554 * emit-rtl.c (immed_double_const): Support MODE_POINTER_BOUNDS.
8555 (init_emit_once): Build pointer bounds zero constants.
8556 * explow.c (trunc_int_for_mode): Support MODE_POINTER_BOUNDS.
8557 * target.def (builtin_chkp_function): New.
8558 (chkp_bound_type): New.
8559 (chkp_bound_mode): New.
8560 (chkp_make_bounds_constant): New.
8561 (chkp_initialize_bounds): New.
8562 (load_bounds_for_arg): New.
8563 (store_bounds_for_arg): New.
8564 (load_returned_bounds): New.
8565 (store_returned_bounds): New.
8566 (chkp_function_value_bounds): New.
8567 (setup_incoming_vararg_bounds): New.
8568 (function_arg): Update hook description with new possible return
8570 * targhooks.h (default_load_bounds_for_arg): New.
8571 (default_store_bounds_for_arg): New.
8572 (default_load_returned_bounds): New.
8573 (default_store_returned_bounds): New.
8574 (default_chkp_bound_type): New.
8575 (default_chkp_bound_mode): New.
8576 (default_builtin_chkp_function): New.
8577 (default_chkp_function_value_bounds): New.
8578 (default_chkp_make_bounds_constant): New.
8579 (default_chkp_initialize_bounds): New.
8580 (default_setup_incoming_vararg_bounds): New.
8581 * targhooks.c (default_load_bounds_for_arg): New.
8582 (default_store_bounds_for_arg): New.
8583 (default_load_returned_bounds): New.
8584 (default_store_returned_bounds): New.
8585 (default_chkp_bound_type): New.
8586 (default_chkp_bound_mode); New.
8587 (default_builtin_chkp_function): New.
8588 (default_chkp_function_value_bounds): New.
8589 (default_chkp_make_bounds_constant): New.
8590 (default_chkp_initialize_bounds): New.
8591 (default_setup_incoming_vararg_bounds): New.
8592 * builtin-types.def (BT_BND): New.
8593 (BT_FN_PTR_CONST_PTR): New.
8594 (BT_FN_CONST_PTR_CONST_PTR): New.
8595 (BT_FN_BND_CONST_PTR): New.
8596 (BT_FN_CONST_PTR_BND): New.
8597 (BT_FN_PTR_CONST_PTR_SIZE): New.
8598 (BT_FN_PTR_CONST_PTR_CONST_PTR): New.
8599 (BT_FN_VOID_PTRPTR_CONST_PTR): New.
8600 (BT_FN_VOID_CONST_PTR_SIZE): New.
8601 (BT_FN_VOID_PTR_BND): New.
8602 (BT_FN_CONST_PTR_CONST_PTR_CONST_PTR): New.
8603 (BT_FN_BND_CONST_PTR_SIZE): New.
8604 (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
8605 (BT_FN_VOID_CONST_PTR_BND_CONST_PTR): New.
8606 * chkp-builtins.def: New.
8607 * builtins.def: include chkp-builtins.def.
8608 (DEF_CHKP_BUILTIN): New.
8609 * builtins.c: Include tree-chkp.h and rtl-chkp.h.
8610 (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
8611 BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
8612 BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
8613 BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
8614 BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
8615 BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
8616 BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
8617 BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
8618 BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_NARROW,
8619 BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
8620 (std_expand_builtin_va_start): Init bounds for va_list.
8621 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add
8622 __CHKP__ macro when Pointer Bounds Checker is on.
8623 * params.def (PARAM_CHKP_MAX_CTOR_SIZE): New.
8624 * passes.def (pass_ipa_chkp_versioning): New.
8625 (pass_early_local_passes): Renamed to pass_build_ssa_passes.
8626 (pass_fixup_cfg): Moved to pass_chkp_instrumentation_passes.
8627 (pass_chkp_instrumentation_passes): New.
8628 (pass_ipa_chkp_produce_thunks): New.
8629 (pass_local_optimization_passes): New.
8630 (pass_chkp_opt): New.
8631 * tree-pass.h (make_pass_ipa_chkp_versioning): New.
8632 (make_pass_ipa_chkp_produce_thunks): New.
8633 (make_pass_chkp): New.
8634 (make_pass_chkp_opt): New.
8635 (make_pass_early_local_passes): Renamed to ...
8636 (make_pass_build_ssa_passes): This.
8637 (make_pass_chkp_instrumentation_passes): New.
8638 (make_pass_local_optimization_passes): New.
8639 * passes.c (pass_manager::execute_early_local_passes): Execute
8640 early passes in three steps.
8641 (execute_all_early_local_passes): Renamed to ...
8642 (execute_build_ssa_passes): This.
8643 (pass_data_early_local_passes): Renamed to ...
8644 (pass_data_build_ssa_passes): This.
8645 (pass_early_local_passes): Renamed to ...
8646 (pass_build_ssa_passes): This.
8647 (pass_data_chkp_instrumentation_passes): New.
8648 (pass_chkp_instrumentation_passes): New.
8649 (pass_data_local_optimization_passes): New.
8650 (pass_local_optimization_passes): New.
8651 (make_pass_early_local_passes): Renamed to ...
8652 (make_pass_build_ssa_passes): This.
8653 (make_pass_chkp_instrumentation_passes): New.
8654 (make_pass_local_optimization_passes): New.
8655 * c-family/c.opt (fcheck-pointer-bounds): New.
8656 (fchkp-check-incomplete-type): New.
8657 (fchkp-zero-input-bounds-for-main): New.
8658 (fchkp-first-field-has-own-bounds): New.
8659 (fchkp-narrow-bounds): New.
8660 (fchkp-narrow-to-innermost-array): New.
8661 (fchkp-optimize): New.
8662 (fchkp-use-fast-string-functions): New.
8663 (fchkp-use-nochk-string-functions): New.
8664 (fchkp-use-static-bounds): New.
8665 (fchkp-use-static-const-bounds): New.
8666 (fchkp-treat-zero-dynamic-size-as-infinite): New.
8667 (fchkp-check-read): New.
8668 (fchkp-check-write): New.
8669 (fchkp-store-bounds): New.
8670 (fchkp-instrument-calls): New.
8671 (fchkp-instrument-marked-only): New.
8673 * c-family/c-common.c (handle_bnd_variable_size_attribute): New.
8674 (handle_bnd_legacy): New.
8675 (handle_bnd_instrument): New.
8676 (c_common_attribute_table): Add bnd_variable_size, bnd_legacy
8677 and bnd_instrument. Fix documentation.
8678 (c_common_format_attribute_table): Likewsie.
8679 * toplev.c: include tree-chkp.h.
8680 (process_options): Check Pointer Bounds Checker is supported.
8681 (compile_file): Add chkp_finish_file call.
8682 * ipa-cp.c (initialize_node_lattices): Use cgraph_local_p
8683 to handle instrumentation clones properly.
8684 (propagate_constants_accross_call): Do not propagate
8685 through instrumentation thunks.
8686 * ipa-pure-const.c (propagate_pure_const): Support
8688 * ipa-inline.c (early_inliner): Check edge has summary allocated.
8689 * ipa-split.c: Include tree-chkp.h.
8691 (split_part_set_ssa_name_p): New.
8692 (consider_split): Do not split retbnd and retval
8694 (insert_bndret_call_after): new.
8695 (split_function): Propagate Pointer Bounds Checker
8696 instrumentation marks and handle returned bounds.
8697 * tree-ssa-sccvn.h (vn_reference_op_struct): Transform opcode
8698 into bit field and add with_bounds field.
8699 * tree-ssa-sccvn.c (copy_reference_ops_from_call): Set
8700 with_bounds field for instrumented calls.
8701 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Restore
8702 CALL_WITH_BOUNDS_P flag for calls.
8703 * tree-ssa-ccp.c: Include tree-chkp.h.
8704 (insert_clobber_before_stack_restore): Handle
8705 BUILT_IN_CHKP_BNDRET calls.
8706 * tree-ssa-dce.c: Include tree-chkp.h.
8707 (propagate_necessity): For free call fed by alloc check
8708 bounds are also provided by the same alloc.
8709 (eliminate_unnecessary_stmts): Handle BUILT_IN_CHKP_BNDRET
8711 * tree-inline.c: Include tree-chkp.h.
8712 (declare_return_variable): Add arg holding
8713 returned bounds slot. Create and initialize returned bounds var.
8714 (remap_gimple_stmt): Handle returned bounds.
8715 Return sequence of statements instead of a single statement.
8716 (insert_init_stmt): Add declaration.
8717 (remap_gimple_seq): Adjust to new remap_gimple_stmt signature.
8718 (copy_bb): Adjust to changed return type of remap_gimple_stmt.
8719 Properly handle bounds in va_arg_pack and va_arg_pack_len.
8720 (expand_call_inline): Handle returned bounds. Add bounds copy
8721 for generated mem to mem assignments.
8722 * tree-inline.h (copy_body_data): Add fields retbnd and
8724 * value-prof.c: Include tree-chkp.h.
8725 (gimple_ic): Support returned bounds.
8726 * ipa.c (cgraph_build_static_cdtor_1): Support contructors
8727 with "chkp ctor" and "bnd_legacy" attributes.
8728 (symtab_remove_unreachable_nodes): Keep initial values for
8729 pointer bounds to be used for checks eliminations.
8730 (process_references): Handle IPA_REF_CHKP.
8731 (walk_polymorphic_call_targets): Likewise.
8732 * ipa-visibility.c (cgraph_externally_visible_p): Mark
8733 instrumented 'main' as externally visible.
8734 (function_and_variable_visibility): Filter instrumentation
8736 * cgraph.h (cgraph_thunk_info): Add add_pointer_bounds_args
8738 (cgraph_node): Add instrumented_version, orig_decl and
8739 instrumentation_clone fields.
8740 (symtab_node::get_alias_target): Allow IPA_REF_CHKP reference.
8741 (varpool_node): Add need_bounds_init field.
8742 (cgraph_local_p): New.
8743 * cgraph.c: Include tree-chkp.h.
8744 (cgraph_node::remove): Fix instrumented_version
8745 of the referenced node if any.
8746 (cgraph_node::dump): Dump instrumentation_clone and
8747 instrumented_version fields.
8748 (cgraph_node::verify_node): Check correctness of IPA_REF_CHKP
8749 references and instrumentation thunks.
8750 (cgraph_can_remove_if_no_direct_calls_and_refs_p): Keep
8751 all not instrumented instrumentation clones alive.
8752 (cgraph_redirect_edge_call_stmt_to_callee): Support
8754 * cgraphbuild.c (rebuild_cgraph_edges): Rebuild IPA_REF_CHKP
8756 (cgraph_rebuild_references): Likewise.
8757 * cgraphunit.c: Include tree-chkp.h.
8758 (assemble_thunks_and_aliases): Skip thunks calling instrumneted
8760 (varpool_finalize_decl): Register statically initialized decls
8761 in Pointer Bounds Checker.
8762 (walk_polymorphic_call_targets): Do not mark generated call to
8763 __builtin_unreachable as with_bounds.
8764 (output_weakrefs): If there are both instrumented and original
8765 versions, output only one of them.
8766 (cgraph_node::expand_thunk): Set with_bounds flag
8767 for created call statement.
8768 * ipa-ref.h (ipa_ref_use): Add IPA_REF_CHKP.
8769 (ipa_ref): increase size of use field.
8770 * symtab.c (ipa_ref_use_name): Add element for IPA_REF_CHKP.
8771 * varpool.c (dump_varpool_node): Dump need_bounds_init field.
8772 (ctor_for_folding): Do not fold constant bounds vars.
8773 * lto-streamer.h (LTO_minor_version): Change minor version from
8775 * lto-cgraph.c (compute_ltrans_boundary): Keep initial values for
8777 (lto_output_node): Output instrumentation_clone,
8778 thunk.add_pointer_bounds_args and orig_decl field.
8779 (lto_output_ref): Adjust to new ipa_ref::use field size.
8780 (input_overwrite_node): Read instrumentation_clone field.
8781 (input_node): Read thunk.add_pointer_bounds_args and orig_decl
8783 (input_ref): Adjust to new ipa_ref::use field size.
8784 (input_cgraph_1): Compute instrumented_version fields and restore
8785 IDENTIFIER_TRANSPARENT_ALIAS chains.
8786 (lto_output_varpool_node): Output
8787 need_bounds_init value.
8788 (input_varpool_node): Read need_bounds_init value.
8789 * lto-partition.c (add_symbol_to_partition_1): Keep original
8790 and instrumented versions together.
8791 (privatize_symbol_name): Restore transparent alias chain if required.
8792 (add_references_to_partition): Add references to pointer bounds vars.
8793 * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
8794 * dwarf2out.c (gen_subprogram_die): Ignore bound args.
8795 (gen_type_die_with_usage): Skip pointer bounds.
8796 (dwarf2out_global_decl): Likewise.
8797 (is_base_type): Support POINTER_BOUNDS_TYPE.
8798 (gen_formal_types_die): Skip pointer bounds.
8799 (gen_decl_die): Likewise.
8800 * var-tracking.c (vt_add_function_parameters): Skip
8802 * ipa-icf.c (sem_function::merge): Do not merge when instrumentation
8804 (sem_variable::merge): Reset need_bounds_init flag.
8805 * doc/extend.texi: Document Pointer Bounds Checker built-in functions
8807 * doc/tm.texi.in (TARGET_LOAD_BOUNDS_FOR_ARG): New.
8808 (TARGET_STORE_BOUNDS_FOR_ARG): New.
8809 (TARGET_LOAD_RETURNED_BOUNDS): New.
8810 (TARGET_STORE_RETURNED_BOUNDS): New.
8811 (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
8812 (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
8813 (TARGET_BUILTIN_CHKP_FUNCTION): New.
8814 (TARGET_CHKP_BOUND_TYPE): New.
8815 (TARGET_CHKP_BOUND_MODE): New.
8816 (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
8817 (TARGET_CHKP_INITIALIZE_BOUNDS): New.
8818 * doc/tm.texi: Regenerated.
8819 * doc/rtl.texi (MODE_POINTER_BOUNDS): New.
8822 * doc/invoke.texi (-mmpx): New.
8824 (chkp-max-ctor-size): New.
8825 * config/i386/constraints.md (w): New.
8828 * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
8829 * config/i386/i386-modes.def (BND32): New.
8831 * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
8832 * config/i386/i386.c: Include tree-chkp.h, rtl-chkp.h, tree-iterator.h.
8833 (regclass_map): Add bound registers.
8834 (dbx_register_map): Likewise.
8835 (dbx64_register_map): Likewise.
8836 (svr4_dbx_register_map): Likewise.
8837 (isa_opts): Add -mmpx.
8839 (ix86_option_override_internal): Support MPX ISA.
8840 (ix86_conditional_register_usage): Support bound registers.
8841 (ix86_code_end): Add MPX bnd prefix.
8842 (output_set_got): Likewise.
8843 (print_reg): Avoid prefixes for bound registers.
8844 (ix86_print_operand): Add '!' (MPX bnd) print prefix support.
8845 (ix86_print_operand_punct_valid_p): Likewise.
8846 (ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
8848 (ix86_output_call_insn): Add MPX bnd prefix to branch instructions.
8849 (ix86_class_likely_spilled_p): Add bound regs support.
8850 (ix86_hard_regno_mode_ok): Likewise.
8851 (x86_order_regs_for_local_alloc): Likewise.
8852 (ix86_bnd_prefixed_insn_p): New.
8853 (ix86_builtins): Add
8854 IX86_BUILTIN_BNDMK, IX86_BUILTIN_BNDSTX,
8855 IX86_BUILTIN_BNDLDX, IX86_BUILTIN_BNDCL,
8856 IX86_BUILTIN_BNDCU, IX86_BUILTIN_BNDRET,
8857 IX86_BUILTIN_BNDNARROW, IX86_BUILTIN_BNDINT,
8858 IX86_BUILTIN_SIZEOF, IX86_BUILTIN_BNDLOWER,
8859 IX86_BUILTIN_BNDUPPER.
8860 (builtin_isa): Add leaf_p and nothrow_p fields.
8861 (def_builtin): Initialize leaf_p and nothrow_p.
8862 (ix86_add_new_builtins): Handle leaf_p and nothrow_p
8865 (bdesc_mpx_const): New.
8866 (ix86_init_mpx_builtins): New.
8867 (ix86_init_builtins): Call ix86_init_mpx_builtins.
8868 (ix86_emit_cmove): New.
8869 (ix86_emit_move_max): New.
8870 (ix86_expand_builtin): Expand IX86_BUILTIN_BNDMK,
8871 IX86_BUILTIN_BNDSTX, IX86_BUILTIN_BNDLDX,
8872 IX86_BUILTIN_BNDCL, IX86_BUILTIN_BNDCU,
8873 IX86_BUILTIN_BNDRET, IX86_BUILTIN_BNDNARROW,
8874 IX86_BUILTIN_BNDINT, IX86_BUILTIN_SIZEOF,
8875 IX86_BUILTIN_BNDLOWER, IX86_BUILTIN_BNDUPPER.
8876 (ix86_function_value_bounds): New.
8877 (ix86_builtin_mpx_function): New.
8878 (ix86_get_arg_address_for_bt): New.
8879 (ix86_load_bounds): New.
8880 (ix86_store_bounds): New.
8881 (ix86_load_returned_bounds): New.
8882 (ix86_store_returned_bounds): New.
8883 (ix86_mpx_bound_mode): New.
8884 (ix86_make_bounds_constant): New.
8885 (ix86_initialize_bounds):
8886 (TARGET_LOAD_BOUNDS_FOR_ARG): New.
8887 (TARGET_STORE_BOUNDS_FOR_ARG): New.
8888 (TARGET_LOAD_RETURNED_BOUNDS): New.
8889 (TARGET_STORE_RETURNED_BOUNDS): New.
8890 (TARGET_CHKP_BOUND_MODE): New.
8891 (TARGET_BUILTIN_CHKP_FUNCTION): New.
8892 (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
8893 (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
8894 (TARGET_CHKP_INITIALIZE_BOUNDS): New.
8895 (ix86_option_override_internal): Do not
8896 support x32 with MPX.
8897 (init_cumulative_args): Init stdarg, bnd_regno, bnds_in_bt
8899 (function_arg_advance_32): Return number of used integer
8901 (function_arg_advance_64): Likewise.
8902 (function_arg_advance_ms_64): Likewise.
8903 (ix86_function_arg_advance): Handle pointer bounds.
8904 (ix86_function_arg): Likewise.
8905 (ix86_function_value_regno_p): Mark fisrt bounds registers as
8906 possible function value.
8907 (ix86_function_value_1): Handle pointer bounds type/mode
8908 (ix86_return_in_memory): Likewise.
8909 (ix86_print_operand): Analyse insn to decide abounf "bnd" prefix.
8910 (ix86_expand_call): Generate returned bounds.
8911 (ix86_setup_incoming_vararg_bounds): New.
8912 (ix86_va_start): Initialize bounds for pointers in va_list.
8913 (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
8914 * config/i386/i386.h (TARGET_MPX): New.
8915 (TARGET_MPX_P): New.
8916 (FIRST_PSEUDO_REGISTER): Fix to new value.
8917 (FIXED_REGISTERS): Add bound registers.
8918 (CALL_USED_REGISTERS): Likewise.
8919 (REG_ALLOC_ORDER): Likewise.
8920 (HARD_REGNO_NREGS): Likewise.
8921 (VALID_BND_REG_MODE): New.
8922 (FIRST_BND_REG): New.
8923 (LAST_BND_REG): New.
8924 (reg_class): Add BND_REGS.
8925 (REG_CLASS_NAMES): Likewise.
8926 (REG_CLASS_CONTENTS): Likewise.
8928 (ANY_BND_REG_P): New.
8930 (HI_REGISTER_NAMES): Add bound registers.
8931 (ix86_args): Add bnd_regno, bnds_in_bt, force_bnd_pass and
8933 * config/i386/i386.md (UNSPEC_BNDMK): New.
8934 (UNSPEC_BNDMK_ADDR): New.
8935 (UNSPEC_BNDSTX): New.
8936 (UNSPEC_BNDLDX): New.
8937 (UNSPEC_BNDLDX_ADDR): New.
8938 (UNSPEC_BNDCL): New.
8939 (UNSPEC_BNDCU): New.
8940 (UNSPEC_BNDCN): New.
8941 (UNSPEC_MPX_FENCE): New.
8942 (UNSPEC_SIZEOF): New.
8945 (type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
8946 (length_immediate): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
8947 (prefix_rep): Check for bnd prefix.
8948 (prefix_0f): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
8949 (length_nobnd): New.
8950 (length): Use length_nobnd when specified.
8951 (memory): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
8956 (*jcc_1): Add MPX bnd prefix.
8959 (*indirect_jump): Likewise.
8960 (*tablejump_1): Likewise.
8961 (simple_return_internal): Likewise.
8962 (simple_return_internal_long): Likewise.
8963 (simple_return_pop_internal): Likewise.
8964 (simple_return_indirect_internal): Likewise.
8968 (*mov<mode>_internal_mpx): New.
8969 (<mode>_<bndcheck>): New.
8970 (*<mode>_<bndcheck>): New.
8975 move_size_reloc_<mode>): New.
8976 * config/i386/predicates.md (address_mpx_no_base_operand): New.
8977 (address_mpx_no_index_operand): New.
8978 (bnd_mem_operator): New.
8979 (symbol_operand): New.
8980 (x86_64_immediate_size_operand): New.
8981 * config/i386/i386.opt (mmpx): New.
8982 * config/i386/i386-builtin-types.def (BND): New.
8984 (BND_FTYPE_PCVOID_ULONG): New.
8985 (VOID_FTYPE_BND_PCVOID): New.
8986 (VOID_FTYPE_PCVOID_PCVOID_BND): New.
8987 (BND_FTYPE_PCVOID_PCVOID): New.
8988 (BND_FTYPE_PCVOID): New.
8989 (BND_FTYPE_BND_BND): New.
8990 (PVOID_FTYPE_PVOID_PVOID_ULONG): New.
8991 (PVOID_FTYPE_PCVOID_BND_ULONG): New.
8992 (ULONG_FTYPE_VOID): New.
8993 (PVOID_FTYPE_BND): New.
8995 2014-11-05 Bernd Schmidt <bernds@codesourcery.com>
8997 * passes.def (pass_compute_alignments, pass_duplicate_computed_gotos,
8998 pass_variable_tracking, pass_free_cfg, pass_machine_reorg,
8999 pass_cleanup_barriers, pass_delay_slots,
9000 pass_split_for_shorten_branches, pass_convert_to_eh_region_ranges,
9001 pass_shorten_branches, pass_est_nothrow_function_flags,
9002 pass_dwarf2_frame, pass_final): Move outside of pass_postreload and
9003 into pass_late_compilation.
9004 (pass_late_compilation): Add.
9005 * passes.c (pass_data_late_compilation, pass_late_compilation,
9006 make_pass_late_compilation): New.
9007 * timevar.def (TV_LATE_COMPILATION): New.
9009 * target.def (omit_struct_return_reg): New data hook.
9010 * doc/tm.texi.in: Add @hook TARGET_OMIT_STRUCT_RETURN_REG.
9011 * doc/tm.texi: Regenerate.
9012 * function.c (expand_function_end): Use it.
9014 * target.def (no_register_allocation): New data hook.
9015 * doc/tm.texi.in: Add @hook TARGET_NO_REGISTER_ALLOCATION.
9016 * doc/tm.texi: Regenerate.
9017 * ira.c (gate_ira): New function.
9018 (pass_data_ira): Set has_gate.
9019 (pass_ira): Add a gate function.
9020 (pass_data_reload): Likewise.
9021 (pass_reload): Add a gate function.
9023 * reload1.c (eliminate_regs): If reg_eliminate_is NULL, assert that
9024 no register allocation happens on the target and return.
9025 * final.c (alter_subreg): Ensure register is not a pseudo before
9026 calling simplify_subreg.
9027 (output_operand): Assert that x isn't a pseudo only if doing
9028 register allocation.
9030 * dbxout.c (dbxout_symbol): Don't call eliminate_regs on decls for
9033 * optabs.c (emit_indirect_jump): Test HAVE_indirect_jump and emit a
9036 2014-11-05 Alex Velenko <Alex.Velenko@arm.com>
9038 * simplify-rtx.c (simplify_binary_operation_1): Div check added.
9039 * rtl.h (SUBREG_P): New macro added.
9041 2014-11-05 Tejas Belagod <tejas.belagod@arm.com>
9043 * config/aarch64/aarch64-builtins.c
9044 (aarch64_build_scalar_type): Remove.
9045 (aarch64_scalar_builtin_types, aarch64_simd_type,
9046 aarch64_simd_type, aarch64_mangle_builtin_scalar_type,
9047 aarch64_mangle_builtin_vector_type,
9048 aarch64_mangle_builtin_type, aarch64_simd_builtin_std_type,
9049 aarch64_lookup_simd_builtin_type, aarch64_simd_builtin_type,
9050 aarch64_init_simd_builtin_types,
9051 aarch64_init_simd_builtin_scalar_types): New.
9052 (aarch64_init_simd_builtins): Refactor.
9053 (aarch64_init_crc32_builtins): Fixup with qualifier.
9054 * config/aarch64/aarch64-protos.h
9055 (aarch64_mangle_builtin_type): Export.
9056 * config/aarch64/aarch64-simd-builtin-types.def: New.
9057 * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Remove.
9058 (aarch64_mangle_type): Refactor.
9059 * config/aarch64/arm_neon.h: Declare vector types based on
9061 * config/aarch64/t-aarch64: Update dependency.
9063 2014-11-04 Pat Haugen <pthaugen@us.ibm.com>
9065 * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl,
9066 atomic_update_decl): Guard declaration with #ifdef.
9068 2014-11-04 Marek Polacek <polacek@redhat.com>
9070 * sanopt.c (sanopt_optimize_walker): Remove unused variables.
9072 2014-11-04 Marek Polacek <polacek@redhat.com>
9074 * Makefile.in (OBJS): Add sanopt.o.
9075 (GTFILES): Add sanopt.c.
9076 * asan.h (asan_expand_check_ifn): Declare.
9077 * asan.c (asan_expand_check_ifn): No longer static.
9078 (class pass_sanopt, pass_sanopt::execute, make_pass_sanopt): Move...
9079 * sanopt.c: ...here. New file.
9081 2014-11-04 Jiong Wang <jiong.wang@arm.com>
9082 2014-11-04 Wilco Dijkstra <wilco.dijkstra@arm.com>
9085 * config/aarch64/aarch64.c (aarch64_expand_epiloue): Add barriers before
9088 2014-11-04 Bernd Schmidt <bernds@codesourcery.com>
9090 * combine.c (combine_simplify_rtx): In STORE_FLAG_VALUE == -1 case,
9091 also verify that mode is equal to the mode of op0.
9093 * bb-reorder.c (get_uncond_jump_length): Avoid using delete_insn,
9094 emit into a sequence instead.
9096 2014-11-04 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9098 * config/sh/sh.c (emit_fpu_switch): Drop unused automatic variable.
9100 2014-11-04 Alan Lawrence <alan.lawrence@arm.com>
9102 config/arm/neon.md (reduc_smin_<mode> *2): Rename to...
9103 (reduc_smin_scal_<mode> *2): ...this; extract scalar result.
9104 (reduc_smax_<mode> *2): Rename to...
9105 (reduc_smax_scal_<mode> *2): ...this; extract scalar result.
9106 (reduc_umin_<mode> *2): Rename to...
9107 (reduc_umin_scal_<mode> *2): ...this; extract scalar result.
9108 (reduc_umax_<mode> *2): Rename to...
9109 (reduc_umax_scal_<mode> *2): ...this; extract scalar result.
9111 2014-11-04 Alan Lawrence <alan.lawrence@arm.com>
9113 config/arm/neon.md (reduc_plus_*): Rename to...
9114 (reduc_plus_scal_*): ...this; reduce to temp and extract scalar result.
9116 2014-11-04 Michael Collison <michael.collison@linaro.org>
9118 * config/aarch64/iterators.md (lconst_atomic): New mode attribute
9119 to support constraints for CONST_INT in atomic operations.
9120 * config/aarch64/atomics.md
9121 (atomic_<atomic_optab><mode>): Use lconst_atomic constraint.
9122 (atomic_nand<mode>): Likewise.
9123 (atomic_fetch_<atomic_optab><mode>): Likewise.
9124 (atomic_fetch_nand<mode>): Likewise.
9125 (atomic_<atomic_optab>_fetch<mode>): Likewise.
9126 (atomic_nand_fetch<mode>): Likewise.
9128 2014-11-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9130 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in definition
9131 of __ARM_FEATURE_IDIV.
9133 2014-11-04 Marek Polacek <polacek@redhat.com>
9135 * ubsan.c (instrument_object_size): Optimize [x & CST] array accesses.
9137 2014-11-03 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9139 * config/rx/rx.c (rx_handle_func_attribute): Mark unused argument.
9141 2014-11-04 Zhenqiang Chen <zhenqiang.chen@arm.com>
9144 2014-11-03 Zhenqiang Chen <zhenqiang.chen@arm.com>
9145 * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
9146 Allow CC mode if HAVE_cbranchcc4.
9148 2014-11-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
9150 * godump.c (go_format_type): Rewrite RECORD_TYPE nad UNION_TYPE support
9151 with -fdump-go-spec. Anonymous substructures are now flattened and
9152 replaced by their fields (record) or the first named, non-bitfield
9155 2014-11-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
9157 * input.c (expand_location_to_spelling_point): Fix typo.
9158 (expansion_point_location_if_in_system_header): Fix comment.
9160 2014-11-03 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
9162 * config/avr/gen-avr-mmcu-specs.c: Remove unnecessary format specifier.
9164 2014-11-03 Richard Biener <rguenther@suse.de>
9166 * tree-eh.c (operation_could_trap_helper_p): Handle conversions
9167 like ordinary operations.
9168 * gimplify.c (gimplify_conversion): Gimplify CONVERT_EXPR
9171 2014-11-03 Joseph Myers <joseph@codesourcery.com>
9173 * configure.ac (TARGET_GLIBC_MAJOR, TARGET_GLIBC_MINOR): Define
9175 * configure, config.h.in: Regenerate.
9176 * config/rs6000/linux.h [TARGET_GLIBC_MAJOR > 2 ||
9177 (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
9178 (RS6000_GLIBC_ATOMIC_FENV): New macro.
9179 * config/rs6000/linux64.h [TARGET_GLIBC_MAJOR > 2 ||
9180 (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
9181 (RS6000_GLIBC_ATOMIC_FENV): New macro.
9182 * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl)
9183 (atomic_update_decl): New static variables.
9184 (rs6000_atomic_assign_expand_fenv) [RS6000_GLIBC_ATOMIC_FENV]:
9185 Generate calls to __atomic_feholdexcept, __atomic_feclearexcept
9186 and __atomic_feupdateenv for soft-float and no-FPRs.
9188 2014-11-03 Richard Biener <rguenther@suse.de>
9190 * match.pd: Add two abs patterns. Announce tree_expr_nonnegative_p.
9191 Also drop bogus FLOAT_EXPR and FIX_TRUNC_EXPR.
9192 * fold-const.c (fold_unary_loc): Remove them here.
9193 (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
9194 * gimple-fold.c (fold_gimple_assign): Remove now obsolete
9195 GIMPLE_UNARY_RHS case.
9196 (gimple_fold_stmt_to_constant_1): Likewise.
9197 (replace_stmt_with_simplification): Fix inverted comparison.
9199 2014-11-03 Marc Glisse <marc.glisse@inria.fr>
9201 PR tree-optimization/60770
9202 * tree-into-ssa.c (rewrite_update_stmt): Return whether the
9203 statement should be removed.
9204 (maybe_register_def): Likewise. Replace clobbers with default
9206 (rewrite_dom_walker::before_dom_children): Remove statement if
9207 rewrite_update_stmt says so.
9208 * tree-ssa-live.c: Include tree-ssa.h.
9209 (set_var_live_on_entry): Do not mark undefined variables as live.
9210 (verify_live_on_entry): Do not check undefined variables.
9211 * tree-ssa.h (ssa_undefined_value_p): New parameter for the case
9212 of partially undefined variables.
9213 * tree-ssa.c (ssa_undefined_value_p): Likewise.
9214 (execute_update_addresses_taken): Do not drop clobbers.
9216 2014-11-03 Marc Glisse <marc.glisse@inria.fr>
9218 PR tree-optimization/63666
9219 * fold-const.c: Include "optabs.h".
9220 (fold_ternary_loc) <VEC_PERM_EXPR>: Avoid canonicalizing a
9221 can_vec_perm_p permutation to one that is not.
9223 2014-11-03 Zhenqiang Chen <zhenqiang.chen@arm.com>
9225 * ifcvt.c (noce_try_store_flag_mask): Check rtx cost.
9227 2014-11-03 Andrew Pinski <apinski@cavium.com>
9229 * config/mips/mips-cpus.def (octeon3): New cpu.
9230 * config/mips/mips.c (mips_rtx_cost_data): Add octeon3.
9231 (mips_print_operand <case 'T', case 't'>): Fix a bug as the mode
9232 of the comparison no longer matches mode of the operands.
9233 (mips_issue_rate): Handle PROCESSOR_OCTEON3.
9234 * config/mips/mips.h (TARGET_OCTEON): Add Octeon3.
9235 (TARGET_OCTEON2): Likewise.
9236 (TUNE_OCTEON): Add Octeon3.
9237 * config/mips/mips.md (processor): Add octeon3.
9238 * config/mips/octeon.md (octeon_fpu): New automaton and cpu_unit.
9239 (octeon_arith): Add octeon3.
9240 (octeon_condmove): Remove.
9241 (octeon_condmove_o1): New reservation.
9242 (octeon_condmove_o2): New reservation.
9243 (octeon_condmove_o3_int_on_cc): New reservation.
9244 (octeon_load_o2): Add octeon3.
9245 (octeon_cop_o2): Likewise.
9246 (octeon_store): Likewise.
9247 (octeon_brj_o2): Likewise.
9248 (octeon_imul3_o2): Likewise.
9249 (octeon_imul_o2): Likewise.
9250 (octeon_mfhilo_o2): Likewise.
9251 (octeon_imadd_o2): Likewise.
9252 (octeon_idiv_o2_si): Likewise.
9253 (octeon_idiv_o2_di): Likewise.
9254 (octeon_fpu): Add to the automaton.
9255 (octeon_fpu): New cpu unit.
9256 (octeon_condmove_o2): Check for non floating point modes.
9257 (octeon_load_o2): Add prefetchx.
9258 (octeon_cop_o2): Don't check for octeon3.
9259 (octeon3_faddsubcvt): New reservation.
9260 (octeon3_fmul): Likewise.
9261 (octeon3_fmadd): Likewise.
9262 (octeon3_div_sf): Likewise.
9263 (octeon3_div_df): Likewise.
9264 (octeon3_sqrt_sf): Likewise.
9265 (octeon3_sqrt_df): Likewise.
9266 (octeon3_rsqrt_sf): Likewise.
9267 (octeon3_rsqrt_df): Likewise.
9268 (octeon3_fabsnegmov): Likewise.
9269 (octeon_fcond): Likewise.
9270 (octeon_fcondmov): Likewise.
9271 (octeon_fpmtc1): Likewise.
9272 (octeon_fpmfc1): Likewise.
9273 (octeon_fpload): Likewise.
9274 (octeon_fpstore): Likewise.
9275 * config/mips/mips-tables.opt: Regenerate.
9276 * doc/invoke.texi (-march=@var{arch}): Add octeon3.
9278 2014-11-03 Zhenqiang Chen <zhenqiang.chen@arm.com>
9280 * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
9281 Allow CC mode if HAVE_cbranchcc4.
9283 2014-11-02 Richard Sandiford <richard.sandiford@arm.com>
9285 * config/arc/arc.c (write_ext_corereg_1): Delete.
9286 (arc_write_ext_corereg): Use FOR_EACH_SUBRTX.
9288 2014-11-02 Richard Sandiford <richard.sandiford@arm.com>
9290 * config/arc/arc.c (arc600_corereg_hazard_1): Delete.
9291 (arc600_corereg_hazard): Use FOR_EACH_SUBRTX.
9293 2014-11-02 Richard Sandiford <richard.sandiford@arm.com>
9295 * config/arc/arc.c (arc_rewrite_small_data_p): Constify argument.
9296 (small_data_pattern_1): Delete.
9297 (small_data_pattern): Use FOR_EACH_SUBRTX.
9299 2014-11-02 Richard Sandiford <richard.sandiford@arm.com>
9301 * config/arc/arc.c: Include rtl-iter.h.
9302 (arc_rewrite_small_data_1): Delete.
9303 (arc_rewrite_small_data): Use FOR_EACH_SUBRTX_PTR.
9305 2014-11-02 Michael Collison <michael.collison@linaro.org>
9307 * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
9308 to support vector modes.
9309 (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
9311 2014-11-01 Andrew MacLeod <amacleod@redhat,com>
9313 * optabs.h: Flatten insn-codes.h to source files. Move some prototypes
9314 and structs to genopinit.c. Adjust protyoptypes to match optabs.c.
9315 * genopinit.c (main): Emit prototypes and structs into insn-opinit.h.
9316 * optabs.c: (gen_move_insn): Move to expr.c.
9317 * expr.h: Move protypes and enums to optabs.h.
9318 * expr.c: (gen_move_insn): Relocate from optabs.c.
9319 * genemit.c (main): Include insn-codes.h.
9320 * gengtype.c (open_base_files): Include insn-codes.h.
9321 * asan.c: Include insn-codes.h.
9322 * bb-reorder.c: Ditto.
9323 * builtins.c: Ditto.
9325 * cfgexpand.c: Ditto.
9326 * cilk-common.c: Ditto.
9333 * function.c: Ditto.
9335 * internal-fn.c: Ditto.
9336 * loop-unroll.c: Ditto.
9338 * modulo-sched.c: Ditto.
9340 * postreload.c: Ditto.
9344 * shrink-wrap.c: Ditto.
9345 * simplify-rtx.c: Ditto.
9347 * target-globals.c: Ditto.
9348 * targhooks.c: Ditto.
9350 * tree-if-conv.c: Ditto.
9351 * tree-ssa-forwprop.c: Ditto.
9352 * tree-ssa-loop-prefetch.c: Ditto.
9353 * tree-ssa-math-opts.c: Ditto.
9354 * tree-ssa-phiopt.c: Ditto.
9355 * tree-ssa-reassoc.c: Ditto.
9356 * tree-switch-conversion.c: Ditto.
9357 * tree-vect-data-refs.c: Ditto.
9358 * tree-vect-generic.c: Ditto.
9359 * tree-vect-loop.c: Ditto.
9360 * tree-vect-patterns.c: Ditto.
9361 * tree-vect-slp.c: Ditto.
9362 * tree-vect-stmts.c: Ditto.
9363 * tree-vrp.c: Ditto.
9364 * value-prof.c: Ditto.
9365 * config/aarch64/aarch64-builtins.c: Ditto.
9366 * config/alpha/alpha.c: Ditto.
9367 * config/arm/arm.c: Ditto.
9368 * config/cris/cris.c: Ditto.
9369 * config/epiphany/epiphany.c: Ditto.
9370 * config/frv/frv.c: Ditto.
9371 * config/h8300/h8300.c: Ditto.
9372 * config/ia64/ia64.c: Ditto.
9373 * config/iq2000/iq2000.c: Ditto.
9374 * config/m32c/m32c.c: Ditto.
9375 * config/mep/mep.c: Ditto.
9376 * config/microblaze/microblaze.c: Ditto.
9377 * config/mips/mips.c: Ditto.
9378 * config/mn10300/mn10300.c: Ditto.
9379 * config/moxie/moxie.c: Ditto.
9380 * config/msp430/msp430.c: Ditto.
9381 * config/nios2/nios2.c: Ditto.
9382 * config/pa/pa.c: Ditto.
9383 * config/rl78/rl78.c: Ditto.
9384 * config/rs6000/rs6000.c: Ditto.
9385 * config/rx/rx.c: Ditto.
9386 * config/s390/s390.c: Ditto.
9387 * config/sh/sh.c: Ditto.
9388 * config/sh/sh_treg_combine.cc: Ditto.
9389 * config/spu/spu.c: Ditto.
9390 * config/stormy16/stormy16.c: Ditto.
9391 * config/tilegx/mul-tables.c: Ditto.
9392 * config/tilegx/tilegx.c: Ditto.
9393 * config/tilepro/mul-tables.c: Ditto.
9394 * config/tilepro/tilepro.c: Ditto.
9395 * config/vax/vax.c: Ditto.
9397 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
9399 * doc/tm.texi.in (MOVE_BY_PIECES_P): Remove.
9400 (CLEAR_BY_PIECES_P): Likewise.
9401 (SET_BY_PIECES_P): Likewise.
9402 (STORE_BY_PIECES_P): Likewise.
9403 * doc/tm.texi: Regenerate.
9404 * system.h: Poison MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P,
9405 SET_BY_PIECES_P, STORE_BY_PIECES_P.
9406 * expr.c (MOVE_BY_PIECES_P): Remove.
9407 (CLEAR_BY_PIECES_P): Likewise.
9408 (SET_BY_PIECES_P): Likewise.
9409 (STORE_BY_PIECES_P): Likewise.
9410 (can_move_by_pieces): Rewrite in terms of
9411 targetm.use_by_pieces_infrastructure_p.
9412 (emit_block_move_hints): Likewise.
9413 (can_store_by_pieces): Likewise.
9414 (store_by_pieces): Likewise.
9415 (clear_storage_hints): Likewise.
9416 (emit_push_insn): Likewise.
9417 (expand_constructor): Likewise.
9419 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
9421 * config/aarch64/aarch64.c
9422 (aarch64_use_by_pieces_infrastructre_p): New.
9423 (TARGET_USE_BY_PIECES_INFRASTRUCTURE): Likewise.
9424 * config/aarch64/aarch64.h (STORE_BY_PIECES_P): Delete.
9426 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
9428 * config/mips/mips.h (MOVE_BY_PIECES_P): Remove.
9429 (STORE_BY_PIECES_P): Likewise.
9430 * config/mips/mips.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
9431 (mips_move_by_pieces_p): Rename to...
9432 (mips_use_by_pieces_infrastructure_p): ...this, use new hook
9433 parameters, use the default hook implementation as a
9436 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
9438 * config/sh/sh.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
9439 (sh_use_by_pieces_infrastructure_p): Likewise.
9440 * config/sh/sh.h (MOVE_BY_PIECES_P): Remove.
9441 (STORE_BY_PIECES_P): Likewise.
9442 (SET_BY_PIECES_P): Likewise.
9444 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
9446 * config/arc/arc.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
9447 (arc_use_by_pieces_infrastructure_p): Likewise.
9448 * confir/arc/arc.h (MOVE_BY_PIECES_P): Delete.
9449 (CAN_MOVE_BY_PIECES): Likewise.
9451 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
9453 * config/s390/s390.c (s390_use_by_pieces_infrastructure_p): New.
9454 (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Likewise.
9455 * config/s390/s390.h (MOVE_BY_PIECES_P): Remove.
9456 (CLEAR_BY_PIECES): Likewise.
9457 (SET_BY_PIECES): Likewise.
9458 (STORE_BY_PIECES): Likewise.
9460 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
9462 * target.def (use_by_pieces_infrastructure_p): New.
9463 * doc/tm.texi.in (MOVE_BY_PIECES_P): Describe that this macro
9465 (STORE_BY_PIECES_P): Likewise.
9466 (CLEAR_BY_PIECES_P): Likewise.
9467 (SET_BY_PIECES_P): Likewise.
9468 (TARGET_MOVE_BY_PIECES_PROFITABLE_P): Add hook.
9469 * doc/tm.texi: Regenerate.
9470 * expr.c (MOVE_BY_PIECES_P): Rewrite in terms of
9471 TARGET_USE_BY_PIECES_INFRASTRUCTURE_P.
9472 (STORE_BY_PIECES_P): Likewise.
9473 (CLEAR_BY_PIECES_P): Likewise.
9474 (SET_BY_PIECES_P): Likewise.
9475 (STORE_MAX_PIECES): Move to...
9476 * defaults.h (STORE_MAX_PIECES): ...here.
9477 * targhooks.c (get_move_ratio): New.
9478 (default_use_by_pieces_infrastructure_p): Likewise.
9479 * targhooks.h (default_use_by_pieces_infrastructure_p): New.
9480 * target.h (by_pieces_operation): New.
9482 2014-10-31 Uros Bizjak <ubizjak@gmail.com>
9485 * config/i386/i386.c (ix86_expand_args_builtin): Remove extra
9486 assignment to 'nargs' variable.
9488 2014-10-31 Uros Bizjak <ubizjak@gmail.com>
9491 * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
9492 * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
9493 * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
9494 be reloaded through memory.
9498 2014-10-31 Jakub Jelinek <jakub@redhat.com>
9500 PR rtl-optimization/63659
9501 * ree.c (update_reg_equal_equiv_notes): New function.
9502 (combine_set_extension, transform_ifelse): Use it.
9504 2014-10-31 Jeff Law <law@redhat.com>
9506 * doc/contrib.texi: Add contribution notes for Balaji Iyer (Cilk+)
9507 and Jonny Grant (collect2).
9509 2014-10-31 Richard Biener <rguenther@suse.de>
9511 * builtins.c (fold_builtin_atomic_always_lock_free): Use
9512 CONVERT_EXPR_P, CONVERT_EXPR_CODE_P and CASE_CONVERT where
9514 (fold_builtin_expect): Likewise.
9515 (integer_valued_real_p): Likewise.
9516 * cfgexpand.c (expand_debug_expr): Likewise.
9517 * ipa-inline-analysis.c (eliminated_by_inlining_prob): Likewise.
9518 (find_foldable_builtin_expect): Likewise.
9519 * trans-mem.c (thread_private_new_memory): Likewise.
9520 * tree-affine.c (aff_combination_expand): Likewise.
9521 * tree-data-ref.c (initialize_matrix_A): Likewise.
9522 * tree-inline.c (copy_bb): Likewise.
9523 * tree-pretty-print.c (dump_function_name): Likewise.
9524 (print_call_name): Likewise.
9525 * tree-ssa-forwprop.c (constant_pointer_difference): Likewise.
9526 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise.
9527 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
9528 * tree-vect-patterns.c (vect_handle_widen_op_by_const): Likewise.
9529 (vect_recog_widen_mult_pattern): Likewise.
9530 (vect_operation_fits_smaller_type): Likewise.
9531 * tree-vrp.c (find_assert_locations_1): Likewise.
9532 * tree-ssa-dom.c (initialize_hash_element): Canonicalize
9533 converts to NOP_EXPR.
9535 2014-10-31 Richard Biener <rguenther@suse.de>
9537 * genmatch.c (expr::gen_transform): Use NOP_EXPRs instead of
9538 CONVERT_EXPRs in generated code.
9539 (dt_simplify::gen): Likewise.
9541 2014-10-31 Evgeny Stupachenko <evstupac@gmail.com>
9544 * config/i386/i386.c (ix86_init_pic_reg): Emit SET_GOT to
9545 REAL_PIC_OFFSET_TABLE_REGNUM for mcount profiling.
9546 (ix86_save_reg): Save REAL_PIC_OFFSET_TABLE_REGNUM when profiling
9547 using mcount in 32bit PIC mode.
9548 (ix86_elim_entry_set_got): New.
9549 (ix86_expand_prologue): For the mcount profiling emit new SET_GOT
9550 in PROLOGUE, delete initial if possible.
9552 2014-10-31 Eric Botcazou <ebotcazou@adacore.com>
9554 * ipa-inline.c (want_inline_small_function_p): Fix typo and formatting.
9555 (want_inline_function_to_all_callers_p): Fix formatting and simplify.
9557 2014-10-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
9559 PR tree-optimization/63259
9560 * tree-ssa-math-opts.c (bswap_replace): Replace expression by a
9561 rotation left if it is a 16 bit byte swap.
9562 (pass_optimize_bswap::execute): Also consider bswap in LROTATE_EXPR
9563 and RROTATE_EXPR statements if it is a byte rotation.
9565 2014-10-31 Jakub Jelinek <jakub@redhat.com>
9568 * tree-vrp.c (simplify_internal_call_using_ranges): For subcode ==
9569 MINUS_EXPR, check overflow on vr0.min - vr1.max and vr0.max - vr1.min
9570 instead of vr0.min - vr1.min and vr0.max - vr1.max.
9572 2014-10-31 Max Ostapenko <m.ostapenko@partner.samsung.com>
9575 * ipa-icf.c (sem_function::~sem_function): Change free to delete to avoid
9576 alloc-dealloc mismatch with new, called in ipa_icf::sem_function::init.
9578 2014-10-30 Felix Yang <felix.yang@huawei.com>
9580 * config/xtensa/xtensa.h (TARGET_LOOPS): New Macro.
9581 * config/xtensa/xtensa.c: Include dumpfile.h and hw-doloop.h.
9582 (xtensa_reorg, xtensa_reorg_loops): New.
9583 (xtensa_can_use_doloop_p, xtensa_invalid_within_doloop): New.
9584 (hwloop_optimize, hwloop_fail, hwloop_pattern_reg): New.
9585 (xtensa_emit_loop_end): Emit the zero-overhead loop end label.
9586 (xtensa_doloop_hooks): Define.
9587 * config/xtensa/xtensa.md (doloop_end, loop_end): New
9588 (zero_cost_loop_start): Rewritten.
9589 (zero_cost_loop_end): Likewise.
9591 2014-10-30 Steve Ellcey <sellcey@imgtec.com>
9593 * config.gcc (mips*-*-linux*): Combine 32 and 64 bit cases.
9595 2014-10-30 Richard Biener <rguenther@suse.de>
9597 * genmatch.c: Remove <map>, <utility> and <string> includes.
9598 Include ggc.h and hash-map.h.
9599 (ggc_internal_cleared_alloc): Provide stub definition.
9600 (ggc_free): Likewise.
9601 (struct capture_id_map_hasher): New traits for hash_map.
9602 (cid_map_t): New typedef.
9603 (everywhere else): Replace std::map use with cid_map_t.
9604 * hash-map.h (hash_map::elements): New member function.
9605 * Makefile.in (build/genmatch.o): Add $(HASH_TABLE_H),
9606 hash-map.h and $(GGC_H) as dependency.
9608 2014-10-30 Richard Biener <rguenther@suse.de>
9610 * genmatch.c (capture_info::walk_c_expr): Ignore capture
9611 uses inside TREE_TYPE ().
9612 * gimple-ssa-strength-reduction.c (stmt_cost): Use CASE_CONVERT.
9613 (find_candidates_dom_walker::before_dom_children): Likewise.
9614 (replace_mult_candidate): Use CONVERT_EXPR_CODE_P.
9615 (replace_profitable_candidates): Likewise.
9616 * tree-ssa-dom.c (initialize_hash_element): Canonicalize
9617 CONVERT_EXPR_CODE_P to CONVERT_EXPR.
9618 * convert.c (convert_to_integer): Use CASE_CONVERT.
9620 2014-10-30 Richard Biener <rguenther@suse.de>
9622 * match.pd: Implement more patterns that simplify to a single value.
9623 * fold-const.c (fold_binary_loc): Remove them here.
9624 * tree-ssa-forwprop.c (simplify_bitwise_binary): Likewise.
9625 (fwprop_ssa_val): Remove restriction on single uses.
9627 2014-10-30 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9629 * config/avr/driver-avr.c (avr_set_current_device): Remove.
9631 2014-10-30 Martin Liska <mliska@suse.cz>
9635 * ipa-icf-gimple.c (func_checker::parse_labels): Missing comment added.
9636 (func_checker::compare_gimple_label): Simlified comparison introduced.
9637 * ipa-icf-gimple.h: Missing comment added.
9639 2014-10-30 Jeff Law <law@redhat.com>
9641 * config/pa/pa-protos.h (pa_output_arg_descriptor): Strengthen
9642 argument from rtx to rtx_insn *.
9643 (compute_movmem_length, compute_clrmem_length): Likewise.
9644 (copy_fp_args, length_fp_args): Likewise.
9645 * config/pa/pa.c (legitimize_pic_address): Promote local variable
9646 "insn" from rtx to rtx_insn *.
9647 (legitimize_tls_address, pa_emit_move_sequence): Likewise.
9648 (pa_output_block_move, store_reg, store_reg_modify): Likewise.
9649 (set_reg_plus_d, pa_expand_prologue, hppa_profile_hook): Likewise.
9650 (branch_to_delay_slot_p, branch_needs_nop_p, use_skip_p): Likewise.
9651 (pa_output_arg_descriptor): Strengthen argument to an rtx_insn *.
9652 (compute_movmem_length, compute_clrmem_length): Likewise.
9653 (copy_fp-args, length_fp_args): Likewise.
9655 2014-10-29 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9657 * config/arm/arm.h (MACHMODE): Treat machine_mode as a
9659 (CUMULATIVE_ARGS): Guard against target includes.
9660 (machine_function): Likewise.
9662 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9664 * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
9665 recog state after aarch64_prev_real_insn call.
9667 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9669 * config/aarch64/aarch64.h (MACHMODE): Add 'enum' to machine_mode.
9671 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9673 * config/arm/arm.h (MACHMODE): Add 'enum' to machine_mode.
9674 (struct machine_function): Gate definition on
9675 !defined(USED_FOR_TARGET).
9677 2014-10-29 DJ Delorie <dj@redhat.com>
9679 * expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.
9681 2014-10-29 Martin Liska <mliska@suse.cz>
9684 * cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put
9685 to local declarations.
9686 * function.c (add_local_decl): Implementation moved from header
9687 file, assert introduced for tree type.
9688 * function.h: Likewise.
9690 2014-10-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
9692 * godump.c (go_format_type): Represent "float _Complex" and
9693 "double _Complex" as complex64 or complex128 in Go, as appropriate.
9695 2014-10-29 Richard Biener <rguenther@suse.de>
9697 * match.pd: Implement a first set of conversion patterns.
9698 * fold-const.c (fold_unary_loc): Remove them here.
9699 * tree-ssa-forwprop.c (simplify_vce): Remove.
9700 (pass_forwprop::execute): Do not call simplify_vce.
9702 2014-10-29 Richard Sandiford <richard.sandiford@arm.com>
9704 * addresses.h, alias.c, asan.c, auto-inc-dec.c, bt-load.c, builtins.c,
9705 builtins.h, caller-save.c, calls.c, calls.h, cfgexpand.c, cfgloop.h,
9706 cfgrtl.c, combine.c, compare-elim.c, config/aarch64/aarch64-builtins.c,
9707 config/aarch64/aarch64-protos.h, config/aarch64/aarch64-simd.md,
9708 config/aarch64/aarch64.c, config/aarch64/aarch64.h,
9709 config/aarch64/aarch64.md, config/alpha/alpha-protos.h,
9710 config/alpha/alpha.c, config/arc/arc-protos.h, config/arc/arc.c,
9711 config/arc/arc.h, config/arc/predicates.md,
9712 config/arm/aarch-common-protos.h, config/arm/aarch-common.c,
9713 config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
9714 config/arm/arm.md, config/arm/neon.md, config/arm/thumb2.md,
9715 config/avr/avr-log.c, config/avr/avr-protos.h, config/avr/avr.c,
9716 config/avr/avr.md, config/bfin/bfin-protos.h, config/bfin/bfin.c,
9717 config/c6x/c6x-protos.h, config/c6x/c6x.c, config/c6x/c6x.md,
9718 config/cr16/cr16-protos.h, config/cr16/cr16.c,
9719 config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.md,
9720 config/darwin-protos.h, config/darwin.c,
9721 config/epiphany/epiphany-protos.h, config/epiphany/epiphany.c,
9722 config/epiphany/epiphany.md, config/fr30/fr30.c,
9723 config/frv/frv-protos.h, config/frv/frv.c, config/frv/predicates.md,
9724 config/h8300/h8300-protos.h, config/h8300/h8300.c,
9725 config/i386/i386-builtin-types.awk, config/i386/i386-protos.h,
9726 config/i386/i386.c, config/i386/i386.md, config/i386/predicates.md,
9727 config/i386/sse.md, config/i386/sync.md, config/ia64/ia64-protos.h,
9728 config/ia64/ia64.c, config/iq2000/iq2000-protos.h,
9729 config/iq2000/iq2000.c, config/iq2000/iq2000.md,
9730 config/lm32/lm32-protos.h, config/lm32/lm32.c,
9731 config/m32c/m32c-protos.h, config/m32c/m32c.c,
9732 config/m32r/m32r-protos.h, config/m32r/m32r.c,
9733 config/m68k/m68k-protos.h, config/m68k/m68k.c,
9734 config/mcore/mcore-protos.h, config/mcore/mcore.c,
9735 config/mcore/mcore.md, config/mep/mep-protos.h, config/mep/mep.c,
9736 config/microblaze/microblaze-protos.h, config/microblaze/microblaze.c,
9737 config/mips/mips-protos.h, config/mips/mips.c,
9738 config/mmix/mmix-protos.h, config/mmix/mmix.c,
9739 config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
9740 config/moxie/moxie.c, config/msp430/msp430-protos.h,
9741 config/msp430/msp430.c, config/nds32/nds32-cost.c,
9742 config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
9743 config/nds32/nds32-protos.h, config/nds32/nds32.c,
9744 config/nios2/nios2-protos.h, config/nios2/nios2.c,
9745 config/pa/pa-protos.h, config/pa/pa.c, config/pdp11/pdp11-protos.h,
9746 config/pdp11/pdp11.c, config/rl78/rl78-protos.h, config/rl78/rl78.c,
9747 config/rs6000/altivec.md, config/rs6000/rs6000-c.c,
9748 config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
9749 config/rs6000/rs6000.h, config/rx/rx-protos.h, config/rx/rx.c,
9750 config/s390/predicates.md, config/s390/s390-protos.h,
9751 config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
9752 config/sh/predicates.md, config/sh/sh-protos.h, config/sh/sh.c,
9753 config/sh/sh.md, config/sparc/predicates.md,
9754 config/sparc/sparc-protos.h, config/sparc/sparc.c,
9755 config/sparc/sparc.md, config/spu/spu-protos.h, config/spu/spu.c,
9756 config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
9757 config/tilegx/tilegx-protos.h, config/tilegx/tilegx.c,
9758 config/tilegx/tilegx.md, config/tilepro/tilepro-protos.h,
9759 config/tilepro/tilepro.c, config/v850/v850-protos.h,
9760 config/v850/v850.c, config/v850/v850.md, config/vax/vax-protos.h,
9761 config/vax/vax.c, config/vms/vms-c.c, config/xtensa/xtensa-protos.h,
9762 config/xtensa/xtensa.c, coverage.c, cprop.c, cse.c, cselib.c, cselib.h,
9763 dbxout.c, ddg.c, df-problems.c, dfp.c, dfp.h, doc/md.texi,
9764 doc/rtl.texi, doc/tm.texi, doc/tm.texi.in, dojump.c, dse.c,
9765 dwarf2cfi.c, dwarf2out.c, dwarf2out.h, emit-rtl.c, emit-rtl.h,
9766 except.c, explow.c, expmed.c, expmed.h, expr.c, expr.h, final.c,
9767 fixed-value.c, fixed-value.h, fold-const.c, function.c, function.h,
9768 fwprop.c, gcse.c, gengenrtl.c, genmodes.c, genopinit.c, genoutput.c,
9769 genpreds.c, genrecog.c, gensupport.c, gimple-ssa-strength-reduction.c,
9770 graphite-clast-to-gimple.c, haifa-sched.c, hooks.c, hooks.h, ifcvt.c,
9771 internal-fn.c, ira-build.c, ira-color.c, ira-conflicts.c, ira-costs.c,
9772 ira-emit.c, ira-int.h, ira-lives.c, ira.c, ira.h, jump.c, langhooks.h,
9773 libfuncs.h, lists.c, loop-doloop.c, loop-invariant.c, loop-iv.c,
9774 loop-unroll.c, lower-subreg.c, lower-subreg.h, lra-assigns.c,
9775 lra-constraints.c, lra-eliminations.c, lra-int.h, lra-lives.c,
9776 lra-spills.c, lra.c, lra.h, machmode.h, omp-low.c, optabs.c, optabs.h,
9777 output.h, postreload.c, print-tree.c, read-rtl.c, real.c, real.h,
9778 recog.c, recog.h, ree.c, reg-stack.c, regcprop.c, reginfo.c,
9779 regrename.c, regs.h, reload.c, reload.h, reload1.c, rtl.c, rtl.h,
9780 rtlanal.c, rtlhash.c, rtlhooks-def.h, rtlhooks.c, sched-deps.c,
9781 sel-sched-dump.c, sel-sched-ir.c, sel-sched-ir.h, sel-sched.c,
9782 simplify-rtx.c, stmt.c, stor-layout.c, stor-layout.h, target.def,
9783 targhooks.c, targhooks.h, tree-affine.c, tree-call-cdce.c,
9784 tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-if-conv.c,
9785 tree-inline.c, tree-outof-ssa.c, tree-scalar-evolution.c,
9786 tree-ssa-address.c, tree-ssa-ccp.c, tree-ssa-loop-ivopts.c,
9787 tree-ssa-loop-ivopts.h, tree-ssa-loop-manip.c,
9788 tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c, tree-ssa-reassoc.c,
9789 tree-ssa-sccvn.c, tree-streamer-in.c, tree-switch-conversion.c,
9790 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop.c,
9791 tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
9792 tree-vrp.c, tree.c, tree.h, tsan.c, ubsan.c, valtrack.c,
9793 var-tracking.c, varasm.c: Remove redundant enum from
9795 * gengtype.c (main): Treat machine_mode as a scalar typedef.
9796 * genmodes.c (emit_insn_modes_h): Hide inline functions if
9799 2014-10-29 Richard Sandiford <richard.sandiford@arm.com>
9801 PR rtl-optimization/63340 (part 2)
9802 * rtl.h (invalid_mode_change_p): Delete.
9803 (valid_mode_changes_for_regno): New function.
9804 * reginfo.c (invalid_mode_change_p): Delete.
9805 (valid_mode_changes_for_regno): New function.
9806 * ira-costs.c (setup_regno_cost_classes_by_aclass): Restrict the
9807 classes to registers that are allowed by valid_mode_changes_for_regno.
9808 (setup_regno_cost_classes_by_mode): Likewise.
9809 (print_allocno_costs): Remove invalid_mode_change_p test.
9810 (print_pseudo_costs, find_costs_and_classes): Likewise.
9812 2014-10-29 Richard Sandiford <richard.sandiford@arm.com>
9814 PR rtl-optimization/63340 (part 1)
9815 * ira-costs.c (all_cost_classes): New variable.
9816 (complete_cost_classes): New function, split out from...
9817 (setup_cost_classes): ...here.
9818 (initiate_regno_cost_classes): Set up all_cost_classes.
9819 (restrict_cost_classes): New function.
9820 (setup_regno_cost_classes_by_aclass): Restrict the cost classes to
9821 registers that are valid for the register's mode.
9822 (setup_regno_cost_classes_by_mode): Model the mode cache as a
9823 restriction of all_cost_classes to a particular mode.
9824 (print_allocno_costs): Remove contains_reg_of_mode check.
9825 (print_pseudo_costs, find_costs_and_classes): Likewise.
9827 2014-10-29 Richard Biener <rguenther@suse.de>
9829 PR tree-optimization/63666
9830 * tree-vect-slp.c (vect_get_mask_element): Properly handle
9831 accessing out-of-bound elements.
9833 2014-10-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
9834 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9835 Anna Tikhonova <anna.tikhonova@intel.com>
9836 Ilya Tocar <ilya.tocar@intel.com>
9837 Andrey Turetskiy <andrey.turetskiy@intel.com>
9838 Ilya Verbin <ilya.verbin@intel.com>
9839 Kirill Yukhin <kirill.yukhin@intel.com>
9840 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9842 * config/i386/i386.md
9843 (movhi_internal): Always detect maskmov.
9844 (movqi_internal): Fix target check.
9846 2014-10-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
9847 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9848 Anna Tikhonova <anna.tikhonova@intel.com>
9849 Ilya Tocar <ilya.tocar@intel.com>
9850 Andrey Turetskiy <andrey.turetskiy@intel.com>
9851 Ilya Verbin <ilya.verbin@intel.com>
9852 Kirill Yukhin <kirill.yukhin@intel.com>
9853 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9855 * config/i386/avx512bwintrin.h: Add new intrinsics.
9856 * config/i386/avx512vlbwintrin.h: Ditto.
9857 * config/i386/avx512vlintrin.h: Ditto.
9859 2014-10-28 Dominik Vogt <vogt@linux.vnet.ibm.com>
9861 * godump.c (precision_to_units): New helper function.
9862 (go_append_artificial_name): Ditto.
9863 (go_append_decl_name): Ditto.
9864 (go_append_bitfield): Ditto.
9865 (go_get_uinttype_for_precision): Ditto.
9866 (go_append_padding): Ditto.
9867 (go_force_record_alignment): Ditto.
9868 (go_format_type): Represent unions with an array of uints of the size
9869 of the alignment in go. This fixes the 'random' size of the union's
9870 representation using just the first field.
9871 (go_format_type): Add argument that indicates whether a record is
9872 nested (used for generation of artificial go names).
9873 (go_output_fndecl): Adapt to new go_format_type signature.
9874 (go_output_typedef): Ditto.
9875 (go_output_var): Ditto.
9876 (go_output_var): Prefer to output type as alias (typedef).
9877 (go_format_type): Bitfields in records are simulated as arrays of bytes
9880 * godump.c (go_format_type): Fix handling of arrays with zero elements.
9882 2014-10-28 Andrew MacLeod <amacleod@redhat.com>
9884 * cgraph.h: Flatten. Remove all include files.
9885 (symbol_table::initialize): Move to cgraph.c.
9886 * cgraph.c: Adjust include files.
9887 (symbol_table::initialize): Relocate from cgraph.h.
9888 * gengtype.c (open_base_files): Adjust include files.
9889 * gccplugin.h: Add hash-map.h, is-a.h, plugin-api.h, and ipa-ref.h to
9891 * ipa-inline.h: Remove all include files.
9892 * ipa-prop.h: Ditto.
9893 * ipa-reference.h: Ditto.
9894 * ipa-utils.h: Ditto:
9895 * lto-streamer.h: Remove cgraph.h from include list.
9896 * asan.c: Adjust include files.
9897 * auto-profile.c: Ditto.
9898 * bb-reorder.c: Ditto.
9900 * cfgexpand.c: Ditto.
9901 * cgraphbuild.c: Ditto.
9902 * cgraphclones.c: Ditto.
9903 * cgraphunit.c: Ditto.
9905 * coverage.c: Ditto.
9906 * data-streamer.c: Ditto.
9907 * data-streamer-in.c: Ditto.
9908 * data-streamer-out.c: Ditto.
9910 * dwarf2out.c: Ditto.
9914 * fold-const.c: Ditto.
9915 * ggc-page.c: Ditto.
9916 * gimple-fold.c: Ditto.
9917 * gimple-iterator.c: Ditto.
9918 * gimple-pretty-print.c: Ditto.
9919 * gimple-streamer-in.c: Ditto.
9920 * gimple-streamer-out.c: Ditto.
9921 * gimplify.c: Ditto.
9923 * ipa-comdats.c: Ditto.
9925 * ipa-devirt.c: Ditto.
9927 * ipa-icf-gimple.c: Ditto.
9928 * ipa-inline-analysis.c: Ditto.
9929 * ipa-inline.c: Ditto.
9930 * ipa-inline-transform.c: Ditto.
9931 * ipa-polymorphic-call.c: Ditto.
9932 * ipa-profile.c: Ditto.
9933 * ipa-prop.c: Ditto.
9934 * ipa-pure-const.c: Ditto.
9936 * ipa-reference.c: Ditto.
9937 * ipa-split.c: Ditto.
9938 * ipa-utils.c: Ditto.
9939 * ipa-visibility.c: Ditto.
9940 * langhooks.c: Ditto.
9941 * lto-cgraph.c: Ditto.
9942 * lto-compress.c: Ditto.
9943 * lto-opts.c: Ditto.
9944 * lto-section-in.c: Ditto.
9945 * lto-section-out.c: Ditto.
9946 * lto-streamer.c: Ditto.
9947 * lto-streamer-in.c: Ditto.
9948 * lto-streamer-out.c: Ditto.
9950 * opts-global.c: Ditto.
9953 * print-tree.c: Ditto.
9956 * stor-layout.c: Ditto.
9959 * trans-mem.c: Ditto.
9961 * tree-cfg.c: Ditto.
9963 * tree-emutls.c: Ditto.
9964 * tree-inline.c: Ditto.
9965 * tree-nested.c: Ditto.
9966 * tree-pretty-print.c: Ditto.
9967 * tree-profile.c: Ditto.
9968 * tree-sra.c: Ditto.
9969 * tree-ssa-alias.c: Ditto.
9970 * tree-ssa-loop-ivcanon.c: Ditto.
9971 * tree-ssa-loop-ivopts.c: Ditto.
9972 * tree-ssa-pre.c: Ditto.
9973 * tree-ssa-structalias.c: Ditto.
9974 * tree-streamer.c: Ditto.
9975 * tree-streamer-in.c: Ditto.
9976 * tree-streamer-out.c: Ditto.
9977 * tree-switch-conversion.c: Ditto.
9978 * tree-tailcall.c: Ditto.
9979 * tree-vect-data-refs.c: Ditto.
9980 * tree-vectorizer.c: Ditto.
9981 * tree-vect-stmts.c: Ditto.
9984 * value-prof.c: Ditto.
9987 * config/arm/arm.c: Ditto.
9988 * config/bfin/bfin.c: Ditto.
9989 * config/c6x/c6x.c: Ditto.
9990 * config/cris/cris.c: Ditto.
9991 * config/darwin.c: Ditto.
9992 * config/darwin-c.c: Ditto.
9993 * config/i386/i386.c: Ditto.
9994 * config/i386/winnt.c: Ditto.
9995 * config/microblaze/microblaze.c: Ditto.
9996 * config/mips/mips.c: Ditto.
9997 * config/rs6000/rs6000.c: Ditto.
9998 * config/rx/rx.c: Ditto.
10000 2014-10-28 Richard Biener <rguenther@suse.de>
10002 * gimple-fold.h (follow_single_use_edges): Declare.
10003 * gimple-fold.c (follow_single_use_edges): New function.
10004 (gimple_fold_stmt_to_constant_1): Dispatch to gimple_simplify.
10005 * tree-ssa-propagate.c
10006 (substitute_and_fold_dom_walker::before_dom_children): Allow
10007 following single-use edges when folding stmts we propagated into.
10009 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
10010 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10011 Anna Tikhonova <anna.tikhonova@intel.com>
10012 Ilya Tocar <ilya.tocar@intel.com>
10013 Andrey Turetskiy <andrey.turetskiy@intel.com>
10014 Ilya Verbin <ilya.verbin@intel.com>
10015 Kirill Yukhin <kirill.yukhin@intel.com>
10016 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10018 * config/i386/avx512bwintrin.h: New.
10019 * config/i386/avx512dqintrin.h: Ditto.
10020 * config/i386/avx512vlbwintrin.h: Ditto.
10021 * config/i386/avx512vldqintrin.h: Ditto.
10022 * config/i386/avx512vlintrin.h: Ditto.
10023 * config/i386/immintrin.h: Include avx512vlintrin.h, avx512bwintrin.h,
10024 avx512dqintrin.h, avx512vlbwintrin.h, avx512vldqintrin.h.
10026 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
10027 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10028 Anna Tikhonova <anna.tikhonova@intel.com>
10029 Ilya Tocar <ilya.tocar@intel.com>
10030 Andrey Turetskiy <andrey.turetskiy@intel.com>
10031 Ilya Verbin <ilya.verbin@intel.com>
10032 Kirill Yukhin <kirill.yukhin@intel.com>
10033 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10035 * config/i386/i386.c
10036 (ix86_expand_args_builtin): Handle avx_vpermilv4df_mask,
10037 avx_shufpd256_mask, avx_vpermilv2df_mask.
10039 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
10040 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10041 Anna Tikhonova <anna.tikhonova@intel.com>
10042 Ilya Tocar <ilya.tocar@intel.com>
10043 Andrey Turetskiy <andrey.turetskiy@intel.com>
10044 Ilya Verbin <ilya.verbin@intel.com>
10045 Kirill Yukhin <kirill.yukhin@intel.com>
10046 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10048 * config/i386/i386.c
10049 (ix86_init_mmx_sse_builtins):
10050 Define __builtin_ia32_gather3siv2df, __builtin_ia32_gather3siv4df,
10051 __builtin_ia32_gather3div2df, __builtin_ia32_gather3div4df,
10052 __builtin_ia32_gather3siv4sf, __builtin_ia32_gather3siv8sf,
10053 __builtin_ia32_gather3div4sf, __builtin_ia32_gather3div8sf,
10054 __builtin_ia32_gather3siv2di, __builtin_ia32_gather3siv4di,
10055 __builtin_ia32_gather3div2di, __builtin_ia32_gather3div4di,
10056 __builtin_ia32_gather3siv4si, __builtin_ia32_gather3siv8si,
10057 __builtin_ia32_gather3div4si, __builtin_ia32_gather3div8si,
10058 __builtin_ia32_gather3altsiv4df, __builtin_ia32_gather3altdiv8sf,
10059 __builtin_ia32_gather3altsiv4di, __builtin_ia32_gather3altdiv8si,
10060 __builtin_ia32_scattersiv8sf, __builtin_ia32_scattersiv4sf,
10061 __builtin_ia32_scattersiv4df, __builtin_ia32_scattersiv2df,
10062 __builtin_ia32_scatterdiv8sf, __builtin_ia32_scatterdiv4sf,
10063 __builtin_ia32_scatterdiv4df, __builtin_ia32_scatterdiv2df,
10064 __builtin_ia32_scattersiv8si, __builtin_ia32_scattersiv4si,
10065 __builtin_ia32_scattersiv4di, __builtin_ia32_scattersiv2di,
10066 __builtin_ia32_scatterdiv8si, __builtin_ia32_scatterdiv4si,
10067 __builtin_ia32_scatterdiv4di, __builtin_ia32_scatterdiv2di.
10069 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
10070 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10071 Anna Tikhonova <anna.tikhonova@intel.com>
10072 Ilya Tocar <ilya.tocar@intel.com>
10073 Andrey Turetskiy <andrey.turetskiy@intel.com>
10074 Ilya Verbin <ilya.verbin@intel.com>
10075 Kirill Yukhin <kirill.yukhin@intel.com>
10076 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10078 * config/i386/i386.c
10079 (ix86_builtins): Add IX86_BUILTIN_GATHER3ALTSIV4DF,
10080 IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTSIV4DI,
10081 IX86_BUILTIN_GATHER3ALTDIV8SI.
10082 (ix86_expand_builtin):
10083 Handle IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTDIV8SI,
10084 IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV4DI,
10085 IX86_BUILTIN_SCATTERDIV2DF, IX86_BUILTIN_SCATTERDIV4DF,
10086 IX86_BUILTIN_GATHER3ALTSIV4DI, IX86_BUILTIN_GATHER3ALTSIV4DF,
10087 IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
10088 IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3DIV8SI,
10089 IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV4DI,
10090 IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3SIV8SF,
10091 IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
10092 IX86_BUILTIN_GATHER3DIV2DI, IX86_BUILTIN_GATHER3DIV4DI,
10093 IX86_BUILTIN_SCATTERDIV4SF, IX86_BUILTIN_SCATTERSIV2DI,
10094 IX86_BUILTIN_GATHER3SIV2DI, IX86_BUILTIN_GATHER3SIV4SI,
10095 IX86_BUILTIN_GATHER3SIV4SF, IX86_BUILTIN_GATHER3SIV2DF,
10096 IX86_BUILTIN_SCATTERSIV2DF, IX86_BUILTIN_SCATTERDIV4SI,
10097 IX86_BUILTIN_SCATTERSIV4SF, IX86_BUILTIN_SCATTERSIV4SI,
10098 IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
10099 IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV8SF,
10100 IX86_BUILTIN_GATHER3DIV4SF, IX86_BUILTIN_SCATTERDIV8SF.
10101 (ix86_vectorize_builtin_gather): Update V2DFmode, V4DFmode, V2DImode,
10102 V4DImode, V4SFmode, V8SFmode, V4SImode, V8SImode.
10104 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
10105 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10106 Anna Tikhonova <anna.tikhonova@intel.com>
10107 Ilya Tocar <ilya.tocar@intel.com>
10108 Andrey Turetskiy <andrey.turetskiy@intel.com>
10109 Ilya Verbin <ilya.verbin@intel.com>
10110 Kirill Yukhin <kirill.yukhin@intel.com>
10111 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10113 * config/i386/i386-builtin-types.def
10132 (V4SF_FTYPE_V2DF_V4SF_QI): Ditto.
10133 (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
10134 (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
10135 (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
10136 (V16SF_FTYPE_V16HI): Ditto.
10137 (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
10138 (V16SF_FTYPE_V16SI): Ditto.
10139 (V4DI_FTYPE_V4DI): Ditto.
10140 (V16SI_FTYPE_V16SF): Ditto.
10141 (V8DI_FTYPE_PV2DI): Ditto.
10142 (V8DF_FTYPE_PV2DF): Ditto.
10143 (V4DI_FTYPE_PV2DI): Ditto.
10144 (V4DF_FTYPE_PV2DF): Ditto.
10145 (V16SI_FTYPE_PV2SI): Ditto.
10146 (V16SF_FTYPE_PV2SF): Ditto.
10147 (V8SF_FTYPE_FLOAT): Ditto.
10148 (V4SF_FTYPE_FLOAT): Ditto.
10149 (V4DF_FTYPE_DOUBLE): Ditto.
10150 (V8SF_FTYPE_PV4SF): Ditto.
10151 (V8SI_FTYPE_PV4SI): Ditto.
10152 (V4SI_FTYPE_PV2SI): Ditto.
10153 (V8SF_FTYPE_PV2SF): Ditto.
10154 (V8SI_FTYPE_PV2SI): Ditto.
10155 (V16SF_FTYPE_PV8SF): Ditto.
10156 (V16SI_FTYPE_PV8SI): Ditto.
10157 (V8DI_FTYPE_V8SF): Ditto.
10158 (V4DI_FTYPE_V4SF): Ditto.
10159 (V2DI_FTYPE_V4SF): Ditto.
10160 (V64QI_FTYPE_QI): Ditto.
10161 (V32HI_FTYPE_HI): Ditto.
10162 (V16UHI_FTYPE_V16UHI): Ditto.
10163 (V32UHI_FTYPE_V32UHI): Ditto.
10164 (V2UDI_FTYPE_V2UDI): Ditto.
10165 (V4UDI_FTYPE_V4UDI): Ditto.
10166 (V8UDI_FTYPE_V8UDI): Ditto.
10167 (V4USI_FTYPE_V4USI): Ditto.
10168 (V16USI_FTYPE_V16USI): Ditto.
10169 (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
10170 (V2DF_FTYPE_V8DF_INT): Ditto.
10171 (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
10172 (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
10173 (V8DF_FTYPE_V8DF_INT): Ditto.
10174 (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
10175 (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
10176 (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
10177 (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
10178 (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
10179 (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
10180 (V8DI_FTYPE_V8DI_INT): Ditto.
10181 (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
10182 (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
10183 (V8SF_FTYPE_V16SF_INT): Ditto.
10184 (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
10185 (V64QI_FTYPE_V32HI_V32HI): Ditto.
10186 (V32HI_FTYPE_V16SI_V16SI): Ditto.
10187 (V8DF_FTYPE_V8DF_V2DF_INT): Ditto.
10188 (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
10189 (V8DF_FTYPE_V8DF_V8DF_INT): Ditto.
10190 (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT): Ditto.
10191 (V8DF_FTYPE_V8DF_V8DF_V8DI_INT): Ditto.
10192 (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
10193 (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
10194 (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
10195 (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT): Ditto.
10196 (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
10197 (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
10198 (V32HI_FTYPE_V64QI_V64QI): Ditto.
10199 (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
10200 (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
10201 (V32HI_FTYPE_V32HI_V32HI): Ditto.
10202 (V32HI_FTYPE_V32HI_INT): Ditto.
10203 (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
10204 (V16SI_FTYPE_V32HI_V32HI): Ditto.
10205 (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
10206 (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
10207 (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
10208 (V8SI_FTYPE_V16SI_INT): Ditto.
10209 (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
10210 (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
10211 (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
10212 (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
10213 (V8DI_FTYPE_V8DI_V4DI_INT): Ditto.
10214 (V8DI_FTYPE_V8DI_V2DI_INT): Ditto.
10215 (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
10216 (V8DI_FTYPE_V16SI_V16SI): Ditto.
10217 (V8DI_FTYPE_V64QI_V64QI): Ditto.
10218 (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
10219 (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
10220 (V2DI_FTYPE_V8DI_INT): Ditto.
10221 (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
10222 (QI_FTYPE_QI): Ditto.
10223 (SI_FTYPE_SI): Ditto.
10224 (DI_FTYPE_DI): Ditto.
10225 (HI_FTYPE_V16QI): Ditto.
10226 (SI_FTYPE_V32QI): Ditto.
10227 (DI_FTYPE_V64QI): Ditto.
10228 (QI_FTYPE_V8HI): Ditto.
10229 (HI_FTYPE_V16HI): Ditto.
10230 (SI_FTYPE_V32HI): Ditto.
10231 (QI_FTYPE_V4SI): Ditto.
10232 (QI_FTYPE_V8SI): Ditto.
10233 (HI_FTYPE_V16SI): Ditto.
10234 (QI_FTYPE_V2DI): Ditto.
10235 (QI_FTYPE_V4DI): Ditto.
10236 (QI_FTYPE_V8DI): Ditto.
10237 (V16QI_FTYPE_HI): Ditto.
10238 (V32QI_FTYPE_SI): Ditto.
10239 (V64QI_FTYPE_DI): Ditto.
10240 (V8HI_FTYPE_QI): Ditto.
10241 (V16HI_FTYPE_HI): Ditto.
10242 (V32HI_FTYPE_SI): Ditto.
10243 (V4SI_FTYPE_QI): Ditto.
10244 (V4SI_FTYPE_HI): Ditto.
10245 (V8SI_FTYPE_QI): Ditto.
10246 (V8SI_FTYPE_HI): Ditto.
10247 (V2DI_FTYPE_QI): Ditto.
10248 (V4DI_FTYPE_QI): Ditto.
10249 (QI_FTYPE_QI_QI): Ditto.
10250 (SI_FTYPE_SI_SI): Ditto.
10251 (DI_FTYPE_DI_DI): Ditto.
10252 (QI_FTYPE_QI_INT): Ditto.
10253 (SI_FTYPE_SI_INT): Ditto.
10254 (DI_FTYPE_DI_INT): Ditto.
10255 (HI_FTYPE_V16QI_V16QI): Ditto.
10256 (HI_FTYPE_V16QI_V16QI_HI): Ditto.
10257 (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
10258 (SI_FTYPE_V32QI_V32QI): Ditto.
10259 (SI_FTYPE_V32QI_V32QI_SI): Ditto.
10260 (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
10261 (DI_FTYPE_V64QI_V64QI): Ditto.
10262 (DI_FTYPE_V64QI_V64QI_DI): Ditto.
10263 (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
10264 (QI_FTYPE_V8HI_V8HI): Ditto.
10265 (QI_FTYPE_V8HI_V8HI_QI): Ditto.
10266 (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
10267 (HI_FTYPE_V16HI_V16HI): Ditto.
10268 (HI_FTYPE_V16HI_V16HI_HI): Ditto.
10269 (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
10270 (SI_FTYPE_V32HI_V32HI): Ditto.
10271 (SI_FTYPE_V32HI_V32HI_SI): Ditto.
10272 (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
10273 (QI_FTYPE_V4SI_V4SI): Ditto.
10274 (QI_FTYPE_V4SI_V4SI_QI): Ditto.
10275 (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
10276 (QI_FTYPE_V8SI_V8SI): Ditto.
10277 (QI_FTYPE_V8SI_V8SI_QI): Ditto.
10278 (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
10279 (QI_FTYPE_V2DI_V2DI): Ditto.
10280 (QI_FTYPE_V2DI_V2DI_QI): Ditto.
10281 (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
10282 (QI_FTYPE_V4DI_V4DI): Ditto.
10283 (QI_FTYPE_V4DI_V4DI_QI): Ditto.
10284 (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
10285 (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
10286 (V4DF_FTYPE_V4DF_V4DI_INT): Ditto.
10287 (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
10288 (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
10289 (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
10290 (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
10291 (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
10292 (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
10293 (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
10294 (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
10295 (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
10296 (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
10297 (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
10298 (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
10299 (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
10300 (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
10301 (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
10302 (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
10303 (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
10304 (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
10305 (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
10306 (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
10307 (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
10308 (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
10309 (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
10310 (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
10311 (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
10312 (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
10313 (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
10314 (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
10315 (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
10316 (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
10317 (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
10318 (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
10319 (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
10320 (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
10321 (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
10322 (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
10323 (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
10324 (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
10325 (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
10326 (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
10327 (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
10328 (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
10329 (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
10330 (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
10331 (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
10332 (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
10333 (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
10334 (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
10335 (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
10336 (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
10337 (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
10338 (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
10339 (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
10340 (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
10341 (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
10342 (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
10343 (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
10344 (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
10345 (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
10346 (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
10347 (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
10348 (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
10349 (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
10350 (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
10351 (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
10352 (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
10353 (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
10354 (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
10355 (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
10356 (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
10357 (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
10358 (V32HI_FTYPE_V64QI_V64QI_INT): Ditto.
10359 (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
10360 (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
10361 (V16HI_FTYPE_V32QI_V32QI_INT): Ditto.
10362 (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
10363 (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
10364 (V8HI_FTYPE_V16QI_V16QI_INT): Ditto.
10365 (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
10366 (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
10367 (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
10368 (V8SI_FTYPE_SI_V8SI_QI): Ditto.
10369 (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
10370 (V4SI_FTYPE_SI_V4SI_QI): Ditto.
10371 (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
10372 (V4DI_FTYPE_DI_V4DI_QI): Ditto.
10373 (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
10374 (V2DI_FTYPE_DI_V2DI_QI): Ditto.
10375 (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
10376 (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
10377 (V64QI_FTYPE_QI_V64QI_DI): Ditto.
10378 (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
10379 (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
10380 (V32QI_FTYPE_QI_V32QI_SI): Ditto.
10381 (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
10382 (V16QI_FTYPE_QI_V16QI_HI): Ditto.
10383 (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
10384 (V32HI_FTYPE_HI_V32HI_SI): Ditto.
10385 (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
10386 (V16HI_FTYPE_HI_V16HI_HI): Ditto.
10387 (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
10388 (V8HI_FTYPE_HI_V8HI_QI): Ditto.
10389 (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
10390 (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
10391 (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
10392 (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
10393 (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
10394 (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
10395 (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
10396 (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
10397 (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
10398 (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
10399 (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
10400 (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
10401 (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
10402 (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
10403 (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
10404 (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
10405 (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
10406 (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
10407 (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
10408 (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
10409 (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
10410 (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
10411 (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
10412 (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
10413 (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
10414 (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
10415 (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
10416 (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
10417 (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
10418 (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
10419 (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
10420 (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
10421 (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
10422 (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
10423 (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
10424 (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
10425 (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
10426 (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
10427 (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
10428 (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
10429 (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
10430 (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
10431 (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
10432 (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
10433 (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
10434 (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
10435 (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
10436 (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
10437 (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
10438 (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
10439 (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
10440 (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
10441 (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
10442 (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
10443 (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
10444 (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
10445 (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
10446 (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
10447 (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
10448 (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
10449 (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
10450 (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
10451 (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
10452 (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
10453 (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
10454 (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
10455 (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
10456 (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
10457 (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
10458 (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
10459 (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
10460 (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
10461 (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
10462 (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
10463 (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
10464 (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
10465 (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
10466 (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
10467 (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
10468 (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
10469 (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
10470 (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
10471 (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
10472 (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
10473 (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
10474 (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
10475 (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
10476 (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
10477 (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
10478 (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
10479 (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
10480 (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
10481 (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
10482 (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
10483 (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
10484 (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
10485 (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
10486 (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
10487 (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
10488 (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
10489 (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
10490 (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
10491 (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
10492 (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
10493 (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
10494 (QI_FTYPE_V8DF_INT): Ditto.
10495 (QI_FTYPE_V4DF_INT): Ditto.
10496 (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
10497 (QI_FTYPE_V2DF_INT): Ditto.
10498 (HI_FTYPE_V16SF_INT): Ditto.
10499 (QI_FTYPE_V8SF_INT): Ditto.
10500 (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
10501 (QI_FTYPE_V4SF_INT): Ditto.
10502 (QI_FTYPE_V8DF_INT_QI): Ditto.
10503 (QI_FTYPE_V4DF_INT_QI): Ditto.
10504 (QI_FTYPE_V2DF_INT_QI): Ditto.
10505 (HI_FTYPE_V16SF_INT_HI): Ditto.
10506 (QI_FTYPE_V8SF_INT_QI): Ditto.
10507 (QI_FTYPE_V4SF_INT_QI): Ditto.
10508 (V8DI_FTYPE_V8DF_V8DI_QI_INT): Ditto.
10509 (V8DI_FTYPE_V8SF_V8DI_QI_INT): Ditto.
10510 (V8DF_FTYPE_V8DI_V8DF_QI_INT): Ditto.
10511 (V8SF_FTYPE_V8DI_V8SF_QI_INT): Ditto.
10512 (V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_QI_INT): Ditto.
10513 (V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_QI_INT): Ditto.
10514 (V4DF_FTYPE_V4DF_PCDOUBLE_V8SI_QI_INT): Ditto.
10515 (V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_QI_INT): Ditto.
10516 (V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_QI_INT): Ditto.
10517 (V4SF_FTYPE_V4SF_PCFLOAT_V4SI_QI_INT): Ditto.
10518 (V8SF_FTYPE_V8SF_PCFLOAT_V8SI_QI_INT): Ditto.
10519 (V4SF_FTYPE_V4SF_PCFLOAT_V2DI_QI_INT): Ditto.
10520 (V4SF_FTYPE_V4SF_PCFLOAT_V4DI_QI_INT): Ditto.
10521 (V8SF_FTYPE_V8SF_PCFLOAT_V4DI_QI_INT): Ditto.
10522 (V2DI_FTYPE_V2DI_PCINT64_V4SI_QI_INT): Ditto.
10523 (V4DI_FTYPE_V4DI_PCINT64_V4SI_QI_INT): Ditto.
10524 (V4DI_FTYPE_V4DI_PCINT64_V8SI_QI_INT): Ditto.
10525 (V2DI_FTYPE_V2DI_PCINT64_V2DI_QI_INT): Ditto.
10526 (V4DI_FTYPE_V4DI_PCINT64_V4DI_QI_INT): Ditto.
10527 (V4SI_FTYPE_V4SI_PCINT_V4SI_QI_INT): Ditto.
10528 (V8SI_FTYPE_V8SI_PCINT_V8SI_QI_INT): Ditto.
10529 (V4SI_FTYPE_V4SI_PCINT_V2DI_QI_INT): Ditto.
10530 (V4SI_FTYPE_V4SI_PCINT_V4DI_QI_INT): Ditto.
10531 (V8SI_FTYPE_V8SI_PCINT_V4DI_QI_INT): Ditto.
10532 (VOID_FTYPE_PFLOAT_QI_V8SI_V8SF_INT): Ditto.
10533 (VOID_FTYPE_PFLOAT_QI_V4SI_V4SF_INT): Ditto.
10534 (VOID_FTYPE_PDOUBLE_QI_V4SI_V4DF_INT): Ditto.
10535 (VOID_FTYPE_PDOUBLE_QI_V4SI_V2DF_INT): Ditto.
10536 (VOID_FTYPE_PFLOAT_QI_V4DI_V4SF_INT): Ditto.
10537 (VOID_FTYPE_PFLOAT_QI_V2DI_V4SF_INT): Ditto.
10538 (VOID_FTYPE_PDOUBLE_QI_V4DI_V4DF_INT): Ditto.
10539 (VOID_FTYPE_PDOUBLE_QI_V2DI_V2DF_INT): Ditto.
10540 (VOID_FTYPE_PINT_QI_V8SI_V8SI_INT): Ditto.
10541 (VOID_FTYPE_PINT_QI_V4SI_V4SI_INT): Ditto.
10542 (VOID_FTYPE_PLONGLONG_QI_V4SI_V4DI_INT): Ditto.
10543 (VOID_FTYPE_PLONGLONG_QI_V4SI_V2DI_INT): Ditto.
10544 (VOID_FTYPE_PINT_QI_V4DI_V4SI_INT): Ditto.
10545 (VOID_FTYPE_PINT_QI_V2DI_V4SI_INT): Ditto.
10546 (VOID_FTYPE_PLONGLONG_QI_V4DI_V4DI_INT): Ditto.
10547 (VOID_FTYPE_PLONGLONG_QI_V2DI_V2DI_INT): Ditto.
10548 (V8DI_FTYPE_V8DI_INT): Ditto.
10549 (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
10550 (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
10551 (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
10552 (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
10553 (V2DF_FTYPE_ V2DF_ V2DF_ V2DI_ INT_ QI): Remove.
10554 (V4SF_FTYPE_ V4SF_ V2DF_ V4SF_ QI): Ditto.
10555 (V4SF_FTYPE_ V4SF_ V4SF_ V4SF_ QI): Ditto.
10556 (V2DF_FTYPE_ PCDOUBLE_ V2DF_ QI): Ditto.
10557 (V4SF_FTYPE_ PCFLOAT_ V4SF_ QI): Ditto.
10558 (V16QI_FTYPE_ V16SI_ V16QI_ HI): Ditto.
10559 (V16QI_FTYPE_ V8DI_ V16QI_ QI): Ditto.
10560 (V4SF_FTYPE_ V4SF_ V4SF_ INT_ V4SF_ QI): Ditto.
10561 (V2DF_FTYPE_ V2DF_ V2DF_ INT_ V2DF_ QI): Ditto.
10562 (V8DI_FTYPE_ V16SI_ V16SI_ V8DI_ QI): Ditto.
10563 * config/i386/i386.c (ix86_builtins):
10564 Add IX86_BUILTIN_PMOVUSQD256_MEM, IX86_BUILTIN_PMOVUSQD128_MEM,
10565 IX86_BUILTIN_PMOVSQD256_MEM, IX86_BUILTIN_PMOVSQD128_MEM,
10566 IX86_BUILTIN_PMOVQD256_MEM, IX86_BUILTIN_PMOVQD128_MEM,
10567 IX86_BUILTIN_PMOVUSQW256_MEM, IX86_BUILTIN_PMOVUSQW128_MEM,
10568 IX86_BUILTIN_PMOVSQW256_MEM, IX86_BUILTIN_PMOVSQW128_MEM,
10569 IX86_BUILTIN_PMOVQW256_MEM, IX86_BUILTIN_PMOVQW128_MEM,
10570 IX86_BUILTIN_PMOVUSQB256_MEM, IX86_BUILTIN_PMOVUSQB128_MEM,
10571 IX86_BUILTIN_PMOVSQB256_MEM, IX86_BUILTIN_PMOVSQB128_MEM,
10572 IX86_BUILTIN_PMOVQB256_MEM, IX86_BUILTIN_PMOVQB128_MEM,
10573 IX86_BUILTIN_PMOVUSDW256_MEM, IX86_BUILTIN_PMOVUSDW128_MEM,
10574 IX86_BUILTIN_PMOVSDW256_MEM, IX86_BUILTIN_PMOVSDW128_MEM,
10575 IX86_BUILTIN_PMOVDW256_MEM, IX86_BUILTIN_PMOVDW128_MEM,
10576 IX86_BUILTIN_PMOVUSDB256_MEM, IX86_BUILTIN_PMOVUSDB128_MEM,
10577 IX86_BUILTIN_PMOVSDB256_MEM, IX86_BUILTIN_PMOVSDB128_MEM,
10578 IX86_BUILTIN_PMOVDB256_MEM, IX86_BUILTIN_PMOVDB128_MEM,
10579 IX86_BUILTIN_MOVDQA64LOAD256_MASK, IX86_BUILTIN_MOVDQA64LOAD128_MASK,
10580 IX86_BUILTIN_MOVDQA32LOAD256_MASK, IX86_BUILTIN_MOVDQA32LOAD128_MASK,
10581 IX86_BUILTIN_MOVDQA64STORE256_MASK, IX86_BUILTIN_MOVDQA64STORE128_MASK,
10582 IX86_BUILTIN_MOVDQA32STORE256_MASK, IX86_BUILTIN_MOVDQA32STORE128_MASK,
10583 IX86_BUILTIN_LOADAPD256_MASK, IX86_BUILTIN_LOADAPD128_MASK,
10584 IX86_BUILTIN_LOADAPS256_MASK, IX86_BUILTIN_LOADAPS128_MASK,
10585 IX86_BUILTIN_STOREAPD256_MASK, IX86_BUILTIN_STOREAPD128_MASK,
10586 IX86_BUILTIN_STOREAPS256_MASK, IX86_BUILTIN_STOREAPS128_MASK,
10587 IX86_BUILTIN_LOADUPD256_MASK, IX86_BUILTIN_LOADUPD128_MASK,
10588 IX86_BUILTIN_LOADUPS256_MASK, IX86_BUILTIN_LOADUPS128_MASK,
10589 IX86_BUILTIN_STOREUPD256_MASK, IX86_BUILTIN_STOREUPD128_MASK,
10590 IX86_BUILTIN_STOREUPS256_MASK, IX86_BUILTIN_STOREUPS128_MASK,
10591 IX86_BUILTIN_LOADDQUDI256_MASK, IX86_BUILTIN_LOADDQUDI128_MASK,
10592 IX86_BUILTIN_LOADDQUSI256_MASK, IX86_BUILTIN_LOADDQUSI128_MASK,
10593 IX86_BUILTIN_LOADDQUHI256_MASK, IX86_BUILTIN_LOADDQUHI128_MASK,
10594 IX86_BUILTIN_LOADDQUQI256_MASK, IX86_BUILTIN_LOADDQUQI128_MASK,
10595 IX86_BUILTIN_STOREDQUDI256_MASK, IX86_BUILTIN_STOREDQUDI128_MASK,
10596 IX86_BUILTIN_STOREDQUSI256_MASK, IX86_BUILTIN_STOREDQUSI128_MASK,
10597 IX86_BUILTIN_STOREDQUHI256_MASK, IX86_BUILTIN_STOREDQUHI128_MASK,
10598 IX86_BUILTIN_STOREDQUQI256_MASK, IX86_BUILTIN_STOREDQUQI128_MASK,
10599 IX86_BUILTIN_COMPRESSPDSTORE256, IX86_BUILTIN_COMPRESSPDSTORE128,
10600 IX86_BUILTIN_COMPRESSPSSTORE256, IX86_BUILTIN_COMPRESSPSSTORE128,
10601 IX86_BUILTIN_PCOMPRESSQSTORE256, IX86_BUILTIN_PCOMPRESSQSTORE128,
10602 IX86_BUILTIN_PCOMPRESSDSTORE256, IX86_BUILTIN_PCOMPRESSDSTORE128,
10603 IX86_BUILTIN_EXPANDPDLOAD256, IX86_BUILTIN_EXPANDPDLOAD128,
10604 IX86_BUILTIN_EXPANDPSLOAD256, IX86_BUILTIN_EXPANDPSLOAD128,
10605 IX86_BUILTIN_PEXPANDQLOAD256, IX86_BUILTIN_PEXPANDQLOAD128,
10606 IX86_BUILTIN_PEXPANDDLOAD256, IX86_BUILTIN_PEXPANDDLOAD128,
10607 IX86_BUILTIN_EXPANDPDLOAD256Z, IX86_BUILTIN_EXPANDPDLOAD128Z,
10608 IX86_BUILTIN_EXPANDPSLOAD256Z, IX86_BUILTIN_EXPANDPSLOAD128Z,
10609 IX86_BUILTIN_PEXPANDQLOAD256Z, IX86_BUILTIN_PEXPANDQLOAD128Z,
10610 IX86_BUILTIN_PEXPANDDLOAD256Z, IX86_BUILTIN_PEXPANDDLOAD128Z,
10611 IX86_BUILTIN_PALIGNR256_MASK, IX86_BUILTIN_PALIGNR128_MASK,
10612 IX86_BUILTIN_MOVDQA64_256_MASK, IX86_BUILTIN_MOVDQA64_128_MASK,
10613 IX86_BUILTIN_MOVDQA32_256_MASK, IX86_BUILTIN_MOVDQA32_128_MASK,
10614 IX86_BUILTIN_MOVAPD256_MASK, IX86_BUILTIN_MOVAPD128_MASK,
10615 IX86_BUILTIN_MOVAPS256_MASK, IX86_BUILTIN_MOVAPS128_MASK,
10616 IX86_BUILTIN_MOVDQUHI256_MASK, IX86_BUILTIN_MOVDQUHI128_MASK,
10617 IX86_BUILTIN_MOVDQUQI256_MASK, IX86_BUILTIN_MOVDQUQI128_MASK,
10618 IX86_BUILTIN_MINPS128_MASK, IX86_BUILTIN_MAXPS128_MASK,
10619 IX86_BUILTIN_MINPD128_MASK, IX86_BUILTIN_MAXPD128_MASK,
10620 IX86_BUILTIN_MAXPD256_MASK, IX86_BUILTIN_MAXPS256_MASK,
10621 IX86_BUILTIN_MINPD256_MASK, IX86_BUILTIN_MINPS256_MASK,
10622 IX86_BUILTIN_MULPS128_MASK, IX86_BUILTIN_DIVPS128_MASK,
10623 IX86_BUILTIN_MULPD128_MASK, IX86_BUILTIN_DIVPD128_MASK,
10624 IX86_BUILTIN_DIVPD256_MASK, IX86_BUILTIN_DIVPS256_MASK,
10625 IX86_BUILTIN_MULPD256_MASK, IX86_BUILTIN_MULPS256_MASK,
10626 IX86_BUILTIN_ADDPD128_MASK, IX86_BUILTIN_ADDPD256_MASK,
10627 IX86_BUILTIN_ADDPS128_MASK, IX86_BUILTIN_ADDPS256_MASK,
10628 IX86_BUILTIN_SUBPD128_MASK, IX86_BUILTIN_SUBPD256_MASK,
10629 IX86_BUILTIN_SUBPS128_MASK, IX86_BUILTIN_SUBPS256_MASK,
10630 IX86_BUILTIN_XORPD256_MASK, IX86_BUILTIN_XORPD128_MASK,
10631 IX86_BUILTIN_XORPS256_MASK, IX86_BUILTIN_XORPS128_MASK,
10632 IX86_BUILTIN_ORPD256_MASK, IX86_BUILTIN_ORPD128_MASK,
10633 IX86_BUILTIN_ORPS256_MASK, IX86_BUILTIN_ORPS128_MASK,
10634 IX86_BUILTIN_BROADCASTF32x2_256, IX86_BUILTIN_BROADCASTI32x2_256,
10635 IX86_BUILTIN_BROADCASTI32x2_128, IX86_BUILTIN_BROADCASTF64X2_256,
10636 IX86_BUILTIN_BROADCASTI64X2_256, IX86_BUILTIN_BROADCASTF32X4_256,
10637 IX86_BUILTIN_BROADCASTI32X4_256, IX86_BUILTIN_EXTRACTF32X4_256,
10638 IX86_BUILTIN_EXTRACTI32X4_256, IX86_BUILTIN_DBPSADBW256,
10639 IX86_BUILTIN_DBPSADBW128, IX86_BUILTIN_CVTTPD2QQ256,
10640 IX86_BUILTIN_CVTTPD2QQ128, IX86_BUILTIN_CVTTPD2UQQ256,
10641 IX86_BUILTIN_CVTTPD2UQQ128, IX86_BUILTIN_CVTPD2QQ256,
10642 IX86_BUILTIN_CVTPD2QQ128, IX86_BUILTIN_CVTPD2UQQ256,
10643 IX86_BUILTIN_CVTPD2UQQ128, IX86_BUILTIN_CVTPD2UDQ256_MASK,
10644 IX86_BUILTIN_CVTPD2UDQ128_MASK, IX86_BUILTIN_CVTTPS2QQ256,
10645 IX86_BUILTIN_CVTTPS2QQ128, IX86_BUILTIN_CVTTPS2UQQ256,
10646 IX86_BUILTIN_CVTTPS2UQQ128, IX86_BUILTIN_CVTTPS2DQ256_MASK,
10647 IX86_BUILTIN_CVTTPS2DQ128_MASK, IX86_BUILTIN_CVTTPS2UDQ256,
10648 IX86_BUILTIN_CVTTPS2UDQ128, IX86_BUILTIN_CVTTPD2DQ256_MASK,
10649 IX86_BUILTIN_CVTTPD2DQ128_MASK, IX86_BUILTIN_CVTTPD2UDQ256_MASK,
10650 IX86_BUILTIN_CVTTPD2UDQ128_MASK, IX86_BUILTIN_CVTPD2DQ256_MASK,
10651 IX86_BUILTIN_CVTPD2DQ128_MASK, IX86_BUILTIN_CVTDQ2PD256_MASK,
10652 IX86_BUILTIN_CVTDQ2PD128_MASK, IX86_BUILTIN_CVTUDQ2PD256_MASK,
10653 IX86_BUILTIN_CVTUDQ2PD128_MASK, IX86_BUILTIN_CVTDQ2PS256_MASK,
10654 IX86_BUILTIN_CVTDQ2PS128_MASK, IX86_BUILTIN_CVTUDQ2PS256_MASK,
10655 IX86_BUILTIN_CVTUDQ2PS128_MASK, IX86_BUILTIN_CVTPS2PD256_MASK,
10656 IX86_BUILTIN_CVTPS2PD128_MASK, IX86_BUILTIN_PBROADCASTB256_MASK,
10657 IX86_BUILTIN_PBROADCASTB256_GPR_MASK, IX86_BUILTIN_PBROADCASTB128_MASK,
10658 IX86_BUILTIN_PBROADCASTB128_GPR_MASK, IX86_BUILTIN_PBROADCASTW256_MASK,
10659 IX86_BUILTIN_PBROADCASTW256_GPR_MASK, IX86_BUILTIN_PBROADCASTW128_MASK,
10660 IX86_BUILTIN_PBROADCASTW128_GPR_MASK, IX86_BUILTIN_PBROADCASTD256_MASK,
10661 IX86_BUILTIN_PBROADCASTD256_GPR_MASK, IX86_BUILTIN_PBROADCASTD128_MASK,
10662 IX86_BUILTIN_PBROADCASTD128_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MASK,
10663 IX86_BUILTIN_PBROADCASTQ256_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
10664 IX86_BUILTIN_PBROADCASTQ128_MASK, IX86_BUILTIN_PBROADCASTQ128_GPR_MASK,
10665 IX86_BUILTIN_PBROADCASTQ128_MEM_MASK, IX86_BUILTIN_BROADCASTSS256,
10666 IX86_BUILTIN_BROADCASTSS128, IX86_BUILTIN_BROADCASTSD256,
10667 IX86_BUILTIN_EXTRACTF64X2_256, IX86_BUILTIN_EXTRACTI64X2_256,
10668 IX86_BUILTIN_INSERTF32X4_256, IX86_BUILTIN_INSERTI32X4_256,
10669 IX86_BUILTIN_PMOVSXBW256_MASK, IX86_BUILTIN_PMOVSXBW128_MASK,
10670 IX86_BUILTIN_PMOVSXBD256_MASK, IX86_BUILTIN_PMOVSXBD128_MASK,
10671 IX86_BUILTIN_PMOVSXBQ256_MASK, IX86_BUILTIN_PMOVSXBQ128_MASK,
10672 IX86_BUILTIN_PMOVSXWD256_MASK, IX86_BUILTIN_PMOVSXWD128_MASK,
10673 IX86_BUILTIN_PMOVSXWQ256_MASK, IX86_BUILTIN_PMOVSXWQ128_MASK,
10674 IX86_BUILTIN_PMOVSXDQ256_MASK, IX86_BUILTIN_PMOVSXDQ128_MASK,
10675 IX86_BUILTIN_PMOVZXBW256_MASK, IX86_BUILTIN_PMOVZXBW128_MASK,
10676 IX86_BUILTIN_PMOVZXBD256_MASK, IX86_BUILTIN_PMOVZXBD128_MASK,
10677 IX86_BUILTIN_PMOVZXBQ256_MASK, IX86_BUILTIN_PMOVZXBQ128_MASK,
10678 IX86_BUILTIN_PMOVZXWD256_MASK, IX86_BUILTIN_PMOVZXWD128_MASK,
10679 IX86_BUILTIN_PMOVZXWQ256_MASK, IX86_BUILTIN_PMOVZXWQ128_MASK,
10680 IX86_BUILTIN_PMOVZXDQ256_MASK, IX86_BUILTIN_PMOVZXDQ128_MASK,
10681 IX86_BUILTIN_REDUCEPD256_MASK, IX86_BUILTIN_REDUCEPD128_MASK,
10682 IX86_BUILTIN_REDUCEPS256_MASK, IX86_BUILTIN_REDUCEPS128_MASK,
10683 IX86_BUILTIN_REDUCESD_MASK, IX86_BUILTIN_REDUCESS_MASK,
10684 IX86_BUILTIN_VPERMVARHI256_MASK, IX86_BUILTIN_VPERMVARHI128_MASK,
10685 IX86_BUILTIN_VPERMT2VARHI256, IX86_BUILTIN_VPERMT2VARHI256_MASKZ,
10686 IX86_BUILTIN_VPERMT2VARHI128, IX86_BUILTIN_VPERMT2VARHI128_MASKZ,
10687 IX86_BUILTIN_VPERMI2VARHI256, IX86_BUILTIN_VPERMI2VARHI128,
10688 IX86_BUILTIN_RCP14PD256, IX86_BUILTIN_RCP14PD128,
10689 IX86_BUILTIN_RCP14PS256, IX86_BUILTIN_RCP14PS128,
10690 IX86_BUILTIN_RSQRT14PD256_MASK, IX86_BUILTIN_RSQRT14PD128_MASK,
10691 IX86_BUILTIN_RSQRT14PS256_MASK, IX86_BUILTIN_RSQRT14PS128_MASK,
10692 IX86_BUILTIN_SQRTPD256_MASK, IX86_BUILTIN_SQRTPD128_MASK,
10693 IX86_BUILTIN_SQRTPS256_MASK, IX86_BUILTIN_SQRTPS128_MASK,
10694 IX86_BUILTIN_PADDB128_MASK, IX86_BUILTIN_PADDW128_MASK,
10695 IX86_BUILTIN_PADDD128_MASK, IX86_BUILTIN_PADDQ128_MASK,
10696 IX86_BUILTIN_PSUBB128_MASK, IX86_BUILTIN_PSUBW128_MASK,
10697 IX86_BUILTIN_PSUBD128_MASK, IX86_BUILTIN_PSUBQ128_MASK,
10698 IX86_BUILTIN_PADDSB128_MASK, IX86_BUILTIN_PADDSW128_MASK,
10699 IX86_BUILTIN_PSUBSB128_MASK, IX86_BUILTIN_PSUBSW128_MASK,
10700 IX86_BUILTIN_PADDUSB128_MASK, IX86_BUILTIN_PADDUSW128_MASK,
10701 IX86_BUILTIN_PSUBUSB128_MASK, IX86_BUILTIN_PSUBUSW128_MASK,
10702 IX86_BUILTIN_PADDB256_MASK, IX86_BUILTIN_PADDW256_MASK,
10703 IX86_BUILTIN_PADDD256_MASK, IX86_BUILTIN_PADDQ256_MASK,
10704 IX86_BUILTIN_PADDSB256_MASK, IX86_BUILTIN_PADDSW256_MASK,
10705 IX86_BUILTIN_PADDUSB256_MASK, IX86_BUILTIN_PADDUSW256_MASK,
10706 IX86_BUILTIN_PSUBB256_MASK, IX86_BUILTIN_PSUBW256_MASK,
10707 IX86_BUILTIN_PSUBD256_MASK, IX86_BUILTIN_PSUBQ256_MASK,
10708 IX86_BUILTIN_PSUBSB256_MASK, IX86_BUILTIN_PSUBSW256_MASK,
10709 IX86_BUILTIN_PSUBUSB256_MASK, IX86_BUILTIN_PSUBUSW256_MASK,
10710 IX86_BUILTIN_SHUF_F64x2_256, IX86_BUILTIN_SHUF_I64x2_256,
10711 IX86_BUILTIN_SHUF_I32x4_256, IX86_BUILTIN_SHUF_F32x4_256,
10712 IX86_BUILTIN_PMOVWB128, IX86_BUILTIN_PMOVWB256,
10713 IX86_BUILTIN_PMOVSWB128, IX86_BUILTIN_PMOVSWB256,
10714 IX86_BUILTIN_PMOVUSWB128, IX86_BUILTIN_PMOVUSWB256,
10715 IX86_BUILTIN_PMOVDB128, IX86_BUILTIN_PMOVDB256,
10716 IX86_BUILTIN_PMOVSDB128, IX86_BUILTIN_PMOVSDB256,
10717 IX86_BUILTIN_PMOVUSDB128, IX86_BUILTIN_PMOVUSDB256,
10718 IX86_BUILTIN_PMOVDW128, IX86_BUILTIN_PMOVDW256,
10719 IX86_BUILTIN_PMOVSDW128, IX86_BUILTIN_PMOVSDW256,
10720 IX86_BUILTIN_PMOVUSDW128, IX86_BUILTIN_PMOVUSDW256,
10721 IX86_BUILTIN_PMOVQB128, IX86_BUILTIN_PMOVQB256,
10722 IX86_BUILTIN_PMOVSQB128, IX86_BUILTIN_PMOVSQB256,
10723 IX86_BUILTIN_PMOVUSQB128, IX86_BUILTIN_PMOVUSQB256,
10724 IX86_BUILTIN_PMOVQW128, IX86_BUILTIN_PMOVQW256,
10725 IX86_BUILTIN_PMOVSQW128, IX86_BUILTIN_PMOVSQW256,
10726 IX86_BUILTIN_PMOVUSQW128, IX86_BUILTIN_PMOVUSQW256,
10727 IX86_BUILTIN_PMOVQD128, IX86_BUILTIN_PMOVQD256,
10728 IX86_BUILTIN_PMOVSQD128, IX86_BUILTIN_PMOVSQD256,
10729 IX86_BUILTIN_PMOVUSQD128, IX86_BUILTIN_PMOVUSQD256,
10730 IX86_BUILTIN_RANGEPD256, IX86_BUILTIN_RANGEPD128,
10731 IX86_BUILTIN_RANGEPS256, IX86_BUILTIN_RANGEPS128,
10732 IX86_BUILTIN_GETEXPPS256, IX86_BUILTIN_GETEXPPD256,
10733 IX86_BUILTIN_GETEXPPS128, IX86_BUILTIN_GETEXPPD128,
10734 IX86_BUILTIN_FIXUPIMMPD256_MASK, IX86_BUILTIN_FIXUPIMMPD256_MASKZ,
10735 IX86_BUILTIN_FIXUPIMMPS256_MASK, IX86_BUILTIN_FIXUPIMMPS256_MASKZ,
10736 IX86_BUILTIN_FIXUPIMMPD128_MASK, IX86_BUILTIN_FIXUPIMMPD128_MASKZ,
10737 IX86_BUILTIN_FIXUPIMMPS128_MASK, IX86_BUILTIN_FIXUPIMMPS128_MASKZ,
10738 IX86_BUILTIN_PABSQ256, IX86_BUILTIN_PABSQ128,
10739 IX86_BUILTIN_PABSD256_MASK, IX86_BUILTIN_PABSD128_MASK,
10740 IX86_BUILTIN_PMULHRSW256_MASK, IX86_BUILTIN_PMULHRSW128_MASK,
10741 IX86_BUILTIN_PMULHUW128_MASK, IX86_BUILTIN_PMULHUW256_MASK,
10742 IX86_BUILTIN_PMULHW256_MASK, IX86_BUILTIN_PMULHW128_MASK,
10743 IX86_BUILTIN_PMULLW256_MASK, IX86_BUILTIN_PMULLW128_MASK,
10744 IX86_BUILTIN_PMULLQ256, IX86_BUILTIN_PMULLQ128,
10745 IX86_BUILTIN_ANDPD256_MASK, IX86_BUILTIN_ANDPD128_MASK,
10746 IX86_BUILTIN_ANDPS256_MASK, IX86_BUILTIN_ANDPS128_MASK,
10747 IX86_BUILTIN_ANDNPD256_MASK, IX86_BUILTIN_ANDNPD128_MASK,
10748 IX86_BUILTIN_ANDNPS256_MASK, IX86_BUILTIN_ANDNPS128_MASK,
10749 IX86_BUILTIN_PSLLWI128_MASK, IX86_BUILTIN_PSLLDI128_MASK,
10750 IX86_BUILTIN_PSLLQI128_MASK, IX86_BUILTIN_PSLLW128_MASK,
10751 IX86_BUILTIN_PSLLD128_MASK, IX86_BUILTIN_PSLLQ128_MASK,
10752 IX86_BUILTIN_PSLLWI256_MASK , IX86_BUILTIN_PSLLW256_MASK,
10753 IX86_BUILTIN_PSLLDI256_MASK, IX86_BUILTIN_PSLLD256_MASK,
10754 IX86_BUILTIN_PSLLQI256_MASK, IX86_BUILTIN_PSLLQ256_MASK,
10755 IX86_BUILTIN_PSRADI128_MASK, IX86_BUILTIN_PSRAD128_MASK,
10756 IX86_BUILTIN_PSRADI256_MASK, IX86_BUILTIN_PSRAD256_MASK,
10757 IX86_BUILTIN_PSRAQI128_MASK, IX86_BUILTIN_PSRAQ128_MASK,
10758 IX86_BUILTIN_PSRAQI256_MASK, IX86_BUILTIN_PSRAQ256_MASK,
10759 IX86_BUILTIN_PANDD256, IX86_BUILTIN_PANDD128,
10760 IX86_BUILTIN_PSRLDI128_MASK, IX86_BUILTIN_PSRLD128_MASK,
10761 IX86_BUILTIN_PSRLDI256_MASK, IX86_BUILTIN_PSRLD256_MASK,
10762 IX86_BUILTIN_PSRLQI128_MASK, IX86_BUILTIN_PSRLQ128_MASK,
10763 IX86_BUILTIN_PSRLQI256_MASK, IX86_BUILTIN_PSRLQ256_MASK,
10764 IX86_BUILTIN_PANDQ256, IX86_BUILTIN_PANDQ128,
10765 IX86_BUILTIN_PANDND256, IX86_BUILTIN_PANDND128,
10766 IX86_BUILTIN_PANDNQ256, IX86_BUILTIN_PANDNQ128,
10767 IX86_BUILTIN_PORD256, IX86_BUILTIN_PORD128,
10768 IX86_BUILTIN_PORQ256, IX86_BUILTIN_PORQ128,
10769 IX86_BUILTIN_PXORD256, IX86_BUILTIN_PXORD128,
10770 IX86_BUILTIN_PXORQ256, IX86_BUILTIN_PXORQ128,
10771 IX86_BUILTIN_PACKSSWB256_MASK, IX86_BUILTIN_PACKSSWB128_MASK,
10772 IX86_BUILTIN_PACKUSWB256_MASK, IX86_BUILTIN_PACKUSWB128_MASK,
10773 IX86_BUILTIN_RNDSCALEPS256, IX86_BUILTIN_RNDSCALEPD256,
10774 IX86_BUILTIN_RNDSCALEPS128, IX86_BUILTIN_RNDSCALEPD128,
10775 IX86_BUILTIN_VTERNLOGQ256_MASK, IX86_BUILTIN_VTERNLOGQ256_MASKZ,
10776 IX86_BUILTIN_VTERNLOGD256_MASK, IX86_BUILTIN_VTERNLOGD256_MASKZ,
10777 IX86_BUILTIN_VTERNLOGQ128_MASK, IX86_BUILTIN_VTERNLOGQ128_MASKZ,
10778 IX86_BUILTIN_VTERNLOGD128_MASK, IX86_BUILTIN_VTERNLOGD128_MASKZ,
10779 IX86_BUILTIN_SCALEFPD256, IX86_BUILTIN_SCALEFPS256,
10780 IX86_BUILTIN_SCALEFPD128, IX86_BUILTIN_SCALEFPS128,
10781 IX86_BUILTIN_VFMADDPD256_MASK, IX86_BUILTIN_VFMADDPD256_MASK3,
10782 IX86_BUILTIN_VFMADDPD256_MASKZ, IX86_BUILTIN_VFMADDPD128_MASK,
10783 IX86_BUILTIN_VFMADDPD128_MASK3, IX86_BUILTIN_VFMADDPD128_MASKZ,
10784 IX86_BUILTIN_VFMADDPS256_MASK, IX86_BUILTIN_VFMADDPS256_MASK3,
10785 IX86_BUILTIN_VFMADDPS256_MASKZ, IX86_BUILTIN_VFMADDPS128_MASK,
10786 IX86_BUILTIN_VFMADDPS128_MASK3, IX86_BUILTIN_VFMADDPS128_MASKZ,
10787 IX86_BUILTIN_VFMSUBPD256_MASK3, IX86_BUILTIN_VFMSUBPD128_MASK3,
10788 IX86_BUILTIN_VFMSUBPS256_MASK3, IX86_BUILTIN_VFMSUBPS128_MASK3,
10789 IX86_BUILTIN_VFNMADDPD256_MASK, IX86_BUILTIN_VFNMADDPD128_MASK,
10790 IX86_BUILTIN_VFNMADDPS256_MASK, IX86_BUILTIN_VFNMADDPS128_MASK,
10791 IX86_BUILTIN_VFNMSUBPD256_MASK, IX86_BUILTIN_VFNMSUBPD256_MASK3,
10792 IX86_BUILTIN_VFNMSUBPD128_MASK, IX86_BUILTIN_VFNMSUBPD128_MASK3,
10793 IX86_BUILTIN_VFNMSUBPS256_MASK, IX86_BUILTIN_VFNMSUBPS256_MASK3,
10794 IX86_BUILTIN_VFNMSUBPS128_MASK, IX86_BUILTIN_VFNMSUBPS128_MASK3,
10795 IX86_BUILTIN_VFMADDSUBPD256_MASK, IX86_BUILTIN_VFMADDSUBPD256_MASK3,
10796 IX86_BUILTIN_VFMADDSUBPD256_MASKZ, IX86_BUILTIN_VFMADDSUBPD128_MASK,
10797 IX86_BUILTIN_VFMADDSUBPD128_MASK3, IX86_BUILTIN_VFMADDSUBPD128_MASKZ,
10798 IX86_BUILTIN_VFMADDSUBPS256_MASK, IX86_BUILTIN_VFMADDSUBPS256_MASK3,
10799 IX86_BUILTIN_VFMADDSUBPS256_MASKZ, IX86_BUILTIN_VFMADDSUBPS128_MASK,
10800 IX86_BUILTIN_VFMADDSUBPS128_MASK3, IX86_BUILTIN_VFMADDSUBPS128_MASKZ,
10801 IX86_BUILTIN_VFMSUBADDPD256_MASK3, IX86_BUILTIN_VFMSUBADDPD128_MASK3,
10802 IX86_BUILTIN_VFMSUBADDPS256_MASK3, IX86_BUILTIN_VFMSUBADDPS128_MASK3,
10803 IX86_BUILTIN_INSERTF64X2_256, IX86_BUILTIN_INSERTI64X2_256,
10804 IX86_BUILTIN_PSRAVV16HI, IX86_BUILTIN_PSRAVV8HI,
10805 IX86_BUILTIN_PMADDUBSW256_MASK, IX86_BUILTIN_PMADDUBSW128_MASK,
10806 IX86_BUILTIN_PMADDWD256_MASK, IX86_BUILTIN_PMADDWD128_MASK,
10807 IX86_BUILTIN_PSRLVV16HI, IX86_BUILTIN_PSRLVV8HI,
10808 IX86_BUILTIN_CVTPS2DQ256_MASK, IX86_BUILTIN_CVTPS2DQ128_MASK,
10809 IX86_BUILTIN_CVTPS2UDQ256, IX86_BUILTIN_CVTPS2UDQ128,
10810 IX86_BUILTIN_CVTPS2QQ256, IX86_BUILTIN_CVTPS2QQ128,
10811 IX86_BUILTIN_CVTPS2UQQ256, IX86_BUILTIN_CVTPS2UQQ128,
10812 IX86_BUILTIN_GETMANTPS256, IX86_BUILTIN_GETMANTPS128,
10813 IX86_BUILTIN_GETMANTPD256, IX86_BUILTIN_GETMANTPD128,
10814 IX86_BUILTIN_MOVDDUP256_MASK, IX86_BUILTIN_MOVDDUP128_MASK,
10815 IX86_BUILTIN_MOVSHDUP256_MASK, IX86_BUILTIN_MOVSHDUP128_MASK,
10816 IX86_BUILTIN_MOVSLDUP256_MASK, IX86_BUILTIN_MOVSLDUP128_MASK,
10817 IX86_BUILTIN_CVTQQ2PS256, IX86_BUILTIN_CVTQQ2PS128,
10818 IX86_BUILTIN_CVTUQQ2PS256, IX86_BUILTIN_CVTUQQ2PS128,
10819 IX86_BUILTIN_CVTQQ2PD256, IX86_BUILTIN_CVTQQ2PD128,
10820 IX86_BUILTIN_CVTUQQ2PD256, IX86_BUILTIN_CVTUQQ2PD128,
10821 IX86_BUILTIN_VPERMT2VARQ256, IX86_BUILTIN_VPERMT2VARQ256_MASKZ,
10822 IX86_BUILTIN_VPERMT2VARD256, IX86_BUILTIN_VPERMT2VARD256_MASKZ,
10823 IX86_BUILTIN_VPERMI2VARQ256, IX86_BUILTIN_VPERMI2VARD256,
10824 IX86_BUILTIN_VPERMT2VARPD256, IX86_BUILTIN_VPERMT2VARPD256_MASKZ,
10825 IX86_BUILTIN_VPERMT2VARPS256, IX86_BUILTIN_VPERMT2VARPS256_MASKZ,
10826 IX86_BUILTIN_VPERMI2VARPD256, IX86_BUILTIN_VPERMI2VARPS256,
10827 IX86_BUILTIN_VPERMT2VARQ128, IX86_BUILTIN_VPERMT2VARQ128_MASKZ,
10828 IX86_BUILTIN_VPERMT2VARD128, IX86_BUILTIN_VPERMT2VARD128_MASKZ,
10829 IX86_BUILTIN_VPERMI2VARQ128, IX86_BUILTIN_VPERMI2VARD128,
10830 IX86_BUILTIN_VPERMT2VARPD128, IX86_BUILTIN_VPERMT2VARPD128_MASKZ,
10831 IX86_BUILTIN_VPERMT2VARPS128, IX86_BUILTIN_VPERMT2VARPS128_MASKZ,
10832 IX86_BUILTIN_VPERMI2VARPD128, IX86_BUILTIN_VPERMI2VARPS128,
10833 IX86_BUILTIN_PSHUFB256_MASK, IX86_BUILTIN_PSHUFB128_MASK,
10834 IX86_BUILTIN_PSHUFHW256_MASK, IX86_BUILTIN_PSHUFHW128_MASK,
10835 IX86_BUILTIN_PSHUFLW256_MASK, IX86_BUILTIN_PSHUFLW128_MASK,
10836 IX86_BUILTIN_PSHUFD256_MASK, IX86_BUILTIN_PSHUFD128_MASK,
10837 IX86_BUILTIN_SHUFPD256_MASK, IX86_BUILTIN_SHUFPD128_MASK,
10838 IX86_BUILTIN_SHUFPS256_MASK, IX86_BUILTIN_SHUFPS128_MASK,
10839 IX86_BUILTIN_PROLVQ256, IX86_BUILTIN_PROLVQ128,
10840 IX86_BUILTIN_PROLQ256, IX86_BUILTIN_PROLQ128,
10841 IX86_BUILTIN_PRORVQ256, IX86_BUILTIN_PRORVQ128,
10842 IX86_BUILTIN_PRORQ256, IX86_BUILTIN_PRORQ128,
10843 IX86_BUILTIN_PSRAVQ128, IX86_BUILTIN_PSRAVQ256,
10844 IX86_BUILTIN_PSLLVV4DI_MASK, IX86_BUILTIN_PSLLVV2DI_MASK,
10845 IX86_BUILTIN_PSLLVV8SI_MASK, IX86_BUILTIN_PSLLVV4SI_MASK,
10846 IX86_BUILTIN_PSRAVV8SI_MASK, IX86_BUILTIN_PSRAVV4SI_MASK,
10847 IX86_BUILTIN_PSRLVV4DI_MASK, IX86_BUILTIN_PSRLVV2DI_MASK,
10848 IX86_BUILTIN_PSRLVV8SI_MASK, IX86_BUILTIN_PSRLVV4SI_MASK,
10849 IX86_BUILTIN_PSRAWI256_MASK, IX86_BUILTIN_PSRAW256_MASK,
10850 IX86_BUILTIN_PSRAWI128_MASK, IX86_BUILTIN_PSRAW128_MASK,
10851 IX86_BUILTIN_PSRLWI256_MASK, IX86_BUILTIN_PSRLW256_MASK,
10852 IX86_BUILTIN_PSRLWI128_MASK, IX86_BUILTIN_PSRLW128_MASK,
10853 IX86_BUILTIN_PRORVD256, IX86_BUILTIN_PROLVD256,
10854 IX86_BUILTIN_PRORD256, IX86_BUILTIN_PROLD256,
10855 IX86_BUILTIN_PRORVD128, IX86_BUILTIN_PROLVD128,
10856 IX86_BUILTIN_PRORD128, IX86_BUILTIN_PROLD128,
10857 IX86_BUILTIN_FPCLASSPD256, IX86_BUILTIN_FPCLASSPD128,
10858 IX86_BUILTIN_FPCLASSSD, IX86_BUILTIN_FPCLASSPS256,
10859 IX86_BUILTIN_FPCLASSPS128, IX86_BUILTIN_FPCLASSSS,
10860 IX86_BUILTIN_CVTB2MASK128, IX86_BUILTIN_CVTB2MASK256,
10861 IX86_BUILTIN_CVTW2MASK128, IX86_BUILTIN_CVTW2MASK256,
10862 IX86_BUILTIN_CVTD2MASK128, IX86_BUILTIN_CVTD2MASK256,
10863 IX86_BUILTIN_CVTQ2MASK128, IX86_BUILTIN_CVTQ2MASK256,
10864 IX86_BUILTIN_CVTMASK2B128, IX86_BUILTIN_CVTMASK2B256,
10865 IX86_BUILTIN_CVTMASK2W128, IX86_BUILTIN_CVTMASK2W256,
10866 IX86_BUILTIN_CVTMASK2D128, IX86_BUILTIN_CVTMASK2D256,
10867 IX86_BUILTIN_CVTMASK2Q128, IX86_BUILTIN_CVTMASK2Q256,
10868 IX86_BUILTIN_PCMPEQB128_MASK, IX86_BUILTIN_PCMPEQB256_MASK,
10869 IX86_BUILTIN_PCMPEQW128_MASK, IX86_BUILTIN_PCMPEQW256_MASK,
10870 IX86_BUILTIN_PCMPEQD128_MASK, IX86_BUILTIN_PCMPEQD256_MASK,
10871 IX86_BUILTIN_PCMPEQQ128_MASK, IX86_BUILTIN_PCMPEQQ256_MASK,
10872 IX86_BUILTIN_PCMPGTB128_MASK, IX86_BUILTIN_PCMPGTB256_MASK,
10873 IX86_BUILTIN_PCMPGTW128_MASK, IX86_BUILTIN_PCMPGTW256_MASK,
10874 IX86_BUILTIN_PCMPGTD128_MASK, IX86_BUILTIN_PCMPGTD256_MASK,
10875 IX86_BUILTIN_PCMPGTQ128_MASK, IX86_BUILTIN_PCMPGTQ256_MASK,
10876 IX86_BUILTIN_PTESTMB128, IX86_BUILTIN_PTESTMB256,
10877 IX86_BUILTIN_PTESTMW128, IX86_BUILTIN_PTESTMW256,
10878 IX86_BUILTIN_PTESTMD128, IX86_BUILTIN_PTESTMD256,
10879 IX86_BUILTIN_PTESTMQ128, IX86_BUILTIN_PTESTMQ256,
10880 IX86_BUILTIN_PTESTNMB128, IX86_BUILTIN_PTESTNMB256,
10881 IX86_BUILTIN_PTESTNMW128, IX86_BUILTIN_PTESTNMW256,
10882 IX86_BUILTIN_PTESTNMD128, IX86_BUILTIN_PTESTNMD256,
10883 IX86_BUILTIN_PTESTNMQ128, IX86_BUILTIN_PTESTNMQ256,
10884 IX86_BUILTIN_PBROADCASTMB128, IX86_BUILTIN_PBROADCASTMB256,
10885 IX86_BUILTIN_PBROADCASTMW128, IX86_BUILTIN_PBROADCASTMW256,
10886 IX86_BUILTIN_COMPRESSPD256, IX86_BUILTIN_COMPRESSPD128,
10887 IX86_BUILTIN_COMPRESSPS256, IX86_BUILTIN_COMPRESSPS128,
10888 IX86_BUILTIN_PCOMPRESSQ256, IX86_BUILTIN_PCOMPRESSQ128,
10889 IX86_BUILTIN_PCOMPRESSD256, IX86_BUILTIN_PCOMPRESSD128,
10890 IX86_BUILTIN_EXPANDPD256, IX86_BUILTIN_EXPANDPD128,
10891 IX86_BUILTIN_EXPANDPS256, IX86_BUILTIN_EXPANDPS128,
10892 IX86_BUILTIN_PEXPANDQ256, IX86_BUILTIN_PEXPANDQ128,
10893 IX86_BUILTIN_PEXPANDD256, IX86_BUILTIN_PEXPANDD128,
10894 IX86_BUILTIN_EXPANDPD256Z, IX86_BUILTIN_EXPANDPD128Z,
10895 IX86_BUILTIN_EXPANDPS256Z, IX86_BUILTIN_EXPANDPS128Z,
10896 IX86_BUILTIN_PEXPANDQ256Z, IX86_BUILTIN_PEXPANDQ128Z,
10897 IX86_BUILTIN_PEXPANDD256Z, IX86_BUILTIN_PEXPANDD128Z,
10898 IX86_BUILTIN_PMAXSD256_MASK, IX86_BUILTIN_PMINSD256_MASK,
10899 IX86_BUILTIN_PMAXUD256_MASK, IX86_BUILTIN_PMINUD256_MASK,
10900 IX86_BUILTIN_PMAXSD128_MASK, IX86_BUILTIN_PMINSD128_MASK,
10901 IX86_BUILTIN_PMAXUD128_MASK, IX86_BUILTIN_PMINUD128_MASK,
10902 IX86_BUILTIN_PMAXSQ256_MASK, IX86_BUILTIN_PMINSQ256_MASK,
10903 IX86_BUILTIN_PMAXUQ256_MASK, IX86_BUILTIN_PMINUQ256_MASK,
10904 IX86_BUILTIN_PMAXSQ128_MASK, IX86_BUILTIN_PMINSQ128_MASK,
10905 IX86_BUILTIN_PMAXUQ128_MASK, IX86_BUILTIN_PMINUQ128_MASK,
10906 IX86_BUILTIN_PMINSB256_MASK, IX86_BUILTIN_PMINUB256_MASK,
10907 IX86_BUILTIN_PMAXSB256_MASK, IX86_BUILTIN_PMAXUB256_MASK,
10908 IX86_BUILTIN_PMINSB128_MASK, IX86_BUILTIN_PMINUB128_MASK,
10909 IX86_BUILTIN_PMAXSB128_MASK, IX86_BUILTIN_PMAXUB128_MASK,
10910 IX86_BUILTIN_PMINSW256_MASK, IX86_BUILTIN_PMINUW256_MASK,
10911 IX86_BUILTIN_PMAXSW256_MASK, IX86_BUILTIN_PMAXUW256_MASK,
10912 IX86_BUILTIN_PMINSW128_MASK, IX86_BUILTIN_PMINUW128_MASK,
10913 IX86_BUILTIN_PMAXSW128_MASK, IX86_BUILTIN_PMAXUW128_MASK,
10914 IX86_BUILTIN_VPCONFLICTQ256, IX86_BUILTIN_VPCONFLICTD256,
10915 IX86_BUILTIN_VPCLZCNTQ256, IX86_BUILTIN_VPCLZCNTD256,
10916 IX86_BUILTIN_UNPCKHPD256_MASK, IX86_BUILTIN_UNPCKHPD128_MASK,
10917 IX86_BUILTIN_UNPCKHPS256_MASK, IX86_BUILTIN_UNPCKHPS128_MASK,
10918 IX86_BUILTIN_UNPCKLPD256_MASK, IX86_BUILTIN_UNPCKLPD128_MASK,
10919 IX86_BUILTIN_UNPCKLPS256_MASK, IX86_BUILTIN_VPCONFLICTQ128,
10920 IX86_BUILTIN_VPCONFLICTD128, IX86_BUILTIN_VPCLZCNTQ128,
10921 IX86_BUILTIN_VPCLZCNTD128, IX86_BUILTIN_UNPCKLPS128_MASK,
10922 IX86_BUILTIN_ALIGND256, IX86_BUILTIN_ALIGNQ256,
10923 IX86_BUILTIN_ALIGND128, IX86_BUILTIN_ALIGNQ128,
10924 IX86_BUILTIN_CVTPS2PH256_MASK, IX86_BUILTIN_CVTPS2PH_MASK,
10925 IX86_BUILTIN_CVTPH2PS_MASK, IX86_BUILTIN_CVTPH2PS256_MASK,
10926 IX86_BUILTIN_PUNPCKHDQ128_MASK, IX86_BUILTIN_PUNPCKHDQ256_MASK,
10927 IX86_BUILTIN_PUNPCKHQDQ128_MASK, IX86_BUILTIN_PUNPCKHQDQ256_MASK,
10928 IX86_BUILTIN_PUNPCKLDQ128_MASK, IX86_BUILTIN_PUNPCKLDQ256_MASK,
10929 IX86_BUILTIN_PUNPCKLQDQ128_MASK, IX86_BUILTIN_PUNPCKLQDQ256_MASK,
10930 IX86_BUILTIN_PUNPCKHBW128_MASK, IX86_BUILTIN_PUNPCKHBW256_MASK,
10931 IX86_BUILTIN_PUNPCKHWD128_MASK, IX86_BUILTIN_PUNPCKHWD256_MASK,
10932 IX86_BUILTIN_PUNPCKLBW128_MASK, IX86_BUILTIN_PUNPCKLBW256_MASK,
10933 IX86_BUILTIN_PUNPCKLWD128_MASK, IX86_BUILTIN_PUNPCKLWD256_MASK,
10934 IX86_BUILTIN_PSLLVV16HI, IX86_BUILTIN_PSLLVV8HI,
10935 IX86_BUILTIN_PACKSSDW256_MASK, IX86_BUILTIN_PACKSSDW128_MASK,
10936 IX86_BUILTIN_PACKUSDW256_MASK, IX86_BUILTIN_PACKUSDW128_MASK,
10937 IX86_BUILTIN_PAVGB256_MASK, IX86_BUILTIN_PAVGW256_MASK,
10938 IX86_BUILTIN_PAVGB128_MASK, IX86_BUILTIN_PAVGW128_MASK,
10939 IX86_BUILTIN_VPERMVARSF256_MASK, IX86_BUILTIN_VPERMVARDF256_MASK,
10940 IX86_BUILTIN_VPERMDF256_MASK, IX86_BUILTIN_PABSB256_MASK,
10941 IX86_BUILTIN_PABSB128_MASK, IX86_BUILTIN_PABSW256_MASK,
10942 IX86_BUILTIN_PABSW128_MASK, IX86_BUILTIN_VPERMILVARPD_MASK,
10943 IX86_BUILTIN_VPERMILVARPS_MASK, IX86_BUILTIN_VPERMILVARPD256_MASK,
10944 IX86_BUILTIN_VPERMILVARPS256_MASK, IX86_BUILTIN_VPERMILPD_MASK,
10945 IX86_BUILTIN_VPERMILPS_MASK, IX86_BUILTIN_VPERMILPD256_MASK,
10946 IX86_BUILTIN_VPERMILPS256_MASK, IX86_BUILTIN_BLENDMQ256,
10947 IX86_BUILTIN_BLENDMD256, IX86_BUILTIN_BLENDMPD256,
10948 IX86_BUILTIN_BLENDMPS256, IX86_BUILTIN_BLENDMQ128,
10949 IX86_BUILTIN_BLENDMD128, IX86_BUILTIN_BLENDMPD128,
10950 IX86_BUILTIN_BLENDMPS128, IX86_BUILTIN_BLENDMW256,
10951 IX86_BUILTIN_BLENDMB256, IX86_BUILTIN_BLENDMW128,
10952 IX86_BUILTIN_BLENDMB128, IX86_BUILTIN_PMULLD256_MASK,
10953 IX86_BUILTIN_PMULLD128_MASK, IX86_BUILTIN_PMULUDQ256_MASK,
10954 IX86_BUILTIN_PMULDQ256_MASK, IX86_BUILTIN_PMULDQ128_MASK,
10955 IX86_BUILTIN_PMULUDQ128_MASK, IX86_BUILTIN_CVTPD2PS256_MASK,
10956 IX86_BUILTIN_CVTPD2PS_MASK, IX86_BUILTIN_VPERMVARSI256_MASK,
10957 IX86_BUILTIN_VPERMVARDI256_MASK, IX86_BUILTIN_VPERMDI256_MASK,
10958 IX86_BUILTIN_CMPQ256, IX86_BUILTIN_CMPD256,
10959 IX86_BUILTIN_UCMPQ256, IX86_BUILTIN_UCMPD256,
10960 IX86_BUILTIN_CMPB256, IX86_BUILTIN_CMPW256,
10961 IX86_BUILTIN_UCMPB256, IX86_BUILTIN_UCMPW256,
10962 IX86_BUILTIN_CMPPD256_MASK, IX86_BUILTIN_CMPPS256_MASK,
10963 IX86_BUILTIN_CMPQ128, IX86_BUILTIN_CMPD128,
10964 IX86_BUILTIN_UCMPQ128, IX86_BUILTIN_UCMPD128,
10965 IX86_BUILTIN_CMPB128, IX86_BUILTIN_CMPW128,
10966 IX86_BUILTIN_UCMPB128, IX86_BUILTIN_UCMPW128,
10967 IX86_BUILTIN_CMPPD128_MASK, IX86_BUILTIN_CMPPS128_MASK,
10968 IX86_BUILTIN_GATHER3SIV8SF, IX86_BUILTIN_GATHER3SIV4SF,
10969 IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV2DF,
10970 IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3DIV4SF,
10971 IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
10972 IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3SIV4SI,
10973 IX86_BUILTIN_GATHER3SIV4DI, IX86_BUILTIN_GATHER3SIV2DI,
10974 IX86_BUILTIN_GATHER3DIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
10975 IX86_BUILTIN_GATHER3DIV4DI, IX86_BUILTIN_GATHER3DIV2DI,
10976 IX86_BUILTIN_SCATTERSIV8SF, IX86_BUILTIN_SCATTERSIV4SF,
10977 IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV2DF,
10978 IX86_BUILTIN_SCATTERDIV8SF, IX86_BUILTIN_SCATTERDIV4SF,
10979 IX86_BUILTIN_SCATTERDIV4DF, IX86_BUILTIN_SCATTERDIV2DF,
10980 IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV4SI,
10981 IX86_BUILTIN_SCATTERSIV4DI, IX86_BUILTIN_SCATTERSIV2DI,
10982 IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_SCATTERDIV4SI,
10983 IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
10984 IX86_BUILTIN_RANGESD128, IX86_BUILTIN_RANGESS128,
10985 IX86_BUILTIN_KUNPCKWD, IX86_BUILTIN_KUNPCKDQ,
10986 IX86_BUILTIN_BROADCASTF32x2_512, IX86_BUILTIN_BROADCASTI32x2_512,
10987 IX86_BUILTIN_BROADCASTF64X2_512, IX86_BUILTIN_BROADCASTI64X2_512,
10988 IX86_BUILTIN_BROADCASTF32X8_512, IX86_BUILTIN_BROADCASTI32X8_512,
10989 IX86_BUILTIN_EXTRACTF64X2_512, IX86_BUILTIN_EXTRACTF32X8,
10990 IX86_BUILTIN_EXTRACTI64X2_512, IX86_BUILTIN_EXTRACTI32X8,
10991 IX86_BUILTIN_REDUCEPD512_MASK, IX86_BUILTIN_REDUCEPS512_MASK,
10992 IX86_BUILTIN_PMULLQ512, IX86_BUILTIN_XORPD512,
10993 IX86_BUILTIN_XORPS512, IX86_BUILTIN_ORPD512,
10994 IX86_BUILTIN_ORPS512, IX86_BUILTIN_ANDPD512,
10995 IX86_BUILTIN_ANDPS512, IX86_BUILTIN_ANDNPD512,
10996 IX86_BUILTIN_ANDNPS512, IX86_BUILTIN_INSERTF32X8,
10997 IX86_BUILTIN_INSERTI32X8, IX86_BUILTIN_INSERTF64X2_512,
10998 IX86_BUILTIN_INSERTI64X2_512, IX86_BUILTIN_FPCLASSPD512,
10999 IX86_BUILTIN_FPCLASSPS512, IX86_BUILTIN_CVTD2MASK512,
11000 IX86_BUILTIN_CVTQ2MASK512, IX86_BUILTIN_CVTMASK2D512,
11001 IX86_BUILTIN_CVTMASK2Q512, IX86_BUILTIN_CVTPD2QQ512,
11002 IX86_BUILTIN_CVTPS2QQ512, IX86_BUILTIN_CVTPD2UQQ512,
11003 IX86_BUILTIN_CVTPS2UQQ512, IX86_BUILTIN_CVTQQ2PS512,
11004 IX86_BUILTIN_CVTUQQ2PS512, IX86_BUILTIN_CVTQQ2PD512,
11005 IX86_BUILTIN_CVTUQQ2PD512, IX86_BUILTIN_CVTTPS2QQ512,
11006 IX86_BUILTIN_CVTTPS2UQQ512, IX86_BUILTIN_CVTTPD2QQ512,
11007 IX86_BUILTIN_CVTTPD2UQQ512, IX86_BUILTIN_RANGEPS512,
11008 IX86_BUILTIN_RANGEPD512, IX86_BUILTIN_PACKUSDW512,
11009 IX86_BUILTIN_PACKSSDW512, IX86_BUILTIN_LOADDQUHI512_MASK,
11010 IX86_BUILTIN_LOADDQUQI512_MASK, IX86_BUILTIN_PSLLDQ512,
11011 IX86_BUILTIN_PSRLDQ512, IX86_BUILTIN_STOREDQUHI512_MASK,
11012 IX86_BUILTIN_STOREDQUQI512_MASK, IX86_BUILTIN_PALIGNR512,
11013 IX86_BUILTIN_PALIGNR512_MASK, IX86_BUILTIN_MOVDQUHI512_MASK,
11014 IX86_BUILTIN_MOVDQUQI512_MASK, IX86_BUILTIN_PSADBW512,
11015 IX86_BUILTIN_DBPSADBW512, IX86_BUILTIN_PBROADCASTB512,
11016 IX86_BUILTIN_PBROADCASTB512_GPR, IX86_BUILTIN_PBROADCASTW512,
11017 IX86_BUILTIN_PBROADCASTW512_GPR, IX86_BUILTIN_PMOVSXBW512_MASK,
11018 IX86_BUILTIN_PMOVZXBW512_MASK, IX86_BUILTIN_VPERMVARHI512_MASK,
11019 IX86_BUILTIN_VPERMT2VARHI512, IX86_BUILTIN_VPERMT2VARHI512_MASKZ,
11020 IX86_BUILTIN_VPERMI2VARHI512, IX86_BUILTIN_PAVGB512,
11021 IX86_BUILTIN_PAVGW512, IX86_BUILTIN_PADDB512,
11022 IX86_BUILTIN_PSUBB512, IX86_BUILTIN_PSUBSB512,
11023 IX86_BUILTIN_PADDSB512, IX86_BUILTIN_PSUBUSB512,
11024 IX86_BUILTIN_PADDUSB512, IX86_BUILTIN_PSUBW512,
11025 IX86_BUILTIN_PADDW512, IX86_BUILTIN_PSUBSW512,
11026 IX86_BUILTIN_PADDSW512, IX86_BUILTIN_PSUBUSW512,
11027 IX86_BUILTIN_PADDUSW512, IX86_BUILTIN_PMAXUW512,
11028 IX86_BUILTIN_PMAXSW512, IX86_BUILTIN_PMINUW512,
11029 IX86_BUILTIN_PMINSW512, IX86_BUILTIN_PMAXUB512,
11030 IX86_BUILTIN_PMAXSB512, IX86_BUILTIN_PMINUB512,
11031 IX86_BUILTIN_PMINSB512, IX86_BUILTIN_PMOVWB512,
11032 IX86_BUILTIN_PMOVSWB512, IX86_BUILTIN_PMOVUSWB512,
11033 IX86_BUILTIN_PMULHRSW512_MASK, IX86_BUILTIN_PMULHUW512_MASK,
11034 IX86_BUILTIN_PMULHW512_MASK, IX86_BUILTIN_PMULLW512_MASK,
11035 IX86_BUILTIN_PSLLWI512_MASK, IX86_BUILTIN_PSLLW512_MASK,
11036 IX86_BUILTIN_PACKSSWB512, IX86_BUILTIN_PACKUSWB512,
11037 IX86_BUILTIN_PSRAVV32HI, IX86_BUILTIN_PMADDUBSW512_MASK,
11038 IX86_BUILTIN_PMADDWD512_MASK, IX86_BUILTIN_PSRLVV32HI,
11039 IX86_BUILTIN_PUNPCKHBW512, IX86_BUILTIN_PUNPCKHWD512,
11040 IX86_BUILTIN_PUNPCKLBW512, IX86_BUILTIN_PUNPCKLWD512,
11041 IX86_BUILTIN_PSHUFB512, IX86_BUILTIN_PSHUFHW512,
11042 IX86_BUILTIN_PSHUFLW512, IX86_BUILTIN_PSRAWI512,
11043 IX86_BUILTIN_PSRAW512, IX86_BUILTIN_PSRLWI512,
11044 IX86_BUILTIN_PSRLW512, IX86_BUILTIN_CVTB2MASK512,
11045 IX86_BUILTIN_CVTW2MASK512, IX86_BUILTIN_CVTMASK2B512,
11046 IX86_BUILTIN_CVTMASK2W512, IX86_BUILTIN_PCMPEQB512_MASK,
11047 IX86_BUILTIN_PCMPEQW512_MASK, IX86_BUILTIN_PCMPGTB512_MASK,
11048 IX86_BUILTIN_PCMPGTW512_MASK, IX86_BUILTIN_PTESTMB512,
11049 IX86_BUILTIN_PTESTMW512, IX86_BUILTIN_PTESTNMB512,
11050 IX86_BUILTIN_PTESTNMW512, IX86_BUILTIN_PSLLVV32HI,
11051 IX86_BUILTIN_PABSB512, IX86_BUILTIN_PABSW512,
11052 IX86_BUILTIN_BLENDMW512, IX86_BUILTIN_BLENDMB512,
11053 IX86_BUILTIN_CMPB512, IX86_BUILTIN_CMPW512,
11054 IX86_BUILTIN_UCMPB512, IX86_BUILTIN_UCMPW512.
11055 (bdesc_special_args):
11056 Add __builtin_ia32_loaddquhi512_mask, __builtin_ia32_loaddquqi512_mask,
11057 __builtin_ia32_storedquhi512_mask, __builtin_ia32_storedquqi512_mask,
11058 __builtin_ia32_loaddquhi256_mask, __builtin_ia32_loaddquhi128_mask,
11059 __builtin_ia32_loaddquqi256_mask, __builtin_ia32_loaddquqi128_mask,
11060 __builtin_ia32_movdqa64load256_mask, __builtin_ia32_movdqa64load128_mask,
11061 __builtin_ia32_movdqa32load256_mask, __builtin_ia32_movdqa32load128_mask,
11062 __builtin_ia32_movdqa64store256_mask, __builtin_ia32_movdqa64store128_mask,
11063 __builtin_ia32_movdqa32store256_mask, __builtin_ia32_movdqa32store128_mask,
11064 __builtin_ia32_loadapd256_mask, __builtin_ia32_loadapd128_mask,
11065 __builtin_ia32_loadaps256_mask, __builtin_ia32_loadaps128_mask,
11066 __builtin_ia32_storeapd256_mask, __builtin_ia32_storeapd128_mask,
11067 __builtin_ia32_storeaps256_mask, __builtin_ia32_storeaps128_mask,
11068 __builtin_ia32_loadupd256_mask, __builtin_ia32_loadupd128_mask,
11069 __builtin_ia32_loadups256_mask, __builtin_ia32_loadups128_mask,
11070 __builtin_ia32_storeupd256_mask, __builtin_ia32_storeupd128_mask,
11071 __builtin_ia32_storeups256_mask, __builtin_ia32_storeups128_mask,
11072 __builtin_ia32_loaddqudi256_mask, __builtin_ia32_loaddqudi128_mask,
11073 __builtin_ia32_loaddqusi256_mask, __builtin_ia32_loaddqusi128_mask,
11074 __builtin_ia32_storedqudi256_mask, __builtin_ia32_storedqudi128_mask,
11075 __builtin_ia32_storedqusi256_mask, __builtin_ia32_storedqusi128_mask,
11076 __builtin_ia32_storedquhi256_mask, __builtin_ia32_storedquhi128_mask,
11077 __builtin_ia32_storedquqi256_mask, __builtin_ia32_storedquqi128_mask,
11078 __builtin_ia32_compressstoredf256_mask, __builtin_ia32_compressstoredf128_mask,
11079 __builtin_ia32_compressstoresf256_mask, __builtin_ia32_compressstoresf128_mask,
11080 __builtin_ia32_compressstoredi256_mask, __builtin_ia32_compressstoredi128_mask,
11081 __builtin_ia32_compressstoresi256_mask, __builtin_ia32_compressstoresi128_mask,
11082 __builtin_ia32_expandloaddf256_mask, __builtin_ia32_expandloaddf128_mask,
11083 __builtin_ia32_expandloadsf256_mask, __builtin_ia32_expandloadsf128_mask,
11084 __builtin_ia32_expandloaddi256_mask, __builtin_ia32_expandloaddi128_mask,
11085 __builtin_ia32_expandloadsi256_mask, __builtin_ia32_expandloadsi128_mask,
11086 __builtin_ia32_expandloaddf256_maskz, __builtin_ia32_expandloaddf128_maskz,
11087 __builtin_ia32_expandloadsf256_maskz, __builtin_ia32_expandloadsf128_maskz,
11088 __builtin_ia32_expandloaddi256_maskz, __builtin_ia32_expandloaddi128_maskz,
11089 __builtin_ia32_expandloadsi256_maskz, __builtin_ia32_expandloadsi128_maskz,
11090 __builtin_ia32_pmovqd256mem_mask, __builtin_ia32_pmovqd128mem_mask,
11091 __builtin_ia32_pmovsqd256mem_mask, __builtin_ia32_pmovsqd128mem_mask,
11092 __builtin_ia32_pmovusqd256mem_mask, __builtin_ia32_pmovusqd128mem_mask,
11093 __builtin_ia32_pmovqw256mem_mask, __builtin_ia32_pmovqw128mem_mask,
11094 __builtin_ia32_pmovsqw256mem_mask, __builtin_ia32_pmovsqw128mem_mask,
11095 __builtin_ia32_pmovusqw256mem_mask, __builtin_ia32_pmovusqw128mem_mask,
11096 __builtin_ia32_pmovqb256mem_mask, __builtin_ia32_pmovqb128mem_mask,
11097 __builtin_ia32_pmovsqb256mem_mask, __builtin_ia32_pmovsqb128mem_mask,
11098 __builtin_ia32_pmovusqb256mem_mask, __builtin_ia32_pmovusqb128mem_mask,
11099 __builtin_ia32_pmovdb256mem_mask, __builtin_ia32_pmovdb128mem_mask,
11100 __builtin_ia32_pmovsdb256mem_mask, __builtin_ia32_pmovsdb128mem_mask,
11101 __builtin_ia32_pmovusdb256mem_mask, __builtin_ia32_pmovusdb128mem_mask,
11102 __builtin_ia32_pmovdw256mem_mask, __builtin_ia32_pmovdw128mem_mask,
11103 __builtin_ia32_pmovsdw256mem_mask, __builtin_ia32_pmovsdw128mem_mask,
11104 __builtin_ia32_pmovusdw256mem_mask, __builtin_ia32_pmovusdw128mem_mask,
11105 __builtin_ia32_palignr256_mask, __builtin_ia32_palignr128_mask,
11106 __builtin_ia32_movdqa64_256_mask, __builtin_ia32_movdqa64_128_mask,
11107 __builtin_ia32_movdqa32_256_mask, __builtin_ia32_movdqa32_128_mask,
11108 __builtin_ia32_movapd256_mask, __builtin_ia32_movapd128_mask,
11109 __builtin_ia32_movaps256_mask, __builtin_ia32_movaps128_mask,
11110 __builtin_ia32_movdquhi256_mask, __builtin_ia32_movdquhi128_mask,
11111 __builtin_ia32_movdquqi256_mask, __builtin_ia32_movdquqi128_mask,
11112 __builtin_ia32_minps_mask, __builtin_ia32_maxps_mask,
11113 __builtin_ia32_minpd_mask, __builtin_ia32_maxpd_mask,
11114 __builtin_ia32_maxpd256_mask, __builtin_ia32_maxps256_mask,
11115 __builtin_ia32_minpd256_mask, __builtin_ia32_minps256_mask,
11116 __builtin_ia32_mulps_mask, __builtin_ia32_divps_mask,
11117 __builtin_ia32_mulpd_mask, __builtin_ia32_divpd_mask,
11118 __builtin_ia32_divpd256_mask, __builtin_ia32_divps256_mask,
11119 __builtin_ia32_mulpd256_mask, __builtin_ia32_mulps256_mask,
11120 __builtin_ia32_addpd128_mask, __builtin_ia32_addpd256_mask,
11121 __builtin_ia32_addps128_mask, __builtin_ia32_addps256_mask,
11122 __builtin_ia32_subpd128_mask, __builtin_ia32_subpd256_mask,
11123 __builtin_ia32_subps128_mask, __builtin_ia32_subps256_mask,
11124 __builtin_ia32_xorpd256_mask, __builtin_ia32_xorpd128_mask,
11125 __builtin_ia32_xorps256_mask, __builtin_ia32_xorps128_mask,
11126 __builtin_ia32_orpd256_mask, __builtin_ia32_orpd128_mask,
11127 __builtin_ia32_orps256_mask, __builtin_ia32_orps128_mask,
11128 __builtin_ia32_broadcastf32x2_256_mask, __builtin_ia32_broadcasti32x2_256_mask,
11129 __builtin_ia32_broadcasti32x2_128_mask, __builtin_ia32_broadcastf64x2_256_mask,
11130 __builtin_ia32_broadcasti64x2_256_mask, __builtin_ia32_broadcastf32x4_256_mask,
11131 __builtin_ia32_broadcasti32x4_256_mask, __builtin_ia32_extractf32x4_256_mask,
11132 __builtin_ia32_extracti32x4_256_mask, __builtin_ia32_dbpsadbw256_mask,
11133 __builtin_ia32_dbpsadbw128_mask, __builtin_ia32_cvttpd2qq256_mask,
11134 __builtin_ia32_cvttpd2qq128_mask, __builtin_ia32_cvttpd2uqq256_mask,
11135 __builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvtpd2qq256_mask,
11136 __builtin_ia32_cvtpd2qq128_mask, __builtin_ia32_cvtpd2uqq256_mask,
11137 __builtin_ia32_cvtpd2uqq128_mask, __builtin_ia32_cvtpd2udq256_mask,
11138 __builtin_ia32_cvtpd2udq128_mask, __builtin_ia32_cvttps2qq256_mask,
11139 __builtin_ia32_cvttps2qq128_mask, __builtin_ia32_cvttps2uqq256_mask,
11140 __builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvttps2dq256_mask,
11141 __builtin_ia32_cvttps2dq128_mask, __builtin_ia32_cvttps2udq256_mask,
11142 __builtin_ia32_cvttps2udq128_mask, __builtin_ia32_cvttpd2dq256_mask,
11143 __builtin_ia32_cvttpd2dq128_mask, __builtin_ia32_cvttpd2udq256_mask,
11144 __builtin_ia32_cvttpd2udq128_mask, __builtin_ia32_cvtpd2dq256_mask,
11145 __builtin_ia32_cvtpd2dq128_mask, __builtin_ia32_cvtdq2pd256_mask,
11146 __builtin_ia32_cvtdq2pd128_mask, __builtin_ia32_cvtudq2pd256_mask,
11147 __builtin_ia32_cvtudq2pd128_mask, __builtin_ia32_cvtdq2ps256_mask,
11148 __builtin_ia32_cvtdq2ps128_mask, __builtin_ia32_cvtudq2ps256_mask,
11149 __builtin_ia32_cvtudq2ps128_mask, __builtin_ia32_cvtps2pd256_mask,
11150 __builtin_ia32_cvtps2pd128_mask, __builtin_ia32_pbroadcastb256_mask,
11151 __builtin_ia32_pbroadcastb256_gpr_mask, __builtin_ia32_pbroadcastb128_mask,
11152 __builtin_ia32_pbroadcastb128_gpr_mask, __builtin_ia32_pbroadcastw256_mask,
11153 __builtin_ia32_pbroadcastw256_gpr_mask, __builtin_ia32_pbroadcastw128_mask,
11154 __builtin_ia32_pbroadcastw128_gpr_mask, __builtin_ia32_pbroadcastd256_mask,
11155 __builtin_ia32_pbroadcastd256_gpr_mask, __builtin_ia32_pbroadcastd128_mask,
11156 __builtin_ia32_pbroadcastd128_gpr_mask, __builtin_ia32_pbroadcastq256_mask,
11157 __builtin_ia32_pbroadcastq256_gpr_mask, __builtin_ia32_pbroadcastq256_mem_mask,
11158 __builtin_ia32_pbroadcastq128_mask, __builtin_ia32_pbroadcastq128_gpr_mask,
11159 __builtin_ia32_pbroadcastq128_mem_mask, __builtin_ia32_broadcastss256_mask,
11160 __builtin_ia32_broadcastss128_mask, __builtin_ia32_broadcastsd256_mask,
11161 __builtin_ia32_extractf64x2_256_mask, __builtin_ia32_extracti64x2_256_mask,
11162 __builtin_ia32_insertf32x4_256_mask, __builtin_ia32_inserti32x4_256_mask,
11163 __builtin_ia32_pmovsxbw256_mask, __builtin_ia32_pmovsxbw128_mask,
11164 __builtin_ia32_pmovsxbd256_mask, __builtin_ia32_pmovsxbd128_mask,
11165 __builtin_ia32_pmovsxbq256_mask, __builtin_ia32_pmovsxbq128_mask,
11166 __builtin_ia32_pmovsxwd256_mask, __builtin_ia32_pmovsxwd128_mask,
11167 __builtin_ia32_pmovsxwq256_mask, __builtin_ia32_pmovsxwq128_mask,
11168 __builtin_ia32_pmovsxdq256_mask, __builtin_ia32_pmovsxdq128_mask,
11169 __builtin_ia32_pmovzxbw256_mask, __builtin_ia32_pmovzxbw128_mask,
11170 __builtin_ia32_pmovzxbd256_mask, __builtin_ia32_pmovzxbd128_mask,
11171 __builtin_ia32_pmovzxbq256_mask, __builtin_ia32_pmovzxbq128_mask,
11172 __builtin_ia32_pmovzxwd256_mask, __builtin_ia32_pmovzxwd128_mask,
11173 __builtin_ia32_pmovzxwq256_mask, __builtin_ia32_pmovzxwq128_mask,
11174 __builtin_ia32_pmovzxdq256_mask, __builtin_ia32_pmovzxdq128_mask,
11175 __builtin_ia32_reducepd256_mask, __builtin_ia32_reducepd128_mask,
11176 __builtin_ia32_reduceps256_mask, __builtin_ia32_reduceps128_mask,
11177 __builtin_ia32_reducesd, __builtin_ia32_reducess,
11178 __builtin_ia32_permvarhi256_mask, __builtin_ia32_permvarhi128_mask,
11179 __builtin_ia32_vpermt2varhi256_mask, __builtin_ia32_vpermt2varhi256_maskz,
11180 __builtin_ia32_vpermt2varhi128_mask, __builtin_ia32_vpermt2varhi128_maskz,
11181 __builtin_ia32_vpermi2varhi256_mask, __builtin_ia32_vpermi2varhi128_mask,
11182 __builtin_ia32_rcp14pd256_mask, __builtin_ia32_rcp14pd128_mask,
11183 __builtin_ia32_rcp14ps256_mask, __builtin_ia32_rcp14ps128_mask,
11184 __builtin_ia32_rsqrt14pd256_mask, __builtin_ia32_rsqrt14pd128_mask,
11185 __builtin_ia32_rsqrt14ps256_mask, __builtin_ia32_rsqrt14ps128_mask,
11186 __builtin_ia32_sqrtpd256_mask, __builtin_ia32_sqrtpd128_mask,
11187 __builtin_ia32_sqrtps256_mask, __builtin_ia32_sqrtps128_mask,
11188 __builtin_ia32_paddb128_mask, __builtin_ia32_paddw128_mask,
11189 __builtin_ia32_paddd128_mask, __builtin_ia32_paddq128_mask,
11190 __builtin_ia32_psubb128_mask, __builtin_ia32_psubw128_mask,
11191 __builtin_ia32_psubd128_mask, __builtin_ia32_psubq128_mask,
11192 __builtin_ia32_paddsb128_mask, __builtin_ia32_paddsw128_mask,
11193 __builtin_ia32_psubsb128_mask, __builtin_ia32_psubsw128_mask,
11194 __builtin_ia32_paddusb128_mask, __builtin_ia32_paddusw128_mask,
11195 __builtin_ia32_psubusb128_mask, __builtin_ia32_psubusw128_mask,
11196 __builtin_ia32_paddb256_mask, __builtin_ia32_paddw256_mask,
11197 __builtin_ia32_paddd256_mask, __builtin_ia32_paddq256_mask,
11198 __builtin_ia32_paddsb256_mask, __builtin_ia32_paddsw256_mask,
11199 __builtin_ia32_paddusb256_mask, __builtin_ia32_paddusw256_mask,
11200 __builtin_ia32_psubb256_mask, __builtin_ia32_psubw256_mask,
11201 __builtin_ia32_psubd256_mask, __builtin_ia32_psubq256_mask,
11202 __builtin_ia32_psubsb256_mask, __builtin_ia32_psubsw256_mask,
11203 __builtin_ia32_psubusb256_mask, __builtin_ia32_psubusw256_mask,
11204 __builtin_ia32_shuf_f64x2_256_mask, __builtin_ia32_shuf_i64x2_256_mask,
11205 __builtin_ia32_shuf_i32x4_256_mask, __builtin_ia32_shuf_f32x4_256_mask,
11206 __builtin_ia32_pmovwb128_mask, __builtin_ia32_pmovwb256_mask,
11207 __builtin_ia32_pmovswb128_mask, __builtin_ia32_pmovswb256_mask,
11208 __builtin_ia32_pmovuswb128_mask, __builtin_ia32_pmovuswb256_mask,
11209 __builtin_ia32_pmovdb128_mask, __builtin_ia32_pmovdb256_mask,
11210 __builtin_ia32_pmovsdb128_mask, __builtin_ia32_pmovsdb256_mask,
11211 __builtin_ia32_pmovusdb128_mask, __builtin_ia32_pmovusdb256_mask,
11212 __builtin_ia32_pmovdw128_mask, __builtin_ia32_pmovdw256_mask,
11213 __builtin_ia32_pmovsdw128_mask, __builtin_ia32_pmovsdw256_mask,
11214 __builtin_ia32_pmovusdw128_mask, __builtin_ia32_pmovusdw256_mask,
11215 __builtin_ia32_pmovqb128_mask, __builtin_ia32_pmovqb256_mask,
11216 __builtin_ia32_pmovsqb128_mask, __builtin_ia32_pmovsqb256_mask,
11217 __builtin_ia32_pmovusqb128_mask, __builtin_ia32_pmovusqb256_mask,
11218 __builtin_ia32_pmovqw128_mask, __builtin_ia32_pmovqw256_mask,
11219 __builtin_ia32_pmovsqw128_mask, __builtin_ia32_pmovsqw256_mask,
11220 __builtin_ia32_pmovusqw128_mask, __builtin_ia32_pmovusqw256_mask,
11221 __builtin_ia32_pmovqd128_mask, __builtin_ia32_pmovqd256_mask,
11222 __builtin_ia32_pmovsqd128_mask, __builtin_ia32_pmovsqd256_mask,
11223 __builtin_ia32_pmovusqd128_mask, __builtin_ia32_pmovusqd256_mask,
11224 __builtin_ia32_rangepd256_mask, __builtin_ia32_rangepd128_mask,
11225 __builtin_ia32_rangeps256_mask, __builtin_ia32_rangeps128_mask,
11226 __builtin_ia32_getexpps256_mask, __builtin_ia32_getexppd256_mask,
11227 __builtin_ia32_getexpps128_mask, __builtin_ia32_getexppd128_mask,
11228 __builtin_ia32_fixupimmpd256, __builtin_ia32_fixupimmpd256_mask,
11229 __builtin_ia32_fixupimmpd256_maskz, __builtin_ia32_fixupimmps256,
11230 __builtin_ia32_fixupimmps256_mask, __builtin_ia32_fixupimmps256_maskz,
11231 __builtin_ia32_fixupimmpd128, __builtin_ia32_fixupimmpd128_mask,
11232 __builtin_ia32_fixupimmpd128_maskz, __builtin_ia32_fixupimmps128,
11233 __builtin_ia32_fixupimmps128_mask, __builtin_ia32_fixupimmps128_maskz,
11234 __builtin_ia32_pabsq256_mask, __builtin_ia32_pabsq128_mask,
11235 __builtin_ia32_pabsd256_mask, __builtin_ia32_pabsd128_mask,
11236 __builtin_ia32_pmulhrsw256_mask, __builtin_ia32_pmulhrsw128_mask,
11237 __builtin_ia32_pmulhuw128_mask, __builtin_ia32_pmulhuw256_mask,
11238 __builtin_ia32_pmulhw256_mask, __builtin_ia32_pmulhw128_mask,
11239 __builtin_ia32_pmullw256_mask, __builtin_ia32_pmullw128_mask,
11240 __builtin_ia32_pmullq256_mask, __builtin_ia32_pmullq128_mask,
11241 __builtin_ia32_andpd256_mask, __builtin_ia32_andpd128_mask,
11242 __builtin_ia32_andps256_mask, __builtin_ia32_andps128_mask,
11243 __builtin_ia32_andnpd256_mask, __builtin_ia32_andnpd128_mask,
11244 __builtin_ia32_andnps256_mask, __builtin_ia32_andnps128_mask,
11245 __builtin_ia32_psllwi128_mask, __builtin_ia32_pslldi128_mask,
11246 __builtin_ia32_psllqi128_mask, __builtin_ia32_psllw128_mask,
11247 __builtin_ia32_pslld128_mask, __builtin_ia32_psllq128_mask,
11248 __builtin_ia32_psllwi256_mask, __builtin_ia32_psllw256_mask,
11249 __builtin_ia32_pslldi256_mask, __builtin_ia32_pslld256_mask,
11250 __builtin_ia32_psllqi256_mask, __builtin_ia32_psllq256_mask,
11251 __builtin_ia32_psradi128_mask, __builtin_ia32_psrad128_mask,
11252 __builtin_ia32_psradi256_mask, __builtin_ia32_psrad256_mask,
11253 __builtin_ia32_psraqi128_mask, __builtin_ia32_psraq128_mask,
11254 __builtin_ia32_psraqi256_mask, __builtin_ia32_psraq256_mask,
11255 __builtin_ia32_pandd256_mask, __builtin_ia32_pandd128_mask,
11256 __builtin_ia32_psrldi128_mask, __builtin_ia32_psrld128_mask,
11257 __builtin_ia32_psrldi256_mask, __builtin_ia32_psrld256_mask,
11258 __builtin_ia32_psrlqi128_mask, __builtin_ia32_psrlq128_mask,
11259 __builtin_ia32_psrlqi256_mask, __builtin_ia32_psrlq256_mask,
11260 __builtin_ia32_pandq256_mask, __builtin_ia32_pandq128_mask,
11261 __builtin_ia32_pandnd256_mask, __builtin_ia32_pandnd128_mask,
11262 __builtin_ia32_pandnq256_mask, __builtin_ia32_pandnq128_mask,
11263 __builtin_ia32_pord256_mask, __builtin_ia32_pord128_mask,
11264 __builtin_ia32_porq256_mask, __builtin_ia32_porq128_mask,
11265 __builtin_ia32_pxord256_mask, __builtin_ia32_pxord128_mask,
11266 __builtin_ia32_pxorq256_mask, __builtin_ia32_pxorq128_mask,
11267 __builtin_ia32_packsswb256_mask, __builtin_ia32_packsswb128_mask,
11268 __builtin_ia32_packuswb256_mask, __builtin_ia32_packuswb128_mask,
11269 __builtin_ia32_rndscaleps_256_mask, __builtin_ia32_rndscalepd_256_mask,
11270 __builtin_ia32_rndscaleps_128_mask, __builtin_ia32_rndscalepd_128_mask,
11271 __builtin_ia32_pternlogq256_mask, __builtin_ia32_pternlogq256_maskz,
11272 __builtin_ia32_pternlogd256_mask, __builtin_ia32_pternlogd256_maskz,
11273 __builtin_ia32_pternlogq128_mask, __builtin_ia32_pternlogq128_maskz,
11274 __builtin_ia32_pternlogd128_mask, __builtin_ia32_pternlogd128_maskz,
11275 __builtin_ia32_scalefpd256_mask, __builtin_ia32_scalefps256_mask,
11276 __builtin_ia32_scalefpd128_mask, __builtin_ia32_scalefps128_mask,
11277 __builtin_ia32_vfmaddpd256_mask, __builtin_ia32_vfmaddpd256_mask3,
11278 __builtin_ia32_vfmaddpd256_maskz, __builtin_ia32_vfmaddpd128_mask,
11279 __builtin_ia32_vfmaddpd128_mask3, __builtin_ia32_vfmaddpd128_maskz,
11280 __builtin_ia32_vfmaddps256_mask, __builtin_ia32_vfmaddps256_mask3,
11281 __builtin_ia32_vfmaddps256_maskz, __builtin_ia32_vfmaddps128_mask,
11282 __builtin_ia32_vfmaddps128_mask3, __builtin_ia32_vfmaddps128_maskz,
11283 __builtin_ia32_vfmsubpd256_mask3, __builtin_ia32_vfmsubpd128_mask3,
11284 __builtin_ia32_vfmsubps256_mask3, __builtin_ia32_vfmsubps128_mask3,
11285 __builtin_ia32_vfnmaddpd256_mask, __builtin_ia32_vfnmaddpd128_mask,
11286 __builtin_ia32_vfnmaddps256_mask, __builtin_ia32_vfnmaddps128_mask,
11287 __builtin_ia32_vfnmsubpd256_mask, __builtin_ia32_vfnmsubpd256_mask3,
11288 __builtin_ia32_vfnmsubpd128_mask, __builtin_ia32_vfnmsubpd128_mask3,
11289 __builtin_ia32_vfnmsubps256_mask, __builtin_ia32_vfnmsubps256_mask3,
11290 __builtin_ia32_vfnmsubps128_mask, __builtin_ia32_vfnmsubps128_mask3,
11291 __builtin_ia32_vfmaddsubpd256_mask, __builtin_ia32_vfmaddsubpd256_mask3,
11292 __builtin_ia32_vfmaddsubpd256_maskz, __builtin_ia32_vfmaddsubpd128_mask,
11293 __builtin_ia32_vfmaddsubpd128_mask3, __builtin_ia32_vfmaddsubpd128_maskz,
11294 __builtin_ia32_vfmaddsubps256_mask, __builtin_ia32_vfmaddsubps256_mask3,
11295 __builtin_ia32_vfmaddsubps256_maskz, __builtin_ia32_vfmaddsubps128_mask,
11296 __builtin_ia32_vfmaddsubps128_mask3, __builtin_ia32_vfmaddsubps128_maskz,
11297 __builtin_ia32_vfmsubaddpd256_mask3, __builtin_ia32_vfmsubaddpd128_mask3,
11298 __builtin_ia32_vfmsubaddps256_mask3, __builtin_ia32_vfmsubaddps128_mask3,
11299 __builtin_ia32_insertf64x2_256_mask, __builtin_ia32_inserti64x2_256_mask,
11300 __builtin_ia32_psrav16hi_mask, __builtin_ia32_psrav8hi_mask,
11301 __builtin_ia32_pmaddubsw256_mask, __builtin_ia32_pmaddubsw128_mask,
11302 __builtin_ia32_pmaddwd256_mask, __builtin_ia32_pmaddwd128_mask,
11303 __builtin_ia32_psrlv16hi_mask, __builtin_ia32_psrlv8hi_mask,
11304 __builtin_ia32_cvtps2dq256_mask, __builtin_ia32_cvtps2dq128_mask,
11305 __builtin_ia32_cvtps2udq256_mask, __builtin_ia32_cvtps2udq128_mask,
11306 __builtin_ia32_cvtps2qq256_mask, __builtin_ia32_cvtps2qq128_mask,
11307 __builtin_ia32_cvtps2uqq256_mask, __builtin_ia32_cvtps2uqq128_mask,
11308 __builtin_ia32_getmantps256_mask, __builtin_ia32_getmantps128_mask,
11309 __builtin_ia32_getmantpd256_mask, __builtin_ia32_getmantpd128_mask,
11310 __builtin_ia32_movddup256_mask, __builtin_ia32_movddup128_mask,
11311 __builtin_ia32_movshdup256_mask, __builtin_ia32_movshdup128_mask,
11312 __builtin_ia32_movsldup256_mask, __builtin_ia32_movsldup128_mask,
11313 __builtin_ia32_cvtqq2ps256_mask, __builtin_ia32_cvtqq2ps128_mask,
11314 __builtin_ia32_cvtuqq2ps256_mask, __builtin_ia32_cvtuqq2ps128_mask,
11315 __builtin_ia32_cvtqq2pd256_mask, __builtin_ia32_cvtqq2pd128_mask,
11316 __builtin_ia32_cvtuqq2pd256_mask, __builtin_ia32_cvtuqq2pd128_mask,
11317 __builtin_ia32_vpermt2varq256_mask, __builtin_ia32_vpermt2varq256_maskz,
11318 __builtin_ia32_vpermt2vard256_mask, __builtin_ia32_vpermt2vard256_maskz,
11319 __builtin_ia32_vpermi2varq256_mask, __builtin_ia32_vpermi2vard256_mask,
11320 __builtin_ia32_vpermt2varpd256_mask, __builtin_ia32_vpermt2varpd256_maskz,
11321 __builtin_ia32_vpermt2varps256_mask, __builtin_ia32_vpermt2varps256_maskz,
11322 __builtin_ia32_vpermi2varpd256_mask, __builtin_ia32_vpermi2varps256_mask,
11323 __builtin_ia32_vpermt2varq128_mask, __builtin_ia32_vpermt2varq128_maskz,
11324 __builtin_ia32_vpermt2vard128_mask, __builtin_ia32_vpermt2vard128_maskz,
11325 __builtin_ia32_vpermi2varq128_mask, __builtin_ia32_vpermi2vard128_mask,
11326 __builtin_ia32_vpermt2varpd128_mask, __builtin_ia32_vpermt2varpd128_maskz,
11327 __builtin_ia32_vpermt2varps128_mask, __builtin_ia32_vpermt2varps128_maskz,
11328 __builtin_ia32_vpermi2varpd128_mask, __builtin_ia32_vpermi2varps128_mask,
11329 __builtin_ia32_pshufb256_mask, __builtin_ia32_pshufb128_mask,
11330 __builtin_ia32_pshufhw256_mask, __builtin_ia32_pshufhw128_mask,
11331 __builtin_ia32_pshuflw256_mask, __builtin_ia32_pshuflw128_mask,
11332 __builtin_ia32_pshufd256_mask, __builtin_ia32_pshufd128_mask,
11333 __builtin_ia32_shufpd256_mask, __builtin_ia32_shufpd128_mask,
11334 __builtin_ia32_shufps256_mask, __builtin_ia32_shufps128_mask,
11335 __builtin_ia32_prolvq256_mask, __builtin_ia32_prolvq128_mask,
11336 __builtin_ia32_prolq256_mask, __builtin_ia32_prolq128_mask,
11337 __builtin_ia32_prorvq256_mask, __builtin_ia32_prorvq128_mask,
11338 __builtin_ia32_prorq256_mask, __builtin_ia32_prorq128_mask,
11339 __builtin_ia32_psravq128_mask, __builtin_ia32_psravq256_mask,
11340 __builtin_ia32_psllv4di_mask, __builtin_ia32_psllv2di_mask,
11341 __builtin_ia32_psllv8si_mask, __builtin_ia32_psllv4si_mask,
11342 __builtin_ia32_psrav8si_mask, __builtin_ia32_psrav4si_mask,
11343 __builtin_ia32_psrlv4di_mask, __builtin_ia32_psrlv2di_mask,
11344 __builtin_ia32_psrlv8si_mask, __builtin_ia32_psrlv4si_mask,
11345 __builtin_ia32_psrawi256_mask, __builtin_ia32_psraw256_mask,
11346 __builtin_ia32_psrawi128_mask, __builtin_ia32_psraw128_mask,
11347 __builtin_ia32_psrlwi256_mask, __builtin_ia32_psrlw256_mask,
11348 __builtin_ia32_psrlwi128_mask, __builtin_ia32_psrlw128_mask,
11349 __builtin_ia32_prorvd256_mask, __builtin_ia32_prolvd256_mask,
11350 __builtin_ia32_prord256_mask, __builtin_ia32_prold256_mask,
11351 __builtin_ia32_prorvd128_mask, __builtin_ia32_prolvd128_mask,
11352 __builtin_ia32_prord128_mask, __builtin_ia32_prold128_mask,
11353 __builtin_ia32_fpclasspd256_mask, __builtin_ia32_fpclasspd128_mask,
11354 __builtin_ia32_fpclasssd, __builtin_ia32_fpclassps256_mask,
11355 __builtin_ia32_fpclassps128_mask, __builtin_ia32_fpclassss,
11356 __builtin_ia32_cvtb2mask128, __builtin_ia32_cvtb2mask256,
11357 __builtin_ia32_cvtw2mask128, __builtin_ia32_cvtw2mask256,
11358 __builtin_ia32_cvtd2mask128, __builtin_ia32_cvtd2mask256,
11359 __builtin_ia32_cvtq2mask128, __builtin_ia32_cvtq2mask256,
11360 __builtin_ia32_cvtmask2b128, __builtin_ia32_cvtmask2b256,
11361 __builtin_ia32_cvtmask2w128, __builtin_ia32_cvtmask2w256,
11362 __builtin_ia32_cvtmask2d128, __builtin_ia32_cvtmask2d256,
11363 __builtin_ia32_cvtmask2q128, __builtin_ia32_cvtmask2q256,
11364 __builtin_ia32_pcmpeqb128_mask, __builtin_ia32_pcmpeqb256_mask,
11365 __builtin_ia32_pcmpeqw128_mask, __builtin_ia32_pcmpeqw256_mask,
11366 __builtin_ia32_pcmpeqd128_mask, __builtin_ia32_pcmpeqd256_mask,
11367 __builtin_ia32_pcmpeqq128_mask, __builtin_ia32_pcmpeqq256_mask,
11368 __builtin_ia32_pcmpgtb128_mask, __builtin_ia32_pcmpgtb256_mask,
11369 __builtin_ia32_pcmpgtw128_mask, __builtin_ia32_pcmpgtw256_mask,
11370 __builtin_ia32_pcmpgtd128_mask, __builtin_ia32_pcmpgtd256_mask,
11371 __builtin_ia32_pcmpgtq128_mask, __builtin_ia32_pcmpgtq256_mask,
11372 __builtin_ia32_ptestmb128, __builtin_ia32_ptestmb256,
11373 __builtin_ia32_ptestmw128, __builtin_ia32_ptestmw256,
11374 __builtin_ia32_ptestmd128, __builtin_ia32_ptestmd256,
11375 __builtin_ia32_ptestmq128, __builtin_ia32_ptestmq256,
11376 __builtin_ia32_ptestnmb128, __builtin_ia32_ptestnmb256,
11377 __builtin_ia32_ptestnmw128, __builtin_ia32_ptestnmw256,
11378 __builtin_ia32_ptestnmd128, __builtin_ia32_ptestnmd256,
11379 __builtin_ia32_ptestnmq128, __builtin_ia32_ptestnmq256,
11380 __builtin_ia32_broadcastmb128, __builtin_ia32_broadcastmb256,
11381 __builtin_ia32_broadcastmw128, __builtin_ia32_broadcastmw256,
11382 __builtin_ia32_compressdf256_mask, __builtin_ia32_compressdf128_mask,
11383 __builtin_ia32_compresssf256_mask, __builtin_ia32_compresssf128_mask,
11384 __builtin_ia32_compressdi256_mask, __builtin_ia32_compressdi128_mask,
11385 __builtin_ia32_compresssi256_mask, __builtin_ia32_compresssi128_mask,
11386 __builtin_ia32_expanddf256_mask, __builtin_ia32_expanddf128_mask,
11387 __builtin_ia32_expandsf256_mask, __builtin_ia32_expandsf128_mask,
11388 __builtin_ia32_expanddi256_mask, __builtin_ia32_expanddi128_mask,
11389 __builtin_ia32_expandsi256_mask, __builtin_ia32_expandsi128_mask,
11390 __builtin_ia32_expanddf256_maskz, __builtin_ia32_expanddf128_maskz,
11391 __builtin_ia32_expandsf256_maskz, __builtin_ia32_expandsf128_maskz,
11392 __builtin_ia32_expanddi256_maskz, __builtin_ia32_expanddi128_maskz,
11393 __builtin_ia32_expandsi256_maskz, __builtin_ia32_expandsi128_maskz,
11394 __builtin_ia32_pmaxsd256_mask, __builtin_ia32_pminsd256_mask,
11395 __builtin_ia32_pmaxud256_mask, __builtin_ia32_pminud256_mask,
11396 __builtin_ia32_pmaxsd128_mask, __builtin_ia32_pminsd128_mask,
11397 __builtin_ia32_pmaxud128_mask, __builtin_ia32_pminud128_mask,
11398 __builtin_ia32_pmaxsq256_mask, __builtin_ia32_pminsq256_mask,
11399 __builtin_ia32_pmaxuq256_mask, __builtin_ia32_pminuq256_mask,
11400 __builtin_ia32_pmaxsq128_mask, __builtin_ia32_pminsq128_mask,
11401 __builtin_ia32_pmaxuq128_mask, __builtin_ia32_pminuq128_mask,
11402 __builtin_ia32_pminsb256_mask, __builtin_ia32_pminub256_mask,
11403 __builtin_ia32_pmaxsb256_mask, __builtin_ia32_pmaxub256_mask,
11404 __builtin_ia32_pminsb128_mask, __builtin_ia32_pminub128_mask,
11405 __builtin_ia32_pmaxsb128_mask, __builtin_ia32_pmaxub128_mask,
11406 __builtin_ia32_pminsw256_mask, __builtin_ia32_pminuw256_mask,
11407 __builtin_ia32_pmaxsw256_mask, __builtin_ia32_pmaxuw256_mask,
11408 __builtin_ia32_pminsw128_mask, __builtin_ia32_pminuw128_mask,
11409 __builtin_ia32_pmaxsw128_mask, __builtin_ia32_pmaxuw128_mask,
11410 __builtin_ia32_vpconflictdi_256_mask, __builtin_ia32_vpconflictsi_256_mask,
11411 __builtin_ia32_vplzcntq_256_mask, __builtin_ia32_vplzcntd_256_mask,
11412 __builtin_ia32_unpckhpd256_mask, __builtin_ia32_unpckhpd128_mask,
11413 __builtin_ia32_unpckhps256_mask, __builtin_ia32_unpckhps128_mask,
11414 __builtin_ia32_unpcklpd256_mask, __builtin_ia32_unpcklpd128_mask,
11415 __builtin_ia32_unpcklps256_mask, __builtin_ia32_vpconflictdi_128_mask,
11416 __builtin_ia32_vpconflictsi_128_mask, __builtin_ia32_vplzcntq_128_mask,
11417 __builtin_ia32_vplzcntd_128_mask, __builtin_ia32_unpcklps128_mask,
11418 __builtin_ia32_alignd256_mask, __builtin_ia32_alignq256_mask,
11419 __builtin_ia32_alignd128_mask, __builtin_ia32_alignq128_mask,
11420 __builtin_ia32_vcvtps2ph256_mask, __builtin_ia32_vcvtps2ph_mask,
11421 __builtin_ia32_vcvtph2ps_mask, __builtin_ia32_vcvtph2ps256_mask,
11422 __builtin_ia32_punpckhdq128_mask, __builtin_ia32_punpckhdq256_mask,
11423 __builtin_ia32_punpckhqdq128_mask, __builtin_ia32_punpckhqdq256_mask,
11424 __builtin_ia32_punpckldq128_mask, __builtin_ia32_punpckldq256_mask,
11425 __builtin_ia32_punpcklqdq128_mask, __builtin_ia32_punpcklqdq256_mask,
11426 __builtin_ia32_punpckhbw128_mask, __builtin_ia32_punpckhbw256_mask,
11427 __builtin_ia32_punpckhwd128_mask, __builtin_ia32_punpckhwd256_mask,
11428 __builtin_ia32_punpcklbw128_mask, __builtin_ia32_punpcklbw256_mask,
11429 __builtin_ia32_punpcklwd128_mask, __builtin_ia32_punpcklwd256_mask,
11430 __builtin_ia32_psllv16hi_mask, __builtin_ia32_psllv8hi_mask,
11431 __builtin_ia32_packssdw256_mask, __builtin_ia32_packssdw128_mask,
11432 __builtin_ia32_packusdw256_mask, __builtin_ia32_packusdw128_mask,
11433 __builtin_ia32_pavgb256_mask, __builtin_ia32_pavgw256_mask,
11434 __builtin_ia32_pavgb128_mask, __builtin_ia32_pavgw128_mask,
11435 __builtin_ia32_permvarsf256_mask, __builtin_ia32_permvardf256_mask,
11436 __builtin_ia32_permdf256_mask, __builtin_ia32_pabsb256_mask,
11437 __builtin_ia32_pabsb128_mask, __builtin_ia32_pabsw256_mask,
11438 __builtin_ia32_pabsw128_mask, __builtin_ia32_vpermilvarpd_mask,
11439 __builtin_ia32_vpermilvarps_mask, __builtin_ia32_vpermilvarpd256_mask,
11440 __builtin_ia32_vpermilvarps256_mask, __builtin_ia32_vpermilpd_mask,
11441 __builtin_ia32_vpermilps_mask, __builtin_ia32_vpermilpd256_mask,
11442 __builtin_ia32_vpermilps256_mask, __builtin_ia32_blendmq_256_mask,
11443 __builtin_ia32_blendmd_256_mask, __builtin_ia32_blendmpd_256_mask,
11444 __builtin_ia32_blendmps_256_mask, __builtin_ia32_blendmq_128_mask,
11445 __builtin_ia32_blendmd_128_mask, __builtin_ia32_blendmpd_128_mask,
11446 __builtin_ia32_blendmps_128_mask, __builtin_ia32_blendmw_256_mask,
11447 __builtin_ia32_blendmb_256_mask, __builtin_ia32_blendmw_128_mask,
11448 __builtin_ia32_blendmb_128_mask, __builtin_ia32_pmulld256_mask,
11449 __builtin_ia32_pmulld128_mask, __builtin_ia32_pmuludq256_mask,
11450 __builtin_ia32_pmuldq256_mask, __builtin_ia32_pmuldq128_mask,
11451 __builtin_ia32_pmuludq128_mask, __builtin_ia32_cvtpd2ps256_mask,
11452 __builtin_ia32_cvtpd2ps_mask, __builtin_ia32_permvarsi256_mask,
11453 __builtin_ia32_permvardi256_mask, __builtin_ia32_permdi256_mask,
11454 __builtin_ia32_cmpq256_mask, __builtin_ia32_cmpd256_mask,
11455 __builtin_ia32_ucmpq256_mask, __builtin_ia32_ucmpd256_mask,
11456 __builtin_ia32_cmpb256_mask, __builtin_ia32_cmpw256_mask,
11457 __builtin_ia32_ucmpb256_mask, __builtin_ia32_ucmpw256_mask,
11458 __builtin_ia32_cmppd256_mask, __builtin_ia32_cmpps256_mask,
11459 __builtin_ia32_cmpq128_mask, __builtin_ia32_cmpd128_mask,
11460 __builtin_ia32_ucmpq128_mask, __builtin_ia32_ucmpd128_mask,
11461 __builtin_ia32_cmpb128_mask, __builtin_ia32_cmpw128_mask,
11462 __builtin_ia32_ucmpb128_mask, __builtin_ia32_ucmpw128_mask,
11463 __builtin_ia32_cmppd128_mask, __builtin_ia32_cmpps128_mask,
11464 __builtin_ia32_broadcastf32x2_512_mask, __builtin_ia32_broadcasti32x2_512_mask,
11465 __builtin_ia32_broadcastf64x2_512_mask, __builtin_ia32_broadcasti64x2_512_mask,
11466 __builtin_ia32_broadcastf32x8_512_mask, __builtin_ia32_broadcasti32x8_512_mask,
11467 __builtin_ia32_extractf64x2_512_mask, __builtin_ia32_extractf32x8_mask,
11468 __builtin_ia32_extracti64x2_512_mask, __builtin_ia32_extracti32x8_mask,
11469 __builtin_ia32_reducepd512_mask, __builtin_ia32_reduceps512_mask,
11470 __builtin_ia32_pmullq512_mask, __builtin_ia32_xorpd512_mask,
11471 __builtin_ia32_xorps512_mask, __builtin_ia32_orpd512_mask,
11472 __builtin_ia32_orps512_mask, __builtin_ia32_andpd512_mask,
11473 __builtin_ia32_andps512_mask, __builtin_ia32_andnpd512_mask,
11474 __builtin_ia32_andnps512_mask, __builtin_ia32_insertf32x8_mask,
11475 __builtin_ia32_inserti32x8_mask, __builtin_ia32_insertf64x2_512_mask,
11476 __builtin_ia32_inserti64x2_512_mask, __builtin_ia32_fpclasspd512_mask,
11477 __builtin_ia32_fpclassps512_mask, __builtin_ia32_cvtd2mask512,
11478 __builtin_ia32_cvtq2mask512, __builtin_ia32_cvtmask2d512,
11479 __builtin_ia32_cvtmask2q512, __builtin_ia32_kunpcksi,
11480 __builtin_ia32_kunpckdi, __builtin_ia32_packusdw512_mask,
11481 __builtin_ia32_pslldq512, __builtin_ia32_psrldq512,
11482 __builtin_ia32_packssdw512_mask, __builtin_ia32_palignr512,
11483 __builtin_ia32_palignr512_mask, __builtin_ia32_movdquhi512_mask,
11484 __builtin_ia32_movdquqi512_mask, __builtin_ia32_psadbw512,
11485 __builtin_ia32_dbpsadbw512_mask, __builtin_ia32_pbroadcastb512_mask,
11486 __builtin_ia32_pbroadcastb512_gpr_mask, __builtin_ia32_pbroadcastw512_mask,
11487 __builtin_ia32_pbroadcastw512_gpr_mask, __builtin_ia32_pmovsxbw512_mask,
11488 __builtin_ia32_pmovzxbw512_mask, __builtin_ia32_permvarhi512_mask,
11489 __builtin_ia32_vpermt2varhi512_mask, __builtin_ia32_vpermt2varhi512_maskz,
11490 __builtin_ia32_vpermi2varhi512_mask, __builtin_ia32_pavgb512_mask,
11491 __builtin_ia32_pavgw512_mask, __builtin_ia32_paddb512_mask,
11492 __builtin_ia32_psubb512_mask, __builtin_ia32_psubsb512_mask,
11493 __builtin_ia32_paddsb512_mask, __builtin_ia32_psubusb512_mask,
11494 __builtin_ia32_paddusb512_mask, __builtin_ia32_psubw512_mask,
11495 __builtin_ia32_paddw512_mask, __builtin_ia32_psubsw512_mask,
11496 __builtin_ia32_paddsw512_mask, __builtin_ia32_psubusw512_mask,
11497 __builtin_ia32_paddusw512_mask, __builtin_ia32_pmaxuw512_mask,
11498 __builtin_ia32_pmaxsw512_mask, __builtin_ia32_pminuw512_mask,
11499 __builtin_ia32_pminsw512_mask, __builtin_ia32_pmaxub512_mask,
11500 __builtin_ia32_pmaxsb512_mask, __builtin_ia32_pminub512_mask,
11501 __builtin_ia32_pminsb512_mask, __builtin_ia32_pmovwb512_mask,
11502 __builtin_ia32_pmovswb512_mask, __builtin_ia32_pmovuswb512_mask,
11503 __builtin_ia32_pmulhrsw512_mask, __builtin_ia32_pmulhuw512_mask,
11504 __builtin_ia32_pmulhw512_mask, __builtin_ia32_pmullw512_mask,
11505 __builtin_ia32_psllwi512_mask, __builtin_ia32_psllw512_mask,
11506 __builtin_ia32_packsswb512_mask, __builtin_ia32_packuswb512_mask,
11507 __builtin_ia32_psrav32hi_mask, __builtin_ia32_pmaddubsw512_mask,
11508 __builtin_ia32_pmaddwd512_mask, __builtin_ia32_psrlv32hi_mask,
11509 __builtin_ia32_punpckhbw512_mask, __builtin_ia32_punpckhwd512_mask,
11510 __builtin_ia32_punpcklbw512_mask, __builtin_ia32_punpcklwd512_mask,
11511 __builtin_ia32_pshufb512_mask, __builtin_ia32_pshufhw512_mask,
11512 __builtin_ia32_pshuflw512_mask, __builtin_ia32_psrawi512_mask,
11513 __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
11514 __builtin_ia32_psrlw512_mask, __builtin_ia32_cvtb2mask512,
11515 __builtin_ia32_cvtw2mask512, __builtin_ia32_cvtmask2b512,
11516 __builtin_ia32_cvtmask2w512, __builtin_ia32_pcmpeqb512_mask,
11517 __builtin_ia32_pcmpeqw512_mask, __builtin_ia32_pcmpgtb512_mask,
11518 __builtin_ia32_pcmpgtw512_mask, __builtin_ia32_ptestmb512,
11519 __builtin_ia32_ptestmw512, __builtin_ia32_ptestnmb512,
11520 __builtin_ia32_ptestnmw512, __builtin_ia32_psllv32hi_mask,
11521 __builtin_ia32_pabsb512_mask, __builtin_ia32_pabsw512_mask,
11522 __builtin_ia32_blendmw_512_mask, __builtin_ia32_blendmb_512_mask,
11523 __builtin_ia32_cmpb512_mask, __builtin_ia32_cmpw512_mask,
11524 __builtin_ia32_ucmpb512_mask, __builtin_ia32_ucmpw512_mask,
11525 __builtin_ia32_rangesd128_round, __builtin_ia32_rangess128_round,
11526 __builtin_ia32_cvtpd2qq512_mask, __builtin_ia32_cvtps2qq512_mask,
11527 __builtin_ia32_cvtpd2uqq512_mask, __builtin_ia32_cvtps2uqq512_mask,
11528 __builtin_ia32_cvtqq2ps512_mask, __builtin_ia32_cvtuqq2ps512_mask,
11529 __builtin_ia32_cvtqq2pd512_mask, __builtin_ia32_cvtuqq2pd512_mask,
11530 __builtin_ia32_cvttps2qq512_mask, __builtin_ia32_cvttps2uqq512_mask,
11531 __builtin_ia32_cvttpd2qq512_mask, __builtin_ia32_cvttpd2uqq512_mask,
11532 __builtin_ia32_rangeps512_mask, __builtin_ia32_rangepd512_mask.
11533 (ix86_expand_args_builtin): Handle HI_FTYPE_V16QI, SI_FTYPE_V32QI,
11534 DI_FTYPE_V64QI, V16QI_FTYPE_HI, V32QI_FTYPE_SI, V64QI_FTYPE_DI,
11535 V8HI_FTYPE_QI, V16HI_FTYPE_HI, V32HI_FTYPE_SI, V4SI_FTYPE_QI,
11536 V8SI_FTYPE_QI, V4SI_FTYPE_HI, V8SI_FTYPE_HI, QI_FTYPE_V8HI,
11537 HI_FTYPE_V16HI, SI_FTYPE_V32HI, QI_FTYPE_V4SI, QI_FTYPE_V8SI,
11538 HI_FTYPE_V16SI, QI_FTYPE_V2DI, QI_FTYPE_V4DI, QI_FTYPE_V8DI,
11539 V2DI_FTYPE_QI, V4DI_FTYPE_QI, V8DI_FTYPE_V64QI_V64QI,
11540 SI_FTYPE_SI_SI,DI_FTYPE_DI_DI, V8DI_FTYPE_V8DI_INT_CONVERT,
11541 QI_FTYPE_V4SF_INT, QI_FTYPE_V2DF_INT,
11542 V8SF_FTYPE_V4SF_V8SF_QI, V4DF_FTYPE_V2DF_V4DF_QI,
11543 V8SI_FTYPE_V4SI_V8SI_QI, V8SI_FTYPE_SI_V8SI_QI,
11544 V4SI_FTYPE_V4SI_V4SI_QI, V4SI_FTYPE_SI_V4SI_QI,
11545 V4DI_FTYPE_V2DI_V4DI_QI, V4DI_FTYPE_DI_V4DI_QI,
11546 V2DI_FTYPE_V2DI_V2DI_QI, V2DI_FTYPE_DI_V2DI_QI,
11547 V64QI_FTYPE_V64QI_V64QI_DI, V64QI_FTYPE_V16QI_V64QI_DI,
11548 V64QI_FTYPE_QI_V64QI_DI, V32QI_FTYPE_V32QI_V32QI_SI,
11549 V32QI_FTYPE_V16QI_V32QI_SI, V32QI_FTYPE_QI_V32QI_SI,
11550 V16QI_FTYPE_V16QI_V16QI_HI, V16QI_FTYPE_QI_V16QI_HI,
11551 V32HI_FTYPE_V8HI_V32HI_SI, V32HI_FTYPE_HI_V32HI_SI,
11552 V16HI_FTYPE_V8HI_V16HI_HI, V16HI_FTYPE_HI_V16HI_HI,
11553 V8HI_FTYPE_V8HI_V8HI_QI, V8HI_FTYPE_HI_V8HI_QI,
11554 V8SF_FTYPE_V8HI_V8SF_QI, V4SF_FTYPE_V8HI_V4SF_QI,
11555 V8SI_FTYPE_V8SF_V8SI_QI, V4SI_FTYPE_V4SF_V4SI_QI,
11556 V8DI_FTYPE_V8SF_V8DI_QI, V4DI_FTYPE_V4SF_V4DI_QI,
11557 V2DI_FTYPE_V4SF_V2DI_QI, V8SF_FTYPE_V8DI_V8SF_QI,
11558 V4SF_FTYPE_V4DI_V4SF_QI, V4SF_FTYPE_V2DI_V4SF_QI,
11559 V8DF_FTYPE_V8DI_V8DF_QI, V4DF_FTYPE_V4DI_V4DF_QI,
11560 V2DF_FTYPE_V2DI_V2DF_QI, V16QI_FTYPE_V8HI_V16QI_QI,
11561 V16QI_FTYPE_V16HI_V16QI_HI, V16QI_FTYPE_V4SI_V16QI_QI,
11562 V16QI_FTYPE_V8SI_V16QI_QI, V8HI_FTYPE_V4SI_V8HI_QI,
11563 V8HI_FTYPE_V8SI_V8HI_QI, V16QI_FTYPE_V2DI_V16QI_QI,
11564 V16QI_FTYPE_V4DI_V16QI_QI, V8HI_FTYPE_V2DI_V8HI_QI,
11565 V8HI_FTYPE_V4DI_V8HI_QI, V4SI_FTYPE_V2DI_V4SI_QI,
11566 V4SI_FTYPE_V4DI_V4SI_QI, V32QI_FTYPE_V32HI_V32QI_SI,
11567 HI_FTYPE_V16QI_V16QI_HI, SI_FTYPE_V32QI_V32QI_SI,
11568 DI_FTYPE_V64QI_V64QI_DI, QI_FTYPE_V8HI_V8HI_QI,
11569 HI_FTYPE_V16HI_V16HI_HI, SI_FTYPE_V32HI_V32HI_SI,
11570 QI_FTYPE_V4SI_V4SI_QI, QI_FTYPE_V8SI_V8SI_QI,
11571 QI_FTYPE_V2DI_V2DI_QI, QI_FTYPE_V4DI_V4DI_QI,
11572 V4SF_FTYPE_V2DF_V4SF_QI, V4SF_FTYPE_V4DF_V4SF_QI,
11573 V2DI_FTYPE_V4SI_V2DI_QI, V2DI_FTYPE_V8HI_V2DI_QI,
11574 V2DI_FTYPE_V16QI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_QI,
11575 V4DI_FTYPE_V4SI_V4DI_QI, V4DI_FTYPE_V8HI_V4DI_QI,
11576 V4DI_FTYPE_V16QI_V4DI_QI, V8DI_FTYPE_V8DF_V8DI_QI,
11577 V4DI_FTYPE_V4DF_V4DI_QI, V2DI_FTYPE_V2DF_V2DI_QI,
11578 V4SI_FTYPE_V4DF_V4SI_QI, V4SI_FTYPE_V2DF_V4SI_QI,
11579 V4SI_FTYPE_V8HI_V4SI_QI, V4SI_FTYPE_V16QI_V4SI_QI,
11580 V8SI_FTYPE_V8SI_V8SI_V8SI, V8SF_FTYPE_V8SF_V8SF_QI,
11581 V8SF_FTYPE_V8SI_V8SF_QI, V4DF_FTYPE_V4DF_V4DF_QI,
11582 V4SF_FTYPE_V4SF_V4SF_QI, V2DF_FTYPE_V2DF_V2DF_QI,
11583 V2DF_FTYPE_V4SF_V2DF_QI, V2DF_FTYPE_V4SI_V2DF_QI,
11584 V4SF_FTYPE_V4SI_V4SF_QI, V4DF_FTYPE_V4SF_V4DF_QI,
11585 V4DF_FTYPE_V4SI_V4DF_QI, V8SI_FTYPE_V8SI_V8SI_QI,
11586 V8SI_FTYPE_V8HI_V8SI_QI, V8SI_FTYPE_V16QI_V8SI_QI,
11587 V16SF_FTYPE_V8SF_V16SF_HI, V16SI_FTYPE_V8SI_V16SI_HI,
11588 V16HI_FTYPE_V16HI_V16HI_HI, V8HI_FTYPE_V16QI_V8HI_QI,
11589 V16HI_FTYPE_V16QI_V16HI_HI, V32HI_FTYPE_V32HI_V32HI_SI,
11590 V32HI_FTYPE_V32QI_V32HI_SI, V8DI_FTYPE_V8DI_V8DI_INT_CONVERT,
11591 V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI_CONVERT, QI_FTYPE_V8DF_INT_QI,
11592 QI_FTYPE_V4DF_INT_QI, QI_FTYPE_V2DF_INT_QI,
11593 HI_FTYPE_V16SF_INT_HI, QI_FTYPE_V8SF_INT_QI,
11594 QI_FTYPE_V4SF_INT_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI_CONVERT,
11595 V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI_CONVERT, V32QI_FTYPE_V32QI_V32QI_V32QI_SI,
11596 V32HI_FTYPE_V32HI_V32HI_V32HI_SI, V32HI_FTYPE_V64QI_V64QI_V32HI_SI,
11597 V16SI_FTYPE_V32HI_V32HI_V16SI_HI, V64QI_FTYPE_V64QI_V64QI_V64QI_DI,
11598 V32HI_FTYPE_V32HI_V8HI_V32HI_SI, V16HI_FTYPE_V16HI_V8HI_V16HI_HI,
11599 V8SI_FTYPE_V8SI_V4SI_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_V4DI_QI,
11600 V64QI_FTYPE_V32HI_V32HI_V64QI_DI, V32QI_FTYPE_V16HI_V16HI_V32QI_SI,
11601 V16QI_FTYPE_V8HI_V8HI_V16QI_HI, V32HI_FTYPE_V16SI_V16SI_V32HI_SI,
11602 V16HI_FTYPE_V8SI_V8SI_V16HI_HI, V8HI_FTYPE_V4SI_V4SI_V8HI_QI,
11603 V4DF_FTYPE_V4DF_V4DI_V4DF_QI, V8SF_FTYPE_V8SF_V8SI_V8SF_QI,
11604 V4SF_FTYPE_V4SF_V4SI_V4SF_QI, V2DF_FTYPE_V2DF_V2DI_V2DF_QI,
11605 V2DI_FTYPE_V4SI_V4SI_V2DI_QI, V4DI_FTYPE_V8SI_V8SI_V4DI_QI,
11606 V4DF_FTYPE_V4DI_V4DF_V4DF_QI, V8SF_FTYPE_V8SI_V8SF_V8SF_QI,
11607 V2DF_FTYPE_V2DI_V2DF_V2DF_QI, V4SF_FTYPE_V4SI_V4SF_V4SF_QI,
11608 V8HI_FTYPE_V8HI_V8HI_V8HI_QI, V8SI_FTYPE_V8SI_V8SI_V8SI_QI,
11609 V4SI_FTYPE_V4SI_V4SI_V4SI_QI, V8SF_FTYPE_V8SF_V8SF_V8SF_QI,
11610 V16QI_FTYPE_V16QI_V16QI_V16QI_HI, V16HI_FTYPE_V16HI_V16HI_V16HI_HI,
11611 V2DI_FTYPE_V2DI_V2DI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_V4DI_QI,
11612 V4DF_FTYPE_V4DF_V4DF_V4DF_QI, V8HI_FTYPE_V16QI_V16QI_V8HI_QI,
11613 V16HI_FTYPE_V32QI_V32QI_V16HI_HI, V8SI_FTYPE_V16HI_V16HI_V8SI_QI,
11614 V4SI_FTYPE_V8HI_V8HI_V4SI_QI, QI_FTYPE_V4DI_V4DI_INT_QI,
11615 QI_FTYPE_V8SI_V8SI_INT_QI, QI_FTYPE_V4DF_V4DF_INT_QI,
11616 QI_FTYPE_V8SF_V8SF_INT_QI, QI_FTYPE_V2DI_V2DI_INT_QI,
11617 QI_FTYPE_V4SI_V4SI_INT_QI, DI_FTYPE_V64QI_V64QI_INT_DI,
11618 SI_FTYPE_V32QI_V32QI_INT_SI, HI_FTYPE_V16QI_V16QI_INT_HI,
11619 SI_FTYPE_V32HI_V32HI_INT_SI, HI_FTYPE_V16HI_V16HI_INT_HI,
11620 QI_FTYPE_V8HI_V8HI_INT_QI, V8SF_FTYPE_V8SF_INT_V8SF_QI,
11621 V4SF_FTYPE_V4SF_INT_V4SF_QI, V2DF_FTYPE_V4DF_INT_V2DF_QI,
11622 V2DI_FTYPE_V4DI_INT_V2DI_QI, V8SF_FTYPE_V16SF_INT_V8SF_QI,
11623 V8SI_FTYPE_V16SI_INT_V8SI_QI, V2DF_FTYPE_V8DF_INT_V2DF_QI,
11624 V2DI_FTYPE_V8DI_INT_V2DI_QI, V4SF_FTYPE_V8SF_INT_V4SF_QI,
11625 V4SI_FTYPE_V8SI_INT_V4SI_QI, V8HI_FTYPE_V8SF_INT_V8HI_QI,
11626 V8HI_FTYPE_V4SF_INT_V8HI_QI, V32HI_FTYPE_V32HI_INT_V32HI_SI,
11627 V16HI_FTYPE_V16HI_INT_V16HI_HI, V8HI_FTYPE_V8HI_INT_V8HI_QI,
11628 V4DI_FTYPE_V4DI_INT_V4DI_QI, V2DI_FTYPE_V2DI_INT_V2DI_QI,
11629 V8SI_FTYPE_V8SI_INT_V8SI_QI, V4SI_FTYPE_V4SI_INT_V4SI_QI,
11630 V4DF_FTYPE_V4DF_INT_V4DF_QI, V2DF_FTYPE_V2DF_INT_V2DF_QI,
11631 V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI,
11632 V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI, V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI,
11633 V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI,
11634 V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI, V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI,
11635 V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI, V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI,
11636 V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI, V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI,
11637 V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI, V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI,
11638 V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI,
11639 V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI,
11640 V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI, V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI,
11641 V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI, V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI,
11642 V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI, V8DI_FTYPE_V8DF_V8DI_QI_INT,
11643 V8SF_FTYPE_V8DI_V8SF_QI_INT, V8DF_FTYPE_V8DI_V8DF_QI_INT,
11644 V8DI_FTYPE_V8SF_V8DI_QI_INT, V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT,
11645 V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT, VOID_FTYPE_PV4DI_V4DI_QI,
11646 VOID_FTYPE_PV2DI_V2DI_QI, VOID_FTYPE_PV8SI_V8SI_QI,
11647 VOID_FTYPE_PV4SI_V4SI_QI, VOID_FTYPE_PV4SI_V4DI_QI,
11648 VOID_FTYPE_PV4SI_V2DI_QI, VOID_FTYPE_PV8HI_V4DI_QI,
11649 VOID_FTYPE_PV8HI_V2DI_QI, VOID_FTYPE_PV8HI_V8SI_QI,
11650 VOID_FTYPE_PV8HI_V4SI_QI, VOID_FTYPE_PV16QI_V4DI_QI,
11651 VOID_FTYPE_PV16QI_V2DI_QI, VOID_FTYPE_PV16QI_V8SI_QI,
11652 VOID_FTYPE_PV16QI_V4SI_QI, VOID_FTYPE_PV8HI_V8HI_QI,
11653 VOID_FTYPE_PV16HI_V16HI_HI, VOID_FTYPE_PV32HI_V32HI_SI,
11654 VOID_FTYPE_PV16QI_V16QI_HI, VOID_FTYPE_PV32QI_V32QI_SI,
11655 VOID_FTYPE_PV64QI_V64QI_DI, VOID_FTYPE_PV4DF_V4DF_QI,
11656 VOID_FTYPE_PV2DF_V2DF_QI, VOID_FTYPE_PV8SF_V8SF_QI,
11657 VOID_FTYPE_PV4SF_V4SF_QI, V4SF_FTYPE_PCV4SF_V4SF_QI,
11658 V8SF_FTYPE_PCV8SF_V8SF_QI, V4SI_FTYPE_PCV4SI_V4SI_QI,
11659 V8SI_FTYPE_PCV8SI_V8SI_QI, V2DF_FTYPE_PCV2DF_V2DF_QI,
11660 V4DF_FTYPE_PCV4DF_V4DF_QI, V2DI_FTYPE_PCV2DI_V2DI_QI,
11661 V4DI_FTYPE_PCV4DI_V4DI_QI, V8HI_FTYPE_PCV8HI_V8HI_QI,
11662 V16HI_FTYPE_PCV16HI_V16HI_HI, V32HI_FTYPE_PCV32HI_V32HI_SI,
11663 V16QI_FTYPE_PCV16QI_V16QI_HI, V32QI_FTYPE_PCV32QI_V32QI_SI,
11664 V64QI_FTYPE_PCV64QI_V64QI_DI, do not handle V8USI_FTYPE_V8USI.
11666 2014-10-28 Jakub Jelinek <jakub@redhat.com>
11668 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Use uint64_t
11669 type for the left shift in CASE_CONVERT case.
11671 2014-10-28 Max Ostapenko <m.ostapenko@partner.samsung.com>
11673 * asan.h (asan_intercepted_p): New function.
11674 * asan.c (asan_mem_ref_hasher::hash): Remove MEM_REF access size from
11675 hash value construction. Call iterative_hash_expr instead of explicit
11677 (asan_mem_ref_hasher::equal): Change condition.
11678 (has_mem_ref_been_instrumented): Likewise.
11679 (update_mem_ref_hash_table): Likewise.
11680 (maybe_update_mem_ref_hash_table): New function.
11681 (instrument_strlen_call): Removed.
11682 (get_mem_refs_of_builtin_call): Handle new parameter.
11683 (instrument_builtin_call): Call maybe_update_mem_ref_hash_table instead
11684 of instrument_mem_region_access if intercepted_p is true.
11685 (instrument_mem_region_access): Instrument only base with len instead of
11686 base and end with 1.
11687 (build_check_stmt): Remove start_instrumented and end_instrumented
11689 (enum asan_check_flags): Remove ASAN_CHECK_START_INSTRUMENTED and
11690 ASAN_CHECK_END_INSTRUMENTED. Change ASAN_CHECK_LAST.
11691 (asan_expand_check_ifn): Remove start_instrumented and end_instrumented.
11692 * builtins.c (expand_builtin): Include asan.h. Don't expand string/memory
11693 builtin functions that have interceptors if ASan is enabled.
11695 2014-10-28 Richard Biener <rguenther@suse.de>
11697 PR middle-end/63665
11698 * fold-const.c (fold_comparison): Properly guard simplifying
11699 against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS.
11701 2014-10-28 Alan Lawrence <alan.lawrence@arm.com>
11703 * expr.c (expand_expr_real_2): Remove code handling VEC_LSHIFT_EXPR.
11704 * fold-const.c (const_binop): Likewise.
11705 * cfgexpand.c (expand_debug_expr): Likewise.
11706 * tree-inline.c (estimate_operator_cost): Likewise.
11707 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
11708 * optabs.c (optab_for_tree_code): Likewise.
11709 (expand_vec_shift_expr): Likewise, update comment.
11710 * tree.def: Delete VEC_LSHIFT_EXPR, remove comment.
11711 * optabs.h (expand_vec_shift_expr): Remove comment re. VEC_LSHIFT_EXPR.
11712 * optabs.def: Remove vec_shl_optab.
11713 * doc/md.texi: Remove references to vec_shr_m.
11715 2014-10-28 Yury Gribov <y.gribov@samsung.com>
11717 * asan.c (report_error_func): Add noabort path.
11718 (check_func): Ditto. Formatting.
11719 (asan_expand_check_ifn): Handle noabort path.
11720 * common.opt (flag_sanitize_recover): Add SANITIZE_KERNEL_ADDRESS
11722 * doc/invoke.texi (-fsanitize-recover=): Mention KASan.
11723 * opts.c (finish_options): Reword comment.
11724 * sanitizer.def: Add noabort ASan builtins.
11726 2014-10-28 Yury Gribov <y.gribov@samsung.com>
11728 * asan.c (set_asan_shadow_offset): New function.
11729 (asan_shadow_offset): Likewise.
11730 (asan_emit_stack_protection): Call asan_shadow_offset.
11731 (build_shadow_mem_access): Likewise.
11732 * asan.h (set_asan_shadow_offset): Declare.
11733 * common.opt (fasan-shadow-offset): New option.
11734 (frandom-seed): Fixed parameter name.
11735 * doc/invoke.texi (fasan-shadow-offset): Describe new option.
11736 (frandom-seed): Fixed parameter name.
11737 * opts-global.c (handle_common_deferred_options): Handle
11738 -fasan-shadow-offset.
11739 * opts.c (common_handle_option): Likewise.
11741 2014-10-27 Jiong Wang <jiong.wang@arm.com>
11744 * optabs.c (prepare_cmp_insn): Use "ret_mode" instead of "word_mode".
11746 2014-10-27 DJ Delorie <dj@redhat.com>
11748 * tree.c (build_common_tree_nodes): Don't even store the
11749 __int128 types if they're not supported.
11751 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
11753 * config/i386/i386.c (ix86_loop_memcount): Delete.
11754 (ix86_loop_unroll_adjust): Use FOR_EACH_SUBRTX.
11756 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
11758 * config/i386/i386.c (find_constant_1): Delete.
11759 (find_constant): Use FOR_EACH_SUBRTX.
11761 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
11763 * config/i386/i386.c (extended_reg_mentioned_1): Delete.
11764 (x86_extended_reg_mentioned_p): Use FOR_EACH_SUBRTX.
11766 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
11768 * config/i386/i386.c: Include rtl-iter.h
11769 (ix86_check_avx256_register): Take a const_rtx and return a bool.
11770 (ix86_check_avx256_stores): Update call accordingly.
11771 (ix86_avx_u128_mode_entry, ix86_avx_u128_mode_exit): Likewise.
11772 (ix86_avx_u128_mode_needed): Likewise. Use FOR_EACH_SUBRTX.
11774 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
11776 * config/alpha/alpha-protos.h (some_small_symbolic_operand_int):
11777 Take an rtx and return a bool.
11778 * config/alpha/alpha.c (some_small_symbolic_operand_int): Likewise.
11779 Use FOR_EACH_SUBRTX_VAR.
11780 * config/alpha/predicates.md (some_small_symbolic_operand): Update
11783 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
11785 * config/alpha/alpha-protos.h (alpha_find_lo_sum_using_gp): Return
11787 * config/alpha/alpha.c (find_lo_sum_using_gp): Delete.
11788 (alpha_find_lo_sum_using_gp): Use FOR_EACH_SUBRTX. Return a bool.
11790 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
11792 * config/alpha/alpha.c (alpha_set_memflags_1): Delete.
11793 (alpha_set_memflags): Use FOR_EACH_SUBRTX_VAR.
11795 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
11797 * config/alpha/alpha.c: Include rtl-iter.h.
11798 (split_small_symbolic_operand_1): Delete.
11799 (split_small_symbolic_operand): Use FOR_EACH_SUBRTX_PTR.
11801 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
11803 * config/s390/s390.c: Include rtl-iter.h.
11804 (check_dpu): Delete.
11805 (s390_loop_unroll_adjust): Only iterate over patterns.
11806 Use FOR_EACH_SUBRTX.
11808 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
11810 * config/spu/spu.c: Include rtl-iter.h
11811 (ea_symbol_ref): Replace with...
11812 (ea_symbol_ref_p): ...this new function.
11813 (spu_legitimate_address_p): Update call accordingly.
11814 (spu_legitimate_constant_p): Likewise. Use FOR_EACH_SUBRTX.
11816 2014-10-27 Phil Muldoon <pmuldoon@redhat.com>
11817 Tom Tromey <tromey@redhat.com>
11819 * aclocal.m4, configure: Rebuild.
11820 * Makefile.in (aclocal_deps): Add gcc-plugin.m4.
11821 * configure.ac: Use GCC_ENABLE_PLUGINS.
11822 * stor-layout.c (finish_bitfield_layout): Now public. Change
11823 argument type to 'tree'.
11824 (finish_record_layout): Update.
11825 * stor-layout.h (finish_bitfield_layout): Declare.
11827 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
11829 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define again.
11830 * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
11831 Restore, enable for bigendian, update to use __builtin..._scal...
11833 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
11835 * config/aarch64/aarch64-simd-builtins.def (reduc_smax_, reduc_smin_,
11836 reduc_umax_, reduc_umin_, reduc_smax_nan_, reduc_smin_nan_): Remove.
11837 (reduc_smax_scal_, reduc_smin_scal_, reduc_umax_scal_,
11838 reduc_umin_scal_, reduc_smax_nan_scal_, reduc_smin_nan_scal_): New.
11840 * config/aarch64/aarch64-simd.md
11841 (reduc_<maxmin_uns>_<mode>): Rename VDQV_S variant to...
11842 (reduc_<maxmin_uns>_internal<mode>): ...this.
11843 (reduc_<maxmin_uns>_<mode>): New (VDQ_BHSI).
11844 (reduc_<maxmin_uns>_scal_<mode>): New (*2).
11846 (reduc_<maxmin_uns>_v2si): Combine with below, renaming...
11847 (reduc_<maxmin_uns>_<mode>): Combine V2F with above, renaming...
11848 (reduc_<maxmin_uns>_internal_<mode>): ...to this (VDQF).
11850 * config/aarch64/arm_neon.h (vmaxv_f32, vmaxv_s8, vmaxv_s16,
11851 vmaxv_s32, vmaxv_u8, vmaxv_u16, vmaxv_u32, vmaxvq_f32, vmaxvq_f64,
11852 vmaxvq_s8, vmaxvq_s16, vmaxvq_s32, vmaxvq_u8, vmaxvq_u16, vmaxvq_u32,
11853 vmaxnmv_f32, vmaxnmvq_f32, vmaxnmvq_f64, vminv_f32, vminv_s8,
11854 vminv_s16, vminv_s32, vminv_u8, vminv_u16, vminv_u32, vminvq_f32,
11855 vminvq_f64, vminvq_s8, vminvq_s16, vminvq_s32, vminvq_u8, vminvq_u16,
11856 vminvq_u32, vminnmv_f32, vminnmvq_f32, vminnmvq_f64): Update to use
11857 __builtin_aarch64_reduc_..._scal; remove vget_lane wrapper.
11859 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
11861 * config/aarch64/aarch64-simd-builtins.def
11862 (reduc_splus_<mode>/VDQF, reduc_uplus_<mode>/VDQF, reduc_splus_v4sf):
11864 (reduc_plus_scal_<mode>, reduc_plus_scal_v4sf): New.
11866 * config/aarch64/aarch64-simd.md (reduc_<sur>plus_mode): Remove.
11867 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_plus_scal_<mode>): New.
11869 (reduc_<sur>plus_mode): Change SUADDV -> UNSPEC_ADDV, rename to...
11870 (aarch64_reduc_plus_internal<mode>): ...this.
11872 (reduc_<sur>plus_v2si): Change SUADDV -> UNSPEC_ADDV, rename to...
11873 (aarch64_reduc_plus_internalv2si): ...this.
11875 (reduc_splus_<mode>/V2F): Rename to...
11876 (aarch64_reduc_plus_internal<mode>): ...this.
11878 * config/aarch64/iterators.md
11879 (UNSPEC_SADDV, UNSPEC_UADDV, SUADDV): Remove.
11880 (UNSPEC_ADDV): New.
11881 (sur): Remove elements for UNSPEC_SADDV and UNSPEC_UADDV.
11883 * config/aarch64/arm_neon.h (vaddv_s8, vaddv_s16, vaddv_s32, vaddv_u8,
11884 vaddv_u16, vaddv_u32, vaddvq_s8, vaddvq_s16, vaddvq_s32, vaddvq_s64,
11885 vaddvq_u8, vaddvq_u16, vaddvq_u32, vaddvq_u64, vaddv_f32, vaddvq_f32,
11886 vaddvq_f64): Change __builtin_aarch64_reduc_[us]plus_... to
11887 __builtin_aarch64_reduc_plus_scal, remove vget_lane wrapper.
11889 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
11891 PR tree-optimization/61114
11892 * doc/md.texi (Standard Names): Add reduc_(plus,[us](min|max))|scal
11893 optabs, and note in reduc_[us](plus|min|max) to prefer the former.
11895 * expr.c (expand_expr_real_2): Use reduc_..._scal if available, fall
11896 back to old reduc_... + BIT_FIELD_REF only if not.
11898 * optabs.c (optab_for_tree_code): for REDUC_(MAX,MIN,PLUS)_EXPR,
11899 return the reduce-to-scalar (reduc_..._scal) optab.
11900 (scalar_reduc_to_vector): New.
11902 * optabs.def (reduc_smax_scal_optab, reduc_smin_scal_optab,
11903 reduc_plus_scal_optab, reduc_umax_scal_optab, reduc_umin_scal_optab):
11906 * optabs.h (scalar_reduc_to_vector): Declare.
11908 * tree-vect-loop.c (vectorizable_reduction): Look for optabs reducing
11909 to either scalar or vector.
11911 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
11913 PR tree-optimization/61114
11914 * expr.c (expand_expr_real_2): For REDUC_{MIN,MAX,PLUS}_EXPR, add
11915 extract_bit_field around optab result.
11917 * fold-const.c (fold_unary_loc): For REDUC_{MIN,MAX,PLUS}_EXPR, produce
11920 * tree-cfg.c (verify_gimple_assign_unary): Check result vs operand type
11921 for REDUC_{MIN,MAX,PLUS}_EXPR.
11923 * tree-vect-loop.c (vect_analyze_loop): Update comment.
11924 (vect_create_epilog_for_reduction): For direct vector reduction, use
11925 result of tree code directly without extract_bit_field.
11927 * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Update
11930 2014-10-27 Andrew MacLeod <amacleod@redhat.com>
11932 * basic-block.h: Remove all includes.
11933 (enum profile_status_d, struct control_flow_graph): Move to cfg.h
11934 * cfg.h (profile_status_d, struct control_flow_graph): Relocate here.
11935 * Makefile.in (GTFILES): Add cfg.h to list.
11936 * cgraph.h (symbol_table::create_empty): Move to cgraph.c.
11937 * cgraph.c (symbol_table::create_empty): Relocate from cgraph.h.
11938 * genconditions.c (write_header): Add predict.h and basic-block.h to
11940 * genemit.c (main): Ditto.
11941 * genpreds.c (write_insn_preds_c): Ditto.
11942 * genrecog.c (write_header): Ditto.
11943 * gengtype.c (open_base_files): Add predict.h, basic-block.h, and cfg.h
11944 to list of includes.
11945 * alias.c: Adjust include files.
11947 * auto-inc-dec.c: Ditto.
11948 * auto-profile.c: Ditto.
11949 * bb-reorder.c: Ditto.
11950 * bt-load.c: Ditto.
11951 * builtins.c: Ditto.
11952 * caller-save.c: Ditto.
11955 * cfganal.c: Ditto.
11956 * cfgbuild.c: Ditto.
11957 * cfgcleanup.c: Ditto.
11958 * cfgexpand.c: Ditto.
11959 * cfghooks.c: Ditto.
11960 * cfgloop.c: Ditto.
11961 * cfgloopanal.c: Ditto.
11962 * cfgloopmanip.c: Ditto.
11964 * cgraphbuild.c: Ditto.
11965 * cgraphclones.c: Ditto.
11966 * cgraphunit.c: Ditto.
11967 * combine-stack-adj.c: Ditto.
11968 * combine.c: Ditto.
11969 * compare-elim.c: Ditto.
11970 * coverage.c: Ditto.
11974 * data-streamer-in.c: Ditto.
11975 * data-streamer-out.c: Ditto.
11976 * data-streamer.c: Ditto.
11980 * df-core.c: Ditto.
11981 * df-problems.c: Ditto.
11982 * df-scan.c: Ditto.
11985 * dominance.c: Ditto.
11986 * domwalk.c: Ditto.
11988 * dwarf2cfi.c: Ditto.
11989 * emit-rtl.c: Ditto.
11990 * et-forest.c: Ditto.
11995 * fold-const.c: Ditto.
11996 * function.c: Ditto.
11998 * gcc-plugin.h: Ditto.
12000 * generic-match-head.c: Ditto.
12001 * ggc-page.c: Ditto.
12002 * gimple-builder.c: Ditto.
12003 * gimple-expr.c: Ditto.
12004 * gimple-fold.c: Ditto.
12005 * gimple-iterator.c: Ditto.
12006 * gimple-low.c: Ditto.
12007 * gimple-match-head.c: Ditto.
12008 * gimple-pretty-print.c: Ditto.
12009 * gimple-ssa-isolate-paths.c: Ditto.
12010 * gimple-ssa-strength-reduction.c: Ditto.
12011 * gimple-streamer-in.c: Ditto.
12012 * gimple-streamer-out.c: Ditto.
12013 * gimple-streamer.h: Ditto.
12014 * gimple-walk.c: Ditto.
12016 * gimplify-me.c: Ditto.
12017 * gimplify.c: Ditto.
12019 * graphite-blocking.c: Ditto.
12020 * graphite-clast-to-gimple.c: Ditto.
12021 * graphite-dependences.c: Ditto.
12022 * graphite-interchange.c: Ditto.
12023 * graphite-isl-ast-to-gimple.c: Ditto.
12024 * graphite-optimize-isl.c: Ditto.
12025 * graphite-poly.c: Ditto.
12026 * graphite-scop-detection.c: Ditto.
12027 * graphite-sese-to-poly.c: Ditto.
12028 * graphite.c: Ditto.
12029 * haifa-sched.c: Ditto.
12030 * hw-doloop.c: Ditto.
12032 * init-regs.c: Ditto.
12033 * internal-fn.c: Ditto.
12035 * ipa-devirt.c: Ditto.
12036 * ipa-icf-gimple.c: Ditto.
12037 * ipa-icf.c: Ditto.
12038 * ipa-inline-analysis.c: Ditto.
12039 * ipa-inline.c: Ditto.
12040 * ipa-polymorphic-call.c: Ditto.
12041 * ipa-profile.c: Ditto.
12042 * ipa-prop.c: Ditto.
12043 * ipa-pure-const.c: Ditto.
12044 * ipa-reference.c: Ditto.
12045 * ipa-split.c: Ditto.
12046 * ipa-utils.c: Ditto.
12048 * ira-build.c: Ditto.
12049 * ira-color.c: Ditto.
12050 * ira-conflicts.c: Ditto.
12051 * ira-costs.c: Ditto.
12052 * ira-emit.c: Ditto.
12053 * ira-lives.c: Ditto.
12057 * loop-doloop.c: Ditto.
12058 * loop-init.c: Ditto.
12059 * loop-invariant.c: Ditto.
12060 * loop-iv.c: Ditto.
12061 * loop-unroll.c: Ditto.
12062 * lower-subreg.c: Ditto.
12063 * lra-assigns.c: Ditto.
12064 * lra-coalesce.c: Ditto.
12065 * lra-constraints.c: Ditto.
12066 * lra-eliminations.c: Ditto.
12067 * lra-lives.c: Ditto.
12068 * lra-spills.c: Ditto.
12070 * lto-cgraph.c: Ditto.
12071 * lto-compress.c: Ditto.
12072 * lto-opts.c: Ditto.
12073 * lto-section-in.c: Ditto.
12074 * lto-section-out.c: Ditto.
12075 * lto-streamer-in.c: Ditto.
12076 * lto-streamer-out.c: Ditto.
12077 * lto-streamer.c: Ditto.
12079 * mode-switching.c: Ditto.
12080 * modulo-sched.c: Ditto.
12081 * omp-low.c: Ditto.
12083 * opts-global.c: Ditto.
12085 * postreload-gcse.c: Ditto.
12086 * postreload.c: Ditto.
12087 * predict.c: Ditto.
12088 * print-rtl.c: Ditto.
12089 * profile.c: Ditto.
12092 * reg-stack.c: Ditto.
12093 * regcprop.c: Ditto.
12094 * regcprop.h: Ditto.
12095 * reginfo.c: Ditto.
12096 * regrename.c: Ditto.
12097 * regstat.c: Ditto.
12099 * reload1.c: Ditto.
12101 * resource.c: Ditto.
12102 * rtlanal.c: Ditto.
12103 * sched-deps.c: Ditto.
12104 * sched-ebb.c: Ditto.
12105 * sched-int.h: Ditto.
12106 * sched-rgn.c: Ditto.
12107 * sched-vis.c: Ditto.
12108 * sel-sched-dump.c: Ditto.
12109 * sel-sched-ir.c: Ditto.
12110 * sel-sched-ir.h: Ditto.
12111 * sel-sched.c: Ditto.
12113 * shrink-wrap.c: Ditto.
12114 * stack-ptr-mod.c: Ditto.
12116 * store-motion.c: Ditto.
12120 * trans-mem.c: Ditto.
12121 * tree-affine.c: Ditto.
12122 * tree-call-cdce.c: Ditto.
12123 * tree-cfg.c: Ditto.
12124 * tree-cfgcleanup.c: Ditto.
12125 * tree-chrec.c: Ditto.
12126 * tree-complex.c: Ditto.
12127 * tree-data-ref.c: Ditto.
12128 * tree-dfa.c: Ditto.
12129 * tree-eh.c: Ditto.
12130 * tree-emutls.c: Ditto.
12131 * tree-if-conv.c: Ditto.
12132 * tree-inline.c: Ditto.
12133 * tree-into-ssa.c: Ditto.
12134 * tree-loop-distribution.c: Ditto.
12135 * tree-nested.c: Ditto.
12136 * tree-nrv.c: Ditto.
12137 * tree-object-size.c: Ditto.
12138 * tree-outof-ssa.c: Ditto.
12139 * tree-parloops.c: Ditto.
12140 * tree-phinodes.c: Ditto.
12141 * tree-predcom.c: Ditto.
12142 * tree-pretty-print.c: Ditto.
12143 * tree-profile.c: Ditto.
12144 * tree-scalar-evolution.c: Ditto.
12145 * tree-sra.c: Ditto.
12146 * tree-ssa-address.c: Ditto.
12147 * tree-ssa-alias.c: Ditto.
12148 * tree-ssa-ccp.c: Ditto.
12149 * tree-ssa-coalesce.c: Ditto.
12150 * tree-ssa-copy.c: Ditto.
12151 * tree-ssa-copyrename.c: Ditto.
12152 * tree-ssa-dce.c: Ditto.
12153 * tree-ssa-dom.c: Ditto.
12154 * tree-ssa-dse.c: Ditto.
12155 * tree-ssa-forwprop.c: Ditto.
12156 * tree-ssa-ifcombine.c: Ditto.
12157 * tree-ssa-live.c: Ditto.
12158 * tree-ssa-loop-ch.c: Ditto.
12159 * tree-ssa-loop-im.c: Ditto.
12160 * tree-ssa-loop-ivcanon.c: Ditto.
12161 * tree-ssa-loop-ivopts.c: Ditto.
12162 * tree-ssa-loop-manip.c: Ditto.
12163 * tree-ssa-loop-niter.c: Ditto.
12164 * tree-ssa-loop-prefetch.c: Ditto.
12165 * tree-ssa-loop-unswitch.c: Ditto.
12166 * tree-ssa-loop.c: Ditto.
12167 * tree-ssa-math-opts.c: Ditto.
12168 * tree-ssa-operands.c: Ditto.
12169 * tree-ssa-phiopt.c: Ditto.
12170 * tree-ssa-phiprop.c: Ditto.
12171 * tree-ssa-pre.c: Ditto.
12172 * tree-ssa-propagate.c: Ditto.
12173 * tree-ssa-reassoc.c: Ditto.
12174 * tree-ssa-sccvn.c: Ditto.
12175 * tree-ssa-sink.c: Ditto.
12176 * tree-ssa-strlen.c: Ditto.
12177 * tree-ssa-structalias.c: Ditto.
12178 * tree-ssa-tail-merge.c: Ditto.
12179 * tree-ssa-ter.c: Ditto.
12180 * tree-ssa-threadedge.c: Ditto.
12181 * tree-ssa-threadupdate.c: Ditto.
12182 * tree-ssa-uncprop.c: Ditto.
12183 * tree-ssa-uninit.c: Ditto.
12184 * tree-ssa.c: Ditto.
12185 * tree-ssanames.c: Ditto.
12186 * tree-stdarg.c: Ditto.
12187 * tree-streamer-in.c: Ditto.
12188 * tree-streamer-out.c: Ditto.
12189 * tree-streamer.c: Ditto.
12190 * tree-switch-conversion.c: Ditto.
12191 * tree-tailcall.c: Ditto.
12192 * tree-vect-data-refs.c: Ditto.
12193 * tree-vect-generic.c: Ditto.
12194 * tree-vect-loop-manip.c: Ditto.
12195 * tree-vect-loop.c: Ditto.
12196 * tree-vect-patterns.c: Ditto.
12197 * tree-vect-slp.c: Ditto.
12198 * tree-vect-stmts.c: Ditto.
12199 * tree-vectorizer.c: Ditto.
12200 * tree-vrp.c: Ditto.
12204 * valtrack.c: Ditto.
12205 * valtrack.h: Ditto.
12206 * value-prof.c: Ditto.
12207 * var-tracking.c: Ditto.
12209 * varpool.c: Ditto.
12210 * vtable-verify.c: Ditto.
12212 * config/aarch64/aarch64-builtins.c: Ditto.
12213 * config/aarch64/aarch64.c: Ditto.
12214 * config/alpha/alpha.c: Ditto.
12215 * config/arc/arc.c: Ditto.
12216 * config/arm/arm.c: Ditto.
12217 * config/avr/avr.c: Ditto.
12218 * config/bfin/bfin.c: Ditto.
12219 * config/c6x/c6x.c: Ditto.
12220 * config/cr16/cr16.c: Ditto.
12221 * config/cris/cris.c: Ditto.
12222 * config/darwin-c.c: Ditto.
12223 * config/darwin.c: Ditto.
12224 * config/epiphany/epiphany.c: Ditto.
12225 * config/epiphany/mode-switch-use.c: Ditto.
12226 * config/epiphany/resolve-sw-modes.c: Ditto.
12227 * config/fr30/fr30.c: Ditto.
12228 * config/frv/frv.c: Ditto.
12229 * config/h8300/h8300.c: Ditto.
12230 * config/i386/i386.c: Ditto.
12231 * config/i386/winnt.c: Ditto.
12232 * config/ia64/ia64.c: Ditto.
12233 * config/iq2000/iq2000.c: Ditto.
12234 * config/lm32/lm32.c: Ditto.
12235 * config/m32c/m32c.c: Ditto.
12236 * config/m32r/m32r.c: Ditto.
12237 * config/m68k/m68k.c: Ditto.
12238 * config/mcore/mcore.c: Ditto.
12239 * config/mep/mep.c: Ditto.
12240 * config/microblaze/microblaze.c: Ditto.
12241 * config/mips/mips.c: Ditto.
12242 * config/mmix/mmix.c: Ditto.
12243 * config/mn10300/mn10300.c: Ditto.
12244 * config/moxie/moxie.c: Ditto.
12245 * config/msp430/msp430.c: Ditto.
12246 * config/nds32/nds32-cost.c: Ditto.
12247 * config/nds32/nds32-fp-as-gp.c: Ditto.
12248 * config/nds32/nds32-intrinsic.c: Ditto.
12249 * config/nds32/nds32-isr.c: Ditto.
12250 * config/nds32/nds32-md-auxiliary.c: Ditto.
12251 * config/nds32/nds32-memory-manipulation.c: Ditto.
12252 * config/nds32/nds32-pipelines-auxiliary.c: Ditto.
12253 * config/nds32/nds32-predicates.c: Ditto.
12254 * config/nds32/nds32.c: Ditto.
12255 * config/nios2/nios2.c: Ditto.
12256 * config/pa/pa.c: Ditto.
12257 * config/pdp11/pdp11.c: Ditto.
12258 * config/rl78/rl78.c: Ditto.
12259 * config/rs6000/rs6000.c: Ditto.
12260 * config/rx/rx.c: Ditto.
12261 * config/s390/s390.c: Ditto.
12262 * config/sh/sh-mem.cc: Ditto.
12263 * config/sh/sh.c: Ditto.
12264 * config/sh/sh_optimize_sett_clrt.cc: Ditto.
12265 * config/sh/sh_treg_combine.cc: Ditto.
12266 * config/sparc/sparc.c: Ditto.
12267 * config/spu/spu.c: Ditto.
12268 * config/stormy16/stormy16.c: Ditto.
12269 * config/tilegx/tilegx.c: Ditto.
12270 * config/tilepro/tilepro.c: Ditto.
12271 * config/v850/v850.c: Ditto.
12272 * config/vax/vax.c: Ditto.
12273 * config/xtensa/xtensa.c: Ditto.
12275 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
12277 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Comment out.
12278 * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
12279 Remove using preprocessor directives.
12281 2014-10-27 Richard Biener <rguenther@suse.de>
12283 * match.pd (0 % X): Properly use the iterator iterating over
12284 all modulo operators.
12287 2014-10-27 Richard Biener <rguenther@suse.de>
12289 * tree-ssa-forwprop.c: Include tree-cfgcleanup.h and tree-into-ssa.h.
12290 (lattice): New global.
12291 (fwprop_ssa_val): New function.
12292 (fold_all_stmts): Likewise.
12293 (pass_forwprop::execute): Finally fold all stmts.
12295 2014-10-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
12298 * doc/invoke.texi (fmessage-length): Update text to match reality.
12300 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12302 * config/microblaze/microblaze.c: Include rtl-iter.h.
12303 (microblaze_tls_referenced_p_1): Delete.
12304 (microblaze_tls_referenced_p): Use FOR_EACH_SUBRTX.
12306 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12308 * config/mips/mips.c (mips_at_reg_p): Delete.
12309 (mips_need_noat_wrapper_p): Use FOR_EACH_SUBRTX.
12311 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12313 * config/mips/mips.c (mips_record_lo_sum): Replace with...
12314 (mips_record_lo_sums): ...this new function.
12315 (mips_reorg_process_insns): Update accordingly.
12317 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12319 * config/mips/mips.c (mips_sim_insn): Update comment.
12320 (mips_sim_wait_regs_2): Delete.
12321 (mips_sim_wait_regs_1): Use FOR_EACH_SUBRTX_VAR.
12323 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12325 * config/mips/mips.c (r10k_needs_protection_p_call): Take a const_rtx
12326 and return a bool. Iterate over all subrtxes here.
12327 (r10k_needs_protection_p): Update accordingly.
12329 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12331 * config/mips/mips.c (r10k_needs_protection_p_1): Take an rtx
12332 rather than an rtx pointer. Change type of insn from "void *"
12333 to its real type. Return bool rather than int. Iterate over
12335 (r10k_needs_protection_p_store): Update accordingly.
12336 (r10k_needs_protection_p): Likewise.
12338 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12340 * config/mips/mips.c (mips16_rewrite_pool_refs_info): Delete.
12341 (mips16_rewrite_pool_refs): Take the insn and constant pool as
12342 parameters. Iterate over the instruction's pattern and return void.
12343 (mips16_lay_out_constants): Update accordingly.
12345 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12347 * config/mips/mips.c (mips_kernel_reg_p): Replace with...
12348 (mips_refers_to_kernel_reg_p): ...this new function.
12349 (mips_expand_prologue): Update accordingly.
12351 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12353 * config/mips/mips.c (mips_rewrite_small_data_1): Take the context
12354 as a parameter instead of the containing MEM. Iterate over all
12355 subrtxes. Don't return a value.
12356 (mips_rewrite_small_data): Update call accordingly.
12358 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12360 * config/mips/mips.c: Include rtl-iter.h.
12361 (mips_small_data_pattern_1): Take an rtx rather than an rtx pointer.
12362 Take the context as a parameter instead of the containing MEM.
12363 Iterate over all subrtxes.
12364 (mips_small_data_pattern_p): Update call accordingly.
12366 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12368 * config/mep/mep.c (mep_mul_hilo_bypass_1): Delete.
12369 (mep_mul_hilo_bypass_p): Use FOR_EACH_SUBRTX.
12371 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12373 * config/mep/mep.c (mep_store_find_set): Take a const_rtx and
12374 return a bool. Replace "void *" with specific type. Iterate
12376 (mep_store_data_bypass_1): Update calls accordingly.
12378 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12380 * config/mep/mep.c: Include rtl-iter.h.
12381 (global_reg_mentioned_p_1): Take a const_rtx and return a bool.
12382 (xtensa_tls_referenced_p): Return a bool. Use FOR_EACH_SUBRTX.
12384 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12386 * config/xtensa/xtensa.c: Include rtl-iter.h.
12387 (xtensa_tls_referenced_p_1): Delete.
12388 (xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX.
12390 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12392 * config/sh/sh.c (sh_contains_memref_p_1): Delete.
12393 (sh_contains_memref_p): Use FOR_EACH_SUBRTX.
12395 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12397 * config/sh/sh-protos.h (shmedia_cleanup_truncate): Take an
12398 rtx as argument and return the number of changes.
12399 * config/sh/sh.c: Include rtl-iter.h.
12400 (shmedia_cleanup_truncate): Take an rtx as argument and iterate
12401 over all subrtxes. Return the number of changes made.
12402 * config/sh/sh.md: Update caller accordingly.
12404 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12406 * config/m68k/m68k.c (m68k_tls_reference_p_1): Delete.
12407 (m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR.
12409 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12411 * config/m68k/m68k.c: Include rtl-iter.h.
12412 (m68k_final_prescan_insn_1): Delete.
12413 (m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR.
12415 2014-10-25 Jakub Jelinek <jakub@redhat.com>
12417 PR tree-optimization/63641
12418 * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
12419 to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).
12421 2014-10-25 Alan Modra <amodra@gmail.com>
12423 PR rtl-optimization/63615
12424 * simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
12425 decomposing PLUS or MINUS if operands are not placed adjacent
12426 in the "ops" array.
12428 2014-10-25 Joseph Myers <joseph@codesourcery.com>
12430 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
12431 not allow e500 double in registers not satisyfing
12434 2014-10-24 Aldy Hernandez <aldyh@redhat.com>
12436 * dwarf2out.c (declare_in_namespace): Only emit external
12437 declarations in the local scope once.
12439 2014-10-24 Jonathan Wakely <jwakely@redhat.com>
12441 * ginclude/stdbool.h: Do not define bool, true or false in C++11.
12443 2014-10-24 Charles Baylis <charles.baylis@linaro.org>
12445 * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
12446 update uses to use new macro arguments.
12447 (__LD3_LANE_FUNC): Likewise.
12448 (__LD4_LANE_FUNC): Likewise.
12450 2014-10-24 Charles Baylis <charles.baylis@linaro.org>
12452 * config/aarch64/aarch64-builtins.c
12453 (aarch64_types_loadstruct_lane_qualifiers): Define.
12454 * config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
12455 ld4_lane): New builtins.
12456 * config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
12458 (aarch64_vec_load_lanesci_lane<mode>): Likewise.
12459 (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
12460 (aarch64_ld2_lane<mode>): New expand.
12461 (aarch64_ld3_lane<mode>): Likewise.
12462 (aarch64_ld4_lane<mode>): Likewise.
12463 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
12464 UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.
12466 2014-10-24 Georg-Johann Lay <avr@gjlay.de>
12468 * avr-protos.h (avr_out_sign_extend): New.
12469 * avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
12470 (avr_out_sign_extend): New function.
12471 * avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
12472 (extendhisi2, extendpsisi2): Use it.
12473 (adjust_len) [sext]: New.
12475 2014-10-24 Martin Liska <mliska@suse.cz>
12477 * ipa-icf.c (sem_function::compare_phi_node): PHI result comparison
12480 2014-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12482 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
12483 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
12484 * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
12485 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
12487 2014-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12489 * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
12491 * config/aarch64/aarch64.c (is_mem_p): Delete.
12492 (is_memory_op): Rename to...
12493 (has_memory_op): ... This. Use FOR_EACH_SUBRTX.
12494 (dep_between_memop_and_curr): Assert that the input is a SET.
12495 (aarch64_madd_needs_nop): Add comment. Do not call
12496 dep_between_memop_and_curr on NULL body.
12497 (aarch64_final_prescan_insn): Add comment.
12498 Include rtl-iter.h.
12500 2014-10-24 Richard Biener <rguenther@suse.de>
12502 * Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
12503 to genmatch BUILD_LIBS instead.
12505 2014-10-24 Richard Biener <rguenther@suse.de>
12507 * genmatch.c (expr::gen_transform): Use fold_buildN_loc
12508 and build_call_expr_loc.
12509 (dt_simplify::gen): Drop non_lvalue for GIMPLE, use
12510 non_lvalue_loc to build it for GENERIC.
12511 (decision_tree::gen_generic): Add location argument to
12512 generic_simplify prototype.
12513 (capture_info): New class.
12514 (capture_info::capture_info): New constructor.
12515 (capture_info::walk_match): New method.
12516 (capture_info::walk_result): New method.
12517 (capture_info::walk_c_expr): New method.
12518 (dt_simplify::gen): Handle preserving side-effects for
12519 GENERIC code generation.
12520 (decision_tree::gen_generic): Do not reject operands
12521 with TREE_SIDE_EFFECTS.
12522 * generic-match.h: New file.
12523 * generic-match-head.c: Include generic-match.h, not gimple-match.h.
12524 * match.pd: Add some constant folding patterns from fold-const.c.
12525 * fold-const.c: Include generic-match.h.
12526 (fold_unary_loc): Dispatch to generic_simplify.
12527 (fold_ternary_loc): Likewise.
12528 (fold_binary_loc): Likewise. Remove patterns now implemented
12529 by generic_simplify.
12530 * gimple-fold.c (replace_stmt_with_simplification): New function.
12531 (fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
12532 (no_follow_ssa_edges): New function.
12533 (fold_stmt): New overload with valueization hook. Use
12534 no_follow_ssa_edges for the overload without hook.
12535 (fold_stmt_inplace): Likewise.
12536 * gimple-fold.h (no_follow_ssa_edges): Declare.
12538 2014-10-24 Felix Yang <felix.yang@huawei.com>
12539 Jiji Jiang <jiangjiji@huawei.com>
12542 * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
12543 (__LD3R_FUNC): Ditto.
12544 (__LD4R_FUNC): Ditto.
12545 (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
12546 vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
12547 vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
12548 vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
12549 vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
12550 vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
12551 (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
12552 vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
12553 vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
12554 vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
12555 vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
12556 vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
12557 (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
12558 vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
12559 vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
12560 vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
12561 vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
12562 vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
12563 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
12564 UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
12565 * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
12567 * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
12568 (aarch64_simd_ld3r<mode>): Likewise.
12569 (aarch64_simd_ld4r<mode>): Likewise.
12570 (aarch64_ld2r<mode>): New expand.
12571 (aarch64_ld3r<mode>): Likewise.
12572 (aarch64_ld4r<mode>): Likewise.
12574 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
12576 * rtlanal.c (get_base_term): Handle SCRATCH.
12578 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
12580 * haifa-sched.c (sched_init): Disable max_issue when scheduling for
12583 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
12585 * haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
12586 (cached_issue_rate): Remove. Use dfa_lookahead and issue_rate instead.
12587 (max_issue, choose_ready, sched_init): Update.
12589 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
12591 * sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
12592 * haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
12593 (rfs_result): Set INSN_LAST_RFS_WIN. Update signature.
12594 (rank_for_schedule): Update calls to rfs_result to pass new parameters.
12595 (print_rank_for_schedule_stats): Print out elements of ready list that
12596 ended up on their respective places due to each of the sorting
12598 (ready_sort): Update.
12599 (debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
12600 (schedule_block): Update.
12602 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
12604 * haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
12605 arrays. Use sched_class_regs_num instead of ira_class_hard_regs_num.
12606 (print_curr_reg_pressure, setup_insn_reg_pressure_info,)
12607 (model_update_pressure, model_spill_cost): Use sched_class_regs_num.
12608 (model_start_schedule): Update.
12609 (sched_pressure_start_bb): New static function. Calculate
12610 sched_class_regs_num.
12611 (schedule_block): Use it.
12612 (alloc_global_sched_pressure_data): Calculate call_used_regs_num.
12614 2014-10-24 Richard Biener <rguenther@suse.de>
12616 * Makefile.in (BUILD_CPPLIB): When in stage2+ use the
12617 host library and make sure to pull in the required libintl
12618 and libiconv dependencies.
12620 2014-10-24 Richard Biener <rguenther@suse.de>
12622 * fold-const.c (fold_binary_loc): Fix copy-and-pasto.
12624 2014-10-24 Markus Trippelsdorf <markus@trippelsdorf.de>
12627 * collect2.c (main): Filter out -fno-lto.
12629 2014-10-24 Martin Liska <mliska@suse.cz>
12631 * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
12632 division by zero in dumps.
12633 (sem_item_optimizer::merge_classes): Ditto.
12635 2014-10-23 John David Anglin <danglin@gcc.gnu.org>
12637 * config/pa/pa.c (pa_can_combine_p): Fix typo in last change.
12639 2014-10-23 Ian Lance Taylor <iant@google.com>
12641 * tree-vrp.c (extract_range_from_assert): Fix typo in comment.
12643 2014-10-23 Ian Lance Taylor <iant@google.com>
12645 * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine.
12647 2014-10-23 Jakub Jelinek <jakub@redhat.com>
12650 * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
12651 (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
12652 instead of only handling autoinc in dest if it is a MEM.
12653 (vt_stack_adjustments): Fix up formatting.
12655 2014-10-23 DJ Delorie <dj@redhat.com>
12657 * config/msp430/msp430.c (msp430_print_operand): 'x' modifier is
12658 independend of -mlarge.
12659 * config/msp430/constraints.md (Ys): Update comment.
12661 2014-10-23 Evgeny Stupachenko <evstupac@gmail.com>
12665 * cse.c (delete_trivially_dead_insns): Consider PIC register is used
12666 while it is pseudo.
12667 * dse.c (deletable_insn_p): Likewise.
12669 2014-10-23 Georg-Johann Lay <avr@gjlay.de>
12671 * config/avr/avr.c: Fix GNU coding rules and typos.
12672 * config/avr/avr.h: Dito.
12673 * config/avr/avr-c.c: Dito.
12674 * config/avr/avr.md: Dito.
12676 2014-10-23 Kirill Yukhin <kirill.yukhin@intel.com>
12678 * config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
12680 (define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
12682 (define_expand "abs<mode>2"): Ditto.
12684 2014-10-23 Kirill Yukhin <kirill.yukhin@intel.com>
12686 * tree-core.h (tree_var_decl): Extend `function_code' field
12687 by one bit, move `regdecl_flag' field to ...
12688 (tree_decl_with_vis): Here.
12689 * tree.h (DECL_STATIC_CHAIN): Update struct name.
12691 2014-10-23 Richard Biener <rguenther@suse.de>
12693 * Makefile.in (BUILD_CPPLIB): Add.
12694 (build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
12697 2014-10-23 Richard Biener <rguenther@suse.de>
12699 * fold-const.c (fold_binary_loc): Preserve side-effects of
12700 X - X when simplifying to 0.
12701 * stor-layout.c (finish_bitfield_representative): Strip
12702 side-effects of evaluating the difference of two DECL_FIELD_OFFSET.
12704 2014-10-22 Richard Biener <rguenther@suse.de>
12705 Tobias Burnus <burnus@net-b.de>
12708 * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
12710 2014-10-22 Dehao Chen <dehao@google.com>
12712 * auto-profile.c: Change order of header files.
12714 2014-10-22 Guozhi Wei <carrot@google.com>
12716 PR tree-optimization/63530
12717 tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
12718 pointer alignment according to DR_MISALIGNMENT.
12720 2014-10-22 David Malcolm <dmalcolm@redhat.com>
12722 * ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
12724 2014-10-22 Andrew MacLeod <amacleod@redhat.com>
12726 * cfgbuild.h: New. Add prototypes for cfgbuild.c.
12727 * cfgcleanup.h: New. Add prototypes for cfgcleanup.c.
12728 * cfgloopmanip.h: New. Add prototypes for cfgloopmanip.c.
12729 * dominance.h: New. Add prototypes for dominance.c.
12730 * cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
12731 * cfghooks.h: (struct profile_record) Relocate here.
12732 Relocate 2 prototypes from basic-block.h.
12733 * basic-block.h: Move prototypes and struct to new header files.
12734 Include cfgbuild.h, cfgcleanup.h, and dominance.h.
12735 * rtl.h: Move a few prototypes to new header files.
12736 * cfgcleanup.c (merge_memattrs): Make static.
12737 * genopinit.c (main): Add predict.h to list of includes.
12738 * predict.h: Update prototype list to match predict.c.
12739 * predict.c (maybe_hot_count_p): Export.
12740 (cgraph_edge::maybe_hot_p): Move to cgraph.c.
12741 (cgraph_node::optimize_for_size_p): Move to cgraph.h.
12742 * cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
12743 * cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
12744 * profile.h: Adjust prototypes.
12745 * ifcvt.h: New. Relocate struct ce_if_block here.
12746 * ifcvt.c: Include ifcvt.h.
12747 * config/frv/frv.c: Include ifcvt.h.
12748 * config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.
12750 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
12752 * lra.c (lra): Remove call to recog_init.
12753 * config/i386/i386.md (preferred_for_speed): New attribute
12754 (*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
12755 "enabled". Remove check for sched1.
12757 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
12759 * recog.h (recog_data_d): Remove enabled_alternatives.
12760 * recog.c (extract_insn): Don't set it.
12761 * reload.c (find_reloads): Call get_enabled_alternatives.
12763 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
12765 * recog.h (constrain_operands): Add an alternative_mask parameter.
12766 (constrain_operands_cached): Likewise.
12767 (get_preferred_alternatives): Declare new form.
12768 * recog.c (get_preferred_alternatives): New bb-taking instance.
12769 (constrain_operands): Take the set of available alternatives as
12771 (check_asm_operands, insn_invalid_p, extract_constrain_insn)
12772 (extract_constrain_insn_cached): Update calls to constrain_operands.
12773 * caller-save.c (reg_save_code): Likewise.
12774 * ira.c (setup_prohibited_mode_move_regs): Likewise.
12775 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
12776 * ree.c (combine_reaching_defs): Likewise.
12777 * reload.c (can_reload_into): Likewise.
12778 * reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
12779 (gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
12780 (emit_insn_if_valid_for_reload): Likewise.
12781 * reorg.c (fill_slots_from_thread): Likewise.
12782 * config/i386/i386.c (ix86_attr_length_address_default): Likewise.
12783 * config/pa/pa.c (pa_can_combine_p): Likewise.
12784 * config/rl78/rl78.c (insn_ok_now): Likewise.
12785 * config/sh/sh.md (define_peephole2): Likewise.
12786 * final.c (final_scan_insn): Update call to constrain_operands_cached.
12788 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
12790 * doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
12792 * genattr.c (main): Handle "preferred_for_size" and
12793 "preferred_for_speed" in the same way as "enabled".
12794 * recog.h (bool_attr): New enum.
12795 (target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
12796 (get_preferred_alternatives, check_bool_attrs): Declare.
12797 * recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
12798 (get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
12800 (get_enabled_alternatives): Use get_bool_attr_mask.
12801 * ira-costs.c (record_reg_classes): Use get_preferred_alternatives
12802 instead of recog_data.enabled_alternatives.
12803 * ira.c (ira_setup_alts): Likewise.
12804 * postreload.c (reload_cse_simplify_operands): Likewise.
12805 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
12806 * ira-lives.c (preferred_alternatives): New variable.
12807 (process_bb_node_lives): Set it.
12808 (check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
12809 (single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
12810 of recog_data.enabled_alternatives.
12811 * lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
12812 to preferred_alternatives.
12813 * lra-constraints.c (process_alt_operands): Update accordingly.
12814 * lra.c (lra_set_insn_recog_data): Likewise.
12815 (lra_update_insn_recog_data): Assert check_bool_attrs.
12817 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
12819 * recog.h (extract_constrain_insn): Declare.
12820 * recog.c (extract_constrain_insn): New function.
12821 * lra.c (check_rtl): Use it.
12822 * postreload.c (reload_cse_simplify_operands): Likewise.
12823 * reg-stack.c (check_asm_stack_operands): Likewise.
12824 (subst_asm_stack_regs): Likewise.
12825 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
12826 * regrename.c (build_def_use): Likewise.
12827 * sel-sched.c (get_reg_class): Likewise.
12828 * config/arm/arm.c (note_invalid_constants): Likewise.
12829 * config/s390/predicates.md (execute_operation): Likewise.
12831 2014-10-22 Jakub Jelinek <jakub@redhat.com>
12832 Yury Gribov <y.gribov@samsung.com>
12834 * common.opt (flag_sanitize_recover): New variable.
12835 (fsanitize-recover): Remove Var/Init, deprecate.
12836 (fsanitize-recover=): New option.
12837 * doc/invoke.texi (fsanitize-recover): Update docs.
12838 * opts.c (finish_options): Use opts->x_flag_sanitize
12839 instead of flag_sanitize. Prohibit -fsanitize-recover
12840 for anything besides UBSan. Formatting.
12841 (common_handle_option): Handle OPT_fsanitize_recover_
12842 and OPT_fsanitize_recover. Use opts->x_flag_sanitize
12843 instead of flag_sanitize.
12844 * asan.c (pass_sanopt::execute): Fix up formatting.
12845 * ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
12846 ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
12847 instrument_bool_enum_load, ubsan_instrument_float_cast,
12848 instrument_nonnull_arg, instrument_nonnull_return): Check
12849 bits in flag_sanitize_recover bitmask instead of
12850 flag_sanitize_recover as bool flag.
12852 2014-10-22 Jiong Wang <jiong.wang@arm.com>
12854 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
12856 2014-10-22 Renlin Li <renlin.li@arm.com>
12858 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
12859 __ARM_FEATURE_IDIV__.
12861 2014-10-22 Richard Biener <rguenther@suse.de>
12863 * Makefile.in (s-match): Adjust dependencies to only catch
12866 2014-10-22 Richard Biener <rguenther@suse.de>
12867 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
12869 * Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
12870 (MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
12871 (gimple-match.c): Generate by triggering s-match.
12872 (generic-match.c): Likewise.
12873 (s-match): Rule to build gimple-match.c and generic-match.c
12874 by running the genmatch generator program.
12875 (build/hash-table.o): Dependencies to build hash-table.c for the host.
12876 (build/genmatch.o): Dependencies to build genmatch.
12877 (genprog): Add match.
12878 (build/genmatch): Likewise.
12879 (TEXI_GCCINT_FILES): Add match-and-simplify.texi.
12880 * generic-match-head.c: New file.
12881 * gimple-match-head.c: Likewise.
12882 * gimple-match.h: Likewise.
12883 * genmatch.c: Likewise.
12884 * match.pd: Likewise.
12885 * builtins.h (fold_builtin_n): Export.
12886 * builtins.c (fold_builtin_n): Likewise.
12887 * gimple-fold.h (gimple_build): Declare various overloads.
12888 (gimple_simplify): Likewise.
12889 (gimple_convert): Re-implement in terms of gimple_build.
12890 * gimple-fold.c (gimple_convert): Remove.
12891 (gimple_build): New functions.
12892 * doc/match-and-simplify.texi: New file.
12893 * doc/gccint.texi: Add menu item Match and Simplify and include
12894 match-and-simplify.texi.
12896 2014-10-22 Jakub Jelinek <jakub@redhat.com>
12899 * config/i386/i386.c (ix86_expand_vector_init_duplicate): For
12900 V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
12901 even for just TARGET_AVX2, not only for
12902 TARGET_AVX512VL && TARGET_AVX512BW. For V{32HI,64QI}mode,
12903 call ix86_vector_duplicate_value only if TARGET_AVX512BW,
12904 otherwise build it using concatenation of 256-bit
12906 * config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
12907 avx512 broadcast patterns.
12908 (vec_dup<mode>): Likewise. For avx2 use
12909 v<sseintprefix>broadcast<bcstscalarsuff> instead of
12910 vbroadcast<ssescalarmodesuffix>.
12911 (AVX2_VEC_DUP_MODE): New mode iterator.
12912 (*vec_dup<mode>): New TARGET_AVX2 define_insn with
12913 AVX2_VEC_DUP_MODE iterator, add a splitter for that.
12916 * config/i386/i386.c (ix86_pic_register_p): Also return
12917 true if x is a hard register with ORIGINAL_REGNO equal to
12918 pic_offset_table_rtx pseudo REGNO.
12919 (ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
12920 after reload, subtract GOT_SYMBOL_NAME symbol if possible.
12922 2014-10-22 Alan Modra <amodra@gmail.com>
12924 * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
12925 * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
12926 (gcc_obstack_init): Use obstack_specify_allocation in place of
12928 * genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
12929 (regexp_representation): Likewise.
12930 * godump.c (go_output_type): Likewise.
12932 2014-10-21 John David Anglin <danglin@gcc.gnu.org>
12934 * config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
12935 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
12936 * config/pa/pa.opt (mjump-in-delay): Ignore option. Update comment.
12938 2014-10-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
12940 * doc/invoke.texi (pedantic-errors): Explain better.
12942 2014-10-21 Joern Rennecke <joern.rennecke@embecosm.com>
12943 Vidya Praveen <vidya.praveen@atmel.com>
12944 Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
12945 Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
12946 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
12948 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
12949 __MEMX for avrtiny.
12950 * config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
12951 (avr_nonconst_pointer_addrspace): Likewise.
12952 * config/avr/avr.h (AVR_HAVE_LPM): Define.
12954 Added AVRTINY architecture to avr target.
12955 * config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
12956 (base_arch_s): member added for AVRTINY architecture.
12957 * config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
12958 alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
12959 AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
12960 and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
12961 respectively. LAST_CALLEE_SAVED_REG macro added for the last register
12962 in callee saved register list.
12963 (avr_option_override): CCP address updated for AVRTINY.
12964 (avr_init_expanders): tmp and zero rtx initialized as per arch.
12965 Reset avr_have_dimode if AVRTINY.
12966 (sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
12967 (emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
12968 (avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
12969 Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
12970 (expand_epilogue): Likewise.
12971 (avr_print_operand): Print CCP address in case of AVRTINY also.
12973 (function_arg_regno_p): Check different register list for arguments
12975 (init_cumulative_args): Check for AVRTINY to update number of argument
12977 (tiny_valid_direct_memory_access_range): New function. Return false if
12978 direct memory access range is not in accepted range for AVRTINY.
12979 (avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
12980 indirect load (with displacement) for AVRTINY.
12981 (out_movqi_r_mr): Updated instruction length for AVRTINY. Call
12982 avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
12983 (avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
12984 indirect load (no displacement) for AVRTINY.
12985 (avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
12986 indirect load (with displacement) for AVRTINY.
12987 (avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
12988 indirect load for pre-decrement address.
12989 (out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
12990 functions. Update instruction length for AVRTINY.
12991 (avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
12993 (avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
12994 (out_movsi_r_mr): Likewise, for SImode.
12995 (avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
12996 indirect store (no displacement) for AVRTINY.
12997 (avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
12998 indirect store (with displacement) for AVRTINY.
12999 (out_movsi_mr_r): Emit out insn for IO address store. Update store
13000 instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
13002 (avr_out_load_psi_reg_no_disp_tiny): New function to handle register
13003 indirect load (no displacement) for PSImode in AVRTINY.
13004 (avr_out_load_psi_reg_disp_tiny): New function to handle register
13005 indirect load (with displacement) for PSImode in AVRTINY.
13006 (avr_out_load_psi): Call PSImode register indirect load functions for
13007 AVRTINY. Update instruction length for AVRTINY.
13008 (avr_out_store_psi_reg_no_disp_tiny): New function to handle register
13009 indirect store (no displacement) for PSImode in AVRTINY.
13010 (avr_out_store_psi_reg_disp_tiny): New function to handle register
13011 indirect store (with displacement) for PSImode in AVRTINY.
13012 (avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
13013 register indirect store functions for AVRTINY.
13014 (avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
13015 register indirect store (with displacement) for AVRTINY.
13016 (out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
13017 register indirect store function for QImode in AVRTINY.
13018 (avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
13019 (avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
13020 indirect store (no displacement) for HImode in AVRTINY.
13021 (avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
13022 indirect store (with displacement) for HImode in AVRTINY.
13023 (avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
13024 indirect store for post-increment address in HImode.
13025 (out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
13026 register indirect store function for HImode in AVRTINY.
13027 (avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
13028 in case of AVRTINY.
13029 (order_regs_for_local_alloc): Updated register allocation order for
13031 (avr_conditional_register_usage): New function. It is a target hook
13032 (TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
13033 used registers list and register allocation order for AVRTINY.
13034 (avr_return_in_memory): Update return value size for AVRTINY.
13035 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
13036 for AVRTINY arch and tiny program memory base address.
13037 * config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
13038 (avr_texinfo): Added description for AVRTINY arch.
13039 * config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
13040 STATIC_CHAIN_REGNUM for AVRTINY.
13041 * config/avr/avr-mcus.def: Added AVRTINY arch devices.
13042 * config/avr/avr.md: Added constants for tmp/ zero registers in
13043 AVRTINY. Attributes for AVRTINY added.
13044 (mov<mode>): Move src/ dest address to register if it is not in AVRTINY
13045 memory access range.
13046 (mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
13047 in AVRTINY memory access range.
13048 (*mov<mode>): Likewise for HImode and SImode.
13049 (*movsf): Likewise for SFmode.
13050 (delay_cycles_2): Updated instructions to be emitted as AVRTINY does
13052 * config/avr/avr-protos.h: Added function prototype for
13053 tiny_valid_direct_memory_access_range.
13054 * config/avr/avr-tables.opt: Regenerate.
13055 * gcc/config/avr/t-multilib: Regenerate.
13056 * doc/avr-mmcu.texi: Regenerate.
13058 2014-10-21 Andrew Pinski <apinski@cavium.com>
13060 * doc/invoke.texi (AARCH64/mtune): Document thunderx as an
13061 available option also.
13062 * config/aarch64/aarch64-cost-tables.h: New file.
13063 * config/aarch64/aarch64-cores.def (thunderx): New core.
13064 * config/aarch64/aarch64-tune.md: Regenerate.
13065 * config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
13066 of config/arm/aarch-cost-tables.h.
13067 (thunderx_regmove_cost): New variable.
13068 (thunderx_tunings): New variable.
13070 2014-10-21 Dehao Chen <dehao@google.com>
13072 * auto-profile.c: New file.
13073 * auto-profile.h: New file.
13074 * basic-block.h (maybe_hot_count_p): New export func.
13075 (add_working_set): New export func.
13076 * gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
13077 (GCOV_TAG_AFDO_FUNCTION): Likewise.
13078 (GCOV_TAG_AFDO_WORKING_SET): Likewise.
13079 * opts.c (enable_fdo_optimizations): New func.
13080 (common_handle_option): Handle -fauto-profile flag.
13081 * ipa-inline.c (want_early_inline_function_p): Iterative-einline.
13082 (class pass_early_inline): Export early_inliner.
13083 (early_inliner): Likewise.
13084 (pass_early_inline::execute): Likewise.
13085 * ipa-inline.h (early_inliner): Likewise.
13086 * predict.c (maybe_hot_count_p): New export func.
13087 (counts_to_freqs): AutoFDO logic.
13088 (rebuild_frequencies): Likewise.
13089 * tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
13090 * profile.c (add_working_set): New func.
13091 * Makefile.in (auto-profile.o): New object file.
13092 * passes.def (pass_ipa_auto_profile): New pass.
13093 * tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
13094 * tree-pass.h (make_pass_ipa_auto_profile): New pass.
13095 * toplev.c (compile_file): AutoFDO logic.
13096 * doc/invoke.texi (-fauto-profile): New doc.
13097 * coverage.c (coverage_init): AutoFDO logic.
13098 * common.opt (-fauto-profile): New flag.
13099 * timevar.def (TV_IPA_AUTOFDO): New tag.
13100 * value-prof.c (gimple_alloc_histogram_value): New export func.
13101 (check_ic_target): Likewise.
13102 * value-prof.h (gimple_alloc_histogram_value): Likewise.
13103 (check_ic_target): Likewise.
13105 2014-10-21 David Malcolm <dmalcolm@redhat.com>
13107 * cgraph.c (cgraph_c_finalize): New function.
13108 * cgraph.h (cgraph_c_finalize): New prototype.
13109 (cgraphunit_c_finalize): New prototype.
13110 * cgraphunit.c (first_analyzed): Move from analyze_functions
13112 (first_analyzed_var): Likewise.
13113 (analyze_functions): Move static variables into file-scope.
13114 (cgraphunit_c_finalize): New function.
13115 * diagnostic.c (diagnostic_finish): Free the memory for
13116 context->classify_diagnostic and context->printer, running the
13117 destructor for the latter.
13118 (bt_stop): Use toplev::main.
13119 * dwarf2out.c (dwarf2out_finalize): New function.
13120 * dwarf2out.h (dwarf2out_c_finalize): New prototype.
13121 * gcse.c (gcse_c_finalize): New function.
13122 * gcse.h (gcse_c_finalize): New prototype.
13123 * ggc-page.c (init_ggc): Make idempotent.
13124 * input.c (input_location): Initialize to UNKNOWN_LOCATION.
13125 * ipa-cp.c (ipa_cp_c_finalize): New function.
13126 * ipa-prop.h (ipa_cp_c_finalize): New prototype.
13127 * ipa-pure-const.c (function_insertion_hook_holder): Move to be
13128 a field of class pass_ipa_pure_const.
13129 (node_duplication_hook_holder): Likewise.
13130 (node_removal_hook_holder): Likewise.
13131 (register_hooks): Convert to method...
13132 (pass_ipa_pure_const::register_hooks): ...here, converting
13133 static variable init_p into...
13134 (pass_ipa_pure_const::init_p): ...new field.
13135 (pure_const_generate_summary): Update invocation of
13136 register_hooks to invoke as a method of current_pass.
13137 (pure_const_read_summary): Likewise.
13138 (propagate): Convert to...
13139 (pass_ipa_pure_const::execute): ...method.
13140 * ipa-reference.c (ipa_init): Move static bool init_p from here
13142 (ipa_init_p): New file-scope variable, so that it can be reset
13143 when repeatedly invoking the compiler within one process by...
13144 (ipa_reference_c_finalize): New function.
13145 * ipa-reference.h (ipa_reference_c_finalize): New.
13146 * main.c (main): Replace invocation of toplev_main with
13147 construction of a toplev instance, and call its "main" method.
13148 * params.c (global_init_params): Add an assert that
13149 params_finished is false.
13150 (params_c_finalize): New.
13151 * params.h (params_c_finalize): New.
13152 * passes.c (execute_ipa_summary_passes): Set "current_pass" before
13153 invoking generate_summary, for the benefit of pass_ipa_pure_const.
13154 (ipa_write_summaries_2): Assign "pass" to "current_pass" global
13155 before calling write_summary hook.
13156 (ipa_write_optimization_summaries_1): Likewise when calling
13157 write_optimization_summary hook.
13158 (ipa_read_summaries_1): Likewise for read_summary hook.
13159 (ipa_read_optimization_summaries_1): Likewise for
13160 read_optimization_summary hook.
13161 (execute_ipa_stmt_fixups): Likewise.
13162 * stringpool.c (init_stringpool): Clean up if we're called more
13164 * timevar.c (timevar_init): Ignore repeated calls.
13165 * toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
13167 (general_init): Reset "input_location" to UNKNOWN_LOCATION.
13168 (initialize_rtl): Move static local "initialized_once"
13169 into file scope, and rename to...
13170 (rtl_initialized): New variable.
13171 (do_compile): Move timevar initialization from here to
13172 toplev::start_timevars.
13173 (toplev::toplev, toplev::~toplev, toplev::start_timevars,
13174 toplev::finalize): New functions.
13175 (toplev_main): Rename to...
13176 (toplev::main): ...this.
13177 * toplev.h (class toplev): New class.
13179 2014-10-21 Andrew MacLeod <amacleod@redhat.com>
13181 * loop-doloop.c: Include loop-unroll.h.
13183 2014-10-21 Andrew MacLeod <amacleod@redhat.com>
13185 * cfg.h: New. Header file for cfg.c.
13186 * cfganal.h: New. Header file for cfganal.c.
13187 * lcm.h: New. Header file for lcm.c.
13188 * loop-unroll.h: New. Header file for loop-unroll.h.
13189 * cfgloop.h: (unroll_loops): Remove prototype.
13190 * basic-block.h: Move prototypes and structs to new header files.
13191 Include cfg.h, cfganal.h, and lcm.h.
13192 * loop-init.c: Include loop-unroll.h.
13193 * loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
13194 * modulo-sched.c: Include loop-unroll.h.
13196 2014-10-21 Thomas Preud'homme <thomas.preudhomme@arm.com>
13198 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
13199 MARKER_BYTE_UNKNOWN markers when handling casts.
13201 2014-10-21 Richard Biener <rguenther@suse.de>
13203 * tree-ssa-phiopt.c (value_replacement): Properly verify we
13204 are the non-singleton PHI.
13206 2014-10-21 Jakub Jelinek <jakub@redhat.com>
13208 PR tree-optimization/63563
13209 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
13210 if either dra or drb stmts are not normal loads/stores.
13212 2014-10-21 Ilya Tocar <ilya.tocar@intel.com>
13214 * config/i386/i386.c (expand_vec_perm_1): Fix
13215 expand_vec_perm_palignr case.
13216 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
13219 2014-10-21 Zhenqiang Chen <zhenqiang.chen@arm.com>
13221 * cfgloopanal.c (seq_cost): Delete.
13222 * rtl.h (seq_cost): New prototype.
13223 * rtlanal.c (seq_cost): New function.
13224 * tree-ssa-loop-ivopts.c (seq_cost): Delete.
13226 2014-10-20 Andrew MacLeod <amacleod@redhat.com>
13228 * cfgrtl.h: New. Add prototypes for cfgrtl.c.
13229 * basic-block.h: Remove prototypes for cfgrtl.c.
13230 * cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
13231 prototypes to cfgrtl.h.
13232 * profile.h (profile_info): Add extern export declaration.
13233 * rtl.h: Remove prototypes for cfgrtl.h.
13234 * tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
13235 * ipa-inline.c: Include profile.h.
13236 * loop-unroll.c: Ditto.
13237 * modulo-sched.c: Ditto.
13238 * postreload-gcse.c: Ditto.
13239 * predict.c: Ditto.
13240 * sched-ebb.c: Ditto.
13241 * sched-rgn.c: Ditto.
13243 * tree-ssa-loop-ivcanon.c: Ditto.
13245 2014-10-20 Richard Biener <rguenther@suse.de>
13247 * tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
13248 operands to get a def operand kind match. Signal mismatches
13249 to the parent so we can try swapping its operands.
13250 (vect_build_slp_tree): Try swapping operands if they have
13251 a mismatched operand kind.
13253 2014-10-20 Alan Modra <amodra@gmail.com>
13256 * simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
13257 Increase "ops" array size. Correct array size tests. Init
13258 n_constants in loop. Break out of innermost loop when finding
13259 a trivial CONST expression.
13261 2014-10-20 Martin Liska <mliska@suse.cz>
13264 * ipa-icf-gimple.c (func_checker::compare_gimple_asm):
13265 Gimple tempate string is compared.
13267 2014-10-20 Uros Bizjak <ubizjak@gmail.com>
13269 * varasm.c (const_alias_set): Remove.
13270 (init_varasm_once): Remove initialization of const_alias_set.
13271 (build_constant_desc): Do not set alias set to const_alias_set.
13273 2014-10-19 Ilya Verbin <ilya.verbin@intel.com>
13275 * configure: Regenerate.
13276 * configure.ac: Move the test for section attribute specifier "e" in GAS
13277 out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
13278 * langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
13279 * varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
13280 ifdef HAVE_GAS_SECTION_EXCLUDE.
13282 2014-10-19 Andreas Schwab <schwab@linux-m68k.org>
13284 * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
13285 match_operand expression.
13287 2014-10-19 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
13288 David Edelsohn <dje.gcc@gmail.com>
13290 * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
13292 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
13294 2014-10-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
13296 * doc/invoke.texi (Options to Request or Suppress Warnings):
13297 Explain options precedence.
13298 (Wtrampolines): Do not indent paragraph.
13300 2014-10-18 John David Anglin <danglin@gcc.gnu.org>
13302 * doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
13303 * config/pa/pa-protos.h (pa_following_call): Delete declaration.
13304 (pa_jump_in_call_delay): Likewise.
13305 * config/pa/pa.c (pa_option_override): Remove jump in call delay
13307 (pa_output_millicode_call): Remove support for jump in call delay.
13308 (pa_output_call): Likewise.
13309 (pa_jump_in_call_delay): Delete.
13310 (pa_following_call): Likewise.
13311 * config/pa/pa.md (in_call_delay): Remove jump in delay check.
13312 (uncond_branch): Remove following call check from attribute length.
13314 2014-10-18 Oleg Endo <olegendo@gcc.gnu.org>
13317 * config/sh/sh-modes.def (PSI): Remove.
13318 * config/sh/sh-protos.h (get_fpscr_rtx): Remove.
13319 * config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
13320 (sh_reorg): Remove commented out FPSCR code.
13321 (fpscr_set_from_mem): Use SImode instead of PSImode. Emit lds_fpscr
13322 insn instead of move insn.
13323 (sh_hard_regno_mode_ok): Return SImode for FPSCR.
13324 (sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
13326 (sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
13327 (sh1_builtin_p): Uncomment.
13328 (SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
13329 (bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
13330 * config/sh/sh/predicates.md (fpscr_operand): Simplify.
13331 (fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
13332 (general_movsrc_operand, general_movdst_operand): Disallow
13334 * config/sh/sh.md (FPSCR_FR): New constant.
13335 (push_fpscr): Emit sts_fpscr insn.
13336 (pop_fpscr): Emit lds_fpscr_insn.
13337 (movsi_ie): Disallow FPSCR operands.
13338 (fpu_switch, unnamed related split, extend_psi_si,
13339 truncate_si_psi): Remove insns.
13340 (lds_fpscr, sts_fpscr): New insns.
13341 (toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.
13344 2014-10-17 Eric Botcazou <ebotcazou@adacore.com>
13346 * ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
13347 (clone_inlined_nodes): Do not overwrite the clone if above predicate
13350 2014-10-17 Ilya Tocar <ilya.tocar@intel.com>
13352 * config/i386/i386.c (MAX_VECT_LEN): Move earlier.
13353 (expand_vec_perm_d): Ditto.
13354 (ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode,
13355 V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode,
13357 (ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2.
13358 (ix86_expand_sse_unpack): Handle V64QImode.
13359 (expand_vec_perm_blend): Update conditions for TARGET, handle
13360 V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode.
13361 (expand_vec_perm_pshufb): Handle V64QImode.
13362 (expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode,
13363 V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode.
13364 (ix86_expand_vec_perm_const_1): Call ix86_expand_vec_perm_vpermi2.
13365 (ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode.
13366 (ix86_expand_vecop_qihi): Handle V64QImode.
13367 * config/i386/sse.md (define_mode_iterator VI1_AVX512): New.
13368 (define_mode_iterator VEC_PERM_AVX2): Add V32HI.
13369 (define_mode_iterator VEC_PERM_CONST): Add V32HI.
13370 (define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking.
13371 (mul<mode>3): Use VI1_AVX512.
13372 (<sse2_avx2>_packsswb): Ditto.
13373 (<sse2_avx2>_packuswb): Ditto.
13374 (<ssse3_avx2>_pshufb<mode>3): Ditto.
13375 (<shift_insn><mode>3): Ditto.
13377 2014-10-17 Kirill Yukhin <kirill.yukhin@intel.com>
13379 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
13380 conditions to fix bootstrap.
13382 2014-10-17 Andrew MacLeod <amacleod@redhat.com>
13384 gcc-plugin.h: Add tm.h and flattened includes from function.h.
13386 2014-10-17 Alexander Ivchenko <alexander.ivchenko@intel.com>
13387 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13388 Anna Tikhonova <anna.tikhonova@intel.com>
13389 Ilya Tocar <ilya.tocar@intel.com>
13390 Andrey Turetskiy <andrey.turetskiy@intel.com>
13391 Ilya Verbin <ilya.verbin@intel.com>
13392 Kirill Yukhin <kirill.yukhin@intel.com>
13393 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13395 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI
13396 and V32HI modes, update V8HI, V16QI, V32QI modes handling.
13397 (ix86_expand_vector_init_general): Handle V64QI and V32HI modes.
13398 * config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ...
13399 (define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes.
13400 (define_expand "vec_init<mode>"): Use VF48_I1248.
13402 2014-10-17 Alexander Ivchenko <alexander.ivchenko@intel.com>
13403 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13404 Anna Tikhonova <anna.tikhonova@intel.com>
13405 Ilya Tocar <ilya.tocar@intel.com>
13406 Andrey Turetskiy <andrey.turetskiy@intel.com>
13407 Ilya Verbin <ilya.verbin@intel.com>
13408 Kirill Yukhin <kirill.yukhin@intel.com>
13409 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13411 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
13412 expand_sse2_mulvxdi3.
13414 2014-10-17 Richard Biener <rguenther@suse.de>
13416 * fold-const.c (fold_comparison): Remove redundant constant
13417 folding and operand swapping.
13418 (fold_binary_loc): Do comparison operand swapping here.
13419 (fold_ternary_loc): Canonicalize operand order for
13420 commutative ternary operations.
13421 * tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR
13424 2014-10-17 Jakub Jelinek <jakub@redhat.com>
13426 PR tree-optimization/63464
13427 * gimple.h (gimple_seq_discard): New prototype.
13428 * gimple.c: Include stringpool.h and tree-ssanames.h.
13429 (gimple_seq_discard): New function.
13430 * optabs.h (lshift_cheap_p): New prototype.
13431 * optabs.c (lshift_cheap_p): New function, moved from...
13432 * tree-switch-conversion.c (lshift_cheap_p): ... here.
13433 * tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
13434 (reassoc_branch_fixups): New variable.
13435 (update_range_test): Add otherrangep and seq arguments.
13436 Unshare exp. If otherrange is NULL, use for other ranges
13437 array of pointers pointed by otherrangep instead.
13438 Emit seq before gimplified statements for tem.
13439 (optimize_range_tests_diff): Adjust update_range_test
13441 (optimize_range_tests_xor): Likewise. Fix up comment.
13442 (extract_bit_test_mask, optimize_range_tests_to_bit_test): New
13444 (optimize_range_tests): Adjust update_range_test caller.
13445 Call optimize_range_tests_to_bit_test.
13446 (branch_fixup): New function.
13447 (execute_reassoc): Call branch_fixup.
13449 PR tree-optimization/63302
13450 * tree-ssa-reassoc.c (optimize_range_tests_xor,
13451 optimize_range_tests_diff): Use !integer_pow2p () instead of
13454 2014-10-17 Martin Liska <mliska@suse.cz>
13456 * ipa-icf.c (sem_function::merge): Local flags are set to false
13457 to enforce equal calling convention to be used.
13458 * opts.c (common_handle_option): Indentation fix.
13460 2014-10-17 Marc Glisse <marc.glisse@inria.fr>
13462 * tree-into-ssa.c (is_old_name): Replace "new" with "old".
13464 2014-10-17 Tom de Vries <tom@codesourcery.com>
13466 PR rtl-optimization/61605
13467 * regcprop.c (copyprop_hardreg_forward_1): Use
13468 regs_invalidated_by_this_call instead of regs_invalidated_by_call.
13470 2014-10-17 Tom de Vries <tom@codesourcery.com>
13472 PR rtl-optimization/61605
13473 * regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p. Don't
13474 notice stores for noops. Don't regard noops as copies.
13476 2014-10-17 Uros Bizjak <ubizjak@gmail.com>
13478 * config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
13479 register in a special way.
13480 (__cpuid_count): Ditto.
13481 * config/i386/driver-i386.h: Protect with
13482 "#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
13483 (host_detect_local_cpu): Mention that GCC with non-fixed %ebx
13484 is required to compile the function.
13486 2014-10-16 DJ Delorie <dj@redhat.com>
13488 * flag-types.h (sanitize_code): Don't assume targets have 32-bit
13491 * config/rs6000/rs6000-c.c (rid_int128): New.
13492 (rs6000_macro_to_expand): Use instead of RID_INT128.
13494 2014-10-16 Andrew MacLeod <amacleod@redhat.com>
13496 * function.h: Flatten file. Remove includes, adjust prototypes to
13497 reflect only what is in function.h.
13498 (enum direction, struct args_size, struct locate_and_pad_arg_data,
13499 ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate
13501 (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h.
13502 (optimize_function_for_size_p, optimize_function_for_speed_p): Move
13503 prototypes to predict.h.
13504 (init_varasm_status): Move prototype to varasm.h.
13505 * expr.h: Adjust include files.
13506 (enum direction, struct args_size, struct locate_and_pad_arg_data,
13507 ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move
13509 (locate_and_pad_parm): Move prototype to function.h.
13510 * rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD,
13511 assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type,
13512 assign_temp, reposition_prologue_and_epilogue_notes,
13513 prologue_epilogue_contains, sibcall_epilogue_contains,
13514 update_temp_slot_address, maybe_copy_prologue_epilogue_insn,
13515 set_return_jump_label): Move prototypes to function.h.
13516 * predict.h (optimize_function_for_size_p,
13517 optimize_function_for_speed_p): Relocate prototypes from function.h.
13518 * shrink-wrap.h (emit_return_into_block, active_insn_between,
13519 convert_jumps_to_returns, emit_return_for_exit): Move prototypes to
13521 * varasm.h (init_varasm_status): Relocate prototype from function.h.
13522 * genattrtab.c (write_header): Add predict.h to include list.
13523 * genconditions.c (write_header): Add predict.h to include list.
13524 * genemit.c (main): Adjust header file includes.
13525 * gengtype.c (ifiles): Add flattened function.h header files.
13526 * genoutput.c (output_prologue): Add predict.h to include list.
13527 * genpreds.c (write_insn_preds_c): Adjust header file includes.
13528 * genrecog.c (write_header): Add flattened function.h header files.
13529 * alias.c: Adjust include files.
13530 * auto-inc-dec.c: Likewise.
13531 * basic-block.h: Likewise.
13532 * bb-reorder.c: Likewise.
13533 * bt-load.c: Likewise.
13534 * builtins.c: Likewise.
13535 * caller-save.c: Likewise.
13536 * calls.c: Likewise.
13537 * cfgbuild.c: Likewise.
13538 * cfgcleanup.c: Likewise.
13539 * cfgexpand.c: Likewise.
13540 * cfgloop.c: Likewise.
13541 * cfgloop.h: Likewise.
13542 * cfgrtl.c: Likewise.
13543 * cgraph.h: Likewise.
13544 * cgraphclones.c: Likewise.
13545 * cgraphunit.c: Likewise.
13546 * combine-stack-adj.c: Likewise.
13547 * combine.c: Likewise.
13548 * coverage.c: Likewise.
13549 * cprop.c: Likewise.
13551 * cselib.c: Likewise.
13552 * dbxout.c: Likewise.
13554 * df-core.c: Likewise.
13555 * df-problems.c: Likewise.
13556 * df-scan.c: Likewise.
13557 * dojump.c: Likewise.
13558 * dwarf2cfi.c: Likewise.
13559 * dwarf2out.c: Likewise.
13560 * emit-rtl.c: Likewise.
13561 * except.c: Likewise.
13562 * explow.c: Likewise.
13563 * expr.c: Likewise.
13564 * final.c: Likewise.
13565 * function.c: Likewise.
13566 * gcse.c: Likewise.
13567 * gimple-fold.c: Likewise.
13568 * gimple-low.c: Likewise.
13569 * gimple-streamer.h: Likewise.
13570 * haifa-sched.c: Likewise.
13571 * ifcvt.c: Likewise.
13573 * jump.c: Likewise.
13575 * loop-invariant.c: Likewise.
13576 * lra-assigns.c: Likewise.
13577 * lra-coalesce.c: Likewise.
13578 * lra-constraints.c: Likewise.
13579 * lra-eliminations.c: Likewise.
13580 * lra-lives.c: Likewise.
13581 * lra-spills.c: Likewise.
13583 * lto-cgraph.c: Likewise.
13584 * lto-section-in.c: Likewise.
13585 * lto-section-out.c: Likewise.
13586 * lto-streamer-in.c: Likewise.
13587 * lto-streamer-out.c: Likewise.
13588 * mode-switching.c: Likewise.
13589 * modulo-sched.c: Likewise.
13590 * omp-low.c: Likewise.
13591 * optabs.c: Likewise.
13592 * passes.c: Likewise.
13593 * postreload-gcse.c: Likewise.
13594 * postreload.c: Likewise.
13595 * predict.c: Likewise.
13596 * profile.c: Likewise.
13597 * recog.c: Likewise.
13599 * reg-stack.c: Likewise.
13600 * regcprop.c: Likewise.
13601 * reginfo.c: Likewise.
13602 * regrename.c: Likewise.
13603 * reload.c: Likewise.
13604 * reload1.c: Likewise.
13605 * reorg.c: Likewise.
13606 * resource.c: Likewise.
13607 * rtlanal.c: Likewise.
13608 * sched-deps.c: Likewise.
13609 * sched-ebb.c: Likewise.
13610 * sched-rgn.c: Likewise.
13611 * sel-sched-dump.c: Likewise.
13612 * sel-sched-ir.c: Likewise.
13613 * sel-sched.c: Likewise.
13614 * shrink-wrap.c: Likewise.
13615 * simplify-rtx.c: Likewise.
13616 * statistics.c: Likewise.
13617 * stmt.c: Likewise.
13618 * stor-layout.c: Likewise.
13619 * store-motion.c: Likewise.
13620 * symtab.c: Likewise.
13621 * targhooks.c: Likewise.
13622 * toplev.c: Likewise.
13623 * trans-mem.c: Likewise.
13624 * tree-cfg.c: Likewise.
13625 * tree-cfgcleanup.c: Likewise.
13626 * tree-dfa.c: Likewise.
13627 * tree-eh.c: Likewise.
13628 * tree-inline.c: Likewise.
13629 * tree-into-ssa.c: Likewise.
13630 * tree-nested.c: Likewise.
13631 * tree-nrv.c: Likewise.
13632 * tree-profile.c: Likewise.
13633 * tree-ssa-alias.c: Likewise.
13634 * tree-ssa-ccp.c: Likewise.
13635 * tree-ssa-copy.c: Likewise.
13636 * tree-ssa-copyrename.c: Likewise.
13637 * tree-ssa-dom.c: Likewise.
13638 * tree-ssa-operands.c: Likewise.
13639 * tree-ssa-propagate.c: Likewise.
13640 * tree-ssa-structalias.c: Likewise.
13641 * tree-ssa-tail-merge.c: Likewise.
13642 * tree-ssa-threadedge.c: Likewise.
13643 * tree-ssa-threadupdate.c: Likewise.
13644 * tree-ssa-uncprop.c: Likewise.
13645 * tree-ssa-uninit.c: Likewise.
13646 * tree-ssa.c: Likewise.
13647 * tree-stdarg.c: Likewise.
13648 * tree-tailcall.c: Likewise.
13649 * tree.c: Likewise.
13650 * tsan.c: Likewise.
13651 * valtrack.c: Likewise.
13652 * varasm.c: Likewise.
13653 * vmsdbgout.c: Likewise.
13655 * config/aarch64/aarch64.c: Add flattened includes from function.h.
13656 * config/alpha/alpha.c: Likewise.
13657 * config/arc/arc.c: Likewise.
13658 * config/arm/arm.c: Likewise.
13659 * config/avr/avr-log.c: Likewise.
13660 * config/avr/avr.c: Likewise.
13661 * config/bfin/bfin.c: Likewise.
13662 * config/c6x/c6x.c: Likewise.
13663 * config/cr16/cr16.c: Likewise.
13664 * config/cris/cris.c: Likewise.
13665 * config/darwin.c: Likewise.
13666 * config/epiphany/epiphany.c: Likewise.
13667 * config/epiphany/mode-switch-use.c: Likewise.
13668 * config/epiphany/resolve-sw-modes.c: Likewise.
13669 * config/fr30/fr30.c: Likewise.
13670 * config/frv/frv.c: Likewise.
13671 * config/h8300/h8300.c: Likewise.
13672 * config/i386/i386.c: Likewise.
13673 * config/ia64/ia64.c: Likewise.
13674 * config/iq2000/iq2000.c: Likewise.
13675 * config/lm32/lm32.c: Likewise.
13676 * config/m32c/m32c.c: Likewise.
13677 * config/m32r/m32r.c: Likewise.
13678 * config/m68k/m68k.c: Likewise.
13679 * config/mcore/mcore.c: Likewise.
13680 * config/mep/mep-pragma.c: Likewise.
13681 * config/mep/mep.c: Likewise.
13682 * config/microblaze/microblaze.c: Likewise.
13683 * config/mips/mips.c: Likewise.
13684 * config/mmix/mmix.c: Likewise.
13685 * config/mn10300/mn10300.c: Likewise.
13686 * config/moxie/moxie.c: Likewise.
13687 * config/msp430/msp430.c: Likewise.
13688 * config/nds32/nds32-cost.c: Likewise.
13689 * config/nds32/nds32-fp-as-gp.c: Likewise.
13690 * config/nds32/nds32-intrinsic.c: Likewise.
13691 * config/nds32/nds32-isr.c: Likewise.
13692 * config/nds32/nds32-md-auxiliary.c: Likewise.
13693 * config/nds32/nds32-memory-manipulation.c: Likewise.
13694 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
13695 * config/nds32/nds32-predicates.c: Likewise.
13696 * config/nds32/nds32.c: Likewise.
13697 * config/nios2/nios2.c: Likewise.
13698 * config/pa/pa.c: Likewise.
13699 * config/pdp11/pdp11.c: Likewise.
13700 * config/rl78/rl78.c: Likewise.
13701 * config/rs6000/rs6000.c: Likewise.
13702 * config/rx/rx.c: Likewise.
13703 * config/s390/s390.c: Likewise.
13704 * config/score/score.c: Likewise.
13705 * config/sh/sh.c: Likewise.
13706 * config/sparc/sparc.c: Likewise.
13707 * config/spu/spu.c: Likewise.
13708 * config/stormy16/stormy16.c: Likewise.
13709 * config/tilegx/tilegx.c: Likewise.
13710 * config/tilepro/tilepro.c: Likewise.
13711 * config/v850/v850.c: Likewise.
13712 * config/vax/vax.c: Likewise.
13713 * config/xtensa/xtensa.c: Likewise.
13715 2014-10-16 Richard Earnshaw <rearnsha@arm.com>
13717 * config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
13718 (TARGET_LEGITIMIZE_ADDRESS): Redefine.
13720 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
13722 * config/sh/sh-protos.h (fldi_ok): Remove.
13723 * config/sh/sh.c (fldi_ok): Likewise.
13724 (sh_secondary_reload): Don't use fldi_ok.
13725 * config/sh/constraints.md (G constraint, H constraint): Don't use
13728 2014-10-16 Martin Liska <mliska@suse.cz>
13730 * ipa-icf.c (sem_item_optimizer::process_cong_reduction):
13731 Cast to unsigned long.
13732 (sem_item_optimizer::dump_cong_classes): Likewise.
13734 2014-10-16 Tom de Vries <tom@codesourcery.com>
13736 * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
13737 with SSA_NAME_IN_FREELIST.
13739 2014-10-16 Richard Biener <rguenther@suse.de>
13741 PR middle-end/63554
13742 * builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk.
13743 (fold_builtin_strncat_chk): Move ...
13744 * gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here.
13745 (gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk.
13747 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
13750 * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set
13753 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
13754 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13755 Anna Tikhonova <anna.tikhonova@intel.com>
13756 Ilya Tocar <ilya.tocar@intel.com>
13757 Andrey Turetskiy <andrey.turetskiy@intel.com>
13758 Ilya Verbin <ilya.verbin@intel.com>
13759 Kirill Yukhin <kirill.yukhin@intel.com>
13760 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13762 * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI,
13765 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
13766 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13767 Anna Tikhonova <anna.tikhonova@intel.com>
13768 Ilya Tocar <ilya.tocar@intel.com>
13769 Andrey Turetskiy <andrey.turetskiy@intel.com>
13770 Ilya Verbin <ilya.verbin@intel.com>
13771 Kirill Yukhin <kirill.yukhin@intel.com>
13772 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13774 * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF,
13775 V16SI, V32HI, V64QI modes.
13777 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
13780 * config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop,
13781 expand_sf_binop, expand_df_unop, expand_df_binop): Remove.
13783 * config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern
13784 to match fp insn patterns.
13785 (calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore
13787 (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop,
13788 expand_df_unop, expand_df_binop): Remove.
13789 (sh_conditional_register_usage): Mark FPSCR_MODES_REG and
13790 FPSCR_STAT_REG as not call clobbered.
13791 (sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of
13792 invoking fpscr_set_from_mem.
13794 * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6.
13795 (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and
13797 (REGISTER_NAMES): Adjust.
13798 (SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
13799 (FIRST_PSEUDO_REGISTER): Increase to 156.
13800 (DWARF_FRAME_REGISTERS): Define as 153 to keep the original value.
13801 (FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and
13803 (REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include
13804 FPSCR_MODES_REG and FPSCR_STAT_REG.
13805 (REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
13807 * config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR,
13808 FPSCR_SZ): Add new constants.
13809 (UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants.
13811 (movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch.
13812 (fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG.
13813 Use TARGET_FPU_ANY condition.
13814 (fpu_switch peephole2): Remove.
13815 (fpu_switch split): Use simple_mem_operand to capture the mem and
13816 adjust split implementation.
13817 (extend_psi_si, truncate_si_psi): New insns.
13818 (toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants. Add
13819 set of FPSCR_MODES_REG.
13821 (push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie,
13822 reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel,
13823 calli_pcrel, call_pcrel, call_compact, call_compact_rettramp,
13824 call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel,
13825 call_value_compact, call_value_compact_rettramp, call,
13826 call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli,
13827 sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact,
13828 sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
13829 sibcall_value_compact, sibcall_value, call_value_pop_compact,
13830 call_value_pop_compact_rettramp, various unnamed splits):
13831 Replace use of FPSCR_REG with use of FPSCR_MODES_REG. Adjust gen_*
13834 (floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4.
13835 (fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4.
13836 (cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t.
13837 (cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t.
13838 (ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t.
13840 (udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i,
13841 *fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t,
13842 cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i,
13843 subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i,
13844 cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4,
13845 truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG
13846 and use of FPSCR_MODES_REG. Adjust gen_* function uses.
13848 2014-10-16 Martin Liska <mliska@suse.cz>
13849 Jan Hubicka <hubicka@ucw.cz>
13851 * Makefile.in: New object files included.
13852 * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged
13854 (verify_edge_corresponds_to_fndecl): More sensitive verification
13855 of nodes that are merged by IPA ICF.
13856 * cgraph.h (cgraph_node::num_references): New function.
13857 * cgraphunit.c (cgraph_node::expand_thunk): White space fixed.
13858 * common.opt: New options ipa-icf, ipa-icf-functions and
13859 ipa-icf-variables introduced.
13860 * doc/invoke.texi: Documentation of new options introduced.
13861 * ipa-icf-gimple.c: New file.
13862 * ipa-icf-gimple.h: New file.
13863 * ipa-icf.c: New file.
13864 * ipa-icf.h: New file.
13865 * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added.
13866 (input_overwrite_node): Likewise.
13867 * lto-section-in.c: New icf section added.
13868 * lto-streamer.h (enum lto_section_type): Likewise.
13869 * opts.c (common_handle_option): New option added.
13870 * passes.def: New pass included.
13871 * timevar.def: Time variable for IPA ICF added.
13872 * tree-pass.h: New IPA ICF pass entry point added.
13874 2014-10-16 Richard Biener <rguenther@suse.de>
13876 PR tree-optimization/63168
13877 * tree-cfg.c (gimple_can_merge_blocks_p): Only protect
13878 latches if after merging they are no longer simple.
13879 * cfghooks.c (merge_blocks): Handle merging a latch block
13880 into another block.
13882 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
13883 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13884 Anna Tikhonova <anna.tikhonova@intel.com>
13885 Ilya Tocar <ilya.tocar@intel.com>
13886 Andrey Turetskiy <andrey.turetskiy@intel.com>
13887 Ilya Verbin <ilya.verbin@intel.com>
13888 Kirill Yukhin <kirill.yukhin@intel.com>
13889 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13891 * config/i386/sse.md
13892 (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to
13893 support AVX-512VL instructions.
13895 2014-10-16 DJ Delorie <dj@redhat.com>
13897 * tree-core.h: Fix comment to not assume pointers are multiples of
13900 2014-10-15 Tom Tromey <tromey@redhat.com>
13902 * timevar.h (class auto_timevar): New class.
13904 2014-10-15 Uros Bizjak <ubizjak@gmail.com>
13907 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
13908 Remove the second alternative.
13909 (regprefix): Remove mode attribute.
13910 (atomic_compare_and_swap<mode>): Do not fixup operand 2.
13911 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove.
13914 2013-11-05 Ian Lance Taylor <iant@google.com>
13916 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
13917 If possible, add .cfi directives to record change to bx.
13918 * config/i386/i386.c (ix86_emit_cfi): New function.
13919 * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
13921 2014-10-15 Jan Hubicka <hubicka@ucw.cz>
13924 * cgraphclones.c (duplicate_thunk_for_node): Get body to have args
13926 * lto-streamer-out.c (lto_output): Handle correctly thunks that was born
13929 2014-10-15 Vladimir Makarov <vmakarov@redhat.com>
13931 PR rtl-optimization/63448
13932 * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
13933 (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
13934 (LRA_MAX_INHERITANCE_PASSES): Use it.
13935 (lra_constraint_iter_after_spill): Remove.
13936 (lra_assignment_iter): New.
13937 (lra_assignment_iter_after_spill): New.
13938 * lra-assigns.c (lra_assignment_iter): New.
13939 (lra_assignment_iter_after_spill): New.
13940 (former_reload_pseudo_spill_p): New.
13941 (spill_for): Set up former_reload_pseudo_spill_p.
13942 (setup_live_pseudos_and_spill_after_risky): Ditto.
13943 (assign_by_spills): Ditto.
13944 (lra_assign): Increment lra_assignment_iter. Print the iteration
13945 number. Reset former_reload_pseudo_spill_p. Check
13946 lra_assignment_iter_after_spill.
13947 * lra.c (lra): Remove lra_constraint_iter_after_spill. Initialize
13948 lra_assignment_iter and lra_assignment_iter_after_spill.
13949 * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
13950 (lra_constraints): Remove code with
13951 lra_assignment_iter_after_spill.
13953 2014-10-15 Teresa Johnson <tejohnson@google.com>
13956 * tree-ssa-threadupdate.c (recompute_probabilities): Better
13959 2014-10-15 Renlin Li <renlin.li@arm.com>
13961 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
13962 __ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE,
13963 __ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV,
13964 __ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T.
13966 2014-10-15 Richard Biener <rguenther@suse.de>
13968 * gimple-fold.c (gimple_fold_call): Properly keep virtual
13969 SSA form up-to-date when devirtualizing a call to
13970 __builtin_unreachable and avoid fixing up EH info here.
13972 2014-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
13973 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13974 Anna Tikhonova <anna.tikhonova@intel.com>
13975 Ilya Tocar <ilya.tocar@intel.com>
13976 Andrey Turetskiy <andrey.turetskiy@intel.com>
13977 Ilya Verbin <ilya.verbin@intel.com>
13978 Kirill Yukhin <kirill.yukhin@intel.com>
13979 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13981 * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend
13982 to support AVX-512BW.
13983 (define_mode_iterator VI124_AVX2_48_AVX512F): Remove.
13984 (define_expand "<plusminus_insn><mode>3"): Remove masking support.
13985 (define_insn "*<plusminus_insn><mode>3"): Ditto.
13986 (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New.
13987 (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
13988 (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto.
13989 (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
13990 (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support.
13991 (define_insn "*andnot<mode>3"): Ditto.
13992 (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New.
13993 (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto.
13994 (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto.
13995 (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto.
13996 (define_insn "*abs<mode>2"): Remove masking support.
13997 (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New.
13998 (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto.
13999 (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator.
14001 2014-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
14002 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14003 Anna Tikhonova <anna.tikhonova@intel.com>
14004 Ilya Tocar <ilya.tocar@intel.com>
14005 Andrey Turetskiy <andrey.turetskiy@intel.com>
14006 Ilya Verbin <ilya.verbin@intel.com>
14007 Kirill Yukhin <kirill.yukhin@intel.com>
14008 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14010 * config/i386/predicates.md (define_predicate "constm1_operand"): New.
14011 * config/i386/sse.md
14012 (define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK.
14013 (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New.
14014 (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto.
14015 (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
14016 (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
14017 (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
14018 (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
14020 2014-10-15 Renlin Li <renlin.li@arm.com>
14022 * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.
14024 2014-10-15 Jakub Jelinek <jakub@redhat.com>
14026 * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform
14027 MINUS_EXPR in unsigned type to avoid undefined behavior.
14029 2014-10-15 Eric Botcazou <ebotcazou@adacore.com>
14031 * stor-layout.c (self_referential_size): Do not promote arguments.
14033 2014-10-15 Marek Polacek <polacek@redhat.com>
14035 * doc/invoke.texi: Update to reflect that GNU11 is the default
14037 * c-common.h (c_language_kind): Update comment.
14039 2014-10-15 Richard Biener <rguenther@suse.de>
14041 * hash-table.c: Include bconfig.h if building for the host.
14042 * hash-table.h: Do not include ggc.h on the host but just declare
14043 a few ggc allocation templates.
14045 2014-10-15 Joern Rennecke <joern.rennecke@embecosm.com>
14046 Jeff Law <law@redhat.com>
14048 * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
14049 multiple hard registers, use smaller mode derived from MODE.
14051 2014-10-15 Andreas Schwab <schwab@suse.de>
14053 * explow.c (convert_memory_address_addr_space_1): Mark in_const
14054 as ATTRIBUTE_UNUSED.
14056 2014-10-14 Jan Hubicka <hubicka@ucw.cz>
14058 * loop-unroll.c: (decide_unrolling_and_peeling): Rename to
14059 (decide_unrolling): ... this one.
14060 (peel_loops_completely): Remove.
14061 (decide_peel_simple): Remove.
14062 (decide_peel_once_rolling): Remove.
14063 (decide_peel_completely): Remove.
14064 (peel_loop_simple): Remove.
14065 (peel_loop_completely): Remove.
14066 (unroll_and_peel_loops): Rename to ...
14067 (unroll_loops): ... this one; handle only unrolling.
14068 * cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and
14070 (UAP_PEEL): Remove.
14071 (unroll_and_peel_loops): Remove.
14072 (unroll_loops): New.
14073 * passes.def: Replace
14074 pass_rtl_unroll_and_peel_loops by pass_rtl_unroll_loops.
14075 * loop-init.c (gate_rtl_unroll_and_peel_loops,
14076 rtl_unroll_and_peel_loops): Rename to ...
14077 (gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update.
14078 (pass_rtl_unroll_and_peel_loops): Rename to ...
14079 (pass_rtl_unroll_loops): ... this one.
14080 * tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove.
14081 (make_pass_rtl_unroll_loops): New.
14082 * tree-ssa-loop-ivcanon.c: (estimated_peeled_sequence_size, try_peel_loop): New.
14083 (canonicalize_loop_induction_variables): Update.
14085 2014-10-14 Max Filippov <jcmvbkbc@gmail.com>
14087 * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro.
14088 * config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on
14089 !TARGET_HARD_FLOAT_POSTINC.
14090 (*lsip, *ssip): new instructions.
14092 2014-10-14 Max Filippov <jcmvbkbc@gmail.com>
14094 * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
14097 2014-10-14 Andrew Pinski <apinski@cavium.com>
14099 * explow.c (convert_memory_address_addr_space): Rename to ...
14100 (convert_memory_address_addr_space_1): This. Add in_const argument.
14101 Inside a CONST RTL, permute the conversion and addition of constant
14102 for zero and sign extended pointers.
14103 (convert_memory_address_addr_space): New function.
14105 2014-10-14 Andrew Pinski <apinski@cavium.com>
14108 2011-08-19 H.J. Lu <hongjiu.lu@intel.com>
14110 PR middle-end/49721
14111 * explow.c (convert_memory_address_addr_space): Also permute the
14112 conversion and addition of constant for zero-extend.
14114 2014-10-14 DJ Delorie <dj@redhat.com>
14116 * config/msp430/msp430-modes.def (PSI): Add.
14118 * config/msp430/msp430-protos.h (msp430_hard_regno_nregs_has_padding): New.
14119 (msp430_hard_regno_nregs_with_padding): New.
14120 * config/msp430/msp430.c (msp430_scalar_mode_supported_p): New.
14121 (msp430_hard_regno_nregs_has_padding): New.
14122 (msp430_hard_regno_nregs_with_padding): New.
14123 (msp430_unwind_word_mode): Use PSImode instead of SImode.
14124 (msp430_addr_space_legitimate_address_p): New.
14125 (msp430_asm_integer): New.
14126 (msp430_init_dwarf_reg_sizes_extra): New.
14127 (msp430_print_operand): Use X suffix for PSImode even in small model.
14128 * config/msp430/msp430.h (POINTER_SIZE): Use 20 bits, not 32.
14129 (PTR_SIZE): ...but 4 bytes for EH.
14130 (SIZE_TYPE): Use __int20.
14131 (PTRDIFF_TYPE): Likewise.
14132 (INCOMING_FRAME_SP_OFFSET): Adjust.
14133 * config/msp430/msp430.md (movqi_topbyte): New.
14134 (movpsi): Use fixed suffixes.
14135 (movsipsi2): Enable for 430X, not large model.
14136 (extendhipsi2): Likewise.
14137 (zero_extendhisi2): Likewise.
14138 (zero_extendhisipsi2): Likewise.
14139 (extend_and_shift1_hipsi2): Likewise.
14140 (extendpsisi2): Likewise.
14141 (*bitbranch<mode>4_z): Fix suffix logic.
14143 2014-10-14 Eric Botcazou <ebotcazou@adacore.com>
14146 * tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really
14147 do not choke on null node.
14148 <VAR_DECL>: Likewise.
14150 2014-10-14 DJ Delorie <dj@redhat.com>
14152 * machmode.h (int_n_data_t): New.
14153 (int_n_enabled_p): New.
14155 * tree.c (int_n_enabled_p): New.
14156 (int_n_trees): New.
14157 (make_or_reuse_type): Check for all __intN types, not just
14159 (build_common_tree_nodes): Likewise. Also fill in integer_typs[]
14161 * tree.h (int128_integer_type_node): Remove.
14162 (int128_unsigned_type_node): Remove.
14163 (int_n_trees_t): New.
14164 (int_n_enabled_p): New.
14165 (int_n_trees): New.
14166 * toplev.c (standard_type_bitsize): New.
14167 (do_compile): Check which __intN types are enabled for the current
14169 * builtin-types.def (BT_INT128): Remove.
14170 (BT_UINT128): Remove.
14171 * machmode.def: Add macro to create __int128 for all targets.
14172 * stor-layout.c (mode_for_size): Support __intN types.
14173 (smallest_mode_for_size): Likewise.
14174 (initialize_sizetypes): Support __intN types.
14175 * genmodes.c (struct mode_data): Add int_n field.
14176 (blank_mode): Likewise.
14179 (emit_insn_modes_h): Count __intN entries and define
14181 (emit_mode_int_n): New.
14182 (emit_insn_modes_c): Call it.
14183 * gimple.c (gimple_signed_or_unsigned_type): Check for all __intN
14184 types, not just __int128.
14185 * tree-core.h (integer_type_kind): Remove __int128-specific
14186 entries, reserve spots for __intN entries.
14188 * config/msp430/msp430-modes.def (PSI): Add.
14190 2014-10-14 Kito Cheng <kito@0xlab.org>
14192 * ira.c: Fix typo in comment.
14194 * ira-build.c: Ditto.
14195 * ira-color.c: Ditto.
14196 * ira-emit.c: Ditto.
14197 * ira-int.h: Ditto.
14198 * ira-lives.c: Ditto.
14200 2014-10-14 Uros Bizjak <ubizjak@gmail.com>
14202 PR rtl-optimization/63475
14203 * alias.c (true_dependence_1): Always use get_addr to extract
14204 true address operands from x_addr and mem_addr. Use extracted
14205 address operands to check for references with alignment ANDs.
14206 Use extracted address operands with find_base_term and
14207 base_alias_check. For noncanonicalized operands call canon_rtx with
14208 extracted address operand.
14209 (write_dependence_1): Ditto.
14210 (may_alias_p): Ditto. Remove unused calls to canon_rtx.
14212 2014-10-14 Evgeny Stupachenko <evstupac@gmail.com>
14215 * config/i386/i386.c (ix86_expand_split_stack_prologue): Make
14218 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14219 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14220 Anna Tikhonova <anna.tikhonova@intel.com>
14221 Ilya Tocar <ilya.tocar@intel.com>
14222 Andrey Turetskiy <andrey.turetskiy@intel.com>
14223 Ilya Verbin <ilya.verbin@intel.com>
14224 Kirill Yukhin <kirill.yukhin@intel.com>
14225 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14227 * config/i386/i386.c
14228 (ix86_expand_sse_movcc): Handle V64QI and V32HI mode.
14229 (ix86_expand_int_vcond): Ditto.
14231 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14232 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14233 Anna Tikhonova <anna.tikhonova@intel.com>
14234 Ilya Tocar <ilya.tocar@intel.com>
14235 Andrey Turetskiy <andrey.turetskiy@intel.com>
14236 Ilya Verbin <ilya.verbin@intel.com>
14237 Kirill Yukhin <kirill.yukhin@intel.com>
14238 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14240 * config/i386/i386.c
14241 (emit_reduc_half): Handle V64QI and V32HI mode.
14242 * config/i386/sse.md
14243 (define_mode_iterator VI_AVX512BW): New.
14244 (define_expand "reduc_<code>_<mode>"): Use VI512_48F_12BW.
14246 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14247 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14248 Anna Tikhonova <anna.tikhonova@intel.com>
14249 Ilya Tocar <ilya.tocar@intel.com>
14250 Andrey Turetskiy <andrey.turetskiy@intel.com>
14251 Ilya Verbin <ilya.verbin@intel.com>
14252 Kirill Yukhin <kirill.yukhin@intel.com>
14253 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14255 * config/i386/sse.md
14256 (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes.
14258 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14259 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14260 Anna Tikhonova <anna.tikhonova@intel.com>
14261 Ilya Tocar <ilya.tocar@intel.com>
14262 Andrey Turetskiy <andrey.turetskiy@intel.com>
14263 Ilya Verbin <ilya.verbin@intel.com>
14264 Kirill Yukhin <kirill.yukhin@intel.com>
14265 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14267 * config/i386/i386.c
14268 (ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes.
14269 * config/i386/sse.md
14270 (define_mode_iterator VI): Add V64QI and V32HI modes.
14272 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14273 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14274 Anna Tikhonova <anna.tikhonova@intel.com>
14275 Ilya Tocar <ilya.tocar@intel.com>
14276 Andrey Turetskiy <andrey.turetskiy@intel.com>
14277 Ilya Verbin <ilya.verbin@intel.com>
14278 Kirill Yukhin <kirill.yukhin@intel.com>
14279 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14281 * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove.
14283 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14284 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14285 Anna Tikhonova <anna.tikhonova@intel.com>
14286 Ilya Tocar <ilya.tocar@intel.com>
14287 Andrey Turetskiy <andrey.turetskiy@intel.com>
14288 Ilya Verbin <ilya.verbin@intel.com>
14289 Kirill Yukhin <kirill.yukhin@intel.com>
14290 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14292 * config/i386/sse.md
14293 (define_insn "*sse4_1_<code><mode>3<mask_name>"): Add masking.
14294 (define_insn "*sse4_1_<code><mode>3<mask_name>"): Ditto.
14296 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14297 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14298 Anna Tikhonova <anna.tikhonova@intel.com>
14299 Ilya Tocar <ilya.tocar@intel.com>
14300 Andrey Turetskiy <andrey.turetskiy@intel.com>
14301 Ilya Verbin <ilya.verbin@intel.com>
14302 Kirill Yukhin <kirill.yukhin@intel.com>
14303 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14305 * config/i386/sse.md
14306 (define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New.
14307 (define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto.
14309 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14310 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14311 Anna Tikhonova <anna.tikhonova@intel.com>
14312 Ilya Tocar <ilya.tocar@intel.com>
14313 Andrey Turetskiy <andrey.turetskiy@intel.com>
14314 Ilya Verbin <ilya.verbin@intel.com>
14315 Kirill Yukhin <kirill.yukhin@intel.com>
14316 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14318 * config/i386/sse.md
14319 (define_c_enum "unspec"): Add UNSPEC_PMADDWD512.
14320 (define_mode_iterator VI2_AVX2): Add V32HI mode.
14321 (define_expand "mul<mode>3<mask_name>"): Add masking.
14322 (define_insn "*mul<mode>3<mask_name>"): Ditto.
14323 (define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto.
14324 (define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto.
14325 (define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New.
14326 (define_mode_attr SDOT_PMADD_SUF): Ditto.
14327 (define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>.
14328 (define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking.
14329 (define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto.
14330 (define_insn "avx2_packusdw"): Delete.
14331 (define_insn "sse4_1_packusdw"): Ditto.
14332 (define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New.
14334 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14335 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14336 Anna Tikhonova <anna.tikhonova@intel.com>
14337 Ilya Tocar <ilya.tocar@intel.com>
14338 Andrey Turetskiy <andrey.turetskiy@intel.com>
14339 Ilya Verbin <ilya.verbin@intel.com>
14340 Kirill Yukhin <kirill.yukhin@intel.com>
14341 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14343 * config/i386/sse.md
14344 (define_insn "vec_dup<mode>"): Update constraints.
14346 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14347 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14348 Anna Tikhonova <anna.tikhonova@intel.com>
14349 Ilya Tocar <ilya.tocar@intel.com>
14350 Andrey Turetskiy <andrey.turetskiy@intel.com>
14351 Ilya Verbin <ilya.verbin@intel.com>
14352 Kirill Yukhin <kirill.yukhin@intel.com>
14353 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14355 * config/i386/sse.md
14356 (define_mode_iterator SSESCALARMODE): Add V4TI mode.
14357 (define_insn "<ssse3_avx2>_palignr<mode>_mask"): New.
14358 (define_insn "<ssse3_avx2>_palignr<mode>"): Add EVEX version.
14360 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14361 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14362 Anna Tikhonova <anna.tikhonova@intel.com>
14363 Ilya Tocar <ilya.tocar@intel.com>
14364 Andrey Turetskiy <andrey.turetskiy@intel.com>
14365 Ilya Verbin <ilya.verbin@intel.com>
14366 Kirill Yukhin <kirill.yukhin@intel.com>
14367 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14369 * config/i386/sse.md
14370 (define_expand "mul<mode>3<mask_name>"): Add masking.
14372 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14373 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14374 Anna Tikhonova <anna.tikhonova@intel.com>
14375 Ilya Tocar <ilya.tocar@intel.com>
14376 Andrey Turetskiy <andrey.turetskiy@intel.com>
14377 Ilya Verbin <ilya.verbin@intel.com>
14378 Kirill Yukhin <kirill.yukhin@intel.com>
14379 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14381 * config/i386/sse.md
14382 (define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking.
14383 (define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto.
14385 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14386 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14387 Anna Tikhonova <anna.tikhonova@intel.com>
14388 Ilya Tocar <ilya.tocar@intel.com>
14389 Andrey Turetskiy <andrey.turetskiy@intel.com>
14390 Ilya Verbin <ilya.verbin@intel.com>
14391 Kirill Yukhin <kirill.yukhin@intel.com>
14392 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14394 * config/i386/sse.md
14395 (define_c_enum "unspec"): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512.
14396 (define_insn "avx512bw_pmaddubsw512<mode><mask_name>"): New.
14397 (define_insn "<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>"):
14400 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14401 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14402 Anna Tikhonova <anna.tikhonova@intel.com>
14403 Ilya Tocar <ilya.tocar@intel.com>
14404 Andrey Turetskiy <andrey.turetskiy@intel.com>
14405 Ilya Verbin <ilya.verbin@intel.com>
14406 Kirill Yukhin <kirill.yukhin@intel.com>
14407 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14409 * config/i386/sse.md
14410 (define_insn "<sse>_andnot<VF_128_256:mode>3<mask_name>"): Add masking,
14411 use VF_128_256 mode iterator and update assembler emit code.
14412 (define_insn "<sse>_andnot<VF_512:mode>3<mask_name>"): New.
14413 (define_expand "<any_logic:code><VF_128_256:mode>3<mask_name>"):
14414 Add masking, use VF_128_256 mode iterator.
14415 (define_expand "<any_logic:code><VF_512:mode>3<mask_name>"): New.
14416 (define_insn "*<any_logic:code><VF_128_256:mode>3<mask_name>"):
14417 Add masking, use VF_128_256 mode iterator and update assembler emit
14419 (define_insn "*<any_logic:code><VF_512:mode>3<mask_name>"): New.
14420 (define_mode_attr avx512flogicsuff): Delete.
14421 (define_insn "avx512f_<logic><mode>"): Ditto.
14422 (define_insn "*andnot<mode>3<mask_name>"): Update MODE_XI, MODE_OI,
14424 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
14426 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14427 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14428 Anna Tikhonova <anna.tikhonova@intel.com>
14429 Ilya Tocar <ilya.tocar@intel.com>
14430 Andrey Turetskiy <andrey.turetskiy@intel.com>
14431 Ilya Verbin <ilya.verbin@intel.com>
14432 Kirill Yukhin <kirill.yukhin@intel.com>
14433 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14435 * config/i386/sse.md
14436 (define_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete.
14437 (define_expand "vashr<mode>3<mask_name>"): Add masking,
14438 use VI12_128 mode iterator.
14439 (define_expand "ashrv2di3<mask_name>"): New.
14441 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14442 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14443 Anna Tikhonova <anna.tikhonova@intel.com>
14444 Ilya Tocar <ilya.tocar@intel.com>
14445 Andrey Turetskiy <andrey.turetskiy@intel.com>
14446 Ilya Verbin <ilya.verbin@intel.com>
14447 Kirill Yukhin <kirill.yukhin@intel.com>
14448 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14450 * config/i386/i386.c
14451 (ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask,
14452 CODE_FOR_avx512vl_cmpv8si3_mask, CODE_FOR_avx512vl_ucmpv4di3_mask,
14453 CODE_FOR_avx512vl_ucmpv8si3_mask, CODE_FOR_avx512vl_cmpv2di3_mask,
14454 CODE_FOR_avx512vl_cmpv4si3_mask, CODE_FOR_avx512vl_ucmpv2di3_mask,
14455 CODE_FOR_avx512vl_ucmpv4si3_mask.
14456 * config/i386/sse.md
14457 (define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"): Delete.
14458 "<avx512>_ucmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name>"):New.
14460 "<avx512>_ucmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name>"):Ditto.
14461 (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"): Ditto.
14462 (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"): Ditto.
14463 (define_insn "<avx512>_gt<mode>3<mask_scalar_merge_name>"): Ditto.
14464 (define_insn "<avx512>_testm<mode>3<mask_scalar_merge_name>"): Ditto.
14465 (define_insn "<avx512>_testnm<mode>3<mask_scalar_merge_name>"): Ditto.
14467 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14468 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14469 Anna Tikhonova <anna.tikhonova@intel.com>
14470 Ilya Tocar <ilya.tocar@intel.com>
14471 Andrey Turetskiy <andrey.turetskiy@intel.com>
14472 Ilya Verbin <ilya.verbin@intel.com>
14473 Kirill Yukhin <kirill.yukhin@intel.com>
14474 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14476 * config/i386/sse.md
14477 (define_expand "vec_widen_umult_even_v8si<mask_name>"): Add masking.
14478 (define_insn "*vec_widen_umult_even_v8si<mask_name>"): Ditto.
14479 (define_expand "vec_widen_umult_even_v4si<mask_name>"): Ditto.
14480 (define_insn "*vec_widen_umult_even_v4si<mask_name>"): Ditto.
14481 (define_expand "vec_widen_smult_even_v8si<mask_name>"): Ditto.
14482 (define_insn "*vec_widen_smult_even_v8si<mask_name>"): Ditto.
14483 (define_expand "sse4_1_mulv2siv2di3<mask_name>"): Ditto.
14484 (define_insn "*sse4_1_mulv2siv2di3<mask_name>"): Ditto.
14485 (define_insn "avx512dq_mul<mode>3<mask_name>"): New.
14487 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14488 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14489 Anna Tikhonova <anna.tikhonova@intel.com>
14490 Ilya Tocar <ilya.tocar@intel.com>
14491 Andrey Turetskiy <andrey.turetskiy@intel.com>
14492 Ilya Verbin <ilya.verbin@intel.com>
14493 Kirill Yukhin <kirill.yukhin@intel.com>
14494 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14496 * config/i386/sse.md
14497 (define_insn "avx512f_blendm<mode>"): Delete.
14498 (define_insn "<avx512>_blendm<VI48_AVX512VL:mode>"): New.
14499 (define_insn "<avx512>_blendm<VI12_AVX512VL:mode>"): Ditto..
14500 (define_mode_attr cmp_imm_predicate): Add V8SF, V4DF, V8SI, V4DI, V4SF,
14501 V2DF, V4SI, V2DI, V32HI, V64QI, V16HI, V32QI, V8HI, V16QI modes.
14503 "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"):
14506 "<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
14509 "<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
14511 (define_insn "<mask_codefor>avx512f_vec_dup<mode><mask_name>"): Delete.
14512 (define_insn "<avx512>_vec_dup<V48_AVX512VL:mode><mask_name>"): New.
14513 (define_insn "<avx512>_vec_dup<V12_AVX512VL:mode><mask_name>"): Ditto.
14514 (define_insn "<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>"):
14517 "<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"):
14520 "<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"):
14522 (define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"):
14525 "<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"):
14528 "<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"):
14531 2014-10-14 Richard Biener <rguenther@suse.de>
14533 PR tree-optimization/63512
14534 * tree-ssa-pre.c (create_expression_by_pieces): Mark stmts
14537 2014-10-14 Oleg Endo <olegendo@gcc.gnu.org>
14540 * config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2,
14541 abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute. Remove use
14543 (negsf2_i): Rename to *negsf2_i.
14544 (abssf2_i): Rename to *abssf2_i.
14545 (negdf2_i): Rename to *negdf2_i.
14546 (absdf2_i): Rename to *absdf2_i.
14548 2014-10-14 Felix Yang <felix.yang@huawei.com>
14549 Jeff Law <law@redhat.com>
14551 * ira.c (struct equivalence): Change member "is_arg_equivalence" and
14552 "replace" into boolean bitfields; turn member "loop_depth" into a short
14553 integer; add new member "no_equiv" and "reserved".
14554 (no_equiv): Set no_equiv of struct equivalence if register is marked
14555 as having no known equivalence.
14556 (update_equiv_regs): Check all definitions for a multiple-set
14557 register to make sure that the RHS have the same value.
14559 2014-10-13 Richard Henderson <rth@redhat.com>
14561 * combine-stack-adj.c (no_unhandled_cfa): New.
14562 (maybe_merge_cfa_adjust): New.
14563 (combine_stack_adjustments_for_block): Use them.
14565 2014-10-13 Aldy Hernandez <aldyh@redhat.com>
14567 * Makefile.in (TAGS): Tag ../include files.
14569 2014-10-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14571 * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Pass format argument
14572 to rs6000_dbx_register_number.
14573 (DWARF_FRAME_REGNUM): Redefine as identity map.
14574 (DWARF2_FRAME_REG_OUT): Call rs6000_dbx_register_number.
14575 * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Update.
14576 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Add format
14577 argument to handle .debug_frame and .eh_frame directly. Always
14578 translate SPE high register numbers. Add special treatment for CR,
14579 but only in .debug_frame. Respect RS6000_USE_DWARF_NUMBERING.
14581 * config/rs6000/sysv.h (DBX_REGISTER_NUMBER): Do not undefine.
14582 * config/rs6000/freebsd.h (DBX_REGISTER_NUMBER): Remove.
14583 (RS6000_USE_DWARF_NUMBERING): Define.
14584 * config/rs6000/freebsd64.h (DBX_REGISTER_NUMBER): Remove.
14585 (RS6000_USE_DWARF_NUMBERING): Define.
14586 * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Remove.
14587 (RS6000_USE_DWARF_NUMBERING): Define.
14588 * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Remove.
14589 (RS6000_USE_DWARF_NUMBERING): Define.
14590 * config/rs6000/aix.h (RS6000_USE_DWARF_NUMBERING): Define.
14591 * config/rs6000/darwin.h (RS6000_USE_DWARF_NUMBERING): Define.
14593 2014-10-13 Evgeny Stupachenko <evstupac@gmail.com>
14595 * config/i386/i386.c (ix86_address_cost): Lower cost for
14596 when address contains GOT register.
14598 2014-10-13 Ilya Enkovich <ilya.enkovich@intel.com>
14599 Vladimir Makarov <vmakarov@redhat.com>
14602 PR middle-end/47602
14603 PR rtl-optimization/55458
14604 * config/i386/i386.c (ix86_use_pseudo_pic_reg): New.
14605 (ix86_init_pic_reg): New.
14606 (ix86_select_alt_pic_regnum): Add check on pseudo register.
14607 (ix86_save_reg): Likewise.
14608 (ix86_expand_prologue): Remove PIC register initialization
14609 now performed in ix86_init_pic_reg.
14610 (ix86_output_function_epilogue): Add check on pseudo register.
14611 (set_pic_reg_ever_alive): New.
14612 (legitimize_pic_address): Replace df_set_regs_ever_live with new
14613 set_pic_reg_ever_alive.
14614 (legitimize_tls_address): Likewise.
14615 (ix86_pic_register_p): New check.
14616 (ix86_delegitimize_address): Add check on pseudo register.
14617 (ix86_expand_call): Insert move from pseudo PIC register to ABI
14618 defined REAL_PIC_OFFSET_TABLE_REGNUM.
14619 (TARGET_INIT_PIC_REG): New.
14620 (TARGET_USE_PSEUDO_PIC_REG): New.
14621 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Return INVALID_REGNUM
14622 if pic_offset_table_rtx exists.
14623 * doc/tm.texi.in (TARGET_USE_PSEUDO_PIC_REG, TARGET_INIT_PIC_REG):
14625 * doc/tm.texi: Regenerate.
14626 * function.c (assign_parms): Generate pseudo register for PIC.
14627 * init-regs.c (initialize_uninitialized_regs): Ignor pseudo PIC
14629 * ira-color.c (color_pass): Add check on pseudo register.
14630 * ira-emit.c (change_loop): Don't create copies for PIC pseudo
14632 * ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo
14634 (ira): Add target specific PIC register initialization.
14635 (do_reload): Keep PIC pseudo register.
14636 * lra-assigns.c (spill_for): Add checks on pseudo register.
14637 * lra-constraints.c (contains_symbol_ref_p): New.
14638 (lra_constraints): Enable lra risky transformations when PIC is pseudo
14640 * shrink-wrap.c (try_shrink_wrapping): Add check on pseudo register.
14641 * target.def (use_pseudo_pic_reg): New.
14642 (init_pic_reg): New.
14644 2014-10-13 Evgeny Stupachenko <evstupac@gmail.com>
14646 * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY):
14647 Remove m_SILVERMONT and m_INTEL from the tune.
14649 2014-10-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14651 PR libfortran/63471
14652 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
14653 when _HPUX_SOURCE is defined.
14655 2014-10-13 Jan Hubicka <hubicka@ucw.cz>
14657 PR tree-optimization/62127
14658 * tree.c (remap_type_1): When remapping array, remap
14661 2014-10-13 Christophe Lyon <christophe.lyon@linaro.org>
14663 * Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no
14664 longer impact parallelization.
14666 2014-10-13 Jan Hubicka <hubicka@ucw.cz>
14669 * ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto.
14671 2014-10-13 Marat Zakirov <m.zakirov@samsung.com>
14673 * asan.c (instrument_derefs): BIT_FIELD_REF added.
14675 2014-10-13 Richard Biener <rguenther@suse.de>
14677 PR tree-optimization/63419
14678 * gimple-fold.h (gimple_convert): New function.
14679 * gimple-fold.c (gimple_convert): Likewise.
14680 * tree-ssa-pre.c (create_expression_by_pieces): Use gimple_convert
14681 to split out required conversions early.
14683 2014-10-13 Richard Sandiford <richard.sandiford@arm.com>
14685 * rtlanal.c (generic_subrtx_iterator <T>::add_subrtxes_to_queue):
14686 Add the parts of an insn in reverse order, with the pattern at
14687 the top of the queue. Detect when we're iterating over a SEQUENCE
14688 pattern and in that case just consider patterns of subinstructions.
14690 2014-10-12 Oleg Endo <olegendo@gcc.gnu.org>
14693 * config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead
14695 * config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of
14697 (sh_find_equiv_gbr_addr): Do nothing if input mem is already a GBR
14698 address. Use def chains to handle GBR clobbering call insns.
14700 2014-10-12 Trevor Saunders <tsaunders@mozilla.com>
14702 * asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h,
14703 config/darwin.c, config/m32c/m32c.c, config/mep/mep.c,
14704 config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c,
14705 function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c,
14706 output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c,
14707 tree-ssa.c, varasm.c: Use hash-table instead of hashtab.
14708 * doc/gty.texi (for_user): Document new option.
14709 * gengtype.c (create_user_defined_type): Don't try to get a struct for
14711 (walk_type): Don't error out on for_user option.
14712 (write_func_for_structure): Emit user marking routines if requested by
14714 (write_local_func_for_structure): Likewise.
14715 (main): Mark types with for_user option as used.
14716 * ggc.h (gt_pch_nx): Add overload for unsigned int.
14717 * hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads.
14718 * hash-table.h (ggc_hasher): New struct.
14719 (hash_table::create_ggc): New function.
14720 (gt_pch_nx): New overload for hash_table.
14722 2014-10-11 Oleg Endo <olegendo@gcc.gnu.org>
14724 * config/sh/sh.h (TARGET_SH4A_ARCH): Remove macro.
14725 * config/sh/sh.h: Replace uses of TARGET_SH4A_ARCH with TARGET_SH4A.
14726 * config/sh/sh.c: Likewise.
14727 * config/sh/sh-mem.cc: Likewise.
14728 * config/sh/sh.md: Likewise.
14729 * config/sh/predicates.md: Likewise.
14730 * config/sh/sync.md: Likewise.
14732 2014-10-11 Martin Liska <mliska@suse.cz>
14734 PR middle-end/63376
14735 * cgraphunit.c (symbol_table::process_new_functions): Missing call
14736 for call_cgraph_insertion_hooks added.
14738 2014-10-10 Jakub Jelinek <jakub@redhat.com>
14741 * stor-layout.c (min_align_of_type): Don't decrease alignment
14742 through BIGGEST_FIELD_ALIGNMENT or ADJUST_FIELD_ALIGN if
14743 TYPE_USER_ALIGN is set.
14745 2014-10-10 Uros Bizjak <ubizjak@gmail.com>
14747 PR rtl-optimization/63483
14748 * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
14749 references when alignment ANDs are involved.
14750 (write_dependence_p): Ditto.
14751 (may_alias_p): Ditto.
14753 2014-10-10 Marek Polacek <polacek@redhat.com>
14755 * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_OBJECT_SIZE.
14756 * doc/invoke.texi: Document -fsanitize=object-size.
14757 * flag-types.h (enum sanitize_code): Add SANITIZE_OBJECT_SIZE and
14758 or it into SANITIZE_UNDEFINED.
14759 * gimple-fold.c (gimple_fold_call): Optimize IFN_UBSAN_OBJECT_SIZE.
14760 * internal-fn.c (expand_UBSAN_OBJECT_SIZE): New function.
14761 * internal-fn.def (UBSAN_OBJECT_SIZE): Define.
14762 * opts.c (common_handle_option): Handle -fsanitize=object-size.
14763 * ubsan.c: Include tree-object-size.h.
14764 (ubsan_type_descriptor): Call tree_to_uhwi instead of tree_to_shwi.
14765 (ubsan_expand_bounds_ifn): Use false instead of 0.
14766 (ubsan_expand_objsize_ifn): New function.
14767 (instrument_object_size): New function.
14768 (pass_ubsan::execute): Add object size instrumentation.
14769 * ubsan.h (ubsan_expand_objsize_ifn): Declare.
14771 2014-10-10 Richard Henderson <rth@redhat.com>
14774 * shrink-wrap.c (move_insn_for_shrink_wrap): Don't use single_set.
14775 Restrict the set of expressions we're willing to move.
14777 2014-10-10 Jeff Law <law@redhat.com>
14779 * ira.c (struct equivalence): Promote INIT_INSNs field to
14780 an rtx_insn_list. Add comments.
14781 (no_equiv): Promote LIST to an rtx_insn_list. Update
14782 testing for and creating the special marker. Use methods
14783 to extract the insn and next pointers. Promote INSN to an
14785 (update_equiv_regs): Update test for special marker in the
14788 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14790 * configure.ac: Add --enable-fix-cortex-a53-835769 option.
14791 * configure: Regenerate.
14792 * config/aarch64/aarch64.c (aarch64_override_options): Handle
14793 TARGET_FIX_ERR_A53_835769_DEFAULT.
14794 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
14796 * doc/install.texi (aarch64*-*-*): Document
14797 new --enable-fix-cortex-a53-835769 option.
14799 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14800 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14802 * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
14803 (ADJUST_INSN_LENGTH): Define.
14804 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
14805 * config/aarch64/aarch64.c (is_mem_p): New function.
14806 (is_memory_op): Likewise.
14807 (aarch64_prev_real_insn): Likewise.
14808 (is_madd_op): Likewise.
14809 (dep_between_memop_and_curr): Likewise.
14810 (aarch64_madd_needs_nop): Likewise.
14811 (aarch64_final_prescan_insn): Likewise.
14812 * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
14813 and -mno-fix-cortex-a53-835769 options.
14815 2014-10-10 Jakub Jelinek <jakub@redhat.com>
14817 PR tree-optimization/63464
14818 * tree-switch-conversion.c (struct case_bit_test): Remove
14819 hi and lo fields, add wide_int mask field.
14820 (emit_case_bit_tests): Add MAXVAL argument, rewrite uses of
14821 hi/lo fields into wide_int mask operations, optimize by pretending
14822 minval to be 0 if maxval is small enough.
14823 (process_switch): Adjust caller.
14825 2014-10-10 Richard Biener <rguenther@suse.de>
14827 PR tree-optimization/63379
14828 * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
14829 a neutral operand for min/max when it is not a reduction chain.
14831 2014-10-10 Richard Biener <rguenther@suse.de>
14833 PR tree-optimization/63476
14834 * tree-ssa-pre.c (struct bb_bitmap_sets): Add vop_on_exit member.
14835 (BB_LIVE_VOP_ON_EXIT): New define.
14836 (create_expression_by_pieces): Assign VUSEs to stmts.
14837 (compute_avail): Track BB_LIVE_VOP_ON_EXIT.
14838 (pass_pre::execute): Assert virtual SSA form is up-to-date
14841 2014-10-10 Eric Botcazou <ebotcazou@adacore.com>
14843 * lra-assigns.c (assign_by_spills): Error out on spill failure.
14845 2014-10-09 Markus Trippelsdorf <markus@trippelsdorf.de>
14847 * pa-polymorphic-call.c (check_stmt_for_type_change): Move
14850 2014-10-09 Richard Biener <rguenther@suse.de>
14852 PR tree-optimization/63380
14853 * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
14856 2014-10-09 Joern Rennecke <joern.rennecke@embecosm.com>
14858 * config/avr/avr.opt (mmcu=): Change to have a string value.
14859 (mn-flash=, mskip-bug, march=, mrmw): New options.
14860 (HeaderInclude): New.
14861 (mmcu=): Remove Var / Init clauses.
14862 * config/avr/avr.h (DRIVER_SELF_SPECS): Translate -mmcu into a
14864 (SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define.
14865 (ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss.
14866 (SYMBOL_FLAG_IO_LOW): Define.
14867 (avr_device_to_as, avr_device_to_ld): Don't declare.
14868 (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
14869 (avr_device_to_devicelib, avr_device_to_sp8): Likewise.
14870 (EXTRA_SPEC_FUNCTIONS): Don't define.
14871 (ASM_SPEC): Translate -arch= option to -mmcu= option.
14872 (LINK_SPEC): Translate -arch= option to -m= option.
14873 Don't use device_to_ld / device_to_data_start.
14874 (STARTFILE_SPEC): Now empty.
14875 (ASM_SPEC): Add -%{mrelax: --mlink-relax}.
14876 * config/avr/gen-avr-mmcu-specs.c: New file.
14877 * config/avr/t-avr (gen-avr-mmcu-specs$(build_exeext)): New rule.
14878 (s-device-specs): Likewise.
14879 (GCC_PASSES): Add s-device-specs.
14880 (install-driver): Depend on install-device-specs.
14881 (install-device-specs): New rule.
14882 * config/avr/avr.c (avr_option_override): Look up mcu arch by
14883 avr_arch_index and provide fallback initialization for avr_n_flash.
14884 (varasm.h): #include.
14885 (avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO;
14886 (avr_handle_addr_attribute, avr_eval_addr_attrib): New functions.
14887 (avr_attribute_table): Add "io", "address" and "io_low".
14888 (avr_asm_output_aligned_decl_common): Change type of decl to tree.
14889 Add special handling for symbols with "io" and/or "address" attributes.
14890 (avr_asm_asm_output_aligned_bss): New function.
14891 (avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS
14892 as appropriate. Handle io_low attribute.
14893 (avr_out_sbxx_branch): Handle symbolic io addresses.
14894 (avr_xload_libgcc_p, avr_nonconst_pointer_addrspace): Use
14895 avr_n_flash instead of avr_current_device->n_flash.
14896 (avr_pgm_check_var_decl, avr_insert_attributes): Likewise.
14897 (avr_emit_movmemhi): Likewise.
14898 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Likewise.
14899 Use TARGET_RMW instead of avr_current_device->dev_attributes.
14900 Don't define avr_current_device->macro (that's the specfile's job).
14901 Use TARGET_SKIP_BUG instead of avr_current_device->errata_skip.
14902 * config/avr/avr.c (avr_2word_insn_p): Likewise.
14903 * config/avr/avr.md (*cpse.ne): Likewise.
14904 (mov<mode>): Use avr_eval_addr_attrib.
14905 (cbi): Change constraint for low_io_address_operand operand to "i".
14906 (sbi, sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise.
14907 * config/avr/predicates.md (io_address_operand):
14908 Allow SYMBOL_REF with SYMBOL_FLAG_IO.
14909 (low_io_address_operand): Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW.
14910 * config/avr/avr-protos.h (avr_asm_output_aligned_decl_common):
14912 (avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype.
14913 * config/avr/genmultilib.awk: Use -march=.
14914 Remove Multilib matches processing.
14915 * config/avr/t-multilib, config/avr/avr-tables.opt: Regenerate.
14916 * config/avr/avr-arch.h: Add double include guard.
14917 (avr_mcu_t) <library_name>: Update comment.
14918 * config/avr/driver-avr.c (avr_device_to_as): Delete.
14919 (avr_device_to_ld, avr_device_to_data_start): Likewise.
14920 (avr_device_to_startfiles, avr_device_to_devicelib): Likewise.
14921 (avr_device_to_sp8): Likewise.
14922 * config/avr/genopt.sh: Instead avr_mcu, emit an Enum for avr_arch.
14924 * doc/extend.texi (io, address): Document new AVR variable attributes.
14925 (io_low): Likewise.
14927 2014-10-09 Marek Polacek <polacek@redhat.com>
14929 * doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum.
14931 2014-10-08 Richard Biener <rguenther@suse.de>
14933 PR tree-optimization/61969
14934 * tree-nrv.c (pass_nrv::execute): Properly test for automatic
14937 2014-10-09 Richard Biener <rguenther@suse.de>
14939 PR tree-optimization/63445
14940 * tree-vrp.c (simplify_cond_using_ranges): Only warn about
14941 overflow for non-equality compares.
14943 2014-10-09 Uros Bizjak <ubizjak@gmail.com>
14945 PR rtl-optimization/57003
14946 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
14947 also check CALL_INSN_FUNCTION_USAGE for clobbers again after
14948 killing regs_invalidated_by_call.
14950 2014-10-08 Teresa Johnson <tejohnson@google.com>
14952 PR bootstrap/63432.
14953 * tree-ssa-threadupdate.c (estimated_freqs_path): New function.
14954 (ssa_fix_duplicate_block_edges): Invoke it.
14955 (mark_threaded_blocks): Make two passes to avoid ordering dependences.
14957 2014-10-08 Oleg Endo <olegendo@gcc.gnu.org>
14960 * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
14961 atomic_fetch_<fetchop_name>si_hard,
14962 atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
14963 atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
14964 atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
14965 atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
14967 2014-10-08 Rong Xu <xur@google.com>
14969 * gcov-tool.c (profile_overlap): New driver function
14970 to compute profile overlap.
14971 (print_overlap_usage_message): New.
14972 (overlap_usage): New.
14974 (print_usage): Add calls to overlap function.
14976 * doc/gcov-tool.texi: Add documentation.
14978 2014-10-08 Steve Ellcey <sellcey@mips.com>
14980 * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change
14981 LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS
14983 2014-10-08 Jan Hubicka <hubicka@ucw.cz>
14985 * ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better
14986 pattern matching of MEM_REF.
14987 (check_stmt_for_type_change): Update.
14989 2014-10-08 Steve Ellcey <sellcey@mips.com>
14991 * config/mips/linux64.h: Remove.
14992 * config/mips/gnu-user64.h: Remove.
14993 * gcc.config (mips*-*-*): Remove references to linux64.h and
14995 * config/mips/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Replace
14996 with modified version from gnu-user64.h.
14997 (LINUX_DRIVER_SELF_SPECS): Update parts from gnu-user64.h.
14998 (LOCAL_LABEL_PREFIX): Copy from gnu-user64.h.
14999 * config/mips/linux.h (GNU_USER_LINK_EMULATION32): Copy from
15001 (GNU_USER_LINK_EMULATION64): Ditto.
15002 (GNU_USER_LINK_EMULATIONN32): Ditto.
15003 (GLIBC_DYNAMIC_LINKER32): Ditto.
15004 (GLIBC_DYNAMIC_LINKER64): Ditto.
15005 (GLIBC_DYNAMIC_LINKERN32): Ditto.
15006 (UCLIBC_DYNAMIC_LINKER32): Ditto.
15007 (UCLIBC_DYNAMIC_LINKER64): Ditto.
15008 (UCLIBC_DYNAMIC_LINKERN32): Ditto.
15009 (BIONIC_DYNAMIC_LINKERN32): Ditto.
15010 (GNU_USER_DYNAMIC_LINKERN32): Ditto.
15011 (GLIBC_DYNAMIC_LINKER): Delete.
15012 (UCLIBC_DYNAMIC_LINKER): Delete.
15014 2014-10-08 Joern Rennecke <joern.rennecke@embecosm.com>
15015 Richard Biener <rguenther@suse.de>
15017 * cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>:
15018 Get address space from operand 0 (BASE).
15020 2014-10-07 Iain Sandoe <iain@codesourcery.com>
15023 * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
15025 2014-10-07 Aldy Hernandez <aldyh@redhat.com>
15027 * dwarf2out.c: Remove current_function_has_inlines.
15028 (gen_subprogram_die): Same.
15029 (gen_inlined_subroutine_die): Same.
15031 2014-10-07 Ilya Tocar <ilya.tocar@intel.com>
15033 * config/i386/adxintrin.h (_subborrow_u64): Use long long for param
15035 (_addcarry_u64): Ditto.
15036 (_addcarryx_u64): Ditto.
15038 2014-10-07 Eric Botcazou <ebotcazou@adacore.com>
15040 * cgraph.h (cgraph_node::get_fun): Declare.
15041 * cgraph.c (cgraph_node::get_fun): New method.
15042 * ipa-inline.c (can_inline_edge_p): Use it.
15044 2014-10-07 Eric Botcazou <ebotcazou@adacore.com>
15046 * lto-opts.c (lto_write_options): Handle -fmath-errno, -fsigned-zeros
15047 and -ftrapping-math.
15048 * lto-wrapper.c (merge_and_complain): Likewise.
15049 (run_gcc): Likewise.
15051 2014-10-06 Rong Xu <xur@google.com>
15053 * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param.
15054 * tree-profile.c: (params.h): New include.
15055 (init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee
15056 and __gcov_indirect_call_topn_counters for
15057 indirect_call_topn_profile.
15058 (gimple_init_edge_profiler): New decls for
15059 __gcov_indirect_call_topn_profiler.
15060 (gimple_gen_ic_profiler): Generate the correct profiler call.
15061 (gimple_gen_ic_func_profiler): Fix format.
15062 * value-prof.c (params.h): New include.
15063 (dump_histogram_value): Hanlde indirect_call_topn counters.
15064 (stream_in_histogram_value): Ditto.
15065 (gimple_indirect_call_to_profile): Use indirect_call_topn
15066 profile when PARAM_INDIR_CALL_TOPN_PROFILE is set.
15067 (gimple_find_values_to_profile): Hanlde indirect_call_topn
15069 * value-prof.h (enum hist_type): Histrogram type for
15070 indirect_call_topn counters.
15071 * profile.c (instrument_values): Instrument
15072 indirect_call_topn counters.
15074 2014-10-06 Rong Xu <xur@google.com>
15076 * Makefile.in: Fix dependence.
15077 * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add
15078 indirect call topn profiler.
15079 * gcov-io.h: Ditto.
15081 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
15083 * calls.c (expand_call): Do not use the target as the return slot if
15084 it is not sufficiently aligned.
15086 2014-10-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15088 * config/rs6000/rs6000.c (analyze_swaps commentary): Add
15089 discussion of permutes and why we don't handle them.
15091 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
15093 * config/sparc/predicates.md (int_register_operand): Delete.
15095 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
15097 * dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering.
15099 2014-10-06 Jakub Jelinek <jakub@redhat.com>
15101 * ubsan.h (ubsan_get_source_location): New prototype.
15102 * ubsan.c (ubsan_source_location_type): New variable.
15103 Function renamed to ...
15104 (ubsan_get_source_location_type): ... this. Cache
15105 return value in ubsan_source_location_type variable.
15106 (ubsan_source_location, ubsan_create_data): Use
15107 ubsan_get_source_location_type instead of
15108 ubsan_source_location_type.
15109 * asan.c (asan_protect_global): Don't protect globals
15110 with ubsan_get_source_location_type () type.
15111 (asan_add_global): Provide global decl location info
15114 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
15116 * ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive
15119 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
15121 * ipa-polymorphic-call.c (possible_placement_new): Fix condition
15123 (ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk
15125 (ipa_polymorphic_call_context::dump): Fix formating.
15126 (walk_ssa_copies): Add logic avoiding loops; update uses.
15127 * ipa-prop.c (ipa_analyze_call_uses): Compute vptr_changed.
15129 2014-10-02 Mark Wielaard <mjw@redhat.com>
15132 * dwarf2out.c (gen_subprogram_die): When a member function is
15133 explicitly deleted then add a DW_AT_GNU_deleted attribute.
15134 * langhooks.h (struct lang_hooks_for_decls): Add
15135 function_decl_deleted_p langhook.
15136 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
15137 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P.
15139 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
15141 * ipa-polymorphic-call.c (walk_ssa_copies): Recognize
15142 NULL pointer checks.
15143 (ipa_polymorphic_call_context::get_dynamic_type): Return true
15144 if type doesn't change.
15145 * cgraph.h (cgraph_indirect_call_info): New flag.
15146 * cgraph.c (cgraph_node::create_indirect_edge): Initialize it.
15147 (cgraph_node::dump): Dump it.
15148 * ipa-prop.c (ipa_analyze_call_uses): Ignore return valud
15149 of context.get_dynamic_type.
15150 (ipa_make_edge_direct_to_target): Do not speculate
15151 edge that is already speuclative.
15152 (try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not
15153 speculate to __builtin_unreachable
15154 (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream
15156 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.
15158 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
15160 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Call
15161 get_dynamic_type; drop TODO.
15162 * ipa-polymorphic-call.c
15163 (ipa_polymorphic_call_context::get_dynamic_type): Be ready
15164 for otr_type to be unknown.
15166 2014-10-04 Trevor Saunders <tsaunders@mozilla.com>
15168 * common/config/score/score-common.c: Remove.
15169 * config.gcc: Remove support for score-*.
15170 * config/score/constraints.md: Remove.
15171 * config/score/elf.h: Remove.
15172 * config/score/predicates.md: Remove.
15173 * config/score/score-conv.h: Remove.
15174 * config/score/score-generic.md: Remove.
15175 * config/score/score-modes.def: Remove.
15176 * config/score/score-protos.h: Remove.
15177 * config/score/score.c: Remove.
15178 * config/score/score.h: Remove.
15179 * config/score/score.md: Remove.
15180 * config/score/score.opt: Remove.
15181 * doc/md.texi: Don't document score-*.
15183 2014-10-04 Trevor Saunders <tsaunders@mozilla.com>
15186 * genconditions.c: Directly include ggc.h before rtl.h.
15188 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
15190 * ipa-polymorphic-call.c
15191 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Fix
15192 code determining speculative type.
15193 (ipa_polymorphic_call_context::combine_with): Fix speculation merge.
15195 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15197 * altivec.md (altivec_lvsl): New define_expand.
15198 (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
15199 (altivec_lvsr): New define_expand.
15200 (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
15201 * rs6000.c (rs6000_expand_builtin): Change to use
15202 altivec_lvs[lr]_direct; remove commented-out code.
15204 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15206 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15207 Issue a warning message when vec_lvsl or vec_lvsr is used with a
15208 little endian target.
15210 2014-10-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
15212 * tree-pretty-print.c (dump_location): Make it extern. Dump also
15214 * tree-pretty-print.h (dump_location): Declare.
15215 * gimple-pretty-print.c (dump_gimple_phi): Use dump_location.
15216 (pp_gimple_stmt_1): Likewise.
15217 (dump_implicit_edges): Likewise.
15218 * gimplify.c (gimplify_call_expr): Use LOCATION_FILE and
15222 2014-10-03 David Malcolm <dmalcolm@redhat.com>
15224 * gcc.c (driver::global_initializations): Remove "const" so
15225 that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options
15226 and decoded_options_count.
15228 2014-10-03 Maciej W. Rozycki <macro@codesourcery.com>
15230 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
15232 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
15233 TARGET_E500_DOUBLE case here.
15235 2014-10-03 Marc Glisse <marc.glisse@inria.fr>
15240 * doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++.
15242 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
15244 * cgraph.h (struct indirect_call_info): Add IN_POLYMORPHIC_CDTOR
15245 * lto-cgraph.c (lto_output_edge, input_edge): Stream
15246 in_polymorphic_cdtor
15247 * cgraph.c (symbol_table::create_edge): Compute in_polymorphic_cdtor.
15248 (cgraph_edge::make_speculative): Copy in_polymorphic_cdtor.
15249 * cgraphclones.c (cgraph_edge::clone): Likewise.
15250 * ipa-prop.c (update_jump_functions_after_inlining,
15251 try_make_edge_direct_virtual_call): Pass in_polymorphic_cdtor
15252 to possible_dynamic_type_change.
15253 (decl_maybe_in_construction_p): Allow empty OUTER_TYPE and BASE.
15254 (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
15255 IN_POLY_CDOTR argument.
15257 * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Be ready
15258 for BASE and OUTER_TYPE being NULL.
15259 (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
15260 in_poly_cdtor parameter.
15262 2014-10-03 Jakub Jelinek <jakub@redhat.com>
15264 * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Fix up formatting.
15265 (ix86_expand_vec_perm): Only call ix86_expand_vec_perm_vpermi2 if
15267 (expand_vec_perm_1): Likewise.
15269 2014-10-03 Jakub Jelinek <jakub@redhat.com>
15270 Uros Bizjak <ubizjak@gmail.com>
15272 PR tree-optimization/61403
15273 * config/i386/i386.c (expand_vec_perm_palignr): Fix a spelling
15274 error in comment. Also optimize 256-bit vectors for AVX2
15275 or AVX (floating vectors only), provided the first permutation
15276 can be performed in one insn.
15278 2014-10-03 David Malcolm <dmalcolm@redhat.com>
15280 * gcc.c (class driver): New class.
15281 (main): Reimplement in terms of driver::main, moving most of the
15282 locals to be locals within individual methods of class driver.
15283 The remaining locals "explicit_link_files", "decoded_options" and
15284 "decoded_options_count" are used by multiple driver:: methods, and
15285 so become member data. Doing so isolates the argc/argv reads and
15286 writes. Replace "goto out" with a special exit code from
15287 new method driver::prepare_infiles. Split out the old
15288 implementation of main into the following...
15289 (driver::main): New function, corresponding to the old "main"
15291 (driver::set_progname): New function, taken from the old
15292 "main" implementation.
15293 (driver::expand_at_files): Likewise.
15294 (driver::decode_argv): Likewise.
15295 (driver::global_initializations): Likewise.
15296 (driver::build_multilib_strings): Likewise.
15297 (driver::set_up_specs): Likewise.
15298 (driver::putenv_COLLECT_GCC): Likewise.
15299 (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Likewise.
15300 (driver::handle_unrecognized_options): Likewise.
15301 (driver::maybe_print_and_exit): Likewise.
15302 (driver::prepare_infiles): Likewise.
15303 (driver::do_spec_on_infiles): Likewise.
15304 (driver::maybe_run_linker): Likewise.
15305 (driver::final_actions): Likewise.
15306 (driver::get_exit_code): Likewise.
15308 2014-10-03 Yury Gribov <y.gribov@samsung.com>
15310 * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
15311 don't emit empty ctors.
15313 2014-10-03 Eric Botcazou <ebotcazou@adacore.com>
15315 * convert.c (convert_to_integer): Do not introduce useless conversions
15316 between integral types.
15318 2014-10-03 David Sherwood <david.sherwood@arm.com>
15320 * ira-int.h (ira_allocno): Mark hard_regno as signed.
15322 2014-10-03 Ilya Enkovich <ilya.enkovich@intel.com>
15324 * lra-constraints.c (inherit_in_ebb): Handle calls with
15325 multiple return values.
15326 * caller-save.c (save_call_clobbered_regs): Likewise.
15328 2014-10-03 Jakub Jelinek <jakub@redhat.com>
15330 * tree-vect-data-refs.c (vect_permute_load_chain,
15331 vect_shift_permute_load_chain): Fix a typo in temporary var names,
15332 suffle3 to shuffle3.
15335 * omp-low.c (taskreg_contexts): New variable.
15336 (scan_omp_parallel): Push newly created context into taskreg_contexts
15337 vector and move record layout code to finish_taskreg_scan.
15338 (scan_omp_task): Likewise.
15339 (finish_taskreg_scan): New function.
15340 (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
15341 vector elements and release it.
15344 * config/i386/i386.c (expand_vec_perm_palignr): If op1, op0 order
15345 of palignr arguments can't be used due to min 0 or max - min
15346 too high, try also op0, op1 order of palignr arguments.
15348 2014-10-02 Jan Hubicka <hubicka@ucw.cz>
15350 * cgraph.h (ipa_polymorphic_call_context):
15351 Turn bools into bitfields; add DYNAMIC; make MAKE_SPECULATIVE
15352 private, add POSSIBLE_DYNAMIC_TYPE_CHANGE.
15353 * ipa-polymorphic-call.c
15354 (ipa_polymorphic_call_context::restrict_to_inner_class): Allow accesses
15355 past end of dynamic types.
15356 (ipa_polymorphic_call_context::stream_out,
15357 speculative_outer_type): Stream dynamic flag.
15358 (ipa_polymorphic_call_context::set_by_decl): Clear DYNAMIC.
15359 (ipa_polymorphic_call_context::ipa_polymorphic_call_context):
15361 (ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC;
15363 (ipa_polymorphic_call_context::combine_with): Propagate dynamic.
15364 * ipa-prop.c (update_jump_functions_after_inlining,
15365 try_make_edge_direct_virtual_call): Use possible_dynamic_type_change.
15367 2014-10-02 Teresa Johnson <tejohnson@google.com>
15369 * tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies
15370 up when synthesizing counts to avoid rounding errors.
15372 2014-10-02 Teresa Johnson <tejohnson@google.com>
15374 PR middle-end/63422
15375 * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
15376 asserts to handle incoming insanities.
15378 2014-10-02 Martin Jambor <mjambor@suse.cz>
15380 PR tree-optimization/63375
15381 * tree-sra.c (build_access_from_expr_1): Disqualify volatile
15384 2014-10-02 Olivier Hainque <hainque@adacore.com>
15386 * Makefile.in (CROSS): Define, to @CROSS.
15388 2014-10-02 Jakub Jelinek <jakub@redhat.com>
15391 * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
15392 if it expands to a single insn only.
15393 (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument. If true,
15394 fail unless in_order is true. Add forward declaration.
15395 (expand_vec_perm_vperm2f128): Fix up comment about which permutation
15396 is useful for one_operand_p.
15397 (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.
15399 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
15401 * cgraphclones.c (build_function_type_skip_args): Do not make new
15402 type variant of old.
15404 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
15406 * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
15407 when speculation is added.
15408 (ipa_edge_args): Add polymorphic_call_contexts.
15409 (ipa_get_ith_polymorhic_call_context): New accesor.
15410 (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
15411 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
15412 (ipa_compute_jump_functions_for_edge): Compute contexts.
15413 (update_jump_functions_after_inlining): Update contexts.
15414 (ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
15415 update dumping; add speculative edge creation.
15416 (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
15418 (update_indirect_edges_after_inlining): Pass down context.
15419 (ipa_edge_duplication_hook): Duplicate contexts.
15420 (ipa_write_node_info): Stream out contexts.
15421 (ipa_read_node_info): Stream in contexts.
15422 * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
15424 (try_speculative_devirtualization): New function.
15425 * ipa-utils.h (try_speculative_devirtualization): Declare.
15427 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
15429 * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
15430 dumping during WPA.
15432 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
15434 * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
15437 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
15439 * ipa-polymorphic-call.c
15440 (ipa_polymorphic_call_context::restrict_to_inner_class):
15441 Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
15442 use speculation_consistent_p to do so; Add CONSDER_BASES
15443 and CONSIDER_PLACEMENT_NEW parameters.
15444 (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
15445 short circuit obvious cases.
15446 (ipa_polymorphic_call_context::dump): Improve formatting.
15447 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
15448 combine_speculation_with to record speculations; Do not ICE when
15449 object is located in pointer type decl; do not ICE for methods
15450 of UNION_TYPE; do not record nonpolymorphic types.
15451 (ipa_polymorphic_call_context::speculation_consistent_p): New method.
15452 (ipa_polymorphic_call_context::combine_speculation_with): New method.
15453 (ipa_polymorphic_call_context::combine_with): New method.
15454 (ipa_polymorphic_call_context::make_speculative): Move here; use
15455 combine speculation.
15456 * cgraph.h (ipa_polymorphic_call_context): Update
15457 restrict_to_inner_class prototype; add offset_by, make_speculative,
15458 combine_with, useless_p, combine_speculation_with and
15459 speculation_consistent_p methods.
15460 (ipa_polymorphic_call_context::offset_by): New method.
15461 (ipa_polymorphic_call_context::useless_p): New method.
15463 2014-10-01 Segher Boessenkool <segher@kernel.crashing.org>
15465 PR rtl-optimization/62151
15466 * combine.c (can_combine_p): Allow the destination register of INSN
15467 to be clobbered in I3.
15468 (subst): Do not substitute into clobbers of registers.
15470 2014-10-01 Jakub Jelinek <jakub@redhat.com>
15473 * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
15474 offset, TARGET_MEM_REF and SSA_NAME.
15476 * config/i386/i386.c (expand_vec_perm_palignr): Handle
15477 256-bit vectors for TARGET_AVX2.
15479 * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
15480 dfirst permutation.
15483 * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
15484 argument to avx2_permv2ti.
15486 2014-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15488 * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
15490 2014-09-30 Uros Bizjak <ubizjak@gmail.com>
15492 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
15493 (fmod<mode>3): Ditto.
15494 (fpremxf4_i387): Ditto.
15495 (reminderxf3): Ditto.
15496 (reminder<mode>3): Ditto.
15497 (fprem1xf4_i387): Ditto.
15499 2014-09-30 Teresa Johnson <tejohnson@google.com>
15501 * tree-ssa-threadupdate.c (struct ssa_local_info_t): New
15502 duplicate_blocks bitmap.
15503 (remove_ctrl_stmt_and_useless_edges): Ditto.
15504 (create_block_for_threading): Ditto.
15505 (compute_path_counts): New function.
15506 (update_profile): Ditto.
15507 (recompute_probabilities): Ditto.
15508 (update_joiner_offpath_counts): Ditto.
15509 (freqs_to_counts_path): Ditto.
15510 (clear_counts_path): Ditto.
15511 (ssa_fix_duplicate_block_edges): Update profile info.
15512 (ssa_create_duplicates): Pass new parameter.
15513 (ssa_redirect_edges): Remove old profile update.
15514 (thread_block_1): New duplicate_blocks bitmap,
15515 remove old profile update.
15516 (thread_single_edge): Pass new parameter.
15518 2014-09-30 Ilya Tocar <ilya.tocar@intel.com>
15520 PR middle-end/62120
15521 * varasm.c (decode_reg_name_and_count): Check availability for
15522 registers from ADDITIONAL_REGISTER_NAMES.
15524 2014-09-30 David Malcolm <dmalcolm@redhat.com>
15527 * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
15528 (PLUGIN_HEADERS): Add pass-instances.def.
15530 2014-09-30 James Greenhalgh <james.greenhalgh@arm.com>
15532 * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
15534 * config/aarch64/aarch64-simd.md
15535 (aarch64_sqdmull_laneq<mode>): Expand iterator.
15536 * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
15537 (vqdmulls_lane_s32): Fix return type.
15538 (vqdmulls_laneq_s32): New.
15540 2014-09-30 Jakub Jelinek <jakub@redhat.com>
15542 PR inline-asm/63282
15543 * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
15544 or invert_jump_1 if jump isn't any_condjump_p.
15546 2014-09-30 Terry Guo <terry.guo@arm.com>
15548 * config/arm/arm-cores.def (cortex-m7): New core name.
15549 * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
15551 * config/arm/arm-tables.opt: Regenerated.
15552 * config/arm/arm-tune.md: Regenerated.
15553 * config/arm/arm.h (TARGET_VFP5): New macro.
15554 * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
15555 * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
15556 smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
15557 * doc/invoke.texi: Document new cpu and fpu names.
15559 2014-09-30 Jiong Wang <jiong.wang@arm.com>
15561 * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
15562 before sinking insn.
15564 2014-09-30 David Sherwood <david.sherwood@arm.com>
15566 * ira-int.h (ira_allocno): Add "wmode" field.
15567 * ira-build.c (create_insn_allocnos): Add new "parent" function
15569 * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
15570 that cannot be accessed in wmode.
15572 2014-09-30 Markus Trippelsdorf <markus@trippelsdorf.de>
15574 * data-streamer.c (bp_unpack_var_len_int): Avoid signed
15577 2014-09-29 Andi Kleen <ak@linux.intel.com>
15579 * opts.c (print_filtered_help): Print --param min/max/default
15582 2014-09-29 Kaz Kojima <kkojima@gcc.gnu.org>
15584 * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
15586 2014-09-29 Eric Botcazou <ebotcazou@adacore.com>
15588 * tree-vrp.c (get_single_symbol): New function.
15589 (build_symbolic_expr): Likewise.
15590 (symbolic_range_based_on_p): New predicate.
15591 (extract_range_from_binary_expr_1): Deal with single-symbolic ranges
15592 for PLUS and MINUS. Do not drop symbolic ranges at the end.
15593 (extract_range_from_binary_expr): Try harder for PLUS and MINUS if
15594 operand is symbolic and based on the other operand.
15596 2014-09-29 Chen Gang <gang.chen.5i5j@gmail.com>
15598 * config/microblaze/microblaze.md (call_internal1): Use VOID
15599 instead of SI to fix "((void (*)(void)) 0)()" issue
15601 2014-09-29 Nick Clifton <nickc@redhat.com>
15603 * config/msp430/msp430.c (msp430_expand_prologue): Return a
15604 CLOBBER rtx for naked functions.
15605 (msp430_expand_epilogue): Likewise.
15606 (msp430_use_f5_series_hwmult): Cache result.
15607 (use_32bit_hwmult): Cache result.
15608 (msp430_no_hwmult): New function.
15609 (msp430_output_labelref): Use it.
15611 2014-09-29 Jakub Jelinek <jakub@redhat.com>
15613 PR middle-end/63247
15614 * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
15615 of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
15616 use the alignment of avar rather than ovar.
15618 2014-09-28 John David Anglin <danglin@gcc.gnu.org>
15620 * config/pa/pa.c (pa_output_function_epilogue): Only update
15621 last_address when a nonnote insn is found.
15623 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
15626 * ipa-devirt.c (possible_polymorphic_call_targets): Silence clang warning.
15628 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
15631 * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class):
15632 fix pasto in checking array size.
15634 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
15636 PR middle-end/35545
15637 * passes.def (pass_tracer): Move before last dominator pass.
15639 2014-09-26 Thomas Schwinge <thomas@codesourcery.com>
15641 * gcc.c (try_generate_repro): Remove argument "prog". Change all
15643 (run_attempt): Handle errors of "pex_run" invocation.
15645 2014-09-26 Christophe Lyon <christophe.lyon@linaro.org>
15647 * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
15648 (CC1_SPEC): Define.
15649 * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
15650 (TARGET_ASAN_SHADOW_OFFSET): Define.
15652 2014-09-26 Martin Liska <mliska@suse.cz>
15654 * cgraph.c (cgraph_node::release_body): New argument keep_arguments
15656 * cgraph.h: Likewise.
15657 * cgraphunit.c (cgraph_node::create_wrapper): Usage of new argument introduced.
15658 * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos created by Java.
15659 * tree-ssa-alias.c (ao_ref_base_alias_set): Static function transformed to global.
15660 * tree-ssa-alias.h: Likewise.
15662 2014-09-26 Jakub Jelinek <jakub@redhat.com>
15663 Max Ostapenko <m.ostapenko@partner.samsung.com>
15665 * common.opt: New option.
15666 * doc/invoke.texi: Describe new option.
15667 * gcc.c (execute): Don't free first string early, but at the end
15668 of the function. Call retry_ice if compiler exited with
15670 (main): Factor out common code.
15671 (print_configuration): New function.
15672 (files_equal_p): Likewise.
15673 (check_repro): Likewise.
15674 (run_attempt): Likewise.
15675 (do_report_bug): Likewise.
15676 (append_text): Likewise.
15677 (try_generate_repro): Likewise
15679 2014-09-25 Andi Kleen <ak@linux.intel.com>
15681 * config/i386/i386.c (x86_print_call_or_nop): New function.
15682 (x86_function_profiler): Support -mnop-mcount and
15684 * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
15685 * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
15687 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
15689 * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
15690 * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
15691 * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
15694 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
15696 * ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,
15697 type_known_to_have_no_deriavations_p, types_must_be_same_for_odr,
15698 types_odr_comparable): Declare.
15699 (polymorphic_type_binfo_p): Move here from ipa-devirt.c
15700 * ipa-polymorphic-call.c: New file.
15701 (contains_polymorphic_type_p, possible_placement_new,
15702 ipa_polymorphic_call_context::restrict_to_inner_class,
15703 contains_type_p, decl_maybe_in_construction_p,
15704 ipa_polymorphic_call_context::stream_out,
15705 ipa_polymorphic_call_context::debug,
15706 ipa_polymorphic_call_context::stream_in,
15707 ipa_polymorphic_call_context::set_by_decl,
15708 ipa_polymorphic_call_context::set_by_invariant,
15710 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15711 type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
15712 extr_type_from_vtbl_ptr_store, record_known_type
15713 check_stmt_for_type_change,
15714 ipa_polymorphic_call_context::get_dynamic_type): Move here from
15716 * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
15717 and streamer-hooks.h
15718 (contains_polymorphic_type_p, possible_placement_new,
15719 ipa_polymorphic_call_context::restrict_to_inner_class,
15720 contains_type_p, decl_maybe_in_construction_p,
15721 ipa_polymorphic_call_context::stream_out,
15722 ipa_polymorphic_call_context::debug,
15723 ipa_polymorphic_call_context::stream_in,
15724 ipa_polymorphic_call_context::set_by_decl,
15725 ipa_polymorphic_call_context::set_by_invariant,
15727 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15728 type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
15729 extr_type_from_vtbl_ptr_store, record_known_type
15730 check_stmt_for_type_change,
15731 ipa_polymorphic_call_context::get_dynamic_type): Move to
15732 ipa-polymorphic-call.c
15733 (type_all_derivations_known_p, types_odr_comparable,
15734 types_must_be_same_for_odr): Export.
15735 (type_known_to_have_no_deriavations_p): New function.
15736 * Makefile.in: Add ipa-polymorphic-call.c
15738 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
15740 * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
15741 for better storage.
15742 (polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
15743 (possible_polymorphic_call_targets): Instead of computing both
15744 speculative and non-speculative answers, do just one at a time.
15745 Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
15746 (dump_targets): Break out from ...
15747 (dump_possible_polymorphic_call_targets): ... here; dump both speculative
15748 and non-speculative lists.
15749 (ipa_devirt): Update for new possible_polymorphic_call_targets API.
15750 * ipa-utils.h (possible_polymorphic_call_targets): Update.
15752 2014-09-25 Uros Bizjak <ubizjak@gmail.com>
15754 PR rtl-optimization/63348
15755 * emit-rtl.c (try_split): Do not emit extra barrier.
15757 2014-09-25 James Greenhalgh <james.greenhalgh@arm.com>
15759 * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
15760 * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
15762 (aarch64_<sur>shll2_n<mode>): Likewise.
15763 (aarch64_<sur>shr_n<mode>): Likewise.
15764 (aarch64_<sur>sra_n<mode>: Likewise.
15765 (aarch64_<sur>s<lr>i_n<mode>): Likewise.
15766 (aarch64_<sur>qshl<u>_n<mode>): Likewise.
15767 * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
15768 * config/aarch64/iterators.md (ve_mode): New.
15769 (offsetlr): Remap to infix text for use in new predicates.
15770 * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
15771 (aarch64_simd_shift_imm_hi): Likewise.
15772 (aarch64_simd_shift_imm_si): Likewise.
15773 (aarch64_simd_shift_imm_di): Likewise.
15774 (aarch64_simd_shift_imm_offset_qi): Likewise.
15775 (aarch64_simd_shift_imm_offset_hi): Likewise.
15776 (aarch64_simd_shift_imm_offset_si): Likewise.
15777 (aarch64_simd_shift_imm_offset_di): Likewise.
15778 (aarch64_simd_shift_imm_bitsize_qi): Likewise.
15779 (aarch64_simd_shift_imm_bitsize_hi): Likewise.
15780 (aarch64_simd_shift_imm_bitsize_si): Likewise.
15781 (aarch64_simd_shift_imm_bitsize_di): Likewise.
15783 2014-09-25 Jiong Wang <jiong.wang@arm.com>
15785 * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
15786 new created BB as the intersection of live-in from "old_dest" and
15787 live-out from "bb".
15789 2014-09-25 Felix Yang <felix.yang@huawei.com>
15791 * lra.c (lra_set_insn_recog_data): Fix typo in comment.
15792 * genautomata.c (merge_states): Ditto.
15794 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org>
15797 * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
15798 in instruction sequence.
15800 2014-09-25 Nick Clifton <nickc@redhat.com>
15803 * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
15804 in instruction sequence.
15806 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15809 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
15810 Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
15812 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
15813 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15814 Anna Tikhonova <anna.tikhonova@intel.com>
15815 Ilya Tocar <ilya.tocar@intel.com>
15816 Andrey Turetskiy <andrey.turetskiy@intel.com>
15817 Ilya Verbin <ilya.verbin@intel.com>
15818 Kirill Yukhin <kirill.yukhin@intel.com>
15819 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15821 * config/i386/sse.md
15822 (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
15823 (define_expand "<avx2_avx512>_perm<mode>"): ... this.
15824 (define_expand "avx512f_perm<mode>_mask"): Rename to ...
15825 (define_expand "<avx512>_perm<mode>_mask"): ... this.
15826 Use VI8F_256_512 mode iterator.
15827 (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
15828 (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.
15830 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
15831 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15832 Anna Tikhonova <anna.tikhonova@intel.com>
15833 Ilya Tocar <ilya.tocar@intel.com>
15834 Andrey Turetskiy <andrey.turetskiy@intel.com>
15835 Ilya Verbin <ilya.verbin@intel.com>
15836 Kirill Yukhin <kirill.yukhin@intel.com>
15837 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15839 * config/i386/sse.md
15840 (define_insn "avx_movshdup256<mask_name>"): Add masking.
15841 (define_insn "sse3_movshdup<mask_name>"): Ditto.
15842 (define_insn "avx_movsldup256<mask_name>"): Ditto.
15843 (define_insn "sse3_movsldup<mask_name>"): Ditto.
15844 (define_insn "vec_dupv2df<mask_name>"): Ditto.
15845 (define_insn "*vec_concatv2df"): Add EVEX version.
15847 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
15848 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15849 Anna Tikhonova <anna.tikhonova@intel.com>
15850 Ilya Tocar <ilya.tocar@intel.com>
15851 Andrey Turetskiy <andrey.turetskiy@intel.com>
15852 Ilya Verbin <ilya.verbin@intel.com>
15853 Kirill Yukhin <kirill.yukhin@intel.com>
15854 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15856 * config/i386/sse.md
15857 (define_insn "vec_set<mode>_0"): Add EVEX version.
15859 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
15860 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15861 Anna Tikhonova <anna.tikhonova@intel.com>
15862 Ilya Tocar <ilya.tocar@intel.com>
15863 Andrey Turetskiy <andrey.turetskiy@intel.com>
15864 Ilya Verbin <ilya.verbin@intel.com>
15865 Kirill Yukhin <kirill.yukhin@intel.com>
15866 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15868 * config/i386/sse.md
15870 "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
15872 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
15873 (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
15874 (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
15875 "nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
15876 (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
15877 (define_expand "sse2_cvtpd2ps_mask): New.
15878 (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
15879 (define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
15881 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
15882 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15883 Anna Tikhonova <anna.tikhonova@intel.com>
15884 Ilya Tocar <ilya.tocar@intel.com>
15885 Andrey Turetskiy <andrey.turetskiy@intel.com>
15886 Ilya Verbin <ilya.verbin@intel.com>
15887 Kirill Yukhin <kirill.yukhin@intel.com>
15888 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15890 * config/i386/i386.c
15891 (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
15892 (ufix_notruncv8dfv8si2_mask_round): ... this.
15893 * config/i386/sse.md
15894 (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
15895 (define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
15896 (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
15897 (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
15898 (define_expand "sse2_cvtpd2dq"): Delete.
15899 (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
15900 make 2nd operand const0 vector.
15901 (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
15903 (define_mode_attr pd2udqsuff): New.
15905 "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
15906 (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
15907 (define_insn "*avx_cvttpd2dq256_2"): Delete.
15908 (define_expand "sse2_cvttpd2dq"): Ditto.
15909 (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
15910 make 2nd operand const0 vector.
15912 2014-09-25 Jakub Jelinek <jakub@redhat.com>
15914 PR tree-optimization/63341
15915 * tree-vectorizer.h (vect_create_data_ref_ptr,
15916 vect_create_addr_base_for_vector_ref): Add another tree argument
15917 defaulting to NULL_TREE.
15918 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
15919 argument, pass it down to vect_create_addr_base_for_vector_ref.
15920 (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
15921 add that to base_offset too if non-NULL.
15922 * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
15923 for dr_explicit_realign_optimized set it to vector byte size
15924 - 1 instead of setting offset, pass byte_offset down to
15925 vect_create_data_ref_ptr.
15927 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
15929 * ipa-devirt.c (possible_polymorphic_call_targets): Remove
15930 forgotten debug output; canonicalize querries more wtih LTO.
15932 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
15934 * cgraph.h (class ipa_polymorphic_call_context): Move here from
15935 ipa-utils.h; add stream_int and stream_out methods.
15936 (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
15937 OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
15938 MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
15940 (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15941 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15942 ipa_polymorphic_call_context::clear_speculation,
15943 ipa_polymorphic_call_context::clear_outer_type): Move here from
15945 * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
15946 (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15947 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15948 ipa_polymorphic_call_context::clear_speculation,
15949 ipa_polymorphic_call_context::clear_outer_type): Likewise.
15950 * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
15952 (ipa_polymorphic_call_context::stream_out): New method.
15953 (ipa_polymorphic_call_context::stream_in): New method.
15954 (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
15955 * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
15957 (ipa_analyze_call_uses): Simplify.
15958 (update_indirect_edges_after_inlining): Do not care about outer_type.
15959 (ipa_write_indirect_edge_info): Update.
15960 (ipa_write_indirect_edge_info): Likewise.
15961 * cgraph.c (cgraph_node::create_indirect_edge): Simplify.
15962 (dump_edge_flags): Break out from ...
15963 (cgraph_node::dump): ... here; dump indirect edges.
15965 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
15967 * ipa-utils.h (polymorphic_call_context): Add
15968 metdhos dump, debug and clear_outer_type.
15969 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
15970 (ipa_polymorphic_call_context::clear_outer_type): New method.
15971 * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
15972 * ipa-devirt.c (types_odr_comparable): New function.
15973 (types_must_be_same_for_odr): New function.
15974 (odr_subtypes_equivalent_p): Simplify.
15975 (possible_placement_new): Break out from ...
15976 (ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
15977 be more cuatious about returning false in cases the context may be
15978 valid in derived type or via placement new.
15979 (contains_type_p): Clear maybe_derived_type
15980 (ipa_polymorphic_call_context::dump): New method.
15981 (ipa_polymorphic_call_context::debug): New method.
15982 (ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
15983 (ipa_polymorphic_call_context::set_by_invariant): Simplify.
15984 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
15985 (possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
15986 to suceed on all valid cases; remove confused sanity check.
15987 (dump_possible_polymorphic_call_targets): Simplify.
15989 2014-09-24 Aldy Hernandez <aldyh@redhat.com>
15991 * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
15992 lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
15993 tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
15994 varpool.c: Rename all instances of DECL_ABSTRACT to
15997 2014-09-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15999 * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
16000 special handling for stores whose SET_SRC is an UNSPEC (such as
16003 2014-09-24 Jiong Wang <jiong.wang@arm.com>
16005 * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
16006 !REG_P (src) to release more instruction sink opportunities.
16008 2014-09-24 Wilco Dijkstra <wilco.dijkstra@arm.com>
16010 * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
16011 move costs for 128-bit types.
16013 2014-09-24 Martin Jambor <mjambor@suse.cz>
16015 * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
16016 when duplicating a PASS_THROUGH jump function when creating a
16019 2014-09-24 Marek Polacek <polacek@redhat.com>
16023 * asan.c (maybe_instrument_call): Add default case.
16024 * ipa-pure-const.c (special_builtin_state): Likewise.
16025 * predict.c (expr_expected_value_1): Likewise.
16026 * lto-streamer-out.c (write_symbol): Initialize variable.
16028 2014-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16030 * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
16032 (vmuld_laneq_f64): Likewise.
16033 (vmuls_lane_f32): Likewise.
16034 (vmuls_laneq_f32): Likewise.
16036 2014-09-24 Kirill Yukhin <kirill.yukhin@intel.com>
16039 * varpool.c (varpool_node::add): Pass decl attributes
16040 to lookup_attribute.
16042 2014-09-24 Jakub Jelinek <jakub@redhat.com>
16045 * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
16047 2014-09-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
16049 PR tree-optimization/63266
16050 * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
16051 marker for unknown byte value.
16052 (MARKER_MASK): New macro.
16053 (MARKER_BYTE_UNKNOWN): New macro.
16054 (HEAD_MARKER): New macro.
16055 (do_shift_rotate): Mark bytes with unknown values due to sign
16056 extension when doing an arithmetic right shift. Replace hardcoded
16057 mask for marker by new MARKER_MASK macro.
16058 (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
16059 numbers accordingly.
16061 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
16062 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16063 Anna Tikhonova <anna.tikhonova@intel.com>
16064 Ilya Tocar <ilya.tocar@intel.com>
16065 Andrey Turetskiy <andrey.turetskiy@intel.com>
16066 Ilya Verbin <ilya.verbin@intel.com>
16067 Kirill Yukhin <kirill.yukhin@intel.com>
16068 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16070 * config/i386/sse.md
16072 "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
16074 (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
16075 (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
16077 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
16078 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16079 Anna Tikhonova <anna.tikhonova@intel.com>
16080 Ilya Tocar <ilya.tocar@intel.com>
16081 Andrey Turetskiy <andrey.turetskiy@intel.com>
16082 Ilya Verbin <ilya.verbin@intel.com>
16083 Kirill Yukhin <kirill.yukhin@intel.com>
16084 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16086 * config/i386/sse.md
16087 (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
16088 (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
16089 (define_expand "avx512vl_pshuflwv3_mask"): Ditto.
16090 (define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
16091 (define_expand "avx512vl_pshuflw_mask"): New.
16092 (define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
16093 (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
16094 (define_expand "avx512vl_pshufhwv3_mask"): Ditto.
16095 (define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
16096 (define_expand "avx512vl_pshufhw_mask"): New.
16097 (define_insn "sse2_pshufhw_1<mask_name>"): Add masking.
16099 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
16100 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16101 Anna Tikhonova <anna.tikhonova@intel.com>
16102 Ilya Tocar <ilya.tocar@intel.com>
16103 Andrey Turetskiy <andrey.turetskiy@intel.com>
16104 Ilya Verbin <ilya.verbin@intel.com>
16105 Kirill Yukhin <kirill.yukhin@intel.com>
16106 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16108 * config/i386/i386.c
16109 (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
16110 CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
16111 CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
16112 CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
16113 CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
16114 * config/i386/sse.md
16115 (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
16117 "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
16118 (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
16120 "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
16121 (define_expand "avx512vl_pshufdv3_mask"): Ditto.
16122 (define_insn "avx2_pshufd_1<mask_name>"): Add masking.
16123 (define_expand "avx512vl_pshufd_mask"): New.
16124 (define_insn "sse2_pshufd_1<mask_name>"): Add masking.
16126 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
16127 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16128 Anna Tikhonova <anna.tikhonova@intel.com>
16129 Ilya Tocar <ilya.tocar@intel.com>
16130 Andrey Turetskiy <andrey.turetskiy@intel.com>
16131 Ilya Verbin <ilya.verbin@intel.com>
16132 Kirill Yukhin <kirill.yukhin@intel.com>
16133 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16135 * config/i386/i386.c
16136 (CODE_FOR_avx2_extracti128): Rename to ...
16137 (CODE_FOR_avx_vextractf128v4di): this.
16138 (CODE_FOR_avx2_inserti128): Rename to ...
16139 (CODE_FOR_avx_vinsertf128v4di): this.
16140 (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
16141 CODE_FOR_avx_vextractf128v4di.
16142 (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
16143 CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
16144 CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
16145 CODE_FOR_avx512vl_vinsertv8si.
16146 * config/i386/sse.md
16148 "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
16149 AVX512_VEC mode iterator.
16151 "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
16154 "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
16155 AVX512_VEC_2 mode iterator.
16156 (define_insn "vec_set_lo_<mode><mask_name>"): New.
16157 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16158 (define_expand "avx512vl_vinsert<mode>"): Ditto.
16159 (define_insn "avx2_vec_set_lo_v4di"): Delete.
16160 (define_insn "avx2_vec_set_hi_v4di"): Ditto.
16161 (define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
16162 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16163 (define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
16164 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16165 (define_expand "avx2_extracti128"): Delete.
16166 (define_expand "avx2_inserti128"): Ditto.
16168 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
16169 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16170 Anna Tikhonova <anna.tikhonova@intel.com>
16171 Ilya Tocar <ilya.tocar@intel.com>
16172 Andrey Turetskiy <andrey.turetskiy@intel.com>
16173 Ilya Verbin <ilya.verbin@intel.com>
16174 Kirill Yukhin <kirill.yukhin@intel.com>
16175 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16177 * config/i386/sse.md
16178 (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
16179 (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
16180 (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
16181 (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
16182 (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
16183 (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
16184 (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
16185 (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
16186 (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
16187 (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
16188 (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
16189 (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
16190 (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
16192 2014-09-24 Zhenqiang Chen <zhenqiang.chen@arm.com>
16194 PR rtl-optimization/63210
16195 * ira-color.c (assign_hard_reg): Ignore conflict cost if the
16196 HARD_REGNO is not available for CONFLICT_A.
16198 2014-09-23 Andi Kleen <ak@linux.intel.com>
16200 * cgraph.h (symtab_node): Add no_reorder attribute.
16201 (symbol_table::output_asm_statements): Remove.
16202 * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
16203 (cgraph_node::create_version_clone): Dito.
16204 (symbol_table::output_asm_statements): Remove.
16205 * trans-mem.c (ipa_tm_create_version_alias): Dito.
16206 * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
16207 (output_in_order): Add no_reorder flag. Only handle no_reorder
16209 (symbol_table::compile): Add separate pass for no_reorder nodes.
16210 (process_common_attributes): Set no_reorder flag in symtab node.
16212 (process_function_and_variable_attributes): Pass symtab nodes to
16213 process_common_attributes.
16214 * doc/extend.texi (no_reorder): Document no_reorder attribute.
16215 * lto-cgraph.c (lto_output_node): Serialize no_reorder.
16216 (lto_output_varpool_node): Dito.
16217 (input_overwrite_node): Dito.
16218 (input_varpool_node): Dito.
16219 * varpool.c (varpool_node::add): Set no_reorder attribute.
16220 (symbol_table::remove_unreferenced_decls): Handle no_reorder.
16221 (symbol_table::output_variables): Dito.
16222 * symtab.c (symtab_node::dump_base): Print no_reorder.
16224 2014-09-23 Jiong Wang <jiong.wang@arm.com>
16226 * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM not
16229 2014-09-23 Thomas Schwinge <thomas@codesourcery.com>
16231 * configure: Regenerate.
16233 2014-09-23 Alan Lawrence <alan.lawrence@arm.com>
16235 * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
16236 when result_mode == shift_mode.
16238 2014-09-23 Kostya Serebryany <kcc@google.com>
16240 Update to match the changed asan API.
16241 * asan.c (asan_global_struct): Update the __asan_global definition
16242 to match the new API.
16243 (asan_add_global): Ditto.
16244 * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
16247 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
16249 * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
16250 refine the constraints used on 32/64-bit floating point moves.
16251 (f32_av): Likewise.
16252 (f64_vsx): Likewise.
16253 (f64_dm): Likewise.
16254 (f64_av): Likewise.
16255 (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
16256 (BOOL_REGS_OP1): Likewise.
16257 (BOOL_REGS_OP2): Likewise.
16258 (BOOL_REGS_UNARY): Likewise.
16259 (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
16260 32/64-bit floating point moves. Do not use wa, instead use ww/ws
16261 for moves involving VSX registers. Do not use constraints that
16262 target VSX registers for decimal types.
16263 (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
16264 (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
16266 2014-09-23 Jan Hubicka <hubicka@ucw.cz>
16268 * tree.h (int_bit_position): Turn into inline function;
16269 implement using wide int.
16270 * tree.c (int_bit_position): Remove.
16272 2014-09-23 Richard Sandiford <richard.sandiford@arm.com>
16275 * target-globals.c (target_globals::~target_globals): Fix location
16276 of ira_int destruction.
16278 2014-09-23 Renlin Li <renlin.li@arm.com>
16280 * config/aarch64/aarch64.md (return): New.
16281 (simple_return): Likewise.
16282 * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
16283 * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.
16285 2014-09-23 Wilco Dijkstra <wdijkstr@arm.com>
16287 * common/config/aarch64/aarch64-common.c:
16288 (default_options aarch_option_optimization_table):
16289 Default to -fsched-pressure.
16291 2014-09-23 Ilya Enkovich <ilya.enkovich@intel.com>
16293 * cfgcleanup.c (try_optimize_cfg): Do not remove label
16294 with LABEL_PRESERVE_P flag set.
16296 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
16297 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16298 Anna Tikhonova <anna.tikhonova@intel.com>
16299 Ilya Tocar <ilya.tocar@intel.com>
16300 Andrey Turetskiy <andrey.turetskiy@intel.com>
16301 Ilya Verbin <ilya.verbin@intel.com>
16302 Kirill Yukhin <kirill.yukhin@intel.com>
16303 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16305 * config/i386/sse.md
16306 (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
16307 (define_insn "avx_shufpd256_1<mask_name>"): Ditto.
16308 (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
16309 (define_insn "sse2_shufpd_v2df_mask"): New.
16311 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
16312 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16313 Anna Tikhonova <anna.tikhonova@intel.com>
16314 Ilya Tocar <ilya.tocar@intel.com>
16315 Andrey Turetskiy <andrey.turetskiy@intel.com>
16316 Ilya Verbin <ilya.verbin@intel.com>
16317 Kirill Yukhin <kirill.yukhin@intel.com>
16318 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16320 * config/i386/sse.md
16321 (define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
16322 (define_insn "avx_shufps256_1<mask_name>"): Ditto.
16323 (define_expand "sse_shufps<mask_expand4_name>"): Ditto.
16324 (define_insn "sse_shufps_v4sf_mask"): New.
16326 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
16327 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16328 Anna Tikhonova <anna.tikhonova@intel.com>
16329 Ilya Tocar <ilya.tocar@intel.com>
16330 Andrey Turetskiy <andrey.turetskiy@intel.com>
16331 Ilya Verbin <ilya.verbin@intel.com>
16332 Kirill Yukhin <kirill.yukhin@intel.com>
16333 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16335 * config/i386/sse.md
16336 (define_insn "avx_unpckhps256<mask_name>"): Add masking.
16337 (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
16338 (define_insn "avx_unpcklps256<mask_name>"): Ditto.
16339 (define_insn "unpcklps128_mask"): New.
16341 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
16342 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16343 Anna Tikhonova <anna.tikhonova@intel.com>
16344 Ilya Tocar <ilya.tocar@intel.com>
16345 Andrey Turetskiy <andrey.turetskiy@intel.com>
16346 Ilya Verbin <ilya.verbin@intel.com>
16347 Kirill Yukhin <kirill.yukhin@intel.com>
16348 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16350 * config/i386/sse.md
16351 (define_insn "avx_unpckhpd256<mask_name>"): Add masking.
16352 (define_insn "avx512vl_unpckhpd128_mask"): New.
16353 (define_expand "avx_movddup256<mask_name>"): Add masking.
16354 (define_expand "avx_unpcklpd256<mask_name>"): Ditto.
16355 (define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
16356 (define_insn "avx512vl_unpcklpd128_mask"): New.
16358 2014-09-22 Joseph Myers <joseph@codesourcery.com>
16360 * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16361 * doc/tm.texi: Regenerate.
16362 * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
16363 * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16364 * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
16366 * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16367 * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16368 * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16369 * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16370 * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
16372 * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16373 * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16374 * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16375 * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16376 * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16377 * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16378 * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16379 * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16380 * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16381 * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16382 * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
16385 2014-09-22 Jan Hubicka <hubicka@ucw.cz>
16387 * tree-ssa-ccp.c (prop_value_d): Rename to ...
16388 (ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
16389 * ipa-prop.c (struct type_change_info): Rename to ...
16390 (prop_type_change_info): ... this; update uses.
16391 * ggc-page.c (globals): Rename to ...
16392 (static struct ggc_globals): ... this; update uses.
16393 * tree-ssa-loop-im.c (mem_ref): Rename to ...
16394 (im_mem_ref): ... this; update uses.
16395 * ggc-common.c (loc_descriptor): Rename to ...
16396 (ggc_loc_descriptor): ... this; update uses.
16397 * lra-eliminations.c (elim_table): Rename to ...
16398 (lra_elim_table): ... this; update uses.
16399 * bitmap.c (output_info): Rename to ...
16400 (bitmap_output_info): ... this; update uses.
16401 * gcse.c (expr): Rename to ...
16402 (gcse_expr) ... this; update uses.
16403 (occr): Rename to ...
16404 (gcse_occr): .. this; update uses.
16405 * tree-ssa-copy.c (prop_value_d): Rename to ...
16406 (prop_value_t): ... this.
16407 * predict.c (block_info_def): Rename to ...
16408 (block_info): ... this; update uses.
16409 (edge_info_def): Rename to ...
16410 (edge_info): ... this; update uses.
16411 * profile.c (bb_info): Rename to ...
16412 (bb_profile_info): ... this; update uses.
16413 * alloc-pool.c (output_info): Rename to ...
16414 (pool_output_info): ... this; update uses.
16415 * ipa-cp.c (topo_info): Rename to ..
16416 (ipa_topo_info): ... this; update uses.
16417 * tree-nrv.c (nrv_data): Rename to ...
16418 (nrv_data_t): ... this; update uses.
16419 * ipa-split.c (bb_info): Rename to ...
16420 (split_bb_info): ... this one.
16421 * profile.h (edge_info): Rename to ...
16422 (edge_profile_info): ... this one; update uses.
16423 * dse.c (bb_info): Rename to ...
16424 (dse_bb_info): ... this one; update uses.
16425 * cprop.c (occr): Rename to ...
16426 (cprop_occr): ... this one; update uses.
16427 (expr): Rename to ...
16428 (cprop_expr): ... this one; update uses.
16430 2014-09-22 Jason Merrill <jason@redhat.com>
16432 * Makefile.in (check-parallel-%): Add @.
16434 2014-09-22 James Greenhalgh <james.greenhalgh@arm.com>
16436 * config/aarch64/geniterators.sh: New.
16437 * config/aarch64/iterators.md (VDQF_DF): New.
16438 * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
16439 * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
16441 2014-09-22 Peter A. Bigot <pab@pabigot.com>
16443 * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
16444 -lnosys when -msim absent.
16446 2014-09-22 Alan Lawrence <alan.lawrence@arm.com>
16448 * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
16450 2014-09-22 Richard Biener <rguenther@suse.de>
16452 * gimplify.c (gimplify_init_constructor): Do not leave
16453 non-GIMPLE vector constructors around.
16454 * tree-cfg.c (verify_gimple_assign_single): Verify that
16455 CONSTRUCTORs have gimple elements.
16457 2014-09-22 Jakub Jelinek <jakub@redhat.com>
16460 * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
16461 insert a debug source bind stmt setting DEBUG_EXPR_DECL
16462 instead of a normal gimple assignment stmt.
16464 2014-09-22 James Greenhalgh <james.greenhalgh@arm.com>
16466 * config/bfin/bfin.md: Fix use of constraints in define_split.
16468 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
16470 * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
16471 GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
16473 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
16475 * hard-reg-set.h: Include hash-table.h.
16476 (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
16478 * target-globals.c (target_globals::~target_globals): Call
16479 hard_regs->finalize.
16480 * rtl.h (subreg_shape): New structure.
16481 (shape_of_subreg): New function.
16482 (simplifiable_subregs): Declare.
16483 * reginfo.c (simplifiable_subreg): New structure.
16484 (simplifiable_subregs_hasher): Likewise.
16485 (simplifiable_subregs): New function.
16486 (invalid_mode_changes): Delete.
16487 (alid_mode_changes, valid_mode_changes_obstack): New variables.
16488 (record_subregs_of_mode): Remove subregs_of_mode parameter.
16489 Record valid mode changes in valid_mode_changes.
16490 (find_subregs_of_mode): Remove subregs_of_mode parameter.
16491 Update calls to record_subregs_of_mode.
16492 (init_subregs_of_mode): Remove invalid_mode_changes and bitmap
16493 handling. Initialize new variables. Update call to
16494 find_subregs_of_mode.
16495 (invalid_mode_change_p): Check new variables instead of
16496 invalid_mode_changes.
16497 (finish_subregs_of_mode): Finalize new variables instead of
16498 invalid_mode_changes.
16499 (target_hard_regs::finalize): New function.
16500 * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
16501 even when CLASS_CANNOT_CHANGE_MODE is undefined.
16503 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
16505 * combine.c (subst): Use simplify_subreg_regno rather than
16506 REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
16508 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
16510 * rtl.h (subreg_info): Expand commentary
16511 * rtlanal.c (subreg_get_info): Likewise.
16513 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
16515 * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
16516 (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
16517 (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.
16519 2014-09-22 Zhenqiang Chen <zhenqiang.chen@arm.com>
16521 * config/arm/arm.c: #include "tm-constrs.h"
16522 (thumb1_size_rtx_costs): Adjust rtx costs.
16524 2014-09-22 Hans-Peter Nilsson <hp@axis.com>
16526 * configure.ac (target_header_dir): Move block defining
16527 this to before the block setting inhibit_libc.
16528 (inhibit_libc): When considering $with_headers, just
16529 check it it's explicitly "no". If not, also check if
16530 $target_header_dir/stdio.h is present. If not, set
16532 * configure: Regenerate.
16534 2014-09-21 Patrick Oppenlander <pattyo.lists@gmail.com>
16536 * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
16538 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
16540 * config/rs6000/rs6000.md (div<mode>3): Fix comment. Use a different
16541 insn for divides by integer powers of two.
16542 (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
16543 (mod<mode>3): Fix formatting.
16544 (three anonymous define_insn and two define_split): Delete.
16546 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
16548 * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
16549 *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
16550 (floatdisf2_internal2): Ditto.
16551 (ashrdi3_no_power): Ditto. Fix formatting.
16553 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
16555 * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
16556 popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
16559 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
16561 * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
16562 constant, use addsi3 directly.
16563 (three anonymous define_insn, two define_split): Delete.
16564 (sub<mode>3): Move. Do not allow constant second operand.
16565 Generate different insn for constant first operand.
16566 (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
16567 (subf<mode>3_imm): New.
16568 (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
16569 (*plus_ltu<mode>): Only handle registers.
16570 (*plus_ltu<mode>_1): New. Handle integer third operand.
16571 (*plus_gtu<mode>): Only handle registers.
16572 (*plus_gtu<mode>_1): New. Handle integer third operand.
16574 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
16576 * config/rs6000/rs6000.md (iorxor): New code_iterator.
16577 (iorxor): New code_attr.
16578 (IORXOR): New code_attr.
16579 (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
16580 (ior<mode>3, xor<mode>3): Delete.
16581 (<iorxor><mode>3): New.
16582 (splitter for "big" integer ior, xor): New.
16583 (*bool<mode>3): Move. Also handle AND.
16584 (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
16585 (splitter for "big" integer ior, xor): Delete.
16587 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
16589 * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
16590 (two anonymous define_insn and two define_split): Delete.
16591 (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.
16593 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
16595 * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
16596 (two anonymous define_insn and two define_split): Delete.
16597 (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.
16599 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
16601 * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
16603 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
16605 * config/rs6000/predicates.md (ca_operand): Allow subregs.
16606 (input_operand): Do not allow ca_operand.
16607 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
16608 carry bit, allow SImode and Pmode.
16609 (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.
16611 2014-09-21 Uros Bizjak <ubizjak@gmail.com>
16613 * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
16614 clobbered registers using clobber_reg. Remove UNSPEC decoration.
16615 * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
16616 (*call_rex64_ms_sysv): Remove.
16617 (*call_value_rex64_ms_sysv): Ditto.
16618 * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.
16620 2014-09-20 Joern Rennecke <joern.rennecke@embecosm.com>
16622 * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
16623 operand 3 to "CnL".
16625 2014-09-20 Andreas Schwab <schwab@suse.de>
16627 * config/ia64/ia64.md: Remove constraints from define_split
16630 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
16632 * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
16633 (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
16634 possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
16635 (get_dynamic_type): Remove.
16636 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
16637 (clear_speculation): Bring to ipa-deivrt.h
16638 (get_class_context): Rename to ...
16639 (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
16640 (contains_type_p): Update.
16641 (get_dynamic_type): Rename to ...
16642 ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
16643 (possible_polymorphic_call_targets): UPdate.
16644 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
16645 * ipa-prop.c (ipa_analyze_call_uses): Update.
16647 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
16649 * ipa-visibility.c (varpool_node::externally_visible_p): Do not
16650 privatize dynamic TLS variables.
16652 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
16654 * diagnostic.c (warning_n): New function.
16655 * diagnostic-core.h (warning_n): Declare.
16656 * ipa-devirt.c (ipa_devirt): Handle singulars correctly;
16657 output dynamic counts when available.
16659 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
16661 PR tree-optimization/63255
16662 * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
16663 issue in setting body_removed flag.
16665 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
16668 * c-family/c-common.c (handle_alias_ifunc_attribute): Check
16669 that visibility change is possible
16670 (handle_weakref_attribute): Likewise.
16671 * cgraph.h (symtab_node): Add method get_create and
16672 field refuse_visibility_changes.
16673 (symtab_node::get_create): New method.
16674 * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
16675 * varasm.c (mark_weak): Verify that visibility change is
16678 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com>
16680 * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
16681 for base_reg_operand to be common between LO_SUM and PLUS.
16682 (fusion_gpr_mem_combo): New predicate to match a fused address
16683 that combines the addis and memory offset address.
16685 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
16687 (emit_fusion_gpr_load): Likewise.
16689 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
16690 signature to pass each argument separately, rather than
16691 using an operands array. Rewrite the insns found by peephole2 to
16692 be a single insn, rather than hoping the insns will still be
16693 together when the peephole pass is done. Drop being called via a
16695 (emit_fusion_gpr_load): Change calling signature to be called from
16696 the fusion_gpr_load_<mode> insns with a combined memory address
16697 instead of the peephole pass passing the addis and offset
16700 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
16702 (power8 fusion peephole): Drop support for doing power8 via a
16703 normal peephole that was created by the peephole2 pass.
16704 (power8 fusion peephole2): Create a new insn with the fused
16705 address, so that the fused operation is kept together after
16706 register allocation is done.
16707 (fusion_gpr_load_<mode>): Likewise.
16709 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
16712 * tree.c (need_assembler_name_p): Do not mangle variadic types.
16714 2014-09-19 Segher Boessenkool <segher@kernel.crashing.org>
16716 * recog.c (scratch_operand): Do not simply allow all hard registers:
16717 only allow those that are allocatable.
16719 2014-09-19 Felix Yang <felix.yang@huawei.com>
16721 * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
16722 comments and fix spacing to conform to coding style.
16724 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
16726 * genrecog.c (validate_pattern): Allow empty constraints in
16729 2014-09-19 Aldy Hernandez <aldyh@redhat.com>
16731 * dwarf2out.c (decl_ultimate_origin): Update comment.
16732 * tree.c (block_ultimate_origin): Same.
16734 2014-09-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16736 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
16737 Update GCC version name to GCC 5.
16738 (rs6000_function_arg_boundary): Likewise.
16739 (rs6000_function_arg): Likewise.
16741 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
16743 * config/sh/sh.md: Fix use of constraints in define_split.
16745 2014-09-19 Markus Trippelsdorf <markus@trippelsdorf.de>
16748 * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
16750 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
16752 * doc/md.texi (Modifiers): Consistently use "read/write"
16753 nomenclature rather than "input/output".
16754 * genrecog.c (constraints_supported_in_insn_p): New.
16755 (validate_pattern): If needed, also check constraints on
16756 MATCH_SCRATCH operands.
16757 * genoutput.c (validate_insn_alternatives): Catch earlyclobber
16758 operands with no '=' or '+' modifier.
16760 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
16762 * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
16763 scratch register as written.
16765 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16767 * config/s390/s390.c (s390_emit_epilogue): Remove bogus
16770 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16772 * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
16775 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16778 * config/s390/s390.c (s390_emit_epilogue): When doing the return
16779 address load optimization force s390_optimize_prologue to leave it
16780 that way. Only do the optimization if we already decided to push
16781 r14 into a stack slot.
16783 2014-09-19 Marat Zakirov <m.zakirov@samsung.com>
16785 * asan.c (build_check_stmt): Alignment arg was added.
16786 (asan_expand_check_ifn): Optimization for alignment >= 8.
16788 2014-09-19 Olivier Hainque <hainque@adacore.com>
16790 * config/i386/vxworksae.h: Remove obsolete definitions.
16791 (STACK_CHECK_PROTECT): Define.
16792 * config/i386/vx-common.h: Remove. Merge contents within
16793 config/i386/vxworks.h.
16794 * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
16797 2014-09-19 Olivier Hainque <hainque@adacore.com>
16799 * config.gcc (powerpc-wrs-vxworksmils): New configuration.
16800 * config/rs6000/t-vxworksmils: New file.
16801 * config/rs6000/vxworksmils.h: New file.
16803 2014-09-19 Olivier Hainque <hainque@adacore.com>
16805 * varasm.c (default_section_type_flags): Flag .persistent.bss
16806 sections as SECTION_BSS.
16808 2014-09-19 Nick Clifton <nickc@redhat.com>
16810 * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
16811 pop'ed registers so that DCE does not eliminate them.
16813 2014-09-18 Jan Hubicka <hubicka@ucw.cz>
16816 * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
16818 2014-09-18 Joseph Myers <joseph@codesourcery.com>
16820 * system.h (LIBGCC2_TF_CEXT): Poison.
16821 * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
16822 * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
16823 * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
16824 * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
16825 * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
16826 * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
16827 * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
16828 * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
16829 * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
16831 2014-09-19 Kito Cheng <kito@0xlab.org>
16833 * except.h: Fix header guard.
16834 * addresses.h: Add missing header guard.
16835 * cfghooks.h: Likewise.
16836 * collect-utils.h: Likewise.
16837 * collect2-aix.h: Likewise.
16838 * conditions.h: Likewise.
16839 * cselib.h: Likewise.
16840 * dwarf2asm.h: Likewise.
16841 * graphds.h: Likewise.
16842 * graphite-scop-detection.h: Likewise.
16843 * gsyms.h: Likewise.
16844 * hw-doloop.h: Likewise.
16845 * incpath.h: Likewise.
16846 * ipa-inline.h: Likewise.
16847 * ipa-ref.h: Likewise.
16848 * ira-int.h: Likewise.
16850 * lra-int.h: Likewise.
16852 * lto-section-names.h: Likewise.
16853 * read-md.h: Likewise.
16854 * reload.h: Likewise.
16855 * rtl-error.h: Likewise.
16856 * sdbout.h: Likewise.
16857 * targhooks.h: Likewise.
16858 * tree-affine.h: Likewise.
16859 * xcoff.h: Likewise.
16860 * xcoffout.h: Likewise.
16862 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
16865 * haifa-sched.c (schedule_block): Advance cycle at the end of BB
16868 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
16871 * lra.c (lra): Call recog_init.
16873 2014-09-18 Jakub Jelinek <jakub@redhat.com>
16876 * asan.c (transform_statements): Don't instrument clobber statements.
16878 2014-09-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16880 * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
16881 to neon_load1_1reg<q>.
16883 2014-09-17 Jakub Jelinek <jakub@redhat.com>
16886 * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
16887 if there are only debug stmts after the noreturn call, instead
16888 remove the debug stmts.
16890 2014-09-17 Jan Hubicka <hubicka@ucw.cz>
16892 * ipa-devirt.c (type_pair, default_hashset_traits): New types.
16893 (odr_types_equivalent_p): Use pair hash.
16894 (odr_subtypes_equivalent_p): Likewise, do structural compare
16895 on ODR types that may be mismatched.
16896 (warn_odr): Support warning when only one field is given.
16897 (odr_types_equivalent_p): Strenghten comparsions made;
16899 (add_type_duplicate): Update VISITED hash set.
16901 2014-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
16903 * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
16904 Enable selection of 'posix' or no thread model.
16906 2014-09-17 Andrew Stubbs <ams@codesourcery.com>
16908 * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
16909 when architecture is older than ARMv7.
16911 2014-09-16 John David Anglin <danglin@gcc.gnu.org>
16914 * config/pa/pa.c (pa_function_value): Directly handle aggregates
16915 that fit exactly in a word or double word.
16917 2014-09-16 Ilya Tocar <ilya.tocar@intel.com>
16919 * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
16920 zmm/k regs support.
16922 2014-09-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
16923 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16924 Anna Tikhonova <anna.tikhonova@intel.com>
16925 Ilya Tocar <ilya.tocar@intel.com>
16926 Andrey Turetskiy <andrey.turetskiy@intel.com>
16927 Ilya Verbin <ilya.verbin@intel.com>
16928 Kirill Yukhin <kirill.yukhin@intel.com>
16929 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16931 * config/i386/i386.c
16932 (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
16933 * config/i386/sse.md
16934 (define_mode_iterator VI48F_256): New.
16935 (define_mode_attr extract_type): Ditto.
16936 (define_mode_attr extract_suf): Ditto.
16937 (define_mode_iterator AVX512_VEC): Ditto.
16939 "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
16941 (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
16943 "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
16945 (define_mode_attr extract_type_2): Ditto.
16946 (define_mode_attr extract_suf_2): Ditto.
16947 (define_mode_iterator AVX512_VEC_2): Ditto.
16949 "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
16950 AVX512_VEC_2 mode iterator.
16951 (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
16952 (define_expand "avx512vl_vextractf128<mode>"): Ditto.
16953 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
16954 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
16955 (define_split for V16FI mode): Ditto.
16956 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
16957 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
16958 (define_split for VI8F_256 mode): Ditto.
16959 (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
16960 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
16961 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
16962 (define_split for VI4F_256 mode): Ditto.
16963 (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
16964 (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
16965 (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
16966 (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
16967 (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
16968 (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
16969 (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
16970 Update `type' attribute, remove explicit `memory' attribute calculation.
16972 2014-09-16 Kito Cheng <kito@0xlab.org>
16974 * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
16975 ira_spilled_reg_stack_slots_num if using lra.
16976 (do_reload): Remove release ira_spilled_reg_stack_slots part.
16977 * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
16978 make sure not using lra.
16979 (ira_reuse_stack_slot): Likewise.
16980 (ira_mark_new_stack_slot): Likewise.
16982 2014-09-15 Andi Kleen <ak@linux.intel.com>
16984 * function.c (allocate_struct_function): Force
16985 DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
16986 profiling is disabled.
16988 2014-09-15 Trevor Saunders <tsaunders@mozilla.com>
16990 * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
16991 config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
16992 emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
16993 reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
16994 macro with statically checked member functions.
16995 * rtl.h (rtx_insn::deleted): New method.
16996 (rtx_insn::set_deleted): Likewise.
16997 (rtx_insn::set_undeleted): Likewise.
16998 (INSN_DELETED_P): Remove.
17000 2014-09-15 Trevor Saunders <tsaunders@mozilla.com>
17002 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
17003 result of emit_jump_insn_before to a new variable.
17004 * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
17005 (mark_jump_label_1): Likewise.
17006 (mark_jump_label_asm): Likewise.
17007 * reload1.c (gen_reload): Change type of tem to rtx_insn *.
17008 * rtl.h (mark_jump_label): Adjust.
17010 2014-09-15 Jakub Jelinek <jakub@redhat.com>
17012 * Makefile.in (dg_target_exps): Remove.
17013 (check_gcc_parallelize): Change to just an upper bound number.
17014 (check-%-subtargets): Always print the non-parallelized goals.
17015 (check_p_vars, check_p_comma, check_p_subwork): Remove.
17016 (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
17017 check_p_numbers3, check_p_numbers4, check_p_numbers5,
17018 check_p_numbers6): New variables.
17019 (check_p_numbers): Set to sequence from 1 to 9999.
17020 (check_p_subdirs): Set to sequence from 1 to minimum of
17021 $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
17023 (check-%, check-parallel-%): Rewritten so that for parallelized
17024 testing each job runs all the *.exp files, with
17025 GCC_RUNTEST_PARALLELIZE_DIR set in environment.
17027 2014-09-15 David Malcolm <dmalcolm@redhat.com>
17029 * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
17031 (arc_sets_cc_p): Likewise.
17032 * config/arc/arc.c (arc_print_operand): Use methods of
17033 "final_sequence" for clarity, and to enable strengthening of
17034 locals "jump" and "delay" from rtx to rtx_insn *.
17035 (arc_adjust_insn_length): Strengthen local "prev" from rtx to
17036 rtx_insn *; use method of rtx_sequence for typesafety.
17037 (arc_get_insn_variants): Use insn method of rtx_sequence for
17039 (arc_pad_return): Likewise.
17040 (arc_attr_type): Strengthen param from rtx to rtx_insn *.
17041 (arc_sets_cc_p): Likewise. Also, convert a GET_CODE check to a
17042 dyn_cast to rtx_sequence *, using insn method for typesafety.
17043 * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
17044 rtx_sequence * and use insn method when invoking get_attr_length.
17045 * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
17046 to rtx_insn *. Replace a GET_CODE check with a dyn_cast to
17047 rtx_sequence *, introducing a local "seq", using its insn method
17048 from typesafety and clarity.
17049 (add_sched_insns_for_speculation): Strengthen local "next" from
17051 * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
17052 (predicate_insn): Likewise.
17053 * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
17055 * config/cris/cris.c (cris_notice_update_cc): Likewise.
17056 * config/epiphany/epiphany-protos.h
17057 (extern void epiphany_insert_mode_switch_use): Likewise for param
17059 (get_attr_sched_use_fpu): Likewise for param.
17060 * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
17061 Likewise for param "insn".
17062 * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
17063 param "insn" of "target_insert_mode_switch_use" callback.
17064 * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
17065 (frv_issues_to_branch_unit_p): Likewise.
17066 (frv_pack_insn_p): Likewise.
17067 (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
17068 const rtx * (i.e. mutable rtx_def * const *) to
17069 rtx_insn * const *.
17070 * config/i386/i386-protos.h (standard_sse_constant_opcode):
17071 Strengthen first param from rtx to rtx_insn *.
17072 (output_fix_trunc): Likewise.
17073 * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
17074 (output_fix_trunc): Likewise.
17075 (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
17077 (min_insn_size): Likewise for param "insn".
17078 (get_mem_group): Likewise.
17079 (is_cmp): Likewise.
17080 (get_insn_path): Likewise.
17081 (get_insn_group): Likewise.
17082 (count_num_restricted): Likewise.
17083 (fits_dispatch_window): Likewise.
17084 (add_insn_window): Likewise.
17085 (add_to_dispatch_window): Likewise.
17086 (debug_insn_dispatch_info_file): Likewise.
17087 * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
17089 * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
17090 "cmp" and local "prev".
17091 (m32c_output_compare): Likewise for param "insn".
17092 * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
17093 a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
17094 (define_predicate "large_insn_p"): Likewise.
17095 * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
17096 param from rtx to rtx_insn *.
17097 (attr_op_mem m68k_sched_attr_op_mem): Likewise.
17098 * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
17099 (m68k_sched_attr_size): Likewise.
17100 (sched_get_opxy_mem_type): Likewise for param "insn".
17101 (m68k_sched_attr_op_mem): Likewise.
17102 (sched_mem_operand_p): Likewise.
17103 * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
17104 * config/mep/mep.c (mep_multi_slot): Likewise.
17105 * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
17107 (mips_sync_loop_insns): Likewise.
17108 * config/mips/mips.c (mips_print_operand_punctuation): Use insn
17109 method of "final_sequence" for typesafety.
17110 (mips_process_sync_loop): Strengthen param "insn" from rtx to
17112 (mips_output_sync_loop): Likewise.
17113 (mips_sync_loop_insns): Likewise.
17114 (mips_74k_agen_init): Likewise.
17115 (mips_sched_init): Use NULL rather than NULL_RTX when working with
17117 * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
17118 Strengthen param "insn" from rtx to rtx_insn *.
17119 * config/nds32/nds32.c (nds32_target_alignment): Likewise for
17121 * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
17123 * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
17124 "insn". Use method of rtx_sequence for typesafety.
17125 (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
17127 (branch_needs_nop_p): Likewise.
17128 (use_skip_p): Likewise.
17129 (pa_insn_refs_are_delayed): Likewise.
17130 * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
17131 for locals "insn", "ninsn".
17132 * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
17134 (is_cracked_insn): Likewise.
17135 (is_branch_slot_insn): Likewise.
17136 (is_nonpipeline_insn): Likewise.
17137 (insn_terminates_group_p): Likewise.
17138 (insn_must_be_first_in_group): Likewise.
17139 (insn_must_be_last_in_group): Likewise.
17140 (force_new_group): Likewise for param "next_insn".
17141 * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
17143 (s390_sched_score): Likewise.
17144 * config/sh/sh-protos.h (output_branch): Likewise for param 2.
17145 (rtx sfunc_uses_reg): Likewise for sole param.
17146 * config/sh/sh.c (sh_print_operand): Use insn method of
17147 final_sequence for typesafety.
17148 (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
17149 Use insn method of final_sequence for typesafety.
17150 (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
17151 * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
17153 (eligible_for_return_delay): Likewise.
17154 (eligible_for_sibcall_delay): Likewise.
17155 * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
17156 (eligible_for_return_delay): Likewise.
17157 (eligible_for_sibcall_delay): Likewise.
17158 * config/stormy16/stormy16-protos.h
17159 (xstormy16_output_cbranch_hi): Likewise for final param.
17160 (xstormy16_output_cbranch_si): Likewise.
17161 * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
17162 (xstormy16_output_cbranch_si): Likewise.
17163 * config/v850/v850-protos.h (notice_update_cc): Likewise.
17164 * config/v850/v850.c (notice_update_cc): Likewise.
17166 * final.c (get_attr_length_1): Strengthen param "insn" and param
17167 of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
17168 (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
17169 (get_attr_min_length): Likewise.
17170 (shorten_branches): Likewise for signature of locals "length_fun"
17171 and "inner_length_fun". Introduce local rtx_sequence * "seqn"
17172 from a checked cast and use its methods for clarity and to enable
17173 strengthening local "inner_insn" from rtx to rtx_insn *.
17174 * genattr.c (gen_attr): When writing out the prototypes of the
17175 various generated "get_attr_" functions, strengthen the params of
17176 the non-const functions from rtx to rtx_insn *.
17177 Similarly, strengthen the params of insn_default_length,
17178 insn_min_length, insn_variable_length_p, insn_current_length.
17179 (main): Similarly, strengthen the param of num_delay_slots,
17180 internal_dfa_insn_code, insn_default_latency, bypass_p,
17181 insn_latency, min_issue_delay, print_reservation,
17182 insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
17183 "insn_default_latency" callbacks. Rename hook_int_rtx_unreachable
17184 to hook_int_rtx_insn_unreachable.
17185 * genattrtab.c (write_attr_get): When writing out the generated
17186 "get_attr_" functions, strengthen the param "insn" from rtx to
17187 rtx_insn *, eliminating a checked cast.
17188 (make_automaton_attrs): When writing out prototypes of
17189 "internal_dfa_insn_code_", "insn_default_latency_" functions
17190 and the "internal_dfa_insn_code" and "insn_default_latency"
17191 callbacks, strengthen their params from rtx to rtx_insn *
17192 * genautomata.c (output_internal_insn_code_evaluation): When
17193 writing out code, add a checked cast from rtx to rtx_insn * when
17194 invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
17195 (output_dfa_insn_code_func): Strengthen param of generated
17196 function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
17197 (output_trans_func): Likewise for generated function
17198 "state_transition".
17199 (output_internal_insn_latency_func): When writing out generated
17200 function "internal_insn_latency", rename params from "insn" and
17201 "insn2" to "insn_or_const0" and "insn2_or_const0". Reintroduce
17202 locals "insn" and "insn2" as rtx_insn * with checked casts once
17203 we've proven that we're not dealing with const0_rtx.
17204 (output_insn_latency_func): Strengthen param of generated
17205 function "insn_latency" from rtx to rtx_insn *.
17206 (output_print_reservation_func): Likewise for generated function
17207 "print_reservation".
17208 (output_insn_has_dfa_reservation_p): Likewise for generated
17209 function "insn_has_dfa_reservation_p".
17210 * hooks.c (hook_int_rtx_unreachable): Rename to...
17211 (hook_int_rtx_insn_unreachable): ...this, and strengthen param
17212 from rtx to rtx_insn *.
17213 * hooks.h (hook_int_rtx_unreachable): Likewise.
17214 (extern int hook_int_rtx_insn_unreachable): Likewise.
17215 * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
17216 (get_attr_min_length): Likewise.
17217 * recog.c (get_enabled_alternatives): Likewise.
17218 * recog.h (alternative_mask get_enabled_alternatives): Likewise.
17219 * reorg.c (find_end_label): Introduce local rtx "pat" and
17220 strengthen local "insn" from rtx to rtx_insn *.
17221 (redundant_insn): Use insn method of "seq" rather than element for
17222 typesafety; strengthen local "control" from rtx to rtx_insn *.
17223 * resource.c (mark_referenced_resources): Add checked cast to
17224 rtx_insn * within INSN/JUMP_INSN case.
17225 (mark_set_resources): Likewise.
17226 * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
17229 2014-09-15 David Malcolm <dmalcolm@redhat.com>
17231 * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
17232 param "label" from rtx to rtx_insn *.
17233 * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
17235 * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
17236 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
17237 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
17238 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
17239 * final.c (default_label_align_after_barrier_max_skip): Strengthen
17240 param from rtx to rtx_insn *.
17241 (default_loop_align_max_skip): Likewise.
17242 (default_label_align_max_skip): Likewise.
17243 (default_jump_align_max_skip): Likewise.
17244 * target.def (label_align_after_barrier_max_skip): Likewise.
17245 (loop_align_max_skip): Likewise.
17246 (label_align_max_skip): Likewise.
17247 (jump_align_max_skip): Likewise.
17248 * targhooks.h (default_label_align_after_barrier_max_skip):
17250 (default_loop_align_max_skip): Likewise.
17251 (default_label_align_max_skip): Likewise.
17252 (default_jump_align_max_skip): Likewise.
17254 2014-09-15 David Malcolm <dmalcolm@redhat.com>
17256 * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
17257 from const_rtx to const rtx_insn *. Update union members from rtx
17259 * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
17260 * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
17261 (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
17262 strengthen both params from const_rtx to const rtx_insn *.
17263 * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
17264 (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
17265 * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
17267 * target.def (can_follow_jump): Strengthen both params from
17268 const_rtx to const rtx_insn *, and update default implementation
17269 from hook_bool_const_rtx_const_rtx_true to
17270 hook_bool_const_rtx_insn_const_rtx_insn_true.
17272 2014-09-15 David Malcolm <dmalcolm@redhat.com>
17274 * sched-deps.c (deps_start_bb): Strengthen param "head" and local
17275 "insn" from rtx to rtx_insn *.
17276 * sched-int.h (deps_start_bb): Likewise for 2nd param.
17278 2014-09-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
17279 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17280 Anna Tikhonova <anna.tikhonova@intel.com>
17281 Ilya Tocar <ilya.tocar@intel.com>
17282 Andrey Turetskiy <andrey.turetskiy@intel.com>
17283 Ilya Verbin <ilya.verbin@intel.com>
17284 Kirill Yukhin <kirill.yukhin@intel.com>
17285 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17287 * config/i386/sse.md
17288 (define_insn "vcvtph2ps<mask_name>"): Add masking.
17289 (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
17290 (define_insn "vcvtph2ps256<mask_name>"): Ditto.
17291 (define_expand "vcvtps2ph_mask"): New.
17292 (define_insn "*vcvtps2ph<mask_name>"): Add masking.
17293 (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
17294 (define_insn "vcvtps2ph256<mask_name>"): Ditto.
17296 2014-09-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
17297 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17298 Anna Tikhonova <anna.tikhonova@intel.com>
17299 Ilya Tocar <ilya.tocar@intel.com>
17300 Andrey Turetskiy <andrey.turetskiy@intel.com>
17301 Ilya Verbin <ilya.verbin@intel.com>
17302 Kirill Yukhin <kirill.yukhin@intel.com>
17303 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17305 * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
17307 (define_mode_iterator VI24_AVX512BW_1): Ditto.
17308 (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
17309 (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
17310 (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
17311 also for TARGET_AVX512VL.
17312 (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
17314 2014-09-15 Markus Trippelsdorf <markus@trippelsdorf.de>
17316 * doc/install.texi (Options specification): add
17317 --disable-libsanitizer item.
17319 2014-09-14 James Clarke <jrtc27@jrtc27.com>
17320 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
17323 * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
17325 * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
17326 kernel version check to avoid incrementing it after every major OS X
17328 (darwin_default_min_version): Avoid static memory buffer.
17330 2014-09-13 Jan Hubicka <hubicka@ucw.cz>
17332 * tree.c (need_assembler_name_p): Store C++ type mangling only
17335 2014-09-13 Marek Polacek <polacek@redhat.com>
17337 * tree.c (protected_set_expr_location): Don't check whether T is
17340 2014-09-12 DJ Delorie <dj@redhat.com>
17342 * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
17343 (extend_and_shift1_hipsi2): Likewise.
17344 (extend_and_shift2_hipsi2): Likewise.
17346 2014-09-12 David Malcolm <dmalcolm@redhat.com>
17348 * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
17349 with NULL when dealing with an insn.
17350 * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
17351 from rtx to rtx_insn *.
17352 * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
17353 const_rtx to const rtx_insn *.
17354 * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
17356 2014-09-12 Trevor Saunders <tsaunders@mozilla.com>
17358 * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
17361 2014-09-12 Joseph Myers <joseph@codesourcery.com>
17363 * target.def (libgcc_floating_mode_supported_p): New hook.
17364 * targhooks.c (default_libgcc_floating_mode_supported_p): New
17366 * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
17367 * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
17368 (LIBGCC2_HAS_TF_MODE): Remove.
17369 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
17370 * doc/tm.texi: Regenerate.
17371 * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
17373 * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
17374 (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
17375 * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
17376 * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
17377 * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17378 * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
17379 * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
17380 * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
17381 * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
17382 * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
17384 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
17385 * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17386 * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17387 * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17388 * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17389 * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17390 * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17391 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
17392 * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
17393 * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
17394 * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17395 * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
17396 * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
17397 * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
17399 * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
17401 (ia64_libgcc_floating_mode_supported_p): New function.
17402 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
17403 * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
17404 (IA64_NO_LIBGCC_TFMODE): Define.
17405 * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
17406 * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
17408 (pdp11_scalar_mode_supported_p): New function.
17409 * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
17410 * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
17412 2014-09-12 Richard Biener <rguenther@suse.de>
17414 PR middle-end/63237
17415 * gimple-fold.c (get_maxval_strlen): Gimplify string length.
17417 2014-09-12 Marc Glisse <marc.glisse@inria.fr>
17419 * tree.c (integer_each_onep): New function.
17420 * tree.h (integer_each_onep): Declare it.
17421 * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
17422 -A - 1 to ~A. Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
17423 (X & 1) == 0 for vector and complex.
17425 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
17427 * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
17429 (cortexa53_regmove_cost): New cost table for A53. Increase GP2FP/FP2GP
17430 cost to spilling from integer to FP registers.
17432 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
17434 * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
17436 (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
17437 are now handled correctly.
17439 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
17441 * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
17442 handling of CALLER_SAVE_REGS and POINTER_REGS.
17444 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
17446 * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
17447 the number of hard registers.
17449 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
17450 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17451 Anna Tikhonova <anna.tikhonova@intel.com>
17452 Ilya Tocar <ilya.tocar@intel.com>
17453 Andrey Turetskiy <andrey.turetskiy@intel.com>
17454 Ilya Verbin <ilya.verbin@intel.com>
17455 Kirill Yukhin <kirill.yukhin@intel.com>
17456 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17458 * config/i386/sse.md
17459 (define_mode_iterator VI48_AVX512VL): New.
17460 (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
17461 "avx512f_vternlog<mode>_maskz" and update mode iterator.
17462 (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
17463 from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
17464 (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
17465 "avx512f_vternlog<mode>_mask" and update mode iterator.
17466 (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
17467 from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
17469 (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
17470 "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
17471 (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
17472 "avx512f_<rotate><mode><mask_name>" and update mode iterator.
17473 (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
17474 (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
17476 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
17477 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17478 Anna Tikhonova <anna.tikhonova@intel.com>
17479 Ilya Tocar <ilya.tocar@intel.com>
17480 Andrey Turetskiy <andrey.turetskiy@intel.com>
17481 Ilya Verbin <ilya.verbin@intel.com>
17482 Kirill Yukhin <kirill.yukhin@intel.com>
17483 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17485 * config/i386/sse.md (VI128_256): Delete.
17486 (define_mode_iterator VI124_256): New.
17487 (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
17488 (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
17489 (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
17490 (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
17491 "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
17492 (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
17493 (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
17494 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
17496 (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
17497 in presence of AVX-512.
17499 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
17500 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17501 Anna Tikhonova <anna.tikhonova@intel.com>
17502 Ilya Tocar <ilya.tocar@intel.com>
17503 Andrey Turetskiy <andrey.turetskiy@intel.com>
17504 Ilya Verbin <ilya.verbin@intel.com>
17505 Kirill Yukhin <kirill.yukhin@intel.com>
17506 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17508 * config/i386/sse.md
17509 (define_expand "<avx512>_gathersi<mode>"): Rename from
17510 "avx512f_gathersi<mode>".
17511 (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
17512 (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
17513 (define_expand "<avx512>_gatherdi<mode>"): Rename from
17514 "avx512f_gatherdi<mode>".
17515 (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
17516 (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
17518 (define_expand "<avx512>_scattersi<mode>"): Rename from
17519 "avx512f_scattersi<mode>".
17520 (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
17521 (define_expand "<avx512>_scatterdi<mode>"): Rename from
17522 "avx512f_scatterdi<mode>".
17523 (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
17525 2014-09-12 Richard Sandiford <richard.sandiford@arm.com>
17527 * ira.h (ira_finish_once): Delete.
17528 * ira-int.h (target_ira_int::~target_ira_int): Declare.
17529 (target_ira_int::free_ira_costs): Likewise.
17530 (target_ira_int::free_register_move_costs): Likewise.
17531 (ira_finish_costs_once): Delete.
17532 * ira.c (free_register_move_costs): Replace with...
17533 (target_ira_int::free_register_move_costs): ...this new function.
17534 (target_ira_int::~target_ira_int): Define.
17535 (ira_init): Call free_register_move_costs as a member function rather
17536 than a global function.
17537 (ira_finish_once): Delete.
17538 * ira-costs.c (free_ira_costs): Replace with...
17539 (target_ira_int::free_ira_costs): ...this new function.
17540 (ira_init_costs): Call free_ira_costs as a member function rather
17541 than a global function.
17542 (ira_finish_costs_once): Delete.
17543 * target-globals.c (target_globals::~target_globals): Call the
17544 target_ira_int destructor.
17545 * toplev.c: Include lra.h.
17546 (finalize): Call lra_finish_once rather than ira_finish_once.
17548 2014-09-11 Jan Hubicka <hubicka@ucw.cz>
17550 * common.opt (flto-odr-type-merging): New flag.
17551 * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
17552 (types_same_for_odr): Likewise.
17553 (odr_subtypes_equivalent_p): Likewise.
17554 (add_type_duplicate): Do not walk type variants.
17555 (register_odr_type): New function.
17556 * ipa-utils.h (register_odr_type): Declare.
17557 (odr_type_p): New function.
17558 * langhooks.c (lhd_set_decl_assembler_name): Do not compute
17560 * doc/invoke.texi (-flto-odr-type-merging): Document.
17561 * tree.c (need_assembler_name_p): Compute ODR names when asked
17563 * tree.h (DECL_ASSEMBLER_NAME): Update comment.
17565 2014-09-11 H.J. Lu <hongjiu.lu@intel.com>
17568 * config/i386/i386.c (ix86_option_override_internal): Also turn
17569 off OPTION_MASK_ABI_X32 for -m16.
17571 2014-09-11 Segher Boessenkool <segher@kernel.crashing.org>
17573 * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
17576 2014-09-11 Marc Glisse <marc.glisse@inria.fr>
17579 * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
17580 Directly forward to __*_DENORM_MIN__.
17582 2014-09-11 David Malcolm <dmalcolm@redhat.com>
17584 * rtl.h (LABEL_REF_LABEL): New macro.
17586 * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
17587 of XEXP (, 0), where we know that we have a LABEL_REF.
17588 * cfgbuild.c (make_edges): Likewise.
17589 (purge_dead_tablejump_edges): Likewise.
17590 * cfgexpand.c (convert_debug_memory_address): Likewise.
17591 * cfgrtl.c (patch_jump_insn): Likewise.
17592 * combine.c (distribute_notes): Likewise.
17593 * cse.c (hash_rtx_cb): Likewise.
17594 (exp_equiv_p): Likewise.
17595 (fold_rtx): Likewise.
17596 (check_for_label_ref): Likewise.
17597 * cselib.c (rtx_equal_for_cselib_1): Likewise.
17598 (cselib_hash_rtx): Likewise.
17599 * emit-rtl.c (mark_label_nuses): Likewise.
17600 * explow.c (convert_memory_address_addr_space): Likewise.
17601 * final.c (output_asm_label): Likewise.
17602 (output_addr_const): Likewise.
17603 * gcse.c (add_label_notes): Likewise.
17604 * genconfig.c (walk_insn_part): Likewise.
17605 * genrecog.c (validate_pattern): Likewise.
17606 * ifcvt.c (cond_exec_get_condition): Likewise.
17607 (noce_emit_store_flag): Likewise.
17608 (noce_get_alt_condition): Likewise.
17609 (noce_get_condition): Likewise.
17610 * jump.c (maybe_propagate_label_ref): Likewise.
17611 (mark_jump_label_1): Likewise.
17612 (redirect_exp_1): Likewise.
17613 (rtx_renumbered_equal_p): Likewise.
17614 * lra-constraints.c (operands_match_p): Likewise.
17615 * reload.c (operands_match_p): Likewise.
17616 (find_reloads): Likewise.
17617 * reload1.c (set_label_offsets): Likewise.
17618 * reorg.c (get_branch_condition): Likewise.
17619 * rtl.c (rtx_equal_p_cb): Likewise.
17620 (rtx_equal_p): Likewise.
17621 * rtlanal.c (reg_mentioned_p): Likewise.
17622 (rtx_referenced_p): Likewise.
17623 (get_condition): Likewise.
17624 * sched-vis.c (print_value): Likewise.
17625 * varasm.c (const_hash_1): Likewise.
17626 (compare_constant): Likewise.
17627 (const_rtx_hash_1): Likewise.
17628 (output_constant_pool_1): Likewise.
17630 2014-09-11 Segher Boessenkool <segher@kernel.crashing.org>
17632 * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
17633 tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
17635 * config/rs6000/vector.md (cr6_test_for_zero_reverse,
17636 cr6_test_for_lt_reverse): Ditto.
17638 2014-09-11 Paolo Carlini <paolo.carlini@oracle.com>
17641 * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
17643 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
17645 * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
17646 TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
17647 aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
17648 aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
17651 (aarch64_fold_builtin): Remove all reinterpret cases.
17653 * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
17655 * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
17657 * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
17658 aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
17659 aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
17660 aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
17661 aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
17662 aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
17663 aarch64_reinterpretv2df<mode>): Delete.
17665 * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
17667 * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
17668 vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
17669 vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
17670 vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
17671 vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
17672 vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
17673 vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
17674 vreinterpret_u32_f64): Use cast.
17676 * config/aarch64/iterators.md (VD_RE): Delete.
17678 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
17680 * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
17681 (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
17682 vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
17683 vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
17684 vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
17685 vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
17686 vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
17687 Replace inline assembler with __aarch64_vset_lane_any.
17689 2014-09-11 James Greenhalgh <james.greenhalgh@arm.com>
17691 * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
17693 (vmull_high_lane_s32): Likewise.
17694 (vmull_high_lane_u16): Likewise.
17695 (vmull_high_lane_u32): Likewise.
17697 2014-09-11 Jason Merrill <jason@redhat.com>
17700 * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
17702 2014-09-11 Georg-Johann Lay <avr@gjlay.de>
17705 * config/avr/avr.md (*tablejump.3byte-pc): New insn.
17706 (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL. Add void clobber.
17707 (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
17709 2014-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
17710 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17711 Anna Tikhonova <anna.tikhonova@intel.com>
17712 Ilya Tocar <ilya.tocar@intel.com>
17713 Andrey Turetskiy <andrey.turetskiy@intel.com>
17714 Ilya Verbin <ilya.verbin@intel.com>
17715 Kirill Yukhin <kirill.yukhin@intel.com>
17716 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17718 * config/i386/sse.md
17719 (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
17720 "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
17721 (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
17723 (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
17724 from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
17726 (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
17728 (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
17729 "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
17730 (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
17731 (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
17732 "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
17733 (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
17734 (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
17735 from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
17737 (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
17739 (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
17740 "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
17741 (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
17743 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
17745 * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
17746 to access removed nodes.
17748 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
17750 PR tree-optimization/63186
17751 * ipa-split.c (test_nonssa_use): Skip nonforced labels.
17752 (mark_nonssa_use): Likewise.
17753 (verify_non_ssa_vars): Verify all header blocks for label
17756 2014-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
17757 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17758 Anna Tikhonova <anna.tikhonova@intel.com>
17759 Ilya Tocar <ilya.tocar@intel.com>
17760 Andrey Turetskiy <andrey.turetskiy@intel.com>
17761 Ilya Verbin <ilya.verbin@intel.com>
17762 Kirill Yukhin <kirill.yukhin@intel.com>
17763 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17765 * config/i386/sse.md
17766 (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
17767 (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
17768 (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
17769 "<avx2_avx512f>_permvar<mode><mask_name>".
17770 (define_insn "<avx512>_permvar<mode><mask_name>"): New.
17771 (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
17772 Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
17773 (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
17775 (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
17776 Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
17777 (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
17778 Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
17780 2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com>
17782 * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
17783 V2DF, V4SF, DF, and DI modes.
17784 (vsx_fmav2df2): Likewise.
17785 (vsx_float_fix_<mode>2): Likewise.
17786 (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
17788 2014-09-10 Xinliang David Li <davidxl@google.com>
17791 * config/arm/arm.md (movcond_addsi): Handle case where source
17792 and target operands are the same.
17794 2014-09-10 David Malcolm <dmalcolm@redhat.com>
17796 * final.c (this_is_asm_operands): Strengthen this variable from
17797 rtx to const rtx_insn *.
17798 * output.h (this_is_asm_operands): Likewise.
17799 * rtl-error.c (location_for_asm): Strengthen param "insn" from
17800 const_rtx to const rtx_insn *.
17801 (diagnostic_for_asm): Likewise.
17802 * rtl-error.h (error_for_asm): Likewise.
17803 (warning_for_asm): Likewise.
17805 2014-09-10 David Malcolm <dmalcolm@redhat.com>
17807 * genextract.c (print_header): When writing out insn_extract to
17808 insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
17809 * recog.h (insn_extract): Strengthen the param from rtx to
17812 2014-09-10 Mike Stump <mikestump@comcast.net>
17814 * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
17817 2014-09-10 Martin Jambor <mjambor@suse.cz>
17819 * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
17820 (analyze): Do not set analyze flag if expand_thunk returns false;.
17821 (create_wrapper): Likewise.
17822 * cgraphclones.c (duplicate_thunk_for_node): Likewise.
17824 2014-09-10 Martin Jambor <mjambor@suse.cz>
17827 * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
17828 new decl properly. Analyze the new thunk if it is expanded.
17830 2014-09-10 Andreas Schwab <schwab@suse.de>
17832 * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
17833 [USED_FOR_TARGET]: Define.
17835 2014-09-10 Matthew Fortune <matthew.fortune@imgtec.com>
17837 * config/mips/mips.c (mips_secondary_reload_class): Handle
17840 2014-09-10 Robert Suchanek <robert.suchanek@imgtec.com>
17842 * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
17845 2014-09-10 Jakub Jelinek <jakub@redhat.com>
17847 * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
17848 and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
17849 * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
17850 SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
17851 flag_delete_null_pointer_checks for them.
17852 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
17853 BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
17854 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
17855 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
17856 * ubsan.c (instrument_bool_enum_load): Set *gsi back to
17858 (instrument_nonnull_arg, instrument_nonnull_return): New functions.
17859 (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
17860 or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
17861 (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
17862 * doc/invoke.texi (-fsanitize=nonnull-attribute,
17863 -fsanitize=returns-nonnull-attribute): Document.
17865 * ubsan.h (struct ubsan_mismatch_data): Removed.
17866 (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
17867 * ubsan.c (ubsan_source_location): For unknown locations,
17868 pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
17869 (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
17870 Allow more than one location and arbitrary extra arguments passed
17871 in ... instead of through MISMATCH pointer.
17872 (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
17873 ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
17874 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
17877 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
17878 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17879 Anna Tikhonova <anna.tikhonova@intel.com>
17880 Ilya Tocar <ilya.tocar@intel.com>
17881 Andrey Turetskiy <andrey.turetskiy@intel.com>
17882 Ilya Verbin <ilya.verbin@intel.com>
17883 Kirill Yukhin <kirill.yukhin@intel.com>
17884 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17886 * config/i386/sse.md
17887 (define_mode_iterator VI48F): New.
17888 (define_insn "<avx512>_compress<mode>_mask"): Rename from
17889 "avx512f_compress<mode>_mask" and update mode iterator.
17890 (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
17891 "avx512f_compressstore<mode>_mask" and update mode iterator.
17892 (define_expand "<avx512>_expand<mode>_maskz"): Rename from
17893 "avx512f_expand<mode>_maskz" and update mode iterator.
17894 (define_insn "<avx512>_expand<mode>_mask"): Rename from
17895 "avx512f_expand<mode>_mask" and update mode iterator.
17897 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
17898 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17899 Anna Tikhonova <anna.tikhonova@intel.com>
17900 Ilya Tocar <ilya.tocar@intel.com>
17901 Andrey Turetskiy <andrey.turetskiy@intel.com>
17902 Ilya Verbin <ilya.verbin@intel.com>
17903 Kirill Yukhin <kirill.yukhin@intel.com>
17904 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17906 * config/i386/i386.c
17907 (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
17908 avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
17909 avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
17910 avx512dq_rangepv4sf_mask.
17911 * config/i386/sse.md
17912 (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
17914 (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
17915 (define_insn "reduces<mode>"): Ditto.
17916 (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
17918 (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
17919 (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
17920 (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
17922 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
17923 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17924 Anna Tikhonova <anna.tikhonova@intel.com>
17925 Ilya Tocar <ilya.tocar@intel.com>
17926 Andrey Turetskiy <andrey.turetskiy@intel.com>
17927 Ilya Verbin <ilya.verbin@intel.com>
17928 Kirill Yukhin <kirill.yukhin@intel.com>
17929 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17931 * config/i386/i386.c
17932 (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
17933 (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
17934 (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
17935 avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
17936 avx512vl_getmantv2df_mask.
17937 (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
17938 avx512f_vgetmantv4sf_round.
17939 * config/i386/sse.md
17940 (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
17941 Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
17943 (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
17944 (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
17945 (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
17946 from "avx512f_scalef<mode><mask_name><round_name>" and update mode
17948 (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
17949 Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
17950 update mode iterator.
17952 "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
17953 "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
17956 "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
17957 from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
17958 update mode iterator.
17959 (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
17960 from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
17963 "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
17964 "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
17966 (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
17967 Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
17968 update mode iterator.
17969 (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
17970 "avx512f_getmant<mode><round_saeonly_name>".
17972 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
17975 * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
17977 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
17978 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17979 Anna Tikhonova <anna.tikhonova@intel.com>
17980 Ilya Tocar <ilya.tocar@intel.com>
17981 Andrey Turetskiy <andrey.turetskiy@intel.com>
17982 Ilya Verbin <ilya.verbin@intel.com>
17983 Kirill Yukhin <kirill.yukhin@intel.com>
17984 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17986 * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
17987 (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
17988 (define_mode_iterator FMAMODE_AVX512): New.
17989 (define_mode_iterator FMAMODE): Remove conditions.
17990 (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
17991 (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
17992 from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
17994 (define_mode_iterator FMAMODE_NOVF512): Remove.
17995 (define_insn "*fma_fmadd_<mode>"): Rename from
17996 "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
17997 FMAMODE mode iterator.
17998 (define_mode_iterator VF_SF_AVX512VL): New.
17999 (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
18000 Use VF_SF_AVX512VL mode iterator.
18001 (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
18002 "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
18004 (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
18005 "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18007 (define_insn "*fma_fmsub_<mode>"): Rename from
18008 "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
18009 FMAMODE mode iterator.
18010 (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
18011 Use VF_SF_AVX512VL mode iterator.
18012 (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
18013 "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
18015 (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
18016 "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18018 (define_insn "*fma_fnmadd_<mode>"): Rename from
18019 "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
18020 use FMAMODE mode iterator.
18021 (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
18022 Use VF_SF_AVX512VL mode iterator.
18023 (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
18024 "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
18026 (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
18027 "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18029 (define_insn "*fma_fnmsub_<mode>"): Rename from
18030 "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
18031 FMAMODE mode iterator.
18032 (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
18033 Use VF_SF_AVX512VL mode iterator.
18034 (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
18035 "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
18037 (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
18038 "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18040 (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
18041 Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
18042 use VF_AVX512VL mode iterator.
18043 (define_insn "*fma_fmaddsub_<mode>"): Rename from
18044 "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
18045 remove subst usage.
18046 (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
18047 Use VF_SF_AVX512VL mode iterator.
18048 (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
18049 "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
18051 (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
18052 "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18054 (define_insn "*fma_fmsubadd_<mode>"): Rename from
18055 "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
18056 remove usage of subst.
18057 (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
18058 Use VF_SF_AVX512VL mode iterator.
18059 (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
18060 "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
18062 (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
18063 "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18066 2014-09-10 Kugan Vivekanandarajah <kuganv@linaro.org>
18069 * calls.c (precompute_arguments): Check
18070 promoted_for_signed_and_unsigned_p and set the promoted mode.
18071 (promoted_for_signed_and_unsigned_p): New function.
18072 (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
18073 and set the promoted mode.
18074 * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
18075 * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
18076 SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
18078 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
18080 * opth-gen.awk: Generate mapping from cpp message reasons to the
18081 options that enable them.
18082 * doc/options.texi (CppReason): Document.
18084 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
18086 * doc/invoke.texi (Wnormalized=): Update.
18088 2014-09-09 Segher Boessenkool <segher@kernel.crashing.org>
18091 * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
18092 operands. Split off the constant operand alternative to ...
18093 (*bool<mode>3_imm): New.
18095 2014-09-09 David Malcolm <dmalcolm@redhat.com>
18097 * rtl.h (single_set_2): Strengthen first param from const_rtx to
18098 const rtx_insn *, and move prototype to above...
18099 (single_set): ...this. Convert this from a macro to an inline
18100 function, enforcing the requirement that the param is a const
18102 (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
18104 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
18105 Strengthen both params from rtx to rtx_insn *.
18106 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
18107 Likewise; introduce locals "producer_set", "consumer_set", using
18108 them in place of "producer" and "consumer" when dealing with SET
18110 * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
18111 when invoking single_set in region guarded by INSN_P.
18112 (avr_out_bitop): Likewise.
18113 (_reg_unused_after): Introduce local rtx_sequence * "seq" in
18114 region guarded by GET_CODE check, using methods to strengthen
18115 local "this_insn" from rtx to rtx_insn *, and for clarity.
18116 * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
18117 Strengthen local "insn" from rtx to rtx_insn *.
18118 (define_insn_and_split "xload<mode>_A"): Likewise.
18119 * config/bfin/bfin.c (trapping_loads_p): Likewise for param
18121 (find_load): Likewise for return type.
18122 (workaround_speculation): Likewise for both locals named
18124 * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
18126 * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
18128 * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
18130 * config/h8300/h8300.c (notice_update_cc): Likewise.
18131 * config/i386/i386.c (ix86_flags_dependent): Likewise for params
18132 "insn" and "dep_insn".
18133 (exact_store_load_dependency): Likewise for both params.
18134 (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
18135 since this now clashes with inline function. Instead, delay
18136 calling single_set until the point where its needed, and then
18137 assign the result to "compare_set" and rework the conditional that
18139 * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
18140 local "last" from rtx to rtx_insn *.
18141 * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
18143 (mips_store_data_bypass_p): Likewise for both params.
18144 * config/mips/mips.c (mips_load_store_insns): Likewise for second
18146 (mips_store_data_bypass_p): Likewise for both params.
18147 (mips_orphaned_high_part_p): Likewise for param "insn".
18148 * config/mn10300/mn10300.c (extract_bundle): Likewise.
18149 (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
18150 Introduce local rtx "insn2_pat".
18151 * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
18153 (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
18154 Introduce local rtx "set", using it in place of "insn" for the
18155 result of single_set. This appears to fix a bug, since the call
18156 to find_regno_note on a SET does nothing.
18157 * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
18158 params from rtx to rtx_insn *.
18159 (set_to_load_agen): Likewise.
18160 * config/s390/s390.c (s390_label_align): Likewise for local
18161 "prev_insn". Introduce new rtx locals "set" and "src", using
18162 them in place of "prev_insn" for the results of single_set
18163 and SET_SRC respectively.
18164 (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
18165 Introduce new rtx local "set" using in place of "jump" for the
18166 result of single_set. Use SET_SRC (set) rather than plain
18168 * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
18170 (noncall_uses_reg): Likewise.
18171 (reg_unused_after): Introduce local rtx_sequence * "seq" in region
18172 guarded by GET_CODE check, using its methods for clarity, and to
18173 enable strengthening local "this_insn" from rtx to rtx_insn *.
18174 * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
18175 "insn" from rtx to rtx_insn *.
18176 (define_expand "umulhisi3"): Likewise.
18177 (define_expand "smulsi3_highpart"): Likewise.
18178 (define_expand "umulsi3_highpart"): Likewise.
18179 * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
18180 local "after". Replace GET_CODE check with a dyn_cast,
18181 introducing new local rtx_sequence * "seq", using insn method for
18184 * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
18185 from rtx to rtx_insn *. Introduce local rtx "pat", using it in
18186 place of "insn" once we're dealing with patterns rather than the
18188 (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
18189 (scan_trace): Likewise for local "elt", updating lookups within
18190 sequence to use insn method rather than element method.
18191 * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
18193 * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
18194 * ifcvt.c (noce_try_abs): Likewise for local "insn".
18195 * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
18196 invoking single_set.
18197 * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
18198 "insn" from rtx to rtx_insn *.
18199 (skip_usage_debug_insns): Likewise for return type, adding a
18201 (check_secondary_memory_needed_p): Likewise for local "insn".
18202 (inherit_reload_reg): Likewise.
18203 * modulo-sched.c (sms_schedule): Likewise for local "count_init".
18204 * recog.c (peep2_attempt): Likewise for local "old_insn", adding
18206 (store_data_bypass_p): Likewise for both params.
18207 (if_test_bypass_p): Likewise.
18208 * recog.h (store_data_bypass_p): Likewise for both params.
18209 (if_test_bypass_p): Likewise.
18210 * reload.c (find_equiv_reg): Likewise for local "where".
18211 * reorg.c (delete_jump): Likewise for param "insn".
18212 * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
18213 to const rtx_insn *.
18214 * store-motion.c (replace_store_insn): Likewise for param "del".
18215 (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
18216 and use its methods for clarity, and to strengthen local "del"
18217 from rtx to rtx_insn *.
18218 (build_store_vectors): Use insn method of "st" when calling
18219 replace_store_insn for typesafety and clarity.
18221 2014-09-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18223 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
18224 UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
18225 on how to make it legal in future.
18227 2014-09-09 David Malcolm <dmalcolm@redhat.com>
18229 * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
18231 (restinsn): Likewise.
18232 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
18233 Likewise for param.
18234 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
18236 * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
18238 (arc_hazard): Likewise for both params.
18239 * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
18240 checked casts to rtx_sequence * and uses of the insn method for
18242 (arc_hazard): Strengthen both params from rtx to rtx_insn *.
18243 (arc_adjust_insn_length): Likewise for param "insn".
18244 (struct insn_length_parameters_s): Likewise for first param of
18245 "get_variants" callback field.
18246 (arc_get_insn_variants): Likewise for first param and local
18247 "inner". Replace a check of GET_CODE with a dyn_cast to
18248 rtx_sequence *, using methods for type-safety and clarity.
18249 * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
18250 rtx_sequence * and uses of the insn method for type-safety when
18251 invoking arc_adjust_insn_length.
18252 * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
18254 (arm_address_offset_is_imm): Likewise.
18255 (struct tune_params): Likewise for params 1 and 3 of the
18256 "sched_adjust_cost" callback field.
18257 * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
18258 params 1 and 3 ("insn" and "dep").
18259 (xscale_sched_adjust_cost): Likewise.
18260 (fa726te_sched_adjust_cost): Likewise.
18261 (cortexa7_older_only): Likewise for param "insn".
18262 (cortexa7_younger): Likewise.
18263 (arm_attr_length_move_neon): Likewise.
18264 (arm_address_offset_is_imm): Likewise.
18265 * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
18266 * config/avr/avr.c (avr_notice_update_cc): Likewise.
18267 * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
18268 (workaround_speculation): Likewise for local "last_condjump".
18269 * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
18270 (shadow_or_blockage_p): Likewise.
18271 (get_unit_reqs): Likewise.
18272 (get_unit_operand_masks): Likewise.
18273 (c6x_registers_update): Likewise.
18274 (returning_call_p): Likewise.
18275 (can_use_callp): Likewise.
18276 (convert_to_callp): Likewise.
18277 (find_last_same_clock): Likwise for local "t".
18278 (reorg_split_calls): Likewise for local "shadow".
18279 (hwloop_pattern_reg): Likewise for param "insn".
18280 * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
18281 * config/frv/frv.c (frv_final_prescan_insn): Likewise.
18282 (frv_extract_membar): Likewise.
18283 (frv_optimize_membar_local): Strengthen param "last_membar" from
18284 rtx * to rtx_insn **.
18285 (frv_optimize_membar_global): Strengthen param "membar" from rtx
18287 (frv_optimize_membar): Strengthen local "last_membar" from rtx *
18289 * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
18290 both params from rtx to rtx_insn *.
18291 (ia64_ld_address_bypass_p): Likewise.
18292 * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
18294 (ia64_safe_type): Likewise.
18295 (group_barrier_needed): Likewise.
18296 (safe_group_barrier_needed): Likewise.
18297 (ia64_single_set): Likewise.
18298 (is_load_p): Likewise.
18299 (record_memory_reference): Likewise.
18300 (get_mode_no_for_insn): Likewise.
18301 (important_for_bundling_p): Likewise.
18302 (unknown_for_bundling_p): Likewise.
18303 (ia64_st_address_bypass_p): Likewise for both params.
18304 (ia64_ld_address_bypass_p): Likewise.
18305 (expand_vselect): Introduce new local rtx_insn * "insn", using it
18306 in place of rtx "x" after the emit_insn call.
18307 * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
18308 Strengthen param from rtx to rtx_insn *.
18309 (ix86_agi_dependent): Likewise for both params.
18310 (ix86_attr_length_immediate_default): Likewise for param 1.
18311 (ix86_attr_length_address_default): Likewise for param.
18312 (ix86_attr_length_vex_default): Likewise for param 1.
18313 * config/i386/i386.c (ix86_attr_length_immediate_default):
18314 Likewise for param "insn".
18315 (ix86_attr_length_address_default): Likewise.
18316 (ix86_attr_length_vex_default): Likewise.
18317 (ix86_agi_dependent): Likewise for both params.
18318 (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
18319 (vselect_insn): Likewise for this variable.
18320 * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
18322 (m68k_sched_attr_opy_type): Likewise.
18323 * config/m68k/m68k.c (sched_get_operand): Likewise.
18324 (sched_attr_op_type): Likewise.
18325 (m68k_sched_attr_opx_type): Likewise.
18326 (m68k_sched_attr_opy_type): Likewise.
18327 (sched_get_reg_operand): Likewise.
18328 (sched_get_mem_operand): Likewise.
18329 (m68k_sched_address_bypass_p): Likewise for both params.
18330 (sched_get_indexed_address_scale): Likewise.
18331 (m68k_sched_indexed_address_bypass_p): Likewise.
18332 * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
18333 (m68k_sched_indexed_address_bypass_p): Likewise.
18334 * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
18335 "label", "ret" from rtx to rtx_insn *, adding a checked cast and
18337 * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
18338 params from rtx to rtx_insn *.
18339 (mips_fmadd_bypass): Likewise.
18340 * config/mips/mips.c (mips_fmadd_bypass): Likewise.
18341 (mips_linked_madd_p): Likewise.
18342 (mips_macc_chains_last_hilo): Likewise for this variable.
18343 (mips_macc_chains_record): Likewise for param.
18344 (vr4130_last_insn): Likewise for this variable.
18345 (vr4130_swap_insns_p): Likewise for both params.
18346 (mips_ls2_variable_issue): Likewise for param.
18347 (mips_need_noat_wrapper_p): Likewise for param "insn".
18348 (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
18349 in place of "x" after the emit_insn.
18350 * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
18351 params from rtx to rtx_insn *.
18352 * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
18353 (pa_combine_instructions): Introduce local "par" for result of
18354 gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
18356 (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
18357 * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
18358 (rl78_alloc_physical_registers_op1): Likewise.
18359 (rl78_alloc_physical_registers_op2): Likewise.
18360 (rl78_alloc_physical_registers_ro1): Likewise.
18361 (rl78_alloc_physical_registers_cmp): Likewise.
18362 (rl78_alloc_physical_registers_umul): Likewise.
18363 (rl78_alloc_address_registers_macax): Likewise.
18364 (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
18365 * config/s390/predicates.md (execute_operation): Likewise for
18367 * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
18369 * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
18370 (addr_generation_dependency_p): Likewise for param "insn".
18371 (s390_agen_dep_p): Likewise for both params.
18372 (s390_fpload_toreg): Likewise for param "insn".
18373 * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
18374 * config/sh/sh.c (sh_loop_align): Likewise for param and local
18376 * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
18377 * config/sh/sh_treg_combine.cc
18378 (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
18380 (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
18381 * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
18382 "and_insn", "load", "shift".
18383 * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
18385 * final.c (final_scan_insn): Introduce local rtx_insn * "other"
18386 for XEXP (note, 0) of the REG_CC_SETTER note.
18387 (cleanup_subreg_operands): Strengthen param "insn" from rtx to
18388 rtx_insn *, eliminating a checked cast made redundant by this.
18389 * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
18391 * genattr.c (main): When writing out the prototype to
18392 const_num_delay_slots, strengthen the param from rtx to
18394 * genattrtab.c (write_const_num_delay_slots): Likewise when
18395 writing out the implementation of const_num_delay_slots.
18396 * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
18397 "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
18398 * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
18399 favor of new rtx locals "src" and "set" and new local rtx_insn *
18401 (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
18403 (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
18404 locals "cond", "if_then_else", "set" and new rtx_insn * locals
18406 (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
18407 "last" from rtx to rtx_insn *. Likewise for a local "tmp",
18408 renaming to "tmp_insn". Eliminate the other local rtx "tmp" from
18409 the top-level scope, replacing with new more tightly-scoped rtx
18410 locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
18411 "new_insn", "copy_of_insn_b", and make local rtx "set" more
18413 * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
18415 * ira.c (setup_prohibited_mode_move_regs): Likewise for local
18417 (ira_setup_alts): Likewise for param "insn".
18418 * lra-constraints.c (emit_inc): Likewise for local "add_insn".
18419 * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
18421 (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
18422 new more-tightly scoped rtx locals "add3_insn", "insn",
18423 "add2_insn" and rtx_insn * "move_insn".
18424 * postreload-gcse.c (eliminate_partially_redundant_load): Add
18425 checked cast on result of gen_move_insn when invoking
18427 * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
18429 (verify_changes): Add a checked cast on "object" when invoking
18431 (extract_insn_cached): Strengthen param "insn" from rtx to
18433 (extract_constrain_insn_cached): Likewise.
18434 (extract_insn): Likewise.
18435 * recog.h (insn_invalid_p): Likewise for param 1.
18436 (recog_memoized): Likewise for param.
18437 (extract_insn): Likewise.
18438 (extract_constrain_insn_cached): Likewise.
18439 (extract_insn_cached): Likewise.
18440 * reload.c (can_reload_into): Likewise for local "test_insn".
18441 * reload.h (cleanup_subreg_operands): Likewise for param.
18442 * reload1.c (emit_insn_if_valid_for_reload): Rename param from
18443 "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
18444 result of emit_insn. Remove a checked cast made redundant by this
18446 * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
18448 * sel-sched.c (get_reg_class): Likewise.
18450 2014-09-09 Marcus Shawcroft <marcus.shawcroft@arm.com>
18451 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18453 * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
18454 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
18456 (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
18458 2014-09-09 David Malcolm <dmalcolm@redhat.com>
18460 * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
18461 const rtx_insn *, and from rtx to rtx_insn * for the other
18462 overloaded variant.
18463 (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
18464 INSN_LOCATION, since we know INSN_P holds.
18465 (insn_line): Strengthen param from const_rtx to const rtx_insn *.
18466 (insn_file): Likewise.
18467 (insn_scope): Likewise.
18468 (insn_location): Likewise.
18470 * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
18471 "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
18472 for the result of gen_load_const_gp.
18473 * config/rs6000/rs6000-protos.h (output_call): Strengthen first
18474 param from rtx to rtx_insn *.
18475 * config/rs6000/rs6000.c (output_call): Likewise.
18476 * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
18477 introducing a checked cast to rtx_sequence * and use of the insn
18479 * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
18480 from rtx to rtx_insn *.
18481 (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
18482 (insn_line): Likewise.
18483 (insn_file): Likewise.
18484 (insn_location): Likewise.
18485 * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
18486 from rtx to rtx_insn *.
18487 * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
18488 cast, using it for calls to INSN_HAS_LOCATION and insn_location.
18489 * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
18490 via a checked cast.
18491 * reorg.c (relax_delay_slots): Strengthen locals named "after"
18492 from rtx to rtx_insn *; use methods of "pat" for type-safety.
18494 2014-09-09 David Malcolm <dmalcolm@redhat.com>
18496 * combine.c (try_combine): Eliminate checked cast on result of
18498 * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
18499 autogenerated one by strengthening the return type and params 2 and 3
18500 from rtx to rtx_insn *, and by naming the params.
18501 * gengenrtl.c (special_rtx): Add INSN to those that are
18503 * rtl.h (gen_rtx_INSN): New prototype.
18505 2014-09-09 David Malcolm <dmalcolm@redhat.com>
18507 * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
18509 (no_equiv): Likewise.
18510 (update_equiv_regs): Likewise.
18511 (setup_reg_equiv): Likewise. Strengthen locals "elem",
18512 "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
18513 from rtx to rtx_insn *. Use methods of "elem" for typesafety and
18515 * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
18516 from rtx to rtx_insn_list *.
18517 * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
18518 rtx_insn_list * and use methods for clarity and typesafety.
18519 * lra-constraints.c (contains_deleted_insn_p): Likewise for param
18521 (init_insn_rhs_dead_pseudo_p): Likewise for local "insns". Remove
18522 redundant check on INSN_P (insns): this cannot hold, as "insns" is
18523 an INSN_LIST, not an insn.
18524 (reverse_equiv_p): Strengthen local "insns" from rtx to
18525 rtx_insn_list * and use methods for clarity and typesafety.
18526 (contains_reloaded_insn_p): Likewise for local "list".
18528 2014-09-09 Jiong Wang <jiong.wang@arm.com>
18530 * config/arm/arm.c (NEON_COPYSIGNF): New enum.
18531 (arm_init_neon_builtins): Support NEON_COPYSIGNF.
18532 (arm_builtin_vectorized_function): Likewise.
18533 * config/arm/arm_neon_builtins.def: New macro for copysignf.
18534 * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
18536 2014-09-09 Richard Sandiford <richard.sandiford@arm.com>
18538 * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
18539 * builtins.h (default_target_builtins): Likewise.
18540 * gcse.h (default_target_gcse): Likewise.
18541 * target-globals.h (target_globals): Add a destructor. Convert
18542 void-pointer fields back to their real type and change from
18543 GTY((atomic)) to GTY((skip)).
18544 (restore_target_globals): Remove casts accordingly.
18545 * target-globals.c (save_target_globals): Use XCNEW rather than
18546 ggc_internal_cleared_alloc to allocate non-GC structures.
18547 Use ggc_cleared_alloc to allocate the target_globals structure
18549 (target_globals::~target_globals): Define.
18551 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18553 * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
18554 mnemonic instead of fldmfdd.
18555 * config/arm/arm.c (vfp_output_fstmd): Rename to...
18556 (vfp_output_vstmd): ... This. Convert output to UAL syntax.
18557 Output vpush when address register is SP.
18558 * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
18559 (vfp_output_vstmd): ... This.
18560 * config/arm/vfp.md (push_multi_vfp): Update call to
18563 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18565 * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
18567 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18569 * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
18570 (*sqrtdf2_vfp): Likewise.
18571 (*cmpsf_vfp): Likewise.
18572 (*cmpsf_trap_vfp): Likewise.
18573 (*cmpdf_vfp): Likewise.
18574 (*cmpdf_trap_vfp): Likewise.
18576 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18578 * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
18579 (*truncdfsf2_vfp): Likewise.
18580 (*truncsisf2_vfp): Likewise.
18581 (*truncsidf2_vfp): Likewise.
18582 (fixuns_truncsfsi2): Likewise.
18583 (fixuns_truncdfsi2): Likewise.
18584 (*floatsisf2_vfp): Likewise.
18585 (*floatsidf2_vfp): Likewise.
18586 (floatunssisf2): Likewise.
18587 (floatunssidf2): Likewise.
18589 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18591 * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
18592 (*muldf3_vfp): Likewise.
18593 (*mulsf3negsf_vfp): Likewise.
18594 (*muldf3negdf_vfp): Likewise.
18595 (*mulsf3addsf_vfp): Likewise.
18596 (*muldf3adddf_vfp): Likewise.
18597 (*mulsf3subsf_vfp): Likewise.
18598 (*muldf3subdf_vfp): Likewise.
18599 (*mulsf3negsfaddsf_vfp): Likewise.
18600 (*fmuldf3negdfadddf_vfp): Likewise.
18601 (*mulsf3negsfsubsf_vfp): Likewise.
18602 (*muldf3negdfsubdf_vfp): Likewise.
18604 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18606 * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
18607 (*absdf2_vfp): Likewise.
18608 (*negsf2_vfp): Likewise.
18609 (*negdf2_vfp): Likewise.
18610 (*addsf3_vfp): Likewise.
18611 (*adddf3_vfp): Likewise.
18612 (*subsf3_vfp): Likewise.
18613 (*subdf3_vfp): Likewise.
18614 (*divsf3_vfp): Likewise.
18615 (*divdf3_vfp): Likewise.
18617 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18619 * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
18621 (arm_print_operand): Don't convert real values to decimal
18622 representation in default case.
18623 (fp_immediate_constant): Delete.
18624 * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
18625 * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
18627 (*thumb2_movsi_vfp): Likewise.
18628 (*movdi_vfp): Likewise.
18629 (*movdi_vfp_cortexa8): Likewise.
18630 (*movhf_vfp_neon): Likewise.
18631 (*movhf_vfp): Likewise.
18632 (*movsf_vfp): Likewise.
18633 (*thumb2_movsf_vfp): Likewise.
18634 (*movdf_vfp): Likewise.
18635 (*thumb2_movdf_vfp): Likewise.
18636 (*movsfcc_vfp): Likewise.
18637 (*thumb2_movsfcc_vfp): Likewise.
18638 (*movdfcc_vfp): Likewise.
18639 (*thumb2_movdfcc_vfp): Likewise.
18641 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com>
18643 * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
18644 (-mtune): Likewise.
18647 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18650 * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
18651 Use qualifier_immediate for last operand. Rename to...
18652 (aarch64_types_ternop_lane_qualifiers): ... This.
18653 (TYPES_QUADOP): Rename to...
18654 (TYPES_TERNOP_LANE): ... This.
18655 (aarch64_simd_expand_args): Return const0_rtx when encountering user
18656 error. Change return of 0 to return of NULL_RTX.
18657 (aarch64_crc32_expand_builtin): Likewise.
18658 (aarch64_expand_builtin): Return NULL_RTX instead of 0.
18659 ICE when expanding unknown builtin.
18660 * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
18661 TERNOP_LANE qualifiers.
18662 (sqdmlsl_lane): Likewise.
18663 (sqdmlal_laneq): Likewise.
18664 (sqdmlsl_laneq): Likewise.
18665 (sqdmlal2_lane): Likewise.
18666 (sqdmlsl2_lane): Likewise.
18667 (sqdmlal2_laneq): Likewise.
18668 (sqdmlsl2_laneq): Likewise.
18670 2014-09-09 Nick Clifton <nickc@redhat.com>
18672 * doc/invoke.texi (Optimization Options): Add missing @gol to the
18674 (S/390 and zSeries Options): Remove superfluous word from the
18675 description of the -mhotpatch option.
18677 2014-09-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
18679 * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
18680 * ira.c: #include "shrink-wrap.h"
18681 (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
18682 * ifcvt.c: #include "shrink-wrap.h"
18683 (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
18685 2014-09-08 Trevor Saunders <tsaunders@mozilla.com>
18687 * common/config/picochip/picochip-common.c: Remove.
18688 * config.gcc: Remove support for picochip.
18689 * config/picochip/constraints.md: Remove.
18690 * config/picochip/dfa_space.md: Remove.
18691 * config/picochip/dfa_speed.md: Remove.
18692 * config/picochip/picochip-protos.h: Remove.
18693 * config/picochip/picochip.c: Remove.
18694 * config/picochip/picochip.h: Remove.
18695 * config/picochip/picochip.md: Remove.
18696 * config/picochip/picochip.opt: Remove.
18697 * config/picochip/predicates.md: Remove.
18698 * config/picochip/t-picochip: Remove.
18699 * doc/md.texi: Don't document picochi.
18701 2014-09-08 David Malcolm <dmalcolm@redhat.com>
18703 * basic-block.h (control_flow_insn_p): Strengthen param from
18704 const_rtx to const rtx_insn *.
18705 * cfgbuild.c (control_flow_insn_p): Likewise.
18707 2014-09-08 David Malcolm <dmalcolm@redhat.com>
18709 * gcse.c (modify_mem_list): Strengthen this variable from
18710 vec<rtx> * to vec<rtx_insn *> *.
18711 (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
18713 (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
18714 vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
18715 (record_last_mem_set_info): Strengthen param "insn" from rtx to
18717 (record_last_set_info): Likewise for local "last_set_insn".
18719 2014-09-08 DJ Delorie <dj@redhat.com>
18721 * doc/invoke.texi (MSP430 Options): Add -minrt.
18723 2014-09-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18725 * config/rs6000/rs6000.c (special_handling_values): Add SH_SPLAT.
18726 (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
18727 statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
18729 (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
18731 (adjust_splat): New function.
18732 (handle_special_swappables): Call adjust_splat for SH_SPLAT.
18733 (dump_swap_insn_table): Add case for SH_SPLAT.
18735 2014-09-08 Richard Biener <rguenther@suse.de>
18738 * tree-inline.c (copy_loops): The source loop header should
18739 always be non-NULL.
18740 (tree_function_versioning): If loops need fixup after removing
18741 unreachable blocks fix them.
18742 * omp-low.c (simd_clone_adjust): Do not add incr block to
18743 loop under construction.
18745 2014-09-08 Alan Lawrence <alan.lawrence@arm.com>
18747 * config/aarch64/aarch64-builtins.c
18748 (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
18750 2014-09-08 Joseph Myers <joseph@codesourcery.com>
18752 * config/i386/cygming.h (TF_SIZE): Remove.
18753 * config/i386/darwin.h (TF_SIZE): Remove.
18754 * config/i386/dragonfly.h (TF_SIZE): Remove.
18755 * config/i386/freebsd.h (TF_SIZE): Remove.
18756 * config/i386/gnu-user-common.h (TF_SIZE): Remove.
18757 * config/i386/openbsdelf.h (TF_SIZE): Remove.
18758 * config/i386/sol2.h (TF_SIZE): Remove.
18759 * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
18760 * config/ia64/linux.h (TF_SIZE): Remove.
18761 * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
18762 * doc/tm.texi: Regenerate.
18763 * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
18765 2014-09-08 Joseph Myers <joseph@codesourcery.com>
18767 * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
18769 * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
18771 * doc/tm.texi: Regenerate.
18772 * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
18774 * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
18775 * config/cris/cris.h (__make_dp): Remove.
18777 2014-09-08 Richard Biener <rguenther@suse.de>
18780 * cfgloop.c (mark_loop_for_removal): Track former header
18782 * cfgloop.h (struct loop): Add former_header member unconditionally.
18783 * loop-init.c (fix_loop_structure): Enable bogus loop removal
18784 diagnostic unconditionally.
18786 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
18789 * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
18790 constraint for operand0 and remove write only modifier from operand3.
18792 2014-09-07 Richard Sandiford <richard.sandiford@arm.com>
18794 PR rtl-optimization/62208
18795 * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
18796 rather than const0_rtx in eq/ne-xor simplifications.
18798 2014-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
18800 * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
18801 (arc_output_mi_thunk): Likewise.
18803 * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
18804 arguments to silence bogus warning.
18806 2014-09-06 Richard Sandiford <richard.sandiford@arm.com>
18808 PR middle-end/63171
18809 * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
18811 2014-09-06 Tom de Vries <tom@codesourcery.com>
18813 * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
18814 IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
18815 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
18817 2014-09-05 Dominique Dhumieres <dominiq@lps.ens.fr>
18820 * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
18821 * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
18823 2014-09-05 Easwaran Raman <eraman@google.com>
18825 PR rtl-optimization/62146
18826 * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
18827 hoisted instruction unconditional.
18829 2014-09-05 Segher Boessenkool <segher@kernel.crashing.org>
18832 * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
18833 Do not allow any_mask_operand for operands[2].
18834 (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
18836 2014-09-05 David Malcolm <dmalcolm@redhat.com>
18838 * config/arc/arc.c (arc_print_operand): Use insn method of
18839 final_sequence for type-safety.
18840 * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
18841 "insn" from rtx to rtx_insn *.
18842 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
18843 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
18844 Likewise for locals "branch", "label".
18845 * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
18846 locals "i1", "i2". Use NULL rather than NULL_RTX in comparisons.
18847 (same_cmp_following_p): Likewise for locals "i2", "i3".
18848 * config/sh/sh_optimize_sett_clrt.cc
18849 (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
18850 param "cbranch_insn".
18851 * function.c (convert_jumps_to_returns): Likewis for local "jump".
18852 * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
18853 * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
18855 (condjump_p): Likewise.
18856 (condjump_in_parallel_p): Likewise.
18857 (pc_set): Likewise.
18858 (any_uncondjump_p): Likewise.
18859 (any_condjump_p): Likewise.
18860 (condjump_label): Likewise.
18861 (returnjump_p): Strengthen param "insn" from rtx to
18863 (onlyjump_p): Strengthen param "insn" from const_rtx to
18865 (jump_to_label_p): Likewise.
18866 (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
18867 (invert_jump): Likewise.
18868 * reorg.c (simplejump_or_return_p): Add checked cast when calling
18870 (get_jump_flags): Strengthen param "insn" from rtx to
18872 (get_branch_condition): Likewise.
18873 (condition_dominates_p): Likewise.
18874 (make_return_insns): Move declaration of local "pat" earlier, to
18875 after we've handled NONJUMP_INSN_P and non-sequences, using its
18876 methods to simplify the code and for type-safety.
18877 * rtl.h (find_constant_src): Strengthen param from const_rtx to
18879 (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
18880 (condjump_p): Strengthen param from const_rtx to
18882 (any_condjump_p): Likewise.
18883 (any_uncondjump_p): Likewise.
18884 (pc_set): Likewise.
18885 (condjump_label): Likewise.
18886 (simplejump_p): Likewise.
18887 (returnjump_p): Likewise.
18888 (onlyjump_p): Likewise.
18889 (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
18890 (invert_jump): Likewise.
18891 (condjump_in_parallel_p): Strengthen param from const_rtx to
18893 * rtlanal.c (find_constant_src): Strengthen param from const_rtx
18894 to const rtx_insn *.
18895 * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
18896 to const rtx_insn *.
18897 * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
18899 2014-09-05 David Malcolm <dmalcolm@redhat.com>
18901 * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
18902 above the conditional, and convert the check on GET_CODE to a
18903 dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
18904 the conditional. Simplify the conditional by using methods of
18907 2014-09-05 David Malcolm <dmalcolm@redhat.com>
18909 * haifa-sched.c (check_clobbered_conditions): Strengthen local
18910 "link" from rtx to rtx_insn_list *, and use its methods for
18911 clarity and type-safety.
18912 (toggle_cancelled_flags): Likewise.
18913 (restore_last_backtrack_point): Likewise.
18914 (queue_to_ready): Use insn method of "link" in one place.
18915 (schedule_block): Strengthen local "link" from rtx to
18916 rtx_insn_list *, and use its methods for clarity and type-safety.
18918 2014-09-05 David Malcolm <dmalcolm@redhat.com>
18920 * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
18921 param "insn" from const_rtx to const rtx_insn *.
18922 (sched_get_reverse_condition_uncached): Likewise.
18923 (sched_get_condition_with_rev): Likewise.
18924 (sched_has_condition_p): Likewise.
18925 (sched_insns_conditions_mutex_p): Likewise for both params.
18926 (sched_insn_is_legitimate_for_speculation_p): Likewise for param
18927 "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
18928 (setup_insn_reg_uses): Move local "list" to be more tightly
18929 scoped, strengthening it from an rtx to an rtx_insn_list *. Use
18930 its methods for clarity and type-safety.
18931 (sched_analyze_1): Strengthen local "pending" from rtx to
18932 rtx_insn_list *, and local "pending_mem" from rtx to
18933 rtx_expr_list *. Use methods of each for clarity and type-safety.
18934 (sched_analyze_2): Likewise.
18935 (sched_analyze_insn): Likewise.
18937 * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
18938 param from const_rtx to const rtx_insn *.
18939 (sched_insns_conditions_mutex_p): Likewise for both params.
18940 (sched_insn_is_legitimate_for_speculation_p): Likewise for first
18943 * system.h (CONST_CAST_RTX_INSN): New macro.
18945 2014-09-05 David Malcolm <dmalcolm@redhat.com>
18947 * recog.c (peep2_attempt): Strengthen return type from rtx to
18949 (peep2_update_life): Likewise for params "last", "prev", removing
18950 a checked cast made redundant by this.
18951 (peephole2_optimize): Likewise for local "last".
18953 2014-09-05 David Malcolm <dmalcolm@redhat.com>
18955 * basic-block.h (set_block_for_insn): Eliminate this macro in
18957 * rtl.h (set_block_for_insn): New inline function, imposing the
18958 requirement that the "insn" param is an rtx_insn *.
18960 2014-09-05 David Malcolm <dmalcolm@redhat.com>
18962 * caller-save.c (setup_save_areas): Strengthen local "insn" from
18964 * final.c (get_call_reg_set_usage): Likewise for first param,
18965 eliminating a checked cast.
18966 * regs.h (get_call_reg_set_usage): Likewise for first param.
18967 * resource.c (mark_set_resources): Introduce local rtx_call_insn *
18968 "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
18969 cast, replacing references to "x" with "call_insn" where
18971 (mark_target_live_regs): Strengthen local "real_insn" from rtx to
18972 rtx_insn *, adding a checked cast.
18974 2014-09-05 David Malcolm <dmalcolm@redhat.com>
18976 * output.h (final_scan_insn): Strengthen first param from rtx to
18979 * final.c (final_scan_insn): Likewise, renaming it back from
18980 "uncast_insn" to "insn", eliminating the checked cast.
18982 * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
18983 "vec" with an rtx_sequence * "seq", taking a copy of
18984 "final_sequence", and using methods of "seq" for clarity, and for
18985 type-safety in the calls to final_scan_insn.
18986 * config/mips/mips.c (mips_output_conditional_branch): Use methods
18987 of "final_sequence" for clarity, and for type-safety in the call to
18989 * config/sh/sh.c (print_slot): Strengthen param from rtx to
18990 rtx_sequence * and rename from "insn" to "seq".
18992 2014-09-05 David Malcolm <dmalcolm@redhat.com>
18994 * jump.c (delete_related_insns): Introduce a new local "table" by
18995 replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
18996 get_labels method of "table" to simplify access to the labels in
18999 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19001 * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
19002 f_minmaxs, f_minmaxd types.
19004 2014-09-05 Richard Biener <rguenther@suse.de>
19006 * cfgloop.c (mark_loop_for_removal): Record former header
19007 when ENABLE_CHECKING.
19008 * cfgloop.h (strut loop): Add former_header member when
19010 * loop-init.c (fix_loop_structure): Sanity check loops
19011 marked for removal if they re-appeared.
19013 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
19015 * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
19016 uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
19018 (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
19019 vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
19020 vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
19021 vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
19022 vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
19023 vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
19024 vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
19025 vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
19026 vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
19027 vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
19028 vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
19029 vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
19030 vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
19031 vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
19032 vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
19033 vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
19034 vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
19035 vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
19036 vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
19037 vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
19038 with int{32,16,8}_t.
19040 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
19042 * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
19043 (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
19044 vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
19045 vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
19046 Remove temporary __asm__ and reimplement.
19048 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
19050 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
19051 handling cmge, cmgt, cmeq, cmtst.
19053 * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
19054 cmlt, cmgeu, cmgtu, cmtst): Remove.
19056 * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
19057 vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
19058 vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
19059 vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
19061 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
19063 * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
19064 TYPES_TST): Define.
19065 (aarch64_fold_builtin): Update pattern for cmtst.
19067 * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
19070 * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
19072 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
19073 Switch operands, separate out more cases, refactor.
19075 (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
19077 * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
19078 argument; rename old version to...
19079 (aarch64_const_vec_all_same_in_range_p): ...this.
19080 (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
19082 * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
19084 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
19086 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
19087 Remove qualifier_const_pointer, update comment.
19089 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
19091 * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
19093 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
19095 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
19096 varargs with pointer parameter.
19097 (aarch64_simd_expand_builtin): pass pointer into previous.
19099 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19101 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
19104 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
19106 * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
19107 * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
19108 * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
19109 Replace temporary asm with call to builtin.
19110 (vrbit_p8, vrbitq_p8): New functions.
19112 2014-09-05 Richard Biener <rguenther@suse.de>
19114 * cfgloop.c (mark_loop_for_removal): New function.
19115 * cfgloop.h (mark_loop_for_removal): Declare.
19116 * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
19117 (merge_blocks): Likewise.
19118 (duplicate_block): Likewise.
19119 * except.c (sjlj_emit_dispatch_table): Likewise.
19120 * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
19121 * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
19122 (thread_through_loop_header): Likewise.
19124 2014-09-05 Richard Biener <rguenther@suse.de>
19126 PR middle-end/63148
19127 * fold-const.c (try_move_mult_to_index): Remove.
19128 (fold_binary_loc): Do not call it.
19129 * tree-data-ref.c (dr_analyze_indices): Strip conversions
19130 from the base object again.
19132 2014-09-05 James Greenhalgh <james.greenhalgh@arm.com>
19134 * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
19137 2014-09-05 Bin Cheng <bin.cheng@arm.com>
19140 * config/arm/arm.md (setmem): New pattern.
19141 * config/arm/arm-protos.h (struct tune_params): New fields.
19142 (arm_gen_setmem): New prototype.
19143 * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
19144 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
19145 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
19146 (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
19147 (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
19148 (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
19149 (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
19150 (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
19151 (arm_const_inline_cost): New function.
19152 (arm_block_set_max_insns): New function.
19153 (arm_block_set_non_vect_profit_p): New function.
19154 (arm_block_set_vect_profit_p): New function.
19155 (arm_block_set_unaligned_vect): New function.
19156 (arm_block_set_aligned_vect): New function.
19157 (arm_block_set_unaligned_non_vect): New function.
19158 (arm_block_set_aligned_non_vect): New function.
19159 (arm_block_set_vect, arm_gen_setmem): New functions.
19161 2014-09-05 Bin Cheng <bin.cheng@arm.com>
19163 * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
19165 2014-09-05 Bin Cheng <bin.cheng@arm.com>
19167 * config/arm/arm.c (output_move_neon): Handle REG explicitly.
19169 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
19171 * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
19173 * valtrack.h: Adjust.
19175 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
19177 * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
19179 (emit_jump_insn_before_noloc): Likewise.
19180 (emit_call_insn_before_noloc): Likewise.
19181 (emit_label_before): Likewise.
19182 (emit_label_after): Likewise.
19183 (emit_insn_before_setloc): Likewise.
19184 (emit_jump_insn_before_setloc): Likewise.
19185 (emit_call_insn_before_setloc): Likewise.
19186 (emit_call_insn_before): Likewise.
19189 2014-09-05 David Malcolm <dmalcolm@redhat.com>
19191 * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
19192 rtx_insn *, eliminating a checked cast.
19194 2014-09-05 David Malcolm <dmalcolm@redhat.com>
19196 * rtl.h (modified_between_p): Strengthen params 2 and 3 from
19197 const_rtx to const rtx_insn *.
19198 * rtlanal.c (modified_between_p): Likewise, eliminating a checked
19201 2014-09-05 David Malcolm <dmalcolm@redhat.com>
19203 * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
19204 fixup_args_size_notes.
19205 * expr.c (fixup_args_size_notes): Strengthen first two params from
19206 rtx to rtx_insn *, eliminating a checked cast.
19207 * rtl.h (fixup_args_size_notes): Strengthen first two params from
19210 2014-09-05 David Malcolm <dmalcolm@redhat.com>
19212 * haifa-sched.c (get_ready_element): Strengthen return type from
19214 * sched-int.h (get_ready_element): Likewise.
19216 2014-09-04 Segher Boessenkool <segher@kernel.crashing.org>
19219 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
19220 indexed_or_indirect_operand instead of memory_operand.
19221 (floatsi<mode>2_lfiwzx_mem): Ditto.
19223 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
19225 * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
19226 config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
19227 ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
19229 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
19231 * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
19233 (get_last_nonnote_insn): Likewise.
19234 (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
19235 * resource.c (find_basic_block): Likewise.
19237 * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
19240 2014-09-04 David Malcolm <dmalcolm@redhat.com>
19242 * genattr.c (main): Within the prototype of insn_latency written
19243 out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
19244 * genautomata.c (output_internal_maximal_insn_latency_func):
19245 Within the implementation of insn_latency written out to
19246 insn-automata.c, strengthen both params from rtx to rtx_insn *,
19247 eliminating a pair of checked casts.
19249 2014-09-04 David Malcolm <dmalcolm@redhat.com>
19251 * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
19254 * rtl.h (eh_returnjump_p): Likewise.
19256 2014-09-04 Aldy Hernandez <aldyh@redhat.com>
19258 * Makefile.in (TAGS): Handle constructs in timevar.def.
19260 2014-09-04 Guozhi Wei <carrot@google.com>
19263 * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
19264 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
19265 it into two patterns.
19266 (move_lo_quad_internal_be_<mode>): Likewise.
19268 2014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
19270 * doc/options.texi: Document that Var and Init are required if CPP
19272 * optc-gen.awk: Require Var and Init if CPP is given.
19273 * common.opt (Wpedantic): Use Init.
19275 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19277 * config/rs6000/rs6000.c (special_handling_values): Add
19279 (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
19280 wrapped in a VEC_DUPLICATE, representing an extract. Mark these
19281 as swappable with special handling SH_EXTRACT. Remove
19282 UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
19284 (adjust_extract): New function.
19285 (handle_special_swappables): Add default to case statement; add
19286 case for SH_EXTRACT that calls adjust_extract.
19287 (dump_swap_insn_table): Handle SH_EXTRACT.
19289 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19291 * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
19292 selection of 0th memory doubleword, regardless of endianness.
19294 2014-09-04 Jan-Benedict Glaw <jbglaw@lug-owl.de>
19296 * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
19298 2014-09-04 Alan Modra <amodra@gmail.com>
19301 * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
19304 2014-09-03 Matthew Fortune <matthew.fortune@imgtec.com>
19306 * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
19307 * targhooks.c (default_dwarf_frame_reg_mode): New function.
19308 * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
19309 * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
19310 * doc/tm.texi: Regenerate.
19311 * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
19312 selection logic to default_dwarf_frame_reg_mode.
19314 2014-09-03 Marek Polacek <polacek@redhat.com>
19316 * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
19319 2014-09-03 Richard Sandiford <richard.sandiford@arm.com>
19321 * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
19322 the automodified register.
19324 2014-09-03 Richard Sandiford <richard.sandiford@arm.com>
19326 * output.h (get_some_local_dynamic_name): Declare.
19327 * final.c (some_local_dynamic_name): New variable.
19328 (get_some_local_dynamic_name): New function.
19329 (final_end_function): Clear some_local_dynamic_name.
19330 * config/alpha/alpha.c (machine_function): Remove some_ld_name.
19331 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
19332 (print_operand): Report an error if '%&' is used inappropriately.
19333 * config/i386/i386.c (get_some_local_dynamic_name): Delete.
19334 (get_some_local_dynamic_name_1): Delete.
19335 * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
19336 (rs6000_get_some_local_dynamic_name): Delete.
19337 (rs6000_get_some_local_dynamic_name_1): Delete.
19338 (print_operand): Report an error if '%&' is used inappropriately.
19339 * config/s390/s390.c (machine_function): Remove some_ld_name.
19340 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
19341 (print_operand): Assert that get_some_local_dynamic_name is nonnull.
19342 * config/sparc/sparc.c: Include rtl-iter.h.
19343 (machine_function): Remove some_ld_name.
19344 (sparc_print_operand): Report an error if '%&' is used inappropriately.
19345 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
19347 2014-09-03 Richard Henderson <rth@redhat.com>
19349 * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
19350 (aarch64_popwb_pair_reg): Remove.
19351 (aarch64_set_frame_expr): Remove.
19352 (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
19353 the restore ops performed by the insns generated.
19354 (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
19355 insn. Perform the calls_eh_return addition later; do not attempt to
19356 preserve the CFA in that case. Don't use aarch64_set_frame_expr.
19357 (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
19358 special markup at all. Load cfun->machine->frame.hard_fp_offset
19359 into a local variable.
19360 (aarch64_frame_pointer_required): Don't check calls_alloca.
19362 2014-09-03 Richard Biener <rguenther@suse.de>
19364 * opts.c (default_options_optimization): Adjust
19365 max-combine-insns to 2 for -Og.
19367 2014-09-03 Martin Jambor <mjambor@suse.cz>
19370 * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
19371 pass-trough jump functions correctly.
19373 2014-09-03 Martin Jambor <mjambor@suse.cz>
19376 * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
19377 created replacements in ascending order of offsets.
19378 (known_aggs_to_agg_replacement_list): Likewise.
19380 2014-09-03 Martin Liska <mliska@suse.cz>
19382 * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
19383 is set to set uninitialized value for vnresult.
19385 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19387 * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
19388 for TARGET_MUST_PASS_IN_STACK.
19390 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19392 * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
19393 for TARGET_ARG_PARTIAL_BYTES.
19395 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19397 * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
19398 instructions for varargs implementation.
19399 (nds32_expand_epilogue): Emit stack adjustment instructions for
19400 varargs implementation.
19402 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19404 * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
19405 optimization detection.
19407 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19409 * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
19411 (nds32_function_arg_advance): Deal with nameless arguments.
19412 * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
19413 (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
19414 (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
19416 2014-09-03 Richard Biener <rguenther@suse.de>
19418 * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
19419 (struct bb_bitmap_sets): Remove deferred member.
19420 (BB_DEFERRED): Remove.
19421 (defer_or_phi_translate_block): Remove.
19422 (compute_antic_aux): Remove deferring of blocks, assert
19423 proper iteration order.
19424 (compute_antic): Do not set BB_DEFERRED.
19425 (eliminate): Allocate el_avail of proper size initially.
19427 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19429 * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
19430 according to the value of crtl->args.pretend_args_size.
19432 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19434 * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
19435 varargs information.
19437 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19439 * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
19440 implementation for TARGET_SETUP_INCOMING_VARARGS.
19441 (nds32_strict_argument_naming): Refine comment.
19442 * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
19443 Define for future implementation.
19445 2014-09-03 Ilya Tocar <ilya.tocar@intel.com>
19447 * config/i386/adxintrin.h (_subborrow_u32): New.
19448 (_addcarry_u32): Ditto.
19449 (_subborrow_u64): Ditto.
19450 (_addcarry_u64): Ditto.
19451 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
19452 IX86_BUILTIN_SBB64.
19453 (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
19454 __builtin_ia32_sbb_u64
19456 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19458 * config/nds32/nds32.c (nds32_function_arg): Define and rename some
19459 GPR-specific stuff.
19460 (nds32_function_arg_advance): Likewise.
19461 (nds32_init_cumulative_args): Likewise.
19462 * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
19463 (NDS32_FIRST_GPR_REGNUM): Define.
19464 (NDS32_LAST_GPR_REGNUM): Define.
19465 (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
19466 (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
19467 (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
19468 (machine_function): Use GRP-specific stuff.
19470 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19472 * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
19473 (nds32_expand_epilogue): Likewise.
19474 (nds32_expand_prologue_v3push): Likewise.
19475 (nds32_expand_epilogue_v3pop): Likewise.
19477 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19479 * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
19480 v3push/v3pop for variadic function.
19481 * config/nds32/nds32.md (prologue, epilogue): Likewise.
19483 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19485 * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
19486 Check rtx for varargs implementation.
19487 (nds32_output_stack_pop): Likewise.
19488 * config/nds32/nds32-protos.h: Have a rtx argument for
19489 nds32_output_stack_push and nds32_output_stack_pop.
19490 * config/nds32/nds32.md: Likewise.
19492 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19494 * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
19495 to check if FUNC is an interrupt service routine.
19496 * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
19498 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19500 * config/nds32/nds32.h (machine_function): Add some fields for variadic
19501 arguments implementation.
19503 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19505 * config/nds32/nds32-predicates.c
19506 (nds32_valid_stack_push_pop): Rename to ...
19507 (nds32_valid_stack_push_pop_p): ... this.
19508 * config/nds32/nds32-protos.h: Likewise.
19509 * config/nds32/predicates.md: Likewise.
19511 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19513 * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
19514 (nds32_emit_stack_v3push): ... this.
19515 (nds32_gen_stack_v3pop): Rename to ...
19516 (nds32_emit_stack_v3pop): ... this and consider CFA restore
19519 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19521 * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
19522 (nds32_emit_stack_push_multiple): ... this.
19523 (nds32_gen_stack_pop_multiple): Rename to ...
19524 (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
19527 2014-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19530 * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
19531 and add a second splitter to handle the remaining cases.
19533 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19535 * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
19537 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
19539 * cfgexpand.c (label_rtx_for_bb): Change type to
19540 hash_map<basic_block, rtx_code_label *> *.
19541 (expand_gimple_basic_block): Adjust.
19542 (pass_expand::execute): Likewise.
19544 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
19546 * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
19547 config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
19548 config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
19549 config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
19550 config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
19551 config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
19552 stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
19555 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
19557 * alloc-pool.c: Include coretypes.h.
19558 * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
19559 function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
19560 hash_set instead of htab.
19561 * ggc-page.c (in_gc): New variable.
19562 (ggc_free): Do nothing if a collection is taking place.
19563 (ggc_collect): Set in_gc appropriately.
19564 * ggc.h (gt_ggc_mx(const char *)): New function.
19565 (gt_pch_nx(const char *)): Likewise.
19566 (gt_ggc_mx(int)): Likewise.
19567 (gt_pch_nx(int)): Likewise.
19568 * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
19569 (hash_map::hash_entry::pch_nx): Likewise.
19570 (hash_map::hash_entry::pch_nx_helper): Likewise.
19571 (hash_map::hash_map): Adjust.
19572 (hash_map::create_ggc): New function.
19573 (gt_ggc_mx): Likewise.
19574 (gt_pch_nx): Likewise.
19575 * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
19576 (default_hashset_traits::pch_nx): Likewise.
19577 (hash_set::hash_entry::ggc_mx): Likewise.
19578 (hash_set::hash_entry::pch_nx): Likewise.
19579 (hash_set::hash_entry::pch_nx_helper): Likewise.
19580 (hash_set::hash_set): Adjust.
19581 (hash_set::create_ggc): New function.
19582 (hash_set::elements): Likewise.
19583 (gt_ggc_mx): Likewise.
19584 (gt_pch_nx): Likewise.
19585 * hash-table.h (hash_table::hash_table): Adjust.
19586 (hash_table::m_ggc): New member.
19587 (hash_table::~hash_table): Adjust.
19588 (hash_table::expand): Likewise.
19589 (hash_table::empty): Likewise.
19590 (gt_ggc_mx): New function.
19591 (hashtab_entry_note_pointers): Likewise.
19592 (gt_pch_nx): Likewise.
19594 2014-09-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19596 * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE): New
19597 built-in definition.
19598 (XVCVUXDDP_SCALE): Likewise.
19599 (XVCVDPSXDS_SCALE): Likewise.
19600 (XVCVDPUXDS_SCALE): Likewise.
19601 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
19602 entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
19603 VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
19604 VSX_BUILTIN_XVCVDPUXDS_SCALE.
19605 * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
19607 * config/rs6000/rs6000.c (real.h): New include.
19608 (rs6000_scale_v2df): New function.
19609 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
19610 (UNSPEC_VSX_XVCVUXDDP): Likewise.
19611 (UNSPEC_VSX_XVCVDPSXDS): Likewise.
19612 (UNSPEC_VSX_XVCVDPUXDS): Likewise.
19613 (vsx_xvcvsxddp_scale): New define_expand.
19614 (vsx_xvcvsxddp): New define_insn.
19615 (vsx_xvcvuxddp_scale): New define_expand.
19616 (vsx_xvcvuxddp): New define_insn.
19617 (vsx_xvcvdpsxds_scale): New define_expand.
19618 (vsx_xvcvdpsxds): New define_insn.
19619 (vsx_xvcvdpuxds_scale): New define_expand.
19620 (vsx_xvcvdpuxds): New define_insn.
19621 * doc/extend.texi (vec_ctf): Add new prototypes.
19622 (vec_cts): Likewise.
19623 (vec_ctu): Likewise.
19624 (vec_splat): Likewise.
19625 (vec_div): Likewise.
19626 (vec_mul): Likewise.
19628 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19631 * config/arm/neon.md
19632 (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
19633 <v_cmp_result>): New pattern.
19634 * config/arm/iterators.md (NEON_VCVT): New int iterator.
19635 * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
19636 vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
19637 vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
19638 * config/arm/arm.c (arm_builtin_vectorized_function): Handle
19639 BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
19641 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19644 * config/arm/iterators.md (FIXUORS): New code iterator.
19645 (VCVT): New int iterator.
19646 (su_optab): New code attribute.
19648 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
19650 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19652 * config/aarch64/predicates.md (aarch64_comparison_operation):
19653 New special predicate.
19654 * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
19655 aarch64_comparison_operation instead of matching an operator.
19656 Update operand numbers.
19657 (csinc3<mode>_insn): Likewise.
19658 (*csinv3<mode>_insn): Likewise.
19659 (*csneg3<mode>_insn): Likewise.
19660 (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
19661 * config/aarch64/aarch64.c (aarch64_get_condition_code):
19662 Return -1 instead of aborting on invalid condition codes.
19663 (aarch64_print_operand): Update aarch64_get_condition_code callsites
19664 to assert that the returned condition code is valid.
19665 * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
19667 2014-09-02 Aldy Hernandez <aldyh@redhat.com>
19669 * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
19670 tree.def, and gimple.def
19672 2014-09-02 Jakub Jelinek <jakub@redhat.com>
19673 Balaji V. Iyer <balaji.v.iyer@intel.com>
19674 Igor Zamyatin <igor.zamyatin@intel.com>
19676 * cilk-builtins.def (__cilkrts_cilk_for_32): New.
19677 (__cilkrts_cilk_for_64): Likewise.
19678 * cilk-common.c (declare_cilk_for_builtin): New function.
19679 (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
19680 __cilkrts_cilk_for_64 bultins.
19681 * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
19683 (cilk_for_32_fndecl): New define.
19684 (cilk_for_64_fndecl): Likewise.
19685 * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
19686 GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
19687 * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
19688 GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
19689 GF_OMP_FOR_COMBINED_INTO.
19690 * gimplify.c (gimplify_scan_omp_clauses): Added
19691 OMP_CLAUSE__CILK_FOR_COUNT_ case.
19692 (gimplify_adjust_omp_clauses): Ditto.
19693 (gimplify_omp_for): Added CILK_FOR case.
19694 (gimplify_expr): Ditto.
19695 * omp-low.c: Include cilk.h.
19696 (extract_omp_for_data): Set appropriate kind for
19697 GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
19698 (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
19699 (create_omp_child_function_name): Added second argument to handle
19701 (cilk_for_check_loop_diff_type): New function.
19702 (expand_cilk_for_call): Likewise.
19703 (expand_cilk_for): Likewise.
19704 (create_omp_child_function): Set cilk_for_count; handle the cases when
19705 it is true; call create_omp_child_function_name with second argument.
19706 (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
19707 (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
19708 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
19709 * tree-nested.c (convert_nonlocal_omp_clauses): Added
19710 OMP_CLAUSE__CILK_FOR_COUNT_ case.
19711 (convert_local_omp_clauses): Ditto.
19712 * tree-pretty-print.c (dump_omp_clause): Added
19713 OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
19714 (dump_generic_node): Added CILK_FOR case.
19715 * tree.c (omp_clause_num_ops): New element
19716 OMP_CLAUSE__CILK_FOR_COUNT_ (1).
19717 (omp_clause_code_name): New element _Cilk_for_count_.
19718 (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
19719 * tree.def: Add tree code for CILK_FOR.
19721 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
19723 * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
19724 (ppc403-compare): Add "exts with dot" case.
19725 * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
19726 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
19727 * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
19728 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
19729 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
19730 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
19731 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
19732 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
19733 cell-cmp-microcoded): Similarly.
19734 * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
19735 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
19736 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
19737 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
19738 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
19739 * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
19740 * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
19741 * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
19742 (power6-compare): Add "exts with dot" case.
19743 * config/rs6000/power7.md (power7-integer, power7-compare): As before.
19744 * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
19745 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
19747 * config/rs6000/predicates.md (lwa_operand): Don't allow memory
19748 if avoiding Cell microcode.
19749 * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
19750 (is_cracked_insn): Ditto.
19751 (insn_must_be_first_in_group): Ditto.
19752 * config/rs6000/rs6000.md (dot): Adjust comment.
19753 (cell_micro): Handle exts+dot.
19754 (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
19755 *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
19756 extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
19757 (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
19758 extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
19759 *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
19760 *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
19762 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
19764 * config/rs6000/rs6000.md (QHSI): Delete.
19765 (EXTQI, EXTHI, EXTSI): New mode iterators.
19766 (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
19767 *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
19768 *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
19769 9 anonymous instructions, and 8 splitters): Delete.
19770 (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
19771 *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
19772 *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
19773 zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
19774 *zero_extendsi<mode>2_dot2): New.
19776 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
19778 * config/rs6000/rs6000.md (any_extend): New code iterator.
19779 (u, su): New code attributes.
19780 (dmode, DMODE): New mode attributes.
19781 (<su>mul<mode>3_highpart): New.
19782 (*<su>mul<mode>3_highpart): New.
19783 (<su>mulsi3_highpart_le): New.
19784 (<su>muldi3_highpart_le): New.
19785 (<su>mulsi3_highpart_64): New.
19786 (<u>mul<mode><dmode>3): New.
19787 (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
19788 splitters): Delete.
19789 (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
19790 splitters): Delete.
19792 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
19794 * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
19795 *mulsi3_internal2, and two splitters): Delete.
19796 (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
19798 (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
19800 2014-09-02 Richard Biener <rguenther@suse.de>
19802 PR tree-optimization/62695
19803 * tree-ssa-structalias.c (find_func_clobbers): Add missing
19806 2014-09-01 Oleg Endo <olegendo@gcc.gnu.org>
19809 * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
19811 2014-09-01 Andi Kleen <ak@linux.intel.com>
19813 * file-find.c (add_prefix_begin): Add.
19814 (do_add_prefix): Rename from add_prefix with first argument.
19815 (add_prefix): Add new wrapper.
19816 * file-find.h (add_prefix_begin): Add.
19817 * gcc-ar.c (main): Support -B option.
19819 2014-09-01 Segher Boessenkool <segher@kernel.crashing.org>
19821 * genemit.c: Include dumpfile.h.
19822 (gen_split): Print name of splitter function to dump file.
19824 2014-09-01 Richard Biener <rguenther@suse.de>
19826 * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
19827 Use stack auto_vecs for constraint expressions.
19828 (find_func_aliases_for_call): Likewise.
19829 (find_func_aliases): Likewise.
19830 (find_func_clobbers): Likewise.
19832 2014-09-01 Richard Biener <rguenther@suse.de>
19834 * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
19835 operands vector in most cases. Remove redundant code.
19837 2014-09-01 Olivier Hainque <hainque@adacore.com>
19839 * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
19840 $WIND_BASE instead of designating a harcoded arbitrary home dir.
19841 (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
19843 2014-09-01 Richard Biener <rguenther@suse.de>
19845 * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
19846 copy_reference_ops_from_call, vn_nary_op_compute_hash,
19847 vn_reference_compute_hash, vn_reference_insert): Remove.
19848 (vn_reference_lookup_call): New function.
19849 * tree-ssa-sccvn.c (vn_reference_compute_hash,
19850 copy_reference_ops_from_ref, copy_reference_ops_from_call,
19851 vn_reference_insert, vn_nary_op_compute_hash): Make static.
19852 (create_reference_ops_from_call): Remove.
19853 (vn_reference_lookup_3): Properly update shared_lookup_references.
19854 (vn_reference_lookup_pieces): Assert that we updated
19855 shared_lookup_references properly.
19856 (vn_reference_lookup): Likewise.
19857 (vn_reference_lookup_call): New function.
19858 (visit_reference_op_call): Use it. Avoid re-building the
19860 (visit_reference_op_load): Remove redundant lookup.
19861 (visit_reference_op_store): Perform special tail-merging work
19862 only when possibly doing tail-merging.
19863 (visit_use): Likewise.
19864 * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
19866 2014-09-01 Jakub Jelinek <jakub@redhat.com>
19869 * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
19870 returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
19871 (find_inc): Revert 2014-08-13 change.
19873 2014-09-01 Marek Polacek <polacek@redhat.com>
19875 PR middle-end/61903
19876 * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
19877 Change the type of V to unsigned HOST_WIDE_INT.
19879 2014-09-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
19881 * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
19882 the size of byte markers.
19883 (do_shift_rotate): Fix confusion between host, target and marker byte
19885 (verify_symbolic_number_p): Likewise.
19886 (find_bswap_or_nop_1): Likewise.
19887 (find_bswap_or_nop): Likewise.
19889 2014-09-01 Olivier Hainque <hainque@adacore.com>
19891 * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
19892 INSTALL_SCRIPT and INSTALL_PROGRAM as well.
19894 2014-09-01 Jakub Jelinek <jakub@redhat.com>
19896 * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
19897 * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
19898 (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
19900 2014-09-01 Yury Gribov <y.gribov@samsung.com>
19904 * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
19905 (build_check_stmt): Likewise.
19906 (instrument_strlen_call): Likewise.
19907 (asan_expand_check_ifn): Likewise and fix types.
19908 (maybe_cast_to_ptrmode): New function.
19910 2014-09-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
19912 * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
19914 2014-08-31 Gerald Pfeifer <gerald@pfeifer.com>
19916 * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
19918 2014-08-30 John David Anglin <danglin@gcc.gnu.org>
19920 * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
19921 prefix to function labels when generating fast indirect calls.
19923 2014-08-30 David Malcolm <dmalcolm@redhat.com>
19927 * gcc/reorg.c (skip_consecutive_labels): Convert return type and
19928 param back from rtx_insn * to rtx. Rename param from "label" to
19929 "label_or_return", reintroducing "label" as an rtx_insn * after
19930 we've ensured it's not a RETURN.
19931 (first_active_target_insn): Likewise for return type and param;
19932 add a checked cast to rtx_insn * once we've ensured "insn" is not
19934 (steal_delay_list_from_target): Convert param "pnew_thread" back
19935 from rtx_insn ** to rtx *. Replace use of JUMP_LABEL_AS_INSN
19937 (own_thread_p): Convert param "thread" back from an rtx_insn * to
19938 an rtx. Introduce local rtx_insn * "thread_insn" with a checked
19939 cast once we've established we're not dealing with a RETURN,
19940 renaming subsequent uses of "thread" to "thread_insn".
19941 (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
19943 (follow_jumps): Convert return type and param "label" from
19944 rtx_insn * back to rtx. Move initialization of "value" to after
19945 the handling for ANY_RETURN_P, adding a checked cast there to
19946 rtx_insn *. Convert local rtx_insn * "this_label" to an rtx and
19947 rename to "this_label_or_return", reintroducing "this_label" as
19948 an rtx_insn * once we've handled the case where it could be an
19950 (fill_slots_from_thread): Rename param "thread" to
19951 "thread_or_return", converting from an rtx_insn * back to an rtx.
19952 Reintroduce name "thread" as an rtx_insn * local with a checked
19953 cast once we've handled the case of it being an ANY_RETURN_P.
19954 Convert local "new_thread" from an rtx_insn * back to an rtx.
19955 Add a checked cast when assigning to "trial" from "new_thread".
19956 Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL. Add a
19957 checked cast to rtx_insn * from "new_thread" when invoking
19959 (fill_eager_delay_slots): Convert locals "target_label",
19960 "insn_at_target" from rtx_insn * back to rtx.
19961 Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
19962 (relax_delay_slots): Convert locals "trial", "target_label" from
19963 rtx_insn * back to rtx. Convert uses of JUMP_LABEL_AS_INSN back
19964 to JUMP_LABEL. Add a checked cast to rtx_insn * on "trial" when
19965 invoking update_block.
19966 (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
19967 JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
19969 * resource.h (mark_target_live_regs): Undo erroneous conversion
19970 of second param of r214693, converting it back from rtx_insn * to
19971 rtx, since it could be a RETURN.
19973 * resource.c (find_dead_or_set_registers): Similarly, convert
19974 param "jump_target" back from an rtx_insn ** to an rtx *, as we
19975 could be writing back a RETURN. Rename local rtx_insn * "next" to
19976 "next_insn", and introduce "lab_or_return" as a local rtx,
19977 handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
19978 (mark_target_live_regs): Undo erroneous conversion
19979 of second param of r214693, converting it back from rtx_insn * to
19980 rtx, since it could be a RETURN. Rename it from "target" to
19981 "target_maybe_return", reintroducing the name "target" as a local
19982 rtx_insn * with a checked cast, after we've handled the case of
19985 2014-08-29 DJ Delorie <dj@redhat.com>
19987 * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
19988 pointer size up to a power of two.
19989 * defaults.h (DWARF2_ADDR_SIZE): Round up.
19990 (POINTER_SIZE_UNITS): New, rounded up value.
19991 * dwarf2asm.c (size_of_encoded_value): Use it.
19992 (dw2_output_indirect_constant_1): Likewise.
19993 * expmed.c (init_expmed_one_conv): We now know the sizes of
19995 * loop-iv.c (iv_number_of_iterations): Use precision, not size.
19996 * optabs.c (expand_float): Use precision, not size.
19997 (expand_fix): Likewise.
19998 * simplify-rtx (simplify_unary_operation_1): Likewise.
19999 * tree-dfa.c (get_ref_base_and_extent): Likewise.
20000 * varasm.c (assemble_addr_to_section): Round up pointer sizes.
20001 (default_assemble_integer) Likewise.
20002 (dump_tm_clone_pairs): Likewise.
20003 * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
20004 * var-tracking.c (adjust_mems): Allow partial-int modes also.
20005 (prepare_call_arguments): Likewise.
20006 * stor-layout.c (finalize_type_size): Preserve precision.
20007 (layout_type): Use precision, not size.
20009 * expr.c (convert_move): If the target has an explicit converter,
20012 2014-08-29 David Malcolm <dmalcolm@redhat.com>
20014 * gdbinit.in: Skip various inline functions in rtl.h when
20017 2014-08-29 Richard Sandiford <richard.sandiford@arm.com>
20020 * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
20022 2014-08-29 Richard Biener <rguenther@suse.de>
20024 PR tree-optimization/62291
20025 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
20026 exactly the vector size needed and use quick_push.
20027 (phi_translate_1): Adjust comment.
20028 (valid_in_sets): Remove block argument and remove pointless
20030 (dependent_clean): Adjust for removal of block argument.
20032 (compute_antic_aux): Likewise.
20033 (compute_partial_antic_aux): Likewise.
20035 2014-08-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
20036 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
20037 Anna Tikhonova <anna.tikhonova@intel.com>
20038 Ilya Tocar <ilya.tocar@intel.com>
20039 Andrey Turetskiy <andrey.turetskiy@intel.com>
20040 Ilya Verbin <ilya.verbin@intel.com>
20041 Kirill Yukhin <kirill.yukhin@intel.com>
20042 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
20044 * config/i386/sse.md
20045 (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
20046 (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
20047 (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
20048 (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
20050 2014-08-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
20051 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
20052 Anna Tikhonova <anna.tikhonova@intel.com>
20053 Ilya Tocar <ilya.tocar@intel.com>
20054 Andrey Turetskiy <andrey.turetskiy@intel.com>
20055 Ilya Verbin <ilya.verbin@intel.com>
20056 Kirill Yukhin <kirill.yukhin@intel.com>
20057 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
20059 * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
20060 * config/i386/sse.md
20061 (define_mode_iterator VI4_128_8_256): New.
20062 (define_mode_iterator VI2_128_4_256): Ditto.
20063 (define_mode_iterator PMOV_DST_MODE): Rename into
20064 (define_mode_iterator PMOV_DST_MODE_1): this.
20065 (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
20066 Use PMOV_DST_MODE_1 mode iterator.
20067 (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
20069 (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
20071 (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
20072 (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
20073 (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
20074 (define_mode_iterator PMOV_DST_MODE_2): New.
20075 (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
20076 (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
20077 (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
20079 (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
20080 (define_mode_attr pmov_dst_3): Ditto.
20081 (define_mode_attr pmov_dst_zeroed_3): Ditto.
20082 (define_mode_attr pmov_suff_3): Ditto.
20083 (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
20084 (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
20085 (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
20086 (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
20087 (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
20088 (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
20089 (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
20090 (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
20091 (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
20092 (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
20093 (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
20094 (define_mode_attr pmov_dst_4): Ditto.
20095 (define_mode_attr pmov_dst_zeroed_4): Ditto.
20096 (define_mode_attr pmov_suff_4): Ditto.
20097 (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
20098 (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
20099 (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
20100 (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
20101 (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
20102 (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
20103 (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
20104 (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
20105 (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
20106 (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
20107 (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
20109 2014-08-29 Richard Biener <rguenther@suse.de>
20111 * tree-cfg.c (verify_gimple_assign_unary): Do not allow
20112 NON_LVALUE_EXPR in gimple.
20114 2014-08-29 Richard Biener <rguenther@suse.de>
20116 PR middle-end/62292
20117 * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
20118 from previous refactoring.
20119 (gimple_fold_builtin_strncpy): Likewise.
20121 2014-08-29 David Malcolm <dmalcolm@redhat.com>
20124 * function.c (assign_parm_setup_reg): Remove erroneous checked
20125 cast to rtx_insn * on result of gen_extend_insn in favor of
20126 introducing a new local rtx "pat".
20128 2014-08-29 Jan-Benedict Glaw <jbglaw@lug-owl.de>
20130 * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
20131 to silence warning.
20132 * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
20134 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20136 * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
20137 (next_insn): Likewise.
20138 * emit-rtl.c (next_insn): Likewise.
20139 (previous_insn): Likewise.
20140 * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
20141 "insn" and "next" from rtx to rtx_insn *.
20142 * config/picochip/picochip.c (picochip_reorg): Likewise for locals
20143 "insn", "insn1", "vliw_start", "prologue_end_note",
20144 "last_insn_in_packet".
20146 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20148 * shrink-wrap.h (active_insn_between): Strengthen both params from
20150 * function.c (active_insn_between): Likewise.
20152 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20154 * genattr.c (main): When writing out insn-attr.h, strengthen param
20155 of dfa_clear_single_insn_cache from rtx to rtx_insn *.
20156 * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
20157 writing out the definition of dfa_clear_single_insn_cache to the
20158 generated insn-automata.c
20160 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20162 * resource.h (clear_hashed_info_for_insn): Strengthen param from
20164 (incr_ticks_for_insn): Likewise.
20165 (init_resource_info): Likewise.
20167 * resource.c (init_resource_info): Likewise.
20168 (clear_hashed_info_for_insn): Likewise.
20169 (incr_ticks_for_insn): Likewise.
20171 * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
20173 (steal_delay_list_from_target): Use methods of "seq".
20174 (try_merge_delay_insns): Use methods of "merged_insns".
20175 (update_block): Strengthen param "insn" from rtx to rtx_insn *.
20176 (reorg_redirect_jump): Likewise for param "jump".
20178 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20180 * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
20182 * config/s390/s390.c (s390_split_branches): Eliminate top-level
20183 local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
20185 (s390_mainpool_finish): In three places, split out a local rtx
20186 "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
20187 "insn". Strengthen local "pool_end" from rtx to rtx_code_label *
20188 and split another local rtx "insn" out into rtx "pat" and
20190 * config/sh/sh.c (output_branchy_insn): Rather than working
20191 directly on operands[9], introduce local rtx_code_label *
20192 variables named "lab" in two places, working on them, and then
20193 assigning them to operands[9], so that the intervening operations
20194 are known by the type system to be on insns.
20196 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20198 * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
20201 * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
20202 in invocation of INSN_HAS_LOCATION.
20204 2014-08-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20206 * config/rs6000/altivec.h (vec_xl): New #define.
20207 (vec_xst): Likewise.
20208 * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
20209 (XXSPLTD_V2DI): Likewise.
20210 (DIV_V2DI): Likewise.
20211 (UDIV_V2DI): Likewise.
20212 (MUL_V2DI): Likewise.
20213 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20214 entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
20215 VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
20216 VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
20217 * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
20218 (UNSPEC_VSX_DIVSD): Likewise.
20219 (UNSPEC_VSX_DIVUD): Likewise.
20220 (UNSPEC_VSX_MULSD): Likewise.
20221 (vsx_mul_v2di): New insn-and-split.
20222 (vsx_div_v2di): Likewise.
20223 (vsx_udiv_v2di): Likewise.
20224 (vsx_xxspltd_<mode>): New insn.
20226 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20228 * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
20230 (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
20231 (NEXT_INSN): Likewise.
20232 (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
20233 (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
20235 (no_labels_between_p): Likewise for both params.
20237 * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
20238 cast when using NEXT_INSN on operands[2].
20239 * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
20240 "insn" from rtx to rtx_insn *, adding a checked cast.
20241 (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
20243 * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
20245 (arc_text_label): Likewise for param "insn".
20246 * config/arc/arc.c (arc_expand_epilogue): Likewise for local
20248 (arc_ccfsm_record_condition): Likewise for param "jump".
20249 (arc_text_label): Likewise for local "label".
20250 * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
20251 Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
20252 a method for typesafety. Add a checked cast.
20253 * config/arc/constraints.md (Clb): Add a checked cast when getting
20254 the CODE_LABEL from a LABEL_REF.
20255 * config/arm/arm.c (require_pic_register): Strengthen locals
20256 "seq", "insn" from rtx to rtx_insn *.
20257 (create_fix_barrier): Likewise for locals "selected", "next".
20258 (thumb1_reorg): Likewise for locals "prev", "insn".
20259 (arm_expand_prologue): Likewise for local "last".
20260 (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
20262 (thumb2_output_casesi): Likewise for operands[2].
20263 * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
20264 strengthen local "insn" from rtx to rtx_insn *.
20265 * config/bfin/bfin.c (find_next_insn_start): Likewise for return
20266 type and param "insn".
20267 (find_prev_insn_start): Likewise.
20268 (hwloop_optimize): Likewise for locals "insn", "last_insn",
20270 (gen_one_bundle): Likewise for loal "t".
20271 (find_load): Likewise for param "insn".
20272 (workaround_speculation): Likewise for locals "insn", "next",
20273 "target", "next_tgt".
20274 * config/c6x/c6x.c (assign_reservations): Likewise for both params
20275 and for locals "insn", "within", "last".
20276 (count_unit_reqs): Likewise for params "head", "tail" and local
20278 (try_rename_operands): Likewise for params "head", "tail".
20279 (reshuffle_units): Likewise for locals "head", "tail", "insn".
20280 (struct c6x_sched_context): Likewise for fields
20281 "last_scheduled_insn", "last_scheduled_iter0".
20282 (init_sched_state): Replace NULL_RTX with NULL.
20283 (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
20285 (undo_split_delayed_nonbranch): Likewise for param and for local
20287 (conditionalize_after_sched): Likewise for local "insn".
20288 (bb_earliest_end_cycle): Likewise.
20289 (filter_insns_above): Likewise for locals "insn", "next".
20290 (hwloop_optimize): Remove redundant checked cast.
20291 (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
20292 * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
20293 NULL_RTX with NULL.
20294 (cris_simple_epilogue): Likewise.
20295 (cris_expand_prologue): Likewise.
20296 (cris_expand_epilogue): Likewise.
20297 * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
20298 local "insn" from rtx to rtx_insn *.
20299 (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
20300 (struct frv_packet_group): Likewise for the elements within array
20301 fields "insns", "sorted", and for field "nop".
20302 (frv_packet): Likewise for the elements within array field
20304 (frv_add_insn_to_packet): Likewise for param "insn".
20305 (frv_insert_nop_in_packet): Likewise for param "insn" and local
20307 (frv_for_each_packet): Likewise for locals "insn", "next_insn".
20308 (frv_sort_insn_group_1): Likewise for local "insn".
20309 (frv_optimize_membar_local): Likewise.
20310 (frv_align_label): Likewise for locals "x", "last", "barrier",
20312 * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
20314 (ia64_sched_init): Likewise for local "insn".
20315 (scheduled_good_insn): Likewise for param "last".
20316 (struct _ia64_sched_context): Likewise for field
20317 "last_scheduled_insn".
20318 (ia64_init_sched_context): Replace NULL_RTX with NULL.
20319 (struct bundle_state): Likewise for field "insn".
20320 (issue_nops_and_insn): Likewise for param "insn".
20321 (get_next_important_insn): Likewise for return type and both
20323 (ia64_add_bundle_selector_before): Likewise for param "insn".
20324 (bundling): Likewise for params "prev_head_insn", "tail" and
20325 locals "insn", "next_insn", "b". Eliminate top-level local rtx
20326 "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
20327 * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
20328 Strengthen final param from rtx to rtx_insn *.
20329 (iq2000_move_1word): Likewise for second param.
20330 * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
20331 param "cur_insn" and local "next_insn".
20332 (iq2000_move_1word): Likewise for param "insn".
20333 * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
20334 casts when using NEXT_INSN on operands[1].
20335 * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
20336 "insn" from rtx to rtx_insn *.
20337 * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
20338 "x", introducing local rtx_insn * "insn" for when working with the
20339 CODE_LABEL of the LABEL_REF.
20340 (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
20342 * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
20344 * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
20346 (conditionalize_block): Likewise for return type and param.
20347 (mcore_is_dead): Likewise for param "first" and local "insn".
20348 (emit_new_cond_insn): Likewise for return type.
20349 (conditionalize_block): Likewise for return type, param, and
20350 locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
20352 (conditionalize_optimization): Likewise for local "insn".
20353 * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
20355 * config/microblaze/microblaze.md: Add checked casts when using
20357 * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
20358 rtx "insn" in favor of various more tightly-scoped rtx "insn" and
20359 and rtx_insn * "insn".
20360 * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
20361 checked cast when using NEXT_INSN on operands[2].
20362 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
20363 local "insn" from rtx to rtx_insn *.
20364 * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
20366 * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
20367 Add a checked cast when using NEXT_INSN on operands[1].
20368 * config/pa/pa-protos.h (pa_following_call): Strengthen param from
20370 (pa_output_cbranch): Likewise for final param.
20371 (pa_output_lbranch): Likewise for second param.
20372 (pa_output_bb): Likewise for third param.
20373 (pa_output_bvb): Likewise.
20374 (pa_output_dbra): Likewise for second param.
20375 (pa_output_movb): Likewise.
20376 (pa_output_parallel_movb): Likewise.
20377 (pa_output_parallel_addb): Likewise.
20378 (pa_output_millicode_call): Likewise for first param.
20379 (pa_output_mul_insn): Likewise for second param.
20380 (pa_output_div_insn): Likewise for third param.
20381 (pa_output_mod_insn): Likewise for second param.
20382 (pa_jump_in_call_delay): Likewise for param.
20383 * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
20384 (pa_output_div_insn): Likewise.
20385 (pa_output_mod_insn): Likewise.
20386 (pa_output_cbranch): Likewise.
20387 (pa_output_lbranch): Likewise.
20388 (pa_output_bb): Likewise.
20389 (pa_output_bvb): Likewise.
20390 (pa_output_dbra): Likewise.
20391 (pa_output_movb): Likewise.
20392 (pa_output_millicode_call): Likewise; use method of rtx_sequence *
20393 to simplify and for typesafety.
20394 (pa_output_call): Use method of rtx_sequence *.
20395 (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
20396 (pa_jump_in_call_delay): Likewise.
20397 (pa_output_parallel_movb): Likewise.
20398 (pa_output_parallel_addb): Likewise.
20399 (pa_following_call): Likewise.
20400 (pa_combine_instructions): Likewise for locals "anchor",
20402 (pa_can_combine_p): Likewise for params "anchor", "floater" and
20403 locals "start", "end".
20404 * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
20405 param "insn" and local "local_insn".
20406 (picochip_final_prescan_insn): Likewise for local "local_insn".
20407 * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
20409 (uses_TOC): Likewise.
20410 * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
20411 (s390_mainpool_finish): Eliminate top-level local rtx "insn",
20412 splitting out to more tightly-scoped locals, 3 as rtx and one as
20414 (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
20416 (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
20418 * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
20420 (fixup_addr_diff_vecs): Likewise.
20421 (reg_unused_after): Likewise for param 2.
20422 (sh_can_redirect_branch): Likewise for both params.
20423 (check_use_sfunc_addr): Likewise for param 1.
20424 * config/sh/sh.c (fixup_mova): Likewise for local "worker".
20425 (find_barrier): Likewise for local "last_got".
20426 (gen_block_redirect): Likewise for return type, param "jump" and
20427 locals "prev", "scan", "next", "insn".
20428 (struct far_branch): Likewise for fields "near_label",
20429 "insert_place", "far_label".
20430 (gen_far_branch): Likewise for local "jump".
20431 (fixup_addr_diff_vecs): Likewise for param "first" and locals
20433 (barrier_align): Likewise for param and for locals "prev", "x".
20434 Introduce local rtx_sequence * "prev_seq" and use insn method for
20435 typesafety and clarity.
20436 (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
20437 (get_dest_uid): Likewise for local "dest".
20438 (split_branches): Likewise for locals "next", "beyond", "label",
20439 "block", "far_label". Add checked casts when assigning to
20440 bp->far_label and "far_label".
20441 (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
20442 (sequence_insn_p): Likewise.
20443 (mark_constant_pool_use): Likewise for locals "insn", "lab". Add a
20444 more loop-scoped rtx "insn" when walking LABEL_REFS.
20445 (sh_can_redirect_branch): Strengthen both params from rtx to
20447 (check_use_sfunc_addr): Likewise for param "insn". Introduce a
20448 new local rtx_sequence * "seq" via a dyn_cast, and use a method
20449 for clarity and typesafety.
20450 * config/sh/sh.md (define_expand "epilogue"): Strengthen local
20451 "insn" from rtx to rtx_insn *.
20452 (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
20453 when using NEXT_INSN on the CODE_LABEL in operands[2].
20454 (define_insn "casesi_worker_2"): Likewise.
20455 (define_insn "casesi_shift_media"): Likewise.
20456 (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
20458 * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
20459 Strengthen field "insn" from rtx to rtx_insn *.
20460 (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
20461 (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
20462 param "start_insn" and local "start_insn".
20463 * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
20465 (find_set_of_reg_bb): Likewise for param "insn".
20466 (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
20467 (trace_reg_uses): Likewise for param "start_insn".
20468 (sh_treg_combine::cbranch_trace): Likewise for field
20470 (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
20472 (sh_treg_combine::record_set_of_reg): Likewise for param
20473 "start_insn" and local "i".
20474 (sh_treg_combine::can_remove_cstore): Likewise for local
20476 (sh_treg_combine::try_optimize_cbranch): Likewise for param
20478 (sh_treg_combine::execute): Likewise for local "i".
20479 * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
20481 (sparc_check_64): Likewise for second param.
20482 * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
20483 locals "insn", "next". Introduce local rtx_sequence * "seq" via a
20484 dyn_cast, using its insn method for typesafety and clarity.
20485 (empty_delay_slot): Strengthen param "insn" from rtx to
20487 (set_extends): Likewise.
20488 (sparc_check_64): Likewise.
20489 * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
20490 for locals "seq", "last_insn".
20491 (combine_bnp): Likewise for param "insn".
20492 (xstormy16_reorg): Likewise for local "insn".
20493 * config/v850/v850.c (substitute_ep_register): Likewise for params
20494 "first_insn", "last_insn" and local "insn".
20495 (v850_reorg): Likewise for fields "first_insn", "last_insn" within
20496 elements of "regs" array, and local "insn".
20497 * except.c (emit_note_eh_region_end): Likewise for param "insn".
20498 * final.c (final_sequence): Strengthen this global from rtx to
20500 (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
20502 (final_scan_insn): Update assignment to "final_sequence" to be
20503 from "seq", the cast version of "body", for type-safety.
20504 * function.c (assign_parm_setup_reg): Strengthen locals "insn",
20505 "insns" from rtx to rtx_insn *.
20506 (thread_prologue_and_epilogue_insns): Likewise for local "seq".
20507 * genattr.c (main): When writing out generated insn-attr.h,
20508 strengthen params 1 and 3 of eligible_for_delay,
20509 eligible_for_annul_true, eligible_for_annul_false from rtx to
20511 * genattrtab.c (write_eligible_delay): Likewise when writing out
20512 generated insn-attrtab.c; also local "insn" the generated
20514 * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
20516 * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
20517 "start_label" from rtx to rtx_insn *.
20518 * ira.c (decrease_live_ranges_number): Likewise for local "p".
20519 (ira_update_equiv_info_by_shuffle_insn): Likewise for param
20520 "insns" and local "insn".
20521 (validate_equiv_mem): Likewise for param "start" and local "insn".
20522 (memref_used_between_p): Likewise for params "start", "end" and
20524 * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
20526 * loop-doloop.c (doloop_optimize): Within region guarded by
20527 INSN_P (doloop_pat), introduce a new local rtx_insn *
20528 "doloop_insn" via a checked cast, and use it for typesafety,
20529 eventually writing the value back into doloop_pat.
20530 * output.h (final_sequence): Strengthen this global from rtx to
20532 * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
20533 reintroducing "insn" as an rtx_insn * via a checked cast.
20534 Strengthen param "attempt" and local "new_insn"from rtx to
20536 (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
20538 * ree.c (emit_note_eh_region_end): Likewise for local "insn".
20539 * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
20540 "p" in favor of more tightly-scoped replacements, sometimes rtx
20541 and sometimes rtx_insn *, as appropriate.
20542 (delete_output_reload): Eliminate top-level rtx "i1", splitting
20543 into two loop-scoped locals, one an rtx, the other an rtx_insn *.
20544 * reorg.c (delete_scheduled_jump): Add checked cast. Strengthen
20545 local "trial" from rtx to rtx_insn *.
20546 (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
20547 rtx to rtx_insn *. Strenghten local "pat" from rtx to
20548 rtx_sequence * and use methods for clarity and typesafety.
20549 (redirect_with_delay_list_safe_p): Strengthen param "jump" from
20550 rtx to rtx_insn *. Strenghten local "li" from rtx to
20551 rtx_insn_list * and use its methods for clarity and typesafety.
20552 (steal_delay_list_from_target): Strengthen param "insn" from rtx
20554 (steal_delay_list_from_fallthrough): Likewise.
20555 (try_merge_delay_insns): Likewise for param "thread" and locals
20556 "trial", "next_trial", "delay_insn".
20557 (redundant_insn): Likewise for param "target" and local "trial".
20558 (own_thread_p): Likewise for param "thread" and locals
20559 "active_insn", "insn".
20560 (get_label_before): Likewise for param "insn".
20561 (fill_simple_delay_slots): Likewise for local "new_label"; use
20562 JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
20563 (label_before_next_insn): Strengthen return type and local "insn"
20564 from rtx to rtx_insn *.
20565 (relax_delay_slots): Likewise for locals "other", "tmp".
20566 (make_return_insns): Likewise for param "first" and locals "insn",
20567 "jump_insn", "prev". Move declaration of "pat" to its assignment
20568 and strengthen from rtx to rtx_sequence *. Use its methods for
20569 clarity and typesafety.
20570 * rtlanal.c (no_labels_between_p): Strengthen params from
20571 const_rtx to const rtx_insn *. Strengthen local "p" from rtx to
20573 (reg_used_between_p): Strengthen params "from_insn", "to_insn"
20574 from const_rtx to const rtx_insn *.
20575 (reg_set_between_p): Rename param "from_insn" to
20576 "uncast_from_insn", and reintroduce "from_insn" as a
20577 const rtx_insn * via a checked cast.
20578 (modified_between_p): Likewise for param "start" as "uncast_start".
20579 (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
20580 * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
20581 "tmp", head" from rtx to rtx_insn *.
20582 (recompute_rev_top_order): Likewise for local "insn".
20583 * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
20584 * store-motion.c (build_store_vectors): Likewise for local "insn".
20585 Strengthen local "st" from rtx to rtx_insn_list * and use methods
20586 for clarity and typesafety.
20587 * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
20589 (computation_cost): Likewise for local "seq".
20590 (get_address_cost): Likewise.
20592 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20594 * rtl.h (tablejump_p): Strengthen first param from const_rtx to
20596 (label_is_jump_target_p): Likewise for second param.
20598 * rtlanal.c (tablejump_p): Likewise for param "insn".
20599 (label_is_jump_target_p): Likewise for param "jump_insn".
20601 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20603 * rtl.h (find_first_parameter_load): Strengthen return type and
20604 both params from rtx to rtx_insn *.
20605 * rtlanal.c (find_first_parameter_load): Strengthen return type,
20606 both params and locals "before", "first_set" from rtx to
20607 rtx_insn *. Remove now-redundant cast.
20608 * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
20610 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20612 * rtl.h (find_last_value): Delete.
20613 * rtlanal.c (find_last_value): Delete.
20615 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20617 * cfgexpand.c (pass_expand::execute): Strengthen local "after"
20618 from rtx to rtx_insn *.
20619 * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
20620 rtx "note" with new local rtx_insn * "new_head" when calculating
20621 head insn of new basic block.
20622 * combine.c (combine_split_insns): Strengthen return type and local
20623 "ret" from rtx to rtx_insn *.
20624 (likely_spilled_retval_p): Likewise for locals "use" and "p".
20625 (try_combine): Eliminate local "m_split", splitting into new
20626 locals "m_split_insn" and "m_split_pat".
20627 (find_split_point): Strengthen local "seq" from rtx into
20629 * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
20630 locals "label", "branch".
20631 * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
20633 (define_expand "umulsi3_highpart"): Likewise for local "insn".
20634 * dse.c (note_add_store_info): Likewise for fields "first",
20636 (note_add_store): Likewise for local "insn".
20637 (emit_inc_dec_insn_before): Likewise for locals "insn",
20639 (find_shift_sequence): Likewise for locals "shift_seq", "insn".
20640 (replace_read): Likewise for locals "insns", "this_insn".
20641 * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
20642 (notice_eh_throw): Likewise for param "insn".
20643 (before_next_cfi_note): Likewise for return type, param, and local
20645 (connect_traces): Likewise for local "note".
20646 * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
20647 (verify_rtl_sharing): Likewise.
20648 (unshare_all_rtl_in_chain): Likewise for param "insn".
20649 (get_first_nonnote_insn): Likewise for local "insn".
20650 (get_last_nonnote_insn): Likewise. Introduce local rtx_sequence *
20651 "seq" and use its methods to clarify things.
20652 (next_insn): Strengthen return type from rtx to rtx_insn *.
20653 Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
20654 local rtx_insn * using a checked cast, dropping a checked cast
20655 made redundant by this change. Use a cast to and method of
20656 rtx_sequence to clarify the code.
20657 (previous_insn): Rename param "insn" to "uncast_insn" and
20658 reintroduce "insn" as a local rtx_insn * using a checked cast,
20659 dropping a checked cast made redundant by this change. Use a cast
20660 to and method of rtx_sequence to clarify the code.
20661 (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
20662 reintroduce "insn" as a local rtx_insn * using a checked cast,
20663 dropping a checked cast made redundant by this change.
20664 (next_nonnote_insn_bb): Likewise.
20665 (prev_nonnote_insn): Likewise.
20666 (prev_nonnote_insn_bb): Likewise.
20667 (next_nondebug_insn): Likewise.
20668 (prev_nondebug_insn): Likewise.
20669 (next_nonnote_nondebug_insn): Likewise.
20670 (prev_nonnote_nondebug_insn): Likewise.
20671 (next_real_insn): Likewise.
20672 (prev_real_insn): Likewise.
20673 (next_active_insn): Likewise.
20674 (prev_active_insn): Likewise.
20675 (next_cc0_user): Likewise. Use rtx_sequence and a method for
20677 (prev_cc0_setter): Likewise.
20678 (try_split): Rename param "trial" to "uncast_trial" and
20679 reintroduce "insn" as a local rtx_insn * using a checked cast,
20680 dropping checked casts made redundant by this change.
20681 Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
20683 (remove_insn): Rename param "insn" to "uncast_insn" and
20684 reintroduce "insn" as a local rtx_insn * using a checked cast.
20685 (emit_pattern_after_setloc): Likewise for param "after", as
20687 (emit_pattern_after): Likewise. Strengthen local "prev" from
20689 (emit_pattern_before_setloc): Rename param "before" to
20690 "uncast_before" and reintroduce "before" as a local rtx_insn *
20691 using a checked cast. Strengthen locals "first", "last" from
20693 (emit_pattern_before): Likewise rename/cast param "before" to
20694 "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
20695 * except.c (copy_reg_eh_region_note_forward): Strengthen param
20696 "first" and local "insn" from rtx to rtx_insn *.
20697 (copy_reg_eh_region_note_backward): Likewise for param "last"
20699 * expr.c (fixup_args_size_notes): Rename param "last" to
20700 "uncast_last" and reintroduce "last" as a local rtx_insn *
20701 using a checked cast. Strengthen local "insn" from rtx to
20703 * function.c (set_insn_locations): Strengthen param "insn" from
20705 (record_insns): Likewise for param "insns" and local "tmp".
20706 (active_insn_between): Rename param "tail" to
20707 "uncast_tail" and reintroduce "tail" as a local rtx_insn *
20708 using a checked cast.
20709 (thread_prologue_and_epilogue_insns): Split out top-level local
20710 rtx "seq" into three different rtx_insn * locals. Strengthen
20711 local "prologue_seq" from rtx to rtx_insn *.
20712 * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
20713 from rtx to rtx_insn *.
20714 * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
20715 (priority): Likewise for locals "prev_first", "twin".
20716 (setup_insn_max_reg_pressure): Likewise for param "after".
20717 (sched_setup_bb_reg_pressure_info): Likewise.
20718 (no_real_insns_p): Strengthen params from const_rtx to
20720 (schedule_block): Strengthen local "next_tail" from rtx to
20722 * ifcvt.c (find_active_insn_before): Strengthen return type and
20723 param "insn" from rtx to rtx_insn *.
20724 (find_active_insn_after): Likewise.
20725 (cond_exec_process_insns): Likewise for param "start" and local "insn".
20726 (cond_exec_process_if_block): Likewise for locals "then_start",
20727 "then_end", "else_start", "else_end", "insn", "start", "end", "from".
20728 (noce_process_if_block): Likewise for local "jump".
20729 (merge_if_block): Likewise for two locals named "end".
20730 (cond_exec_find_if_block): Likewise for local "last_insn".
20731 * jump.c (delete_related_insns): Rename param "insn" to
20732 "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
20733 checked cast. Strengthen local "p" from rtx to rtx_insn *.
20734 * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
20736 (split_reg): Likewise.
20737 * lra.c (lra_process_new_insns): Likewise.
20738 * modulo-sched.c (permute_partial_schedule): Strengthen param
20739 "last" from rtx to rtx_insn *.
20740 * optabs.c (add_equal_note): Likewise for param "insns" and local
20742 (expand_binop_directly): Add checked casts to rtx_insn * within
20743 NEXT_INSN (pat) uses.
20744 (expand_unop_direct): Likewise.
20745 (maybe_emit_unop_insn): Likewise.
20746 * recog.c (peep2_attempt): Strengthen locals "last",
20747 "before_try", "x" from rtx to rtx_insn *.
20748 * reorg.c (optimize_skip): Strengthen return type and local
20749 "delay_list" from rtx to rtx_insn_list *. Strengthen param "insn"
20750 and locals "trial", "next_trial" from rtx to rtx_insn *.
20751 * resource.c (next_insn_no_annul): Strengthen return type and
20752 param "insn" from rtx to rtx_insn *. Use a cast to and method of
20753 rtx_sequence to clarify the code.
20754 (mark_referenced_resources): Add a checked cast to rtx_insn *
20755 within PREV_INSN (x).
20756 (find_dead_or_set_registers): Strengthen return type, param
20757 "target", locals "insn", "next", "jump_insn", "this_jump_insn"
20758 from rtx to rtx_insn *. Strengthen param "jump_target" from rtx *
20760 (mark_target_live_regs): Strengthen params "insns" and "target",
20761 locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
20762 to rtx_insn *. Use cast to and method of rtx_sequence to clarify
20764 * resource.h (mark_target_live_regs): Strengthen params 1 and 2
20765 from rtx to rtx_insn *.
20766 * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
20767 from rtx to rtx_insn *.
20768 (copy_reg_eh_region_note_backward): Likewise.
20769 (unshare_all_rtl_in_chain): Likewise for sole param.
20770 (dump_rtl_slim): Strengthen second and third params from const_rtx
20771 to const rtx_insn *.
20772 * sched-deps.c (sched_free_deps): Strengthen params "head" and
20773 "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
20774 * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
20775 "next_tail" from rtx to rtx_insn *.
20776 (begin_move_insn): Likewise for local "next".
20777 * sched-int.h (sched_free_deps): Likewise for first and second
20779 (no_real_insns_p): Strengthen both params from const_rtx to
20781 (sched_setup_bb_reg_pressure_info): Strengthen second params from
20783 * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
20785 * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
20786 and locals "insn", "tail" from const_rtx to const rtx_insn *.
20787 (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
20789 (debug_rtl_slim): Strengthen params "first" and "last" from
20790 const_rtx to const rtx_insn *.
20791 * shrink-wrap.c (try_shrink_wrapping): Strengthen param
20792 "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
20793 (convert_to_simple_return): Likewise for param "returnjump".
20794 * shrink-wrap.h (try_shrink_wrapping): Likewise for param
20796 (convert_to_simple_return): Likewise for param "returnjump".
20797 * valtrack.c (propagate_for_debug): Likewise for params
20799 * valtrack.h (propagate_for_debug): Likewise for second param.
20801 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20803 * output.h (insn_current_reference_address): Strengthen param
20804 from rtx to rtx_insn *.
20805 * final.c (insn_current_reference_address): Likewise.
20807 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20809 * basic-block.h (inside_basic_block_p): Strengthen param from
20810 const_rtx to const rtx_insn *.
20811 * cfgbuild.c (inside_basic_block_p): Likewise.
20813 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20815 * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
20817 (get_trace_info): Likewise for param "insn".
20818 (save_point_p): Likewise.
20819 (maybe_record_trace_start): Likewise for both params.
20820 (maybe_record_trace_start_abnormal): Likewise.
20821 (create_trace_edges): Likewise for sole param and for three of the
20822 locals named "lab".
20823 (scan_trace): Strengthen local "prev", "insn", "control" from rtx
20824 to rtx_insn *, and update a call to pat->element to pat->insn.
20826 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20828 * function.h (struct expr_status): Convert field "x_forced_labels"
20829 from rtx_expr_list * to rtx_insn_list *.
20831 * cfgbuild.c (make_edges): Convert local "x" from an
20832 rtx_expr_list * to an rtx_insn_list *, replacing use of
20833 "element" method with "insn" method.
20834 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
20835 * except.c (sjlj_emit_dispatch_table): Replace use of
20836 gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
20838 * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
20839 rtx_expr_list * to an rtx_insn_list *, replacing use of
20840 "element" method with "insn" method.
20841 * reload1.c (set_initial_label_offsets): Likewise for local "x".
20842 * stmt.c (label_rtx): Strengthen local "ref" from rtx to
20843 rtx_insn *, adding a checked cast. Replace use of
20844 gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
20846 (expand_label): Likewise for local "label_r".
20848 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20850 * function.h (struct rtl_data): Convert field
20851 "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
20853 * rtl.h (remove_node_from_insn_list): New prototype.
20855 * builtins.c (expand_builtin): When prepending to
20856 nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
20858 * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
20859 to rtx_insn_list *, and use its "insn" method rather than
20861 * cfgrtl.c (delete_insn): Use new function
20862 remove_node_from_insn_list rather than
20863 remove_node_from_expr_list.
20864 (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
20865 to rtx_insn_list *, and use its "insn" method rather than
20867 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
20868 * reload1.c (set_initial_label_offsets): Likewise for local "x".
20869 * rtlanal.c (remove_node_from_insn_list): New function, adapted
20870 from remove_node_from_expr_list.
20871 * stmt.c (expand_label): When prepending to
20872 nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
20875 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20877 * function.h (struct rtl_data): Strengthen fields "x_return_label"
20878 and "x_naked_return_label" from rtx to rtx_code_label *.
20880 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20882 * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
20883 (SET_NEXT_INSN): Likewise.
20884 (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
20886 * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
20887 rtx * to rtx_insn **. Introduce a new local rtx "seq", using it
20888 to split out the SEQUENCE from local "bundle", strengthening the
20889 latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
20890 Strengthen locals "t" and "insn" from rtx to rtx_insn *.
20891 (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
20892 and the type of the elements of the "slot" array from rtx to
20894 (reorg_split_calls): Likewise for locals "insn" and "next", and
20895 the type of the elements of the "slot" array.
20897 * config/frv/frv.c (frv_nops): Likewise for the elements of this
20899 (frv_function_prologue): Likewise for locals "insn", "next",
20901 (frv_register_nop): Introduce a local "nop_insn" to be the
20902 rtx_insn * containing rtx "nop".
20904 * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
20905 used as an insn and sometimes as a pattern, so rename it to
20906 "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
20907 using it where dealing with the core insn.
20909 * config/picochip/picochip.c (reorder_var_tracking_notes):
20910 Strengthen locals "insn", "next", "last_insn", "queue",
20911 "next_queue", "prev" from rtx to rtx_insn *.
20913 * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
20914 the second param is an rtx_insn ** rather than an rtx **.
20915 (link_insn_into_chain): Strengthen locals "seq" and "sequence"
20916 from rtx to rtx_sequence *, and introduce local named "sequence",
20917 using methods of rtx_sequence to clarify the code.
20918 (remove_insn): Introduce local rtx_sequence * named "sequence" and
20920 (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
20921 Rename param "after" to "uncast_after", reintroducing "after" as a
20922 local rtx_insn * with a checked cast.
20923 (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
20924 reintroducing "after" as a local rtx_insn * with a checked cast.
20925 Strengthen local "last" from rtx to rtx_insn * and remove the
20926 now-redundant checked casts.
20927 (copy_delay_slot_insn): Strengthen return type and param from rtx
20930 * haifa-sched.c (reemit_notes): Strengthen params "insn" and
20931 "last" from rtx to rtx_insn *.
20933 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20935 * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
20936 param from rtx to rtx_insn *.
20938 * emit-rtl.c (copy_delay_slot_insn): Likewise.
20940 * reorg.c (skip_consecutive_labels): Strengthen return type, param
20941 and local "insn" from rtx to rtx_insn *.
20942 (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
20943 (unfilled_slots_next): Likewise.
20944 (function_return_label): Strengthen from rtx to rtx_code_label *.
20945 (function_simple_return_label): Likewise.
20946 (first_active_target_insn): Strengthen return type and param from
20948 (find_end_label): Strengthen return type from rtx to
20949 rtx_code_label *; strengthen locals as appropriate.
20950 (emit_delay_sequence): Strengthen return type, param "insn" and
20951 local "seq_insn" from rtx to rtx_insn *. Strengthen param "list"
20952 and local "li" from rtx to rtx_insn_list *, using methods of
20953 rtx_insn_list for clarity and typesafety.
20954 (add_to_delay_list): Strengthen return type and param "insn" from
20955 rtx to rtx_insn *. Strengthen param "delay_list" from rtx to
20956 rtx_insn_list * and use methods of rtx_insn_list.
20957 (delete_from_delay_slot): Strengthen return type, param "insn",
20958 locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
20959 Strengthen local "seq" from rtx to rtx_sequence *, and local
20960 "delay_list" from rtx to rtx_insn_list *, using methods of
20961 rtx_sequence for clarity and type-safety.
20962 (delete_scheduled_jump): Add checked cast when invoking
20963 delete_from_delay_slot. Strengthen local "trial" from rtx to
20965 (optimize_skip): Strengthen return type and local "delay_list"
20966 from rtx to rtx_insn_list *. Strengthen local "trial" from rtx to
20968 (steal_delay_list_from_target): Strengthen return type, param
20969 "delay_list" and local "new_delay_list" from rtx to
20970 rtx_insn_list *. Strengthen param "seq" from rtx to
20971 rtx_sequence *. Strengthen param "pnew_thread" from rtx * to
20973 Split out local "temp" into multiple more-tightly scoped locals:
20974 sometimes an rtx_insn_list *, and once a rtx_insn *. Use methods
20975 of rtx_insn_list and rtx_sequence for clarity and typesafety.
20976 Strengthen locals named "trial" from rtx to rtx_insn *.
20977 (steal_delay_list_from_fallthrough): Strengthen return type and
20978 param "delay_list" from rtx to rtx_insn_list *. Strengthen param
20979 "seq" from rtx to rtx_sequence *. Use methods of rtx_sequence.
20980 Strengthen local "trial" from rtx to rtx_insn *.
20981 (try_merge_delay_insns): Strength local "merged_insns" from rtx
20982 to rtx_insn_list * and use its methods. Strengthen local "pat"
20983 from rtx to rtx_sequence * and use its methods. Strengthen locals
20984 "dtrial" and "new_rtx" from rtx to rtx_insn *.
20985 (get_label_before): Strengthen return type and local "label" from
20987 (fill_simple_delay_slots): Likewise for locals "insn", "trial",
20988 "next_trial", "next", prev". Strengthen local "delay_list" from
20989 rtx to rtx_insn_list * Strengthen local "tmp" from rtx * to
20991 (follow_jumps): Strengthen return type, param "label" and locals
20992 "insn", "next", "value", "this_label" from rtx to rtx_insn *.
20993 (fill_slots_from_thread): Strengthen return type, param
20994 "delay_list" from rtx to rtx_insn_list *. Strengthen params
20995 "insn", "thread", "opposite_thread" and locals "new_thread",
20996 "trial", "temp", "ninsn" from rtx to rtx_insn *. Introduce local
20997 "sequence" from a checked cast to rtx_sequence so that we can call
20998 steal_delay_list_from_target and steal_delay_list_from_fallthrough
20999 with an rtx_sequence *.
21000 (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
21001 "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
21002 Strengthen local "delay_list" from rtx to rtx_insn_list *.
21003 (relax_delay_slots): Strengthen param "first" and locals "insn",
21004 "next", "trial", "delay_insn", "target_label" from rtx to
21005 rtx_insn *. Strengthen local "pat" from rtx to rtx_sequence *.
21006 Introduce a local "trial_seq" for PATTERN (trial) of type
21007 rtx_sequence *, in both cases using methods of rtx_sequence.
21008 (dbr_schedule): Strengthen param "first" and locals "insn",
21009 "next", "epilogue_insn" from rtx to rtx_insn *.
21011 2014-08-28 Richard Biener <rguenther@suse.de>
21013 PR tree-optimization/62283
21014 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
21015 Do not peel loops for alignment where the vector loop likely
21016 doesn't run at least VF times.
21018 2014-08-28 Bin Cheng <bin.cheng@arm.com>
21020 * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
21021 important_candidates. Consider all important candidates if
21022 IVS doesn't give any result. Remove check on ivs->upto.
21023 (try_add_cand_for): Call iv_ca_add_use only once.
21025 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
21026 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
21027 Anna Tikhonova <anna.tikhonova@intel.com>
21028 Ilya Tocar <ilya.tocar@intel.com>
21029 Andrey Turetskiy <andrey.turetskiy@intel.com>
21030 Ilya Verbin <ilya.verbin@intel.com>
21031 Kirill Yukhin <kirill.yukhin@intel.com>
21032 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
21034 (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
21035 (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
21037 (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
21038 (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
21039 (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
21040 (define_insn "*mul<mode>3"): Add EVEX version.
21042 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
21043 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
21044 Anna Tikhonova <anna.tikhonova@intel.com>
21045 Ilya Tocar <ilya.tocar@intel.com>
21046 Andrey Turetskiy <andrey.turetskiy@intel.com>
21047 Ilya Verbin <ilya.verbin@intel.com>
21048 Kirill Yukhin <kirill.yukhin@intel.com>
21049 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
21051 * config/i386/sse.md
21052 (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
21053 (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
21054 (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
21055 (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
21056 (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
21057 (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
21058 (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
21059 (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
21060 (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
21061 (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
21062 (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
21063 (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
21064 (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
21065 (define_insn "vec_interleave_highv16qi<mask_name>"): New.
21066 (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
21067 (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
21069 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
21070 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
21071 Anna Tikhonova <anna.tikhonova@intel.com>
21072 Ilya Tocar <ilya.tocar@intel.com>
21073 Andrey Turetskiy <andrey.turetskiy@intel.com>
21074 Ilya Verbin <ilya.verbin@intel.com>
21075 Kirill Yukhin <kirill.yukhin@intel.com>
21076 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
21078 * config/i386/sse.md
21079 (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
21080 (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
21081 (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
21083 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
21084 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
21085 Anna Tikhonova <anna.tikhonova@intel.com>
21086 Ilya Tocar <ilya.tocar@intel.com>
21087 Andrey Turetskiy <andrey.turetskiy@intel.com>
21088 Ilya Verbin <ilya.verbin@intel.com>
21089 Kirill Yukhin <kirill.yukhin@intel.com>
21090 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
21092 * config/i386/sse.md
21093 (define_mode_iterator VI128_256): New.
21094 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
21096 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
21097 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
21098 Anna Tikhonova <anna.tikhonova@intel.com>
21099 Ilya Tocar <ilya.tocar@intel.com>
21100 Andrey Turetskiy <andrey.turetskiy@intel.com>
21101 Ilya Verbin <ilya.verbin@intel.com>
21102 Kirill Yukhin <kirill.yukhin@intel.com>
21103 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
21105 * config/i386/sse.md
21106 (define_mode_iterator VI8_256_512): New.
21107 (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
21109 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
21110 (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
21112 (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
21114 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21116 * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx. Remove the
21117 pointer to the cumulative reloc value and return the value for
21118 this reloc instead.
21119 (compute_reloc_for_rtx): Take a const_rtx. Call
21120 compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
21121 avoiding any recursion. Use FOR_EACH_SUBRTX rather than
21122 for_each_rtx for the CONST case.
21124 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21126 * varasm.c (mark_constant): Replace this for_each_rtx callback with...
21127 (mark_constants_in_pattern): ...this new function to iterate over
21129 (mark_constants): Update accordingly.
21131 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21133 * varasm.c: Include rtl-iter.h.
21134 (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
21135 Remove the pointer to the cumulative hashval_t and just return
21136 the hash for this rtx instead. Remove recursive CONST_VECTOR case.
21137 (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21138 Accumulate the hashval_ts here instead of const_rtx_hash_1.
21140 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21142 * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
21143 Give real type of data parameter. Remove return value.
21144 (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
21145 to iterate over subrtxes.
21147 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21149 * var-tracking.c (use_narrower_mode_test): Turn from being a
21150 for_each_rtx callback to being a function that examines each
21152 (adjust_mems): Update accordingly.
21154 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21156 * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
21157 callback to being a function that examines each subrtx itself.
21158 Remove handling of null rtxes.
21159 (add_uses): Update accordingly.
21161 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21163 * var-tracking.c: Include rtl-iter.h.
21164 (rtx_debug_expr_p): Turn from being a for_each_rtx callback
21165 to being a function that examines each subrtx itself.
21166 (use_type): Update accordingly.
21168 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21170 * store-motion.c: Include rtl-iter.h.
21171 (extract_mentioned_regs_1): Delete.
21172 (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
21173 for_each_rtx to iterate over subrtxes.
21175 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21177 * sel-sched.c: Include rtl-iter.h
21178 (count_occurrences_1): Delete.
21179 (count_occurrences_equiv): Turn rtxes into const_rtxes.
21180 Use FOR_EACH_SUBRTX rather than for_each_rtx.
21182 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21184 * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
21185 * rtlanal.c (tls_referenced_p_1): Delete.
21186 (tls_referenced_p): Take a const_rtx rather than an rtx.
21187 Use FOR_EACH_SUBRTX rather than for_each_rtx.
21189 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21191 * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
21192 (for_each_inc_dec): Take an rtx rather than an rtx *.
21193 * cselib.c (cselib_record_autoinc_cb): Update accordingly.
21194 (cselib_record_sets): Likewise.
21195 * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
21196 (check_for_inc_dec): Likewise.
21197 * rtlanal.c (for_each_inc_dec_ops): Delete.
21198 (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
21199 rather than a pointer to the memory address. Replace
21200 for_each_inc_dec_ops argument with separate function and data
21201 arguments. Abort on non-autoinc addresses.
21202 (for_each_inc_dec_find_mem): Delete.
21203 (for_each_inc_dec): Take an rtx rather than an rtx *. Use
21204 FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
21206 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21208 * rtl.h (find_all_hard_regs): Declare.
21209 * rtlanal.c (find_all_hard_regs): New function.
21210 (record_hard_reg_uses_1): Delete.
21211 (record_hard_reg_uses): Use find_all_hard_regs.
21213 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21215 * rtl.h (replace_label_data): Delete.
21216 (replace_label): Take the old label, new label and update-nuses flag
21217 as direct arguments. Return void.
21218 * cfgcleanup.c (outgoing_edges_match): Update accordingly.
21219 * rtlanal.c (replace_label): Update interface as above. Handle
21220 JUMP_TABLE_DATA as a special case. Handle JUMPs outside the
21221 iterator. Use FOR_EACH_SUBRTX_PTR.
21223 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21225 * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
21226 with const_rtx parameters.
21227 * varasm.c (get_pool_constant): Likewise.
21228 * rtlanal.c (rtx_referenced_p_1): Delete.
21229 (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21230 Assert that the rtx we're looking for is nonnull. Allow searches
21231 for constant pool SYMBOL_REFs.
21233 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21235 * reload1.c: Include rtl-iter.h.
21236 (note_reg_elim_costly): Turn from being a for_each_rtx callback
21237 to being a function that examines each subrtx itself.
21238 (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
21240 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21242 * regcprop.c (cprop_find_used_regs_1): Delete.
21243 (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21245 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21247 * regcprop.c: Include rtl-iter.h.
21248 (kill_value): Take a const_rtx.
21249 (kill_autoinc_value): Turn from being a for_each_rtx callback
21250 to being a function that examines each subrtx itself.
21251 (copyprop_hardreg_forward_1): Update accordingly.
21253 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21255 * reg-stack.c: Include rtl-iter.h.
21256 (subst_stack_regs_in_debug_insn): Delete.
21257 (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
21258 instead of for_each_rtx.
21260 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21262 * lower-subreg.c (find_decomposable_subregs): Turn from being
21263 a for_each_rtx callback to being a function that examines each
21264 subrtx itself. Remove handling of null rtxes.
21265 (decompose_multiword_subregs): Update accordingly.
21267 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21269 * lower-subreg.c (adjust_decomposed_uses): Delete.
21270 (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
21271 Remove handling of null rtxes.
21273 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21275 * lower-subreg.c: Include rtl-iter.h.
21276 (resolve_subreg_use): Turn from being a for_each_rtx callback
21277 to being a function that examines each subrtx itself. Remove
21278 handling of null rtxes.
21279 (resolve_reg_notes, resolve_simple_move): Update accordingly.
21280 (decompose_multiword_subregs): Likewise.
21282 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21284 * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
21285 to being a function that examines each subrtx itself.
21286 (simplify_using_condition, simplify_using_initial_values): Update
21289 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21291 * loop-iv.c: Include rtl-iter.h.
21292 (find_single_def_src): New function.
21293 (replace_single_def_regs): Turn from being a for_each_rtx callback
21294 to being a function that examines each subrtx itself.
21295 (replace_in_expr, simplify_using_initial_values): Update accordingly.
21297 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21299 * jump.c (eh_returnjump_p_1): Delete.
21300 (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
21301 Remove handling of null rtxes.
21303 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21305 * jump.c: Include rtl-iter.h.
21306 (returnjump_p_1): Delete.
21307 (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
21308 Remove handling of null rtxes.
21310 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21312 * ira.c: Include rtl-iter.h.
21313 (set_paradoxical_subreg): Turn from being a for_each_rtx callback
21314 to being a function that examines each subrtx itself. Remove
21315 handling of null rtxes.
21316 (update_equiv_regs): Update call accordingly.
21318 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21320 * fwprop.c: Include rtl-iter.h.
21321 (varying_mem_p): Turn from being a for_each_rtx callback to being
21322 a function that examines each subrtx itself.
21323 (propagate_rtx): Update accordingly.
21325 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21327 * function.c: Include rtl-iter.h
21328 (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
21329 callback to being a function that examines each subrtx itself.
21330 Return the changed flag.
21331 (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
21332 (instantiate_virtual_regs): Update calls accordingly.
21334 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21336 * final.c: Include rtl-iter.h.
21337 (mark_symbol_ref_as_used): Delete.
21338 (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
21341 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21343 * emit-rtl.c: Include rtl-iter.h.
21344 (find_auto_inc): Turn from being a for_each_rtx callback to being
21345 a function that examines each subrtx itself. Assume the first operand
21346 to an RTX_AUTOINC is the automodified register.
21347 (try_split): Update call accordingly.
21349 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21351 * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
21352 Return a bool, inverting the result so that 0/false means "not ok".
21353 Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
21354 subrtxes of a CONST.
21355 (mem_loc_descriptor, add_const_value_attribute)
21356 (resolve_addr_in_expr): Update calls accordingly.
21358 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21360 * dwarf2out.c: Include rtl-iter.h.
21361 (const_ok_for_output_1): Take the rtx instead of a pointer to it.
21362 Remove unused data parameter. Return a bool, inverting the result
21363 so that 0/false means "not ok".
21364 (const_ok_for_output): Update accordingly. Use FOR_EACH_SUBRTX_VAR
21365 instead of for_each_rtx.
21367 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21369 * dse.c: Include rtl-iter.h.
21370 (check_mem_read_rtx): Change void * parameter to real type.
21371 Remove return value.
21372 (check_mem_read_use): Fix comment. Use FOR_EACH_SUBRTX_PTR instead of
21373 for_each_rtx. Don't handle null rtxes.
21375 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21377 * df-problems.c: Include rtl-iter.h.
21378 (find_memory): Turn from being a for_each_rtx callback to being
21379 a function that examines each subrtx itself. Continue to look for
21380 volatile references even after a nonvolatile one has been found.
21381 (can_move_insns_across): Update calls accordingly.
21383 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21385 * ddg.c (walk_mems_2, walk_mems_1): Delete.
21386 (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
21387 to iterate over subrtxes. Return a bool rather than an int.
21389 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21391 * ddg.c: Include rtl-iter.h.
21392 (mark_mem_use_1): Rename to...
21393 (mark_mem_use): ...deleting old mark_mem_use. Use FOR_EACH_SUBRTX
21394 instead of for_each_rtx.
21395 (mem_read_insn_p): Update accordingly.
21397 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21399 * cse.c (change_cc_mode_args): Delete.
21400 (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
21401 a function that examines each subrtx itself. Take the fields of
21402 change_cc_mode_args as argument and return void.
21403 (cse_change_cc_mode_insn): Update calls accordingly.
21405 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21407 * cse.c (is_dead_reg): Change argument to const_rtx.
21408 (dead_debug_insn_data): Delete.
21409 (is_dead_debug_insn): Expand commentary. Turn from being a
21410 for_each_rtx callback to being a function that examines
21411 each subrtx itself. Take the fields of dead_debug_insn_data
21413 (delete_trivially_dead_insns): Update call accordingly.
21415 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21417 * cse.c (check_for_label_ref): Move earlier in file. Turn from
21418 being a for_each_rtx callback to being a function that examines
21419 each subrtx itself.
21420 (cse_extended_basic_block): Update call accordingly.
21422 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21424 * cse.c (check_dependence_data): Delete.
21425 (check_dependence): Change from being a for_each_rtx callback to being
21426 a function that examines all subrtxes itself. Don't handle null rtxes.
21427 (invalidate): Update call accordingly.
21429 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21431 * cse.c: Include rtl-iter.h.
21432 (approx_reg_cost_1): Delete.
21433 (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21434 Don't handle null rtxes.
21436 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21438 * cfgcleanup.c: Include rtl-iter.h.
21439 (mentions_nonequal_regs): Turn from being a for_each_rtx callback
21440 to being a function that examines each subrtx itself.
21441 (thread_jump): Update accordingly.
21443 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21445 * combine-stack-adj.c: Include rtl-iter.h.
21446 (record_stack_refs_data): Delete.
21447 (record_stack_refs): Turn from being a for_each_rtx callback
21448 to being a function that examines each subrtx itself.
21449 Take a pointer to the reflist. Invert sense of return value
21450 so that true means success and false means failure. Don't
21452 (combine_stack_adjustments_for_block): Update accordingly.
21454 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21456 * combine.c (record_truncated_value): Turn from being a for_each_rtx
21457 callback to a function that takes an rtx and returns a bool
21458 (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
21461 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21463 * combine.c: Include rtl-iter.h.
21464 (unmentioned_reg_p_1): Delete.
21465 (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
21466 Don't handle null rtxes.
21468 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21470 * calls.c: Include rtl-iter.h.
21471 (internal_arg_pointer_based_exp_1): Delete.
21472 (internal_arg_pointer_based_exp): Take a const_rtx.
21473 Use FOR_EACH_SUBRTX to iterate over subrtxes.
21475 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21477 * caller-save.c: Include rtl-iter.h.
21478 (add_used_regs_1): Delete.
21479 (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
21480 to iterate over subrtxes. Assert that any remaining pseudos
21483 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21485 * bt-load.c: Include rtl-iter.h.
21486 (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
21487 (find_btr_use): Move further up file. Use FOR_EACH_SUBRTX_PTR
21488 to iterate over subrtxes.
21489 (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
21490 find_btr_use rather than btr_referenced_p.
21492 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21494 * alias.c: Include rtl-iter.h.
21495 (refs_newer_value_cb): Delete.
21496 (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21498 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21500 * rtl-iter.h: New file.
21501 * rtlanal.c: Include it.
21502 (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
21503 (generic_subrtx_iterator <T>::add_single_to_queue)
21504 (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
21505 (generic_subrtx_iterator <T>::free_array): New functions.
21506 (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
21507 (generic_subrtx_iterator <const_rtx_accessor>)
21508 (generic_subrtx_iterator <rtx_var_accessor>
21509 (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
21510 (setup_reg_subrtx_bounds): New function.
21511 (init_rtlanal): Call it.
21513 2014-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
21516 * config/sh/sh.md (ashlsi3): Handle negative shift count for
21518 (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
21520 2014-08-27 Richard Sandiford <rdsandiford@googlemail.com>
21522 * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
21524 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21526 * rtl.h (JUMP_LABEL_AS_INSN): New.
21528 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21530 * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
21532 (alloc_EXPR_LIST): Strengthen return type from rtx to
21534 (remove_free_EXPR_LIST_node): Likewise for param.
21535 * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
21536 from rtx to rtx_expr_list *.
21537 * sched-int.h (struct deps_desc): Strengthen fields
21538 "pending_read_mems" and "pending_write_mems" from rtx to
21541 * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
21542 rtx to rtx_expr_list *.
21543 * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
21544 (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
21546 (remove_free_EXPR_LIST_node): Likewise. Strengthen local "node"
21547 from rtx to rtx_expr_list *.
21548 * loop-iv.c (simplify_using_initial_values): Strengthen local
21549 "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
21550 "pnote_next" from rtx * to rtx_expr_list **.
21551 * sched-deps.c (remove_from_both_dependence_lists): Strengthen
21552 param "exprp" from rtx * to rtx_expr_list **.
21553 (add_insn_mem_dependence): Strengthen local "mem_list" from
21554 rtx * to rtx_expr_list **. Strengthen local "mem_node" from rtx
21555 to rtx_expr_list *.
21556 * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
21557 and local "new_mems" from rtx to rtx_expr_list *. Strengthen
21558 param "old_mems_p" from rtx * to rtx_expr_list **.
21559 * var-tracking.c (struct adjust_mem_data): Strengthen field
21560 "side_effects" from rtx to rtx_expr_list *.
21561 (adjust_insn): Replace NULL_RTX with NULL when assigning to
21563 (prepare_call_arguments): Likewise.
21565 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21567 * function.h (struct rtl_data): Strengthen field
21568 "x_stack_slot_list" from rtx to rtx_expr_list *.
21570 * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
21571 when assigning to stack_slot_list.
21573 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21575 * function.h (struct rtl_data): Strengthen field
21576 x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
21577 * rtl.h (remove_node_from_expr_list): Strengthen second param from
21578 rtx * to rtx_expr_list **.
21580 * cfgbuild.c (make_edges): In loop over
21581 nonlocal_goto_handler_labels, strengthen local "x" from rtx to
21582 rtx_expr_list *, and use methods of the latter class to clarify
21584 * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
21585 rtx_expr_list *, and use methods of the latter class to clarify
21587 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
21588 * reload1.c (set_initial_label_offsets): Likewise for local "x".
21589 * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
21590 from rtx * to rtx_expr_list **. Strengthen local "temp" from rtx
21591 to rtx_expr_list *. Use methods of the latter class to clarify
21594 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21596 * function.h (struct expr_status): Strengthen field
21597 "x_forced_labels" from rtx to rtx_expr_list *.
21599 * cfgbuild.c (make_edges): Split local "x" into two locals,
21600 strengthening one from rtx to rtx_expr_list *, and using methods
21602 * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
21603 loop over forced_labels, introduce strengthen it from rtx to
21604 rtx_expr_list *, using methods to clarify the code.
21605 * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
21606 to rtx_expr_list *, using methods of said class to clarify the
21608 * reload1.c (set_initial_label_offsets): Split local "x" into two
21609 per-loop variables, strengthening the first from rtx to
21610 rtx_expr_list * and using methods.
21612 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21614 * coretypes.h (class rtx_expr_list): Add forward declaration.
21615 * emit-rtl.c (gen_rtx_EXPR_LIST): New.
21616 * gengenrtl.c (special_rtx): Add EXPR_LIST.
21617 * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
21618 invariant: GET_CODE (X) == EXPR_LIST.
21619 (is_a_helper <rtx_expr_list *>::test): New.
21620 (rtx_expr_list::next): New.
21621 (rtx_expr_list::element): New.
21622 (gen_rtx_EXPR_LIST): New.
21624 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21626 * varasm.c (mark_constants): Convert a GET_CODE check into a
21627 dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
21628 Use methods of rtx_sequence to clarify the code.
21630 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21632 * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
21633 local "seq" via a checked cast, and use methods of rtx_sequence
21634 to simplify the code.
21636 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21638 * resource.c (mark_referenced_resources): Strengthen local
21639 "sequence" from rtx to rtx_sequence *, adding a checked cast, and
21640 using methods of rtx_sequence to clarify the code.
21641 (find_dead_or_set_registers): Within the switch statement, convert
21642 a GET_CODE check to a dyn_cast, introducing local "seq". Within
21643 the JUMP_P handling, introduce another local "seq", adding a
21644 checked cast to rtx_sequence *. In both cases, use methods of
21645 rtx_sequence to clarify the code.
21646 (mark_set_resources): Within SEQUENCE case, introduce local "seq"
21647 via a checked cast, and use methods of rtx_sequence to simplify
21650 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21652 * reorg.c (redundant_insn): In two places in the function, replace
21653 a check of GET_CODE with a dyn_cast, introducing local "seq", and
21654 usings methods of rtx_sequence to clarify the code.
21656 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21658 * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
21659 local "seq" with a checked cast, and use methods of rtx_sequence
21660 to clarify the code.
21662 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21664 * function.c (contains): Introduce local "seq" for PATTERN (insn),
21665 with a checked cast, in the region for where we know it's a
21666 SEQUENCE. Use methods of rtx_sequence.
21668 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21670 * final.c (get_attr_length_1): Replace GET_CODE check with a
21671 dyn_cast, introducing local "seq" and the use of methods of
21673 (shorten_branches): Likewise, introducing local "body_seq".
21674 Strengthen local "inner_insn" from rtx to rtx_insn *.
21675 (reemit_insn_block_notes): Replace GET_CODE check with a
21676 dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
21677 Use methods of rtx_sequence.
21678 (final_scan_insn): Likewise, introducing local "seq" for when
21679 "body" is known to be a SEQUENCE, using its methods.
21681 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21683 * except.c (can_throw_external): Strengthen local "seq" from rtx
21684 to rtx_sequence *. Use methods of rtx_sequence.
21685 (insn_nothrow_p): Likewise.
21687 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21689 * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
21690 dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
21691 Use methods of rtx_sequence.
21692 (scan_trace): Likewise for local "pat".
21694 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21696 * coretypes.h (class rtx_sequence): Add forward declaration.
21697 * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
21698 invariant: GET_CODE (X) == SEQUENCE.
21699 (is_a_helper <rtx_sequence *>::test): New.
21700 (is_a_helper <const rtx_sequence *>::test): New.
21701 (rtx_sequence::len): New.
21702 (rtx_sequence::element): New.
21703 (rtx_sequence::insn): New.
21705 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21707 * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
21709 (alloc_INSN_LIST): Strengthen return type from rtx to
21711 (copy_INSN_LIST): Likewise for return type and param.
21712 (concat_INSN_LIST): Likewise for both params and return type.
21713 (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
21714 rtx_insn *. Strengthen second param from rtx * to rtx_insn_list **.
21715 (remove_free_INSN_LIST_node): Strenghten return type from rtx to
21716 rtx_insn *. Strengthen param from rtx * to rtx_insn_list **.
21718 * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
21719 "implicit_sets", "control_uses", "clobbers" from rtx to
21721 (struct deps_desc): Likewise for fields "pending_read_insns",
21722 "pending_write_insns", "pending_jump_insns",
21723 "last_pending_memory_flush", "last_function_call",
21724 "last_function_call_may_noreturn", "sched_before_next_call",
21725 "sched_before_next_jump".
21726 (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
21727 (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
21729 * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
21730 from rtx to rtx_insn_list *.
21731 (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
21734 * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
21735 to rtx_insn_list **.
21736 (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
21738 (queue_insn): Likewise for local "link".
21739 (struct haifa_saved_data): Strengthen field "insn_queue" from
21740 rtx * to rtx_insn_list **.
21741 (save_backtrack_point): Update allocation of save->insn_queue to
21742 reflect the strengthening of elements from rtx to rtx_insn_list *.
21743 (queue_to_ready): Strengthen local "link" from rtx to
21744 rtx_insn_list *; use methods "next" and "insn" when traversing the
21746 (early_queue_to_ready): Likewise for locals "link", "next_link",
21748 (schedule_block): Update allocation of insn_queue to reflect the
21749 strengthening of elements from rtx to rtx_insn_list *. Strengthen
21750 local "link" from rtx to rtx_insn_list *, and use methods when
21752 (add_to_speculative_block): Strengthen locals "twins" and
21753 "next_node" from rtx to rtx_insn_list *, and use methods when
21754 working with them. Strengthen local "twin" from rtx to
21755 rtx_insn *, eliminating a checked cast.
21756 (fix_recovery_deps): Strengthen locals "ready_list" and "link"
21757 from rtx to rtx_insn_list *, and use methods when working with
21760 * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
21761 from rtx to rtx_insn_list *, adding a checked cast.
21762 (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
21764 (copy_INSN_LIST): Strengthen return type and locals "new_queue",
21765 "newlink" from rtx to rtx_insn_list *. Strengthen local
21766 "pqueue" from rtx * to rtx_insn_list **. Strengthen local "x"
21767 from rtx to rtx_insn *.
21768 (concat_INSN_LIST): Strengthen return type and local "new_rtx",
21769 from rtx to rtx_insn_list *. Use methods of the latter class.
21770 (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
21771 rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
21772 (remove_free_INSN_LIST_node): Strengthen return type and local
21773 "elem" from rtx to rtx_insn *. Strenghten param "listp" from
21774 rtx * to rtx_insn_list **. Strengthen local "node" from rtx to
21775 rtx_insn_list *, using "insn" method.
21777 * sched-deps.c (add_dependence_list): Strengthen param "list"
21778 from rtx to rtx_insn_list *, and use methods when working with it.
21779 (add_dependence_list_and_free): Strengthen param "listp" from
21780 rtx * to rtx_insn_list **.
21781 (remove_from_dependence_list): Strenghten param "listp" from rtx *
21782 to rtx_insn_list **, and use methods when working with *listp.
21783 (remove_from_both_dependence_lists): Strengthen param "listp" from
21784 rtx * to rtx_insn_list **
21785 (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
21786 to rtx_insn_list **. Eliminate local "link", in favor of two new
21787 locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
21789 (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
21790 by introducing local "cond_deps".
21791 (remove_from_deps): Strengthen param "insn" from rtx to
21794 * sched-rgn.c (concat_insn_mem_list): Strengthen param
21795 "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
21796 Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
21797 Use methods of rtx_insn_list.
21799 * store-motion.c (struct st_expr): Strengthen fields
21800 "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
21801 (st_expr_entry): Replace NULL_RTX with NULL when dealing with
21803 (find_moveable_store): Split out "tmp" into multiple more-tightly
21804 scoped locals. Use methods of rtx_insn_list *.
21805 (compute_store_table): Strengthen local "tmp" from rtx to
21806 rtx_insn *. Use methods of rtx_insn_list *.
21808 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21810 * coretypes.h (class rtx_insn_list): Add forward declaration.
21811 * rtl.h (class rtx_insn_list): New subclass of rtx_def
21812 (is_a_helper <rtx_insn_list *>::test): New.
21813 (rtx_insn_list::next): New.
21814 (rtx_insn_list::insn): New.
21815 (gen_rtx_INSN_LIST): Add prototype.
21816 * emit-rtl.c (gen_rtx_INSN_LIST): New.
21817 * gengenrtl.c (special_rtx): Add INSN_LIST.
21819 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21821 * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
21822 "prev" from rtx to rtx_insn *.
21824 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21826 * rtl.h (INSN_UID): Convert from a macro to a pair of inline
21827 functions. Require merely an rtx for now, not an rtx_insn *.
21828 (BLOCK_FOR_INSN): Likewise.
21829 (INSN_LOCATION): Likewise.
21830 (INSN_HAS_LOCATION): Convert from a macro to an inline function.
21832 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21834 * rtl.h (PATTERN): Convert this macro into a pair of inline
21835 functions, for now, requiring const_rtx and rtx.
21837 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21839 * target.def (unwind_emit): Strengthen param "insn" from rtx to
21841 (final_postscan_insn): Likewise.
21842 (adjust_cost): Likewise.
21843 (adjust_priority): Likewise.
21844 (variable_issue): Likewise.
21845 (macro_fusion_pair_p): Likewise.
21846 (dfa_post_cycle_insn): Likewise.
21847 (first_cycle_multipass_dfa_lookahead_guard): Likewise.
21848 (first_cycle_multipass_issue): Likewise.
21849 (dfa_new_cycle): Likewise.
21850 (adjust_cost_2): Likewise for params "insn" and "dep_insn".
21851 (speculate_insn): Likewise for param "insn".
21852 (gen_spec_check): Likewise for params "insn" and "label".
21853 (get_insn_spec_ds): Likewise for param "insn".
21854 (get_insn_checked_ds): Likewise.
21855 (dispatch_do): Likewise.
21856 (dispatch): Likewise.
21857 (cannot_copy_insn_p): Likewise.
21858 (invalid_within_doloop): Likewise.
21859 (legitimate_combined_insn): Likewise.
21860 (needed): Likewise.
21863 * doc/tm.texi: Automatically updated to reflect changes to
21866 * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
21868 (schedule_block): Likewise.
21869 (sched_init): Likewise.
21870 (sched_speculate_insn): Strengthen param "insn" from rtx to
21872 (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
21874 * hooks.c (hook_bool_rtx_true): Rename to...
21875 hook_bool_rtx_insn_true): ...this, and strengthen first param from
21877 (hook_constcharptr_const_rtx_null): Rename to...
21878 (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
21879 first param from const_rtx to const rtx_insn *.
21880 (hook_bool_rtx_int_false): Rename to...
21881 (hook_bool_rtx_insn_int_false): ...this, and strengthen first
21882 param from rtx to rtx_insn *.
21883 (hook_void_rtx_int): Rename to...
21884 (hook_void_rtx_insn_int): ...this, and strengthen first param from
21887 * hooks.h (hook_bool_rtx_true): Rename to...
21888 (hook_bool_rtx_insn_true): ...this, and strengthen first param from
21890 (hook_bool_rtx_int_false): Rename to...
21891 (hook_bool_rtx_insn_int_false): ...this, and strengthen first
21892 param from rtx to rtx_insn *.
21893 (hook_void_rtx_int): Rename to...
21894 (hook_void_rtx_insn_int): ...this, and strengthen first param from
21896 (hook_constcharptr_const_rtx_null): Rename to...
21897 (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
21898 first param from const_rtx to const rtx_insn *.
21900 * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
21901 and local "prev" from rtx to rtx_insn *.
21903 * sched-int.h (sched_speculate_insn): Strengthen first param from
21906 * sel-sched.c (create_speculation_check): Likewise for local "label".
21907 * targhooks.c (default_invalid_within_doloop): Strengthen param
21908 "insn" from const_rtx to const rtx_insn *.
21909 * targhooks.h (default_invalid_within_doloop): Strengthen param
21910 from const_rtx to const rtx_insn *.
21912 * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
21913 (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
21915 * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
21917 (arc_invalid_within_doloop): Likewise, with const.
21919 * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
21920 (arm_cannot_copy_insn_p): Likewise for param "insn".
21921 (arm_unwind_emit): Likewise.
21923 * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
21926 * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
21927 (c6x_variable_issue): Likewise. Removed now-redundant checked
21929 (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
21931 * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
21932 Likewise for param "insn".
21933 (epiphany_mode_after): Likewise.
21934 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
21935 params "insn", "dep_insn".
21936 (epiphany_mode_needed): Likewise for param "insn".
21937 (epiphany_mode_after): Likewise.
21939 * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
21940 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
21941 (ix86_avx_u128_mode_needed): Likewise.
21942 (ix86_i387_mode_needed): Likewise.
21943 (ix86_mode_needed): Likewise.
21944 (ix86_avx_u128_mode_after): Likewise.
21945 (ix86_mode_after): Likewise.
21946 (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
21947 (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
21948 (ix86_adjust_priority): Likewise for param "insn".
21949 (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
21950 (do_dispatch): Likewise.
21951 (has_dispatch): Likewise.
21952 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
21954 * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
21955 reflect renaming of default hook implementation from
21956 hook_constcharptr_const_rtx_null to
21957 hook_constcharptr_const_rtx_insn_null.
21958 (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
21960 (ia64_variable_issue): Likewise for param "insn".
21961 (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
21962 (ia64_dfa_new_cycle): Likewise.
21963 (ia64_get_insn_spec_ds): Likewise.
21964 (ia64_get_insn_checked_ds): Likewise.
21965 (ia64_speculate_insn): Likewise.
21966 (ia64_gen_spec_check): Likewise for params "insn", "label".
21967 (ia64_asm_unwind_emit): Likewise for param "insn".
21969 * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
21971 * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
21972 "insn", "def_insn".
21973 (m68k_sched_variable_issue): Likewise for param "insn".
21975 * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
21978 * config/microblaze/microblaze.c (microblaze_adjust_cost):
21979 Likewise for params "insn", "dep".
21981 * config/mips/mips.c (mips_adjust_cost): Likewise.
21982 (mips_variable_issue): Likewise for param "insn".
21983 (mips_final_postscan_insn): Likewise.
21985 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
21986 for params "insn", "dep".
21988 * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
21990 (pa_adjust_priority): Likewise for param "insn".
21992 * config/picochip/picochip.c (picochip_sched_adjust_cost):
21993 Likewise for params "insn", "dep_insn".
21995 * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
21997 (rs6000_variable_issue): Likewise.
21998 (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
21999 (rs6000_debug_adjust_cost): Likewise.
22000 (rs6000_adjust_priority): Likewise for param "insn".
22001 (rs6000_use_sched_lookahead_guard): Likewise.
22002 (get_next_active_insn): Likewise for return type and both params.
22003 (redefine_groups): Likewise for params "prev_head_insn", "tail"
22004 and locals "insn", "next_insn".
22005 (pad_groups): Likewise.
22007 * config/s390/s390.c (s390_adjust_priority): Likewise for param
22009 (s390_cannot_copy_insn_p): Likewise.
22010 (s390_sched_variable_issue): Likewise for third param, eliminating
22012 (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
22013 default hook implementation from hook_constcharptr_const_rtx_null
22014 to hook_constcharptr_const_rtx_insn_null.
22016 * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
22017 from rtx to rtx_insn *.
22018 (sh_adjust_cost): Likewise for params "insn", "dep_insn".
22019 (sh_variable_issue): Likewise for param "insn".
22020 (sh_dfa_new_cycle): Likewise.
22021 (sh_mode_needed): Likewise.
22022 (sh_mode_after): Likewise.
22024 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
22025 params "insn", "dep_insn".
22026 (hypersparc_adjust_cost): Likewise.
22027 (sparc_adjust_cost): Likewise.
22029 * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
22030 param, eliminated checked cast.
22031 (spu_sched_adjust_cost): Likewise for first and third params.
22033 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
22034 params "insn" and "dep_insn" from rtx to rtx_insn *.
22036 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
22038 2014-08-27 David Malcolm <dmalcolm@redhat.com>
22040 * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
22041 (set_is_load_p): ...this, updating to work on a SET pattern rather
22043 (is_store_insn): Rename to...
22044 (set_is_store_p): ...this, updating to work on a SET pattern
22045 rather than an insn.
22046 (mn10300_adjust_sched_cost): Move call to get_attr_timings from
22047 top of function to where it is needed. Rewrite the bogus
22048 condition that checks for "insn" and "dep" being PARALLEL to
22049 instead use single_set, introducing locals "insn_set" and
22050 "dep_set". Given that we only ever returned "cost" for a non-pair
22051 of SETs, bail out early if we don't have a pair of SET.
22052 Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
22053 use the new locals "insn_set" and "dep_set", and update calls to
22054 is_load_insn and is_store_insn to be calls to set_is_load_p and
22057 2014-08-27 Guozhi Wei <carrot@google.com>
22060 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
22061 amount before using it.
22063 2014-08-27 Richard Biener <rguenther@suse.de>
22065 * gimple-fold.c (get_maxval_strlen): Add overload wrapping
22066 get_maxval_strlen inside a more useful API.
22067 (gimple_fold_builtin_with_strlen): Remove and fold into ...
22068 (gimple_fold_builtin): ... caller.
22069 (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
22070 gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
22071 gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
22072 gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
22073 gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
22074 gimple_fold_builtin_sprintf): Adjust to compute maxval
22077 2014-08-27 Yvan Roux <yvan.roux@linaro.org>
22080 * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
22082 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
22083 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
22084 Anna Tikhonova <anna.tikhonova@intel.com>
22085 Ilya Tocar <ilya.tocar@intel.com>
22086 Andrey Turetskiy <andrey.turetskiy@intel.com>
22087 Ilya Verbin <ilya.verbin@intel.com>
22088 Kirill Yukhin <kirill.yukhin@intel.com>
22089 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
22091 * config/i386/sse.md
22092 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
22093 Use `concat_tg_mode' attribute to determine asm register size.
22095 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
22096 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
22097 Anna Tikhonova <anna.tikhonova@intel.com>
22098 Ilya Tocar <ilya.tocar@intel.com>
22099 Andrey Turetskiy <andrey.turetskiy@intel.com>
22100 Ilya Verbin <ilya.verbin@intel.com>
22101 Kirill Yukhin <kirill.yukhin@intel.com>
22102 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
22104 * config/i386/sse.md
22105 (define_mode_iterator VI48_AVX512VL): New.
22106 (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
22107 (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
22108 (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
22109 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22110 with VI1): Change mode iterator.
22111 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22112 with VI_ULOADSTORE_BW_AVX512VL): New.
22113 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22114 with VI_ULOADSTORE_F_AVX512VL): Ditto.
22115 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22116 with VI1): Change mode iterator.
22117 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22118 with VI_ULOADSTORE_BW_AVX512VL): New.
22119 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22120 with VI_ULOADSTORE_F_AVX512VL): Ditto.
22121 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
22122 with VI1): Change mode iterator.
22123 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
22124 with VI_ULOADSTORE_BW_AVX512VL): New.
22125 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
22126 with VI_ULOADSTORE_BW_AVX512VL): Ditto.
22127 (define_insn "avx512f_storedqu<mode>_mask"): Delete.
22128 (define_insn "<avx512>_storedqu<mode>_mask" with
22129 VI48_AVX512VL): New.
22130 (define_insn "<avx512>_storedqu<mode>_mask" with
22131 VI12_AVX512VL): Ditto.
22133 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
22134 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
22135 Anna Tikhonova <anna.tikhonova@intel.com>
22136 Ilya Tocar <ilya.tocar@intel.com>
22137 Andrey Turetskiy <andrey.turetskiy@intel.com>
22138 Ilya Verbin <ilya.verbin@intel.com>
22139 Kirill Yukhin <kirill.yukhin@intel.com>
22140 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
22142 * config/i386/sse.md
22143 (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
22144 (define_mode_iterator VI48_AVX512BW): New.
22145 (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
22146 (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
22147 with VI48_AVX2_48_AVX512F): New.
22148 (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
22149 with VI2_AVX512VL): Ditto.
22151 2014-08-27 Richard Biener <rguenther@suse.de>
22153 PR middle-end/62239
22154 * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
22155 (fold_builtin_3): Do not fold strcat_chk here.
22156 * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
22158 (gimple_fold_builtin): Fold strcat_chk here.
22160 2014-08-26 Aldy Hernandez <aldyh@redhat.com>
22162 * dwarf2out.h (dwarf2out_decl): Remove prototype.
22163 * dwarf2out.c (dwarf2out_decl): Make static.
22165 2014-08-26 Joel Sherrill <joel.sherrill@oarcorp.com>
22167 * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
22169 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22171 * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
22172 from rtx to rtx_insn *.
22173 (cselib_lookup_from_insn): Likewise for final param.
22174 (cselib_subst_to_values_from_insn): Likewise.
22175 (cselib_add_permanent_equiv): Likewise.
22177 * cselib.c (cselib_current_insn): Likewise for this variable.
22178 (cselib_subst_to_values_from_insn): Likewise for param "insn".
22179 (cselib_lookup_from_insn): Likewise.
22180 (cselib_add_permanent_equiv): Likewise for param "insn" and local
22181 "save_cselib_current_insn".
22182 (cselib_process_insn): Replace use of NULL_RTX with NULL.
22184 * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
22185 from rtx to rtx_insn *.
22187 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22189 * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
22192 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22194 * df.h (df_dump_insn_problem_function): Strengthen first param of
22195 this callback from const_rtx to const rtx_insn *.
22196 (struct df_insn_info): Strengthen field "insn" from rtx to
22198 (DF_REF_INSN): Eliminate this function, reinstating the older
22200 (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
22201 (df_reg_defined): Likewise.
22202 (df_find_use): Likewise.
22203 (df_reg_used): Likewise.
22204 (df_dump_insn_top): Strengthen param 1 from const_rtx to
22206 (df_dump_insn_bottom): Likewise.
22207 (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
22208 (df_insn_debug_regno): Likewise.
22209 (debug_df_insn): Likewise.
22210 (df_rd_simulate_one_insn): Likewise for param 2.
22211 (df_word_lr_simulate_defs): Likewise for param 1.
22212 (df_word_lr_simulate_uses): Likewise.
22213 (df_md_simulate_one_insn): Likewise for param 2.
22214 (df_simulate_find_noclobber_defs): Likewise for param 1.
22215 (df_simulate_find_defs): Likewise.
22216 (df_simulate_defs): Likewise.
22217 (df_simulate_uses): Likewise.
22218 (df_simulate_one_insn_backwards): Likewise for param 2.
22219 (df_simulate_one_insn_forwards): Likewise.
22220 (df_uses_create): Likewise for param 2.
22221 (df_insn_create_insn_record): Likewise for param 1.
22222 (df_insn_delete): Likewise.
22223 (df_insn_rescan): Likewise.
22224 (df_insn_rescan_debug_internal): Likewise.
22225 (df_insn_change_bb): Likewise.
22226 (df_notes_rescan): Likewise.
22227 * rtl.h (remove_death): Likewise for param 2.
22228 (print_rtl_with_bb): Strengthen param 2 from const_rtx to
22230 * sched-int.h (reemit_notes): Strengthen param from rtx to
22232 * valtrack.h (propagate_for_debug): Likewise for param 1.
22234 * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
22235 local "tmp_rtx" from const_rtx to const rtx_insn *.
22236 * combine.c (remove_death): Strengthen param "insn" from rtx to
22238 (move_deaths): Likewise for local "where_dead".
22239 * cse.c (delete_trivially_dead_insns): Introduce local
22240 "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
22241 * df-core.c (df_find_def): Strengthen param "insn" from rtx to
22243 (df_reg_defined): Likewise.
22244 (df_find_use): Likewise.
22245 (df_reg_used): Likewise.
22246 (df_dump_insn_problem_data): Strengthen param "insn" from
22247 const_rtx to const rtx_insn *.
22248 (df_dump_insn_top): Likewise.
22249 (df_dump_insn_bottom): Likewise.
22250 (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
22251 (df_insn_debug_regno): Likewise.
22252 (debug_df_insn): Likewise.
22253 (DF_REF_INSN): Delete.
22254 * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
22255 from rtx to rtx_insn *.
22256 (df_chain_insn_top_dump): Strengthen param "insn" from
22257 const_rtx to const rtx_insn *.
22258 (df_chain_insn_bottom_dump): Likewise.
22259 (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
22261 (df_word_lr_simulate_uses): Likewise.
22262 (df_print_note): Likewise.
22263 (df_remove_dead_and_unused_notes): Likewise.
22264 (df_set_unused_notes_for_mw): Likewise.
22265 (df_set_dead_notes_for_mw): Likewise.
22266 (df_create_unused_note): Likewise.
22267 (df_simulate_find_defs): Likewise.
22268 (df_simulate_find_uses): Likewise.
22269 (df_simulate_find_noclobber_defs): Likewise.
22270 (df_simulate_defs): Likewise.
22271 (df_simulate_uses): Likewise.
22272 (df_simulate_one_insn_backwards): Likewise.
22273 (df_simulate_one_insn_forwards): Likewise.
22274 (df_md_simulate_one_insn): Likewise.
22275 * df-scan.c (df_uses_create): Likewise.
22276 (df_insn_create_insn_record): Likewise.
22277 (df_insn_delete): Likewise.
22278 (df_insn_rescan): Likewise.
22279 (df_insn_rescan_debug_internal): Likewise.
22280 (df_insn_change_bb): Likewise.
22281 (df_notes_rescan): Likewise.
22282 (df_refs_add_to_chains): Likewise.
22283 (df_insn_refs_verify): Likewise.
22284 * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
22285 when invoking df_insn_delete.
22286 (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
22287 (set_unique_reg_note): Add checked cast.
22288 * final.c (cleanup_subreg_operands): Likewise.
22289 * gcse.c (update_ld_motion_stores): Likewise, strengthening local
22290 "insn" from rtx to rtx_insn *.
22291 * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
22292 "last" from rtx to rtx_insn *.
22293 * ira-emit.c (change_regs_in_insn): New function.
22294 (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
22295 Invoke change_regs_in_insn rather than change_regs.
22296 * ira.c (update_equiv_regs): Strengthen locals "insn",
22297 "init_insn", "new_insn" from rtx to rtx_insn *. Invoke
22298 for_each_rtx_in_insn rather than for_each_rtx.
22299 * recog.c (confirm_change_group): Add checked casts.
22300 (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
22302 (peep2_fill_buffer): Add checked cast.
22303 * rtlanal.c (remove_note): Likewise.
22304 * valtrack.c (propagate_for_debug): Strengthen param "insn" and
22305 locals "next" "end" from rtx to rtx_insn *.
22307 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22309 * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
22311 (struct reg_use_data): Likewise for field "insn".
22312 (insn_cost): Likewise for param.
22313 (real_insn_for_shadow): Likewise for return type and param.
22314 (increase_insn_priority): Likewise for param 1.
22315 (debug_dependencies): Likewise for both params.
22317 * haifa-sched.c (insn_delay): Likewise for param "insn".
22318 (real_insn_for_shadow): Likewise for return type and param "insn".
22319 (update_insn_after_change): Likewise for param "insn".
22320 (recompute_todo_spec): Likewise for param "next" and locals "pro",
22322 (insn_cost): Likewise for param "insn".
22323 (increase_insn_priority): Likewise.
22324 (calculate_reg_deaths): Likewise.
22325 (setup_insn_reg_pressure_info): Likewise.
22326 (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
22327 (model_index): Strengthen param "insn" from rtx to rtx_insn *.
22328 (model_recompute): Likewise.
22329 (must_restore_pattern_p): Likewise for param "next".
22330 (model_excess_cost): Likewise for param "insn".
22331 (queue_remove): Likewise.
22332 (adjust_priority): Likewise for param "prev".
22333 (update_register_pressure): Likewise for param "insn".
22334 (setup_insn_max_reg_pressure): Likewise for local "insn".
22335 (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
22336 (model_add_to_schedule): Likewise.
22337 (model_reset_queue_indices): Likewise for local "insn".
22338 (unschedule_insns_until): Strengthen local "recompute_vec" from
22339 auto_vec<rtx> to auto_vec<rtx_insn *>. Strengthen locals "last",
22340 "con" from rtx to rtx_insn *.
22341 (restore_last_backtrack_point): Likewise for both locals "x". Add
22343 (estimate_insn_tick): Likewise for param "insn".
22344 (commit_schedule): Likewise for params "prev_head", "tail" and
22346 (verify_shadows): Likewise for locals "i1", "i2".
22347 (dump_insn_stream): Likewise for params "head", "tail" and locals
22348 "next_tail", "insn".
22349 (schedule_block): Likewise for locals "insn", "x". Add a checked
22351 (fix_inter_tick): Likewise for params "head", "tail".
22352 (create_check_block_twin): Likewise for local "jump".
22353 (haifa_change_pattern): Likewise for param "insn".
22354 (haifa_speculate_insn): Likewise.
22355 (dump_new_block_header): Likewise for params "head", "tail".
22356 (fix_jump_move): Likewise for param "jump".
22357 (move_block_after_check): Likewise.
22358 (sched_init_insn_luid): Likewise for param "insn".
22359 (sched_init_luids): Likewise for local "insn".
22360 (insn_luid): Likewise for param "insn".
22361 (init_h_i_d): Likewise.
22362 (haifa_init_h_i_d): Likewise for local "insn".
22363 (haifa_init_insn): Likewise for param "insn".
22364 * sched-deps.c (add_dependence): Likewise for local "real_pro",
22366 (create_insn_reg_use): Likewise for param "insn".
22367 (setup_insn_reg_uses): Likewise. Add a checked cast.
22368 * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
22369 "tail" from rtx to rtx_insn *.
22370 * sched-rgn.c (void debug_dependencies): Likewise, also for locals
22371 "insn", "next_tail".
22373 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22375 * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
22376 from rtx to rtx_insn *.
22377 (model_add_to_schedule): Likewise for locals "start", "end",
22380 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22382 * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
22384 * cfgrtl.c (duplicate_insn_chain): Likewise for params "from",
22385 "to" and locals "insn", "next", "copy". Remove now-redundant
22388 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22390 * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
22391 rtx_insn * and param 4 from rtx * to rtx_insn **.
22392 (get_condition): Strengthen param 1 from rtx to rtx_insn * and
22393 param 2 from rtx * to rtx_insn **.
22395 * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
22396 rtx_insn * and final param from rtx * to rtx_insn **.
22398 * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
22399 from rtx to rtx_insn *.
22400 (try_head_merge_bb): Likewise for both locals named "move_upto".
22401 * df-problems.c (can_move_insns_across): Likewise for params
22402 "from", "to", "across_from", "across_to" and locals "insn",
22403 "next", "max_to". Strengthen param "pmove_upto" from rtx * to
22405 * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
22406 from rtx to rtx_insn *.
22407 (noce_get_alt_condition): Strengthen param "earliest" from rtx *
22408 to rtx_insn **. Strengthen local "insn" from rtx to rtx_insn *.
22409 (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
22411 (noce_try_abs): Likewise.
22412 (noce_get_condition): Likewise for param "jump". Strengthen param
22413 "earliest" from rtx * to rtx_insn **.
22414 (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
22416 (find_cond_trap): Likewise.
22417 (dead_or_predicable): Likewise for local "earliest".
22418 * loop-iv.c (check_simple_exit): Likewise for local "at". Add
22420 * rtlanal.c (canonicalize_condition): Likewise for param "insn"
22421 and local "prev". Strengthen param "earliest" from rtx * to
22423 (get_condition): Strengthen param "jump" from rtx to rtx_insn *
22424 Strengthen param "earliest" from rtx * to rtx_insn **.
22426 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22428 * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
22429 "to" and local "insn" from rtx to rtx_insn *.
22431 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22433 * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
22434 from rtx to rtx_insn *.
22435 (need_nop_to_preserve_insn_bb): Likewise for param "insn".
22436 (code_motion_path_driver): Likewise for local "last_insn".
22437 (simplify_changed_insns): Likewise for local "insn".
22439 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22441 * rtl.h (push_to_sequence): Strengthen param from rtx to
22443 (push_to_sequence2): Likewise for both params.
22444 (delete_insns_since): Likewise for param.
22445 (reorder_insns_nobb): Likewise for all three params.
22446 (set_new_first_and_last_insn): Likewise for both params.
22448 * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
22449 rtx_insn *. Remove now-redundant cast.
22450 (set_last_insn): Likewise.
22452 * builtins.c (expand_builtin_return): Strengthen local
22453 "call_fusage" from rtx to rtx_insn *.
22454 * cfgrtl.c (create_basic_block_structure): Likewise for local
22456 * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
22457 "first", "last" and local "insn".
22458 (delete_insns_since): Likewise for param "from".
22459 (reorder_insns_nobb): Likewise for params "from", "to", "after"
22461 (push_to_sequence): Likewise for param "first" and local "last".
22462 (push_to_sequence2): Likewise for params "first" and "last".
22463 * lra.c (emit_add3_insn): Likewise for local "last".
22464 (lra_emit_add): Likewise.
22465 * lra-constraints.c (base_to_reg): Likewise for locals "insn",
22467 (process_address_1): Likewise for locals "insn", last".
22468 * modulo-sched.c (ps_first_note): Likewise for return type.
22469 * optabs.c (expand_binop_directly): Likewise for param "last".
22471 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22473 * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
22475 * emit-rtl.c (get_last_insn_anywhere): Likewise.
22477 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22479 * function.h (struct sequence_stack): Strengthen fields "first"
22480 and "last" from rtx to rtx_insn *.
22481 (struct emit_status): Likewise for fields "x_first_insn" and
22484 * emit-rtl.h (get_insns): Remove now-redundant checked cast.
22485 (set_first_insn): Add checked cast.
22486 (get_last_insn): Remove now-redundant checked cast.
22487 (set_last_insn): Add checked cast.
22489 * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
22490 "saved_first" and "saved_last" from rtx to rtx_insn *.
22492 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22494 * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
22495 (unlink_insn_chain): Strengthen both params from rtx to
22498 * cfgrtl.c (cfg_layout_function_header): Likewise for this
22500 (unlink_insn_chain): Likewise for params "first" and "last".
22501 Remove now-redundant checked cast.
22502 (record_effective_endpoints): Replace use of NULL_RTX with NULL.
22503 (fixup_reorder_chain): Strengthen local "insn" from rtx to
22505 * emit-rtl.c (link_insn_into_chain): Likewise for all three
22507 (add_insn): Likewise for param "insn" and local "prev".
22508 (add_insn_after_nobb): Likewise for both params and local "next".
22509 (add_insn_before_nobb): Likewise for both params and local "prev".
22510 (add_insn_after): Rename param "after" to "uncast_after",
22511 introducing local "after" with another checked cast.
22512 (add_insn_before): Rename params "insn" and "before", giving them
22513 "uncast_" prefixes, adding the old names back using checked casts.
22514 (emit_note_after): Likewise for param "after".
22515 (emit_note_before): Likewise for param "before".
22516 (emit_label): Add a checked cast.
22518 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22520 * cselib.h (cselib_record_sets_hook): Strengthen initial param
22521 "insn" from rtx to rtx_insn *.
22523 * cselib.c (cselib_record_sets_hook): Likewise.
22525 * var-tracking.c (add_with_sets): Likewise, renaming back from
22526 "uncast_insn" to "insn" and eliminating the checked cast from rtx
22529 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22531 * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
22532 and "header_" from rtx to rtx_insn *.
22533 (struct basic_block_d): Likewise for field "head_" within "x"
22534 field of union basic_block_il_dependent.
22535 (BB_HEAD): Drop function...
22536 (SET_BB_HEAD): ...and this function in favor of...
22537 (BB_HEAD): ...reinstate macro.
22538 (BB_END): Drop function...
22539 (SET_BB_END): ...and this function in favor of...
22540 (BB_END): ...reinstate macro.
22541 (BB_HEADER): Drop function...
22542 (SET_BB_HEADER): ...and this function in favor of...
22543 (BB_HEADER): ...reinstate macro.
22545 * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
22546 (fix_crossing_unconditional_branches): Likewise.
22547 * caller-save.c (save_call_clobbered_regs): Likewise.
22548 (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
22549 * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
22550 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
22551 (merge_blocks_move_successor_nojumps): Likewise.
22552 (outgoing_edges_match): Update use of for_each_rtx to
22553 for_each_rtx_in_insn.
22554 * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
22555 (expand_gimple_cond): Likewise.
22556 (expand_gimple_tailcall): Likewise.
22557 (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
22559 (construct_exit_block): Drop use of SET_BB_END.
22560 * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
22562 (delete_insn): Rename param "insn" to "uncast_insn", introducing
22563 a new local "insn" with a checked cast to rtx_insn *. Drop use of
22564 SET_BB_HEAD and SET_BB_END.
22565 (create_basic_block_structure): Drop use of SET_BB_HEAD and
22567 (rtl_delete_block): Drop use of SET_BB_HEAD.
22568 (rtl_split_block): Drop use of SET_BB_END.
22569 (emit_nop_for_unique_locus_between): Likewise.
22570 (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
22571 (block_label): Drop use of SET_BB_HEAD.
22572 (fixup_abnormal_edges): Drop use of SET_BB_END.
22573 (record_effective_endpoints): Drop use of SET_BB_HEADER.
22574 (relink_block_chain): Likewise.
22575 (fixup_reorder_chain): Drop use of SET_BB_END.
22576 (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
22577 (cfg_layout_delete_block): Strengthen local "to" from rtx * to
22578 rtx_insn **. Drop use of SET_BB_HEADER.
22579 (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
22581 (BB_HEAD): Delete this function.
22582 (SET_BB_HEAD): Likewise.
22583 (BB_END): Likewise.
22584 (SET_BB_END): Likewise.
22585 (BB_HEADER): Likewise.
22586 (SET_BB_HEADER): Likewise.
22587 * emit-rtl.c (add_insn_after): Rename param "insn" to
22588 "uncast_insn", adding a new local "insn" and a checked cast to
22589 rtx_insn *. Drop use of SET_BB_END.
22590 (remove_insn): Strengthen locals "next" and "prev" from rtx to
22591 rtx_insn *. Drop use of SET_BB_HEAD and SET_BB_END.
22592 (reorder_insns): Drop use of SET_BB_END.
22593 (emit_insn_after_1): Strengthen param "first" and locals "last",
22594 "after_after" from rtx to rtx_insn *. Drop use of SET_BB_END.
22595 (emit_pattern_after_noloc): Add checked cast.
22596 * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
22597 (restore_other_notes): Likewise.
22598 (move_insn): Likewise.
22599 (sched_extend_bb): Likewise.
22600 (fix_jump_move): Likewise.
22601 * ifcvt.c (noce_process_if_block): Likewise.
22602 (dead_or_predicable): Likewise.
22603 * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
22604 * reg-stack.c (change_stack): Drop use of SET_BB_END.
22605 * sel-sched-ir.c (sel_move_insn): Likewise.
22606 * sel-sched.c (move_nop_to_previous_block): Likewise.
22608 * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
22610 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
22612 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22614 * basic-block.h (create_basic_block_structure): Strengthen params
22615 1 "head" and 2 "end" from rtx to rtx_insn *.
22616 * cfgrtl.c (create_basic_block_structure): Likewise.
22617 (rtl_create_basic_block): Update casts from void * to rtx to
22618 rtx_insn *, so that we can pass them as rtx_insn * to
22619 create_basic_block_structure.
22620 * sel-sched-ir.c (sel_create_basic_block): Likewise.
22622 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22624 * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
22626 (check_for_inc_dec): Strengthen param "insn" from rtx to
22629 * cselib.h (cselib_process_insn): Likewise.
22631 * cselib.c (cselib_record_sets): Likewise.
22632 (cselib_process_insn): Likewise.
22634 * dse.c (struct insn_info): Likewise for field "insn".
22635 (check_for_inc_dec_1): Likewise for local "insn".
22636 (check_for_inc_dec): Likewise for param "insn".
22637 (scan_insn): Likewise.
22638 (dse_step1): Likewise for local "insn".
22640 * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
22641 rtx_insn **. Use for_each_rtx_in_insn rather than for_each_rtx.
22643 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22645 * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
22646 from rtx to rtx_insn *.
22647 (DEP_PRO): Delete this function and...
22648 (SET_DEP_PRO): ...this function in favor of...
22649 (DEP_PRO): ...reinstate this macro.
22650 (DEP_CON): Delete this function and...
22651 (SET_DEP_CON): ...this function in favor of...
22652 (DEP_CON): ...reinstate this old macro.
22653 (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
22654 (init_dep): Likewise.
22655 (set_priorities): Likewise for both params.
22656 (sd_copy_back_deps): Likewise for params 1 and 2.
22658 * haifa-sched.c (priority): Likewise for param "insn" and local
22660 (set_priorities): Likewise for params "head" and "tail" and local
22662 (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
22664 (add_to_speculative_block): Add a checked cast.
22665 (create_check_block_twin): Drop use of SET_DEP_CON.
22666 (add_jump_dependencies): Strengthen params "insn" and "jump" from
22669 * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
22670 Drop use of SET_DEP_PRO
22671 (init_dep): Strengthen params "pro" and "con" from rtx to
22673 (sd_copy_back_deps): Likewise for params "to" and "from". Drop
22674 use of SET_DEP_CON.
22677 (SET_DEP_PRO): Delete.
22678 (SET_DEP_CON): Delete.
22680 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22682 * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
22683 from rtx to rtx_insn *.
22684 (VINSN_INSN_RTX): Eliminate rvalue function and...
22685 (SET_VINSN_INSN): ...lvalue function in favor of...
22686 (VINSN_INSN_RTX): reinstate this old macro.
22688 * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
22689 in favor of VINSN_INSN_RTX.
22690 (VINSN_INSN_RTX): Delete this function.
22691 (SET_VINSN_INSN_RTX): Likewise.
22693 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22695 * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
22696 (BND_TO): Delete this function and...
22697 (SET_BND_TO): ...this functions in favor of...
22698 (BND_TO): ...reinstating this macro.
22699 (struct _fence): Strengthen field "executing_insns" from
22700 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *. Strengthen fields
22701 "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
22702 (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
22703 and param "insn" from rtx to insn_t.
22704 (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
22707 * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
22709 (rtx_vec_t): Likewise.
22710 (struct sched_deps_info_def): Strengthen param of "start_insn"
22711 callback from rtx to rtx_insn *. Likewise for param "insn2" of
22712 "note_mem_dep" callback and first param of "note_dep" callback.
22714 * haifa-sched.c (add_to_speculative_block): Strengthen param
22715 "insn" from rtx to rtx_insn *.
22716 (clear_priorities): Likewise.
22717 (calc_priorities): Likewise for local "insn".
22719 * sched-deps.c (haifa_start_insn): Likewise for param "insn".
22720 Remove redundant checked cast.
22721 (haifa_note_mem_dep): Likewise for param "pending_insn".
22722 (haifa_note_dep): Likewise for param "elem".
22723 (note_mem_dep): Likewise for param "e".
22724 (sched_analyze_1): Add checked casts.
22725 (sched_analyze_2): Likewise.
22727 * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
22728 from rtx to rtx_insn *.
22729 (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
22730 from vec<rtx> * to vec<rtx_insn *> *.
22732 * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
22734 (flist_add): Strengthen param "executing_insns" from
22735 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
22736 (advance_deps_context): Remove now-redundant checked cast.
22737 (init_fences): Replace uses of NULL_RTX with NULL.
22738 (merge_fences): Strengthen params "last_scheduled_insn" and
22739 "sched_next" from rtx to rtx_insn * and "executing_insns" from
22740 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
22741 (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
22742 (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
22743 an instruction, rather than doing double-duty as a pattern.
22744 (return_nop_to_pool): Update for change of insn_t.
22745 (deps_init_id): Remove now-redundant checked cast.
22746 (struct sched_scan_info_def): Strengthen param of "init_insn"
22747 callback from rtx to insn_t.
22748 (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
22749 (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
22751 (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
22752 "end" from rtx to rtx_insn *.
22753 (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
22754 (rtx insn_rtx, bool force_unique_p)
22755 (BND_TO): Delete function.
22756 (SET_BND_TO): Delete function.
22758 * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
22760 (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
22761 (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
22763 (undo_transformations): Likewise for param "insn".
22764 (update_liveness_on_insn): Likewise.
22765 (compute_live_below_insn): Likewise for param "insn" and local
22767 (update_data_sets): Likewise for param "insn".
22768 (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
22769 (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
22770 (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
22772 (move_cond_jump): Likewise for param "insn".
22773 (move_cond_jump): Drop use of SET_BND_TO.
22774 (compute_av_set_on_boundaries): Likewise.
22775 (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
22776 (update_and_record_unavailable_insns): Strengthen local "bb_end"
22777 from rtx to rtx_insn *.
22778 (maybe_emit_renaming_copy): Likewise for param "insn".
22779 (maybe_emit_speculative_check): Likewise.
22780 (handle_emitting_transformations): Likewise.
22781 (remove_insn_from_stream): Likewise.
22782 (code_motion_process_successors): Strengthen local "succ" from rtx
22785 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22787 * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
22788 ilist_t, not _xlist_t;
22789 (ILIST_INSN): Define in terms of new union field "insn".
22790 (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
22792 (struct _list_node): Add new field "insn" to the union, of type
22794 (ilist_add): Replace macro with an inline function, requiring an
22796 (ilist_remove): Define this macro directly in terms of
22797 _list_remove, rather than indirectly via _xlist_remove.
22798 (ilist_clear): Likewise, in terms of _list_clear rather than
22800 (ilist_is_in_p): Replace macro with an inline function, requiring
22802 (_list_iter_cond_insn): New function.
22803 (ilist_iter_remove): Define this macro directly in terms of
22804 _list_iter_remove, rather than indirectly via _xlist_iter_remove.
22805 (ilist_iterator): Define directly in terms of _list_iterator
22806 rather than indirectly through _xlist_iterator.
22807 (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
22808 than in terms of _FOR_EACH_X.
22809 (FOR_EACH_INSN_1): Likewise.
22811 2014-08-26 Joseph Myers <joseph@codesourcery.com>
22815 * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
22816 DECL_HARD_REGISTER and return for invalid register specifications.
22817 * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
22818 DECL_HARD_REGISTER, call expand_one_error_var.
22819 * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
22820 CC_REGNUM with non-MODE_CC modes.
22821 (arm_regno_class): Return NO_REGS for PC_REGNUM.
22823 2014-08-26 Marek Polacek <polacek@redhat.com>
22826 * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
22828 2014-08-26 Evandro Menezes <e.menezes@samsung.com>
22830 * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
22831 qi cost; add di cost.
22832 (cortexa57_addrcost_table): Likewise.
22834 2014-08-26 Marek Polacek <polacek@redhat.com>
22837 * expr.c (is_aligning_offset): Remove logical not.
22839 2014-08-26 Marek Polacek <polacek@redhat.com>
22842 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
22843 LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
22845 2014-08-26 Richard Biener <rguenther@suse.de>
22847 PR tree-optimization/62175
22848 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
22849 expand possibly trapping operations.
22851 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22853 * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
22854 "insn" from rtx to rtx_insn *.
22855 (permute_load): Likewise for param "insn".
22856 (permute_store): Likewise.
22857 (handle_special_swappables): Likewise for local "insn".
22858 (replace_swap_with_copy): Likewise for locals "insn" and
22860 (rs6000_analyze_swaps): Likewise for local "insn".
22862 2014-08-25 David Malcolm <dmalcolm@redhat.com>
22864 * regrename.h (struct du_chain): Strengthen field "insn" from rtx
22867 2014-08-25 David Malcolm <dmalcolm@redhat.com>
22869 * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
22870 "note_list" from rtx to rtx_insn *.
22871 (BB_NOTE_LIST): Replace this function and...
22872 (SET_BB_NOTE_LIST): ...this function with...
22873 (BB_NOTE_LIST): ...the former macro implementation.
22875 * sched-int.h (concat_note_lists): Strengthen param "from_end" and
22876 local "from_start" from rtx to rtx_insn *. Strengthen param
22877 "to_endp" from rtx * to rtx_insn **.
22879 * haifa-sched.c (concat_note_lists): Likewise.
22880 * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
22882 (sel_restore_notes): Likewise.
22883 (move_bb_info): Likewise.
22884 (BB_NOTE_LIST): Delete this function.
22885 (SET_BB_NOTE_LIST): Delete this function.
22886 * sel-sched.c (create_block_for_bookkeeping): Eliminate
22887 SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
22889 2014-08-25 David Malcolm <dmalcolm@redhat.com>
22891 * target.def (reorder): Strengthen param "ready" of this DEFHOOK
22892 from rtx * to rtx_insn **.
22893 (reorder2): Likewise.
22894 (dependencies_evaluation_hook): Strengthen params "head", "tail"
22895 from rtx to rtx_insn *.
22897 * doc/tm.texi: Update mechanically for above change to target.def.
22899 * sched-int.h (note_list): Strengthen this variable from rtx to
22901 (remove_notes): Likewise for both params.
22902 (restore_other_notes): Likewise for return type and first param.
22903 (struct ready_list): Strengthen field "vec" from rtx * to
22905 (struct dep_replacement): Strenghten field "insn" from rtx to
22907 (struct deps_desc): Likewise for fields "last_debug_insn",
22909 (struct haifa_sched_info): Likewise for callback field
22910 "can_schedule_ready_p"'s param, for first param of "new_ready"
22911 callback field, for both params of "rank" callback field, for
22912 first field of "print_insn" callback field (with a const), for
22913 both params of "contributes_to_priority" callback, for param
22914 of "insn_finishes_block_p" callback, for fields "prev_head",
22915 "next_tail", "head", "tail", for first param of "add_remove_insn"
22916 callback, for first param of "begin_schedule_ready" callback, for
22917 both params of "begin_move_insn" callback, and for second param
22918 of "advance_target_bb" callback.
22919 (add_dependence): Likewise for params 1 and 2.
22920 (sched_analyze): Likewise for params 2 and 3.
22921 (deps_analyze_insn): Likewise for param 2.
22922 (ready_element): Likewise for return type.
22923 (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
22924 (try_ready): Strenghten param from rtx to rtx_insn *.
22925 (sched_emit_insn): Likewise for return type.
22926 (record_delay_slot_pair): Likewise for params 1 and 2.
22927 (add_delay_dependencies): Likewise for param.
22928 (contributes_to_priority): Likewise for both params.
22929 (find_modifiable_mems): Likewise.
22931 * config/arm/arm.c (cortexa7_sched_reorder): Strengthen param
22932 "ready" from rtx * to rtx_insn **. Strengthen locals "insn",
22933 "first_older_only_insn" from rtx to rtx_insn *.
22934 (arm_sched_reorder): Strengthen param "ready" from rtx * to
22937 * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
22938 "last_scheduled_iter0" from rtx to rtx_insn *.
22939 (init_sched_state): Replace use of NULL_RTX with NULL for insn.
22940 (c6x_sched_reorder_1): Strengthen param "ready" and locals
22941 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
22942 "insn" from rtx to rtx_insn *.
22943 (c6x_sched_reorder): Strengthen param "ready" from rtx * to
22945 (c6x_sched_reorder2): Strengthen param "ready" and locals
22946 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
22947 "insn" from rtx to rtx_insn *.
22948 (c6x_variable_issue): Add a checked cast when assigning from insn
22949 to ss.last_scheduled_iter0.
22950 (split_delayed_branch): Strengthen param "insn" and local "i1"
22951 from rtx to rtx_insn *.
22952 (split_delayed_nonbranch): Likewise.
22953 (undo_split_delayed_nonbranch): Likewise for local "insn".
22954 (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
22955 "entry_after", "end_packet", "head_insn", "tail_insn",
22956 "new_insns", "last_insn", "this_iter", "prev_stage_insn".
22957 Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
22958 to rtx_insn **. Remove now-redundant checked cast on last_insn,
22959 but add a checked cast on loop->start_label. Consolidate calls to
22960 avoid assigning result of gen_spkernel to "insn", now an
22963 * config/i386/i386.c (do_reorder_for_imul): Strengthen param
22964 "ready" from rtx * to rtx_insn **. Strengthen local "insn" from
22966 (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
22967 rtx_insn **. Strengthen locals "top", "next" from rtx to
22969 (ix86_sched_reorder): Strengthen param "ready" from rtx * to
22970 rtx_insn **. Strengthen local "insn" from rtx to rtx_insn *.
22971 (add_parameter_dependencies): Strengthen params "call", "head" and
22972 locals "insn", "last", "first_arg" from rtx to rtx_insn *.
22973 (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
22974 (add_dependee_for_func_arg): Likewise for param "arg" and local
22976 (ix86_dependencies_evaluation_hook): Likewise for params "head",
22977 "tail" and locals "insn", "first_arg".
22979 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
22980 for params "head", "tail" and locals "insn", "next", "next_tail".
22981 (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
22982 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
22983 "insn", "lowest", "highest" from rtx to rtx_insn *.
22984 (ia64_sched_reorder): Strengthen param "ready" from rtx * to
22986 (ia64_sched_reorder2): Likewise.
22988 * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
22989 and local "insn" from rtx to rtx_insn *. Strengthen param "ready"
22990 from rtx * to rtx_insn **.
22991 (mep_move_ready_insn): Strengthen param "ready" from rtx * to
22993 (mep_print_sched_insn): Strengthen param "insn" from rtx to
22995 (mep_sched_reorder): Strengthen param "ready" from rtx * to
22996 rtx_insn **. Strengthen locals "core_insn", "cop_insn" from rtx
22999 * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
23000 from rtx * to rtx_insn **. Strengthen local "new_head" from rtx
23002 (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
23003 rtx_insn **. Strengthen local "temp" from rtx to rtx_insn *.
23004 (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
23006 (vr4130_reorder): Likewise.
23007 (mips_74k_agen_reorder): Likewise. Strengthen local "insn" from
23009 (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
23011 (mips_sched_reorder): Likewise.
23012 (mips_sched_reorder2): Likewise.
23014 * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
23016 * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
23017 Strengthen local "tmp" from rtx to rtx_insn *.
23018 (rs6000_sched_reorder2): Likewise.
23020 * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
23021 Likewise. Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
23022 (s390_sched_reorder): Strengthen param "ready" from rtx * to
23023 rtx_insn **. Strengthen local "tmp" from rtx to rtx_insn *.
23025 * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
23026 "tmp2" from rtx to rtx_insn *.
23027 (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
23028 Strengthen local "insn" from rtx to rtx_insn *.
23029 (ready_reorder): Strengthen param "ready" from rtx * to
23030 rtx_insn **. Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
23031 (sh_reorder): Strengthen param "ready" from rtx * to rtx_insn **.
23032 (sh_reorder2): Likewise.
23034 * config/spu/spu.c (spu_sched_reorder): Likewise. Strengthen
23035 local "insn" from rtx to rtx_insn *.
23037 * haifa-sched.c (note_list): Strengthen this variable from rtx to
23039 (scheduled_insns): Strengthen this variable from vec<rtx> to
23041 (set_modulo_params): Likewise for locals "i1", "i2".
23042 (record_delay_slot_pair): Likewise for params "i1", "i2".
23043 (add_delay_dependencies): Likewise for param "insn".
23044 (cond_clobbered_p): Likewise.
23045 (recompute_todo_spec): Likewise for local "prev".
23046 (last_scheduled_insn): Likewise for this variable.
23047 (nonscheduled_insns_begin): Likewise.
23048 (model_set_excess_costs): Strengthen param "insns" from rtx * to
23050 (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
23052 (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
23053 Strengthen local "insn" from rtx to rtx_insn *.
23054 (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
23055 (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
23056 (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
23057 (ready_remove_first): Likewise for return type and local "t".
23058 (ready_element): Likewise for return type.
23059 (ready_remove): Likewise for return type and local "t".
23060 (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
23061 (check_clobbered_conditions): Strengthen local "x" from rtx to
23062 rtx_insn *, adding a checked cast.
23063 (schedule_insn): Likewise for param "insn".
23064 (remove_notes): Likewise for params "head", "tail" and locals
23065 "next_tail", "insn", "next".
23066 (struct haifa_saved_data): Likewise for fields
23067 "last_scheduled_insn", "nonscheduled_insns_begin".
23068 (save_backtrack_point): Update for change to field "vec" of
23070 (toggle_cancelled_flags): Strengthen local "first" from rtx * to
23072 (restore_last_backtrack_point): Likewise. Strengthen local "insn"
23073 from rtx to rtx_insn *
23074 (resolve_dependencies): Strengthen param "insn" from rtx to
23076 (restore_other_notes): Likewise for return type, for param "head"
23077 and local "note_head".
23078 (undo_all_replacements): Likewise for local "insn".
23079 (first_nonscheduled_insn): Likewise for return type and local "insn".
23080 (queue_to_ready): Likewise for local "insn", adding checked casts.
23081 (early_queue_to_ready): Likewise for local "insn".
23082 (debug_ready_list_1): Strengthen local "p" from rtx * to
23084 (move_insn): Strengthen param "insn" and local "note" from rtx to
23086 (insn_finishes_cycle_p): Likewise for param "insn".
23087 (max_issue): Likewise for local "insn".
23088 (choose_ready): Likewise. Strengthen param "insn_ptr" from rtx *
23090 (commit_schedule): Strengthen param "prev_head" and local "insn"
23091 from rtx to rtx_insn *
23092 (prune_ready_list): Likewise for local "insn".
23093 (schedule_block): Likewise for locals "prev_head", "head", "tail",
23094 "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
23095 (set_priorities): Likewise for local "prev_head".
23096 (try_ready): Likewise for param "next".
23097 (fix_tick_ready): Likewise.
23098 (change_queue_index): Likewise.
23099 (sched_extend_ready_list): Update for change to field "vec" of
23101 (generate_recovery_code): Strengthen param "insn" from rtx to
23103 (begin_speculative_block): Likewise.
23104 (create_check_block_twin): Likewise for param "insn" and locals
23105 "label", "check", "twin". Introduce local "check_pat" to avoid
23106 "check" being used as a plain rtx before being used as an insn.
23107 (fix_recovery_deps): Add a checked cast to rtx_insn * when
23108 extracting elements from ready_list.
23109 (sched_remove_insn): Strengthen param "insn" from rtx to
23111 (sched_emit_insn): Likewise for return type.
23112 (ready_remove_first_dispatch): Likewise for return type and local
23115 * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
23117 * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
23120 * sched-deps.c (add_dependence): Strengthen params "con", "pro"
23121 from rtx to rtx_insn *.
23122 (add_dependence_list): Likewise for param "insn". Add a checked
23124 (add_dependence_list_and_free): Strengthen param "insn" from rtx
23125 to rtx_insn *. Strengthen param "list_p" from rtx * to
23127 (chain_to_prev_insn): Strengthen param "insn" and locals
23128 "prec_nonnote", "i" from rtx to rtx_insn *.
23129 (flush_pending_lists): Likewise for param "insn".
23130 (cur_insn): Likewise for this variable.
23131 (haifa_start_insn): Add a checked cast.
23132 (note_dep): Strengthen param "e" from rtx to rtx_insn *.
23133 (sched_analyze_reg): Likewise for param "insn".
23134 (sched_analyze_1): Likewise.
23135 (sched_analyze_2): Likewise. Add checked casts.
23136 (sched_analyze_insn): Likewise. Also for local "prev".
23137 (deps_analyze_insn): Likewise for param "insn".
23138 (sched_analyze): Likewise for params "head", "tail" and local "insn".
23139 (add_dependence_1): Likewise for params "insn", "elem".
23140 (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
23141 (parse_add_or_inc): Likewise for param "insn".
23142 (find_inc): Likewise for local "inc_cand".
23143 (find_modifiable_mems): Likewise for params "head", "tail" and
23144 locals "insn", "next_tail".
23146 * sched-ebb.c (init_ready_list): Likewise for local "insn".
23147 (begin_schedule_ready): Likewise for param "insn".
23148 (begin_move_insn): Likewise for params "insn" and "last".
23149 (ebb_print_insn): Strengthen param "insn" from const_rtx to
23151 (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
23152 (ebb_contributes_to_priority): Likewise for params "next", "insn".
23153 (ebb_add_remove_insn): Likewise for param "insn".
23154 (advance_target_bb): Likewise.
23156 * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
23158 (check_live): Likewise for param "insn".
23159 (init_ready_list): Likewise for local "insn".
23160 (can_schedule_ready_p): Likewise for param "insn".
23161 (begin_schedule_ready): Likewise.
23162 (new_ready): Likewise for param "next".
23163 (rgn_print_insn): Likewise for param "insn".
23164 (rgn_rank): Likewise for params "insn1", "insn2".
23165 (contributes_to_priority): Likewise for params "next", "insn".
23166 (rgn_insn_finishes_block_p): Likewise for param "insn".
23167 (add_branch_dependences): Likewise for params "head", "tail" and
23168 locals "insn", "last".
23169 (rgn_add_remove_insn): Likewise for param "insn".
23170 (advance_target_bb): Likewise.
23172 * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
23173 const_rtx to const rtx_insn *.
23175 * sel-sched-dump.h (sel_print_insn): Likewise.
23177 * sel-sched-ir.c (advance_deps_context): Add a checked cast.
23178 (deps_init_id): Likewise.
23180 * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
23181 (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
23184 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23186 * output.h (final_start_function): Strengthen param 1 from rtx to
23189 * final.c (final_start_function): Likewise, renaming back from
23190 "uncast_first" to "first", and dropping the checked cast from rtx
23193 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23195 * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
23196 * final.c (final): Likewise. Rename param back from
23197 "uncast_first" to "first" and eliminate the checked cast from rtx
23200 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23202 * output.h (shorten_branches): Strengthen param from rtx to
23205 * final.c (shorten_branches): Likewise, renaming param back from
23206 "uncast_first" to "first", and dropping the checked cast from rtx
23209 * genattr.c (gen_attr): Likewise when writing out the prototype of
23212 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23214 * sched-int.h (struct haifa_sched_info): Strengthen fields
23215 "prev_head" and "next_tail" from rtx to rtx_insn *.
23217 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23219 * rtl.h (rtx_jump_table_data::get_labels): New method.
23220 * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
23221 with use of the new rtx_jump_table_data::get_labels method.
23222 (purge_dead_tablejump_edges): Strengthen param "table" from rtx
23223 to rtx_jump_table_data *. Simplify by using get_labels method.
23224 * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
23225 a dyn_cast, introducing local "table", using it to replace
23226 label-lookup logic with a get_labels method call.
23227 (patch_jump_insn): Simplify using get_labels method.
23228 * dwarf2cfi.c (create_trace_edges): Likewise.
23229 * rtlanal.c (label_is_jump_target_p): Likewise.
23231 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23233 * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
23236 * emit-rtl.c (unshare_all_rtl_1): Likewise.
23237 (unshare_all_rtl_again): Likewise, also for local "p".
23239 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23241 * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
23243 * cfgrtl.c (delete_insn_and_edges): Likewise.
23245 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23247 * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
23248 from rtx to rtx_insn *.
23250 * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
23252 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23254 * function.c (thread_prologue_and_epilogue_insns): Likewise for
23255 locals "returnjump", "epilogue_end", "insn", "next".
23257 * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
23258 "returnjump" from rtx * to rtx_insn **.
23259 * shrink-wrap.c (get_unconverted_simple_return): Likewise.
23261 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23263 * basic-block.h (struct edge_def). Strengthen "r" within
23264 union edge_def_insns from rtx to rtx_insn *.
23266 * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
23267 from rtx to rtx_insn *. Strengthen local "insns" from rtx to
23269 * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
23270 from rtx to rtx_insn *.
23271 * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
23273 * postreload-gcse.c (reg_killed_on_edge): Likewise.
23274 (reg_used_on_edge): Likewise.
23275 * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
23276 (gt_pch_nx): New overload for rtx_insn *&.
23277 * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
23278 from rtx to rtx_insn *.
23280 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23282 * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
23283 from rtx to rtx_insn *.
23284 (BB_FOOTER): Replace function with access macro.
23285 (SET_BB_FOOTER): Delete.
23287 * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
23289 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
23290 (emit_barrier_after_bb): Likewise.
23291 (record_effective_endpoints): Likewise.
23292 (relink_block_chain): Likewise.
23293 (fixup_fallthru_exit_predecessor): Likewise.
23294 (cfg_layout_duplicate_bb): Likewise.
23295 (cfg_layout_split_block): Likewise.
23296 (cfg_layout_delete_block): Likewise.
23297 (cfg_layout_merge_blocks): Likewise.
23298 (BB_FOOTER): Delete function.
23299 (SET_BB_FOOTER): Delete function.
23300 * combine.c (update_cfg_for_uncondjump): Replace uses of
23301 SET_BB_FOOTER with BB_FOOTER.
23303 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23305 * except.h (struct eh_landing_pad_d): Strengthen field
23306 "landing_pad" from rtx to rtx_code_label *.
23308 * except.c (sjlj_emit_dispatch_table): Likewise for param
23310 (sjlj_build_landing_pads): Likewise for local "dispatch_label".
23312 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23314 * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
23315 first param from rtx to rtx_insn *.
23316 * config/xtensa/xtensa.c (struct machine_function): Likewise for
23317 field "set_frame_ptr_insn".
23318 (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
23319 "csend" from rtx to rtx_code_label *.
23320 (xtensa_expand_atomic): Likewise for local "csloop".
23321 (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
23323 (xtensa_call_tls_desc): Likewise for return type and locals
23324 "call_insn", "insns".
23325 (xtensa_legitimize_tls_address): Likewise for local "insns".
23326 (xtensa_expand_prologue): Likewise for locals "insn", "first".
23328 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23330 * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
23331 first param from rtx to rtx_insn *.
23332 * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
23335 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23337 * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
23338 Strengthen param 1 from rtx to rtx_insn *.
23339 (tilepro_output_cbranch): Likewise.
23340 (tilepro_adjust_insn_length): Likewise.
23341 (tilepro_final_prescan_insn): Likewise for sole param.
23343 * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
23344 Likewise for local "last".
23345 (cbranch_predicted_p): Likewise for param "insn".
23346 (tilepro_output_simple_cbranch_with_opcode): Likewise.
23347 (tilepro_output_cbranch_with_opcode): Likewise.
23348 (tilepro_output_cbranch): Likewise.
23349 (frame_emit_load): Likewise for return type and locals "seq",
23351 (emit_sp_adjust): Likewise for return type and local "insn".
23352 (tilepro_expand_epilogue): Likewise for locals "last_insn",
23354 (tilepro_adjust_insn_length): Likewise for param "insn".
23355 (next_insn_to_bundle): Likewise for return type and params
23357 (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
23358 (replace_pc_relative_symbol_ref): Likewise for param "insn" and
23360 (match_addli_pcrel): Likewise for param "insn".
23361 (replace_addli_pcrel): Likewise.
23362 (match_auli_pcrel): Likewise.
23363 (replace_auli_pcrel): Likewise.
23364 (tilepro_fixup_pcrel_references): Likewise for locals "insn",
23366 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
23367 "queue", "next_queue", "prev".
23368 (tilepro_asm_output_mi_thunk): Likewise for local "insn".
23369 (tilepro_final_prescan_insn): Likewise for param "insn".
23371 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23373 * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
23374 Strengthen param 1 from rtx to rtx_insn *.
23375 (tilegx_output_cbranch): Likewise.
23376 (tilegx_adjust_insn_length): Likewise.
23377 (tilegx_final_prescan_insn): Likewise for sole param.
23379 * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
23381 (cbranch_predicted_p): Likewise for param "insn".
23382 (tilegx_output_simple_cbranch_with_opcode): Likewise.
23383 (tilegx_output_cbranch_with_opcode): Likewise.
23384 (tilegx_output_cbranch): Likewise.
23385 (frame_emit_load): Likewise for return type.
23386 (set_frame_related_p): Likewise for locals "seq", "insn".
23387 (emit_sp_adjust): Likewise for return type, and for local "insn".
23388 Introduce local "pat" for use in place of "insn" where the latter
23389 isn't an instruction.
23390 (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
23391 from rtx to rtx_insn *.
23392 (tilegx_adjust_insn_length): Likewise for param "insn".
23393 (next_insn_to_bundle): Likewise for return type and params "r" and
23395 (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
23397 (replace_insns): Likewise for params "old_insn", "new_insns".
23398 (replace_mov_pcrel_step1): Likewise for param "insn" and local
23400 (replace_mov_pcrel_step2): Likewise.
23401 (replace_mov_pcrel_step3): Likewise.
23402 (tilegx_fixup_pcrel_references): Likewise for locals "insn",
23404 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
23405 "queue", "next_queue", "prev".
23406 (tilegx_output_mi_thunk): Likewise for local "insn".
23407 (tilegx_final_prescan_insn): Likewise for param "insn".
23409 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23411 * config/spu/spu.c (frame_emit_store): Strengthen return type from
23413 (frame_emit_load): Likewise.
23414 (frame_emit_add_imm): Likewise, also for local "insn".
23415 (spu_expand_prologue): Likewise for local "insn".
23416 (struct spu_bb_info): Likewise for field "prop_jump".
23417 (emit_nop_for_insn): Likewise for param "insn" and local
23419 (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
23421 (spu_emit_branch_hint): Likewise for params "before", "branch" and
23422 locals "hint", "insn".
23423 (get_branch_target): Likewise for param "branch".
23424 (insn_clobbers_hbr): Likewise for param "insn".
23425 (insert_hbrp_for_ilb_runout): Likewise for param "first" and
23426 locals "insn", "before_4", "before_16".
23427 (insert_hbrp): Likewise for local "insn".
23428 (spu_machine_dependent_reorg): Likewise for locals "branch",
23429 "insn", "next", "bbend".
23430 (uses_ls_unit): Likewise for param "insn".
23431 (get_pipe): Likewise.
23432 (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
23433 introducing a checked cast.
23434 (spu_sched_adjust_cost): Likewise for params "insn" and
23436 (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
23437 (spu_sms_res_mii): Likewise.
23439 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23441 * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
23442 from rtx to rtx_insn *.
23443 (output_cbranch): Likewise for param 6.
23444 (output_return): Likewise for param 1.
23445 (output_sibcall): Likewise.
23446 (output_v8plus_shift): Likewise.
23447 (output_v8plus_mult): Likewise.
23448 (output_v9branch): Likewise for param 7.
23449 (output_cbcond): Likewise for param 3.
23451 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
23453 (sparc_legitimize_pic_address): Likewise.
23454 (sparc_emit_call_insn): Likewise.
23455 (emit_save_or_restore_regs): Likewise.
23456 (emit_window_save): Likewise for return type and local "insn".
23457 (sparc_expand_prologue): Likewise for local "insn".
23458 (sparc_flat_expand_prologue): Likewise.
23459 (output_return): Likewise for param "insn".
23460 (output_sibcall): Likewise for param "insn" and local "delay".
23461 (output_ubranch): Likewise for param "insn".
23462 (output_cbranch): Likewise.
23463 (output_cbcond): Likewise.
23464 (output_v9branch): Likewise.
23465 (output_v8plus_shift): Likewise.
23466 (sparc_output_mi_thunk): Likewise for local "insn".
23467 (get_some_local_dynamic_name): Likewise.
23468 (output_v8plus_mult): Likewise for param "insn".
23470 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23472 * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
23473 from rtx to rtx_insn *.
23474 (output_branchy_insn): Likewise for param 3.
23475 (output_far_jump): Likewise for param 1.
23476 (final_prescan_insn): Likewise.
23477 (sh_insn_length_adjustment): Likewise for sole param.
23479 * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
23480 (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
23482 (sh_emit_compare_and_set): Likewise for local "lab".
23483 (output_far_jump): Strengthen param "insn" and local "prev" from
23485 (output_branchy_insn): Likewise for param "insn" and local
23487 (output_ieee_ccmpeq): Likewise for param "insn".
23488 (struct label_ref_list_d): Strengthen field "label" from rtx to
23490 (pool_node): Likewise.
23491 (pool_window_label): Likewise for this global.
23492 (add_constant): Likewise for return type and locals "lab", "new_rtx".
23493 (dump_table): Strengthen params "start", "barrier" and local
23494 "scan" from rtx to rtx_insn *.
23495 (broken_move): Likewise for param "insn".
23496 (untangle_mova): Likewise for params "first_mova" and "new_mova".
23497 Strengthen param "first_mova" from rtx * to rtx_insn **.
23498 (mova_p): Likewise for param "insn".
23499 (fixup_mova): Likewise for param "mova".
23500 (find_barrier): Likewise for return type, params "mova" and
23501 "from", and locals "barrier_before_mova", "found_barrier",
23502 "good_barrier", "orig", "last_symoff", "next". Strengthen local
23503 "label" from rtx to rtx_code_label *.
23504 (sh_loop_align): Strengthen locals "first", "insn", "mova" from
23506 (sh_reorg): Likewise for locals "link", "scan", "barrier".
23507 (split_branches): Likewise for param "first" and local "insn".
23508 (final_prescan_insn): Likewise for param "insn".
23509 (sequence_insn_p): Likewise for locals "prev", "next".
23510 (sh_insn_length_adjustment): Likewise for param "insn".
23511 (sh_can_redirect_branch): Likewise for local "insn".
23512 (find_r0_life_regions): Likewise for locals "end", "insn".
23513 (sh_output_mi_thunk): Likewise for local "insns".
23515 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23517 * config/score/score.c (score_output_mi_thunk): Strengthen local
23518 "insn" from rtx to rtx_insn *.
23519 (score_prologue): Likewise.
23521 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23523 * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
23524 1 from rtx to rtx_insn *.
23525 (s390_emit_jump): Likewise for return type.
23526 (s390_emit_call): Likewise.
23527 (s390_load_got): Likewise.
23529 * config/s390/s390.c (last_scheduled_insn): Likewise for this
23531 (s390_match_ccmode): Likewise for param "insn".
23532 (s390_emit_jump): Likewise for return type.
23533 (s390_split_branches): Likewise for local "label".
23534 (struct constant): Strengthen field "label" from rtx to
23536 (struct constant_pool): Likewise for field "label". Strengthen
23537 fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
23539 (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
23541 (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
23542 (s390_end_pool): Likewise.
23543 (s390_dump_pool): Likewise for local "insn".
23544 (s390_mainpool_start): Likewise.
23545 (s390_chunkify_start): Likewise.
23546 (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
23547 with insns. Strengthen locals "label", "jump", "barrier", "next",
23548 "prev", "vec_insn", "insn" from rtx to rtx_insn *.
23549 (s390_chunkify_finish): Strengthen local "insn" from rtx to
23551 (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
23552 "jump", "label", "next_insn".
23553 (s390_regs_ever_clobbered): Likewise for local "cur_insn".
23554 (s390_optimize_nonescaping_tx): Likewise for locals "insn",
23556 (s390_load_got): Likewise for return type and local "insns".
23557 (s390_save_gprs_to_fprs): Likewise for local "insn".
23558 (s390_restore_gprs_from_fprs): Likewise.
23559 (pass_s390_early_mach::execute): Likewise.
23560 (s390_emit_prologue): Likewise for local "insns".
23561 (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
23563 (s390_emit_call): Strengthen return type and local "insn" from
23565 (s390_emit_tpf_eh_return): Likewise for local "insn".
23566 (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
23567 "next_insn", introducing locals "s_pat", "rpat" to allow this.
23568 (s390_fix_long_loop_prediction): Likewise for param "insn" and
23570 (s390_non_addr_reg_read_p): Likewise for param "insn".
23571 (find_cond_jump): Likewise for return type and param "insn".
23572 (s390_swap_cmp): Likewise for param "insn".
23573 (s390_z10_optimize_cmp): Likewise for param "insn" and locals
23574 "prev_insn", "next_insn".
23575 (s390_reorg): Likewise for locals "insn", "target".
23576 (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
23577 (s390_sched_variable_issue): For now, rename param "insn" to
23578 "uncast_insn", introducing a checked cast.
23579 (s390_sched_init): Replace NULL_RTX with NULL when dealing with
23581 (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
23582 rtx_insn *. Use for_each_rtx_in_insn rather than for_each_rtx.
23584 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23586 * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
23587 param from rtx to rtx_insn *.
23588 * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
23590 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23592 * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
23593 4 from rtx to rtx_insn *.
23594 (rs6000_final_prescan_insn): Likewise for first param.
23595 * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
23597 (rs6000_get_some_local_dynamic_name): Likewise.
23598 (output_cbranch): Likewise for param "insn".
23599 (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
23600 (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
23601 (rs6000_emit_allocate_stack): Likewise for local "insn".
23602 (load_cr_save): Likewise.
23603 (restore_saved_cr): Likewise.
23604 (restore_saved_lr): Likewise.
23605 (emit_cfa_restores): Likewise.
23606 (rs6000_output_function_epilogue): Likewise for locals "insn" and
23607 "deleted_debug_label".
23608 (rs6000_output_mi_thunk): Likewise for local "insn".
23609 (rs6000_final_prescan_insn): Likewise for param "insn".
23611 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23613 * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
23614 Strengthen param "insn" from rtx to rtx_insn *.
23615 * config/picochip/picochip.c (picochip_current_prescan_insn):
23616 Likewise for this variable.
23617 (picochip_final_prescan_insn): Likewise for param "insn".
23619 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23621 * config/pa/pa-protos.h (pa_output_call): Strengthen first param
23622 from rtx to rtx_insn *.
23623 (pa_output_indirect_call): Likewise.
23624 (pa_adjust_insn_length): Likewise.
23625 (pa_attr_length_millicode_call): Likewise.
23626 (pa_attr_length_call): Likewise.
23627 (pa_attr_length_indirect_call): Likewise.
23629 * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
23631 (pa_attr_length_millicode_call): Likewise.
23632 (pa_attr_length_call): Likewise.
23633 (pa_output_call): Likewise.
23634 (pa_attr_length_indirect_call): Likewise.
23635 (pa_output_indirect_call): Likewise.
23637 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23639 * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
23640 Strengthen first param from rtx to rtx_insn *.
23641 * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
23644 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23646 * config/mips/mips-protos.h (mips_emit_move): Strengthen return
23647 type from rtx to rtx_insn *.
23648 (mips_expand_call): Likewise.
23649 (mips_adjust_insn_length): Likewise for first param.
23650 (mips_output_conditional_branch): Likewise.
23651 (mips_output_order_conditional_branch): Likewise.
23652 (mips_final_prescan_insn): Likewise.
23654 * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
23655 rtx_insn * for the SEQUENCE case.
23656 (SEQ_END): Likewise.
23657 (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
23658 (mips_emit_call_insn): Likewise, also for local "insn".
23659 (mips16_gp_pseudo_reg): Likewise for local "scan".
23660 (mips16_build_call_stub): Likewise for return type and for local
23661 "insn". Introduce a new local "pattern" so that "insn" can indeed
23663 (mips_expand_call): Strengthen return type and local "insn" from
23665 (mips_block_move_loop): Strengthen local "label" from rtx to
23667 (mips_expand_synci_loop): Likewise for locals "label",
23669 (mips_set_frame_expr): Strengthen local "insn" from rtx to
23671 (mips16e_collect_argument_saves): Likewise for locals "insn",
23673 (mips_find_gp_ref): Likewise for param of callback for "pred"
23674 param, and for local "insn".
23675 (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
23676 (mips_insn_has_flexible_gp_ref_p): Likewise.
23677 (mips_epilogue_emit_cfa_restores): Likewise for return type and
23679 (mips_epilogue_set_cfa): Likewise for local "insn".
23680 (mips_expand_epilogue): Likewise.
23681 (mips_adjust_insn_length): Likewise for param "insn".
23682 (mips_output_conditional_branch): Likewise.
23683 (mips_output_order_conditional_branch): Likewise.
23684 (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
23685 "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
23686 "falu2_turn_enabled_insn".
23687 (mips_builtin_branch_and_move): Strengthen locals "true_label",
23688 "done_label" from rtx to rtx_code_label *.
23689 (struct mips16_constant): Likewise for field "label".
23690 (mips16_add_constant): Likewise for return type.
23691 (mips16_emit_constants_1): Strengthen return type and param "insn"
23692 from rtx to rtx_insn *.
23693 (mips16_emit_constants): Likewise for param "insn".
23694 (mips16_insn_length): Likewise.
23695 (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
23696 to rtx_code_label *.
23697 (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
23698 from rtx to rtx_insn *.
23699 (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
23700 "jump". Strengthen local "label" from rtx to rtx_code_label *.
23701 (r10k_simplify_address): Strengthen param "insn" and local
23702 "def_insn" from rtx to rtx_insn *.
23703 (r10k_safe_address_p): Strengthen param "insn" from rtx to
23705 (r10k_needs_protection_p_1): Update target type of cast of data
23706 from to rtx to rtx_insn *.
23707 (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
23708 rtx * to rtx_insn **.
23709 (r10k_needs_protection_p): Strengthen param "insn" from rtx to
23711 (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
23712 (mips_call_expr_from_insn): Likewise for param "insn".
23713 (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
23714 (mips_find_pic_call_symbol): Likewise for param "insn".
23715 (mips_annotate_pic_calls): Likewise for local "insn".
23716 (mips_sim_insn): Likewise for this variable.
23717 (struct mips_sim): Likewise for field "insn" within elements of
23719 (mips_sim_wait_reg): Likewise for param "insn".
23720 (mips_sim_wait_regs): Likewise.
23721 (mips_sim_wait_units): Likewise.
23722 (mips_sim_wait_insn): Likewise.
23723 (mips_sim_issue_insn): Likewise.
23724 (mips_sim_finish_insn): Likewise.
23725 (mips_seq_time): Likewise for param "seq" and local "insn".
23726 (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
23727 locals "first", "second".
23728 (vr4130_align_insns): Likewise for locals "insn", "subinsn",
23729 "last", "last2", "next".
23730 (mips_avoid_hazard): Likewise for params "after", "insn".
23731 (mips_reorg_process_insns): Likewise for locals "insn",
23732 "last_insn", "subinsn", "next_insn".
23733 (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
23734 (mips16_split_long_branches): Likewise for locals "insn" "jump",
23736 (mips_output_mi_thunk): Likewise for local "insn".
23737 (mips_final_prescan_insn): Likewise for param "insn".
23739 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23741 * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
23742 Strengthen return type and local "insns" from rtx to rtx_insn *.
23743 (microblaze_legitimize_tls_address): Likewise for local "insns".
23744 (microblaze_block_move_loop): Strengthen local "label" from rtx
23745 to rtx_code_label *.
23746 (microblaze_expand_prologue): Strengthen two locals named "insn"
23747 from rtx to rtx_insn *.
23748 (microblaze_asm_output_mi_thunk): Likewise for local "insn".
23749 (microblaze_expand_divide): Likewise for locals "jump", "cjump",
23750 "insn". Strengthen locals "div_label", "div_end_label" from rtx
23751 to rtx_code_label *.
23753 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23755 * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
23756 param from rtx to rtx_insn *.
23757 (mep_reuse_lo): Likewise for third param.
23758 (mep_use_post_modify_p): Likewise for first param.
23759 (mep_core_address_length): Likewise.
23760 (mep_cop_address_length): Likewise.
23761 (mep_final_prescan_insn): Likewise.
23762 (mep_store_data_bypass_p): Likewise for both params.
23763 (mep_mul_hilo_bypass_p): Likewise.
23764 (mep_ipipe_ldc_p): Likewise for param.
23766 * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
23767 (mep_rewrite_mult): Likewise.
23768 (mep_rewrite_mulsi3): Likewise.
23769 (mep_rewrite_maddsi3): Likewise.
23770 (mep_reuse_lo_p_1): Likewise.
23771 (mep_reuse_lo_p): Likewise.
23772 (mep_frame_expr): Likewise.
23773 (mep_make_parallel): Likewise for both params.
23774 (mep_use_post_modify_p_1): Likewise for param "set_insn" and
23776 (mep_use_post_modify_p): Likewise for param "insn".
23777 (mep_core_address_length): Likewise.
23778 (mep_cop_address_length): Likewise.
23779 (mep_reg_set_in_function): Likewise for local "insn".
23780 (mep_asm_without_operands_p): Likewise.
23781 (F): Likewise for return type and param "x".
23782 (add_constant): Likewise for local "insn".
23783 (maybe_dead_move): Likewise for return type and local "insn".
23784 (mep_expand_prologue): Likewise for local "insn".
23785 (mep_final_prescan_insn): Likewise for param "insn".
23786 (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
23787 "next", "follow", "x".
23788 (mep_insert_repeat_label_last): Likewise for return type, param
23789 "last_insn", and locals "next", "prev". Strengthen param "label"
23790 from rtx to rtx_code_label *.
23791 (struct mep_doloop_begin): Strengthen field "insn" from rtx to
23793 (struct mep_doloop_end): Likewise for fields "insn" and
23795 (mep_reorg_repeat): Likewise for param "insns" and local "insn".
23796 Strengthen local "repeat_label" from rtx to rtx_code_label *.
23797 (mep_invertable_branch_p): Strengthen param "insn" from rtx to
23799 (mep_invert_branch): Likewise for params "insn" and "after".
23800 (mep_reorg_erepeat): Likewise for param "insns" and locals
23801 "insn", "prev", "new_last", "barrier", "user". Strengthen local
23802 "l" from rtx to rtx_code_label *.
23803 (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
23804 from rtx to rtx_insn *.
23805 (mep_reorg_addcombine): Likewise for param "insns" and locals
23807 (add_sp_insn_p): Likewise for param "insn".
23808 (mep_reorg_noframe): Likewise for param "insns" and locals
23809 "start_frame_insn", "end_frame_insn", "next".
23810 (mep_reorg): Likewise for local "insns".
23811 (mep_store_data_bypass_1): Likewise for param "prev". Add checked
23813 (mep_store_data_bypass_p): Likewise for params "prev", "insn".
23814 (mep_mul_hilo_bypass_p): Likewise.
23815 (mep_ipipe_ldc_p): Likewise for param "insn".
23816 (mep_make_bundle): Likewise for return type, param "cop" and local
23817 "insn", splitting out the latter into a new local "seq" for when it
23818 is a SEQUENCE rather than an insn.
23819 (core_insn_p): Likewise for param "insn".
23820 (mep_bundle_insns): Likewise for param "insns" and locals "insn",
23821 "last", "first", "note", "prev", "core_insn".
23823 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23825 * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
23827 (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
23828 (m68k_final_prescan_insn): Likewise for first param.
23830 * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
23831 (m68k_set_frame_related): Likewise for param "insn".
23832 (output_btst): Likewise for param "insn".
23833 (m68k_final_prescan_insn): Likewise.
23834 (m68k_move_to_reg): Likewise for local "insn".
23835 (m68k_call_tls_get_addr): Likewise for local "insns".
23836 (m68k_call_m68k_read_tp): Likewise.
23837 (strict_low_part_peephole_ok): Likewise for param "first_insn".
23838 (m68k_output_mi_thunk): Likewise for local "insn".
23840 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23842 * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
23843 first param from rtx to rtx_insn *.
23844 (iq2000_adjust_insn_length): Likewise.
23845 (iq2000_output_conditional_branch): Likewise.
23846 * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
23847 "insn" and local "nop_insn".
23848 (iq2000_annotate_frame_insn): Likewise for param "insn".
23849 (iq2000_expand_prologue): Likewise for both locals "insn".
23850 (iq2000_adjust_insn_length): Likewise for param "insn".
23851 (iq2000_output_conditional_branch): Likewise.
23853 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23855 * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
23856 "insns" from rtx to rtx_insn *.
23857 (ia64_emit_cond_move): Likewise for locals "insn", "first".
23858 (struct spill_fill_data): Likewise for field "init_after" and for
23859 elements of array field "prev_insn".
23860 (spill_restore_mem): Likewise for locals "insn", "first".
23861 (do_spill): Likewise for local "insn".
23862 (do_restore): Likewise.
23863 (ia64_expand_prologue): Likewise.
23864 (ia64_expand_epilogue): Likewise.
23865 (emit_insn_group_barriers): Likewise for locals "insn",
23867 (emit_all_insn_group_barriers): Likewise for locals "insn",
23869 (dfa_stop_insn): Likewise for this global.
23870 (dfa_pre_cycle_insn): Likewise.
23871 (ia64_nop): Likewise.
23872 (final_emit_insn_group_barriers): Likewise for locals "insn",
23874 (emit_predicate_relation_info): Likewise for locals "head", "n",
23876 (ia64_reorg): Likewise for local "insn".
23877 (ia64_output_mi_thunk): Likewise.
23878 (expand_vec_perm_interleave_2): Likewise for local "seq".
23880 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23882 * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
23883 param 1 "insn" from rtx to rtx_insn *.
23884 (ix86_use_lea_for_mov): Likewise.
23885 (ix86_avoid_lea_for_addr): Likewise.
23886 (ix86_split_lea_for_addr): Likewise.
23887 (ix86_lea_for_add_ok): Likewise.
23888 (ix86_output_call_insn): Likewise.
23890 * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
23891 (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
23892 (ix86_output_function_epilogue): Likewise for locals "insn",
23893 "deleted_debug_label".
23894 (legitimize_tls_address): Likewise for local "insn".
23895 (get_some_local_dynamic_name): Likewise.
23896 (increase_distance): Likewise for params "prev", "next".
23897 (distance_non_agu_define_in_bb): Likewise for params "insn",
23898 "start" and locals "prev", "next".
23899 (distance_non_agu_define): Likewise for param "insn".
23900 (distance_agu_use_in_bb): Likewise for params "insn", "start" and
23901 locals "next", "prev".
23902 (distance_agu_use): Likewise for param "insn".
23903 (ix86_lea_outperforms): Likewise.
23904 (ix86_ok_to_clobber_flags): Likewise.
23905 (ix86_avoid_lea_for_add): Likewise.
23906 (ix86_use_lea_for_mov): Likewise.
23907 (ix86_avoid_lea_for_addr): Likewise.
23908 (find_nearest_reg_def): Likewise, also for locals "prev", "start".
23909 (ix86_split_lea_for_addr): Likewise for param "insn".
23910 (ix86_lea_for_add_ok): Likewise for param "insn".
23911 (ix86_expand_carry_flag_compare): Likewise for local
23913 (ix86_expand_int_movcc): Likewise.
23914 (ix86_output_call_insn): Likewise for param "insn".
23915 (ix86_output_call_insn): Likewise for local "i".
23916 (x86_output_mi_thunk): Introduce local "insn", using it in place
23917 of "tmp" when dealing with insns.
23918 (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
23920 (ix86_pad_returns): Likewise for locals "ret", "prev".
23921 (ix86_count_insn_bb): Likewise for local "insn".
23922 (ix86_pad_short_function): Likewise for locals "ret", "insn".
23923 (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
23924 (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
23925 (expand_vec_perm_interleave2): Likewise for local "seq".
23926 (expand_vec_perm_vperm2f128_vblend): Likewise.
23927 (ix86_loop_unroll_adjust): Likewise for local "insn". Convert
23928 call to for_each_rtx with for_each_rtx_in_insn.
23930 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23932 * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
23933 "label" from rtx to rtx_code_label *.
23934 (ix86_expand_prologue): Likewise.
23935 (ix86_expand_split_stack_prologue): Likewise for locals "label",
23937 (ix86_split_idivmod): Likewise for locals "end_label" and
23939 (ix86_expand_branch): Likewise for local "label2".
23940 (ix86_expand_aligntest): Likewise for return type and local "label".
23941 (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
23943 (expand_movmem_epilogue): Likewise for the various locals named
23945 (expand_setmem_epilogue): Likewise.
23946 (expand_small_movmem_or_setmem): Likewise for local "label".
23947 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
23948 Strengthen param "done_label" from rtx * to rtx_code_label **.
23949 Strengthen locals "loop_label" and "label" from rtx to
23951 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
23952 Likewise for locals "loop_label", "label".
23953 (ix86_expand_set_or_movmem): Likewise for locals "label",
23954 "jump_around_label", "hot_label".
23955 (ix86_expand_strlensi_unroll_1): Likewise for locals
23956 "align_2_label", align_3_label", "align_4_label", "end_0_label",
23958 (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
23959 (void ix86_emit_i387_log1p): Likewise for locals "label1",
23960 "label2", "jump_label".
23961 (ix86_expand_sse_compare_and_jump): Likewise for return type and
23963 (ix86_expand_lfloorceil): Likewise for local "label".
23964 (ix86_expand_rint): Likewise.
23965 (ix86_expand_floorceildf_32): Likewise.
23966 (ix86_expand_floorceil): Likewise.
23967 (ix86_expand_rounddf_32): Likewise.
23968 (ix86_expand_trunc): Likewise.
23969 (ix86_expand_truncdf_32): Likewise.
23970 (ix86_expand_round): Likewise.
23972 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23974 * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
23975 first param from rtx to rtx_insn *.
23976 (h8300_insn_length_from_table): Likewise.
23977 * config/h8300/h8300.c (F): Likewise for return type and param
23979 (Fpa): Add a checked cast to rtx_insn *.
23980 (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
23982 (final_prescan_insn): Likewise for param "insn".
23983 (h8300_binary_length): Likewise.
23984 (h8300_insn_length_from_table): Likewise.
23986 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23988 * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
23989 Strengthen first param "insn" from rtx to rtx_insn *.
23991 * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
23993 (frame_insn): Likewise for return type. Introduce local "insn"
23994 for use in place of local "x" for use as an rtx_insn *.
23995 (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
23996 (epiphany_expand_prologue): Likewise for local "insn".
23997 * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
23998 * config/epiphany/resolve-sw-modes.c
23999 (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
24002 2014-08-25 David Malcolm <dmalcolm@redhat.com>
24004 * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
24005 param from rtx to rtx_insn *.
24006 (c6x_final_prescan_insn): Likewise for first param.
24008 * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
24009 (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
24010 (c6x_expand_compare): Strengthen local "insns" from rtx to
24012 (c6x_get_unit_specifier): Likewise for param "insn".
24013 (c6x_print_unit_specifier_field): Likewise.
24014 (c6x_final_prescan_insn): Likewise.
24015 (emit_add_sp_const): Likewise for local "insn".
24016 (c6x_expand_prologue): Likewise.
24018 2014-08-25 David Malcolm <dmalcolm@redhat.com>
24020 * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
24021 param 1 from rtx to rtx_insn *.
24022 * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
24023 the various locals named "insn".
24024 (expand_epilogue_reg_restore): Likewise.
24025 (frame_related_constant_load): Likewise.
24026 (add_to_reg): Likewise.
24027 (emit_link_insn): Likewise.
24028 (do_link): Likewise.
24029 (expand_interrupt_handler_prologue): Likewise.
24030 (branch_dest): Likewise for param "branch".
24031 (asm_conditional_branch): Likewise for param "insn".
24032 (gen_one_bundle): Likewise for elements of param "slot" and local
24034 (bfin_gen_bundles): Likewise for locals "insn", "next" and
24035 elements of local "slot".
24036 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
24037 "queue", "next_queue", "prev".
24038 (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
24039 (add_sched_insns_for_speculation): Likewise for local "insn".
24041 2014-08-25 David Malcolm <dmalcolm@redhat.com>
24043 * config/avr/avr-protos.h (output_movqi): Strengthen first param
24044 from rtx to rtx_insn *.
24045 (output_movhi): Likewise.
24046 (output_movsisf): Likewise.
24047 (avr_out_tstsi): Likewise.
24048 (avr_out_tsthi): Likewise.
24049 (avr_out_tstpsi): Likewise.
24050 (avr_out_compare): Likewise.
24051 (avr_out_compare64): Likewise.
24052 (avr_out_movpsi): Likewise.
24053 (ashlqi3_out): Likewise.
24054 (ashlhi3_out): Likewise.
24055 (ashlsi3_out): Likewise.
24056 (ashrqi3_out): Likewise.
24057 (ashrhi3_out): Likewise.
24058 (ashrsi3_out): Likewise.
24059 (lshrqi3_out): Likewise.
24060 (lshrhi3_out): Likewise.
24061 (lshrsi3_out): Likewise.
24062 (avr_out_ashlpsi3): Likewise.
24063 (avr_out_ashrpsi3): Likewise.
24064 (avr_out_lshrpsi3): Likewise.
24065 (avr_out_fract): Likewise.
24066 (avr_out_sbxx_branch): Likewise.
24067 (avr_out_round): Likewise.
24068 (avr_out_xload): Likewise.
24069 (avr_out_movmem): Likewise.
24070 (adjust_insn_length): Likewise.
24071 (avr_out_lpm): Likewise.
24072 (reg_unused_after): Likewise.
24073 (_reg_unused_after): Likewise.
24074 (avr_jump_mode): Likewise for second param.
24075 (jump_over_one_insn): Likewise for first param.
24076 (avr_final_prescan_insn): Likewise.
24077 (out_shift_with_cnt): Likewise for second param.
24079 * config/avr/avr.c (get_sequence_length): Likewise for param
24080 "insns" and local "insn".
24081 (emit_push_byte): Likewise for local "insn".
24082 (emit_push_sfr): Likewise.
24083 (avr_prologue_setup_frame): Likewise for locals "insn",
24084 "fp_plus_insns", "sp_plus_insns".
24085 (avr_expand_epilogue): Likewise for local "fp_plus_insns",
24087 (avr_jump_mode): Likewise for param "insn".
24088 (avr_final_prescan_insn): Likewise.
24089 (avr_find_unused_d_reg): Likewise.
24090 (avr_out_lpm_no_lpmx): Likewise.
24091 (avr_out_lpm): Likewise.
24092 (avr_out_xload): Likewise.
24093 (output_movqi): Likewise.
24094 (output_movhi): Likewise.
24095 (out_movqi_r_mr): Likewise.
24096 (out_movhi_r_mr): Likewise.
24097 (out_movsi_r_mr): Likewise.
24098 (out_movsi_mr_r): Likewise.
24099 (output_movsisf): Likewise.
24100 (avr_out_load_psi): Likewise.
24101 (avr_out_store_psi): Likewise.
24102 (avr_out_movpsi): Likewise.
24103 (out_movqi_mr_r): Likewise.
24104 (avr_out_movhi_mr_r_xmega): Likewise.
24105 (out_movhi_mr_r): Likewise.
24106 (compare_condition): Likewise for param "insn" and local "next".
24107 (compare_sign_p): Likewise for param "insn".
24108 (compare_diff_p): Likewise.
24109 (compare_eq_p): Likewise.
24110 (avr_out_compare): Likewise.
24111 (avr_out_compare64): Likewise.
24112 (avr_out_tsthi): Likewise.
24113 (avr_out_tstpsi): Likewise.
24114 (avr_out_tstsi): Likewise.
24115 (out_shift_with_cnt): Likewise.
24116 (ashlqi3_out): Likewise.
24117 (ashlhi3_out): Likewise.
24118 (avr_out_ashlpsi3): Likewise.
24119 (ashlsi3_out): Likewise.
24120 (ashrqi3_out): Likewise.
24121 (ashrhi3_out): Likewise.
24122 (avr_out_ashrpsi3): Likewise.
24123 (ashrsi3_out): Likewise.
24124 (lshrqi3_out): Likewise.
24125 (lshrhi3_out): Likewise.
24126 (avr_out_lshrpsi3): Likewise.
24127 (lshrsi3_out): Likewise.
24128 (avr_out_fract): Likewise.
24129 (avr_out_round): Likewise.
24130 (avr_adjust_insn_length): Likewise.
24131 (reg_unused_after): Likewise.
24132 (_reg_unused_after): Likewise.
24133 (avr_compare_pattern): Likewise.
24134 (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
24135 and locals "branch1", "branch2", "insn2", "jump".
24136 (avr_reorg): Likewise for local "insn".
24137 (avr_2word_insn_p): Likewise for param "insn".
24138 (jump_over_one_insn_p): Likewise.
24139 (avr_out_sbxx_branch): Likewise.
24140 (avr_out_movmem): Likewise.
24142 2014-08-25 David Malcolm <dmalcolm@redhat.com>
24144 * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
24145 param from rtx to rtx_insn *.
24146 (thumb1_final_prescan_insn): Likewise.
24147 (thumb2_final_prescan_insn): Likewise.
24149 * config/arm/arm.c (emit_set_insn): Strengthen return type from
24151 (struct minipool_node): Likewise for field "insn".
24152 (dump_minipool): Likewise for param "scan".
24153 (create_fix_barrier): Likewise for local "from". Strengthen local
24154 "label" from rtx to rtx_code_label *.
24155 (push_minipool_barrier): Strengthen param "insn" from rtx to
24157 (push_minipool_fix): Likewise.
24158 (note_invalid_constants): Likewise.
24159 (thumb2_reorg): Likewise for local "insn".
24160 (arm_reorg): Likewise.
24161 (thumb2_final_prescan_insn): Likewise for param
24162 "insn" and local "first_insn".
24163 (arm_final_prescan_insn): Likewise for param "insn" and locals
24164 "start_insn", "this_insn".
24165 (arm_debugger_arg_offset): Likewise for param "insn".
24166 (thumb1_emit_multi_reg_push): Likewise for return type and local
24168 (thumb1_final_prescan_insn): Likewise for param "insn".
24169 (thumb_far_jump_used_p): Likewise for local "insn".
24170 (thumb1_expand_prologue): Likewise.
24171 (arm_expand_epilogue_apcs_frame): Likewise.
24172 (arm_expand_epilogue): Likewise for locals "insn", "tmp".
24173 (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
24174 from rtx to rtx_code_label *.
24175 (arm_split_atomic_op): Likewise for local "label".
24176 (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
24178 2014-08-25 David Malcolm <dmalcolm@redhat.com>
24180 * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
24181 first param from rtx to rtx_insn *.
24182 (arc_verify_short): Likewise.
24183 (arc_short_long): Likewise.
24184 (arc_need_delay): Likewise.
24186 * config/arc/arc.c (struct arc_ccfsm): Likewise for field
24188 (arc_ccfsm_advance): Likewise for param "insn" and locals
24189 "start_insn", "this_insn".
24190 (arc_ccfsm_record_condition): Likewise for local "seq_insn".
24191 (arc_ccfsm_post_advance): Likewise for param "insn".
24192 (arc_next_active_insn): Likewise for return type and param "insn".
24193 Convert NULL_RTX to NULL as appropriate. Add a checked cast.
24194 (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
24195 (output_short_suffix): Likewise for local "insn".
24196 (arc_final_prescan_insn): Likewise for param "insn". Remove
24197 now-redundant checked cast.
24198 (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
24199 "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
24200 rtx_insn *. Add a checked cast. Introduce local "lc_set_insn"
24201 for use where lc_set became an insn.
24202 (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
24204 (arc_get_insn_variants): Likewise for local "prev".
24205 (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
24207 (arc_predicate_delay_insns): Likewise for local "insn".
24208 (arc_pad_return): Likewise for local "prev". For now, add a
24209 checked cast when extracting the insn from "final_sequence".
24210 (arc_short_long): Likewise for param "insn".
24211 (arc_need_delay): Likewise for param "insn" and local "next".
24212 (arc_label_align): Likewise for locals "prev", "next".
24214 2014-08-25 David Malcolm <dmalcolm@redhat.com>
24216 * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
24217 "insn" from rtx to rtx_insn *.
24218 (alpha_gp_save_rtx): Likewise for local "seq".
24219 (alpha_instantiate_decls): Likewise for local "top".
24220 (get_some_local_dynamic_name): Likewise for local "insn".
24221 (alpha_does_function_need_gp): Likewise.
24222 (set_frame_related_p): Likewise for return type and for locals
24224 (emit_frame_store_1): Likewise for local "insn".
24225 (alpha_expand_prologue): Likewise for locals "insn", "seq".
24226 (alpha_end_function): Likewise for local "insn".
24227 (alpha_output_mi_thunk_osf): Likewise.
24228 (alphaev4_insn_pipe): Likewise for param "insn".
24229 (alphaev5_insn_pipe): Likewise.
24230 (alphaev4_next_group): Likewise for return type and param 1
24232 (alphaev5_next_group): Likewise.
24233 (alpha_align_insns_1): Likewise for return type and param 1 of
24234 callback param "next_group", and for locals "i", "next", "prev",
24235 "where", "where2", "insn".
24237 2014-08-25 Bernd Schmidt <bernds@codesourcery.com>
24239 * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
24240 rather than modifying the stmt.
24242 2014-08-25 Jan-Benedict Glaw <jbglaw@lug-owl.de>
24244 * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
24245 cgraph_state conversion.
24247 2014-08-25 David Malcolm <dmalcolm@redhat.com>
24249 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
24250 Strengthen local "insns" from rtx to rtx_insn *.
24251 (aarch64_set_frame_expr): Likewise for local "insn".
24252 (aarch64_save_or_restore_fprs): Likewise.
24253 (aarch64_save_or_restore_callee_save_registers): Likewise.
24254 (aarch64_expand_prologue): Likewise.
24255 (aarch64_expand_epilogue): Likewise.
24256 (aarch64_output_mi_thunk): Likewise.
24257 (aarch64_split_compare_and_swap): Strengthen locals "label1" and
24258 "label2" from rtx to rtx_code_label *.
24259 (aarch64_split_atomic_op): Likewise for local "label".
24261 2014-08-25 Martin Liska <mliska@suse.cz>
24263 * cgraph.h (symtab_node):
24264 (bool needed_p (void)): created from decide_is_symbol_needed
24265 (bool referred_to_p (void)): created from referred_to_p
24266 (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
24267 * cgraph.h (cgraph_node):
24268 (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
24269 (void expand (void)): created from expand_function
24270 (static void finalize_function (tree, bool)): created from cgraph_finalize_function
24271 (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
24272 (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
24273 (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
24274 * cgraph.h (varpool_node):
24275 (static void add (tree decl): created from varpool_add_new_variable
24276 * cgraph.h (cgraph_edge):
24277 void remove (void);
24278 (void remove_caller (void)): created from cgraph_edge_remove_caller
24279 (void remove_callee (void)): created from cgraph_edge_remove_callee
24280 (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
24281 created from cgraph_set_call_stmt
24282 (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
24283 (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
24284 (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
24285 gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
24286 (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
24287 created from cgraph_speculative_call_info
24288 (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
24289 int freq_scale, bool update_original)): created from cgraph_clone_edge
24290 (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
24291 (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
24292 (bool recursive_p (void)): created from cgraph_edge_recursive_p
24293 (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
24294 (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
24295 (static void rebuild_references (void)): created from cgraph_rebuild_references
24296 * cgraph.h (symbol_table):
24297 (create_reference): renamed from add_reference
24298 (maybe_create_reference): renamed from maybe_add_reference
24299 (void register_symbol (symtab_node *node)): new function
24300 (void clear_asm_symbols (void)): new function
24301 (void unregister (symtab_node *node)): new function
24302 (void release_symbol (cgraph_node *node, int uid)): new function
24303 (cgraph_node * allocate_cgraph_symbol (void)): new function
24304 (void initialize (void)): created from cgraph_init
24305 (symtab_node *first_symbol (void)):new function
24306 (asm_node *first_asm_symbol (void)):new function
24307 (symtab_node *first_defined_symbol (void)):new function
24308 (varpool_node *first_variable (void)):new function
24309 (varpool_node *next_variable (varpool_node *node)):new function
24310 (varpool_node *first_static_initializer (void)):new function
24311 (varpool_node *next_static_initializer (varpool_node *node)):new function
24312 (varpool_node *first_defined_variable (void)):new function
24313 (varpool_node *next_defined_variable (varpool_node *node)):new function
24314 (cgraph_node *first_defined_function (void)):new function
24315 (cgraph_node *next_defined_function (cgraph_node *node)):new function
24316 (cgraph_node *first_function (void)):new function
24317 (cgraph_node *next_function (cgraph_node *node)):new function
24318 (cgraph_node *first_function_with_gimple_body (void)):new function
24319 (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
24320 (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
24321 created from symtab_remove_unreachable_nodes
24322 (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
24323 (void process_new_functions (void)): created from cgraph_process_new_functions
24324 (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
24325 (bool output_variables (void)): created from varpool_node::output_variables
24326 (void output_asm_statements (void)): created from output_asm_statements
24327 (void finalize_compilation_unit (void)): created from finalize_compilation_unit
24328 (void compile (void)): created from compile
24329 (void output_weakrefs (void)): created from output_weakrefs
24330 (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
24331 (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
24332 gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
24333 (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
24334 (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
24335 created from cgraph_next_function_with_gimple_body
24336 (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
24337 created from cgraph_remove_edge_removal_hook
24338 (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
24339 created from cgraph_add_node_removal_hook
24340 (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
24341 created from cgraph_remove_node_removal_hook
24342 (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
24343 created from varpool_add_node_removal_hook
24344 (void remove_varpool_removal_hook (varpool_node_hook_list *)):
24345 created from varpool_remove_node_removal_hook
24346 (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
24347 created from cgraph_add_function_insertion_hook
24348 (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
24349 created from cgraph_remove_function_insertion_hook
24350 (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
24351 created from varpool_add_variable_insertion_hook
24352 (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
24353 created from varpool_remove_variable_insertion_hook
24354 (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
24355 created from cgraph_add_edge_duplication_hook
24356 (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
24357 created from cgraph_remove_edge_duplication_hook
24358 (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
24359 created from cgraph_add_node_duplication_hook
24360 (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
24361 created from cgraph_remove_node_duplication_hook
24362 (void call_edge_removal_hooks (cgraph_edge *e)):
24363 created from cgraph_call_edge_removal_hooks
24364 (void call_cgraph_insertion_hooks (cgraph_node *node)):
24365 created from call_function_insertion_hooks
24366 (void call_cgraph_removal_hooks (cgraph_node *node)):
24367 created from cgraph_call_node_removal_hooks
24368 (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
24369 created from cgraph_node::call_duplication_hooks
24370 (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
24371 created from cgraph_call_edge_duplication_hooks
24372 (void call_varpool_removal_hooks (varpool_node *node)):
24373 created from varpool_call_node_removal_hooks
24374 (void call_varpool_insertion_hooks (varpool_node *node)):
24375 created from varpool_call_variable_insertion_hooks
24376 (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
24377 created from insert_to_assembler_name_hash
24378 (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
24379 created from unlink_from_assembler_name_hash
24380 (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
24381 created from symtab_prevail_in_asm_name_hash
24382 (void symtab_initialize_asm_name_hash (void)):
24383 created from symtab_initialize_asm_name_hash
24384 (void change_decl_assembler_name (tree decl, tree name)):
24385 created from change_decl_assembler_name
24386 (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
24387 (static hashval_t decl_assembler_name_hash (const_tree asmname)):
24388 created from decl_assembler_name_hash
24389 (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
24390 created from decl_assembler_name_equal
24391 (static hashval_t hash_node_by_assembler_name (const void *p)):
24392 created from hash_node_by_assembler_name
24393 (static int eq_assembler_name (const void *p1, const void *p2)):
24394 created from eq_assembler_name
24396 2014-08-25 Marek Polacek <polacek@redhat.com>
24398 * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
24400 2014-08-25 Petr Murzin <petr.murzin@intel.com>
24402 * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
24403 (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
24404 SWI1248_AVX512BW mode iterator.
24406 2014-08-25 Kaz Kojima <kkojima@gcc.gnu.org>
24409 * config/sh/predicates.md (general_extend_operand): Disable
24410 TRUNCATE before reload completes.
24412 2014-08-24 Gerald Pfeifer <gerald@pfeifer.com>
24414 * doc/invoke.texi (Optimize Options): Fix markup in two cases.
24416 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org>
24419 * config/sh/sh.opt (musermode): Allow negative form.
24420 * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
24421 targets that don't support it.
24422 * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
24423 Document -mno-usermode option.
24425 2014-08-24 Kito Cheng <kito@0xlab.org>
24427 * system.h (CALLER_SAVE_PROFITABLE): Poison.
24428 * regs.h (CALLER_SAVE_PROFITABLE): Remove.
24429 * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
24430 * doc/tm.texi: Regenerate.
24432 2014-08-24 Kito Cheng <kito@0xlab.org>
24434 * ira.c: Fix typo in comment.
24436 2014-08-23 Edward Smith-Rowland <3dw4rd@verizon.net>
24438 * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
24439 Deprecate c++1y. Change language to reflect greater confidence in C++14.
24441 2014-08-23 John David Anglin <danglin@gcc.gnu.org>
24444 * config/pa/pa.c (pa_output_function_epilogue): Don't set
24445 last_address when the current function is a thunk.
24446 (pa_asm_output_mi_thunk): When we don't have named sections or they
24447 are not being used, check that thunk can reach the stub table with a
24450 2014-08-23 David Malcolm <dmalcolm@redhat.com>
24452 * web.c (union_match_dups): Strengthen param "insn" from rtx to
24454 (pass_web::execute): Likewise for local "insn".
24456 2014-08-23 David Malcolm <dmalcolm@redhat.com>
24458 * var-tracking.c (struct micro_operation_def): Strengthen field
24459 "insn" from rtx to rtx_insn *.
24460 (struct emit_note_data_def): Likewise.
24461 (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
24462 (vt_stack_adjustments): Likewise for local "insn".
24463 (adjust_insn): Likewise for param "insn".
24464 (val_store): Likewise.
24465 (val_resolve): Likewise.
24466 (struct count_use_info): Likewise for field "insn".
24467 (log_op_type): Likewise for param "insn".
24468 (reverse_op): Likewise.
24469 (prepare_call_arguments): Likewise.
24470 (add_with_sets): The initial param takes an insn, but we can't
24471 yet strengthen it from rtx to rtx_insn * since it's used as a
24472 cselib_record_sets_hook callback. For now rename initial param
24473 from "insn" to "uncast_insn", and introduce a local "insn" of
24474 the stronger rtx_insn * type, with a checked cast.
24475 (compute_bb_dataflow): Strengthen local "insn" from rtx to
24477 (emit_note_insn_var_location): Likewise.
24478 (emit_notes_for_changes): Likewise.
24479 (emit_notes_for_differences): Likewise.
24480 (next_non_note_insn_var_location): Likewise for return type and
24482 (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
24483 (vt_initialize): Likewise for local "insn".
24484 (delete_debug_insns): Likewise for locals "insn" and "next".
24486 2014-08-23 David Malcolm <dmalcolm@redhat.com>
24488 * varasm.c (mark_constants): Strengthen param "insn" from rtx to
24490 (mark_constant_pool): Likewise for local "insn".
24492 2014-08-23 David Malcolm <dmalcolm@redhat.com>
24494 * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
24496 (dead_debug_promote_uses): Likewise.
24497 (dead_debug_insert_temp): Likewise.
24499 2014-08-23 David Malcolm <dmalcolm@redhat.com>
24501 * store-motion.c (store_killed_in_insn): Strengthen param "insn"
24502 from const_rtx to const rtx_insn *.
24503 (store_killed_after): Likewise. Strengthen locals "last", "act"
24504 from rtx to rtx_insn *.
24505 (store_killed_before): Strengthen param "insn" from const_rtx to
24506 const rtx_insn *. Strengthen local "first" from rtx to rtx_insn *.
24507 (find_moveable_store): Strengthen param "insn" from rtx to
24509 (compute_store_table): Likewise for local "insn".
24510 (insert_insn_start_basic_block): Likewise for param "insn" and
24511 locals "prev", "before", "insn".
24512 (insert_store): For now, add a checked cast to rtx_insn * on the
24513 result of gen_move_insn.
24514 (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
24516 (replace_store_insn): Likewise. For now, add a checked cast to
24517 rtx_insn * on the result of gen_move_insn.
24519 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24521 * stmt.c (expand_case): Strengthen local "before_case" from rtx to
24523 (expand_sjlj_dispatch_table): Likewise.
24525 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24527 * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
24528 "insn" from rtx to rtx_insn *.
24530 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24532 * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
24533 "insn" from rtx to rtx_insn *.
24534 (dup_block_and_redirect): Likewise for param 3 "before".
24536 * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
24537 from rtx to rtx_insn *.
24538 (move_insn_for_shrink_wrap): Likewise.
24539 (prepare_shrink_wrap): Likewise for locals "insn", "curr".
24540 (dup_block_and_redirect): Likewise for param "before" and local
24542 (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
24544 (convert_to_simple_return): Likewise for local "start".
24546 * config/i386/i386.c (ix86_finalize_stack_realign_flags):
24547 Strengthen local "insn" from rtx to rtx_insn *, for use when
24548 invoking requires_stack_frame_p.
24550 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24552 * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
24554 (speculate_expr): Likewise for locals "orig_insn_rtx",
24556 (eq_transformed_insns): Likewise for locals "i1", "i2".
24557 (check_for_new_jump): Likewise for return type and local "end".
24558 (find_new_jump): Likewise for return type and local "jump".
24559 (sel_split_edge): Likewise for local "jump".
24560 (sel_create_recovery_block): Likewise.
24561 (sel_redirect_edge_and_branch_force): Likewise.
24562 (sel_redirect_edge_and_branch): Likewise.
24564 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24566 * sel-sched.c (substitute_reg_in_expr): Strengthen local
24567 "new_insn" from rtx to rtx_insn *.
24568 (create_insn_rtx_with_rhs): Likewise for return type and for local
24570 (create_insn_rtx_with_lhs): Likewise.
24571 (create_speculation_check): Likewise for local "insn_rtx".
24572 (implicit_clobber_conflict_p): Likewise for local "insn".
24573 (get_expr_cost): Likewise.
24574 (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
24575 (move_cond_jump): Likewise for locals "next", "prev", "link",
24576 "head", "from", "to".
24578 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24580 * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
24581 "next" from rtx to rtx_insn *.
24582 (find_conditional_protection): Likewise for local "next".
24583 (is_conditionally_protected): Likewise for local "insn1".
24584 (is_pfree): Likewise for locals "insn1", "insn2".
24586 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24588 * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
24589 from rtx to rtx_insn *.
24591 * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
24592 locals "insn1", "insn2" from rtx to rtx_insn *.
24593 (add_deps_for_risky_insns): Likewise for params "head", "tail" and
24594 locals "insn", "prev", "last_jump", "next_tail".
24595 (schedule_ebb): Likewise for params "head", "tail".
24596 (schedule_ebbs): Likewise for locals "tail", "head".
24598 * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
24599 to rtx_insn on "last_insn" in one of the invocations of
24602 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24604 * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
24605 "elem", "insn" from rtx to rtx_insn *.
24606 (change_spec_dep_to_hard): Likewise.
24607 (get_back_and_forw_lists): Likewise for local "con".
24608 (sd_add_dep): Likewise for locals "elem", "insn".
24609 (sd_resolve_dep): Likewise for locals "pro", "con".
24610 (sd_unresolve_dep): Likewise.
24611 (sd_delete_dep): Likewise.
24612 (chain_to_prev_insn): Likewise for local "pro".
24613 (find_inc): Likewise for locals "pro", "con".
24615 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24617 * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
24619 (reg_set_between_p): Strengthen local "insn" from const_rtx to
24621 (modified_between_p): Strengthen local "insn" from rtx to
24623 (remove_reg_equal_equiv_notes_for_regno): Likewise.
24624 (keep_with_call_p): Strengthen local "i2" from const_rtx to
24627 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24629 * resource.c (next_insn_no_annul): Strengthen local "next" from
24631 (mark_referenced_resources): Likewise for local "insn".
24633 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24635 * reload.h (struct insn_chain): Strengthen field "insn" from rtx
24637 (find_reloads): Likewise for param 1.
24638 (subst_reloads): Likewise for sole param.
24639 (find_equiv_reg): Likwise for param 2.
24640 (regno_clobbered_p): Likwise for param 2.
24641 (reload): Likewise for param 1.
24643 * caller-save.c (save_call_clobbered_regs): Strengthen local
24644 "insn" from rtx to rtx_insn *.
24645 (insert_one_insn): Likewise for local "insn".
24647 * reload.c (this_insn): Likewise for this global.
24648 (find_reloads): Likewise for param "insn".
24649 (find_reloads_toplev): Likewise.
24650 (find_reloads_address): Likewise.
24651 (subst_reg_equivs): Likewise.
24652 (update_auto_inc_notes): Likewise.
24653 (find_reloads_address_1): Likewise.
24654 (find_reloads_subreg_address): Likewise.
24655 (subst_reloads): Likewise.
24656 (find_equiv_reg): Likewise, also for local "p".
24657 (regno_clobbered_p): Likewise for param "insn".
24659 * reload1.c (reg_reloaded_insn): Likewise for the elements of this
24661 (spill_reg_store): Likewise for the elements of this array.
24662 (remove_init_insns): Likewise for local "equiv_insn".
24663 (will_delete_init_insn_p): Likewise for param "insn".
24664 (reload): Likewise for param ""first" and local "insn".
24665 (calculate_needs_all_insns): Strengthen local "insn" from rtx to
24667 (calculate_elim_costs_all_insns): Likewise.
24668 (delete_caller_save_insns): Likewise.
24669 (spill_failure): Likewise for param "insn".
24670 (delete_dead_insn): Likewise.
24671 (set_label_offsets): Likewise.
24672 (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
24674 (elimination_costs_in_insn): Likewise for param "insn".
24675 (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
24676 when referring to an insn.
24677 (set_initial_label_offsets): Likewise.
24678 (set_offsets_for_label): Strengthen param "insn" from rtx to
24680 (init_eliminable_invariants): Likewise for param "first" and local
24682 (fixup_eh_region_note): Likewise for param "insn".
24683 (reload_as_needed): Likewise for locals "prev", "insn",
24684 "old_next", "old_prev", "next".
24685 (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
24687 (reload_inheritance_insn): Strengthen elements of this array from
24689 (failed_reload): Likewise for param "insn".
24690 (choose_reload_regs): Likewise for local "insn". Replace use of
24691 NULL_RTX with NULL when referring to an insn.
24692 (input_reload_insns): Strengthen elements of this array from rtx
24694 (other_input_address_reload_insns): Likewise for this global.
24695 (other_input_reload_insns): Likewise for this global.
24696 (input_address_reload_insns): Likwise for the elements of this
24698 (inpaddr_address_reload_insns): Likwise for the elements of this
24700 (output_reload_insns): Likewise for the elements of this array.
24701 (output_address_reload_insns): Likewise for the elements of this
24703 (outaddr_address_reload_insns): Likewise for the elements of this
24705 (operand_reload_insns): Likewise for this global.
24706 (other_operand_reload_insns): Likewise for this global.
24707 (other_output_reload_insns): Likewise for the elements of this
24709 (new_spill_reg_store): Likewise for the elements of this
24711 (emit_input_reload_insns): Likewise for locals "insn", "temp".
24712 Strengthen local "where" from rtx * to rtx_insn **.
24713 (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
24714 from rtx to rtx_insn *.
24715 (do_input_reload): Likewise for local "insn".
24716 (do_output_reload): Likewise for local "insn".
24717 (emit_reload_insns): Likewise for locals "insn" and "store_insn".
24718 (emit_insn_if_valid_for_reload): Likewise for return type and local
24719 "last". Add checked cast to rtx_insn when returning "insn" since
24720 this has been through emit_insn.
24721 (gen_reload): Strengthen return type and locals "last", "insn", "set"
24722 from rtx to rtx_insn *. Add checked cast to rtx_insn when
24723 returning "insn" since it's been through
24724 emit_insn_if_valid_for_reload at this point.
24725 (delete_output_reload): Strengthen param "insn" and locals
24726 "output_reload_insn", "i2" from rtx to rtx_insn *.
24727 (delete_address_reloads): Likewise for params "dead_insn",
24728 "current_insn" and locals "prev", "next".
24729 (delete_address_reloads_1): Likewise for params "dead_insn",
24730 "current_insn" and locals "prev", "i2".
24731 (inc_for_reload): Likewise for locals "last", "add_insn".
24732 (add_auto_inc_notes): Strengthen param "insn" from rtx to
24735 * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
24736 param of this duplicate of the prototype from reload.h
24738 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24740 * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
24742 (regstat_bb_compute_calls_crossed): Likewise.
24744 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24746 * regrename.c (create_new_chain): Strengthen param "insn" from rtx
24748 (init_rename_info): Replace use of NULL_RTX with NULL when dealing
24750 (regrename_analyze): Strengthen local "insn" from rtx to
24752 (scan_rtx_reg): Likewise for param "insn".
24753 (scan_rtx_address): Likewise.
24754 (scan_rtx): Likewise.
24755 (restore_operands): Likewise.
24756 (record_out_operands): Likewise.
24757 (build_def_use): Likewise for local "insn". Replace use of
24758 NULL_RTX with NULL when dealing with an insn.
24760 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24762 * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
24763 * reginfo.c (reg_scan): Likewise, also for local "insn".
24764 (reg_scan_mark_refs): Likewise for param "insn".
24765 (init_subregs_of_mode): Likewise for local "insn".
24767 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24769 * regcprop.c (struct queued_debug_insn_change): Strengthen field
24770 "insn" from rtx to rtx_insn *.
24771 (replace_oldest_value_reg): Likewise for param "insn".
24772 (replace_oldest_value_addr): Likewise.
24773 (replace_oldest_value_mem): Likewise.
24774 (apply_debug_insn_changes): Likewise for local "last_insn".
24775 (copyprop_hardreg_forward_1): Likewise for local "insn".
24777 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24779 * reg-stack.c (next_flags_user): Strengthen return type and param
24780 "insn" from rtx to rtx_insn *.
24781 (straighten_stack): Likewise for param "insn".
24782 (check_asm_stack_operands): Likewise.
24783 (remove_regno_note): Likewise.
24784 (emit_pop_insn): Likewise for return type, param "insn", local
24786 (emit_swap_insn): Strengthen param "insn" and locals "i1", "tmp",
24787 "limit" from rtx to rtx_insn *.
24788 (swap_to_top): Likewise for param "insn".
24789 (move_for_stack_reg): Likewise.
24790 (move_nan_for_stack_reg): Likewise.
24791 (swap_rtx_condition): Likewise.
24792 (compare_for_stack_reg): Likewise.
24793 (subst_all_stack_regs_in_debug_insn): Likewise.
24794 (subst_stack_regs_pat): Likewise, and local "insn2".
24795 (subst_asm_stack_regs): Strengthen param "insn" from rtx to
24797 (subst_stack_regs): Likewise.
24798 (change_stack): Likewise.
24799 (convert_regs_1): Likewise for locals "insn", "next".
24801 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24803 * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
24805 (combine_set_extension): Likewise for param "curr_insn".
24806 (transform_ifelse): Likewise for param "def_insn".
24807 (get_defs): Likewise for param "def_insn". Strengthen param "dest"
24808 from vec<rtx> * to vec<rtx_insn *> *.
24809 (is_cond_copy_insn): Likewise for param "insn".
24810 (struct ext_state): Strengthen the four vec fields from vec<rtx>
24811 to vec<rtx_insn *>.
24812 (make_defs_and_copies_lists): Strengthen param "extend_insn" and
24813 local "def_insn" from rtx to rtx_insn *.
24814 (get_sub_rtx): Likewise for param "def_insn".
24815 (merge_def_and_ext): Likewise.
24816 (combine_reaching_defs): Likewise.
24817 (add_removable_extension): Likewise for param "insn".
24818 (find_removable_extensions): Likewise for local "insn".
24819 (find_and_remove_re): Likewise for locals "curr_insn" and
24820 "def_insn". Strengthen locals "reinsn_del_list" and
24821 "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
24823 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24825 * recog.c (split_insn): Strengthen param "insn" and locals
24826 "first", "last" from rtx to rtx_insn *.
24827 (split_all_insns): Likewise for locals "insn", "next".
24828 (split_all_insns_noflow): Likewise.
24830 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24832 * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
24834 (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
24835 (debug_rtx_find): Likewise for param 1 "x".
24837 * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
24838 const_rtx to const rtx_insn *. Likewise for local "insn".
24839 (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
24840 (debug_rtx_find): Likewise for param 1 "x".
24841 (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
24842 from const_rtx to const rtx_insn * within the appropriate cases of
24843 the switch statement.
24845 * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
24846 Strengthen local "insns" from rtx to rtx_insn * since this is
24847 passed to a call to debug_rtx_list.
24849 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24851 * predict.h (predict_insn_def): Strengthen param "insn" from rtx
24854 * function.c (stack_protect_epilogue): Add checked cast to
24855 rtx_insn for now when invoking predict_insn_def.
24857 * predict.c (predict_insn): Strengthen param "insn" from rtx to
24859 (predict_insn_def): Likewise.
24860 (rtl_predict_edge): Likewise for local "last_insn".
24861 (can_predict_insn_p): Strengthen param "insn" from const_rtx to
24863 (combine_predictions_for_insn): Strengthen param "insn" from rtx
24865 (bb_estimate_probability_locally): Likewise for local "last_insn".
24866 (expensive_function_p): Likewise for local "insn".
24868 * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
24869 local "jmp", since this is used when invoking predict_insn_def.
24871 2014-08-22 Marek Polacek <polacek@redhat.com>
24874 * doc/invoke.texi: Update -Wlogical-not-parentheses description.
24876 2014-08-22 Marek Polacek <polacek@redhat.com>
24879 * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
24880 a comparison in parens.
24881 * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
24884 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24886 * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
24889 * cprop.c (fis_get_condition): Likewise.
24891 * postreload.c (reload_cse_regs): Likewise for param "first".
24892 (reload_cse_simplify): Likewise for param "insn".
24893 (reload_cse_regs_1): Likewise for local "insn".
24894 (reload_cse_simplify_set): Likewise for param "insn".
24895 (reload_cse_simplify_operands): Likewise.
24896 (struct reg_use): Likewise for field "insn".
24897 (reload_combine_purge_insn_uses): Likewise for param "insn".
24898 (fixup_debug_insns): Likewise for params "from", "to" and local
24900 (try_replace_in_use): Likewise for local "use_insn".
24901 (reload_combine_recognize_const_pattern): Likewise for param
24902 "insn" and locals "add_moved_after_insn", "use_insn".
24903 (reload_combine_recognize_pattern): Likewise for param "insn" and
24905 (reload_combine): Likewise for locals "insn", "prev".
24906 (reload_combine_note_use): Likewise for param "insn".
24907 (move2add_use_add2_insn): Likewise.
24908 (move2add_use_add3_insn): Likewise.
24909 (reload_cse_move2add): Likewise, also for local "next".
24910 (move2add_note_store): Likewise for local "insn".
24912 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24914 * postreload-gcse.c (struct occr): Strengthen field "insn" from
24916 (struct unoccr): Likewise.
24917 (struct modifies_mem): Likewise.
24918 (alloc_mem): Likewise for local "insn".
24919 (insert_expr_in_table): Likewise for param "insn".
24920 (dump_expr_hash_table_entry): Likewise for local "insn".
24921 (oprs_unchanged_p): Likewise for param "insn".
24922 (load_killed_in_block_p): Likewise for local "setter".
24923 (record_last_reg_set_info): Likewise for param "insn".
24924 (record_last_reg_set_info_regno): Likewise.
24925 (record_last_mem_set_info): Likewise.
24926 (record_last_set_info): Likewise for local "last_set_insn".
24927 (record_opr_changes): Likewise for param "insn".
24928 (hash_scan_set): Likewise.
24929 (compute_hash_table): Likewise for local "insn".
24930 (get_avail_load_store_reg): Likewise for param "insn".
24931 (eliminate_partially_redundant_load): Likewise, also for locals
24932 "avail_insn", "next_pred_bb_end". Replace use of NULL_RTX with
24934 (eliminate_partially_redundant_loads): Likewise for local "insn".
24936 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24938 * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
24940 (expand_binop): Likewise for locals "entry_last", "last", "insns"
24941 (expand_twoval_unop): Likewise for locals entry_last", "last".
24942 (expand_twoval_binop): Likewise.
24943 (expand_twoval_binop_libfunc): Likewise for local "insns".
24944 (widen_leading): Likewise for local "last".
24945 (expand_doubleword_clz): Likewise for local "seq". Strengthen
24946 locals "hi0_label", "after_label" from rtx to rtx_code_label *.
24947 (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
24948 (expand_parity): Likewise for locals "last" and "seq".
24949 (expand_ffs): Likewise for local "seq". Strengthen local
24950 "nonzero_label" from rtx to rtx_code_label *.
24951 (expand_absneg_bit): Strengthen local "insns" from rtx to
24953 (expand_unop_direct): Likewise for local "last".
24954 (expand_unop): Likewise for locals "last", "insns".
24955 (expand_abs_nojump): Likewise for local "last".
24956 (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
24957 (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
24959 (expand_copysign_absneg): Strengthen local "label" from rtx to
24961 (expand_copysign_bit): Strengthen local "insns" from rtx to
24963 (struct no_conflict_data): Likewise for fields "first", "insn".
24964 (emit_libcall_block_1): Likewise for param "insns" and locals
24965 "next", "last", "insn".
24966 (emit_libcall_block): For now, add a checked cast to rtx_insn *
24967 on "insns" when invoking emit_libcall_block_1. Ultimately we
24968 want to strengthen insns itself.
24969 (prepare_cmp_insn): Strengthen local "last" from rtx to
24971 (emit_cmp_and_jump_insn_1): Likewise for local "insn".
24972 (prepare_float_lib_cmp): Likewise for local "insns".
24973 (emit_conditional_move): Likewise for local "last".
24974 (emit_conditional_add): Likewise.
24975 (have_sub2_insn): Likewise for local "seq".
24976 (expand_float): Likewise for local "insns". Strengthen locals
24977 "label", "neglabel" from rtx to rtx_code_label *.
24978 (expand_fix): Likewise for locals "last", "insn", "insns" (to
24979 rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
24980 (expand_fixed_convert): Likewise for local "insns" (to
24982 (expand_sfix_optab): Likewise for local "last".
24983 (expand_compare_and_swap_loop): Strengthen local "label" from rtx
24984 to rtx_code_label *.
24985 (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
24986 from rtx to rtx_insn *.
24987 (expand_atomic_fetch_op): Likewise for local "insn".
24988 (maybe_legitimize_operand_same_code): Likewise for local "last".
24989 (maybe_legitimize_operands): Likewise.
24991 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24993 * modulo-sched.c (struct ps_reg_move_info): Strengthen field
24994 "insn" from rtx to rtx_insn *.
24995 (ps_rtl_insn): Likewise for return type.
24996 (doloop_register_get): Likewise for params "head", "tail" and
24997 locals "insn", "first_insn_not_to_check".
24998 (schedule_reg_move): Likewise for local "this_insn".
24999 (schedule_reg_moves): Add a checked cast to rtx_insn * to result
25000 of gen_move_insn for now.
25001 (reset_sched_times): Strengthen local "insn" from rtx to
25003 (permute_partial_schedule): Likewise.
25004 (duplicate_insns_of_cycles): Likewise for local "u_insn".
25005 (dump_insn_location): Likewise for param "insn".
25006 (loop_canon_p): Likewise for local "insn".
25007 (sms_schedule): Likewise.
25008 (print_partial_schedule): Likewise.
25009 (ps_has_conflicts): Likewise.
25011 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25013 * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
25014 "tailp" from rtx * to rtx_insn **.
25016 * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
25017 from rtx to rtx_insn *.
25018 * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
25019 "tailp" from rtx * to rtx_insn **. Strengthen locals "beg_head",
25020 "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
25022 * modulo-sched.c (const_iteration_count): Strengthen return type
25023 and locals "insn", "head", "tail" from rtx to rtx_insn *. Replace
25024 use of NULL_RTX with NULL when working with insns.
25025 (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
25027 (sms_schedule): Likewise.
25028 * sched-rgn.c (init_ready_list): Likewise, also for locals
25029 "src_head" and "src_next_tail".
25030 (compute_block_dependences): Likewise.
25031 (free_block_dependencies): Likewise.
25032 (debug_rgn_dependencies): Likewise.
25033 (free_rgn_deps): Likewise.
25034 (compute_priorities): Likewise.
25035 (schedule_region): Likewise.
25036 * sel-sched.c (find_ebb_boundaries): Likewise.
25038 * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
25039 "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
25041 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25043 * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
25044 from rtx to rtx_insn *.
25045 (new_seginfo): Likewise for param "insn".
25046 (create_pre_exit): Likewise for locals "last_insn",
25047 "before_return_copy", "return_copy".
25048 (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
25051 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25053 * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
25054 from rtx to rtx_insn *.
25055 (lra_push_insn): Likewise for 1st param.
25056 (lra_push_insn_and_update_insn_regno_info): Likewise.
25057 (lra_pop_insn): Likewise for return type.
25058 (lra_invalidate_insn_data): Likewise for 1st param.
25059 (lra_set_insn_deleted): Likewise.
25060 (lra_delete_dead_insn): Likewise.
25061 (lra_process_new_insns): Likewise for first 3 params.
25062 (lra_set_insn_recog_data): Likewise for 1st param.
25063 (lra_update_insn_recog_data): Likewise.
25064 (lra_set_used_insn_alternative): Likewise.
25065 (lra_invalidate_insn_regno_info): Likewise.
25066 (lra_update_insn_regno_info): Likewise.
25067 (lra_former_scratch_operand_p): Likewise.
25068 (lra_eliminate_regs_1): Likewise.
25069 (lra_get_insn_recog_data): Likewise.
25071 * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
25074 * lra-coalesce.c (move_freq_compare_func): Likewise for locals
25076 (substitute_within_insn): New.
25077 (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
25078 rtx_insn *. Strengthen sorted_moves from rtx * to rxt_insn **.
25079 Replace call to "substitute" with call to substitute_within_insn.
25081 * lra-constraints.c (curr_insn): Strengthen from rtx to
25083 (get_equiv_with_elimination): Likewise for param "insn".
25084 (match_reload): Strengthen params "before" and "after" from rtx *
25086 (emit_spill_move): Likewise for return type. Add a checked cast
25087 to rtx_insn * on result of gen_move_insn for now.
25088 (check_and_process_move): Likewise for local "before". Replace
25089 NULL_RTX with NULL when referring to insns.
25090 (process_addr_reg): Strengthen params "before" and "after" from
25091 rtx * to rtx_insn **.
25092 (insert_move_for_subreg): Likewise.
25093 (simplify_operand_subreg): Strengthen locals "before" and "after"
25094 from rtx to rtx_insn *.
25095 (process_address_1): Strengthen params "before" and "after" from
25096 rtx * to rtx_insn **. Strengthen locals "insns", "last_insn" from
25098 (process_address): Strengthen params "before" and "after" from
25099 rtx * to rtx_insn **.
25100 (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
25101 (curr_insn_transform): Strengthen locals "before" and "after"
25102 from rtx to rtx_insn *. Replace NULL_RTX with NULL when referring
25104 (loc_equivalence_callback): Update cast of "data", changing
25105 resulting type from rtx to rtx_insn *.
25106 (substitute_pseudo_within_insn): New.
25107 (inherit_reload_reg): Strengthen param "insn" from rtx to
25108 rtx_insn *; likewise for local "new_insns". Replace NULL_RTX with
25109 NULL when referring to insns. Add a checked cast to rtx_insn *
25110 when using usage_insn to invoke lra_update_insn_regno_info.
25111 (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
25112 likewise for locals "restore", "save". Add checked casts to
25113 rtx_insn * when using usage_insn to invoke
25114 lra_update_insn_regno_info and lra_process_new_insns. Replace
25115 NULL_RTX with NULL when referring to insns.
25116 (split_if_necessary): Strengthen param "insn" from rtx to
25118 (update_ebb_live_info): Likewise for params "head", "tail" and local
25120 (get_last_insertion_point): Likewise for return type and local "insn".
25121 (get_live_on_other_edges): Likewise for local "last".
25122 (inherit_in_ebb): Likewise for params "head", "tail" and locals
25123 "prev_insn", "next_insn", "restore".
25124 (remove_inheritance_pseudos): Likewise for local "prev_insn".
25125 (undo_optional_reloads): Likewise for local "insn".
25127 * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
25129 (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
25131 (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
25133 (spill_pseudos): Likewise for local "insn".
25134 (init_elimination): Likewise.
25135 (process_insn_for_elimination): Likewise for param "insn".
25137 * lra-lives.c (curr_insn): Likewise.;
25139 * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
25140 (remove_pseudos): Likewise for param "insn".
25141 (spill_pseudos): Likewise for local "insn".
25142 (lra_final_code_change): Likewise for locals "insn", "curr".
25144 * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
25145 (lra_set_insn_deleted): Likewise.
25146 (lra_delete_dead_insn): Likewise, and for local "prev".
25147 (new_insn_reg): Likewise for param "insn".
25148 (lra_set_insn_recog_data): Likewise.
25149 (lra_update_insn_recog_data): Likewise.
25150 (lra_set_used_insn_alternative): Likewise.
25151 (get_insn_freq): Likewise.
25152 (invalidate_insn_data_regno_info): Likewise.
25153 (lra_invalidate_insn_regno_info): Likewise.
25154 (lra_update_insn_regno_info): Likewise.
25155 (lra_constraint_insn_stack): Strengthen from vec<rtx> to
25157 (lra_push_insn_1): Strengthen param "insn" from rtx to
25159 (lra_push_insn): Likewise.
25160 (lra_push_insn_and_update_insn_regno_info): Likewise.
25161 (lra_pop_insn): Likewise for return type and local "insn".
25162 (push_insns): Likewise for params "from", "to", and local "insn".
25163 (setup_sp_offset): Likewise for params "from", "last" and locals
25165 (lra_process_new_insns): Likewise for params "insn", "before",
25166 "after" and local "last".
25167 (struct sloc): Likewise for field "insn".
25168 (lra_former_scratch_operand_p): Likewise for param "insn".
25169 (remove_scratches): Likewise for locals "insn", "last".
25170 (check_rtl): Likewise for local "insn".
25171 (add_auto_inc_notes): Likewise for param "insn".
25172 (update_inc_notes): Likewise for local "insn".
25173 (lra): Replace NULL_RTX with NULL when referring to insn.
25175 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25177 * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
25179 (resolve_reg_notes): Likewise.
25180 (resolve_simple_move): Likewise for return type, param "insn", and
25181 locals "insns", "minsn".
25182 (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
25183 (resolve_use): Likewise.
25184 (resolve_debug): Likewise.
25185 (find_decomposable_shift_zext): Likewise.
25186 (resolve_shift_zext): Likewise for return type, param "insn", and
25187 locals "insns", "in". Eliminate use of NULL_RTX in favor of NULL.
25188 (decompose_multiword_subregs): Likewise for local "insn",
25189 "orig_insn", "decomposed_shift", "end".
25191 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25193 * basic-block.h (basic_block split_edge_and_insert): Strengthen
25194 param "insns" from rtx to rtx_insn *.
25196 * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
25198 (struct iv_to_split): Likewise.
25199 (loop_exit_at_end_p): Likewise for local "insn".
25200 (split_edge_and_insert): Likewise for param "insns".
25201 (compare_and_jump_seq): Likewise for return type, param "cinsn",
25202 and locals "seq", "jump".
25203 (unroll_loop_runtime_iterations): Likewise for locals "init_code",
25204 "branch_code"; update invocations of compare_and_jump_seq to
25205 eliminate NULL_RTX in favor of NULL.
25206 (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
25208 (reset_debug_uses_in_loop): Likewise.
25209 (analyze_insn_to_expand_var): Likewise for param "insn".
25210 (analyze_iv_to_split_insn): Likewise.
25211 (analyze_insns_in_loop): Likewise for local "insn".
25212 (insert_base_initialization): Likewise for param
25213 "insn" and local "seq".
25214 (split_iv): Likewise for param "insn" and local "seq".
25215 (expand_var_during_unrolling): Likewise for param "insn".
25216 (insert_var_expansion_initialization): Likewise for local "seq".
25217 (combine_var_copies_in_loop_exit): Likewise.
25218 (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
25220 (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
25221 (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
25224 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25226 * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
25228 (iv_analyze_result): Likewise.
25229 (iv_analyze_expr): Likewise.
25232 * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
25233 local "def_insn" from rtx to rtx_insn *.
25234 (get_biv_step_1): Likewise for local "insn".
25235 (iv_analyze_expr): Likewise for param "insn".
25236 (iv_analyze_def): Likewise for local "insn".
25237 (iv_analyze_op): Likewise for param "insn".
25238 (iv_analyze): Likewise.
25239 (iv_analyze_result): Likewise.
25241 (suitable_set_for_replacement): Likewise.
25242 (simplify_using_initial_values): Likewise for local "insn".
25243 (iv_number_of_iterations): Likewise for param "insn".
25244 (check_simple_exit): Add checked cast to rtx_insn when invoking
25245 iv_number_of_iterations for now (until get_condition is
25248 * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
25249 "insn" from rtx to rtx_insn *.
25250 (analyze_insns_in_loop): Likewise for local "insn".
25252 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25254 * loop-invariant.c (struct use): Strengthen field "insn" from rtx
25256 (struct invariant): Likewise.
25257 (hash_invariant_expr_1): Likewise for param "insn".
25258 (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
25259 (find_exits): Likewise for local "insn".
25260 (create_new_invariant): Likewise for param "insn".
25261 (check_dependencies): Likewise.
25262 (find_invariant_insn): Likewise.
25263 (record_uses): Likewise.
25264 (find_invariants_insn): Likewise.
25265 (find_invariants_bb): Likewise for local "insn".
25266 (get_pressure_class_and_nregs): Likewise for param "insn".
25267 (calculate_loop_reg_pressure): Likewise for local "insn".
25269 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25271 * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
25273 (add_test): Likewise for locals "seq", "jump".
25274 (doloop_modify): Likewise for locals "sequence", "jump_insn".
25276 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25278 * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
25280 (rebuild_jump_labels_chain): Likewise for param "chain".
25282 * cfgexpand.c (pass_expand::execute): Add checked cast to
25283 rtx_insn * when calling rebuild_jump_labels_chain in region where
25284 we know e->insns.r is non-NULL.
25286 * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
25288 (rebuild_jump_labels): Likewise.
25289 (rebuild_jump_labels_chain): Likewise for param "chain".
25290 (cleanup_barriers): Likewise for locals "insn", "next", "prev".
25291 (init_label_info): Likewise for param "f".
25292 (maybe_propagate_label_ref): Likewise for params "jump_insn",
25293 "prev_nonjump_insn".
25294 (mark_all_labels): Likewise for param "f" and locals "insn",
25295 "prev_nonjump_insn".
25297 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25299 * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
25300 from rtx to rtx_insn *insn.
25301 (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
25302 (ira_add_allocno_copy): Likewise.
25303 * ira-build.c (find_allocno_copy): Strengthen param "insn" from
25305 (ira_create_copy): Likewise.
25306 (ira_add_allocno_copy): Likewise.
25307 (create_bb_allocnos): Likewise for local "insn".
25308 * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
25309 (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
25310 process_regs_for_copy for rtx_insn * param.
25311 (add_insn_allocno_copies): Strengthen param "insn" from rtx to
25312 rtx_insn *insn. Update NULL_RTX to NULL in invocation of
25313 process_regs_for_copy for rtx_insn * param.
25314 (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
25315 * ira-costs.c (record_reg_classes): Likewise for param "insn".
25316 (record_operand_costs): Likewise.
25317 (scan_one_insn): Likewise for return type, and for param "insn".
25318 (process_bb_for_costs): Likewise for local "insn".
25319 (process_bb_node_for_hard_reg_moves): Likewise.
25320 * ira-emit.c (struct move): Likewise for field "insn".
25321 (create_move): Eliminate use of NULL_RTX when dealing with an
25323 (emit_move_list): Strengthen return type and locals "result",
25324 "insn" from rtx to rtx_insn *insn.
25325 (emit_moves): Likewise for locals "insns", "tmp".
25326 (ira_emit): Likewise for local "insn".
25327 * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
25329 (find_call_crossed_cheap_reg): Likewise.
25330 (process_bb_node_lives): Likewise for local "insn".
25331 * ira.c (decrease_live_ranges_number): Likewise.
25332 (compute_regs_asm_clobbered): Likewise.
25333 (build_insn_chain): Likewise.
25334 (find_moveable_pseudos): Likewise, also locals "def_insn",
25335 "use_insn", "x". Also strengthen local "closest_uses" from rtx *
25336 to rtx_insn **. Add a checked cast when assigning from
25337 "closest_use" into closest_uses array in a region where we know
25338 it's a non-NULL insn.
25339 (interesting_dest_for_shprep): Strengthen param "insn" from rtx
25341 (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
25342 "last_interesting_insn", "uin".
25343 (move_unallocated_pseudos): Likewise for locals "def_insn",
25344 "move_insn", "newinsn".
25346 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25348 * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
25349 Strengthen locals "done_label", "do_error" from rtx to
25351 (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
25352 from rtx to rtx_insn *. Strengthen local "sub_check from rtx to
25354 (ubsan_expand_si_overflow_neg_check): Likewise for locals
25355 "done_label", "do_error" to rtx_code_label * and local "last" to
25357 (ubsan_expand_si_overflow_mul_check): Likewise for locals
25358 "done_label", "do_error", "large_op0", "small_op0_large_op1",
25359 "one_small_one_large", "both_ops_large", "after_hipart_neg",
25360 "after_lopart_neg", "do_overflow", "hipart_different" to
25361 rtx_code_label * and local "last" to rtx_insn *.
25363 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25365 * init-regs.c (initialize_uninitialized_regs): Strengthen locals
25366 "insn" and "move_insn" from rtx to rtx_insn *.
25368 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25370 * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
25372 (cheap_bb_rtx_cost_p): Likewise.
25373 (first_active_insn): Likewise for return type and local "insn".
25374 (last_active_insn): Likewise for return type and locals "insn",
25376 (struct noce_if_info): Likewise for fields "jump", "insn_a",
25378 (end_ifcvt_sequence): Likewise for return type and locals "insn",
25380 (noce_try_move): Likewise for local "seq".
25381 (noce_try_store_flag): Likewise.
25382 (noce_try_store_flag_constants): Likewise.
25383 (noce_try_addcc): Likewise.
25384 (noce_try_store_flag_mask): Likewise.
25385 (noce_try_cmove): Likewise.
25386 (noce_try_minmax): Likewise.
25387 (noce_try_abs): Likewise.
25388 (noce_try_sign_mask): Likewise.
25389 (noce_try_bitop): Likewise.
25390 (noce_can_store_speculate_p): Likewise for local "insn".
25391 (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
25393 (check_cond_move_block): Likewise for local "insn".
25394 (cond_move_convert_if_block): Likewise.
25395 (cond_move_process_if_block): Likewise for locals "seq",
25397 (noce_find_if_block): Likewise for local "jump".
25398 (merge_if_block): Likewise for local "last".
25399 (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
25400 (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
25401 (block_has_only_trap): Likewise for return type and local "trap".
25402 (find_if_case_1): Likewise for local "jump".
25403 (dead_or_predicable): Likewise for locals "head", "end", "jump",
25406 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25408 * hw-doloop.h (struct hwloop_info_d): Strengthen fields
25409 "last_insn", "loop_end" from rtx to rtx_insn *.
25411 * hw-doloop.c (scan_loop): Likewise for local "insn".
25412 (discover_loop): Likewise for param "tail_insn".
25413 (discover_loops): Likewise for local "tail".
25415 * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
25416 cast to rtx_insn * when assigning from an rtx local to a
25417 hwloop_info's "last_insn" field.
25419 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25421 * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
25422 (add_delay_dependencies): Strengthen local "pro" from rtx to
25424 (recompute_todo_spec): Likewise.
25425 (dep_cost_1): Likewise for locals "insn", "used".
25426 (schedule_insn): Likewise for local "dbg".
25427 (schedule_insn): Likewise for locals "pro", "next".
25428 (unschedule_insns_until): Likewise for local "con".
25429 (restore_pattern): Likewise for local "next".
25430 (estimate_insn_tick): Likewise for local "pro".
25431 (resolve_dependencies): Likewise for local "next".
25432 (fix_inter_tick): Likewise.
25433 (fix_tick_ready): Likewise for local "pro".
25434 (add_to_speculative_block): Likewise for locals "check", "twin",
25436 (sched_extend_bb): Likewise for locals "end", "insn".
25437 (init_before_recovery): Likewise for local "x".
25438 (sched_create_recovery_block): Likewise for local "barrier".
25439 (create_check_block_twin): Likewise for local "pro".
25440 (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
25442 (unlink_bb_notes): Update for change to type of bb_header.
25443 Strengthen locals "prev", "label", "note", "next" from rtx to
25445 (clear_priorities): Likewise for local "pro".
25447 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25449 * gcse.c (struct occr): Strengthen field "insn" from rtx to
25451 (test_insn): Likewise for this global.
25452 (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
25454 (oprs_anticipatable_p): Likewise.
25455 (oprs_available_p): Likewise.
25456 (insert_expr_in_table): Strengthen param "insn" from rtx to
25458 (hash_scan_set): Likewise.
25459 (hash_scan_clobber): Likewise.
25460 (hash_scan_call): Likewise.
25461 (hash_scan_insn): Likewise.
25462 (compute_hash_table_work): Likewise for local "insn".
25463 (process_insert_insn): Likewise for return type and local "pat".
25464 (insert_insn_end_basic_block): Likewise for locals "new_insn",
25465 "pat", "pat_end", "maybe_cc0_setter".
25466 (pre_edge_insert): Likewise for local "insn".
25467 (pre_insert_copy_insn): Likewise for param "insn".
25468 (pre_insert_copies): Likewise for local "insn".
25469 (struct set_data): Likewise for field "insn".
25470 (single_set_gcse): Likewise for param "insn".
25471 (gcse_emit_move_after): Likewise.
25472 (pre_delete): Likewise for local "insn".
25473 (update_bb_reg_pressure): Likewise for param "from" and local
25475 (should_hoist_expr_to_dom): Likewise for param "from".
25476 (hoist_code): Likewise for local "insn".
25477 (get_pressure_class_and_nregs): Likewise for param "insn".
25478 (calculate_bb_reg_pressure): Likewise for local "insn".
25479 (compute_ld_motion_mems): Likewise.
25481 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25483 * genpeep.c (main): Rename param back from "uncast_ins1" to
25484 "ins1", strengthening from rtx to rtx_insn *. Drop now-redundant
25487 * output.h (peephole): Strengthen param from rtx to rtx_insn *.
25489 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com>
25492 * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
25493 documentation to state it is only for VSX operations.
25495 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
25496 constraint only active if VSX.
25498 * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
25499 wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
25500 (lfiwzx): Likewise.
25502 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25504 * fwprop.c (single_def_use_dom_walker::before_dom_children):
25505 Strengthen local "insn" from rtx to rtx_insn *.
25506 (use_killed_between): Likewise for param "target_insn".
25507 (all_uses_available_at): Likewise for param "target_insn" and
25509 (update_df_init): Likewise for params "def_insn", "insn".
25510 (update_df): Likewise for param "insn".
25511 (try_fwprop_subst): Likewise for param "def_insn" and local
25513 (free_load_extend): Likewise for param "insn".
25514 (forward_propagate_subreg): Likewise for param "def_insn" and
25516 (forward_propagate_asm): Likewise for param "def_insn" and local
25518 (forward_propagate_and_simplify): Likewise for param "def_insn"
25519 and local "use_insn".
25520 (forward_propagate_into): Likewise for locals "def_insn" and
25523 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25525 * function.c (emit_initial_value_sets): Strengthen local "seq"
25526 from rtx to rtx_insn *.
25527 (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
25529 (instantiate_virtual_regs): Likewise for local "insn".
25530 (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
25531 (reorder_blocks_1): Likewise for param "insns" and local "insn".
25532 (expand_function_end): Likewise for locals "insn" and "seq".
25533 (epilogue_done): Likewise for local "insn".
25534 (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
25536 (reposition_prologue_and_epilogue_notes): Likewise for locals
25537 "insn", "last", "note", "first".
25538 (match_asm_constraints_1): Likewise for param "insn" and local "insns".
25539 (pass_match_asm_constraints::execute): Likewise for local "insn".
25541 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25543 * output.h (final_scan_insn): Strengthen return type from rtx to
25545 (final_forward_branch_p): Likewise for param.
25546 (current_output_insn): Likewise for this global.
25548 * final.c (rtx debug_insn): Likewise for this variable.
25549 (current_output_insn): Likewise.
25550 (get_attr_length_1): Rename param "insn" to "uncast_insn",
25551 adding "insn" back in as an rtx_insn * with a checked cast, so
25552 that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
25554 (compute_alignments): Strengthen local "label" from rtx to
25556 (shorten_branches): Rename param from "first" to "uncast_first",
25557 introducing a new local rtx_insn * "first" using a checked cast to
25558 effectively strengthen "first" from rtx to rtx_insn * without
25559 affecting the type signature. Strengthen locals "insn", "seq",
25560 "next", "label" from rtx to rtx_insn *.
25561 (change_scope): Strengthen param "orig_insn" and local "insn" from
25563 (final_start_function): Rename param from "first" to "uncast_first",
25564 introducing a new local rtx_insn * "first" using a checked cast to
25565 effectively strengthen "first" from rtx to rtx_insn * without
25566 affecting the type signature. Strengthen local "insn" from rtx to
25568 (dump_basic_block_info): Strengthen param "insn" from rtx to
25570 (final): Rename param from "first" to "uncast_first",
25571 introducing a new local rtx_insn * "first" using a checked cast to
25572 effectively strengthen "first" from rtx to rtx_insn * without
25573 affecting the type signature. Strengthen locals "insn", "next"
25574 from rtx to rtx_insn *.
25575 (output_alternate_entry_point): Strengthen param "insn" from rtx to
25577 (call_from_call_insn): Strengthen param "insn" from rtx to
25579 (final_scan_insn): Rename param from "insn" to "uncast_insn",
25580 introducing a new local rtx_insn * "insn" using a checked cast to
25581 effectively strengthen "insn" from rtx to rtx_insn * without
25582 affecting the type signature. Strengthen return type and locals
25583 "next", "note", "prev", "new_rtx" from rtx to rtx_insn *. Remove
25584 now-redundant checked cast to rtx_insn * from both invocations of
25585 debug_hooks->var_location. Convert CALL_P into a dyn_cast,
25586 introducing a local "call_insn" for use when invoking
25587 call_from_call_insn.
25588 (notice_source_line): Strengthen param "insn" from rtx to
25590 (leaf_function_p): Likewise for local "insn".
25591 (final_forward_branch_p): Likewise.
25592 (leaf_renumber_regs): Likewise for param "first".
25593 (rest_of_clean_state): Likewise for locals "insn" and "next".
25594 (self_recursive_call_p): Likewise for param "insn".
25595 (collect_fn_hard_reg_usage): Likewise for local "insn".
25596 (get_call_fndecl): Likewise for param "insn".
25597 (get_call_cgraph_rtl_info): Likewise.
25598 (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
25599 introducing a new local rtx_insn * "insn" using a checked cast to
25600 effectively strengthen "insn" from rtx to rtx_insn * without
25601 affecting the type signature.
25603 * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
25604 cast when assigning from param "insn" to current_output_insn.
25605 (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
25606 so that we can assign it back to current_output_insn.
25608 2014-08-20 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
25610 * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
25611 atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
25612 atmxt540s and atmxt540sreva devices.
25613 * config/avr/avr-tables.opt: Regenerate.
25614 * config/avr/t-multilib: Regenerate.
25615 * doc/avr-mmcu.texi: Regenerate.
25617 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25619 * expr.c (convert_move): Strengthen local "insns" from rtx to
25621 (emit_block_move_via_loop): Strengthen locals "cmp_label" and
25622 "top_label" from rtx to rtx_code_label *.
25623 (move_block_to_reg): Strengthen local "insn", "last" from rtx to
25625 (emit_single_push_insn): Likewise for locals "prev", "last".
25626 (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
25627 to rtx_code_label *.
25628 (store_constructor): Likewise for locals "loop_start", "loop_end".
25629 (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
25631 (expand_expr_real_2): Likewise.
25632 (expand_expr_real_1): Strengthen local "label" from rtx to
25635 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25637 * expmed.c (store_bit_field_using_insv): Strengthen local "last"
25638 from rtx to rtx_insn *.
25639 (store_bit_field_1): Likewise.
25640 (extract_bit_field_1): Likewise.
25641 (expand_mult_const): Likewise for local "insns".
25642 (expmed_mult_highpart): Strengthen local "label" from rtx to
25644 (expand_smod_pow2): Likewise.
25645 (expand_sdiv_pow2): Likewise.
25646 (expand_divmod): Strengthen locals "last", "insn" from rtx to
25647 rtx_insn *. Strengthen locals "label", "label1", "label2",
25648 "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
25649 (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
25650 (emit_store_flag): Likewise.
25651 (emit_store_flag_force): Strengthen local "label" from rtx to
25653 (do_cmp_and_jump): Likewise for param "label".
25655 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25657 * explow.c (force_reg): Strengthen local "insn" from rtx to
25659 (adjust_stack_1): Likewise.
25660 (allocate_dynamic_stack_space): Likewise. Strengthen locals
25661 "final_label", "available_label", "space_available" from rtx to
25663 (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
25664 (anti_adjust_stack_and_probe): Likewise.
25666 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25668 * except.h (sjlj_emit_function_exit_after): Strengthen param
25669 "after" from rtx to rtx_insn *. This is only called with
25670 result of get_last_insn (in function.c) so type-change should be
25673 * function.h (struct rtl_eh): Strengthen field "ehr_label" from
25674 rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
25675 to rtx_insn *. These fields are only used from except.c so this
25676 type-change should be self-contained to this patch.
25678 * except.c (emit_to_new_bb_before): Strengthen param "seq" and
25679 local "last" from rtx to rtx_insn *.
25680 (dw2_build_landing_pads): Likewise for local "seq".
25681 (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
25682 (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
25683 rtx to rtx_code_label *. Strengthen locals "fn_begin", "seq" from
25685 (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
25687 (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
25688 (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
25689 (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
25690 referring to an insn. Strengthen local "dispatch_label" from
25691 rtx to rtx_code_label *.
25692 (set_nothrow_function_flags): Strengthen local "insn" from rtx to
25694 (expand_eh_return): Strengthen local "around_label" from
25695 rtx to rtx_code_label *.
25696 (convert_to_eh_region_ranges): Strengthen locals "iter",
25697 "last_action_insn", "first_no_action_insn",
25698 "first_no_action_insn_before_switch",
25699 "last_no_action_insn_before_switch", from rtx to rtx_insn *.
25701 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25703 * dwarf2out.c (last_var_location_insn): Strengthen this variable
25704 from rtx to rtx_insn *.
25705 (cached_next_real_insn): Likewise.
25706 (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
25707 working with insns.
25708 (dwarf2out_var_location): Strengthen locals "next_real",
25709 "next_note", "expected_next_loc_note", "last_start", "insn" from
25712 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25714 * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
25715 from rtx to rtx_insn *.
25716 (create_pseudo_cfg): Likewise for local "insn".
25718 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25720 * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
25721 from rtx to rtx_insn *.
25722 (df_bb_regno_last_def_find): Likewise.
25724 * df-problems.c (df_rd_bb_local_compute): Likewise.
25725 (df_lr_bb_local_compute): Likewise.
25726 (df_live_bb_local_compute): Likewise.
25727 (df_chain_remove_problem): Likewise.
25728 (df_chain_create_bb): Likewise.
25729 (df_word_lr_bb_local_compute): Likewise.
25730 (df_remove_dead_eq_notes): Likewise for param "insn".
25731 (df_note_bb_compute): Likewise for local "insn".
25732 (simulate_backwards_to_point): Likewise.
25733 (df_md_bb_local_compute): Likewise.
25735 * df-scan.c (df_scan_free_bb_info): Likewise.
25736 (df_scan_start_dump): Likewise.
25737 (df_scan_start_block): Likewise.
25738 (df_install_ref_incremental): Likewise for local "insn".
25739 (df_insn_rescan_all): Likewise.
25740 (df_reorganize_refs_by_reg_by_insn): Likewise.
25741 (df_reorganize_refs_by_insn_bb): Likewise.
25742 (df_recompute_luids): Likewise.
25743 (df_bb_refs_record): Likewise.
25744 (df_update_entry_exit_and_calls): Likewise.
25745 (df_bb_verify): Likewise.
25747 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25749 * ddg.h (struct ddg_node): Strengthen fields "insn" and
25750 "first_note" from rtx to rtx_insn *.
25751 (get_node_of_insn): Likewise for param 2 "insn".
25752 (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
25754 * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
25756 (mem_write_insn_p): Likewise.
25757 (mem_access_insn_p): Likewise.
25758 (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
25759 (def_has_ccmode_p): Likewise for param "insn".
25760 (add_cross_iteration_register_deps): Likewise for locals
25761 "def_insn" and "use_insn".
25762 (insns_may_alias_p): Likewise for params "insn1" and "insn2".
25763 (build_intra_loop_deps): Likewise for local "src_insn".
25764 (create_ddg): Strengthen locals "insn" and "first_note" from rtx
25766 (get_node_of_insn): Likewise for param "insn".
25768 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25770 * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
25771 (deletable_insn_p): Strengthen param "insn" from rtx to
25772 rtx_insn *. Add checked cast to rtx_call_insn when invoking
25773 find_call_stack_args, since this is guarded by CALL_P (insn).
25774 (marked_insn_p): Strengthen param "insn" from rtx to
25776 (mark_insn): Likewise. Add checked cast to rtx_call_insn when
25777 invoking find_call_stack_args, since this is guarded by
25779 (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
25780 rtx_insn *; we know this is an insn since this was called by
25781 mark_nonreg_stores.
25782 (mark_nonreg_stores_2): Likewise.
25783 (mark_nonreg_stores): Strengthen param "insn" from rtx to
25785 (find_call_stack_args): Strengthen param "call_insn" from rtx to
25786 rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
25788 (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
25789 from rtx to rtx_insn *.
25790 (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
25791 "next", "ref_insn".
25792 (delete_unmarked_insns): Likewise for locals "insn", "next".
25793 (prescan_insns_for_dce): Likewise for locals "insn", "prev".
25794 (mark_reg_dependencies): Likewise for param "insn".
25795 (rest_of_handle_ud_dce): Likewise for local "insn".
25796 (word_dce_process_block): Likewise.
25797 (dce_process_block): Likewise.
25799 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25801 * cse.c (struct qty_table_elem): Strengthen field "const_insn"
25802 from rtx to rtx_insn *.
25803 (struct change_cc_mode_args): Likewise for field "insn".
25804 (this_insn): Strengthen from rtx to rtx_insn *.
25805 (make_new_qty): Replace use of NULL_RTX with NULL when dealing
25807 (validate_canon_reg): Strengthen param "insn" from rtx to
25809 (canon_reg): Likewise.
25810 (fold_rtx): Likewise. Replace use of NULL_RTX with NULL when
25812 (record_jump_equiv): Strengthen param "insn" from rtx to
25814 (try_back_substitute_reg): Likewise, also for locals "prev",
25816 (find_sets_in_insn): Likewise for param "insn".
25817 (canonicalize_insn): Likewise.
25818 (cse_insn): Likewise. Add a checked cast.
25819 (invalidate_from_clobbers): Likewise for param "insn".
25820 (invalidate_from_sets_and_clobbers): Likewise.
25821 (cse_process_notes_1): Replace use of NULL_RTX with NULL when
25823 (cse_prescan_path): Strengthen local "insn" from rtx to
25825 (cse_extended_basic_block): Likewise for locals "insn" and
25827 (cse_main): Likewise for param "f".
25828 (check_for_label_ref): Likewise for local "insn".
25829 (set_live_p): Likewise for second param ("insn").
25830 (insn_live_p): Likewise for first param ("insn") and for local
25832 (cse_change_cc_mode_insn): Likewise for first param "insn".
25833 (cse_change_cc_mode_insns): Likewise for first and second params
25835 (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
25837 (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
25840 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
25841 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
25842 Anna Tikhonova <anna.tikhonova@intel.com>
25843 Ilya Tocar <ilya.tocar@intel.com>
25844 Andrey Turetskiy <andrey.turetskiy@intel.com>
25845 Ilya Verbin <ilya.verbin@intel.com>
25846 Kirill Yukhin <kirill.yukhin@intel.com>
25847 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
25849 * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
25851 * config/i386/sse.md
25852 (define_mode_iterator VI248_AVX2): Delete.
25853 (define_mode_iterator VI2_AVX2_AVX512BW): New.
25854 (define_mode_iterator VI48_AVX2): Ditto.
25855 (define_insn <shift_insn><mode>3): Delete.
25856 (define_insn "<shift_insn><mode>3<mask_name>" with
25857 VI2_AVX2_AVX512BW): New.
25858 (define_insn "<shift_insn><mode>3<mask_name>" with
25861 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
25862 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
25863 Anna Tikhonova <anna.tikhonova@intel.com>
25864 Ilya Tocar <ilya.tocar@intel.com>
25865 Andrey Turetskiy <andrey.turetskiy@intel.com>
25866 Ilya Verbin <ilya.verbin@intel.com>
25867 Kirill Yukhin <kirill.yukhin@intel.com>
25868 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
25870 * config/i386/sse.md
25871 (define_mode_iterator VI4F_BRCST32x2): New.
25872 (define_mode_attr 64x2_mode): Ditto.
25873 (define_mode_attr 32x2mode): Ditto.
25874 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
25875 with VI4F_BRCST32x2): Ditto.
25876 (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
25877 with V16FI mode iterator): Ditto.
25878 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
25879 with V16FI): Ditto.
25880 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
25881 with VI8F_BRCST64x2): Ditto.
25883 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
25884 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
25885 Anna Tikhonova <anna.tikhonova@intel.com>
25886 Ilya Tocar <ilya.tocar@intel.com>
25887 Andrey Turetskiy <andrey.turetskiy@intel.com>
25888 Ilya Verbin <ilya.verbin@intel.com>
25889 Kirill Yukhin <kirill.yukhin@intel.com>
25890 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
25892 * config/i386/sse.md
25893 (define_mode_iterator VI8_AVX512VL): New.
25894 (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
25896 2014-08-22 Kirill Yukhin <kirill.yukhin@intel.com>
25898 * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
25899 (define_mode_iterator V48_AVX512VL): New.
25900 (define_mode_iterator V12_AVX512VL): Ditto.
25901 (define_insn <avx512>_load<mode>_mask): Split into two similar
25902 patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
25903 Refactor output template.
25904 (define_insn "<avx512>_store<mode>_mask"): Ditto.
25906 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25908 * cprop.c (struct occr): Strengthen field "insn" from rtx to
25910 (reg_available_p): Likewise for param "insn".
25911 (insert_set_in_table): Likewise.
25912 (hash_scan_set): Likewise.
25913 (hash_scan_insn): Likewise.
25914 (make_set_regs_unavailable): Likewise.
25915 (compute_hash_table_work): Likewise for local "insn".
25916 (reg_not_set_p): Strengthen param "insn" from const_rtx to
25918 (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
25919 (try_replace_reg): Likewise.
25920 (find_avail_set): Likewise.
25921 (cprop_jump): Likewise for params "setcc", "jump".
25922 (constprop_register): Likewise for param "insn".
25923 (cprop_insn): Likewise.
25924 (do_local_cprop): Likewise.
25925 (local_cprop_pass): Likewise for local "insn".
25926 (bypass_block): Likewise for params "setcc" and "jump".
25927 (bypass_conditional_jumps): Likewise for locals "setcc" and
25929 (one_cprop_pass): Likewise for local "insn".
25931 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25933 * compare-elim.c (struct comparison_use): Strengthen field "insn"
25934 from rtx to rtx_insn *.
25935 (struct comparison): Likewise, also for field "prev_clobber".
25936 (conforming_compare): Likewise for param "insn".
25937 (arithmetic_flags_clobber_p): Likewise.
25938 (find_flags_uses_in_insn): Likewise.
25939 (find_comparison_dom_walker::before_dom_children): Likewise for
25940 locals "insn", "next", "last_clobber".
25941 (try_eliminate_compare): Likewise for locals "insn", "bb_head".
25943 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25945 * combine-stack-adj.c (struct csa_reflist): Strengthen field
25946 "insn" from rtx to rtx_insn *.
25947 (single_set_for_csa): Likewise for param "insn".
25948 (record_one_stack_ref): Likewise.
25949 (try_apply_stack_adjustment): Likewise.
25950 (struct record_stack_refs_data): Likewise for field "insn".
25951 (maybe_move_args_size_note): Likewise for params "last" and "insn".
25952 (prev_active_insn_bb): Likewise for return type and param "insn".
25953 (next_active_insn_bb): Likewise.
25954 (force_move_args_size_note): Likewise for params "prev" and "last"
25955 and locals "test", "next_candidate", "prev_candidate".
25956 (combine_stack_adjustments_for_block): Strengthen locals
25957 "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
25960 2014-08-21 David Malcolm <dmalcolm@redhat.com>
25962 * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
25963 (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
25964 (subst_insn): Likewise for this variable.
25965 (added_links_insn): Likewise.
25966 (struct insn_link): Likewise for field "insn".
25967 (alloc_insn_link): Likewise for param "insn".
25968 (struct undobuf): Likewise for field "other_insn".
25969 (find_single_use): Likewise for param "insn" and local "next".
25970 (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
25971 (delete_noop_moves): Likewise for locals "insn", "next".
25972 (create_log_links): Likewise for locals "insn", "use_insn".
25973 Strengthen local "next_use" from rtx * to rtx_insn **.
25974 (insn_a_feeds_b): Likewise for params "a", "b".
25975 (combine_instructions): Likewise for param "f" and locals "insn",
25976 "next", "prev", "first", "last_combined_insn", "link", "link1",
25977 "temp". Replace use of NULL_RTX with NULL when referring to
25979 (setup_incoming_promotions): Likewise for param "first"
25980 (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
25981 (can_combine_p): Likewise for params "insn", "i3", "pred",
25982 "pred2", "succ", "succ2" and for local "p".
25983 (combinable_i3pat): Likewise for param "i3".
25984 (cant_combine_insn_p): Likewise for param "insn".
25985 (likely_spilled_retval_p): Likewise.
25986 (adjust_for_new_dest): Likewise.
25987 (update_cfg_for_uncondjump): Likewise, also for local "insn".
25988 (try_combine): Likewise for return type and for params "i3", "i2",
25989 "i1", "i0", "last_combined_insn", and for locals "insn",
25990 "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
25991 "i0_insn". Eliminate local "tem" in favor of new locals
25992 "tem_note" and "tem_insn", the latter being an rtx_insn *. Add a
25993 checked cast for now to rtx_insn * on the return type of
25994 gen_rtx_INSN. Replace use of NULL_RTX with NULL when referring to
25996 (find_split_point): Strengthen param "insn" from rtx to
25998 (simplify_set): Likewise for local "other_insn".
25999 (recog_for_combine): Likewise for param "insn".
26000 (record_value_for_reg): Likewise.
26001 (record_dead_and_set_regs_1): Likewise for local
26002 "record_dead_insn".
26003 (record_dead_and_set_regs): Likewise for param "insn".
26004 (record_promoted_value): Likewise.
26005 (check_promoted_subreg): Likewise.
26006 (get_last_value_validate): Likewise.
26007 (reg_dead_at_p): Likewise.
26008 (move_deaths): Likewise for param "to_insn".
26009 (distribute_notes): Likewise for params "from_insn", "i3", "i2"
26010 and locals "place", "place2", "cc0_setter". Eliminate local "tem
26011 in favor of new locals "tem_note" and "tem_insn", the latter being
26013 (distribute_links): Strengthen locals "place", "insn" from rtx to
26016 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26018 * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
26020 (can_delete_label_p): Require a const rtx_code_label * rather than
26022 (delete_insn): Add checked cast to rtx_code_label * when we know
26023 we're dealing with LABEL_P (insn). Strengthen local "bb_note" from
26025 (delete_insn_chain): Strengthen locals "prev" and "current" from
26026 rtx to rtx_insn *. Add a checked cast when assigning from
26027 "finish" (strengthening the params will come later). Add a
26028 checked cast to rtx_note * in region where we know
26030 (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
26032 (compute_bb_for_insn): Likewise.
26033 (free_bb_for_insn): Likewise for local "insn".
26034 (compute_bb_for_insn): Likewise.
26035 (update_bb_for_insn_chain): Strengthen params "begin", "end" and
26036 local "insn" from rtx to rtx_insn *
26037 (flow_active_insn_p): Require a const rtx_insn * rather than a
26039 (contains_no_active_insn_p): Strengthen local "insn" from rtx to
26041 (can_fallthru): Likewise for locals "insn" and "insn2".
26042 (bb_note): Likewise for local "note".
26043 (first_insn_after_basic_block_note): Likewise for local "note" and
26045 (rtl_split_block): Likewise for locals "insn" and "next".
26046 (unique_locus_on_edge_between_p): Likewise for locals "insn" and
26048 (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
26049 "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
26051 (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
26052 them), "kill_from", "barrier", "new_insn".
26053 (patch_jump_insn): Likewise for params "insn", "old_label".
26054 (redirect_branch_edge): Likewise for locals "old_label", "insn".
26055 (force_nonfallthru_and_redirect): Likewise for locals "insn",
26056 "old_label", "new_label".
26057 (rtl_tidy_fallthru_edge): Likewise for local "q".
26058 (rtl_split_edge): Likewise for locals "before", "last".
26059 (commit_one_edge_insertion): Likewise for locals "before",
26060 "after", "insns", "tmp", "last", adding a checked cast where
26061 currently necessary.
26062 (commit_edge_insertions): Likewise.
26063 (rtl_dump_bb): Likewise for locals "insn", "last".
26064 (print_rtl_with_bb): Likewise for local "x".
26065 (rtl_verify_bb_insns): Likewise for local "x".
26066 (rtl_verify_bb_pointers): Likewise for local "insn".
26067 (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
26069 (rtl_verify_fallthru): Likewise for local "insn".
26070 (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
26071 (purge_dead_edges): Likewise for local "insn".
26072 (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
26073 (skip_insns_after_block): Likewise for return type and for locals
26074 "insn", "last_insn", "next_head", "prev".
26075 (record_effective_endpoints): Likewise for locals "next_insn",
26077 (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
26078 (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
26079 (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
26080 (duplicate_insn_chain): For now, add checked cast from rtx to
26081 rtx_insn * when returning insn.
26082 (cfg_layout_duplicate_bb): Likewise for local "insn".
26083 (cfg_layout_delete_block): Likewise for locals "insn", "next",
26084 "prev", "remaints".
26085 (cfg_layout_merge_blocks): Likewise for local "insn", "last".
26086 (rtl_block_empty_p): Likewise.
26087 (rtl_split_block_before_cond_jump): Likewise for locals "insn",
26088 "split_point", "last".
26089 (rtl_block_ends_with_call_p): Likewise for local "insn".
26090 (need_fake_edge_p): Strengthen param "insn" from const_rtx to
26092 (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
26093 "split_at_insn" from rtx to rtx_insn *.
26094 (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
26095 (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
26096 to const rtx_insn *.
26097 (rtl_account_profile_record): Likewise.
26099 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26101 * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
26103 (average_num_loop_insns): Likewise.
26104 (init_set_costs): Likewise for local "seq".
26105 (seq_cost): Likewise for param "seq", from const_rtx to const
26108 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26110 * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
26113 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26115 * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
26116 "f1" and "f2" from rtx * to rtx_insn **.
26117 (flow_find_head_matching_sequence): Likewise.
26119 * cfgcleanup.c (try_simplify_condjump): Strengthen local
26120 "cbranch_insn" from rtx to rtx_insn *.
26121 (thread_jump): Likewise for local "insn".
26122 (try_forward_edges): Likewise for local "last".
26123 (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
26124 (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
26126 (can_replace_by): Likewise for params "i1", "i2".
26127 (old_insns_match_p): Likewise.
26128 (merge_notes): Likewise.
26129 (walk_to_nondebug_insn): Likewise for param "i1".
26130 (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
26131 to rtx_insn **. Strengthen locals "i1", "i2", "last1", "last2",
26132 "afterlast1", "afterlast2" from rtx to rtx_insn *.
26133 (flow_find_head_matching_sequence): Strengthen params "f1" and
26134 "f2" from rtx * to rtx_insn **. Strengthen locals "i1", "i2",
26135 "last1", "last2", "beforelast1", "beforelast2" from rtx to
26137 (outgoing_edges_match): Likewise for locals "last1", "last2".
26138 (try_crossjump_to_edge): Likewise for local "insn".
26139 Replace call to for_each_rtx with for_each_rtx_in_insn.
26141 (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
26142 (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
26143 "e0_last", "e_last", "head", "curr", "insn". Strengthen locals
26144 "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
26145 (try_optimize_cfg): Strengthen local "last" from rtx to
26147 (delete_dead_jumptables): Likewise for locals "insn", "next",
26150 * ifcvt.c (cond_exec_process_if_block): Likewise for locals
26151 "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
26152 "rtx else_first_tail", to reflect the basic-block.h changes above.
26154 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26156 * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
26158 (purge_dead_tablejump_edges): Likewise.
26159 (find_bb_boundaries): Likewise for locals "insn", "end",
26160 "flow_transfer_insn".
26162 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26164 * caller-save.c (save_call_clobbered_regs): Strengthen locals
26165 "ins" and "prev" from rtx to rtx_insn *.
26167 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26169 * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
26171 (internal_arg_pointer_exp_state): Likewise for field "scan_start".
26172 (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
26174 (load_register_parameters): Likewise for local "before_arg".
26175 (check_sibcall_argument_overlap): Likewise for param "insn".
26176 (expand_call): Likewise for locals "normal_call_insns",
26177 "tail_call_insns", "insns", "before_call", "after_args",
26178 "before_arg", "last", "prev". Strengthen one of the "last" from
26179 rtx to rtx_call_insn *.
26180 (fixup_tail_calls): Strengthen local "insn" from rtx to
26182 (emit_library_call_value_1): Likewise for locals "before_call" and
26185 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26187 * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
26188 and "last" from rtx to rtx_insn *.
26189 (expand_builtin_nonlocal_goto): Likewise for local "insn".
26190 (expand_builtin_apply): Strengthen local "call_insn" from rtx to
26192 (expand_errno_check): Strengthen local "lab" from rtx to
26194 (expand_builtin_mathfn): Strengthen local "insns" from rtx to
26196 (expand_builtin_mathfn_2): Likewise.
26197 (expand_builtin_mathfn_ternary): Likewise.
26198 (expand_builtin_mathfn_3): Likewise.
26199 (expand_builtin_interclass_mathfn): Likewise for local "last".
26200 (expand_builtin_int_roundingfn): Likewise for local "insns".
26201 (expand_builtin_int_roundingfn_2): Likewise.
26202 (expand_builtin_strlen): Likewise for local "before_strlen".
26203 (expand_builtin_strncmp): Likewise for local "seq".
26204 (expand_builtin_signbit): Likewise for local "last".
26205 (expand_builtin_atomic_compare_exchange): Strengthen local "label"
26206 from rtx to rtx_code_label *.
26207 (expand_stack_restore): Strengthen local "prev" from rtx to
26210 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26212 * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
26214 (struct btr_def_s): Likewise.
26215 (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
26217 (add_btr_def): Likewise.
26218 (new_btr_user): Likewise.
26219 (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
26221 (link_btr_uses): Likewise.
26222 (move_btr_def): Likewise for locals "insp", "old_insn",
26223 "new_insn". Add checked cast to rtx_insn * for now on result of
26225 (can_move_up): Strengthen param "insn" from const_rtx to
26228 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26230 * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
26232 (get_uncond_jump_length): Likewise for locals "label", "jump".
26233 (fix_up_crossing_landing_pad): Likewise for locals "new_label",
26235 (add_labels_and_missing_jumps): Likewise for local "new_jump".
26236 (fix_up_fall_thru_edges): Likewise for local "old_jump".
26237 (find_jump_block): Likewise for local "insn".
26238 (fix_crossing_conditional_branches): Likewise for locals
26239 "old_jump", "new_jump".
26240 (fix_crossing_unconditional_branches): Likewise for locals
26241 "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
26242 (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
26244 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26246 * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
26248 (struct mem_insn): Likewise for field "insn".
26249 (reg_next_use): Strengthen from rtx * to rtx_insn **.
26250 (reg_next_inc_use): Likewise.
26251 (reg_next_def): Likewise.
26252 (move_dead_notes): Strengthen params "to_insn" and "from_insn"
26253 from rtx to rtx_insn *.
26254 (move_insn_before): Likewise for param "next_insn" and local "insns".
26255 (attempt_change): Likewise for local "mov_insn".
26256 (try_merge): Likewise for param "last_insn".
26257 (get_next_ref): Likewise for return type and local "insn".
26258 Strengthen param "next_array" from rtx * to rtx_insn **.
26259 (parse_add_or_inc): Strengthen param "insn" from rtx to
26261 (find_inc): Likewise for locals "insn" and "other_insn" (three of
26263 (merge_in_block): Likewise for locals "insn", "curr",
26265 (pass_inc_dec::execute): Update allocations of the arrays to
26266 reflect the stronger types.
26268 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26270 * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
26271 and "jump" from rtx to rtx_insn *. Strengthen local "top_label"
26272 from rtx to rtx_code_label *.
26274 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26276 * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
26279 2014-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
26281 * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
26282 generated a warning and prevented bootstrapping the compiler.
26284 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26286 * rtl.h (delete_related_insns): Strengthen return type from rtx to
26289 * jump.c (delete_related_insns): Likewise, also for locals "next"
26292 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26294 * genautomata.c (output_internal_insn_latency_func): When writing
26295 the function "internal_insn_latency" to insn-automata.c,
26296 strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
26297 allowing the optional guard function of (define_bypass) clauses to
26298 expect a pair of rtx_insn *, rather than a pair of rtx.
26299 (output_insn_latency_func): When writing the function
26300 "insn_latency", add an "uncast_" prefix to params "insn" and
26301 "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
26302 using checked casts from the params, thus enabling the above
26303 change to the generated "internal_insn_latency" function.
26305 2014-08-21 Jan Hubicka <hubicka@ucw.cz>
26307 PR tree-optimization/62091
26308 * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
26309 handle correctly arrays.
26310 (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
26311 inheritance binfos.
26312 (record_known_type): Walk into inner type.
26313 (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
26314 condition on no type changes.
26316 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26318 * genattrtab.c (write_attr_get): Within the generated get_attr_
26319 functions, rename param "insn" to "uncast_insn" and reintroduce
26320 "insn" as an local rtx_insn * using a checked cast, so that "insn"
26321 is an rtx_insn * within insn-attrtab.c
26323 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26325 * output.h (peephole): Strengthen return type from rtx to
26327 * rtl.h (delete_for_peephole): Likewise for both params.
26328 * genpeep.c (main): In generated "peephole" function, strengthen
26329 return type and local "insn" from rtx to rtx_insn *. For now,
26330 rename param "ins1" to "uncast_ins1", adding "ins1" back as an
26331 rtx_insn *, with a checked cast.
26332 * jump.c (delete_for_peephole): Strengthen params "from", "to" and
26333 locals "insn", "next", "prev" from rtx to rtx_insn *.
26335 2014-08-21 Marc Glisse <marc.glisse@inria.fr>
26337 PR tree-optimization/62112
26338 * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
26339 * gimple-iterator.h (gsi_replace): Return bool.
26340 * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
26341 moved from ref_may_alias_global_p.
26342 (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
26344 (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
26345 (stmt_kills_ref_p_1): Rename...
26346 (stmt_kills_ref_p): ... to this.
26347 * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
26348 stmt_kills_ref_p): Declare.
26349 * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
26350 Move the self-assignment case...
26351 (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
26353 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26355 * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
26357 * emit-rtl.c (try_split): Likewise, also for locals "before" and
26358 "after". For now, don't strengthen param "trial", which requires
26359 adding checked casts when returning it.
26361 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26363 * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
26364 "label" from rtx to rtx_code_label *. Strengthen param 1 of
26365 "var_location" hook from rtx to rtx_insn *.
26366 (debug_nothing_rtx): Delete in favor of...
26367 (debug_nothing_rtx_code_label): New prototype.
26368 (debug_nothing_rtx_rtx): Delete unused prototype.
26369 (debug_nothing_rtx_insn): New prototype.
26371 * final.c (final_scan_insn): Add checked cast to rtx_insn * when
26372 invoking debug_hooks->var_location (in two places, one in a NOTE
26373 case of a switch statement, the other guarded by a CALL_P
26374 conditional. Add checked cast to rtx_code_label * when invoking
26375 debug_hooks->label (within CODE_LABEL case of switch statement).
26377 * dbxout.c (dbx_debug_hooks): Update "label" hook from
26378 debug_nothing_rtx to debug_nothing_rtx_code_label. Update
26379 "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
26380 (xcoff_debug_hooks): Likewise.
26381 * debug.c (do_nothing_debug_hooks): Likewise.
26382 (debug_nothing_rtx): Delete in favor of...
26383 (debug_nothing_rtx_insn): New function.
26384 (debug_nothing_rtx_rtx): Delete unused function.
26385 (debug_nothing_rtx_code_label): New function.
26386 * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
26387 debug_nothing_rtx to debug_nothing_rtx_code_label.
26388 (dwarf2out_var_location): Strengthen param "loc_note" from rtx
26390 * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
26391 debug_nothing_rtx to debug_nothing_rtx_insn.
26392 (sdbout_label): Strengthen param "insn" from rtx to
26394 * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
26395 debug_nothing_rtx to debug_nothing_rtx_code_label. Update
26396 "var_location" hook from debug_nothing_rtx to
26397 debug_nothing_rtx_insn.
26399 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26401 * recog.h (insn_output_fn): Update this function typedef to match
26402 the changes below to the generated output functions, strengthening
26403 the 2nd param from rtx to rtx_insn *.
26405 * final.c (get_insn_template): Add a checked cast to rtx_insn * on
26406 insn when invoking an output function, to match the new signature
26407 of insn_output_fn with a stronger second param.
26409 * genconditions.c (write_header): In the generated code for
26410 gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
26411 to match the other changes in this patch.
26413 * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
26414 the generated "gen_" functions from rtx to rtx_insn * within their
26417 * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
26418 the subfunctions within the generated "recog_", "split", "peephole2"
26419 function trees from rtx to rtx_insn *. For now, the top-level
26420 generated functions ("recog", "split", "peephole2") continue to
26421 take a plain rtx for "insn", to avoid introducing dependencies on
26422 other patches. Rename this 2nd param from "insn" to
26423 "uncast_insn", and reintroduce "insn" as a local variable of type
26424 rtx_insn *, initialized at the top of the generated function with
26425 a checked cast on "uncast_insn".
26426 (make_insn_sequence): Strengthen the 1st param "curr_insn" of
26427 the generated "gen_" functions from rtx to rtx_insn * within their
26430 * genoutput.c (process_template): Strengthen the 2nd param within
26431 the generated "output_" functions "insn" from rtx to rtx_insn *.
26433 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
26435 * tree-profile.c (tree_profiling): Skip external functions
26436 when doing coverage instrumentation.
26437 * cgraphunit.c (compile): Do not assert that all nodes are reachable.
26439 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26441 * config/rs6000/altivec.h (vec_cpsgn): New #define.
26442 (vec_mergee): Likewise.
26443 (vec_mergeo): Likewise.
26444 (vec_cntlz): Likewise.
26445 * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
26446 entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
26447 VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
26448 VMRGEW, and VMRGOW.
26449 * doc/extend.texi: Document various forms of vec_cpsgn,
26450 vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
26451 vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
26452 vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
26453 vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
26454 vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
26456 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26458 * config/rs6000/rs6000.c (context.h): New include.
26459 (tree-pass.h): Likewise.
26460 (make_pass_analyze_swaps): New decl.
26461 (rs6000_option_override): Register pass_analyze_swaps.
26462 (swap_web_entry): New subsclass of web_entry_base (df.h).
26463 (special_handling_values): New enum.
26464 (union_defs): New function.
26465 (union_uses): Likewise.
26466 (insn_is_load_p): Likewise.
26467 (insn_is_store_p): Likewise.
26468 (insn_is_swap_p): Likewise.
26469 (rtx_is_swappable_p): Likewise.
26470 (insn_is_swappable_p): Likewise.
26471 (chain_purpose): New enum.
26472 (chain_contains_only_swaps): New function.
26473 (mark_swaps_for_removal): Likewise.
26474 (swap_const_vector_halves): Likewise.
26475 (adjust_subreg_index): Likewise.
26476 (permute_load): Likewise.
26477 (permute_store): Likewise.
26478 (handle_special_swappables): Likewise.
26479 (replace_swap_with_copy): Likewise.
26480 (dump_swap_insn_table): Likewise.
26481 (rs6000_analyze_swaps): Likewise.
26482 (pass_data_analyze_swaps): New pass_data.
26483 (pass_analyze_swaps): New rtl_opt_pass.
26484 (make_pass_analyze_swaps): New function.
26485 * config/rs6000/rs6000.opt (moptimize-swaps): New option.
26487 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26489 * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
26490 type from rtx to rtx_insn *.
26491 (create_copy_of_insn_rtx): Likewise.
26492 * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
26493 (create_copy_of_insn_rtx): Likewise, also for local "res".
26495 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26497 * rtl.h (find_first_parameter_load): Strengthen return type from
26499 * rtlanal.c (find_first_parameter_load): Strengthen return type
26500 from rtx to rtx_insn *. Add checked cast for now, to postpone
26501 strengthening the params.
26503 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
26506 * diagnostic.c: Set default caret.
26507 (diagnostic_show_locus): Use it. Tell pretty-printer that a new
26509 * diagnostic.h (struct diagnostic_context):
26511 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26513 * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
26514 (sel_bb_head): Strengthen return type insn_t (currently just an
26515 rtx) to rtx_insn *.
26516 (sel_bb_end): Likewise.
26518 * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
26519 (sel_bb_head): Strengthen return type and local "head" from
26520 insn_t (currently just an rtx) to rtx_insn *.
26521 (sel_bb_end): Likewise for return type.
26522 (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
26525 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26527 * basic-block.h (get_last_bb_insn): Strengthen return type from
26529 * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
26532 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
26535 * diagnostic.c (default_diagnostic_finalizer): Move caret printing
26537 (diagnostic_report_diagnostic): ... from here.
26538 * toplev.c (general_init): Move code to c-family.
26540 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26542 * df.h (web_entry_base): Replace existing struct web_entry with a
26543 new class web_entry_base with only the predecessor member.
26544 (unionfind_root): Remove declaration and move to class member.
26545 (unionfind_union): Remove declaration and move to friend
26547 (union_defs): Remove declaration.
26548 * web.c (web_entry_base::unionfind_root): Modify to be member
26549 function and adjust accessors.
26550 (unionfind_union): Modify to be friend function and adjust
26552 (web_entry): New subclass of web_entry_base containing the reg
26554 (union_match_dups): Modify for struct -> class changes.
26555 (union_defs): Likewise.
26556 (entry_register): Likewise.
26557 (pass_web::execute): Likewise.
26559 2014-08-20 Bill Schmidt <wschmidt@vnet.ibm.com>
26561 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
26562 builtin define __VEC_ELEMENT_REG_ORDER__.
26564 2014-08-20 Martin Jambor <mjambor@suse.cz>
26565 Wei Mi <wmi@google.com>
26568 PR middle-end/61776
26569 * tree-ssa-operands.c (update_stmt_operands): Remove
26570 MODIFIED_NORETURN_CALLS.
26571 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
26572 (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
26573 (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
26574 (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
26575 * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
26576 * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
26577 (gimple_call_set_ctrl_altering): New func.
26578 (gimple_call_ctrl_altering_p): Ditto.
26579 * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
26580 (make_blocks): Use gimple_call_initialize_ctrl_altering.
26581 (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
26582 (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
26583 remove MODIFIED_NORETURN_CALLS.
26585 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
26587 * coverage.c (coverage_compute_profile_id): Return non-0;
26588 also handle symbols with unique name.
26589 (coverage_end_function): Do not skip DECL_EXTERNAL functions.
26591 2014-08-20 Steve Ellcey <sellcey@mips.com>
26593 PR middle-end/49191
26594 * doc/sourcebuild.texi (non_strict_align): New.
26596 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
26598 * cgraphunit.c (ipa_passes, compile): Reshedule
26599 symtab_remove_unreachable_nodes passes; update comments.
26600 * ipa-inline.c (pass_data_ipa_inline): Do not schedule
26601 TODO_remove_functions before the pass; the functions ought to be
26603 * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
26604 TODO_remove_functions.
26605 * passes.c (pass_data_early_local_passes): Do not schedule function
26607 (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
26609 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
26612 * opts-common.c (set_option): Call diagnostic_classify_diagnostic
26613 before setting the option.
26614 * diagnostic.c (diagnostic_classify_diagnostic): Record
26615 command-line status.
26617 2014-08-20 Richard Biener <rguenther@suse.de>
26620 * tree.c (build_common_tree_nodes): Use make_or_reuse_type
26621 to build uint{16,32,64}_type_node.
26623 2014-08-20 Terry Guo <terry.guo@arm.com>
26625 * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
26626 with immediate_operand.
26628 2014-08-20 David Malcolm <dmalcolm@redhat.com>
26630 * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
26631 "insn" from an as_a to a safe_as_a, for the case when "insn" is
26634 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
26636 PR preprocessor/51303
26637 * incpath.c (remove_duplicates): Use cpp_warning.
26639 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
26643 * doc/options.texi (CPP): Document it.
26644 * doc/invoke.texi (Wvariadic-macros): Fix documentation.
26645 * optc-gen.awk: Handle CPP.
26646 * opth-gen.awk: Likewise.
26648 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26650 * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
26652 (duplicate_insn_chain): Likewise.
26653 * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
26654 rtx_insn *, also for locals "prevfirst" and "nextlast". Add a
26655 checked cast for now (until we can strengthen the params in the
26657 (duplicate_insn_chain): Likewise.
26659 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26661 * rtl.h (next_cc0_user): Strengthen return type from rtx to
26663 (prev_cc0_setter): Likewise.
26665 * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
26666 rtx_insn *, adding checked casts for now as necessary.
26667 (prev_cc0_setter): Likewise.
26669 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26671 * expr.h (emit_move_insn): Strengthen return type from rtx to
26673 (emit_move_insn_1): Likewise.
26674 (emit_move_complex_push): Likewise.
26675 (emit_move_complex_parts): Likewise.
26677 * expr.c (emit_move_via_integer): Strengthen return type from rtx
26678 to rtx_insn *. Replace use of NULL_RTX with NULL when working
26680 (emit_move_complex_push): Strengthen return type from rtx to
26682 (emit_move_complex): Likewise, also for local "ret".
26683 (emit_move_ccmode): Likewise.
26684 (emit_move_multi_word): Likewise for return type and locals
26685 "last_insn", "seq".
26686 (emit_move_insn_1): Likewise for return type and locals "result",
26688 (emit_move_insn): Likewise for return type and local "last_insn".
26689 (compress_float_constant): Likewise.
26691 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26693 * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
26694 from rtx to rtx_insn *.
26696 * rtl.h (emit_insn_before): Likewise.
26697 (emit_insn_before_noloc): Likewise.
26698 (emit_insn_before_setloc): Likewise.
26699 (emit_jump_insn_before): Likewise.
26700 (emit_jump_insn_before_noloc): Likewise.
26701 (emit_jump_insn_before_setloc): Likewise.
26702 (emit_call_insn_before): Likewise.
26703 (emit_call_insn_before_noloc): Likewise.
26704 (emit_call_insn_before_setloc): Likewise.
26705 (emit_debug_insn_before): Likewise.
26706 (emit_debug_insn_before_noloc): Likewise.
26707 (emit_debug_insn_before_setloc): Likewise.
26708 (emit_label_before): Likewise.
26709 (emit_insn_after): Likewise.
26710 (emit_insn_after_noloc): Likewise.
26711 (emit_insn_after_setloc): Likewise.
26712 (emit_jump_insn_after): Likewise.
26713 (emit_jump_insn_after_noloc): Likewise.
26714 (emit_jump_insn_after_setloc): Likewise.
26715 (emit_call_insn_after): Likewise.
26716 (emit_call_insn_after_noloc): Likewise.
26717 (emit_call_insn_after_setloc): Likewise.
26718 (emit_debug_insn_after): Likewise.
26719 (emit_debug_insn_after_noloc): Likewise.
26720 (emit_debug_insn_after_setloc): Likewise.
26721 (emit_label_after): Likewise.
26722 (emit_insn): Likewise.
26723 (emit_debug_insn): Likewise.
26724 (emit_jump_insn): Likewise.
26725 (emit_call_insn): Likewise.
26726 (emit_label): Likewise.
26727 (gen_clobber): Likewise.
26728 (emit_clobber): Likewise.
26729 (gen_use): Likewise.
26730 (emit_use): Likewise.
26733 (emit_barrier_before): Strengthen return type from rtx to
26735 (emit_barrier_after): Likewise.
26736 (emit_barrier): Likewise.
26738 * emit-rtl.c (emit_pattern_before_noloc): Strengthen return type
26739 from rtx to rtx_insn *. Add checked casts for now when converting
26740 "last" from rtx to rtx_insn *.
26741 (emit_insn_before_noloc): Likewise for return type.
26742 (emit_jump_insn_before_noloc): Likewise.
26743 (emit_call_insn_before_noloc): Likewise.
26744 (emit_debug_insn_before_noloc): Likewise.
26745 (emit_barrier_before): Strengthen return type and local "insn"
26746 from rtx to rtx_barrier *.
26747 (emit_label_before): Strengthen return type from rtx to
26748 rtx_insn *. Add checked cast for now when returning param
26749 (emit_pattern_after_noloc): Strengthen return type from rtx to
26750 rtx_insn *. Add checked casts for now when converting "last" from
26752 (emit_insn_after_noloc): Strengthen return type from rtx to
26754 (emit_jump_insn_after_noloc): Likewise.
26755 (emit_call_insn_after_noloc): Likewise.
26756 (emit_debug_insn_after_noloc): Likewise.
26757 (emit_barrier_after): Strengthen return type from rtx to
26759 (emit_label_after): Strengthen return type from rtx to rtx_insn *.
26760 Add checked cast for now when converting "label" from rtx to
26762 (emit_pattern_after_setloc): Strengthen return type from rtx to
26763 rtx_insn *. Add checked casts for now when converting "last" from
26765 (emit_pattern_after): Strengthen return type from rtx to
26767 (emit_insn_after_setloc): Likewise.
26768 (emit_insn_after): Likewise.
26769 (emit_jump_insn_after_setloc): Likewise.
26770 (emit_jump_insn_after): Likewise.
26771 (emit_call_insn_after_setloc): Likewise.
26772 (emit_call_insn_after): Likewise.
26773 (emit_debug_insn_after_setloc): Likewise.
26774 (emit_debug_insn_after): Likewise.
26775 (emit_pattern_before_setloc): Likewise. Add checked casts for now
26776 when converting "last" from rtx to rtx_insn *.
26777 (emit_pattern_before): Strengthen return type from rtx to
26779 (emit_insn_before_setloc): Likewise.
26780 (emit_insn_before): Likewise.
26781 (emit_jump_insn_before_setloc): Likewise.
26782 (emit_jump_insn_before): Likewise.
26783 (emit_call_insn_before_setloc): Likewise.
26784 (emit_call_insn_before): Likewise.
26785 (emit_debug_insn_before_setloc): Likewise.
26786 (emit_debug_insn_before): Likewise.
26787 (emit_insn): Strengthen return type and locals "last", "insn",
26788 "next" from rtx to rtx_insn *. Add checked cast to rtx_insn
26789 within cases where we know we have an insn.
26790 (emit_debug_insn): Likewise.
26791 (emit_jump_insn): Likewise.
26792 (emit_call_insn): Strengthen return type and local "insn" from rtx
26794 (emit_label): Strengthen return type from rtx to rtx_insn *. Add
26795 a checked cast to rtx_insn * for now on "label".
26796 (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
26797 (emit_clobber): Strengthen return type from rtx to rtx_insn *.
26798 (emit_use): Likewise.
26799 (gen_use): Likewise, also for local "seq".
26800 (emit): Likewise for return type and local "insn".
26801 (rtx_insn): Likewise for return type and local "new_rtx".
26803 * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
26804 from rtx to rtx_barrier *.
26806 * config/sh/sh.c (output_stack_adjust): Since emit_insn has
26807 changed return type from rtx to rtx_insn *, we must update
26808 "emit_fn" type, and this in turn means updating...
26809 (frame_insn): ...this. Strengthen return type from rtx to
26810 rtx_insn *. Introduce a new local "insn" of the appropriate type.
26812 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26814 * emit-rtl.c (emit_jump_table_data): Strengthen return type from
26815 rtx to rtx_jump_table_data *. Also for local.
26816 * rtl.h (emit_jump_table_data): Likewise.
26818 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26820 * basic-block.h (create_basic_block_structure): Strengthen third
26821 param "bb_note" from rtx to rtx_note *.
26822 * rtl.h (emit_note_before): Strengthen return type from rtx to
26824 (emit_note_after): Likewise.
26825 (emit_note): Likewise.
26826 (emit_note_copy): Likewise. Also, strengthen param similarly.
26827 * function.h (struct rtl_data): Strengthen field
26828 "x_stack_check_probe_note" from rtx to rtx_note *.
26830 * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
26831 from rtx to rtx_note *.
26832 * cfgrtl.c (create_basic_block_structure): Strengthen third param
26833 "bb_note" from rtx to rtx_note *.
26834 (duplicate_insn_chain): Likewise for local "last". Add a checked cast
26835 when calling emit_note_copy.
26836 * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
26838 (emit_note_after): Likewise.
26839 (emit_note_before): Likewise.
26840 (emit_note_copy): Likewise. Also, strengthen param similarly.
26841 (emit_note): Likewise.
26842 * except.c (emit_note_eh_region_end): Likewise for return type.
26843 Strengthen local "next" from rtx to rtx_insn *.
26844 (convert_to_eh_region_ranges): Strengthen local "note"
26845 from rtx to rtx_note *.
26846 * final.c (change_scope): Likewise.
26847 (reemit_insn_block_notes): Likewise, for both locals named "note".
26848 Also, strengthen local "insn" from rtx to rtx_insn *.
26849 * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
26851 * reg-stack.c (compensate_edge): Likewise for local "after". Also,
26852 strengthen local "seq" from rtx to rtx_insn *.
26853 * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
26855 * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
26857 (get_bb_note_from_pool): Strengthen return type from rtx to
26859 (sel_create_basic_block): Strengthen local "new_bb_note" from
26860 insn_t to rtx_note *.
26861 * var-tracking.c (emit_note_insn_var_location): Strengthen local
26862 "note" from rtx to rtx_note *.
26863 (emit_notes_in_bb): Likewise.
26865 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26867 * function.h (struct rtl_data): Strengthen field
26868 "x_parm_birth_insn" from rtx to rtx_insn *.
26869 * function.c (struct assign_parm_data_all): Strengthen fields
26870 "first_conversion_insn" and "last_conversion_insn" from rtx to
26873 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26875 * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
26876 to rtx_insn *; also for local "var_end_seq".
26877 (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
26878 (maybe_cleanup_end_of_block): Likewise for param "last" and local
26880 (expand_gimple_cond): Likewise for locals "last2" and "last".
26881 (mark_transaction_restart_calls): Likewise for local "insn".
26882 (expand_gimple_stmt): Likewise for return type and locals "last"
26884 (expand_gimple_tailcall): Likewise for locals "last2" and "last".
26885 (avoid_complex_debug_insns): Likewise for param "insn".
26886 (expand_debug_locations): Likewise for locals "insn", "last",
26887 "prev_insn" and "insn2".
26888 (expand_gimple_basic_block): Likewise for local "last".
26889 (construct_exit_block): Likewise for locals "head", "end",
26891 (pass_expand::execute): Likewise for locals "var_seq",
26892 "var_ret_seq", "next".
26894 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26896 * asan.h (asan_emit_stack_protection): Strengthen return type from
26898 * asan.c (asan_emit_stack_protection): Likewise. Add local
26899 "insns" to hold the return value.
26901 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26903 * basic-block.h (bb_note): Strengthen return type from rtx to
26905 * sched-int.h (bb_note): Likewise.
26906 * cfgrtl.c (bb_note): Likewise. Add a checked cast to rtx_note *.
26908 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26910 * rtl.h (make_insn_raw): Strengthen return type from rtx to
26913 * emit-rtl.c (make_insn_raw): Strengthen return type and local
26914 "insn" from rtx to rtx_insn *.
26915 (make_debug_insn_raw): Strengthen return type from rtx to
26916 rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
26917 (make_jump_insn_raw): Strengthen return type from rtx to
26918 rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
26919 (make_call_insn_raw): Strengthen return type from rtx to
26920 rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
26921 (emit_pattern_before_noloc): Strengthen return type of "make_raw"
26922 callback from rtx to rtx_insn *; likewise for local "insn" and
26923 "next", adding a checked cast to rtx_insn in the relevant cases of
26924 the switch statement.
26925 (emit_pattern_after_noloc): Strengthen return type of "make_raw"
26926 callback from rtx to rtx_insn *.
26927 (emit_pattern_after_setloc): Likewise.
26928 (emit_pattern_after): Likewise.
26929 (emit_pattern_before_setloc): Likewise.
26930 (emit_pattern_before): Likewise.
26932 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26934 * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
26936 * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
26937 accepting an rtx_insn *.
26938 (last_call_insn): Strengthen return type from rtx to
26941 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26943 * rtl.h (delete_trivially_dead_insns): Strengthen initial param
26944 "insns" from rtx to rtx_insn *.
26945 * cse.c (delete_trivially_dead_insns): Likewise, also do it for
26946 locals "insn" and "prev".
26948 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26950 * rtl.h (tablejump_p): Strengthen third param from rtx * to
26951 rtx_jump_table_data **.
26953 * cfgbuild.c (make_edges): Introduce local "table", using it in
26954 place of "tmp" for jump table data.
26955 (find_bb_boundaries): Strengthen local "table" from rtx to
26956 rtx_jump_table_data *.
26957 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
26958 (outgoing_edges_match): Likewise for locals "table1" and "table2".
26959 (try_crossjump_to_edge): Likewise.
26960 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
26962 (patch_jump_insn): Introduce local "table", using it in place of
26963 "tmp" for jump table data.
26964 (force_nonfallthru_and_redirect): Introduce local "table", so that
26965 call to tablejump_p can receive an rtx_jump_table_data **. Update
26966 logic around the call to overwrite "note" appropriately if
26967 tablejump_p returns non-zero.
26968 (get_last_bb_insn): Introduce local "table", using it in place of
26969 "tmp" for jump table data.
26970 * dwarf2cfi.c (create_trace_edges): Likewise.
26972 * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
26973 from rtx to rtx_jump_table_data *.
26974 (create_fix_barrier): Strengthen local "tmp" from rtx to
26975 rtx_jump_table_data *.
26976 (arm_reorg): Likewise for local "table".
26978 * config/s390/s390.c (s390_chunkify_start): Likewise.
26980 * config/spu/spu.c (spu_emit_branch_hint): Likewise.
26982 * jump.c (delete_related_insns): Strengthen local "lab_next" from
26983 rtx to rtx_jump_table_data *.
26985 * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
26986 rtx_jump_table_data **. Add a checked cast when writing through
26987 the pointer: we know there that local "table" is non-NULL and that
26988 JUMP_TABLE_DATA_P (table) holds.
26989 (label_is_jump_target_p): Introduce local "table", using it in
26990 place of "tmp" for jump table data.
26992 2014-08-19 Marek Polacek <polacek@redhat.com>
26995 * doc/invoke.texi: Document -Wbool-compare.
26997 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26999 * rtl.h (entry_of_function): Strengthen return type from rtx to
27001 * cfgrtl.c (entry_of_function): Likewise.
27003 2014-08-19 David Malcolm <dmalcolm@redhat.com>
27005 * emit-rtl.h (get_insns): Strengthen return type from rtx to
27006 rtx_insn *, adding a checked cast for now.
27007 (get_last_insn): Likewise.
27009 2014-08-19 David Malcolm <dmalcolm@redhat.com>
27011 * rtl.h (gen_label_rtx): Strengthen return type from rtx to
27014 * emit-rtl.c (gen_label_rtx): Likewise.
27016 2014-08-19 David Malcolm <dmalcolm@redhat.com>
27018 * rtl.h (previous_insn): Strengthen return type from rtx to
27020 (next_insn): Likewise.
27021 (prev_nonnote_insn): Likewise.
27022 (prev_nonnote_insn_bb): Likewise.
27023 (next_nonnote_insn): Likewise.
27024 (next_nonnote_insn_bb): Likewise.
27025 (prev_nondebug_insn): Likewise.
27026 (next_nondebug_insn): Likewise.
27027 (prev_nonnote_nondebug_insn): Likewise.
27028 (next_nonnote_nondebug_insn): Likewise.
27029 (prev_real_insn): Likewise.
27030 (next_real_insn): Likewise.
27031 (prev_active_insn): Likewise.
27032 (next_active_insn): Likewise.
27034 * emit-rtl.c (next_insn): Strengthen return type from rtx to
27035 rtx_insn *, adding a checked cast.
27036 (previous_insn): Likewise.
27037 (next_nonnote_insn): Likewise.
27038 (next_nonnote_insn_bb): Likewise.
27039 (prev_nonnote_insn): Likewise.
27040 (prev_nonnote_insn_bb): Likewise.
27041 (next_nondebug_insn): Likewise.
27042 (prev_nondebug_insn): Likewise.
27043 (next_nonnote_nondebug_insn): Likewise.
27044 (prev_nonnote_nondebug_insn): Likewise.
27045 (next_real_insn): Likewise.
27046 (prev_real_insn): Likewise.
27047 (next_active_insn): Likewise.
27048 (prev_active_insn): Likewise.
27050 * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
27051 param "stepfunc" so that it returns an rtx_insn * rather than an
27052 rtx, to track the change to prev_nonnote_insn_bb, which is the
27053 only function this is called with.
27054 * config/sh/sh.c (sh_find_set_of_reg): Likewise.
27056 2014-08-19 Jan Hubicka <hubicka@ucw.cz>
27058 * ipa-visibility.c (update_visibility_by_resolution_info): Fix
27061 2014-08-19 David Malcolm <dmalcolm@redhat.com>
27063 * coretypes.h (class rtx_debug_insn): Add forward declaration.
27064 (class rtx_nonjump_insn): Likewise.
27065 (class rtx_jump_insn): Likewise.
27066 (class rtx_call_insn): Likewise.
27067 (class rtx_jump_table_data): Likewise.
27068 (class rtx_barrier): Likewise.
27069 (class rtx_code_label): Likewise.
27070 (class rtx_note): Likewise.
27072 * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
27073 adding the invariant DEBUG_INSN_P (X).
27074 (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
27075 the invariant NONJUMP_INSN_P (X).
27076 (class rtx_jump_insn): New, a subclass of rtx_insn, adding
27077 the invariant JUMP_P (X).
27078 (class rtx_call_insn): New, a subclass of rtx_insn, adding
27079 the invariant CALL_P (X).
27080 (class rtx_jump_table): New, a subclass of rtx_insn, adding the
27081 invariant JUMP_TABLE_DATA_P (X).
27082 (class rtx_barrier): New, a subclass of rtx_insn, adding the
27083 invariant BARRIER_P (X).
27084 (class rtx_code_label): New, a subclass of rtx_insn, adding
27085 the invariant LABEL_P (X).
27086 (class rtx_note): New, a subclass of rtx_insn, adding
27087 the invariant NOTE_P(X).
27088 (is_a_helper <rtx_debug_insn *>::test): New.
27089 (is_a_helper <rtx_nonjump_insn *>::test): New.
27090 (is_a_helper <rtx_jump_insn *>::test): New.
27091 (is_a_helper <rtx_call_insn *>::test): New.
27092 (is_a_helper <rtx_jump_table_data *>::test): New functions,
27093 overloaded for both rtx and rtx_insn *.
27094 (is_a_helper <rtx_barrier *>::test): New.
27095 (is_a_helper <rtx_code_label *>::test): New functions, overloaded
27096 for both rtx and rtx_insn *.
27097 (is_a_helper <rtx_note *>::test): New.
27099 2014-08-19 Marek Polacek <polacek@redhat.com>
27101 * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
27102 CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
27103 * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
27104 CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
27106 2014-08-19 David Malcolm <dmalcolm@redhat.com>
27108 * sel-sched-ir.h (BND_TO): insn_t will eventually be an
27109 rtx_insn *. To help with transition, for now, convert from an
27110 access macro into a pair of functions: BND_TO, returning an
27112 (SET_BND_TO): New function, for use where BND_TO is used as an
27115 * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
27117 (BND_TO): New function, adding a checked cast.
27118 (SET_BND_TO): New function.
27120 * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
27122 (compute_av_set_on_boundaries): Likewise.
27124 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
27126 * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
27127 destination if it is used in source.
27128 (*clz<mode>2_lzcnt_falsedep_1): Likewise.
27129 (*popcount<mode>2_falsedep_1): Likewise.
27131 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
27134 * configure.ac: Set install_gold_as_default to no first.
27135 * configure: Regenerated.
27137 2014-08-19 David Malcolm <dmalcolm@redhat.com>
27139 * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
27140 "note_list" field will eventually be an rtx_insn *. To help with
27141 transition, for now, convert from an access macro into a pair of
27142 functions: BB_NOTE_LIST, returning an rtx_insn *, and...
27143 (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
27146 * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
27147 of BB_NOTE_LIST to SET_BB_NOTE_LIST.
27149 * sel-sched-ir.c (init_bb): Likewise.
27150 (sel_restore_notes): Likewise.
27151 (move_bb_info): Likewise.
27152 (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
27153 (SET_BB_NOTE_LIST): New function.
27155 2014-08-19 David Malcolm <dmalcolm@redhat.com>
27157 * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
27158 field will eventually be an rtx_insn *. To help with transition,
27159 for now, convert from an access macro into a pair of functions:
27160 VINSN_INSN_RTX, returning an rtx_insn *, and...
27161 (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
27162 is used as an lvalue.
27164 * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
27165 SET_VINSN_INSN_RTX where it's used as an lvalue.
27166 (VINSN_INSN_RTX): New function.
27167 (SET_VINSN_INSN_RTX): New function.
27169 2014-08-19 David Malcolm <dmalcolm@redhat.com>
27171 * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
27172 eventually be rtx_insn *, but to help with transition, for now,
27173 convert from an access macro into a pair of functions: DEP_PRO
27174 returning an rtx_insn * and...
27175 (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
27176 lvalue, returning an rtx&.
27177 (DEP_CON): Analogous changes to DEP_PRO above.
27178 (SET_DEP_CON): Likewise.
27180 * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
27181 an lvalue to SET_DEP_CON.
27182 * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
27183 (sd_copy_back_deps): Likewise for DEP_CON.
27184 (DEP_PRO): New function, adding a checked cast for now.
27185 (DEP_CON): Likewise.
27186 (SET_DEP_PRO): New function.
27187 (SET_DEP_CON): Likewise.
27189 2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
27191 * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
27192 (extra_options): Add i386/cygwin.opt.
27193 * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
27194 (CPP_SPEC): Accept -pthread.
27195 (LINK_SPEC): Ditto.
27196 (GOMP_SELF_SPECS): Update comment.
27197 * config/i386/cygwin.opt: New file for -pthread flag.
27199 2014-08-19 David Malcolm <dmalcolm@redhat.com>
27201 * df-core.c (DF_REF_INSN): New, using a checked cast for now.
27202 * df.h (DF_REF_INSN): Convert from a macro to a function, so
27203 that we can return an rtx_insn *.
27205 2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
27207 * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
27208 when building executables, not DLLs. Add --large-address-aware
27209 under the same conditions.
27210 * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
27211 when building executables, not DLLs. Add --large-address-aware
27212 under the same conditions when using -m32.
27214 * config/i386/cygwin-stdint.h: Throughout, make type
27215 definitions dependent on target architecture, not host.
27217 2014-08-19 David Malcolm <dmalcolm@redhat.com>
27219 * rtl.h (PREV_INSN): Convert to an inline function. Strengthen
27220 the return type from rtx to rtx_insn *, which will enable various
27221 conversions in followup patches. For now this is is done by a
27223 (NEXT_INSN): Likewise.
27224 (SET_PREV_INSN): Convert to an inline function. This is intended
27225 for use as an lvalue, and so returns an rtx& to allow in-place
27227 (SET_NEXT_INSN): Likewise.
27229 2014-07-08 Mark Wielaard <mjw@redhat.com>
27232 * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
27234 2014-08-19 Marek Polacek <polacek@redhat.com>
27237 * cgraphunit.c (handle_alias_pairs): Fix condition.
27239 2014-08-19 Richard Biener <rguenther@suse.de>
27241 * gimple-fold.c (fold_gimple_assign): Properly build a
27242 null-pointer constant when devirtualizing addresses.
27244 2014-07-07 Mark Wielaard <mjw@redhat.com>
27246 * dwarf2out.c (decl_quals): New function.
27247 (modified_type_die): Take one cv_quals argument instead of two,
27248 one for const and one for volatile.
27249 (add_type_attribute): Likewise.
27250 (generic_parameter_die): Call add_type_attribute with one modifier
27252 (base_type_for_mode): Likewise.
27253 (add_bounds_info): Likewise.
27254 (add_subscript_info): Likewise.
27255 (gen_array_type_die): Likewise.
27256 (gen_descr_array_type_die): Likewise.
27257 (gen_entry_point_die): Likewise.
27258 (gen_enumeration_type_die): Likewise.
27259 (gen_formal_parameter_die): Likewise.
27260 (gen_subprogram_die): Likewise.
27261 (gen_variable_die): Likewise.
27262 (gen_const_die): Likewise.
27263 (gen_field_die): Likewise.
27264 (gen_pointer_type_die): Likewise.
27265 (gen_reference_type_die): Likewise.
27266 (gen_ptr_to_mbr_type_die): Likewise.
27267 (gen_inheritance_die): Likewise.
27268 (gen_subroutine_type_die): Likewise.
27269 (gen_typedef_die): Likewise.
27270 (force_type_die): Likewise.
27272 2014-08-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27274 * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
27276 * configure: Regenerate.
27278 2014-08-19 Richard Biener <rguenther@suse.de>
27280 * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
27281 DECL_EXTERNALs in BLOCKs as non-references.
27282 * tree-streamer-out.c (streamer_write_chain): Likewise.
27284 2014-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
27285 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
27286 Anna Tikhonova <anna.tikhonova@intel.com>
27287 Ilya Tocar <ilya.tocar@intel.com>
27288 Andrey Turetskiy <andrey.turetskiy@intel.com>
27289 Ilya Verbin <ilya.verbin@intel.com>
27290 Kirill Yukhin <kirill.yukhin@intel.com>
27291 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
27293 * config/i386/sse.md
27294 (define_mode_iterator VI48_AVX512F): Delete.
27295 (define_mode_iterator VI48_AVX512F_AVX512VL): New.
27296 (define_mode_iterator VI2_AVX512VL): Ditto.
27297 (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
27300 ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
27302 (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
27303 (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
27304 (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
27305 with VI48_AVX512F_AVX512VL): New.
27306 (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
27307 with VI2_AVX512VL): Ditto.
27309 2014-08-19 Marek Polacek <polacek@redhat.com>
27311 * doc/invoke.texi: Document -Wc99-c11-compat.
27313 2014-08-19 David Malcolm <dmalcolm@redhat.com>
27315 * rtl.h (PREV_INSN): Split macro in two: the existing one,
27316 for rvalues, and...
27317 (SET_PREV_INSN): New macro, for use as an lvalue.
27318 (NEXT_INSN, SET_NEXT_INSN): Likewise.
27320 * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
27321 PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
27322 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
27323 (fixup_abnormal_edges): Likewise.
27324 (unlink_insn_chain): Likewise.
27325 (fixup_reorder_chain): Likewise.
27326 (cfg_layout_delete_block): Likewise.
27327 (cfg_layout_merge_blocks): Likewise.
27328 * combine.c (update_cfg_for_uncondjump): Likewise.
27329 * emit-rtl.c (link_insn_into_chain): Likewise.
27330 (remove_insn): Likewise.
27331 (delete_insns_since): Likewise.
27332 (reorder_insns_nobb): Likewise.
27333 (emit_insn_after_1): Likewise.
27334 * final.c (rest_of_clean_state): Likewise.
27335 (final_scan_insn): Likewise.
27336 * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
27337 * haifa-sched.c (concat_note_lists): Likewise.
27338 (remove_notes): Likewise.
27339 (restore_other_notes): Likewise.
27340 (move_insn): Likewise.
27341 (unlink_bb_notes): Likewise.
27342 (restore_bb_notes): Likewise.
27343 * jump.c (delete_for_peephole): Likewise.
27344 * optabs.c (emit_libcall_block_1): Likewise.
27345 * reorg.c (emit_delay_sequence): Likewise.
27346 (fill_simple_delay_slots): Likewise.
27347 * sel-sched-ir.c (sel_move_insn): Likewise.
27348 (sel_remove_insn): Likewise.
27349 (get_bb_note_from_pool): Likewise.
27350 * sel-sched.c (move_nop_to_previous_block): Likewise.
27352 * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
27353 * config/c6x/c6x.c (gen_one_bundle): Likewise.
27354 (c6x_gen_bundles): Likewise.
27355 (hwloop_optimize): Likewise.
27356 * config/frv/frv.c (frv_function_prologue): Likewise.
27357 (frv_register_nop): Likewise.
27358 * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
27359 (ia64_reorg): Likewise.
27360 * config/mep/mep.c (mep_reorg_addcombine): Likewise.
27361 (mep_make_bundle): Likewise.
27362 (mep_bundle_insns): Likewise.
27363 * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
27364 * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
27365 * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
27367 2014-08-19 David Malcolm <dmalcolm@redhat.com>
27369 * basic-block.h (BB_HEAD): Convert to a function. Strengthen the
27370 return type from rtx to rtx_insn *.
27371 (BB_END): Likewise.
27372 (BB_HEADER): Likewise.
27373 (BB_FOOTER): Likewise.
27374 (SET_BB_HEAD): Convert to a function.
27375 (SET_BB_END): Likewise.
27376 (SET_BB_HEADER): Likewise.
27377 (SET_BB_FOOTER): Likewise.
27379 * cfgrtl.c (BB_HEAD): New function, from macro of same name.
27380 Strengthen the return type from rtx to rtx_insn *. For now, this
27381 is done by adding a checked cast, but this will eventually
27382 become a field lookup.
27383 (BB_END): Likewise.
27384 (BB_HEADER): Likewise.
27385 (BB_FOOTER): Likewise.
27386 (SET_BB_HEAD): New function, from macro of same name. This is
27387 intended for use as an lvalue, and so returns an rtx& to allow
27388 in-place modification.
27389 (SET_BB_END): Likewise.
27390 (SET_BB_HEADER): Likewise.
27391 (SET_BB_FOOTER): Likewise.
27393 2014-08-18 David Malcolm <dmalcolm@redhat.com>
27395 * basic-block.h (BB_HEAD): Split macro in two: the existing one,
27396 for rvalues, and...
27397 (SET_BB_HEAD): New macro, for use as a lvalue.
27398 (BB_END, SET_BB_END): Likewise.
27399 (BB_HEADER, SET_BB_HEADER): Likewise.
27400 (BB_FOOTER, SET_BB_FOOTER): Likewise.
27402 * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
27403 of BB_* macros into SET_BB_* macros.
27404 (fix_crossing_unconditional_branches): Likewise.
27405 * caller-save.c (save_call_clobbered_regs): Likewise.
27406 (insert_one_insn): Likewise.
27407 * cfgbuild.c (find_bb_boundaries): Likewise.
27408 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
27409 (outgoing_edges_match): Likewise.
27410 (try_optimize_cfg): Likewise.
27411 * cfgexpand.c (expand_gimple_cond): Likewise.
27412 (expand_gimple_tailcall): Likewise.
27413 (expand_gimple_basic_block): Likewise.
27414 (construct_exit_block): Likewise.
27415 * cfgrtl.c (delete_insn): Likewise.
27416 (create_basic_block_structure): Likewise.
27417 (rtl_delete_block): Likewise.
27418 (rtl_split_block): Likewise.
27419 (emit_nop_for_unique_locus_between): Likewise.
27420 (rtl_merge_blocks): Likewise.
27421 (block_label): Likewise.
27422 (try_redirect_by_replacing_jump): Likewise.
27423 (emit_barrier_after_bb): Likewise.
27424 (fixup_abnormal_edges): Likewise.
27425 (record_effective_endpoints): Likewise.
27426 (relink_block_chain): Likewise.
27427 (fixup_reorder_chain): Likewise.
27428 (fixup_fallthru_exit_predecessor): Likewise.
27429 (cfg_layout_duplicate_bb): Likewise.
27430 (cfg_layout_split_block): Likewise.
27431 (cfg_layout_delete_block): Likewise.
27432 (cfg_layout_merge_blocks): Likewise.
27433 * combine.c (update_cfg_for_uncondjump): Likewise.
27434 * emit-rtl.c (add_insn_after): Likewise.
27435 (remove_insn): Likewise.
27436 (reorder_insns): Likewise.
27437 (emit_insn_after_1): Likewise.
27438 * haifa-sched.c (get_ebb_head_tail): Likewise.
27439 (restore_other_notes): Likewise.
27440 (move_insn): Likewise.
27441 (sched_extend_bb): Likewise.
27442 (fix_jump_move): Likewise.
27443 * ifcvt.c (noce_process_if_block): Likewise.
27444 (dead_or_predicable): Likewise.
27445 * ira.c (update_equiv_regs): Likewise.
27446 * reg-stack.c (change_stack): Likewise.
27447 * sel-sched-ir.c (sel_move_insn): Likewise.
27448 * sel-sched.c (move_nop_to_previous_block): Likewise.
27450 * config/c6x/c6x.c (hwloop_optimize): Likewise.
27451 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
27453 2014-08-18 David Malcolm <dmalcolm@redhat.com>
27455 * rtl.h (for_each_rtx_in_insn): New function.
27456 * rtlanal.c (for_each_rtx_in_insn): Likewise.
27458 2014-08-18 David Malcolm <dmalcolm@redhat.com>
27460 * coretypes.h (class rtx_insn): Add forward declaration.
27462 * rtl.h: Include is-a.h.
27463 (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
27464 workaround to ensure gengtype knows inheritance is occurring,
27465 whilst continuing to use the pre-existing special-casing for
27467 (class rtx_insn): New subclass of rtx_def, adding the
27468 invariant that we're dealing with something we can sanely use
27469 INSN_UID, NEXT_INSN, PREV_INSN on.
27470 (is_a_helper <rtx_insn *>::test): New.
27471 (is_a_helper <const rtx_insn *>::test): New.
27473 2014-08-18 David Malcolm <dmalcolm@redhat.com>
27475 * is-a.h (template<T, U> safe_as_a <U *p>) New function.
27477 2014-08-18 Jan Hubicka <hubicka@ucw.cz>
27479 * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
27482 2014-08-18 Jan Hubicka <hubicka@ucw.cz>
27484 * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
27485 to BUILT_IN_UNREACHABLE.
27487 2014-08-18 Uros Bizjak <ubizjak@gmail.com>
27490 * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
27492 * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
27493 * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
27494 (ffs<mode>2): Do not expand with tzcnt for
27495 TARGET_AVOID_FALSE_DEP_FOR_BMI.
27496 (ffssi2_no_cmove): Ditto.
27497 (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
27498 (ctz<mode>2): New expander.
27499 (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
27500 (*ctz<mode>2_falsedep): New insn.
27501 (*ctz<mode>2): Rename from ctz<mode>2.
27502 (clz<mode>2_lzcnt): New expander.
27503 (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
27504 (*clz<mode>2_lzcnt_falsedep): New insn.
27505 (*clz<mode>2): Rename from ctz<mode>2.
27506 (popcount<mode>2): New expander.
27507 (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
27508 (*popcount<mode>2_falsedep): New insn.
27509 (*popcount<mode>2): Rename from ctz<mode>2.
27510 (*popcount<mode>2_cmp): Remove.
27511 (*popcountsi2_cmp_zext): Ditto.
27513 2014-08-18 Ajit Agarwal <ajitkum@xilinx.com>
27515 * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
27516 (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
27517 * config/microblaze/microblaze.h
27518 (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
27520 2014-08-18 H.J. Lu <hongjiu.lu@intel.com>
27523 * configure.ac: Set install_gold_as_default to no for
27525 * configure: Regenerated.
27527 2014-08-18 Roman Gareev <gareevroman@gmail.com>
27529 * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
27530 * config.in: Add undef of HAVE_isl.
27531 * configure: Regenerate.
27532 * configure.ac: Add definition of HAVE_isl.
27533 * graphite-blocking.c: Add checking of HAVE_isl.
27534 * graphite-dependences.c: Likewise.
27535 * graphite-interchange.c: Likewise.
27536 * graphite-isl-ast-to-gimple.c: Likewise.
27537 * graphite-optimize-isl.c: Likewise.
27538 * graphite-poly.c: Likewise.
27539 * graphite-scop-detection.c: Likewise.
27540 * graphite-sese-to-poly.c: Likewise.
27541 * graphite.c: Likewise.
27542 * toplev.c: Replace the checking of HAVE_cloog with the checking
27545 2014-08-18 Richard Biener <rguenther@suse.de>
27547 PR tree-optimization/62090
27548 * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
27549 (fold_builtin_3): Do not fold snprintf.
27550 (fold_builtin_4): Likewise.
27551 * gimple-fold.c (gimple_fold_builtin_snprintf): New function
27552 moved from builtins.c.
27553 (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
27554 (gimple_fold_builtin): Do not fold sprintf here.
27556 2014-08-18 Richard Biener <rguenther@suse.de>
27558 * gimple-fold.c (maybe_fold_reference): Move re-gimplification
27560 (maybe_canonicalize_mem_ref_addr): ... this function.
27561 (fold_stmt_1): Apply it here before all simplification.
27563 2014-08-18 Ilya Enkovich <ilya.enkovich@intel.com>
27566 * cgraph.h (cgraph_node::create_indirect_edge): Add
27567 compute_indirect_info param.
27568 * cgraph.c (cgraph_node::create_indirect_edge): Compute
27569 indirect_info only when it is required.
27570 * cgraphclones.c (cgraph_clone_edge): Do not recompute
27571 indirect_info fore cloned indirect edge.
27573 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
27574 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
27575 Anna Tikhonova <anna.tikhonova@intel.com>
27576 Ilya Tocar <ilya.tocar@intel.com>
27577 Andrey Turetskiy <andrey.turetskiy@intel.com>
27578 Ilya Verbin <ilya.verbin@intel.com>
27579 Kirill Yukhin <kirill.yukhin@intel.com>
27580 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
27582 * config/i386/sse.md
27583 (define_mode_iterator VI8_AVX2_AVX512BW): New.
27584 (define_insn "<sse2_avx2>_psadbw"): Add evex version.
27586 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
27587 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
27588 Anna Tikhonova <anna.tikhonova@intel.com>
27589 Ilya Tocar <ilya.tocar@intel.com>
27590 Andrey Turetskiy <andrey.turetskiy@intel.com>
27591 Ilya Verbin <ilya.verbin@intel.com>
27592 Kirill Yukhin <kirill.yukhin@intel.com>
27593 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
27595 * config/i386/sse.md
27596 (define_mode_iterator VF1_AVX512VL): New.
27597 (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
27598 (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
27601 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
27602 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
27603 Anna Tikhonova <anna.tikhonova@intel.com>
27604 Ilya Tocar <ilya.tocar@intel.com>
27605 Andrey Turetskiy <andrey.turetskiy@intel.com>
27606 Ilya Verbin <ilya.verbin@intel.com>
27607 Kirill Yukhin <kirill.yukhin@intel.com>
27608 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
27610 * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
27611 * config/i386/i386.md
27612 (define_code_iterator any_float): New.
27613 (define_code_attr floatsuffix): New.
27614 * config/i386/sse.md
27615 (define_mode_iterator VF1_128_256VL): New.
27616 (define_mode_iterator VF2_512_256VL): New.
27617 (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
27619 (define_insn "ufloatv8siv8df<mask_name>"): Delete.
27620 (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
27622 (define_mode_attr qq2pssuff): New.
27623 (define_mode_attr sselongvecmode): New.
27624 (define_mode_attr sselongvecmodelower): New.
27625 (define_mode_attr sseintvecmode3): New.
27626 (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
27628 (define_insn "*<floatsuffix>floatv2div2sf2"): New.
27629 (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
27630 (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
27631 (define_insn "ufloatv2siv2df2<mask_name>"): New.
27633 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
27634 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
27635 Anna Tikhonova <anna.tikhonova@intel.com>
27636 Ilya Tocar <ilya.tocar@intel.com>
27637 Andrey Turetskiy <andrey.turetskiy@intel.com>
27638 Ilya Verbin <ilya.verbin@intel.com>
27639 Kirill Yukhin <kirill.yukhin@intel.com>
27640 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
27642 * config/i386/sse.md
27643 (define_mode_iterator VF2_AVX512VL): New.
27644 (define_mode_attr sseintvecmode2): New.
27645 (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
27646 (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
27647 (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
27649 "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
27651 (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
27653 (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
27656 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
27657 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
27658 Anna Tikhonova <anna.tikhonova@intel.com>
27659 Ilya Tocar <ilya.tocar@intel.com>
27660 Andrey Turetskiy <andrey.turetskiy@intel.com>
27661 Ilya Verbin <ilya.verbin@intel.com>
27662 Kirill Yukhin <kirill.yukhin@intel.com>
27663 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
27665 * config/i386/i386.md
27666 (define_insn "*movoi_internal_avx"): Add evex version.
27667 (define_insn "*movti_internal"): Ditto.
27669 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
27670 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
27671 Anna Tikhonova <anna.tikhonova@intel.com>
27672 Ilya Tocar <ilya.tocar@intel.com>
27673 Andrey Turetskiy <andrey.turetskiy@intel.com>
27674 Ilya Verbin <ilya.verbin@intel.com>
27675 Kirill Yukhin <kirill.yukhin@intel.com>
27676 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
27678 * config/i386/i386.md
27679 (define_attr "isa"): Add avx512dq, noavx512dq.
27680 (define_attr "enabled"): Ditto.
27681 * config/i386/sse.md
27682 (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
27684 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
27685 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
27686 Anna Tikhonova <anna.tikhonova@intel.com>
27687 Ilya Tocar <ilya.tocar@intel.com>
27688 Andrey Turetskiy <andrey.turetskiy@intel.com>
27689 Ilya Verbin <ilya.verbin@intel.com>
27690 Kirill Yukhin <kirill.yukhin@intel.com>
27691 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
27693 * config/i386/i386.c
27694 (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
27695 avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
27696 avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
27697 avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
27698 avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
27699 avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
27700 avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
27701 avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
27702 * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
27703 * config/i386/sse.md
27704 (define_mode_iterator VMOVE): Allow V4TI mode.
27705 (define_mode_iterator V_AVX512VL): New.
27706 (define_mode_iterator V): New handling for AVX512VL.
27707 (define_insn "avx512f_load<mode>_mask"): Delete.
27708 (define_insn "<avx512>_load<mode>_mask"): New.
27709 (define_insn "avx512f_store<mode>_mask"): Delete.
27710 (define_insn "<avx512>_store<mode>_mask"): New.
27713 2014-08-18 Yury Gribov <y.gribov@samsung.com>
27716 * asan.c (instrument_derefs): Fix bitfield check.
27718 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
27720 * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
27721 * config/rs6000/htm.md (ttest): Remove clobber.
27722 * config/rs6000/predicates.md (any_mask_operand): New predicate.
27723 (and_operand): Reformat.
27724 (and_2rld_operand): New predicate.
27725 * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
27727 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
27728 parameter. Handle AND directly.
27729 (rs6000_split_logical_di): Remove last parameter.
27730 (rs6000_split_logical): Remove last parameter. Remove obsolete
27732 * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
27733 (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
27734 (ctz<mode>2, ffs<mode>2): Delete clobber. Reformat.
27735 (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
27736 *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
27737 and 5 anonymous splitters): Delete.
27738 (and<mode>3): New expander.
27739 (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
27740 (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
27741 (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
27742 (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
27743 (floatdisf2_internal1): Remove clobbers.
27744 (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
27745 *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
27746 (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
27747 (and<mode>3 for BOOL_128): Remove clobber.
27748 (*and<mode>3_internal for BOOL_128): Remove clobber. Adjust call of
27749 rs6000_split_logical.
27750 (*bool<mode>3_internal for BOOL_128): Adjust call of
27751 rs6000_split_logical.
27752 (*boolc<mode>3_internal1 for BOOL_128,
27753 *boolc<mode>3_internal2 for BOOL_128,
27754 *boolcc<mode>3_internal1 for BOOL_128,
27755 *boolcc<mode>3_internal2 for BOOL_128,
27756 *eqv<mode>3_internal1 for BOOL_128,
27757 *eqv<mode>3_internal2 for BOOL_128,
27758 *one_cmpl<mode>3_internal for BOOL_128): Ditto.
27759 * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
27761 (*vec_reload_and_reg_<mptrsize>): Delete.
27763 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
27765 * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
27766 and split, *boolccsi3_internal3 and split): Delete.
27767 (*boolccdi3_internal1, *boolccdi3_internal2 and split,
27768 *boolccdi3_internal3 and split): Delete.
27769 (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
27770 (*eqv<mode>3): Move. Add TODO comment. Fix attributes.
27772 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
27774 * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
27775 and split, *boolcsi3_internal3 and split): Delete.
27776 (*boolcdi3_internal1, *boolcdi3_internal2 and split,
27777 *boolcdi3_internal3 and split): Delete.
27778 (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
27780 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
27782 * config/rs6000/rs6000.c (print_operand) <'e'>: New.
27783 <'u'>: Also support printing the low-order 16 bits.
27784 * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
27785 *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
27786 (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
27787 *booldi3_internal3 and split): Delete.
27788 (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
27789 *bool<mode>3_dot2): New.
27790 (two anonymous define_splits for non_logical_cint_operand): Merge.
27792 2014-08-17 Marek Polacek <polacek@redhat.com>
27793 Manuel López-Ibáñez <manu@gcc.gnu.org>
27796 * diagnostic.c (adjust_line): Add gcc_checking_assert.
27797 (diagnostic_show_locus): Don't print caret diagnostic
27798 if a column is larger than the line_width.
27800 2014-08-17 Roman Gareev <gareevroman@gmail.com>
27802 * common.opt: Make the ISL AST generator to be the main code generator
27805 2014-08-16 Gerald Pfeifer <gerald@pfeifer.com>
27807 * wide-int.h (generic_wide_int): Declare as class instead of struct.
27809 2014-08-16 John David Anglin <danglin@gcc.gnu.org>
27812 * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
27814 * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
27815 (pa_output_addr_vec, pa_output_addr_diff_vec): New.
27816 * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
27818 * config/pa/pa.md (begin_brtab): Delete insn.
27819 (end_brtab): Likewise.
27821 2014-08-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
27823 * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
27825 2014-08-15 Jan Hubicka <hubicka@ucw.cz>
27827 * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
27828 (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
27829 possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
27830 (get_dynamic_type): Remove.
27831 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
27832 (clear_speculation): Bring to ipa-deivrt.h
27833 (get_class_context): Rename to ...
27834 (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
27835 (contains_type_p): Update.
27836 (get_dynamic_type): Rename to ...
27837 ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
27838 (possible_polymorphic_call_targets): UPdate.
27839 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
27840 * ipa-prop.c (ipa_analyze_call_uses): Update.
27842 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org>
27844 * doc/invoke.texi (SH options): Document missing processor variant
27845 options. Remove references to Hitachi. Undocument deprecated mspace
27848 2014-08-15 Jason Merrill <jason@redhat.com>
27850 * tree.c (type_hash_canon): Uncomment assert.
27852 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
27854 * input.h (in_system_header_at): Add comment.
27856 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
27859 * diagnostic.c (build_message_string): Make it extern.
27860 * diagnostic.h (build_message_string): Make it extern.
27862 2014-08-15 Vladimir Makarov <vmakarov@redhat.com>
27864 * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
27865 load/store from/to non-floating class pseudo.
27867 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
27869 * input.c (diagnostic_file_cache_fini): Fix typo in comment.
27871 2014-08-15 Richard Biener <rguenther@suse.de>
27873 * tree-ssa-structalias.c (readonly_id): Rename to string_id.
27874 (get_constraint_for_ssa_var): Remove dead code.
27875 (get_constraint_for_1): Adjust.
27876 (find_what_var_points_to): Likewise.
27877 (init_base_vars): Likewise. STRING_CSTs do not contain pointers.
27879 2014-08-15 Ilya Tocar <tocarip@gmail.com>
27882 * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
27883 (_mm512_mask_cmpge_epu32_mask): Ditto.
27884 (_mm512_cmpge_epu32_mask): Ditto.
27885 (_mm512_mask_cmpge_epi64_mask): Ditto.
27886 (_mm512_cmpge_epi64_mask): Ditto.
27887 (_mm512_mask_cmpge_epu64_mask): Ditto.
27888 (_mm512_cmpge_epu64_mask): Ditto.
27889 (_mm512_mask_cmple_epi32_mask): Ditto.
27890 (_mm512_cmple_epi32_mask): Ditto.
27891 (_mm512_mask_cmple_epu32_mask): Ditto.
27892 (_mm512_cmple_epu32_mask): Ditto.
27893 (_mm512_mask_cmple_epi64_mask): Ditto.
27894 (_mm512_cmple_epi64_mask): Ditto.
27895 (_mm512_mask_cmple_epu64_mask): Ditto.
27896 (_mm512_cmple_epu64_mask): Ditto.
27897 (_mm512_mask_cmplt_epi32_mask): Ditto.
27898 (_mm512_cmplt_epi32_mask): Ditto.
27899 (_mm512_mask_cmplt_epu32_mask): Ditto.
27900 (_mm512_cmplt_epu32_mask): Ditto.
27901 (_mm512_mask_cmplt_epi64_mask): Ditto.
27902 (_mm512_cmplt_epi64_mask): Ditto.
27903 (_mm512_mask_cmplt_epu64_mask): Ditto.
27904 (_mm512_cmplt_epu64_mask): Ditto.
27905 (_mm512_mask_cmpneq_epi32_mask): Ditto.
27906 (_mm512_mask_cmpneq_epu32_mask): Ditto.
27907 (_mm512_cmpneq_epu32_mask): Ditto.
27908 (_mm512_mask_cmpneq_epi64_mask): Ditto.
27909 (_mm512_cmpneq_epi64_mask): Ditto.
27910 (_mm512_mask_cmpneq_epu64_mask): Ditto.
27911 (_mm512_cmpneq_epu64_mask): Ditto.
27912 (_mm512_castpd_ps): Ditto.
27913 (_mm512_castpd_si512): Ditto.
27914 (_mm512_castps_pd): Ditto.
27915 (_mm512_castps_si512): Ditto.
27916 (_mm512_castsi512_ps): Ditto.
27917 (_mm512_castsi512_pd): Ditto.
27918 (_mm512_castpd512_pd128): Ditto.
27919 (_mm512_castps512_ps128): Ditto.
27920 (_mm512_castsi512_si128): Ditto.
27921 (_mm512_castpd512_pd256): Ditto.
27922 (_mm512_castps512_ps256): Ditto.
27923 (_mm512_castsi512_si256): Ditto.
27924 (_mm512_castpd128_pd512): Ditto.
27925 (_mm512_castps128_ps512): Ditto.
27926 (_mm512_castsi128_si512): Ditto.
27927 (_mm512_castpd256_pd512): Ditto.
27928 (_mm512_castps256_ps512): Ditto.
27929 (_mm512_castsi256_si512): Ditto.
27930 (_mm512_cmpeq_epu32_mask): Ditto.
27931 (_mm512_mask_cmpeq_epu32_mask): Ditto.
27932 (_mm512_mask_cmpeq_epu64_mask): Ditto.
27933 (_mm512_cmpeq_epu64_mask): Ditto.
27934 (_mm512_cmpgt_epu32_mask): Ditto.
27935 (_mm512_mask_cmpgt_epu32_mask): Ditto.
27936 (_mm512_mask_cmpgt_epu64_mask): Ditto.
27937 (_mm512_cmpgt_epu64_mask): Ditto.
27938 * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
27939 V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
27940 * config/i386/i386.c (enum ix86_builtins): Add
27941 IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
27942 IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
27943 IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
27944 (bdesc_args): Add __builtin_ia32_si512_256si,
27945 __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
27946 __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
27947 __builtin_ia32_pd512_pd.
27948 (ix86_expand_args_builtin): Handle new FTYPEs.
27949 * config/i386/sse.md (castmode): Add 512-bit modes.
27950 (AVX512MODE2P): New.
27951 (avx512f_<castmode><avxsizesuffix>_<castmode): New.
27952 (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
27954 2014-08-15 Richard Biener <rguenther@suse.de>
27956 * fold-const.c (tree_swap_operands_p): Put all constants
27957 last, also strip sign-changing NOPs when considering further
27958 canonicalization. Canonicalize also when optimizing for size.
27960 2014-08-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27962 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
27963 one_match > zero_match case to just before simple_sequence.
27965 2014-08-15 Richard Biener <rguenther@suse.de>
27967 * data-streamer.h (streamer_string_index, string_for_index):
27969 * data-streamer-out.c (streamer_string_index): Make static.
27970 * data-streamer-in.c (string_for_index): Likewise.
27971 * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
27972 * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
27974 2014-08-15 Richard Biener <rguenther@suse.de>
27976 PR tree-optimization/62031
27977 * tree-data-ref.c (dr_analyze_indices): Do not set
27978 DR_UNCONSTRAINED_BASE.
27979 (dr_may_alias_p): All indirect accesses have to go the
27980 formerly DR_UNCONSTRAINED_BASE path.
27981 * tree-data-ref.h (struct indices): Remove
27982 unconstrained_base member.
27983 (DR_UNCONSTRAINED_BASE): Remove.
27985 2014-08-15 Jakub Jelinek <jakub@redhat.com>
27987 PR middle-end/62092
27988 * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
27989 OMP_CLAUSE_SHARED for global vars if the global var is mentioned
27990 in OMP_CLAUSE_MAP in some outer target region.
27992 2014-08-15 Bin Cheng <bin.cheng@arm.com>
27994 * tree-ssa-loop-ivopts.c (ivopts_data): New field
27995 name_expansion_cache.
27996 (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
27997 (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
27998 (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
27999 (difference_cannot_overflow_p): New parameter. Use affine
28000 expansion for equality check.
28001 (iv_elimination_compare_lt): Pass new argument.
28003 2014-08-14 DJ Delorie <dj@redhat.com>
28005 * config/rl78/rl78-real.md (addqi3_real): Allow adding global
28006 variables to the accumulator.
28008 * config/rl78/predicates.md (rl78_near_mem_operand): New.
28009 * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
28010 (movhi_virt_mm): Split out near mem-mem moves to avoid problems
28011 with far-far moves.
28013 * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
28014 * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
28015 (umulqihi3_virt): Likewise.
28016 * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
28017 (umulqihi3_real): Likewise.
28019 * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
28021 2014-08-14 Jan Hubicka <hubicka@ucw.cz>
28023 PR tree-optimization/62091
28024 * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
28025 function_entry_reached.
28026 (walk_aliased_vdefs): Clear it here.
28027 * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
28029 2014-08-14 Jan Hubicka <hubicka@ucw.cz>
28031 * ipa-utils.h (compare_virtual_tables): Declare.
28032 * ipa-devirt.c (odr_subtypes_equivalent_p): New function
28034 2014-08-14 Marek Polacek <polacek@redhat.com>
28037 * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
28038 (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
28040 2014-08-14 Tom de Vries <tom@codesourcery.com>
28042 * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
28044 2014-08-14 Tom de Vries <tom@codesourcery.com>
28046 PR rtl-optimization/62004
28047 PR rtl-optimization/62030
28048 * ifcvt.c (rtx_interchangeable_p): New function.
28049 (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
28050 * emit-rtl.h (mem_attrs_eq_p): Declare.
28052 2014-08-14 Roman Gareev <gareevroman@gmail.com>
28054 * graphite-scop-detection.c:
28055 Add inclusion of cp-tree.h.
28056 (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
28057 in case they are pointers to object types
28059 2014-08-14 Richard Biener <rguenther@suse.de>
28061 * BASE-VER: Change to 5.0.0
28063 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
28064 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
28065 Anna Tikhonova <anna.tikhonova@intel.com>
28066 Ilya Tocar <ilya.tocar@intel.com>
28067 Andrey Turetskiy <andrey.turetskiy@intel.com>
28068 Ilya Verbin <ilya.verbin@intel.com>
28069 Kirill Yukhin <kirill.yukhin@intel.com>
28070 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
28072 * config/i386/sse.md (define_mode_attr avx512): New.
28073 (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
28075 (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
28076 (define_mode_attr ssse3_avx2): Ditto.
28077 (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
28078 (define_mode_attr avx2_avx512bw): New.
28079 (define_mode_attr ssedoublemodelower): New.
28080 (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
28081 V32HI, V64QI modes.
28082 (define_mode_attr ssebytemode): Allow V8DI modes.
28083 (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
28084 (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
28085 (define_mode_attr ssePSmode2): New.
28086 (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
28087 V16HI, V32HI modes.
28088 (define_mode_attr dbpsadbwmode): New.
28089 (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
28090 V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
28091 (vi8_sse4_1_avx2_avx512): New.
28092 (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
28094 (define_mode_attr blendbits): Move before its immediate use.
28096 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
28097 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
28098 Anna Tikhonova <anna.tikhonova@intel.com>
28099 Ilya Tocar <ilya.tocar@intel.com>
28100 Andrey Turetskiy <andrey.turetskiy@intel.com>
28101 Ilya Verbin <ilya.verbin@intel.com>
28102 Kirill Yukhin <kirill.yukhin@intel.com>
28103 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
28105 * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
28106 * config/i386/subst.md
28107 (define_mode_iterator SUBST_V): Update.
28108 (define_mode_iterator SUBST_A): Ditto.
28109 (define_subst_attr "mask_operand7"): New.
28110 (define_subst_attr "mask_operand10"): New.
28111 (define_subst_attr "mask_operand_arg34") : New.
28112 (define_subst_attr "mask_expand_op3"): New.
28113 (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
28114 (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
28115 (define_subst_attr "mask_avx512vl_condition"): New.
28116 (define_subst_attr "round_mask_operand4"): Ditto.
28117 (define_subst_attr "round_mask_scalar_op3"): Delete.
28118 (define_subst_attr "round_mask_op4"): New.
28119 (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
28121 (define_subst_attr "round_modev8sf_condition"): New.
28122 (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
28124 (define_subst_attr "round_saeonly_mask_operand4"): New.
28125 (define_subst_attr "round_saeonly_mask_op4"): New.
28126 (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
28127 V8DImode, V16SImode.
28128 (define_subst_attr "round_saeonly_modev8sf_condition"): New.
28129 (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
28130 (define_subst_attr "mask_expand4_args"): New.
28131 (define_subst "mask_expand4"): New.
28133 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
28134 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
28135 Anna Tikhonova <anna.tikhonova@intel.com>
28136 Ilya Tocar <ilya.tocar@intel.com>
28137 Andrey Turetskiy <andrey.turetskiy@intel.com>
28138 Ilya Verbin <ilya.verbin@intel.com>
28139 Kirill Yukhin <kirill.yukhin@intel.com>
28140 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
28142 * config/i386/i386.md
28143 (define_attr "isa"): Add avx512bw,noavx512bw.
28144 (define_attr "enabled"): Ditto.
28145 (define_split): Add 32/64-bit mask logic.
28146 (define_insn "*k<logic>qi"): New.
28147 (define_insn "*k<logic>hi"): New.
28148 (define_insn "*anddi_1"): Add mask version.
28149 (define_insn "*andsi_1"): Ditto.
28150 (define_insn "*<code><mode>_1"): Ditto.
28151 (define_insn "*<code>hi_1"): Ditto.
28152 (define_insn "kxnor<mode>"): New.
28153 (define_insn "kunpcksi"): New.
28154 (define_insn "kunpckdi"): New.
28155 (define_insn "*one_cmpl<mode>2_1"): Add mask version.
28156 (define_insn "*one_cmplhi2_1"): Ditto.
28158 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
28159 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
28160 Anna Tikhonova <anna.tikhonova@intel.com>
28161 Ilya Tocar <ilya.tocar@intel.com>
28162 Andrey Turetskiy <andrey.turetskiy@intel.com>
28163 Ilya Verbin <ilya.verbin@intel.com>
28164 Kirill Yukhin <kirill.yukhin@intel.com>
28165 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
28167 * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
28170 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
28171 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
28172 Anna Tikhonova <anna.tikhonova@intel.com>
28173 Ilya Tocar <ilya.tocar@intel.com>
28174 Andrey Turetskiy <andrey.turetskiy@intel.com>
28175 Ilya Verbin <ilya.verbin@intel.com>
28176 Kirill Yukhin <kirill.yukhin@intel.com>
28177 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
28179 * config/i386/i386.c (print_reg): Сorrectly print 64-bit mask
28181 (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
28182 (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
28183 xmm/ymm16+ when availble.
28184 * config/i386/i386.h
28185 (HARD_REGNO_NREGS): Add mask regs.
28186 (VALID_AVX512F_REG_MODE): Ditto.
28187 (VALID_AVX512F_REG_MODE) : Define.
28188 (VALID_MASK_AVX512BW_MODE): Ditto.
28189 (reg_class) (MASK_REG_P(X)): Define.
28190 * config/i386/i386.md: Do not split long moves with mask register,
28191 use kmovb if avx512bw is availible.
28192 (movdi_internal): Handle mask registers.
28194 2014-08-14 Richard Biener <rguenther@suse.de>
28196 PR tree-optimization/62081
28197 * tree-ssa-loop.c (pass_fix_loops): New pass.
28198 (pass_tree_loop::gate): Do not fixup loops here.
28199 * tree-pass.h (make_pass_fix_loops): Declare.
28200 * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
28202 2014-08-14 Richard Biener <rguenther@suse.de>
28204 * tree.c (type_hash_lookup, type_hash_add): Merge into ...
28205 (type_hash_canon): ... this and avoid 2nd lookup for the add.
28207 2014-08-14 Richard Biener <rguenther@suse.de>
28209 PR tree-optimization/62090
28210 * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
28211 (fold_builtin_2): Do not fold sprintf.
28212 (fold_builtin_3): Likewise.
28213 * gimple-fold.c (gimple_fold_builtin_sprintf): New function
28214 moved from builtins.c.
28215 (gimple_fold_builtin): Fold sprintf.
28217 2014-08-14 Richard Biener <rguenther@suse.de>
28219 PR rtl-optimization/62079
28220 * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
28223 2014-08-14 Ilya Enkovich <ilya.enkovich@intel.com>
28225 * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
28226 current_function_decl.
28228 2014-08-14 Ilya Enkovich <ilya.enkovich@intel.com>
28230 * cgraph.c (cgraph_node::function_symbol): Fix wrong
28231 cgraph_function_node to cgraph_node::function_symbol
28234 2014-08-14 Zhenqiang Chen <zhenqiang.chen@arm.com>
28236 * config/arm/arm.c (arm_option_override): Set max_insns_skipped
28237 to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
28239 2014-08-13 Chen Gang gang.chen.5i5j@gmail.com
28241 * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
28244 2014-08-13 Roman Gareev <gareevroman@gmail.com>
28246 * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
28249 2014-08-12 Jakub Jelinek <jakub@redhat.com>
28252 * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
28253 any registers that are used in mem_insn.
28255 2014-08-12 Steve Ellcey <sellcey@mips.com>
28257 * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
28259 2014-08-12 Steve Ellcey <sellcey@mips.com>
28261 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
28262 (MULTILIB_DIRNAMES): Ditto.
28263 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
28264 * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
28265 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
28266 * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
28267 * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
28268 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
28270 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28273 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
28274 of __ARM_SIZEOF_WCHAR_T.
28276 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28279 * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
28280 Remove unnecessary attributes.
28282 2014-08-12 Yury Gribov <y.gribov@samsung.com>
28284 * internal-fn.c (init_internal_fns): Fix off-by-one.
28286 2014-08-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
28287 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
28288 Anna Tikhonova <anna.tikhonova@intel.com>
28289 Ilya Tocar <ilya.tocar@intel.com>
28290 Andrey Turetskiy <andrey.turetskiy@intel.com>
28291 Ilya Verbin <ilya.verbin@intel.com>
28292 Kirill Yukhin <kirill.yukhin@intel.com>
28293 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
28295 * config/i386/i386.c (standard_sse_constant_opcode): Use
28296 vpxord/vpternlog if avx512 is availible.
28298 2014-08-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
28300 PR middle-end/62103
28301 * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
28302 bitfields, that is when size doesn't match the size of type or the
28303 size of the constructor.
28305 2014-08-11 Michael Meissner <meissner@linux.vnet.ibm.com>
28307 * config/rs6000/constraints.md (wh constraint): New constraint,
28308 for FP registers if direct move is available.
28309 (wi constraint): New constraint, for VSX/FP registers that can
28310 handle 64-bit integers.
28311 (wj constraint): New constraint for VSX/FP registers that can
28312 handle 64-bit integers for direct moves.
28313 (wk constraint): New constraint for VSX/FP registers that can
28314 handle 64-bit doubles for direct moves.
28315 (wy constraint): Make documentation match implementation.
28317 * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
28318 scalar_in_vmx_p field to simplify tests of whether SFmode or
28319 DFmode can go in the Altivec registers.
28320 (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
28321 (rs6000_setup_reg_addr_masks): Likewise.
28322 (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
28323 field, and wh/wi/wj/wk constraints.
28324 (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
28325 the wh/wi/wj/wk constraints.
28326 (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
28327 upper registers, prefer VSX registers unless the operation is a
28328 memory operation with REG+OFFSET addressing.
28330 * config/rs6000/vsx.md (VSr mode attribute): Add support for
28331 DImode. Change SFmode to use ww constraint instead of d to allow
28332 SF registers in the upper registers.
28335 (VSr5): Fix thinko in comment.
28336 (VSa): New mode attribute that is an alternative to wa, that
28337 returns the VSX register class that a mode can go in, but may not
28338 be the preferred register class.
28339 (VS_64dm): New mode attribute for appropriate register classes for
28340 referencing 64-bit elements of vectors for direct moves and normal
28342 (VS_64reg): Likewise.
28343 (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
28344 register allocator to only registers the data type can handle.
28345 (vsx_le_perm_load_<mode>): Likewise.
28346 (vsx_le_perm_store_<mode>): Likewise.
28347 (vsx_xxpermdi2_le_<mode>): Likewise.
28348 (vsx_xxpermdi4_le_<mode>): Likewise.
28349 (vsx_lxvd2x2_le_<mode>): Likewise.
28350 (vsx_lxvd2x4_le_<mode>): Likewise.
28351 (vsx_stxvd2x2_le_<mode>): Likewise.
28352 (vsx_add<mode>3): Likewise.
28353 (vsx_sub<mode>3): Likewise.
28354 (vsx_mul<mode>3): Likewise.
28355 (vsx_div<mode>3): Likewise.
28356 (vsx_tdiv<mode>3_internal): Likewise.
28357 (vsx_fre<mode>2): Likewise.
28358 (vsx_neg<mode>2): Likewise.
28359 (vsx_abs<mode>2): Likewise.
28360 (vsx_nabs<mode>2): Likewise.
28361 (vsx_smax<mode>3): Likewise.
28362 (vsx_smin<mode>3): Likewise.
28363 (vsx_sqrt<mode>2): Likewise.
28364 (vsx_rsqrte<mode>2): Likewise.
28365 (vsx_tsqrt<mode>2_internal): Likewise.
28366 (vsx_fms<mode>4): Likewise.
28367 (vsx_nfma<mode>4): Likewise.
28368 (vsx_eq<mode>): Likewise.
28369 (vsx_gt<mode>): Likewise.
28370 (vsx_ge<mode>): Likewise.
28371 (vsx_eq<mode>_p): Likewise.
28372 (vsx_gt<mode>_p): Likewise.
28373 (vsx_ge<mode>_p): Likewise.
28374 (vsx_xxsel<mode>): Likewise.
28375 (vsx_xxsel<mode>_uns): Likewise.
28376 (vsx_copysign<mode>3): Likewise.
28377 (vsx_float<VSi><mode>2): Likewise.
28378 (vsx_floatuns<VSi><mode>2): Likewise.
28379 (vsx_fix_trunc<mode><VSi>2): Likewise.
28380 (vsx_fixuns_trunc<mode><VSi>2): Likewise.
28381 (vsx_x<VSv>r<VSs>i): Likewise.
28382 (vsx_x<VSv>r<VSs>ic): Likewise.
28383 (vsx_btrunc<mode>2): Likewise.
28384 (vsx_b2trunc<mode>2): Likewise.
28385 (vsx_floor<mode>2): Likewise.
28386 (vsx_ceil<mode>2): Likewise.
28387 (vsx_<VS_spdp_insn>): Likewise.
28388 (vsx_xscvspdp): Likewise.
28389 (vsx_xvcvspuxds): Likewise.
28390 (vsx_float_fix_<mode>2): Likewise.
28391 (vsx_set_<mode>): Likewise.
28392 (vsx_extract_<mode>_internal1): Likewise.
28393 (vsx_extract_<mode>_internal2): Likewise.
28394 (vsx_extract_<mode>_load): Likewise.
28395 (vsx_extract_<mode>_store): Likewise.
28396 (vsx_splat_<mode>): Likewise.
28397 (vsx_xxspltw_<mode>): Likewise.
28398 (vsx_xxspltw_<mode>_direct): Likewise.
28399 (vsx_xxmrghw_<mode>): Likewise.
28400 (vsx_xxmrglw_<mode>): Likewise.
28401 (vsx_xxsldwi_<mode>): Likewise.
28402 (vsx_xscvdpspn): Tighten constraints to only use register classes
28404 (vsx_xscvspdpn): Likewise.
28405 (vsx_xscvdpspn_scalar): Likewise.
28407 * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
28408 wj, and wk constraints.
28409 (GPR_REG_CLASS_P): New helper macro for register classes targeting
28410 general purpose registers.
28412 * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
28414 (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
28415 DImode instead of wm. Use wk constraint for direct move of DFmode
28417 (extendsidi2_lfiwax): Likewise.
28418 (lfiwax): Likewise.
28419 (lfiwzx): Likewise.
28420 (movdi_internal64): Likewise.
28422 * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
28423 wk constraints. Make the wy constraint documentation match them
28426 2014-08-11 Mircea Namolaru <mircea.namolaru@inria.fr>
28428 Replacement of isl_int by isl_val
28429 * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
28430 (compute_bounds_for_param): use isl_val instead of isl_int
28431 (compute_bounds_for_loop): likewise
28432 * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
28433 (build_linearized_memory_access): use isl_val instead of isl_int
28434 (pdr_stride_in_loop): likewise
28435 * graphite-optimize-isl.c:
28436 (getPrevectorMap): use isl_val instead of isl_int
28438 (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
28439 graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
28440 (extern the_isl_ctx): declare
28441 (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
28442 (extract_affine_gmp): likewise
28444 (build_loop_iteration_domains): likewise
28445 (add_param_constraints): likewise
28447 2014-08-11 Richard Biener <rguenther@suse.de>
28449 PR tree-optimization/62075
28450 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
28451 handle uses in patterns.
28453 2014-08-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
28454 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
28455 Anna Tikhonova <anna.tikhonova@intel.com>
28456 Ilya Tocar <ilya.tocar@intel.com>
28457 Andrey Turetskiy <andrey.turetskiy@intel.com>
28458 Ilya Verbin <ilya.verbin@intel.com>
28459 Kirill Yukhin <kirill.yukhin@intel.com>
28460 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
28462 * common/config/i386/i386-common.c
28463 (OPTION_MASK_ISA_AVX512VL_SET): Define.
28464 (OPTION_MASK_ISA_AVX512F_UNSET): Update.
28465 (ix86_handle_option): Handle OPT_mavx512vl.
28466 * config/i386/cpuid.h (bit_AVX512VL): Define.
28467 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
28468 set -mavx512vl accordingly.
28469 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
28470 OPTION_MASK_ISA_AVX512VL.
28471 * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
28472 (ix86_option_override_internal): Define PTA_AVX512VL, handle
28473 PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
28474 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
28475 * config/i386/i386.h (TARGET_AVX512VL): Define.
28476 (TARGET_AVX512VL_P(x)): Ditto.
28477 * config/i386/i386.opt: Add mavx512vl.
28479 2014-08-11 Felix Yang <fei.yang0953@gmail.com>
28481 PR tree-optimization/62073
28482 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
28485 2014-08-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
28486 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
28487 Anna Tikhonova <anna.tikhonova@intel.com>
28488 Ilya Tocar <ilya.tocar@intel.com>
28489 Andrey Turetskiy <andrey.turetskiy@intel.com>
28490 Ilya Verbin <ilya.verbin@intel.com>
28491 Kirill Yukhin <kirill.yukhin@intel.com>
28492 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
28494 * common/config/i386/i386-common.c
28495 (OPTION_MASK_ISA_AVX512BW_SET) : Define.
28496 (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
28497 (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
28498 (ix86_handle_option): Handle OPT_mavx512bw.
28499 * config/i386/cpuid.h (bit_AVX512BW): Define.
28500 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
28501 set -mavx512bw accordingly.
28502 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
28503 OPTION_MASK_ISA_AVX512BW.
28504 * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
28505 (ix86_option_override_internal): Define PTA_AVX512BW, handle
28506 PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
28507 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
28508 * config/i386/i386.h (TARGET_AVX512BW): Define.
28509 (TARGET_AVX512BW_P(x)): Ditto.
28510 * config/i386/i386.opt: Add mavx512bw.
28512 2014-08-11 Richard Biener <rguenther@suse.de>
28514 PR tree-optimization/62070
28515 * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
28516 Remove SSA checking.
28518 2014-08-11 Yury Gribov <y.gribov@samsung.com>
28520 * asan.c (asan_check_flags): New enum.
28521 (build_check_stmt_with_calls): Removed function.
28522 (build_check_stmt): Split inlining logic to
28523 asan_expand_check_ifn.
28524 (instrument_derefs): Rename parameter.
28525 (instrument_mem_region_access): Rename parameter.
28526 (instrument_strlen_call): Likewise.
28527 (asan_expand_check_ifn): New function.
28528 (asan_instrument): Remove old code.
28529 (pass_sanopt::execute): Change handling of
28530 asan-instrumentation-with-call-threshold.
28531 (asan_clear_shadow): Fix formatting.
28532 (asan_function_start): Likewise.
28533 (asan_emit_stack_protection): Likewise.
28534 * doc/invoke.texi (asan-instrumentation-with-call-threshold):
28535 Update description.
28536 * internal-fn.c (expand_ASAN_CHECK): New function.
28537 * internal-fn.def (ASAN_CHECK): New internal function.
28538 * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
28539 Update description.
28540 (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
28541 * tree.c: Small comment fix.
28543 2014-08-11 Yury Gribov <y.gribov@samsung.com>
28545 * gimple.c (gimple_call_fnspec): Support internal functions.
28546 (gimple_call_return_flags): Use const.
28547 * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
28548 * internal-fn.def: Add fnspec information.
28549 * internal-fn.h (internal_fn_fnspec): New function.
28550 (init_internal_fns): Declare new function.
28551 * internal-fn.c (internal_fn_fnspec_array): New global variable.
28552 (init_internal_fns): New function.
28553 * tree-core.h: Update macro call.
28554 * tree.c (build_common_builtin_nodes): Initialize internal fns.
28556 2014-08-10 Gerald Pfeifer <gerald@pfeifer.com>
28558 * lto-streamer.h (struct output_block::symbol): Change from
28559 struct symtab_node to plain symtab_node.
28560 (referenced_from_this_partition_p): Change first parameter
28561 from struct symtab_node to plain symtab_node.
28563 2014-08-10 Marek Polacek <polacek@redhat.com>
28566 * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
28568 2014-08-09 Jan Hubicka <hubicka@ucw.cz>
28570 * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
28571 DECL correctly; do not give up on types in static storage.
28573 2014-08-09 Paolo Carlini <paolo.carlini@oracle.com>
28575 * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
28577 2014-08-09 Roman Gareev <gareevroman@gmail.com>
28579 * graphite-isl-ast-to-gimple.c:
28580 (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
28582 * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
28584 2014-08-08 Guozhi Wei <carrot@google.com>
28586 * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
28588 2014-08-08 Cary Coutant <ccoutant@google.com>
28590 * dwarf2out.c (get_skeleton_type_unit): Remove.
28591 (output_skeleton_debug_sections): Remove skeleton type units.
28592 (output_comdat_type_unit): Likewise.
28593 (dwarf2out_finish): Likewise.
28595 2014-08-07 Yi Yang <ahyangyi@google.com>
28597 * predict.c (expr_expected_value_1): Remove the redundant assignment.
28599 2014-08-08 Richard Biener <rguenther@suse.de>
28601 * lto-streamer.h (struct lto_input_block): Make it a class
28602 with a constructor.
28603 (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
28604 (struct lto_function_header, struct lto_simple_header,
28605 struct lto_simple_header_with_strings,
28606 struct lto_decl_header, struct lto_function_header): Make
28607 a simple inheritance hieararchy. Remove unused fields.
28608 (struct lto_asm_header): Remove.
28609 * lto-streamer-out.c (produce_asm): Adjust.
28610 (lto_output_toplevel_asms): Likewise.
28611 (produce_asm_for_decls): Likewise.
28612 * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
28613 * data-streamer-in.c (string_for_index): Likewise.
28614 * ipa-inline-analysis.c (inline_read_section): Likewise.
28615 * ipa-prop.c (ipa_prop_read_section): Likewise.
28616 (read_replacements_section): Likewise.
28617 * lto-cgraph.c (input_cgraph_opt_section): Likewise.
28618 * lto-section-in.c (lto_create_simple_input_block): Likewise.
28619 (lto_destroy_simple_input_block): Likewise.
28620 * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
28621 (lto_input_toplevel_asms): Likewise.
28623 2014-08-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
28624 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
28625 Anna Tikhonova <anna.tikhonova@intel.com>
28626 Ilya Tocar <ilya.tocar@intel.com>
28627 Andrey Turetskiy <andrey.turetskiy@intel.com>
28628 Ilya Verbin <ilya.verbin@intel.com>
28629 Kirill Yukhin <kirill.yukhin@intel.com>
28630 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
28632 * common/config/i386/i386-common.c
28633 (OPTION_MASK_ISA_AVX512DQ_SET): Define.
28634 (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
28635 (ix86_handle_option): Handle OPT_mavx512dq.
28636 * config/i386/cpuid.h (bit_AVX512DQ): Define.
28637 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
28638 set -mavx512dq accordingly.
28639 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
28640 OPTION_MASK_ISA_AVX512DQ.
28641 * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
28642 (ix86_option_override_internal): Define PTA_AVX512DQ, handle
28643 PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
28644 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
28645 * config/i386/i386.h (TARGET_AVX512DQ): Define.
28646 (TARGET_AVX512DQ_P(x)): Ditto.
28647 * config/i386/i386.opt: Add mavx512dq.
28649 2014-08-08 Richard Biener <rguenther@suse.de>
28651 * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
28652 target_percent, target_percent_s): Export.
28653 (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
28654 fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
28655 fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
28656 fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
28657 fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
28658 Move to gimple-fold.c.
28659 (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
28661 (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
28662 mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
28663 (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
28664 memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
28665 (rewrite_call_expr_array): Remove.
28666 (fold_builtin_sprintf_chk): Likewise.
28667 (fold_builtin_snprintf_chk): Likewise.
28668 (fold_builtin_varargs): Remove handling of sprintf_chk,
28669 vsprintf_chk, snprintf_chk and vsnprintf_chk.
28670 (gimple_fold_builtin_sprintf_chk): Remove.
28671 (gimple_fold_builtin_snprintf_chk): Likewise.
28672 (gimple_fold_builtin_varargs): Likewise.
28673 (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
28674 * predict.c (optimize_bb_for_size_p): Handle NULL bb.
28675 * gimple.c (gimple_seq_add_seq_without_update): New function.
28676 * gimple.h (gimple_seq_add_seq_without_update): Declare.
28677 * gimple-fold.c: Include output.h.
28678 (gsi_replace_with_seq_vops): New function, split out from ...
28679 (gimplify_and_update_call_from_tree): ... here.
28680 (replace_call_with_value): New function.
28681 (replace_call_with_call_and_fold): Likewise.
28682 (var_decl_component_p): Moved from builtins.c.
28683 (gimple_fold_builtin_memory_op): Moved from builtins.c
28684 fold_builtin_memory_op and rewritten to GIMPLE.
28685 (gimple_fold_builtin_memset): Likewise.
28686 (gimple_fold_builtin_strcpy): Likewise.
28687 (gimple_fold_builtin_strncpy): Likewise.
28688 (gimple_fold_builtin_strcat): Likewise.
28689 (gimple_fold_builtin_fputs): Likewise.
28690 (gimple_fold_builtin_memory_chk): Likewise.
28691 (gimple_fold_builtin_stxcpy_chk): Likewise.
28692 (gimple_fold_builtin_stxncpy_chk): Likewise.
28693 (gimple_fold_builtin_snprintf_chk): Likewise.
28694 (gimple_fold_builtin_sprintf_chk): Likewise.
28695 (gimple_fold_builtin_strlen): New function.
28696 (gimple_fold_builtin_with_strlen): New function split out from
28697 gimple_fold_builtin.
28698 (gimple_fold_builtin): Change signature and handle
28699 bzero, memset, bcopy, memcpy, mempcpy and memmove folding
28700 here. Call gimple_fold_builtin_with_strlen.
28701 (gimple_fold_call): Adjust.
28703 2014-08-08 Kugan Vivekanandarajah <kuganv@linaro.org>
28705 * calls.c (precompute_arguments): Check
28706 promoted_for_signed_and_unsigned_p and set the promoted mode.
28707 (promoted_for_signed_and_unsigned_p): New function.
28708 (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
28709 and set the promoted mode.
28710 * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
28711 * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
28712 SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
28715 2014-08-08 Kugan Vivekanandarajah <kuganv@linaro.org>
28717 * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
28718 instead of SUBREG_PROMOTED_UNSIGNED_SET.
28719 (expand_call): Likewise.
28720 * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
28721 to get promoted mode.
28722 * combine.c (record_promoted_value): Skip > 0 comparison with
28723 SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
28724 * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
28725 of SUBREG_PROMOTED_UNSIGNED_P.
28726 (convert_modes): Likewise.
28727 (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
28728 Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
28729 (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
28730 SUBREG_PROMOTED_UNSIGNED_SET.
28731 * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
28732 instead of SUBREG_PROMOTED_UNSIGNED_SET.
28733 * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
28734 SUBREG_PROMOTED_SET.
28735 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
28736 SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
28737 * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
28738 of SUBREG_PROMOTED_UNSIGNED_P.
28739 * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
28740 (SUBREG_PROMOTED_SET): New define.
28741 (SUBREG_PROMOTED_GET): Likewise.
28742 (SUBREG_PROMOTED_SIGN): Likewise.
28743 (SUBREG_PROMOTED_SIGNED_P): Likewise.
28744 (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
28745 (SUBREG_PROMOTED_UNSIGNED_P): Updated.
28746 * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
28747 instead of SUBREG_PROMOTED_UNSIGNED_GET.
28748 (nonzero_bits1): Skip > 0 comparison with the results as
28749 SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
28750 (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
28751 of !SUBREG_PROMOTED_UNSIGNED_P.
28752 * simplify-rtx.c (simplify_unary_operation_1): Use new
28753 SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
28754 (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
28755 SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
28756 SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
28758 2014-08-07 Jan Hubicka <hubicka@ucw.cz>
28760 * ipa-devirt.c: Include gimple-pretty-print.h
28761 (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
28763 (decl_maybe_in_construction_p): Fix conditional on cdtor check
28764 (get_polymorphic_call_info): Fix return value
28765 (type_change_info): New sturcture based on ipa-prop
28767 (noncall_stmt_may_be_vtbl_ptr_store): New predicate
28768 based on ipa-prop variant.
28769 (extr_type_from_vtbl_ptr_store): New function
28770 based on ipa-prop variant.
28771 (record_known_type): New function.
28772 (check_stmt_for_type_change): New function.
28773 (get_dynamic_type): New function.
28774 * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
28775 * tree-ssa-pre.c: ipa-utils.h
28776 (eliminate_dom_walker::before_dom_children): Use ipa-devirt
28777 machinery; sanity check with ipa-prop devirtualization.
28778 * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
28781 2014-08-07 Trevor Saunders <tsaunders@mozilla.com>
28783 * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
28784 * alias.c, cfgexpand.c, cgraphbuild.c,
28785 config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
28786 config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
28787 config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
28788 config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
28789 config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
28790 config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
28791 config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
28792 dse.c, except.c, gengtype.c, gimple-expr.c,
28793 gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
28794 ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
28795 tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
28796 tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
28797 tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
28798 tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
28800 * pointer-set.c: Remove file.
28801 * pointer-set.h: Remove file.
28803 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28805 * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
28806 * config/arm/types.md (f_sels, f_seld): Delete.
28808 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28810 * config/aarch64/aarch64.md (absdi2): Set simd attribute.
28811 (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
28812 (aarch64_movdi_<mode>high): Likewise.
28813 (aarch64_mov<mode>high_di): Likewise.
28814 (aarch64_movdi_<mode>low): Likewise.
28815 (aarch64_mov<mode>low_di): Likewise.
28816 (aarch64_movtilow_tilow): Likewise.
28817 Add comment explaining usage of fp,simd attributes and of
28818 TARGET_FLOAT and TARGET_SIMD.
28820 2014-08-07 Ian Bolton <ian.bolton@arm.com>
28821 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28823 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
28824 Use MOVN when one of the half-words is 0xffff.
28826 2014-08-07 Marat Zakirov <m.zakirov@samsung.com>
28828 * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
28830 2014-08-07 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
28832 * haifa-sched.c (SCHED_SORT): Delete. Macro used exactly once.
28833 (enum rfs_decition:RFS_*): New constants wrapped in an enum.
28834 (rfs_str): String corresponding to RFS_* constants.
28835 (rank_for_schedule_stats_t): New typedef.
28836 (rank_for_schedule_stats): New static variable.
28837 (rfs_result): New static function.
28838 (rank_for_schedule): Track statistics for deciding heuristics.
28839 (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
28841 (ready_sort): Use them for debug printouts.
28842 (schedule_block): Init statistics state. Print statistics on
28843 rank_for_schedule decisions.
28845 2014-08-07 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
28847 * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
28849 2014-08-07 Ilya Tocar <ilya.tocar@intel.com>
28851 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
28854 2014-08-07 Trevor Saunders <tsaunders@mozilla.com>
28856 * hash-map.h (default_hashmap_traits): Adjust overloads of hash
28857 function to not conflict.
28858 * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
28859 gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
28860 lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
28861 tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
28862 tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
28865 2014-08-07 Marek Polacek <polacek@redhat.com>
28867 * fold-const.c (fold_binary_loc): Add folding of
28868 (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
28870 2013-08-07 Ilya Enkovich <ilya.enkovich@intel.com>
28872 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
28873 instead of type size.
28874 (ASM_FINISH_DECLARE_OBJECT): Likewise.
28876 2014-08-07 Marat Zakirov <m.zakirov@samsung.com>
28878 * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
28879 (*thumb1_movqi_insn): Likewise.
28880 * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
28882 2014-08-07 Tom de Vries <tom@codesourcery.com>
28884 * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
28885 (glibc_2_11_or_earlier): Remove effective-target keywords.
28887 2014-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
28889 * config/arm/arm.c (bdesc_2arg): Fix typo.
28890 (arm_atomic_assign_expand_fenv): Remove The default implementation.
28892 2014-08-07 Zhenqiang Chen <zhenqiang.chen@arm.com>
28894 * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
28896 2014-08-06 Vladimir Makarov <vmakarov@redhat.com>
28899 * haifa-sched.c (advance_one_cycle): Fix dump.
28900 (schedule_block): Don't advance cycle if we are already at the
28901 beginning of the cycle.
28903 2014-08-06 Martin Jambor <mjambor@suse.cz>
28906 * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
28908 2014-08-06 Richard Biener <rguenther@suse.de>
28911 * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
28913 (lto_input_tree): Pop SCCs here.
28915 2014-08-06 Richard Biener <rguenther@suse.de>
28917 PR tree-optimization/61320
28918 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
28919 handle misaligned loads.
28921 2014-08-06 Alan Lawrence <alan.lawrence@arm.com>
28923 * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
28924 (aarch64_expand_vec_perm_const): Check for dup before zip.
28926 2014-08-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28928 * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
28929 CONST_INT_P instead of GET_CODE and compare.
28930 (aarch64_select_cc_mode): Likewise.
28931 (aarch64_print_operand): Likewise.
28932 (aarch64_rtx_costs): Likewise.
28933 (aarch64_simd_valid_immediate): Likewise.
28934 (aarch64_simd_check_vect_par_cnst_half): Likewise.
28935 (aarch64_simd_emit_pair_result_insn): Likewise.
28937 2014-08-05 David Malcolm <dmalcolm@redhat.com>
28939 * gdbhooks.py (find_gcc_source_dir): New helper function.
28940 (class PassNames): New class, locating and parsing passes.def.
28941 (class BreakOnPass): New command "break-on-pass".
28943 2014-08-05 Trevor Saunders <tsaunders@mozilla.com>
28945 * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
28948 2014-08-05 Richard Biener <rguenther@suse.de>
28950 PR rtl-optimization/61672
28951 * emit-rtl.h (mem_attrs_eq_p): Declare.
28952 * emit-rtl.c (mem_attrs_eq_p): Export. Handle NULL mem-attrs.
28953 * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
28954 * cfgcleanup.c (merge_memattrs): Likewise.
28955 Include emit-rtl.h.
28957 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28959 * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
28960 rather than singleton vectors.
28961 (vqdmlsls_lane_s32): Likewise.
28963 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28965 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
28966 Use VSDQ_HSI mode iterator.
28967 (aarch64_sqrdmulh_laneq<mode>): Likewise.
28968 (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
28969 * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
28970 Use BUILTIN_VDQHS macro.
28971 (sqrdmulh_laneq): Likewise.
28972 * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
28973 (vqdmlals_laneq_s32): Likewise.
28974 (vqdmlslh_laneq_s16): Likewise.
28975 (vqdmlsls_laneq_s32): Likewise.
28976 (vqdmulhh_laneq_s16): Likewise.
28977 (vqdmulhs_laneq_s32): Likewise.
28978 (vqrdmulhh_laneq_s16): Likewise.
28979 (vqrdmulhs_laneq_s32): Likewise.
28981 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28983 * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
28984 (vmuld_laneq_f64): Likewise.
28985 (vmuls_laneq_f32): Likewise.
28986 (vmul_n_f64): Likewise.
28987 (vmuld_lane_f64): Reimplement in C.
28988 (vmuls_lane_f32): Likewise.
28990 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28992 * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
28994 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
28996 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28998 * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
28999 (rbitsi2): Likewise.
29000 (*arm_rev): Set predicable and predicable_short_it attributes.
29002 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29004 * convert.c (convert_to_integer): Guard transformation to lrint by
29007 2014-08-05 James Greenhalgh <james.greenhalgh@arm.com>
29009 * config/aarch64/aarch64-builtins.c
29010 (aarch64_simd_builtin_type_mode): Delete.
29011 (v8qi_UP): Remap to V8QImode.
29012 (v4hi_UP): Remap to V4HImode.
29013 (v2si_UP): Remap to V2SImode.
29014 (v2sf_UP): Remap to V2SFmode.
29015 (v1df_UP): Remap to V1DFmode.
29016 (di_UP): Remap to DImode.
29017 (df_UP): Remap to DFmode.
29018 (v16qi_UP):V16QImode.
29019 (v8hi_UP): Remap to V8HImode.
29020 (v4si_UP): Remap to V4SImode.
29021 (v4sf_UP): Remap to V4SFmode.
29022 (v2di_UP): Remap to V2DImode.
29023 (v2df_UP): Remap to V2DFmode.
29024 (ti_UP): Remap to TImode.
29025 (ei_UP): Remap to EImode.
29026 (oi_UP): Remap to OImode.
29027 (ci_UP): Map to CImode.
29028 (xi_UP): Remap to XImode.
29029 (si_UP): Remap to SImode.
29030 (sf_UP): Remap to SFmode.
29031 (hi_UP): Remap to HImode.
29032 (qi_UP): Remap to QImode.
29033 (aarch64_simd_builtin_datum): Make mode a machine_mode.
29034 (VAR1): Build builtin name.
29035 (aarch64_init_simd_builtins): Remove dead code.
29037 2014-08-05 Roman Gareev <gareevroman@gmail.com>
29039 * graphite-isl-ast-to-gimple.c:
29040 (set_options): New function.
29041 (scop_to_isl_ast): Add calling of set_options.
29043 2014-08-05 Jakub Jelinek <jakub@redhat.com>
29045 * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
29046 (analyze_iv_to_split_insn): Don't initialize them.
29047 (get_ivts_expr): Removed.
29048 (allocate_basic_variable, insert_base_initialization): Use
29049 SET_SRC instead of *get_ivts_expr.
29050 (split_iv): Use &SET_SRC instead of get_ivts_expr.
29052 2014-08-05 Roman Gareev <gareevroman@gmail.com>
29054 * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
29055 (translate_isl_ast_for_loop): Add checking of the
29056 flag_loop_parallelize_all.
29057 (ast_build_before_for): New function.
29058 (scop_to_isl_ast): Add checking of the
29059 flag_loop_parallelize_all.
29060 * graphite-dependences.c: Move the defenition of the
29061 scop_get_dependences from graphite-optimize-isl.c to this file.
29062 (apply_schedule_on_deps): Add checking of the ux's emptiness.
29063 (carries_deps): Add checking of the x's value.
29064 * graphite-optimize-isl.c: Move the defenition of the
29065 scop_get_dependences to graphite-dependences.c.
29066 * graphite-poly.h: Add declarations of scop_get_dependences
29069 2014-08-04 Rohit <rohitarulraj@freescale.com>
29072 * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
29074 (alt_reg_names): Likewise.
29075 (rs6000_dwarf_register_span): For SPE high registers, replace
29076 dwarf register numbers with GCC hard register numbers.
29077 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
29078 (rs6000_dbx_register_number): For SPE high registers, return dwarf
29079 register number for the corresponding GCC hard register number.
29080 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
29081 newly added GCC hard register numbers for SPE high registers.
29082 (DWARF_FRAME_REGISTERS): Likewise.
29083 (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
29084 (DWARF_FRAME_REGNUM): Likewise.
29085 (FIXED_REGISTERS): Likewise.
29086 (CALL_USED_REGISTERS): Likewise.
29087 (CALL_REALLY_USED_REGISTERS): Likewise.
29088 (REG_ALLOC_ORDER): Likewise.
29089 (enum reg_class): Likewise.
29090 (REG_CLASS_NAMES): Likewise.
29091 (REG_CLASS_CONTENTS): Likewise.
29092 (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
29094 2014-08-04 Richard Biener <rguenther@suse.de>
29096 * gimple-fold.h (gimple_fold_builtin): Remove.
29097 * gimple-fold.c (gimple_fold_builtin): Make static.
29098 * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
29099 fold_stmt, not gimple_fold_builtin.
29101 2014-08-04 Martin Liska <mliska@suse.cz>
29103 * cgraph.h (csi_end_p): Removed.
29104 (csi_next): Likewise.
29105 (csi_node): Likewise.
29106 (csi_start): Likewise.
29107 (cgraph_node_in_set_p): Likewise.
29108 (cgraph_node_set_size): Likewise.
29109 (vsi_end_p): Likewise.
29110 (vsi_next): Likewise.
29111 (vsi_node): Likewise.
29112 (vsi_start): Likewise.
29113 (varpool_node_set_size): Likewise.
29114 (cgraph_node_set_nonempty_p): Likewise.
29115 (varpool_node_set_nonempty_p): Likewise.
29116 * cgraphunit.c (cgraph_process_new_functions): vec replaces
29118 * ipa-inline-transform.c: Likewise.
29119 * ipa-utils.c (cgraph_node_set_new): Removed.
29120 (cgraph_node_set_add): Likewise.
29121 (cgraph_node_set_remove): Likewise.
29122 (cgraph_node_set_find): Likewise.
29123 (dump_cgraph_node_set): Likewise.
29124 (debug_cgraph_node_set): Likewise.
29125 (free_cgraph_node_set): Likewise.
29126 (varpool_node_set_new): Likewise.
29127 (varpool_node_set_add): Likewise.
29128 (varpool_node_set_remove): Likewise.
29129 (varpool_node_set_find): Likewise.
29130 (dump_varpool_node_set): Likewise.
29131 (free_varpool_node_set): Likewise.
29132 (debug_varpool_node_set): Likewise.
29133 * tree-emutls.c (struct tls_var_data):
29134 (emutls_index): Removed.
29135 (emutls_decl): Likewise.
29136 (gen_emutls_addr): Function implementation uses newly added
29137 hash_map<varpool_node *, tls_var_data>.
29138 (clear_access_vars): Likewise.
29139 (create_emultls_var): Likewise.
29140 (ipa_lower_emutls): Likewise.
29141 (reset_access): New function.
29143 2014-08-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
29145 * config/i386/i386.c (ix86_option_override_internal): Add
29146 PTA_RDRND and PTA_MOVBE for bdver4.
29148 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29149 James Greenhalgh <james.greenhalgh@arm.com>
29151 * doc/md.texi (clrsb): Document.
29152 (clz): Change reference to x into operand 1.
29154 (popcount): Likewise.
29156 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29159 * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
29160 move to subtarget in serial version if result is ignored.
29162 2014-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29163 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29165 * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
29166 to any two insns. Update comment. Rename to sched_macro_fuse_insns.
29167 (sched_analyze_insn): Update use of try_group_insn to
29168 sched_macro_fuse_insns.
29169 * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
29170 arguments that are not conditional jumps.
29172 2014-08-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
29174 * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
29175 family information. Handle BTVER2 cpu with cpuid family value.
29177 2014-08-04 Tom de Vries <tom@codesourcery.com>
29179 * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
29180 (glibc_2_11_or_earlier): Document effective-target keywords.
29182 2014-08-01 Jan Hubicka <hubicka@ucw.cz>
29184 * ipa-devirt.c (odr_type_warn_count): Add type.
29185 (possible_polymorphic_call_targets): Set it.
29186 (ipa_devirt): Use it.
29188 2014-08-01 Jan Hubicka <hubicka@ucw.cz>
29190 * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
29192 * ipa-devirt.c: Include hash-map.h
29193 (struct polymorphic_call_target_d): Add type_warning and decl_warning.
29194 (clear_speculation): Break out of ...
29195 (get_class_context): ... here; speed up handling obviously useless
29197 (odr_type_warn_count, decl_warn_count): New structures.
29198 (final_warning_record): New structure.
29199 (final_warning_records): New static variable.
29200 (possible_polymorphic_call_targets): Cleanup handling of
29201 speculative info; do not build speculation when user do not care;
29202 record info about warnings when asked for.
29203 (add_decl_warning): New function.
29204 (type_warning_cmp): New function.
29205 (decl_warning_cmp): New function.
29206 (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
29207 (gate): Enable pass when warnings are requested.
29208 * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
29211 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
29213 * hash-map.h (default_hashmap_traits::mark_key_deleted):
29215 (hash_map::remove): New method.
29216 (hash_map::traverse): New method.
29217 * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
29218 ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
29219 tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
29220 tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
29221 tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
29222 tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
29225 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
29227 * hash-set.h: new File.
29228 * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
29229 cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
29230 ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
29231 lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
29232 tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
29233 tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
29234 tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
29235 varpool.c: Use hash_set instead of pointer_set.
29237 2014-08-01 Alan Lawrence <alan.lawrence@arm.com>
29239 * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
29241 2014-08-01 Jiong Wang <jiong.wang@arm.com>
29243 * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
29244 for frame access when strict_p is false.
29246 2014-08-01 Renlin Li <renlin.li@arm.com>
29247 2014-08-01 Jiong Wang <jiong.wang@arm.com>
29249 * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
29250 aarch64_offset_7bit_signed_scaled_p, remove static and use it.
29251 * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
29253 * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
29255 * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
29256 aarch64_mem_pair_offset.
29258 2014-08-01 Jiong Wang <jiong.wang@arm.com>
29260 * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
29262 (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
29263 * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
29265 2014-08-01 Matthew Fortune <matthew.fortune@imgtec.com>
29267 * config/mips/mips.h (REGISTER_PREFIX): Define macro.
29269 2014-08-01 James Greenhalgh <james.greenhalgh@arm.com>
29271 PR regression/61510
29272 * cgraphunit.c (analyze_functions): Use get_create rather than get
29273 for decls which are clones of abstract functions.
29275 2014-08-01 Martin Liska <mliska@suse.cz>
29277 * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
29278 * ipa-prop.h (count_formal_params): Global function created from static.
29279 * ipa-prop.c (count_formal_params): Likewise.
29280 * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
29281 profiles for semantically equivalent functions.
29282 * passes.c (do_per_function): If we load body of a function
29283 during WPA, this condition should behave same.
29284 * varpool.c (ctor_for_folding): More tolerant assert for variable
29285 aliases created during WPA.
29287 2014-08-01 Martin Liska <mliska@suse.cz>
29289 * doc/invoke.texi (Options That Control Optimization): Documentation
29290 for -foptimize-strlen introduced. Optimization levels default options
29293 2014-08-01 Jakub Jelinek <jakub@redhat.com>
29295 * opts.c (common_handle_option): Handle -fsanitize=alignment.
29296 * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
29297 (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
29299 * stor-layout.h (min_align_of_type): New prototype.
29300 * asan.c (pass_sanopt::execute): Don't perform gsi_next if
29301 ubsan_expand* told us not to do it. Remove the extra gsi_end_p
29303 * ubsan.c: Include builtins.h.
29304 (ubsan_expand_bounds_ifn): Change return type to bool,
29305 always return true.
29306 (ubsan_expand_null_ifn): Change return type to bool, change
29307 argument to gimple_stmt_iterator *. Handle both null and alignment
29308 sanitization, take type from ckind argument's type rather than
29310 (instrument_member_call): Removed.
29311 (instrument_mem_ref): Remove t argument, add mem and base arguments.
29312 Handle both null and alignment sanitization, don't say whole
29313 struct access is member access. Build 3 argument IFN_UBSAN_NULL
29314 call instead of 2 argument.
29315 (instrument_null): Adjust instrument_mem_ref caller. Don't
29316 instrument calls here.
29317 (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
29318 like SANITIZE_NULL.
29319 * stor-layout.c (min_align_of_type): New function.
29320 * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
29321 Or it into SANITIZE_UNDEFINED.
29322 * doc/invoke.texi (-fsanitize=alignment): Document.
29324 2014-07-31 Andi Kleen <ak@linux.intel.com>
29326 * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
29328 2014-07-31 Andi Kleen <ak@linux.intel.com>
29330 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
29332 (vn_reference_compute_hash): Dito.
29333 (vn_nary_op_compute_hash): Dito.
29334 (vn_phi_compute_hash): Dito.
29335 * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
29337 2014-07-31 Andi Kleen <ak@linux.intel.com>
29339 * tree-ssa-dom.c (iterative_hash_exprs_commutative):
29340 Rename to inchash:add_expr_commutative. Convert to inchash.
29341 (iterative_hash_hashable_expr): Rename to
29342 inchash:add_hashable_expr. Convert to inchash.
29343 (avail_expr_hash): Dito.
29345 2014-07-31 Andi Kleen <ak@linux.intel.com>
29347 * ipa-devirt.c (polymorphic_call_target_hasher::hash):
29348 Convert to inchash.
29350 2014-07-31 Andi Kleen <ak@linux.intel.com>
29352 * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
29354 2014-07-31 Andi Kleen <ak@linux.intel.com>
29356 * Makefile.in (OBJS): Add rtlhash.o
29357 * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
29358 (loc_checksum): Dito.
29359 (loc_checksum_ordered): Dito.
29360 (hash_loc_operands): Dito.
29362 (hash_loc_list): Dito.
29363 * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
29364 * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
29365 * rtlhash.c: New file.
29366 * rtlhash.h: New file.
29368 2014-07-31 Andi Kleen <ak@linux.intel.com>
29370 * inchash.h (inchash): Change inchash class to namespace.
29371 (class hash): ... Rename from inchash.
29372 (add_object): Move from macro to class template.
29373 * lto-streamer-out.c (hash_tree): Change inchash
29375 * tree.c (build_type_attribute_qual_variant): Dito.
29376 (type_hash_list): Dito.
29377 (attribute_hash_list): Dito.
29378 (iterative_hstate_expr): Rename to inchash::add_expr
29379 (build_range_type_1): Change inchash to inchash::hash
29380 and use hash::add_expr.
29381 (build_array_type_1): Dito.
29382 (build_function_type): Dito
29383 (build_method_type_directly): Dito.
29384 (build_offset_type): Dito.
29385 (build_complex_type): Dito.
29386 (make_vector_type): Dito.
29387 * tree.h (iterative_hash_expr): Dito.
29389 2014-07-31 Chen Gang <gang.chen.5i5j@gmail.com>
29391 * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
29393 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
29395 * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
29396 correct alphabetical position.
29397 (vpaddd_f64): Rewrite using builtins.
29398 (vpaddd_s64): Move to correct alphabetical position.
29401 2014-07-31 Oleg Endo <olegendo@gcc.gnu.org>
29404 * config/sh/sh.c (sh_legitimate_address_p,
29405 sh_legitimize_reload_address): Handle reg+reg address modes when
29406 ALLOW_INDEXED_ADDRESS is false.
29407 * config/sh/predicates.md (general_movsrc_operand,
29408 general_movdst_operand): Likewise.
29410 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
29412 * config/aarch64/aarch64-builtins.c
29413 (aarch64_gimple_fold_builtin): Don't fold reduction operations for
29416 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
29418 * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
29419 the generated mask based on BYTES_BIG_ENDIAN.
29420 (aarch64_simd_check_vect_par_cnst_half): New.
29421 * config/aarch64/aarch64-protos.h
29422 (aarch64_simd_check_vect_par_cnst_half): New.
29423 * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
29424 the check out to aarch64_simd_check_vect_par_cnst_half.
29425 (vect_par_cnst_lo_half): Likewise.
29426 * config/aarch64/aarch64-simd.md
29427 (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
29428 (move_hi_quad_<mode>): Always generate a low mask.
29430 2014-07-30 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
29432 * doc/invoke.texi (AVR Options): Add documentation about
29433 __AVR_DEVICE_NAME__ built-in macro.
29435 2014-07-31 Charles Baylis <charles.baylis@linaro.org>
29438 * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
29439 constraints are satisfied.
29440 (<shift>di3_neon): Likewise.
29442 2014-07-31 Richard Biener <rguenther@suse.de>
29444 PR tree-optimization/61964
29445 * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
29446 by structural equality.
29448 2014-07-31 Yury Gribov <y.gribov@samsung.com>
29450 * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
29451 * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
29452 * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
29454 * gcc.c (sanitize_spec_function): Support new option.
29455 (SANITIZER_SPEC): Remove now redundant check.
29456 * opts.c (common_handle_option): Support new option.
29457 (finish_options): Check for incompatibilities.
29458 * toplev.c (process_options): Split userspace-specific checks.
29460 2014-07-31 Richard Biener <rguenther@suse.de>
29462 * lto-streamer.h (struct output_block): Remove global.
29463 (struct data_in): Remove labels, num_named_labels and
29464 num_unnamed_labels.
29465 * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
29466 * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
29468 2014-07-31 Marc Glisse <marc.glisse@inria.fr>
29471 * common.opt (-Wreturn-local-addr): Moved from c.opt.
29472 * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
29473 (isolate_path): New argument to avoid inserting a trap.
29474 (find_implicit_erroneous_behaviour): Handle returning the address
29475 of a local variable.
29476 (find_explicit_erroneous_behaviour): Likewise.
29478 2014-07-31 Bingfeng Mei <bmei@broadcom.com>
29481 * toplev.c (init_random_seed): Move piece of code never called to
29483 (set_random_seed): see above.
29485 2014-07-31 Tom de Vries <tom@codesourcery.com>
29487 * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
29489 2014-07-31 Richard Sandiford <rdsandiford@googlemail.com>
29491 * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
29492 (compute_regs_asm_clobbered): Use extract_asm_operands instead.
29494 2014-07-31 Richard Biener <rguenther@suse.de>
29496 * data-streamer.h (streamer_write_data_stream): Declare here,
29498 * lto-streamer.h (lto_output_data_stream): ... this. Remove.
29499 * lto-cgraph.c (lto_output_node): Adjust.
29500 (lto_output_varpool_node): Likewise.
29501 * data-streamer-out.c (streamer_string_index): Likewise.
29502 (streamer_write_data_stream, lto_append_block): Move from ...
29503 * lto-section-out.c (lto_output_data_stream,
29504 lto_append_block): ... here.
29506 2014-07-30 Mike Stump <mikestump@comcast.net>
29508 * configure.ac: Also check for popen.
29509 * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
29510 * configure: Regenerate.
29511 * config.in: Regenerate.
29513 2014-07-30 Martin Jambor <mjambor@suse.cz>
29515 * tree-sra.c (sra_ipa_modify_assign): Change type of the first
29516 parameter to gimple.
29518 2014-07-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
29520 * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
29521 address as second parameter to __tpf_eh_return routine.
29523 2014-07-30 Jiong Wang <jiong.wang@arm.com>
29525 * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
29528 2014-07-30 Tom Tromey <tromey@redhat.com>
29531 * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
29532 * doc/extend.texi (Type Attributes): Document designated_init
29535 2014-07-30 Roman Gareev <gareevroman@gmail.com>
29537 * graphite-isl-ast-to-gimple.c:
29538 (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
29539 (gcc_expression_from_isl_expression): Pass type to
29540 gcc_expression_from_isl_ast_expr_id.
29542 2014-07-30 Richard Biener <rguenther@suse.de>
29544 * lto-streamer.h (lto_write_data): New function.
29545 * langhooks.c (lhd_append_data): Do not free block.
29546 * lto-section-out.c (lto_write_data): New function writing
29547 raw data to the current section.
29548 (lto_write_stream): Adjust for langhook semantic change.
29549 (lto_destroy_simple_output_block): Write header directly.
29550 * lto-opts.c (lto_write_options): Write options directly.
29551 * lto-streamer-out.c (produce_asm): Write heaeder directly.
29552 (lto_output_toplevel_asms): Likewise.
29553 (copy_function_or_variable): Copy data directly.
29554 (write_global_references): Output index table directly.
29555 (lto_output_decl_state_refs): Likewise.
29556 (write_symbol): Write data directly.
29557 (produce_symtab): Adjust.
29558 (produce_asm_for_decls): Output header and refs directly.
29560 2014-07-29 Jan Hubicka <hubicka@ucw.cz>
29562 * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
29563 to speculative_targets
29564 (get_class_context): Fix handling of contextes without outer type;
29565 avoid matching non-polymorphic types in LTO.
29566 (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
29567 parameter to speculative_targetsp; handle speculation.
29568 (dump_possible_polymorphic_call_targets): Update dumping.
29570 2014-07-29 Jan Hubicka <hubicka@ucw.cz>
29572 * common.opt (Wodr): Enable by default.
29574 2014-07-29 Olivier Hainque <hainque@adacore.com>
29576 * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
29578 2014-07-29 H.J. Lu <hongjiu.lu@intel.com>
29581 * gengtype.c (strtoken): New function.
29582 (create_user_defined_type): Replace strtok with strtoken.
29584 2014-07-29 Nathan Sidwell <nathan@acm.org>
29586 * gcov-io.c (gcov_var): Make hidden.
29587 * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
29588 (gcov_do_dump): Declare.
29589 (gcov_output_files): Call gcov_do_dump, not gcov_exit).
29591 2014-07-29 Martin Jambor <mjambor@suse.cz>
29593 * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
29594 parameter to gimple.
29595 (sra_modify_assign): Likewise.
29597 2014-07-29 Richard Biener <rguenther@suse.de>
29599 PR middle-end/52478
29600 * expr.c (expand_expr_real_2): Revert last change.
29602 2014-07-28 Jan Hubicka <hubicka@ucw.cz>
29604 * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
29605 * cgraph.h (cgraph_indirect_call_info): Add speculative data.
29606 * gimple-fold.c (fold_gimple_assign): Fix check for virtual
29608 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
29609 (contains_type_p): Forward declare.
29610 (polymorphic_call_target_hasher::hash): Hash speculative info.
29611 (polymorphic_call_target_hasher::equal): Compare speculative info.
29612 (get_class_context): Handle speuclation.
29613 (contains_type_p): Update.
29614 (get_polymorphic_call_info_for_decl): Update.
29615 (walk_ssa_copies): Break out from ...
29616 (get_polymorphic_call_info): ... here; set speculative context
29618 * ipa-prop.c (ipa_write_indirect_edge_info,
29619 ipa_read_indirect_edge_info): Stream speculative context.
29620 * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
29621 (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
29622 SPECULATIVE_MAYBE_DERIVED_TYPE).
29623 (possible_polymorphic_call_targets overriders): Update.
29624 (dump_possible_polymorphic_call_targets overriders): Update.
29625 (dump_possible_polymorphic_call_target_p overriders): Update.
29627 2014-07-28 Jan Hubicka <hubicka@ucw.cz>
29629 * gimple-fold.c (fold_gimple_assign): Fix condition guarding
29630 ipa-devirt path; fix thinko there.
29632 2014-07-28 Trevor Saunders <tsaunders@mozilla.com>
29634 * config/i386/i386.c (ix86_return_in_memory): Replace one
29635 ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
29637 2014-07-28 Marek Polacek <polacek@redhat.com>
29639 * doc/invoke.texi (-Wno-odr): Fix @item entry. Tweak wording.
29641 2014-07-28 Peter Bergner <bergner@vnet.ibm.com>
29643 * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
29644 * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
29645 * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
29646 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
29647 (USE_LD_AS_NEEDED): Likewise.
29648 (ASM_APP_ON): Likewise.
29649 (ASM_APP_OFF): Likewise.
29650 (TARGET_POSIX_IO): Likewise.
29651 * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
29652 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
29653 (USE_LD_AS_NEEDED): Likewise.
29654 (ASM_APP_ON): Likewise.
29655 (ASM_APP_OFF): Likewise.
29656 (TARGET_POSIX_IO): Likewise.
29658 2014-07-28 Eric Botcazou <ebotcazou@adacore.com>
29660 PR middle-end/61734
29661 * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
29662 operators other than the equality operators.
29664 2014-07-28 Richard Biener <rguenther@suse.de>
29666 PR middle-end/52478
29667 * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
29668 sure to register SImode ones, not only >= word_mode ones.
29669 * expr.c (expand_expr_real_2): When expanding -ftrapv
29670 binops do not use OPTAB_LIB_WIDEN.
29672 2014-07-28 Richard Sandiford <rdsandiford@googlemail.com>
29674 PR middle-end/61919
29675 * tree-outof-ssa.c (insert_partition_copy_on_edge)
29676 (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
29677 (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
29678 inserting them in the insn stream.
29680 2014-07-28 Marek Polacek <polacek@redhat.com>
29682 PR middle-end/61913
29683 * common.opt (Wodr): Add Var.
29685 2014-07-28 Richard Biener <rguenther@suse.de>
29687 PR tree-optimization/61921
29688 * tree-ssa-structalias.c (create_variable_info_for_1): Check
29689 if there is a varpool node before dereferencing it.
29691 2014-07-28 Roman Gareev <gareevroman@gmail.com>
29693 * graphite-sese-to-poly.c:
29694 (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
29695 id of the pbb), which contains pointer to the pbb1.
29697 * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
29699 2014-07-28 Roman Gareev <gareevroman@gmail.com>
29701 * graphite-isl-ast-to-gimple.c:
29702 (graphite_create_new_guard): New function.
29703 (translate_isl_ast_node_if): New function.
29704 (translate_isl_ast): Add calling of translate_isl_ast_node_if.
29706 * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
29708 2014-07-27 Anthony Green <green@moxielogic.com>
29710 * config.gcc: Add moxie-*-moxiebox* configuration.
29711 * config/moxie/moxiebox.h: New file.
29713 2014-07-26 Andrew Pinski <apinski@cavium.com>
29715 * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
29716 from the read only register.
29718 2014-07-26 Richard Sandiford <rdsandiford@googlemail.com>
29720 * ira-costs.c (find_costs_and_classes): For -O0, use the best class
29721 as the allocation class if it isn't likely to be spilled.
29723 2014-07-26 Richard Sandiford <rdsandiford@googlemail.com>
29725 * rtl.h (tls_referenced_p): Declare.
29726 * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
29727 * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
29728 (mips_cannot_force_const_mem): Use tls_referenced_p.
29729 * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
29730 * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
29731 instead of pa_tls_referenced_p.
29732 * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
29733 (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
29734 (pa_legitimate_constant_p): Likewise.
29735 (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
29736 * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
29737 (rs6000_cannot_force_const_mem, rs6000_emit_move)
29738 (rs6000_address_for_altivec): Use tls_referenced_p instead of
29739 rs6000_tls_referenced_p.
29740 (rs6000_tls_symbol_ref_1): Delete.
29742 2014-07-26 Marc Glisse <marc.glisse@inria.fr>
29745 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
29746 Optimize inverse of a VEC_CONCAT.
29748 2014-07-25 Xinliang David Li <davidxl@google.com>
29750 * params.def: New parameter.
29751 * coverage.c (get_coverage_counts): Check new flag.
29752 (coverage_compute_profile_id): Check new flag.
29753 (coverage_begin_function): Check new flag.
29754 (coverage_end_function): Check new flag.
29755 * value-prof.c (coverage_node_map_initialized_p): New function.
29756 (init_node_map): Populate map with all functions.
29757 * doc/invoke.texi: Document new parameter.
29759 2014-07-25 Jan Hubicka <hubicka@ucw.cz>
29760 Richard Biener <rguenther@suse.de>
29762 * lto-streamer-out.c (struct sccs): Turn to ...
29763 (class DFS): ... this one; refactor the DFS walk so it can
29764 be re-done on per-SCC basis.
29765 (DFS::DFS): New constructor.
29766 (DFS::~DFS): New destructor.
29767 (hash_tree): Add new MAP argument holding in-SCC hash values;
29768 remove POINTER_TYPE hashing hack.
29769 (scc_entry_compare): Rename to ...
29770 (DFS::scc_entry_compare): ... this one.
29771 (hash_scc): Rename to ...
29772 (DFS::hash_scc): ... this one; pass output_block instead
29773 of streamer_cache; work harder to get unique and stable SCC
29775 (DFS_write_tree): Rename to ...
29776 (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
29777 (lto_output_tree): Update.
29779 2014-07-25 Andi Kleen <ak@linux.intel.com>
29781 * lto-streamer-out.c (hash_tree): Convert to inchash.
29783 2014-07-25 Andi Kleen <ak@linux.intel.com>
29785 * tree.c (build_type_attribute_qual_variant): Use inchash.
29786 (type_hash_list): Dito.
29787 (attribute_hash_list): Dito
29788 (iterative_hstate_expr): Dito.
29789 (iterative_hash_expr): Dito.
29790 (build_range_type_1): Dito.
29791 (build_array_type_1): Dito.
29792 (build_function_type): Dito.
29793 (build_method_type_directly): Dito.
29794 (build_offset_type): Dito.
29795 (build_complex_type): Dito.
29796 (make_vector_type): Dito.
29797 * tree.h (iterative_hash_expr): Add compat wrapper.
29798 (iterative_hstate_expr): Add.
29800 2014-07-25 Andi Kleen <ak@linux.intel.com>
29802 * Makefile.in (OBJS): Add inchash.o.
29803 (PLUGIN_HEADERS): Add inchash.h.
29804 * ipa-devirt.c: Include inchash.h.
29805 * lto-streamer-out.c: Dito.
29806 * tree-ssa-dom.c: Dito.
29807 * tree-ssa-pre.c: Dito.
29808 * tree-ssa-sccvn.c: Dito.
29809 * tree-ssa-tail-merge.c: Dito.
29811 * tree.c (iterative_hash_hashval_t): Move to ...
29812 (iterative_hash_host_wide_int): Move to ...
29813 * inchash.c: Here. New file.
29814 * tree.h (iterative_hash_hashval_t): Move to ...
29815 (iterative_hash_host_wide_int): Move to ...
29816 * inchash.h: Here. New file.
29818 2014-07-25 Richard Biener <rguenther@suse.de>
29820 PR middle-end/61762
29821 PR middle-end/61894
29822 * fold-const.c (native_encode_int): Add and handle offset
29823 parameter to do partial encodings of expr.
29824 (native_encode_fixed): Likewise.
29825 (native_encode_real): Likewise.
29826 (native_encode_complex): Likewise.
29827 (native_encode_vector): Likewise.
29828 (native_encode_string): Likewise.
29829 (native_encode_expr): Likewise.
29830 * fold-const.c (native_encode_expr): Add offset parameter
29832 * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
29833 (fold_ctor_reference): Handle all reads from tcc_constant
29836 2014-07-25 Richard Biener <rguenther@suse.de>
29838 * tree-inline.c (estimate_move_cost): Mark speed_p argument
29839 as possibly unused.
29841 2014-07-23 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
29843 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
29845 2014-07-24 Kyle McMartin <kyle@redhat.com>
29847 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
29849 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
29851 * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
29853 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
29855 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
29856 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
29857 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
29859 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
29861 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
29862 and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
29863 aggregate types. Instead, *all* aggregate types, except for single-
29864 element or homogeneous float/vector aggregates, are quadword-aligned
29865 if required by their type alignment. Issue -Wpsabi note when a type
29866 is now treated differently than before.
29868 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
29870 * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
29871 does not fit fully into floating-point registers, and there is still
29872 space in the register parameter area, use GPRs to pass those parts
29873 of the argument. Issue -Wpsabi note if any parameter is now treated
29874 differently than before.
29875 (rs6000_arg_partial_bytes): Update.
29877 2014-07-24 Uros Bizjak <ubizjak@gmail.com>
29879 * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
29881 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
29883 * rtl.h (target_rtl): Remove lang_dependent_initialized.
29884 * toplev.c (initialize_rtl): Don't use it. Move previously
29885 "language-dependent" calls to...
29886 (backend_init): ...here.
29887 (lang_dependent_init_target): Don't set lang_dependent_initialized.
29888 Assert that RTL initialization hasn't happend yet.
29890 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
29892 PR rtl-optimization/61629
29893 * reginfo.c (reinit_regs): Only call ira_init and recog_init if
29894 they have already been initialized.
29896 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
29898 PR middle-end/61268
29899 * function.c (assign_parm_setup_reg): Prevent invalid sharing of
29900 DECL_INCOMING_RTL and entry_parm.
29901 (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
29902 * calls.c (load_register_parameters): Likewise argument values.
29903 (emit_library_call_value_1, store_one_arg): Likewise argument
29905 * config/i386/i386.c (assign_386_stack_local): Likewise the local
29907 * explow.c (validize_mem): Modify the argument in-place.
29909 2014-07-24 Jiong Wang <jiong.wang@arm.com>
29911 * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
29912 (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
29914 2014-07-24 Jiong Wang <jiong.wang@arm.com>
29916 * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
29917 (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
29919 2014-07-24 Jiong Wang <jiong.wang@arm.com>
29921 * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
29922 (aarch64_save_callee_saves): New parameter "skip_wb".
29923 (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
29925 2014-07-24 Jiong Wang <jiong.wang@arm.com>
29927 * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
29929 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
29931 2014-07-24 Roman Gareev <gareevroman@gmail.com>
29933 * graphite-isl-ast-to-gimple.c:
29934 (graphite_create_new_loop): Add calling of isl_id_free to properly
29935 decrement reference counts.
29937 * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
29939 2014-07-24 Martin Liska <mliska@suse.cz>
29940 * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
29942 * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
29943 (rs6000_code_end): Likewise.
29945 2014-07-24 Martin Liska <mliska@suse.cz>
29947 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
29948 symtab_node funtion used.
29949 (rs6000_xcoff_declare_object_name): Likewise.
29951 2014-07-24 Martin Liska <mliska@suse.cz>
29953 * cgraphunit.c (compile): Correct function used.
29955 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
29957 * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
29960 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
29963 * varasm.c (bss_initializer_p): Handle offlined ctors.
29964 (align_variable, get_variable_align): Likewise.
29965 (make_decl_one_only): Likewise.
29966 (default_binds_local_p_1): Likewise.
29967 (decl_binds_to_current_def_p): Likewise.
29968 (get_variable_section): Get constructor if it is offlined.
29969 (assemble_variable_contents): Sanity check that the caller
29970 streamed in the ctor in LTO.
29972 2014-07-24 Roman Gareev <gareevroman@gmail.com>
29974 * graphite-isl-ast-to-gimple.c:
29975 (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
29976 (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
29977 isl_ast_op_pdiv_r to the different case.
29979 * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
29981 2014-07-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29983 PR middle-end/61876
29984 * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
29985 when flag_errno_math is on.
29987 2014-07-24 Martin Liska <mliska@suse.cz>
29989 * cgraph.h (varpool_node):
29990 (availability get_availability (void)):
29991 created from cgraph_variable_initializer_availability
29992 (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
29993 created from: cgraph_variable_initializer_availability
29994 (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
29995 (void finalize_named_section_flags (void)):
29996 created from varpool_finalize_named_section_flags
29997 (bool assemble_decl (void)): created from varpool_assemble_decl
29998 (void analyze (void)): created from varpool_analyze_node
29999 (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
30000 void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
30001 (void remove_initializer (void)): created from varpool_remove_initializer
30002 (tree get_constructor (void)): created from varpool_get_constructor
30003 (bool externally_visible_p (void)): created from varpool_externally_visible_p
30004 (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
30005 (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
30006 (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
30007 (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
30008 (static void finalize_decl (tree decl)): created from varpool_finalize_decl
30009 (static bool output_variables (void)): created from varpool_output_variables
30010 (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
30011 created from varpool_extra_name_alias
30012 (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
30013 (static void dump_varpool (FILE *f)): created from dump_varpool
30014 (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
30015 (static varpool_node *create_empty (void)): created from varpool_create_empty_node
30016 (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
30017 (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
30018 (void assemble_aliases (void)): created from assemble_aliases
30020 2014-07-24 Martin Liska <mliska@suse.cz>
30022 * cgraph.h (symtab_node):
30023 (void register_symbol (void)): created from symtab_register_node
30024 (void remove (void)): created from symtab_remove_node
30025 (void dump (FILE *f)): created from dump_symtab_node
30026 (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
30027 (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
30028 (struct ipa_ref *add_reference (symtab_node *referred_node,
30029 enum ipa_ref_use use_type)): created from add_reference
30030 (struct ipa_ref *add_reference (symtab_node *referred_node,
30031 enum ipa_ref_use use_type, gimple stmt)): created from add_reference
30032 (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
30033 gimple stmt)): created from maybe_add_reference
30034 (bool semantically_equivalent_p (symtab_node *target)): created from
30035 symtab_semantically_equivalent_p
30036 (void remove_from_same_comdat_group (void)): created from
30037 remove_from_same_comdat_group
30038 (void add_to_same_comdat_group (symtab_node *old_node)): created from
30039 symtab_add_to_same_comdat_group
30040 (void dissolve_same_comdat_group_list (void)): created from
30041 symtab_dissolve_same_comdat_group_list
30042 (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
30043 (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
30044 created from symtab_alias_ultimate_target
30045 (inline symtab_node *next_defined_symbol (void)): created from
30046 symtab_next_defined_symbol
30047 (bool resolve_alias (symtab_node *target)): created from
30048 symtab_resolve_alias
30049 (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
30050 void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
30051 (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
30052 (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
30053 (void set_section (const char *section)): created from set_section_1
30054 (enum availability get_availability (void)): created from symtab_node_availability
30055 (void make_decl_local (void)): created from symtab_make_decl_local
30056 (bool real_symbol_p (void)): created from symtab_read_node
30057 (can_be_discarded_p (void)): created from symtab_can_be_discarded
30058 (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
30059 (inline bool in_same_comdat_group_p (symtab_node *target)): created from
30060 symtab_in_same_comdat_p;
30061 (bool address_taken_from_non_vtable_p (void)): created from
30062 address_taken_from_non_vtable_p
30063 (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
30064 (static void dump_table (FILE *)): created from dump_symtab
30065 (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
30066 (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
30067 (static bool used_from_object_file_p_worker (symtab_node *node)): created from
30068 symtab_used_from_object_file_p
30069 (void dump_base (FILE *)): created from dump_symtab_base
30070 (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
30071 (void unregister (void)): created from symtab_unregister_node
30072 (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
30073 (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
30074 (static bool noninterposable_alias (symtab_node *node, void *data)): created from
30075 symtab_nonoverwritable_alias_1
30076 * cgraph.h (cgraph_node):
30077 (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
30078 created from cgraph_remove_node_and_inline_clones
30079 (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
30080 (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
30081 bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
30082 (cgraph_node *function_symbol (enum availability *avail = NULL)):
30083 created from cgraph_function_node
30084 (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
30085 vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
30086 struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
30087 created from cgraph_create_clone
30088 (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
30089 vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
30090 created from cgraph_create_virtual_clone
30091 (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
30092 (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
30093 bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
30094 (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
30095 vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
30096 bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
30097 created from cgraph_function_version_info
30098 (struct cgraph_function_version_info *insert_new_function_version (void)):
30099 created from insert_new_cgraph_node_version
30100 (struct cgraph_function_version_info *function_version (void)): created from
30101 get_cgraph_node_version
30102 (void analyze (void)): created from analyze_function
30103 (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
30104 HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
30105 tree real_alias) cgraph_add_thunk
30106 (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
30107 (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
30108 created from cgraph_function_or_thunk_node
30109 (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
30110 created from expand_thunk
30111 (void reset (void)): created from cgraph_reset_node
30112 (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
30113 (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
30114 (void remove (void)): created from cgraph_remove_node
30115 (void dump (FILE *f)): created from dump_cgraph_node
30116 (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
30117 (bool get_body (void)): created from cgraph_get_body
30118 (void release_body (void)): created from cgraph_release_function_body
30119 (void unnest (void)): created from cgraph_unnest_node
30120 (void make_local (void)): created from cgraph_make_node_local
30121 (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
30122 (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
30123 gcov_type count, int freq)): created from cgraph_create_edge
30124 (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
30125 gcov_type count, int freq)): created from cgraph_create_indirect_edge
30126 (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
30127 gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
30128 created from cgraph_create_edge_including_clones
30129 (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
30130 (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
30131 (void remove_callers (void)): created from cgraph_node_remove_callers
30132 (void remove_callees (void)): created from cgraph_node_remove_callees
30133 (enum availability get_availability (void)): created from cgraph_function_body_availability
30134 (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
30135 (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
30136 (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
30137 (void call_duplication_hooks (cgraph_node *node2)): created from
30138 cgraph_call_node_duplication_hooks
30139 (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
30140 void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
30141 (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
30142 void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
30143 (void call_function_insertion_hooks (void)):
30144 created from cgraph_call_function_insertion_hooks
30145 (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
30146 (bool local_p (void)): created from cgraph_local_node
30147 (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
30148 (bool cannot_return_p (void)): created from cgraph_node_cannot_return
30149 (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
30150 (inline bool only_called_directly_or_aliased_p (void)):
30151 created from cgraph_only_called_directly_or_aliased_p
30152 (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
30153 created from cgraph_will_be_removed_from_program_if_no_direct_calls
30154 (bool can_remove_if_no_direct_calls_and_refs_p (void)):
30155 created from cgraph_can_remove_if_no_direct_calls_and_refs_p
30156 (bool can_remove_if_no_direct_calls_p (void)):
30157 created from cgraph_can_remove_if_no_direct_calls_p
30158 (inline bool has_gimple_body_p (void)):
30159 created from cgraph_function_with_gimple_body_p
30160 (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
30161 (static void dump_cgraph (FILE *f)): created from dump_cgraph
30162 (static inline void debug_cgraph (void)): created from debug_cgraph
30163 (static void record_function_versions (tree decl1, tree decl2)):
30164 created from record_function_versions
30165 (static void delete_function_version (tree decl)):
30166 created from delete_function_version
30167 (static void add_new_function (tree fndecl, bool lowered)):
30168 created from cgraph_add_new_function
30169 (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
30170 (static cgraph_node * create (tree decl)): created from cgraph_create_node
30171 (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
30172 (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
30173 (static cgraph_node *get_for_asmname (tree asmname)):
30174 created from cgraph_node_for_asm
30175 (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
30176 created from cgraph_same_body_alias
30177 (static bool used_from_object_file_p_worker (cgraph_node *node,
30178 void *): new function
30179 (static bool non_local_p (cgraph_node *node, void *)):
30180 created from cgraph_non_local_node_p_1
30181 (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
30182 created from verify_cgraph
30183 (static bool make_local (cgraph_node *node, void *)):
30184 created from cgraph_make_node_local
30185 (static cgraph_node *create_alias (tree alias, tree target)):
30186 created from cgraph_create_function_alias
30187 (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
30188 gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
30189 created from cgraph_create_edge_1
30190 * cgraph.h (varpool_node):
30191 (void remove (void)): created from varpool_remove_node
30192 (void dump (FILE *f)): created from dump_varpool_node
30194 2014-07-24 Richard Biener <rguenther@suse.de>
30197 * tree-ssa-structalias.c (create_variable_info_for_1):
30198 Use varpool_get_constructor.
30199 (create_variable_info_for): Likewise.
30201 2014-07-24 Jiong Wang <jiong.wang@arm.com>
30203 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
30204 subtract outgoing area size when restoring stack_pointer_rtx.
30206 2014-07-24 Nick Clifton <nickc@redhat.com>
30208 * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
30209 that operations are taking place in parallel.
30210 * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
30212 2014-07-24 Thomas Schwinge <thomas@codesourcery.com>
30214 * omp-low.c (extract_omp_for_data): Add missing break statement.
30216 2014-07-24 Richard Biener <rguenther@suse.de>
30218 * tree-inline.h (estimate_move_cost): Add speed_p parameter.
30219 * tree-inline.c (estimate_move_cost): Add speed_p parameter
30220 and adjust MOVE_RATIO query accordingly.
30221 (estimate_num_insns): Adjust callers.
30222 * ipa-prop.c (ipa_populate_param_decls): Likewise.
30223 * ipa-cp.c (gather_context_independent_values,
30224 estimate_local_effects): Likewise.
30225 * ipa-split.c (consider_split): Likewise.
30227 2014-07-24 Trevor Saunders <tsaunders@mozilla.com>
30229 * config/i386/driver-i386.c: Remove names of unused arguments and
30230 unnecessary unused attributes.
30231 * config/i386/host-mingw32.c: Likewise.
30232 * config/i386/i386.c: Likewise.
30233 * config/i386/winnt-stubs.c: Likewise.
30234 * config/i386/winnt.c: Likewise.
30236 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30238 * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
30239 (aarch64_gen_loadwb_pair): New helper function.
30240 (aarch64_expand_epilogue): Simplify code using new helper functions.
30241 * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
30243 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30245 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
30246 (aarch64_gen_storewb_pair): New helper function.
30247 (aarch64_expand_prologue): Simplify code using new helper functions.
30248 * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
30250 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30252 * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
30253 Rename to aarch64_save_callee_saves, remove restore code.
30254 (aarch64_restore_callee_saves): New function.
30256 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30258 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
30259 (aarch64_save_callee_saves): New function to handle reg save
30260 for both core and vectore regs.
30262 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30264 * config/aarch64/aarch64.c (aarch64_gen_load_pair)
30265 (aarch64_gen_store_pair): New helper function.
30266 (aarch64_save_or_restore_callee_save_registers)
30267 (aarch64_save_or_restore_fprs): Use new helper functions.
30269 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30271 * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
30272 (aarch64_save_or_restore_callee_save_registers)
30273 (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
30275 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30277 * config/aarch64/aarch64.c
30278 (aarch64_save_or_restore_callee_save_registers)
30279 (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
30281 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30283 * config/aarch64/aarch64.c
30284 (aarch64_save_or_restore_callee_save_registers)
30285 (aarch64_save_or_restore_fprs): Remove 'increment'.
30287 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30289 * config/aarch64/aarch64.c
30290 (aarch64_save_or_restore_callee_save_registers)
30291 (aarch64_save_or_restore_fprs): Use register offset in
30292 cfun->machine->frame.reg_offset.
30294 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30296 * config/aarch64/aarch64.c
30297 (aarch64_save_or_restore_callee_save_registers)
30298 (aarch64_save_or_restore_fprs): Remove base_rtx.
30300 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30302 * config/aarch64/aarch64.c
30303 (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
30304 to 'start_offset'. Remove local variable 'start_offset'.
30306 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30308 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
30309 type to HOST_WIDE_INT.
30311 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30313 * config/aarch64/aarch64.c (aarch64_expand_prologue)
30314 (aarch64_save_or_restore_fprs)
30315 (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
30317 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
30319 * config/arm/t-rtems-eabi: Add
30320 mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
30321 mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
30322 mbig-endian/mthumb/march=armv7-r, and
30323 mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
30326 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
30327 Chris Johns <chrisj@rtems.org>
30328 Joel Sherrill <joel.sherrill@oarcorp.com>
30330 * config.gcc: Add nios2-*-rtems*.
30331 * config/nios2/rtems.h: New file.
30332 * gcc/config/nios2/t-rtems: New file.
30334 2014-07-23 Segher Boessenkool <segher@kernel.crashing.org>
30337 * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
30338 constant numbers, not general constants.
30339 (rs6000_expand_vector_init): Ditto.
30341 2014-07-23 Nathan Sidwell <nathan@acm.org>
30343 * gcov-tool.c (gcov_list): Declare here.
30344 (set_gcov_list): Remove.
30345 (gcov_output_files): Set gcov_list directly.
30347 2014-07-23 Host Schirmeier <horst@schirmeier.com>
30349 * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
30351 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30353 * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
30354 callee-saved registers are available for padding purpose
30355 and r3 is not mandatory, then prefer use those callee-saved
30358 2014-07-23 Richard Biener <rguenther@suse.de>
30360 * params.def (PARAM_MAX_COMBINE_INSNS): New.
30361 * combine.c: Include statistics.h and params.h.
30362 (combine_instructions): Guard three and four insn combines
30363 with max-combine-insns value. Record statistics for combines
30365 * doc/invoke.texi (max-combine-insns): Document new param.
30367 2014-07-23 Roman Gareev <gareevroman@gmail.com>
30369 * graphite-isl-ast-to-gimple.c:
30370 (translate_isl_ast_node_block): New function.
30371 (translate_isl_ast): Add calling of translate_isl_ast_node_block.
30373 * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
30374 * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
30376 2014-07-23 Roman Gareev <gareevroman@gmail.com>
30378 * graphite-isl-ast-to-gimple.c:
30379 (get_max_schedule_dimensions): New function.
30380 (extend_schedule): Likewise.
30381 (generate_isl_schedule): Add calling of extend_schedule and
30382 get_max_schedule_dimensions.
30384 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30386 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
30387 (case UNSPEC): Handle UNSPEC_RBIT.
30389 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30391 * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
30392 (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
30394 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30396 * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
30398 2014-07-22 Roman Gareev <gareevroman@gmail.com>
30400 * graphite-isl-ast-to-gimple.c:
30401 Add inclusion of gimple-ssa.h, tree-into-ssa.h.
30402 (ivs_params_clear):
30403 (build_iv_mapping): New function.
30404 (translate_isl_ast_node_user): Likewise.
30405 (translate_isl_ast): Add calling of translate_isl_ast_node_user.
30407 * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
30408 * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
30409 * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
30411 2014-07-21 Bin Cheng <bin.cheng@arm.com>
30414 * config/arm/arm.md (setmem): New pattern.
30415 * config/arm/arm-protos.h (struct tune_params): New fields.
30416 (arm_gen_setmem): New prototype.
30417 * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
30418 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
30419 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
30420 (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
30421 (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
30422 (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
30423 (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
30424 (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
30425 (arm_const_inline_cost): New function.
30426 (arm_block_set_max_insns): New function.
30427 (arm_block_set_non_vect_profit_p): New function.
30428 (arm_block_set_vect_profit_p): New function.
30429 (arm_block_set_unaligned_vect): New function.
30430 (arm_block_set_aligned_vect): New function.
30431 (arm_block_set_unaligned_non_vect): New function.
30432 (arm_block_set_aligned_non_vect): New function.
30433 (arm_block_set_vect, arm_gen_setmem): New functions.
30435 2014-07-21 Bin Cheng <bin.cheng@arm.com>
30437 * config/arm/arm.c (output_move_neon): Handle REG explicitly.
30439 2014-07-21 Uros Bizjak <ubizjak@gmail.com>
30442 * config/i386/avx512fintrin.h: Move constants for mantissa extraction
30443 out of #ifdef __OPTIMIZE__.
30445 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
30447 * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
30448 different trapping status if -fnon-call-exceptions is enabled.
30450 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
30452 * expr.c (store_field): Handle VOIDmode for calls that return values
30453 in multiple locations.
30455 2014-07-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30457 * config/rs6000/altivec.md (unspec enum): Fix typo in UNSPEC_VSLDOI.
30458 (altivec_vsldoi_<mode>): Likewise.
30460 2014-07-20 Roman Gareev <gareevroman@gmail.com>
30462 * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
30463 to the number of characters in the line.
30465 2014-07-20 Roman Gareev <gareevroman@gmail.com>
30467 * graphite-isl-ast-to-gimple.c: Add using of
30468 build_nonstandard_integer_type instead of int128_integer_type_node.
30470 2014-07-19 Eric Botcazou <ebotcazou@adacore.com>
30472 * toplev.c (output_stack_usage): Adjust the location of the warning.
30474 2014-07-19 Daniel Cederman <cederman@gaisler.com>
30476 * config/sparc/sync.md (*membar_storeload_leon3): New insn.
30477 (*membar_storeload): Disable for LEON3.
30479 2014-07-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
30481 PR rtl-optimization/61461
30482 * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
30484 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
30487 * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
30488 Fix instruction constraint.
30489 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
30491 2014-07-18 Jonathan Wakely <jwakely@redhat.com>
30493 * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
30495 2014-07-18 Chung-Ju Wu <jasonwucj@gmail.com>
30497 * config/nds32/nds32.c (nds32_can_eliminate): Follow the
30498 GNU coding standards.
30499 (nds32_register_move_cost): Likewise.
30500 (nds32_memory_move_cost): Likewise.
30501 (nds32_address_cost): Likewise.
30503 2014-07-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
30505 * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
30507 2014-07-17 John David Anglin <danglin@gcc.gnu.org>
30509 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
30510 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
30511 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
30512 (HAVE_sync_compare_and_swapqi): Define.
30513 (HAVE_sync_compare_and_swaphi): Likewise.
30514 (HAVE_sync_compare_and_swapsi): Likewise.
30516 2014-07-17 Richard Sandiford <rdsandiford@googlemail.com>
30518 * config/mips/p5600.md: Add missing cpu tests.
30520 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30522 * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
30523 (vmla_f64): Likewise.
30524 (vfms_f64): Likewise.
30525 (vmls_f64): Likewise.
30527 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30529 * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
30530 (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
30532 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30534 * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
30535 (vmlal_high_lane_s32): Likewise.
30536 (vmlal_high_lane_u16): Likewise.
30537 (vmlal_high_lane_u32): Likewise.
30538 (vmlsl_high_lane_s16): Likewise.
30539 (vmlsl_high_lane_s32): Likewise.
30540 (vmlsl_high_lane_u16): Likewise.
30541 (vmlsl_high_lane_u32): Likewise.
30543 2014-07-17 Terry Guo <terry.guo@arm.com>
30545 * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
30546 (alus_reg): Renamed to alus_sreg.
30547 * config/arm/arm-fixed.md: Change type of non-dsp instructions
30548 from alu_reg to alu_sreg. Change type of dsp instructions from
30549 alu_reg to alu_dsp_reg.
30550 * config/arm/thumb1.md: Likewise.
30551 * config/arm/thumb2.md: Likewise.
30552 * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
30553 * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
30554 with alu_sreg and alus_sreg.
30555 * config/arm/arm1026ejs.md (alu_op): Likewise.
30556 * config/arm/arm1136jfs.md (11_alu_op): Likewise.
30557 * config/arm/arm926ejs.md (9_alu_op): Likewise.
30558 * config/arm/fa526.md (526_alu_op): Likewise.
30559 * config/arm/fa606te.md (606te_alu_op): Likewise.
30560 * config/arm/fa626te.md (626te_alu_op): Likewise.
30561 * config/arm/fa726te.md (726te_alu_op): Likewise.
30562 * config/arm/fmp626.md (mp626_alu_op): Likewise.
30563 * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
30564 alu_sreg, alu_dsp_reg and alus_sreg.
30565 * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
30566 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
30567 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
30568 * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
30569 * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
30570 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
30571 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
30572 * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
30573 * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
30574 * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
30575 subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
30576 *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
30577 (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
30578 sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
30579 subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
30580 alus_reg to alus_sreg.
30582 2014-07-17 Andreas Schwab <schwab@linux-m68k.org>
30584 * real.c (encode_ieee_extended_motorola): Clear integer bit in the
30587 2014-07-17 Richard Biener <rguenther@suse.de>
30589 PR rtl-optimization/61801
30590 * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
30591 don't set reg_pending_barrier if it appears in a debug-insn.
30593 2014-07-16 DJ Delorie <dj@redhat.com>
30595 * config/rx/rx.c (rx_option_override): Fix alignment values.
30596 (rx_align_for_label): Likewise.
30598 2014-07-17 Hans-Peter Nilsson <hp@axis.com>
30601 * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
30602 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
30603 (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
30605 (cris_print_index, cris_print_operand, cris_constant_index_p)
30606 (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
30607 (cris_address_cost): Ditto last CONSTANT_P.
30608 (cris_symbol_type_of): Rename from cris_pic_symbol_type_of. All
30609 callers changed. Yield cris_offsettable_symbol for non-PIC
30610 constant symbolic expressions including labels. Yield cris_unspec
30612 (cris_expand_pic_call_address): New parameter MARKERP. Set its
30613 target to pic_offset_table_rtx for calls that will likely go
30614 through PLT, const0_rtx when they can't. All callers changed.
30615 Assert flag_pic. Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
30616 symbolic expressions to be PICified. Remove second, redundant,
30617 assert on can_create_pseudo_p returning non-zero. Use
30618 replace_equiv_address_nv, not replace_equiv_address, for final
30620 * config/cris/cris.md ("movsi"): Move variable t to pattern
30621 toplevel. Adjust assert for new cris_symbol_type member. Use
30622 CONSTANT_P instead of CONSTANT_ADDRESS_P.
30623 ("*movsi_internal") <case 9>: Make check for valid unspec operands
30625 <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
30626 ("call", "call_value"): Use second incoming operand as a marker
30627 for pic-offset-table-register being used.
30628 ("*expanded_call_non_v32", "*expanded_call_v32")
30629 ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
30630 second incoming operand to CALL, match cris_call_type_marker.
30631 ("*expanded_call_value_side"): Ditto. Disable before reload_completed.
30632 ("*expanded_call_side"): Ditto. Fix typo in comment.
30633 (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
30635 * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
30636 * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
30637 (enum cris_symbol_type): Rename from cris_pic_symbol_type. All
30638 users changed. Add members cris_offsettable_symbol and cris_unspec.
30639 (cris_symbol_type): Rename from cris_pic_symbol_type.
30640 * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
30642 * config/cris/cris-protos.h (cris_symbol_type_of,
30643 cris_expand_pic_call_address): Adjust prototypes.
30644 (cris_legitimate_constant_p): New prototype.
30646 * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
30647 an existing tmake_file. Don't add t-slibgcc and t-linux.
30649 2014-07-17 Jason Merrill <jason@redhat.com>
30652 * symtab.c (symtab_remove_from_same_comdat_group): Also
30653 set_comdat_group to NULL_TREE.
30654 (verify_symtab): Fix diagnostic.
30656 2014-07-16 David Wohlferd <dw@LimeGreenSocks.com>
30659 * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
30661 2014-07-16 Dodji Seketeli <dodji@redhat.com>
30663 Support location tracking for built-in macro tokens
30664 * input.h (is_location_from_builtin_token): New function declaration.
30665 * input.c (is_location_from_builtin_token): New function definition.
30666 * toplev.c (general_init): Tell libcpp what the pre-defined
30667 spelling location for built-in tokens is.
30669 2014-07-16 Jakub Jelinek <jakub@redhat.com>
30671 * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
30672 on the FUNCTION_DECL.
30674 2014-07-16 Richard Biener <rguenther@suse.de>
30677 * doc/extend.texi (always_inline): Clarify.
30679 2014-07-15 Eric Christopher <echristo@gmail.com>
30681 * doc/invoke.texi (Link Options): Document -z option.
30683 2014-07-15 Uros Bizjak <ubizjak@gmail.com>
30685 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
30686 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
30688 2014-07-15 Jan Hubicka <hubicka@ucw.cz>
30690 * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
30692 2014-07-15 Bernd Schmidt <bernds@codesourcery.com>
30694 * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
30695 varpool_assemble_decl.
30696 * varpool.c (varpool_assemble_decl): Assert that node->definition is
30699 2014-07-15 Michael Matz <matz@suse.de>
30701 PR rtl-optimization/61772
30702 * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
30704 2014-07-15 Richard Biener <rguenther@suse.de>
30706 * opts.c (default_options_table): Disable bit-ccp at -Og.
30708 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
30710 * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
30712 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
30714 * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
30715 NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
30716 call langhook for unknown declaration.
30717 (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
30718 * tree.h (DECL_ARGUMENTS): Update.
30719 * print-tree.c (print_node): Update.
30720 * tree-core.h (tree_decl_non_common): Remove arguments.
30721 (tree_function_decl): Add arguments.
30723 2014-07-14 Richard Earnshaw <rearnsha@arm.com>
30725 * aarch64.md (add_losym_<mode>): Set type to alu_imm.
30727 2014-07-14 Richard Biener <rguenther@suse.de>
30729 PR tree-optimization/61779
30730 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
30731 simplifying a condition.
30733 2014-07-14 Richard Biener <rguenther@suse.de>
30735 * builtins.c (c_strlen): Make only_value == 2 really only
30736 affect warning generation.
30738 2014-07-14 Richard Biener <rguenther@suse.de>
30740 PR tree-optimization/61757
30741 PR tree-optimization/61783
30742 PR tree-optimization/61787
30743 * tree-ssa-dom.c (record_equality): Revert canonicalization
30744 change and add comment.
30745 (propagate_rhs_into_lhs): Revert previous fix, removing
30746 loop depth restriction again.
30748 2014-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30750 * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
30751 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
30752 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
30753 * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
30754 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
30755 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
30756 * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
30758 2014-07-14 Richard Biener <rguenther@suse.de>
30760 * cgraph.h (decl_in_symtab_p): Make inline.
30762 2014-07-14 Jakub Jelinek <jakub@redhat.com>
30764 PR middle-end/61294
30765 * doc/invoke.texi (-Wmemset-transposed-args): Document.
30768 * config/i386/i386.c (classify_argument): Don't merge classes above
30771 2014-07-13 Jan Hubicka <hubicka@ucw.cz>
30773 * cgraph.h (symtab_node): Add nonzero_address.
30774 (decl_in_symtab_p): Break out from ...
30775 (symtab_get_node): ... here.
30776 * fold-const.c: Include cgraph.h
30777 (tree_single_nonzero_warnv_p): Use symtab to determine
30778 if symbol is non-zero.
30779 * symtab.c (symtab_node::nonzero_address): New method.
30781 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
30783 * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
30784 forgotten in previous commit.
30786 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
30788 * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
30790 * ipa-devirt.c: Include stor-layout.h and intl.h
30791 (odr_subtypes_equivalent_p): New function.
30792 (warn_odr): New function.
30793 (warn_type_mismatch): New function.
30794 (odr_types_equivalent_p): New function.
30795 (add_type_duplicate): Use it.
30796 * common.opt (Wodr): New flag.
30797 * doc/invoke.texi (Wodr): Document new warning.
30799 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
30801 * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
30802 (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
30803 * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
30804 (varpool_get_constructor): Push CTORS_IN timevar.
30805 * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
30807 2014-07-12 Uros Bizjak <ubizjak@gmail.com>
30809 * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
30810 Remove VOID_FTYPE_PUSHORT.
30811 * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
30812 Change code to USHORT_FTYPE_VOID.
30813 (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
30814 (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
30815 (ix86_atomic_assign_expand_fenv): Update for
30816 __builtin_ia32_fnstsw changes.
30817 * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
30818 (fnstsw): Change operand 0 to nonimmediate operand.
30820 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
30822 * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
30823 (varpool_get_constructor): New function.
30824 (varpool_ctor_useable_for_folding_p): Break out from ...
30825 (ctor_for_folding): ... here; use varpool_get_constructor.
30826 (varpool_assemble_decl): Likewise.
30827 * lto-streamer.h (struct output_block): Turn cgraph_node
30829 (lto_input_variable_constructor): Declare.
30830 * ipa-visibility.c (function_and_variable_visibility): Use
30831 varpool_get_constructor.
30832 * cgraph.h (varpool_get_constructor): Declare.
30833 (varpool_ctor_useable_for_folding_p): New function.
30834 * lto-streamer-out.c (get_symbol_initial_value): Take encoder
30835 parameter; return error_mark_node for non-trivial constructors.
30836 (lto_write_tree_1, DFS_write_tree): Update use of
30837 get_symbol_initial_value.
30838 (output_function): Update initialization of symbol.
30839 (output_constructor): New function.
30840 (copy_function): Rename to ..
30841 (copy_function_or_variable): ... this one; handle vars too.
30842 (lto_output): Output variable sections.
30843 * lto-streamer-in.c (input_constructor): New function.
30844 (lto_read_body): Rename from ...
30845 (lto_read_body_or_constructor): ... this one; handle vars too.
30846 (lto_input_variable_constructor): New function.
30847 * ipa-prop.c (ipa_prop_write_jump_functions,
30848 ipa_prop_write_all_agg_replacement): Update.
30849 * lto-cgraph.c (compute_ltrans_boundary): Use it.
30850 (output_cgraph_opt_summary): Set symbol to NULL.
30852 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
30854 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
30855 non-polymorphic types.
30856 * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
30857 * ipa-devirt.c (types_same_for_odr): Do not explode when one
30858 of types is not polymorphic.
30860 2014-07-11 Vladimir Makarov <vmakarov@redhat.com>
30862 * lra-constraints.c (remove_inheritance_pseudos): Process
30863 destination pseudo too.
30865 2014-07-11 Rong Xu <xur@google.com>
30867 * gcov-tool.c (gcov_output_files): Fix build error introduced in
30870 2014-07-11 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
30872 * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
30873 * config/avr/avr-devices.c (AVR_MCU): Same.
30874 (avr_mcu_types): add text start value to end of device list.
30875 * config/avr/avr-mcus.def: Add text section start for all devices.
30876 (ata5782): Add new avr5 device.
30878 * config/avr/avr-tables.opt: Regenerate.
30879 * config/avr/avr.h: Add declaration for text section start handler.
30880 (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
30882 (LINK_SPEC): Include text section start handler to linker spec.
30883 * config/avr/driver-avr.c (avr_device_to_text_start): New function to
30884 pass -Ttext option to linker if the text section start for the device
30886 * config/avr/t-multilib: Regenerate.
30887 * doc/avr-mmcu.texi: Regenerate.
30889 2014-07-11 David Edelsohn <dje.gcc@gmail.com>
30891 * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
30892 * config/rs6000/aix52.h (LINK_SPEC): Same.
30893 * config/rs6000/aix53.h (LINK_SPEC): Same.
30894 * config/rs6000/aix61.h (LINK_SPEC): Same.
30895 * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
30897 2014-07-11 Roman Gareev <gareevroman@gmail.com>
30899 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
30900 (graphite_verify): New function.
30901 (ivs_params_clear): New function.
30902 (gcc_expression_from_isl_ast_expr_id): New function.
30903 (gcc_expression_from_isl_expr_int): New function.
30904 (binary_op_to_tree): New function.
30905 (ternary_op_to_tree): New function.
30906 (unary_op_to_tree): New function.
30907 (nary_op_to_tree): New function.
30908 (gcc_expression_from_isl_expr_op): New function.
30909 (gcc_expression_from_isl_expression): New function.
30910 (graphite_create_new_loop): New function.
30911 (translate_isl_ast_for_loop): New function.
30912 (get_upper_bound): New function.
30913 (graphite_create_new_loop_guard): New function.
30914 (translate_isl_ast_node_for): New function.
30915 (translate_isl_ast): New function.
30916 (add_parameters_to_ivs_params): New function.
30917 (scop_to_isl_ast): New parameter ip.
30918 (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
30920 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
30922 * config/xtensa/predicates.md (call expander): Update for
30923 DECL_SECTION_NAME being string.
30925 2014-07-11 Richard Biener <rguenther@suse.de>
30927 PR middle-end/61473
30928 * builtins.c (fold_builtin_memory_op): Inline memory moves that
30929 can be implemented with a single load followed by a single store.
30930 (c_strlen): Only warn when only_value is not 2.
30932 2014-07-11 Evgeny Stupachenko <evstupac@gmail.com>
30934 * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
30936 2014-07-11 Marat Zakirov <m.zakirov@samsung.com>
30939 * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
30940 (*movhi_bytes): Likewise.
30941 (*arm_movqi_insn): Likewise.
30943 2014-07-11 Uros Bizjak <ubizjak@gmail.com>
30946 * config/alpha/alpha.c: Include tree-pass.h, context.h
30947 and pass_manager.h.
30948 (pass_data_handle_trap_shadows): New pass.
30949 (pass_handle_trap_shadows::gate): New pass gate function.
30950 (make_pass_handle_trap_shadows): New function.
30951 (rest_of_handle_trap_shadows): Ditto.
30953 (alpha_align_insns_1): Rename from alpha_align_insns.
30954 (pass_data_align_insns): New pass.
30955 (pass_align_insns::gate): New pass gate function.
30956 (make_pass_aling_insns): New function.
30957 (rest_of_align_insns): Ditto.
30958 (alpha_align_insns): Ditto.
30960 (alpha_option_override): Declare handle_trap_shadows info
30961 and align_insns_info. Register handle_trap_shadows and align_insns
30963 (alpha_reorg): Do not call alpha_trap_shadows and
30964 alpha_align_insn from here.
30966 (alpha_pad_function_end): Do not skip BARRIERs.
30968 2014-07-10 Rong Xu <xur@google.com>
30970 Add gcov-tool: an offline gcda profile processing tool support.
30971 * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
30972 (gcov_is_error): Ditto.
30973 (gcov_read_string): Ditto.
30974 (gcov_read_sync): Ditto.
30975 * gcov-io.h: Move counter defines to gcov-counter.def.
30976 * gcov-dump.c (tag_counters): Use gcov-counter.def.
30977 * coverage.c: Ditto.
30978 * gcov-tool.c: Offline gcda profile processing tool.
30979 (unlink_gcda_file): Remove one gcda file.
30980 (unlink_profile_dir): Remove gcda files from the profile path.
30981 (gcov_output_files): Output gcda files to an output dir.
30982 (profile_merge): Merge two profiles in directory.
30983 (print_merge_usage_message): Print merge usage.
30984 (merge_usage): Print merge usage and exit.
30985 (do_merge): Driver for profile merge sub-command.
30986 (profile_rewrite): Rewrite profile.
30987 (print_rewrite_usage_message): Print rewrite usage.
30988 (rewrite_usage): Print rewrite usage and exit.
30989 (do_rewrite): Driver for profile rewrite sub-command.
30990 (print_usage): Print gcov-info usage and exit.
30991 (print_version): Print gcov-info version.
30992 (process_args): Process arguments.
30993 (main): Main routine for gcov-tool.
30994 * Makefile.in: Build and install gcov-tool.
30995 * gcov-counter.def: New file split from gcov-io.h.
30996 * doc/gcc.texi: Include gcov-tool.texi.
30997 * doc/gcov-tool.texi: Document for gcov-tool.
30999 2014-07-10 Richard Biener <rguenther@suse.de>
31001 PR tree-optimization/61757
31002 * tree-ssa-dom.c (loop_depth_of_name): Restore.
31003 (propagate_rhs_into_lhs): Revert part of last change.
31005 2014-07-10 Thomas Schwinge <thomas@codesourcery.com>
31007 * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
31010 2014-07-10 Eric Botcazou <ebotcazou@adacore.com>
31012 PR middle-end/53590
31013 * function.c (allocate_struct_function): Revert r188667 change.
31015 * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
31017 2014-07-10 Tom G. Christensen <tgc@jupiterrise.com>
31019 * doc/install.texi: Remove links to defunct package providers for
31022 2014-07-09 Tom de Vries <tom@codesourcery.com>
31024 * final.c (get_call_fndecl): Declare.
31025 (self_recursive_call_p): New function.
31026 (collect_fn_hard_reg_usage): Handle self-recursive function calls.
31028 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
31030 * ipa-devirt.c (record_node): Walk through aliases.
31032 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
31034 * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
31036 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
31039 * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
31041 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
31043 * ipa-visibility.c (function_and_variable_visibility): Remove
31044 temporary hack disabling local aliases on AIX.
31046 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
31048 * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
31049 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
31051 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
31053 * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
31054 * rs6000/rs6000.c: Inline output of .set instruction.
31055 (declare_alias_data): New struct.
31056 (rs6000_declare_alias): New function.
31057 (rs6000_xcoff_declare_function_name): Use it.
31058 (rs6000_xcoff_declare_object_name): New function.
31059 * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
31060 (ASM_OUTPUT_DEF): Turn to empty definition.
31062 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
31065 * hash-table.h: use hash_table::value_type instead of
31066 Descriptor::value_type in the return types of several methods.
31068 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
31070 * tree-pass.h (pass_data): Remove has_execute member.
31071 * passes.c (execute_one_pass): Don't check pass->has_execute.
31072 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
31073 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
31074 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
31075 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
31076 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
31077 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
31078 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
31079 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
31080 gimple-low.c, gimple-ssa-isolate-paths.c,
31081 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
31082 ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
31083 ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
31084 ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
31085 lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
31086 postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
31087 reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
31088 stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
31089 tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
31090 tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
31091 tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
31092 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
31093 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
31094 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
31095 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
31096 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
31097 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
31098 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
31099 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
31100 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
31101 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
31102 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
31103 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
31104 web.c: Remove initializer for pass_data::has_execute.
31106 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
31108 * graphite-htab.h: Use hash_map instead of hash_table.
31109 * graphite-clast-to-gimple.c: Adjust.
31110 * passes.c: Use hash_map instead of hash_table.
31111 * sese.c: Likewise.
31112 * sese.h: Remove now unused code.
31114 2014-07-08 Sriraman Tallam <tmsriram@google.com>
31117 * config/i386/i386.c (ix86_in_large_data_p): Check for size less
31120 2014-07-08 Jakub Jelinek <jakub@redhat.com>
31122 PR rtl-optimization/61673
31123 * combine.c (simplify_comparison): Test just mode's sign bit
31124 in tmode rather than the sign bit and any bits above it.
31126 2014-07-08 Roman Gareev <gareevroman@gmail.com>
31128 * graphite-isl-ast-to-gimple.c (generate_isl_context):
31129 Add __isl_give to the declaration.
31130 (generate_isl_schedule): Likewise.
31131 (scop_to_isl_ast): Likewise.
31133 2014-07-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31135 * config/arm/arm.c (cortexa5_extra_costs): New table.
31136 (arm_cortex_a5_tune): Use cortexa5_extra_costs.
31138 2014-07-08 Jakub Jelinek <jakub@redhat.com>
31140 PR tree-optimization/61725
31141 * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
31142 range, use range_includes_zerop_p instead of integer_zerop on
31143 vr0->min, only use log2 of max if min is not negative.
31145 2014-07-08 Richard Biener <rguenther@suse.de>
31147 * tree-ssa-dom.h (loop_depth_of_name): Remove.
31148 * tree-ssa-dom.c (record_equivalences_from_phis): Remove
31149 restriction on loop depth difference.
31150 (record_equality): Likewise.
31151 (propagate_rhs_into_lhs): Likewise. Simplify condition.
31152 (loop_depth_of_name): Remove.
31153 * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
31154 restriction on loop depth difference.
31155 (init_copy_prop): Likewise.
31157 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
31159 * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
31161 (walk_aliased_vdefs): Likewise.
31162 * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
31163 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
31164 (detect_type_change_from_memory_writes): Check if entry was reached.
31166 2014-07-08 Richard Biener <rguenther@suse.de>
31168 PR tree-optimization/61681
31169 * tree-ssa-structalias.c (find_what_var_points_to): Expand
31170 NONLOCAL inside ESCAPED.
31172 2014-07-08 Richard Biener <rguenther@suse.de>
31174 PR tree-optimization/61680
31175 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
31176 Handle properly all read-write dependences with group accesses.
31178 2014-07-08 Yuri Rumyantsev <ysrumyan@gmail.com>
31180 PR tree-optimization/61576
31181 * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
31182 block containing reduction statement is predecessor of phi basi block.
31184 2014-07-08 Marek Polacek <polacek@redhat.com>
31187 * fold-const.c (round_up_loc): Change the parameter type.
31189 * fold-const.h (round_up_loc): Adjust declaration.
31190 * stor-layout.c (finalize_record_size): Check for too large types.
31192 2014-07-07 Jan Hubicka <hubicka@ucw.cz>
31194 * symtab.c: Include calls.h.
31195 (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
31197 2014-07-07 Maciej W. Rozycki <macro@codesourcery.com>
31199 * config/rs6000/rs6000.c (output_vec_const_move): Handle
31200 little-endian code generation.
31201 * config/rs6000/spe.md (spe_evmergehi): Rename to...
31202 (vec_perm00_v2si): ... this. Handle little-endian code generation.
31203 (spe_evmergehilo): Rename to...
31204 (vec_perm01_v2si): ... this. Handle little-endian code generation.
31205 (spe_evmergelo): Rename to...
31206 (vec_perm11_v2si): ... this. Handle little-endian code generation.
31207 (spe_evmergelohi): Rename to...
31208 (vec_perm10_v2si): ... this. Handle little-endian code generation.
31209 (spe_evmergehi, spe_evmergehilo): New expanders.
31210 (spe_evmergelo, spe_evmergelohi): Likewise.
31211 (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
31212 (*frob_tf_ti): Likewise.
31213 (*frob_<mode>_di_2): Likewise.
31214 (*frob_tf_di_8_2): Likewise.
31215 (*frob_di_<mode>): Likewise.
31216 (*frob_ti_tf): Likewise.
31217 (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
31218 (*frob_ti_<mode>_8_2): Likewise.
31219 (*frob_ti_tf_2): Likewise.
31220 (mov_si<mode>_e500_subreg0): Rename to...
31221 (mov_si<mode>_e500_subreg0_be): ... this. Restrict to the big
31223 (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
31224 (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
31225 (*mov_si<mode>_e500_subreg0_elf_low_be): ... this. Restrict to
31226 the big endianness only.
31227 (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
31228 (*mov_si<mode>_e500_subreg0_2): Rename to...
31229 (*mov_si<mode>_e500_subreg0_2_be): ... this. Restrict to the
31230 big big endianness only.
31231 (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
31232 (*mov_si<mode>_e500_subreg4): Rename to...
31233 (*mov_si<mode>_e500_subreg4_be): ... this. Restrict to the big
31235 (mov_si<mode>_e500_subreg4_le): New instruction pattern.
31236 (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
31237 (*mov_si<mode>_e500_subreg4_elf_low_be): ... this. Restrict to
31238 the big endianness only.
31239 (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
31241 (*mov_si<mode>_e500_subreg4_2): Rename to...
31242 (*mov_si<mode>_e500_subreg4_2_be): ... this. Restrict to the big
31244 (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
31245 (*mov_sitf_e500_subreg8): Rename to...
31246 (*mov_sitf_e500_subreg8_be): ... this. Restrict to the big
31248 (*mov_sitf_e500_subreg8_le): New instruction pattern.
31249 (*mov_sitf_e500_subreg8_2): Rename to...
31250 (*mov_sitf_e500_subreg8_2_be): ... this. Restrict to the big
31252 (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
31253 (*mov_sitf_e500_subreg12): Rename to...
31254 (*mov_sitf_e500_subreg12_be): ... this. Restrict to the big
31256 (*mov_sitf_e500_subreg12_le): New instruction pattern.
31257 (*mov_sitf_e500_subreg12_2): Rename to...
31258 (*mov_sitf_e500_subreg12_2_be): ... this. Restrict to the big
31260 (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
31262 2014-07-07 Max Ostapenko <m.ostapenko@partner.samsung.com>
31264 * asan.c (instrument_strlen_call): Do not instrument first byte
31265 in strlen if already instrumented.
31267 2014-07-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31269 * config/arm/arm.opt (mwords-little-endian): Delete.
31270 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
31271 of TARGET_LITTLE_WORDS.
31272 (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
31273 * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
31275 * doc/invoke.texi: Remove references to -mwords-little-endian.
31277 2014-07-07 Jakub Jelinek <jakub@redhat.com>
31279 * expmed.c (struct init_expmed_rtl): Change all fields but
31280 pow2 and cint from struct rtx_def to rtx.
31281 (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
31282 (init_expmed): Likewise. Allocate all the 18 rtxes and ggc_free them
31285 2014-07-06 Marek Polacek <polacek@redhat.com>
31288 * doc/invoke.texi: Document -Wsizeof-array-argument.
31290 2014-07-05 Gerald Pfeifer <gerald@pfeifer.com>
31292 * wide-int.h (wide_int_storage): Change declaration from struct
31295 2014-07-05 Jan Hubicka <hubicka@ucw.cz>
31297 * cgraph.c (cgraph_create_indirect_edge): Update call of
31298 get_polymorphic_call_info.
31299 * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
31300 (possible_polymorphic_call_targets): Add parameter call.
31301 (decl_maybe_in_construction_p): New predicate.
31302 (get_polymorphic_call_info): Add parameter call;
31303 use decl_maybe_in_construction_p.
31304 * gimple-fold.c (fold_gimple_assign): Update use of
31305 possible_polymorphic_call_targets.
31306 (gimple_fold_call): Likewise.
31307 * ipa-prop.c: Inlcude calls.h
31308 (ipa_binfo_from_known_type_jfunc): Check that known type is record.
31309 (param_type_may_change_p): New predicate.
31310 (detect_type_change_from_memory_writes): Break out from ...
31311 (detect_type_change): ... this one; use param_type_may_change_p.
31312 (detect_type_change_ssa): Use param_type_may_change_p.
31313 (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
31315 2014-07-05 Charles Baylis <charles.baylis@linaro.org>
31318 * config/arm/arm-protos.h (arm_legitimate_address_p,
31319 arm_is_constant_pool_ref): Add prototypes.
31320 * config/arm/arm.c (arm_legitimate_address_p): Remove static.
31321 (arm_is_constant_pool_ref) New function.
31322 * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
31323 arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
31324 (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
31325 operand. Remove pool_range and neg_pool_range attributes.
31326 (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
31327 pool_range and neg_pool_range attributes.
31328 * config/arm/constraints.md (Uh): New constraint.
31329 (Uq): Don't allow constant pool references.
31331 2014-07-04 James Greenhalgh <james.greenhalgh@arm.com>
31333 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
31334 (move_lo_quad_internal_be_<mode>): Likewise.
31335 (move_lo_quad_<mode>): Convert to define_expand.
31336 (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
31337 (aarch64_simd_move_hi_quad_be_<mode>): New.
31338 (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
31339 (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
31340 (aarch64_combinez_be<mode>): New.
31341 (aarch64_combine<mode>): Convert to define_expand.
31342 (aarch64_combine_internal<mode>): New.
31343 (aarch64_simd_combine<mode>): Remove bogus RTL description.
31345 2014-07-04 Tom de Vries <tom@codesourcery.com>
31347 * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
31348 combination of earlyclobber and read/write modifiers.
31350 2014-07-04 Tom de Vries <tom@codesourcery.com>
31352 * config/aarch64/aarch64-simd.md
31353 (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
31355 2014-07-04 Richard Earnshaw <rearnsha@arm.com>
31358 * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
31360 2014-07-04 Jakub Jelinek <jakub@redhat.com>
31362 PR middle-end/61654
31363 * cgraphunit.c (expand_thunk): Call free_dominance_info.
31365 PR tree-optimization/61684
31366 * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
31367 rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
31369 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
31370 Kito Cheng <kito@0xlab.org>
31371 Monk Chiang <sh.chiang04@gmail.com>
31373 * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
31374 (nds32_symbol_load_store_p): Move to ...
31375 (nds32_fp_as_gp_check_available): Move to ...
31376 * config/nds32/nds32-fp-as-gp.c: ... here.
31377 * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
31378 extern declaration.
31380 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
31381 Kito Cheng <kito@0xlab.org>
31382 Monk Chiang <sh.chiang04@gmail.com>
31384 * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
31385 (nds32_expand_store_multiple): Move to ...
31386 (nds32_expand_movmemqi): Move to ...
31387 * config/nds32/nds32-memory-manipulation.c: ... here.
31389 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
31390 Kito Cheng <kito@0xlab.org>
31391 Monk Chiang <sh.chiang04@gmail.com>
31393 * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
31394 (nds32_output_casesi_pc_relative): Move to ...
31395 (nds32_output_casesi): Move to ...
31396 (nds32_mem_format): Move to ...
31397 (nds32_output_16bit_store): Move to ...
31398 (nds32_output_16bit_load): Move to ...
31399 (nds32_output_32bit_store): Move to ...
31400 (nds32_output_32bit_load): Move to ...
31401 (nds32_output_32bit_load_s): Move to ...
31402 (nds32_output_stack_push): Move to ...
31403 (nds32_output_stack_pop): Move to ...
31404 * config/nds32/nds32-md-auxiliary.c: ... here.
31406 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
31407 Ling-Hua Tseng <uranus@tinlans.org>
31409 * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
31410 the purpose of this file.
31412 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
31413 Kito Cheng <kito@0xlab.org>
31414 Monk Chiang <sh.chiang04@gmail.com>
31416 * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
31417 (nds32_address_cost): Move implementation to ...
31418 * config/nds32/nds32-cost.c: ... here.
31419 * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
31420 (nds32_address_cost_impl): Declare.
31422 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
31423 Kito Cheng <kito@0xlab.org>
31424 Monk Chiang <sh.chiang04@gmail.com>
31426 * config/nds32/nds32.c
31427 (nds32_consecutive_registers_load_store_p): Move to ...
31428 (nds32_valid_multiple_load_store): Move to ...
31429 (nds32_valid_stack_push_pop): Move to ...
31430 (nds32_can_use_bclr_p): Move to ...
31431 (nds32_can_use_bset_p): Move to ...
31432 (nds32_can_use_btgl_p): Move to ...
31433 (nds32_can_use_bitci_p): Move to ...
31434 * config/nds32/nds32-predicates.c: ... here.
31436 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
31437 Kito Cheng <kito@0xlab.org>
31438 Monk Chiang <sh.chiang04@gmail.com>
31440 * config/nds32/nds32.c
31441 (nds32_expand_builtin_null_ftype_reg): Move to ...
31442 (nds32_expand_builtin_reg_ftype_imm): Move to ...
31443 (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
31444 (nds32_init_builtins): Move implementation to ...
31445 (nds32_expand_builtin): Move implementation to ...
31446 * config/nds32/nds32-intrinsic.c: ... here.
31447 * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
31448 (nds32_expand_builtin_impl): Declare.
31450 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
31451 Kito Cheng <kito@0xlab.org>
31452 Monk Chiang <sh.chiang04@gmail.com>
31454 * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
31455 (nds32_emit_section_tail_template): Move to ...
31456 (nds32_emit_isr_jmptbl_section): Move to ...
31457 (nds32_emit_isr_vector_section): Move to ...
31458 (nds32_emit_isr_reset_conten): Move to ...
31459 (nds32_check_isr_attrs_conflict): Move to ...
31460 (nds32_construct_isr_vectors_information): Move to ...
31461 (nds32_asm_file_start): Move implementation to ...
31462 (nds32_asm_file_end): Move implementation to ...
31463 * config/nds32/nds32-isr.c: ... here.
31464 * config/nds32/nds32-protos.h
31465 (nds32_check_isr_attrs_conflict): Declare.
31466 (nds32_construct_isr_vectors_information): Declare.
31467 (nds32_asm_file_start_for_isr): Declare.
31468 (nds32_asm_file_end_for_isr): Declare.
31470 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
31471 Kito Cheng <kito@0xlab.org>
31472 Monk Chiang <sh.chiang04@gmail.com>
31474 * config.gcc (nds32*): Add new modules to extra_objs.
31475 (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
31476 (nds32be-*-*): Likewise.
31477 * config/nds32/nds32-cost.c: New file.
31478 * config/nds32/nds32-fp-as-gp.c: New file.
31479 * config/nds32/nds32-intrinsic.c: New file.
31480 * config/nds32/nds32-isr.c: New file.
31481 * config/nds32/nds32-md-auxiliary.c: New file.
31482 * config/nds32/nds32-memory-manipulation.c: New file.
31483 * config/nds32/nds32-pipelines-auxiliary.c: New file.
31484 * config/nds32/nds32-predicates.c: New file.
31485 * config/nds32/t-nds32: New file.
31487 2014-07-03 Jakub Jelinek <jakub@redhat.com>
31489 PR tree-optimization/61682
31490 * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
31491 using cases and when one of the operands is equal to 1.
31493 2014-07-03 Segher Boessenkool <segher@kernel.crashing.org>
31495 * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
31496 ashr<mode>3): Correct mode of operands[2].
31497 (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
31498 lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
31499 Correct mode of operands[2]. Fix split condition.
31501 2014-07-03 Richard Earnshaw <rearnsha@arm.com>
31503 * arm.md (arch): Add armv6_or_vfpv3.
31504 (arch_enabled): Add test for the above.
31505 * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
31507 (sqrtsf_vfp, sqrtdf_vfp): Likewise.
31509 2014-07-03 Jakub Jelinek <jakub@redhat.com>
31511 * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
31512 * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
31513 HWI 1 and negate the unsigned value.
31514 * expmed.c (expand_sdiv_pow2): For modes wider than word always
31515 use AND instead of shift.
31516 * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
31518 2014-07-03 Marek Polacek <polacek@redhat.com>
31520 * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
31521 (-fsanitize=float-divide-by-zero): Move to the table with
31522 -fsanitize=undefined suboptions.
31523 (-fsanitize=float-cast-overflow): Likewise.
31525 2014-07-03 Maciej W. Rozycki <macro@codesourcery.com>
31527 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
31528 BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
31531 2014-07-03 Zhenqiang Chen <zhenqiang.chen@linaro.org>
31533 * loop-invariant.c (struct invariant): Add a new member: eqno;
31534 (find_identical_invariants): Update eqno;
31535 (create_new_invariant): Init eqno;
31536 (get_inv_cost): Compute comp_cost with eqno;
31538 2014-07-02 Segher Boessenkool <segher@kernel.crashing.org>
31540 * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
31541 (walk_insn_part) <ROTATE, ROTATERT>: New cases.
31542 (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
31543 * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
31544 Only do the transformation if both HAVE_rotate and HAVE_rotatert.
31546 2014-07-02 Christian Bruel <christian.bruel@st.com>
31550 * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
31551 (make_preds_opaque): Delete.
31552 (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
31553 (commit_mode_sets): New function.
31554 (optimize_mode_switching): Handle current_mode to mode_switching_emit.
31555 Process all modes at once.
31556 * basic-block.h (pre_edge_lcm_avs): Declare.
31557 * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
31558 Call clear_aux_for_edges. Fix comments.
31559 (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
31560 (pre_edge_rev_lcm): Idem.
31561 * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
31563 * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
31564 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
31566 * config/i386/i386.c (x96_emit_mode_set): Idem.
31567 * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
31568 * config/sh/sh.md (toggle_pr): Defined if TARGET_FPU_SINGLE.
31569 (fpscr_toggle) Disallow from delay slot.
31570 * target.def (emit_mode_set): Add prev_mode parameter.
31571 * doc/tm.texi: Regenerate.
31573 2014-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31575 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
31578 2014-07-01 Jan Hubicka <hubicka@ucw.cz>
31580 * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
31581 vtable_pointer_value_to_vtable): Constify.
31582 (contains_polymorphic_type_p): Declare.
31583 * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
31584 vtable_pointer_value_to_vtable): Constify.
31585 (contains_polymorphic_type_p): New predicate.
31586 * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
31588 (ipa_set_ancestor_jf): Likewise.
31589 (detect_type_change): Return false in easy cases.
31590 (compute_complex_assign_jump_func): Require type to contain
31592 (compute_known_type_jump_func): Likewise.
31594 2014-07-01 Jan Hubicka <hubicka@ucw.cz>
31596 * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
31598 (type_in_anonymous_namespace_p): Constify argument.
31599 * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
31600 * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
31601 (main_odr_variant): New function.
31602 (hash_type_name): Make static; update assert; do not ICE on
31604 (types_same_for_odr): Bring here from tree.c; simplify and remove
31605 old structural comparing code that doesn't work for templates.
31606 (odr_hasher::equal): Update assert.
31607 (add_type_duplicate): Return true when bases should be computed;
31608 replace incomplete loader by complete; do not output duplicated
31609 warnings; do not ICE on non-records; set odr_violated flag.
31610 (get_odr_type): Be ready to replace incomplete type by complete
31611 one; work on ODR variants instead of main variants; reorder item
31612 in array so bases have still smaller indexes.
31613 (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
31614 (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
31616 2014-07-01 Cary Coutant <ccoutant@google.com>
31618 * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
31620 (resolve_addr_in_expr): When replacing the rtx in a location list
31621 entry, get a new address table entry.
31622 (dwarf2out_finish): Call index_location_lists even if there are no
31623 addr_index_table entries yet.
31625 2014-07-01 Trevor Saunders <tsaunders@mozilla.com>
31627 * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
31628 change for not being obvious.
31630 2014-07-01 Trevor Saunders <tsaunders@mozilla.com>
31632 * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
31635 2014-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31637 * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
31638 (vcagt_f64): Likewise.
31639 (vcale_f64): Likewise.
31640 (vcaled_f64): Likewise.
31641 (vcales_f32): Likewise.
31642 (vcalt_f64): Likewise.
31643 (vcaltd_f64): Likewise.
31644 (vcalts_f32): Likewise.
31646 2014-07-01 Marek Polacek <polacek@redhat.com>
31648 * doc/invoke.texi: Document -Wint-conversion.
31650 2014-07-01 Marek Polacek <polacek@redhat.com>
31653 * doc/invoke.texi: Document -Wincompatible-pointer-types.
31655 2014-07-01 Martin Liska <mliska@suse.cz>
31657 IPA REF alias refactoring
31658 * cgraph.h (iterate_direct_aliases): New function.
31659 (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
31660 * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
31661 FOR_EACH_ALIAS added.
31662 (cgraph_for_node_and_aliases): Likewise.
31663 * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
31664 * ipa-inline.c (reset_edge_caches): Likewise.
31665 (update_caller_keys): Likewise.
31666 * trans-mem.c (ipa_tm_execute): Likewise.
31667 *varpool.c (varpool_analyze_node): Likewise.
31668 (varpool_for_node_and_aliases): Likewise.
31669 * ipa-ref.h (first_alias): New function.
31670 (last_alias): Likewise.
31671 (has_aliases_p): Likewise.
31672 * ipa-ref.c (ipa_ref::remove_reference): Removal function
31673 is sensitive to IPA_REF_ALIASes.
31674 * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
31675 are put at the beginning of the list.
31676 (symtab_node::iterate_direct_aliases): New function.
31678 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
31681 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
31683 (write_ts_type_common_tree_pointers): Do not stream fields not set
31684 for incomplete types; do not stream duplicated fields for variants;
31685 sanity check that variant and type match.
31686 (write_ts_type_non_common_tree_pointers): Likewise.
31687 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
31688 TYPE_SIZE whether type is complete.
31689 (lto_input_ts_type_common_tree_pointers): Do same changes as in
31690 write_ts_type_common_tree_pointers
31691 (lto_input_ts_type_non_common_tree_pointers): Likewise.
31693 2014-06-30 Joseph Myers <joseph@codesourcery.com>
31695 * var-tracking.c (add_stores): Return instead of asserting if old
31696 and new values for conditional store are the same.
31698 2014-06-30 Richard Henderson <rth@redhat.com>
31702 * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
31703 the cfg if there were any changes.
31704 * passes.def: Revert move of peephole2 after reorder_blocks;
31705 move duplicate_computed_gotos before peephole2.
31707 2014-06-30 Uros Bizjak <ubizjak@gmail.com>
31709 * except.c (emit_note_eh_region_end): New helper function.
31710 (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
31711 emit EH_REGION_END note.
31712 * jump.c (cleanup_barriers): Do not split a call and its
31713 corresponding CALL_ARG_LOCATION note.
31715 2014-06-30 Jeff Law <law@redhat.com>
31717 PR tree-optimization/61607
31718 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
31719 deeper into the SSA_NAME_VALUE chain.
31721 2014-06-30 Marek Polacek <polacek@redhat.com>
31723 * convert.c (convert_to_integer): Don't instrument conversions if the
31724 function has no_sanitize_undefined attribute.
31725 * ubsan.c: Don't run the ubsan pass if the function has
31726 no_sanitize_undefined attribute.
31728 2014-06-30 Jakub Jelinek <jakub@redhat.com>
31730 * doc/invoke.texi (-fsanitize=bounds): Move to the table with
31731 -fsanitize=undefined suboptions.
31733 2014-06-30 Alan Lawrence <alan.lawrence@arm.com>
31735 * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
31736 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
31737 against bigendian and adjust indices.
31739 2014-06-30 Gerald Pfeifer <gerald@pfeifer.com>
31741 * doc/install.texi (Specific, aarch64*-*-*): Fix markup. Reword a bit.
31743 2014-06-30 Marcus Shawcroft <marcus.shawcroft@arm.com>
31746 * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
31747 Add alternative; make early clobber. Adjust both split patterns
31748 to use operand 0 as the working register.
31750 2014-06-30 Jakub Jelinek <jakub@redhat.com>
31752 * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
31753 as ira_object_id_map might be NULL, or 1.
31755 2014-06-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
31757 * loop-invariant.c (get_inv_cost): Handle register class.
31758 (gain_for_invariant): Check the register pressure of the inv
31759 and its overlapped register class, other than all.
31761 2014-06-30 Gerald Pfeifer <gerald@pfeifer.com>
31763 * doc/invoke.texi (Optimize Options): Fix descriptions of
31764 ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
31766 2014-06-29 David Wohlferd <dw@LimeGreenSocks.com>
31768 * doc/extend.texi (Function Attributes): Update 'naked' attribute
31771 2014-06-29 Tobias Grosser <tobias@grosser.es>
31774 * graphite-isl-ast-to-gimple.c: Add missing guards.
31776 2014-06-29 Roman Gareev <gareevroman@gmail.com>
31778 * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
31779 * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
31780 * flag-types.h: Add new enum fgraphite_generator.
31781 * graphite-isl-ast-to-gimple.c: New.
31782 * graphite-isl-ast-to-gimple.h: New.
31783 * graphite.c (graphite_transform_loops): Add choice of Graphite
31784 code generator, which depends on flag_graphite_code_gen.
31786 2014-06-29 Roman Gareev <gareevroman@gmail.com>
31788 * graphite-dependences.c (subtract_commutative_associative_deps):
31789 Add NULL checking of the following variables: must_raw_no_source,
31790 may_raw_no_source, must_war_no_source, may_war_no_source,
31791 must_waw_no_source, may_waw_no_source, must_raw, may_raw,
31792 must_war, may_war, must_waw, may_waw.
31794 2014-06-29 Roman Gareev <gareevroman@gmail.com>
31796 * graphite-clast-to-gimple.c: gloog is renamed to
31797 graphite_regenerate_ast_cloog. gloog_error is renamed to
31798 graphite_regenerate_error.
31799 * graphite-clast-to-gimple.h: The definition of the struct
31800 bb_pbb_def is moved to graphite-htab.h.
31801 Add inclusion of the hash-table.h.
31802 * graphite-htab.h: The declaration of the function gloog is moved
31803 to graphite-clast-to-gimple.h and renamed to
31804 graphite_regenerate_ast_cloog.
31805 * graphite.c (graphite_transform_loops): gloog is renamed
31806 to graphite_regenerate_ast_cloog.
31808 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
31810 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
31812 (write_ts_type_common_tree_pointers): Do not stream fields not set
31813 for incomplete types; do not stream duplicated fields for variants;
31814 sanity check that variant and type match.
31815 (write_ts_type_non_common_tree_pointers): Likewise.
31816 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
31817 TYPE_SIZE whether type is complete.
31818 (lto_input_ts_type_common_tree_pointers): Do same changes as in
31819 write_ts_type_common_tree_pointers
31820 (lto_input_ts_type_non_common_tree_pointers): Likewise.
31822 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
31824 * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
31826 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
31828 * tree-inline.c (remap_type_1): Do not duplicate fields
31829 that are shared in between type and its main variant.
31831 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
31833 * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
31835 (ipa_set_ancestor_jf) Likewise.
31836 (check_stmt_for_type_change): Check that we work on main variant.
31837 (detect_type_change): Look into main variant.
31838 (compute_known_type_jump_func): Check that main variant has BINFO.
31840 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
31842 * ipa-devirt.c (set_type_binfo): New function.
31843 (add_type_duplicate): Use it.
31844 (get_odr_type): Sanity check that binfos points to main variants.
31845 (get_class_context): Be sure the context's outer_type is main variant.
31846 (contains_type_p): Walk main variant.
31847 (get_polymorphic_call_info_for_decl): Set outer_type to be
31849 (get_polymorphic_call_info): Likewise.
31850 (possible_polymorphic_call_targets): Sanity check that we operate
31853 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
31855 * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
31857 2014-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
31859 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
31860 accidental change due to wide-int branch merge.
31862 2014-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31864 * configure.ac (gcc_cv_as_compress_debug): Check for assembler
31865 compressed debug support.
31866 (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
31867 * configure: Regenerate.
31868 * config.in: Regenerate.
31869 * common.opt (compressed_debug_sections): New enum.
31870 (gz, gz=): New options.
31871 * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
31872 (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
31873 (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
31874 * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
31875 LINK_COMPRESS_DEBUG_SPEC.
31876 * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
31877 * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
31878 * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
31879 (Debugging Options): Document -gz[=type].
31881 2014-06-27 Martin Jambor <mjambor@suse.cz>
31884 * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
31885 args_to_skip, use those from node instead. Copy args_to_skip and
31886 combined_args_to_skip from node to the new thunk.
31887 (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
31888 (cgraph_create_virtual_clone): Moved computation of
31889 combined_args_to_skip...
31890 (cgraph_clone_node): ...here, simplify it to bitmap_ior..
31892 2014-06-27 trevor Saunders <tsaunders@mozilla.com>
31894 * config/i386/winnt.c (i386_pe_section_type_flags): Remove
31895 redundant diagnostic machinary.
31897 2014-06-27 Richard Biener <rguenther@suse.de>
31899 * tree-ssa-math-opts.c (bswap_replace): Fix
31900 SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
31902 2014-06-27 Martin Liska <mliska@suse.cz>
31904 * gimple.h (gimple_location_safe): New function introduced.
31905 * cgraphunit.c (walk_polymorphic_call_targets): Usage
31906 of gimple_location_safe replaces gimple_location.
31907 (gimple_fold_call): Likewise.
31908 * ipa-devirt.c (ipa_devirt): Likewise.
31909 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
31910 * ipa.c (walk_polymorphic_call_targets): Likewise.
31911 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
31913 2014-06-27 Jakub Jelinek <jakub@redhat.com>
31915 PR tree-optimization/57233
31916 PR tree-optimization/61299
31917 * tree-vect-generic.c (get_compute_type, count_type_subparts): New
31919 (expand_vector_operations_1): Use them. If {L,R}ROTATE_EXPR
31920 would be lowered to scalar shifts, check if corresponding
31921 shifts and vector BIT_IOR_EXPR are supported and don't lower
31922 or lower just to narrower vector type in that case.
31923 * expmed.c (expand_shift_1): Fix up handling of vector
31924 shifts and rotates.
31926 2014-06-26 Uros Bizjak <ubizjak@gmail.com>
31929 * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
31931 2014-06-26 Jan Hubicka <hubicka@ucw.cz>
31933 * doc/invoke.texi (-fsemantic-interposition): Document.
31934 * common.opt (fsemantic-interposition): New flag.
31935 * varasm.c (decl_replaceable_p): Use it.
31937 2014-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
31940 * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
31941 extraction other than index 3.
31943 2014-06-26 Teresa Johnson <tejohnson@google.com>
31945 * doc/invoke.texi: Fix typo.
31946 * dumpfile.c: Add support for documented -fdump-* options
31947 optimized/missed/note/optall.
31949 2014-06-26 Martin Jambor <mjambor@suse.cz>
31951 * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
31952 (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
31953 (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
31954 (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
31955 * opts.c (default_options_optimization): Set
31956 PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
31957 * doc/invoke.texi (allow-load-data-races)
31958 (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
31959 (allow-store-data-races): Document the new default.
31961 2014-06-26 Martin Jambor <mjambor@suse.cz>
31963 * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
31964 renamed to ipa_impossible_devirt_target. Fix typo.
31965 * ipa-prop.h (ipa_impossible_devirt_target): Declare.
31966 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
31967 ipa_impossible_devirt_target.
31969 2014-06-26 Richard Biener <rguenther@suse.de>
31971 PR tree-optimization/61607
31972 * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
31973 explaining why we restrict copies on loop depth.
31974 * tree-ssa-dom.c (cprop_operand): Remove restriction on
31976 (record_equivalences_from_phis): Instead add it here.
31978 2014-06-26 Bernd Schmidt <bernds@codesourcery.com>
31980 * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
31981 (LTO_WRAPPER_OBJS): New variable.
31982 (lto-wrapper$(exeext)): Use it.
31983 * collect2.c: Include "collect-utils.h".
31984 (verbose, debug): Remove variables.
31985 (at_file_supplied): No longer static.
31986 (tool_name): New variable.
31987 (do_wait, fork_execute, maybe_unlink): Don't declare.
31988 (tool_cleanup): No longer static.
31989 (notice): Remove function.
31990 (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
31991 fork_execute calls.
31992 (collect_wait, do_wait, collect_execute): Remove functions.
31993 (maybe_unlink): No longer static.
31994 * collect2.h (verbose, debug): Don't declare.
31995 (at_file_supplied): Declare.
31996 * collect-utils.c (utils_cleanup): New arg from_signal. All callers
31998 (collect_execute): Replace with implementation from collect2, plus a
31999 new arg use_atfile. All callers changed.
32000 (collect_wait): Replace with implementation from collect2.
32001 (maybe_unlink_file): Remove function.
32002 (fork_execute): Replace with implementation from collect2, plus a
32003 new arg use_atfile. All callers changed.
32004 (do_wait): Add call to utils_cleanup to the error path.
32005 * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
32006 (tool_cleanup): Adjust declarations.
32007 * lto-wrapper.c (tool_cleanup): Add unused bool argument.
32008 * tlink.c: Include "collect-utils.h".
32009 (tlink_execute): New arg use_atfile. All callers changed.
32010 (tlink_init, tlink_execute): Remove declarations.
32012 * collect-utils.c (save_temps): New variable.
32013 (do_wait): Use it instead of debug. Use fatal_error.
32014 * collect-utils.h (save_temps): Declare.
32015 * collect2.c (verbose): Rename from vflag. All uses changed.
32016 (tool_cleanup): New function, copied from collect_atexit.
32017 (collect_atexit, handler): Just call it.
32018 * collect2.h (verbose): Declaration renamed from vflag.
32019 * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
32022 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
32023 (lto-wrapper$(exeext)): Link with collect-utils.o.
32024 * collect-utils.c: New file.
32025 * collect-utils.h: New file.
32026 * lto-wrapper.c: Include "collect-utils.h".
32027 (args_name): Delete variable.
32028 (tool_name): New variable.
32029 (tool_cleanup): New function.
32030 (maybe_unlink): Renamed from maybe_unlink_file. All callers changed.
32031 (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
32032 (fork_execute): Remove functions.
32034 2014-06-26 Nick Clifton <nickc@redhat.com>
32036 * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
32038 * doc/extend.texi (Function Attributes): Fix typo in description
32039 of RX vector attribute.
32041 2014-06-26 James Greenhalgh <james.greenhalgh@arm.com>
32043 * config.gcc (supported_defaults): Error when passing either
32044 --with-tune or --with-arch in conjunction with --with-cpu for ARM.
32046 2014-06-26 Richard Biener <rguenther@suse.de>
32048 * tree-ssa-dom.c (cprop_operand): Remove restriction on
32049 propagating volatile pointers.
32051 2014-06-26 Richard Biener <rguenther@suse.de>
32053 PR tree-optimization/61607
32054 * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
32055 loop if we redirected its latch edge.
32056 (thread_block_1): Do not cancel loops prematurely.
32058 2014-06-25 Jan Hubicka <hubicka@ucw.cz>
32060 * toplev.c (backend_init_target): Move init_emit_regs and
32062 (backend_init) ... here; skip ira_init_once and backend_init_target.
32063 (target_reinit) ... and here; clear
32064 this_target_rtl->lang_dependent_initialized.
32065 (lang_dependent_init_target): Clear
32066 this_target_rtl->lang_dependent_initialized;
32067 break out rtl initialization to ...
32068 (initialize_rtl): ... here; call also backend_init_target
32070 * toplev.h (initialize_rtl): New function.
32071 * function.c: Include toplev.h
32072 (init_function_start): Call initialize_rtl.
32073 * rtl.h (target_rtl): Add target_specific_initialized,
32074 lang_dependent_initialized.
32076 2014-06-25 Paul Gortmaker <paul.gortmaker@windriver.com>
32077 Jakub Jelinek <jakub@redhat.com>
32079 * gcc.c (set_multilib_dir): Malloc "." pointer as well.
32081 2014-06-25 Tom de Vries <tom@codesourcery.com>
32083 * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
32085 2014-06-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
32087 * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
32088 check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
32089 Issue a strict overflow warning if appropriate.
32091 2014-06-25 Martin Liska <mliska@suse.cz>
32093 IPA REF refactoring
32094 * Makefile.in: Removed header file (ipa-ref-inline.h).
32095 * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
32097 (cgraph_speculative_call_info): Likewise.
32098 (cgraph_for_node_thunks_and_aliases): Likewise.
32099 (cgraph_for_node_and_aliases): Likewise.
32100 (verify_cgraph_node): Likewise.
32101 * cgraph.h: Batch of IPA REF functions become member functions of
32102 symtab_node: add_reference, maybe_add_reference, clone_references,
32103 clone_referring, clone_reference, find_reference,
32104 remove_stmt_references, remove_all_references,
32105 remove_all_referring, dump_references, dump_referring,
32106 has_alias_p, iterate_reference, iterate_referring.
32107 * cgraphbuild.c (record_reference): New IPA REF function used.
32108 (record_type_list): Likewise.
32109 (record_eh_tables): Likewise.
32110 (mark_address): Likewise.
32111 (mark_load): Likewise.
32112 (mark_store): Likewise.
32113 (pass_build_cgraph_edges): Likewise.
32114 (rebuild_cgraph_edge): Likewise.
32115 (cgraph_rebuild_references): Likewise.
32116 (pass_remove_cgraph_callee_edges): Likewise.
32117 * cgraphclones.c (cgraph_clone_node): Likewise.
32118 (cgraph_create_virtual_clone): Likewise.
32119 (cgraph_materialize_clone): Likewise.
32120 (cgraph_materialize_all_clones): Likewise.
32121 * cgraphunit.c (cgraph_reset_node): Likewise.
32122 (cgraph_reset_node): Likewise.
32123 (analyze_function): Likewise.
32124 (assemble_thunks_and_aliases): Likewise.
32125 (expand_function): Likewise.
32126 * ipa-comdats.c (propagate_comdat_group): Likewise.
32127 (enqueue_references): Likewise.
32128 * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
32129 (create_specialized_node): Likewise.
32130 * ipa-devirt.c (referenced_from_vtable_p): Likewise.
32131 * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
32132 * ipa-inline.c (reset_edge_caches): Likewise.
32133 (update_caller_keys): Likewise.
32134 (execute): Likewise.
32135 * ipa-prop.c (remove_described_reference): Likewise.
32136 (propagate_controlled_uses): Likewise.
32137 (ipa_edge_duplication_hook): Likewise.
32138 (ipa_modify_call_arguments): Likewise.
32139 * ipa-pure-const.c (propagate_pure_const): Likewise.
32140 * ipa-ref-inline.h: Header file removed, functions moved
32141 to symtab_node class.
32142 * ipa-ref.c (remove_reference): New class member function.
32143 (cannot_lead_to_return): New class member function.
32144 (referring_ref_list): Likewise.
32145 (referred_ref_list): Likewise.
32146 Rest of functions moved to symtab_node class.
32147 * ipa-ref.h: New member functions remove_reference,
32148 cannot_lead_to_return, referring_ref_list, referred_ref_list added
32150 ipa_ref_list class has new member functions: first_reference,
32151 first_referring, clear, nreferences.
32152 * ipa-reference.c (analyze_function): New IPA REF function used.
32153 (write_node_summary_p): Likewise.
32154 (ipa_reference_write_optimization_summary): Likewise.
32155 * ipa-split.c (split_function): Likewise.
32156 * ipa-utils.c (ipa_reverse_postorder): Likewise.
32157 * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
32158 (function_and_variable_visibility): Likewise.
32159 * ipa.c (has_addr_references_p): Likewise.
32160 (process_references): Argument type changed.
32161 (symtab_remove_unreachable_nodes): New IPA REF function used.
32162 (process_references): Likewise.
32163 (set_writeonly_bit): Likewise.
32164 * lto-cgraph.c: Implementation of new symtab_node member functions
32165 that uses new IPA REF functions.
32166 * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
32168 * lto-streamer-out.c (output_symbol_p): Likewise.
32169 * lto-streamer.h (referenced_from_this_partition_p): Argument type
32171 * symtab.c: Implementation of new IPA REF API.
32172 * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
32173 (ipa_tm_create_version): Likewise.
32174 (ipa_tm_execute): Likewise.
32175 * tree-emutls.c (gen_emutls_addr): Likewise.
32176 * tree-inline.c (copy_bb): Likewise.
32177 (delete_unreachable_blocks_update_callgraph): Likewise.
32178 * varpool.c (varpool_remove_unreferenced_decls): Likewise.
32179 (varpool_for_node_and_aliases): Likewise.
32181 2014-06-25 Trevor Saunders <tsaunders@mozilla.com>
32183 * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
32185 2014-06-25 Trevor Saunders <tsaunders@mozilla.com>
32188 * fold-const.c (fold_checksum_tree): Use a hash_table of const
32189 tree_node * instead of tree_node *.
32191 (print_fold_checksum): Likewise.
32192 (fold_check_failed): Likewise.
32193 (debug_fold_checksum): Likewise.
32194 (fold_build1_stat_loc): Likewise.
32195 (fold_build2_stat_loc): Likewise.
32196 (fold_build3_stat_loc): Likewise.
32197 (fold_build_call_array_loc): Likewise.
32199 2014-06-25 David Edelsohn <dje.gcc@gmail.com>
32201 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
32202 implementation with call to...
32203 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
32205 * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
32208 2014-06-25 Marc Glisse <marc.glisse@inria.fr>
32210 PR tree-optimization/57742
32211 * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
32212 after replacing the statement.
32214 2014-06-25 Nick Clifton <nickc@redhat.com>
32216 * config/v850/v850.c (GHS_default_section_names): Change to const
32218 (GHS_current_section_names): Likewise.
32219 (v850_insert_attributes): Do not build strings, just assign the
32220 names directly. Change the type of 'chosen_section' to const
32222 * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
32223 directly to the array entry.
32224 * config/v850/v850.h (GHS_default_section_names): Change to const
32226 (GHS_current_section_names): Likewise.
32228 2014-06-25 Jakub Jelinek <jakub@redhat.com>
32230 * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
32231 (LANG_HOOKS_DECLS): Add it.
32232 * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
32234 * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
32235 * langhooks.h (struct lang_hooks_for_decls): Add
32236 omp_clause_linear_ctor hook.
32237 * omp-low.c (lower_rec_input_clauses): Set max_vf even if
32238 OMP_CLAUSE_LINEAR_ARRAY is set. Don't fold_convert
32239 OMP_CLAUSE_LINEAR_STEP. For OMP_CLAUSE_LINEAR_ARRAY in
32240 combined simd loop use omp_clause_linear_ctor hook.
32242 2014-06-24 Cong Hou <congh@google.com>
32244 * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
32245 pattern recognition.
32246 (type_conversion_p): PROMOTION is true if it's a type promotion
32247 conversion, and false otherwise. Return true if the given expression
32248 is a type conversion one.
32249 * tree-vectorizer.h: Adjust the number of patterns.
32250 * tree.def: Add SAD_EXPR.
32251 * optabs.def: Add sad_optab.
32252 * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
32253 * expr.c (expand_expr_real_2): Likewise.
32254 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
32255 * gimple.c (get_gimple_rhs_num_ops): Likewise.
32256 * optabs.c (optab_for_tree_code): Likewise.
32257 * tree-cfg.c (estimate_operator_cost): Likewise.
32258 * tree-ssa-operands.c (get_expr_operands): Likewise.
32259 * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
32260 * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
32261 * doc/generic.texi: Add document for SAD_EXPR.
32262 * doc/md.texi: Add document for ssad and usad.
32264 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
32266 * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
32267 qualification in cast.
32269 2014-06-24 Jan Hubicka <hubicka@ucw.cz>
32271 * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
32272 * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
32273 * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
32274 (tree_function_decl): ... here.
32275 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
32276 streaming of vindex to ...
32277 (write_ts_function_decl_tree_pointers): ... here.
32278 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
32279 Do not stream DECL_VINDEX.
32280 (lto_input_ts_function_decl_tree_pointers): Stream it here.
32282 2014-06-24 Catherine Moore <clm@codesourcery.com>
32283 Sandra Loosemore <sandra@codesourcery.com>
32285 * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
32286 * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
32287 * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
32289 2014-06-24 Marc Glisse <marc.glisse@inria.fr>
32291 * doc/invoke.texi (Warning Options): Remove duplicated
32292 -Wmaybe-uninitialized.
32294 2014-06-24 Marc Glisse <marc.glisse@inria.fr>
32296 PR tree-optimization/57742
32297 * tree-ssa-strlen.c (get_string_length): Ignore malloc.
32298 (handle_builtin_malloc, handle_builtin_memset): New functions.
32299 (strlen_optimize_stmt): Call them.
32300 * passes.def: Move strlen after loop+dom but before vrp.
32302 2014-06-24 Jakub Jelinek <jakub@redhat.com>
32305 * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
32306 model family 6 CPU with has_longmode never use a CPU without
32309 2014-06-24 H.J. Lu <hongjiu.lu@intel.com>
32312 * config/i386/driver-i386.c (host_detect_local_cpu): Revert
32315 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
32317 * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
32318 * dominance.c (iterate_fix_dominators): Use hash_map instead of
32320 * hash-map.h: New file.
32321 * ipa-comdats.c: Use hash_map instead of pointer_map.
32323 * lto-section-out.c: Adjust.
32324 * lto-streamer.h: Replace pointer_map with hash_map.
32325 * symtab.c (verify_symtab): Likewise.
32326 * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
32327 * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
32328 * tree-streamer.h: Likewise.
32329 * tree-streamer.c: Adjust.
32330 * pointer-set.h: Remove pointer_map.
32332 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
32334 * hash-table.h: Add a template arg to choose between storing values
32335 and storing pointers to values, and then provide partial
32336 specializations for both.
32337 * tree-browser.c (tree_upper_hasher): Provide the type the hash table
32338 should store, not the type values should point to.
32339 * tree-into-ssa.c (var_info_hasher): Likewise.
32340 * tree-ssa-dom.c (expr_elt_hasher): Likewise.
32341 * tree-complex.c: Adjust.
32342 * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
32343 table instead of int_tree_map *.
32344 * tree-parloops.c: Adjust.
32345 * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
32346 type is being stored.
32347 * tree-vectorizer.c: Adjust.
32349 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
32351 * hash-table.h: Remove a layer of indirection from hash_table so that
32352 it contains the hash table's data instead of a pointer to the data.
32353 * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
32354 config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
32355 config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
32356 data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
32357 fold-const.c, gcse.c, ggc-common.c,
32358 gimple-ssa-strength-reduction.c, gimplify.c,
32359 graphite-clast-to-gimple.c, graphite-dependences.c,
32360 graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
32361 ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
32362 loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
32363 lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
32364 postreload-gcse.c, sese.c, statistics.c, store-motion.c,
32365 trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
32366 tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
32367 tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
32368 tree-ssa-live.c, tree-ssa-loop-im.c,
32369 tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
32370 tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
32371 tree-ssa-structalias.c, tree-ssa-tail-merge.c,
32372 tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
32373 tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
32374 tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
32375 vtable-verify.c, vtable-verify.h: Adjust.
32377 2014-06-24 Richard Biener <rguenther@suse.de>
32379 PR tree-optimization/61572
32380 * tree-ssa-sink.c (statement_sink_location): Do not sink
32381 loads from hard registers.
32383 2014-06-24 Jakub Jelinek <jakub@redhat.com>
32385 * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
32386 not mentioned in clauses use private clause if the iterator is
32387 declared in #pragma omp for simd, and when adding lastprivate
32388 instead, add it to the outer #pragma omp for too. Diagnose
32389 if the variable is private in outer context. For simd collapse > 1
32390 loops, replace all iterators with temporaries.
32391 * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
32392 same even in collapse > 1 loops.
32394 * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
32395 OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
32397 <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
32398 (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
32400 (gimplify_adjust_omp_clauses): Likewise.
32401 * omp-low.c (lower_rec_simd_input_clauses,
32402 lower_rec_input_clauses, expand_omp_simd): Handle non-constant
32403 safelen the same as safelen(1).
32404 * tree-nested.c (convert_nonlocal_omp_clauses,
32405 convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED. For
32406 OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
32407 (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
32408 Fixup handling of GIMPLE_OMP_TARGET.
32409 (convert_tramp_reference_stmt, convert_gimple_call): Handle
32412 2014-06-24 Chung-Lin Tang <cltang@codesourcery.com>
32414 PR tree-optimization/61554
32415 * tree-ssa-propagate.c: Include "bitmap.h".
32416 (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
32417 properly update constructor/destructor.
32418 (substitute_and_fold_dom_walker::before_dom_children):
32419 Remove call to gimple_purge_dead_eh_edges, add bb->index to
32420 need_eh_cleaup instead.
32421 (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
32424 2014-06-23 Jan Hubicka <hubicka@ucw.cz>
32426 * varpool.c (dump_varpool_node): Dump used_by_single_function.
32427 * tree-pass.h (make_pass_ipa_single_use): New pass.
32428 * cgraph.h (used_by_single_function): New flag.
32429 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
32431 * passes.def (pass_ipa_single_use): Scedule.
32432 * ipa.c (BOTTOM): New macro.
32433 (meet): New function
32434 (propagate_single_user): New function.
32435 (ipa_single_use): New function.
32436 (pass_data_ipa_single_use): New pass.
32437 (pass_ipa_single_use): New pass.
32438 (pass_ipa_single_use::gate): New gate.
32439 (make_pass_ipa_single_use): New function.
32441 2014-06-23 Kai Tietz <ktietz@redhat.com>
32444 * passes.def (peephole2): Move peephole2 pass before sched2 pass.
32445 * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
32447 2014-06-23 Richard Biener <rguenther@suse.de>
32449 * tree-ssa-loop.c (gate_loop): New function.
32450 (pass_tree_loop::gate): Call it.
32451 (pass_data_tree_no_loop, pass_tree_no_loop,
32452 make_pass_tree_no_loop): New.
32453 * tree-vectorizer.c: Include tree-scalar-evolution.c
32454 (pass_slp_vectorize::execute): Initialize loops and SCEV if
32456 (pass_slp_vectorize::clone): New method.
32457 * timevar.def (TV_TREE_NOLOOP): New.
32458 * tree-pass.h (make_pass_tree_no_loop): Declare.
32459 * passes.def (pass_tree_no_loop): New pass group with
32462 2014-06-23 H.J. Lu <hongjiu.lu@intel.com>
32465 * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
32466 to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
32468 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
32470 * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
32471 "yes" where needed.
32473 2014-06-23 Alan Modra <amodra@gmail.com>
32476 * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
32477 to zero on debug statements.
32479 2014-06-23 Alan Lawrence <alan.lawrence@arm.com>
32482 * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
32483 Ignore third operand if present by marking qualifier_internal.
32485 * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
32487 * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
32489 (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
32490 arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
32491 (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
32492 vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
32493 vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
32494 vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
32495 vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
32496 vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
32497 vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
32498 vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
32499 vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
32500 vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
32501 vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
32502 vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
32503 vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
32504 vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
32505 logic in GCC vector extensions
32507 (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
32508 vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
32509 vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
32510 vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
32511 vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
32512 vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
32513 vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
32514 vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
32515 vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
32516 vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
32518 (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
32520 (vget_high_s64, vget_high_u64): Reimplement with GCC vector
32523 (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
32524 (vget_low_s64): Use __GET_LOW macro.
32525 (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
32526 gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
32527 (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
32528 (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
32529 __builtin_aarch64_lane_boundsi, use GCC vector extensions.
32531 (vcombine_s64): Use GCC vector extensions; remove cast.
32532 (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
32533 vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
32534 vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
32535 Fix type signature; remove cast.
32537 2014-06-23 Alan Lawrence <alan.lawrence@arm.com>
32540 * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
32542 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
32544 (BUILTIN_VD1): New.
32545 (BUILTIN_VD_RE): Remove.
32546 (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
32547 (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
32548 * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
32549 variant but not df.
32550 (vreinterpretv1df*, vreinterpret*v1df): New.
32551 (vreinterpretdf*, vreinterpret*df): Remove.
32552 * config/aarch64/aarch64-simd.md (aarch64_create,
32553 aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
32554 * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
32556 * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
32557 (vcreate_f64): Remove cast, use v1df builtin.
32558 (vcombine_f64): Remove cast, get elements with gcc vector extensions.
32559 (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
32560 vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
32561 vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
32562 vmov_n_f64, vst1_f64): Use gcc vector extensions.
32563 (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
32564 add range check using __builtin_aarch64_im_lane_boundsi.
32565 (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
32566 vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
32567 type signature, use gcc vector extensions.
32568 (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
32569 vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
32570 vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
32571 vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
32572 vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
32573 vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
32574 vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
32575 vreinterpret_u64_f64): Use v1df builtin not df.
32577 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
32579 * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
32582 2014-06-23 Jan Hubicka <hubicka@ucw.cz>
32584 * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
32587 2014-06-23 Zhenqiang Chen <zhenqiang.chen@linaro.org>
32589 * loop-invariant.c (pre_check_invariant_p): New function.
32590 (find_invariant_insn): Call pre_check_invariant_p.
32592 2014-06-22 Richard Henderson <rth@redhat.com>
32595 * compare-elim.c (struct comparison): Add eh_note.
32596 (find_comparison_dom_walker::before_dom_children): Don't eliminate
32597 a redundant comparison in a different EH region. Purge EH edges if
32600 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
32602 * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
32603 (var_shift): Use it.
32604 (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
32605 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
32606 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
32607 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
32608 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
32609 *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
32610 *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
32611 *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
32612 *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
32613 *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
32614 *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
32615 *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
32616 *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
32617 *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
32618 *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
32619 *rotldi3_internal15be): Use the new attribute. Merge register and
32620 integer alternatives.
32622 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
32624 * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
32625 define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
32626 split, *ashrdi3_internal3 and split): Delete, merge into...
32627 (ashr<mode>3): New expander.
32628 (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
32629 (*ashrsi3_64): Fix formatting. Replace "i" by "n".
32631 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
32633 * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
32634 *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
32635 *rotldi3_internal3 and split): Delete, merge into...
32636 (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
32637 (*rotlsi3_64): Fix formatting. Fix condition. Replace "i" by "n".
32638 Use "rotlw" extended mnemonic.
32640 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
32642 * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
32643 and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
32644 and split, *ashldi3_internal3 and split): Delete, merge into...
32645 (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
32646 (*ashlsi3_64): Fix formatting. Replace "i" by "n".
32648 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
32650 * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
32651 (lshrsi3, two anonymous define_insns and define_splits,
32652 lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
32653 *lshrdi3_internal3 and split): Delete, merge into...
32654 (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
32655 (*lshrsi3_64): Fix formatting. Replace "i" by "n".
32657 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
32659 * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
32660 Remove "O" alternative.
32662 2014-06-22 Richard Sandiford <rdsandiford@googlemail.com>
32664 * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
32665 (mips_move_from_gpr_cost): Likewise.
32666 (mips_register_move_cost): Update accordingly.
32667 (mips_secondary_reload_class): Remove name of in_p.
32669 2014-06-22 Marc Glisse <marc.glisse@inria.fr>
32672 * config/i386/i386.md (x86_64_shrd, x86_shrd,
32673 ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
32675 2014-06-21 Jan-Benedict Glaw <jbglaw@lug-owl.de>
32677 * config/nios2/nios2.c: Include "builtins.h".
32679 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
32681 * cgraph.h (tls_model_names): New variable.
32682 * print-tree.c (print_node): Simplify.
32683 * varpool.c (tls_model_names): New variable.
32684 (dump_varpool_node): Output tls model.
32686 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
32688 * ipa-visibility.c (function_and_variable_visibility): Disable
32689 temporarily local aliases for some targets.
32691 2014-06-20 Marek Polacek <polacek@redhat.com>
32693 * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
32694 * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
32695 into SANITIZE_UNDEFINED.
32696 * doc/invoke.texi: Describe -fsanitize=bounds.
32697 * gimplify.c (gimplify_call_expr): Add gimplification of internal
32698 functions created in the FEs.
32699 * internal-fn.c: Move "internal-fn.h" after "tree.h".
32700 (expand_UBSAN_BOUNDS): New function.
32701 * internal-fn.def (UBSAN_BOUNDS): New internal function.
32702 * internal-fn.h: Don't define internal functions here.
32703 * opts.c (common_handle_option): Add -fsanitize=bounds.
32704 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
32705 BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
32706 * tree-core.h: Define internal functions here.
32707 (struct tree_base): Add ifn field.
32708 * tree-pretty-print.c: Include "internal-fn.h".
32709 (dump_generic_node): Handle functions without CALL_EXPR_FN.
32710 * tree.c (get_callee_fndecl): Likewise.
32711 (build_call_expr_internal_loc): New function.
32712 * tree.def (CALL_EXPR): Update description.
32713 * tree.h (CALL_EXPR_IFN): Define.
32714 (build_call_expr_internal_loc): Declare.
32715 * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
32717 (ubsan_type_descriptor): Change bool parameter to enum
32718 ubsan_print_style. Adjust the code. Add handling of
32720 (ubsan_expand_bounds_ifn): New function.
32721 (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
32722 (ubsan_build_overflow_builtin): Likewise.
32723 (instrument_bool_enum_load): Likewise.
32724 (ubsan_instrument_float_cast): Likewise.
32725 * ubsan.h (enum ubsan_print_style): New enum.
32726 (ubsan_expand_bounds_ifn): Declare.
32727 (ubsan_type_descriptor): Adjust declaration. Use a default parameter.
32729 2014-06-20 Maciej W. Rozycki <macro@codesourcery.com>
32731 * config/rs6000/rs6000.md: Append `DONE' to preparation
32732 statements of `bswap' pattern splitters.
32734 2014-06-20 Tom de Vries <tom@codesourcery.com>
32736 * target.def (call_fusage_contains_non_callee_clobbers): Update
32738 * doc/tm.texi: Regenerate.
32740 2014-06-20 Yury Gribov <y.gribov@samsung.com>
32741 Max Ostapenko <m.ostapenko@partner.samsung.com>
32744 * asan.c (instrument_strlen_call): Fixed instrumentation of
32747 2014-06-20 Martin Jambor <mjambor@suse.cz>
32750 * ipa-prop.c (impossible_devirt_target): New function.
32751 (try_make_edge_direct_virtual_call): Use it, also instead of
32754 2014-06-20 Yury Gribov <y.gribov@samsung.com>
32755 Max Ostapenko <m.ostapenko@partner.samsung.com>
32758 * asan.c (build_check_stmt): Add condition.
32760 2014-06-20 Martin Jambor <mjambor@suse.cz>
32763 * cgraph.c (clone_of_p): Allow skipped_branch to deal with
32766 2014-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32768 * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
32770 (VCONQ): Make comment more helpful.
32772 * config/aarch64/aarch64-simd.md
32773 (aarch64_sqdmulh_lane<mode>):
32774 Use VCOND for operands 2. Update lane checking and flipping logic.
32775 (aarch64_sqrdmulh_lane<mode>): Likewise.
32776 (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
32777 (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
32778 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
32779 attribute of operand 3 to VCOND.
32780 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
32781 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
32782 (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
32783 (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
32784 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
32785 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
32787 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
32788 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
32789 (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
32790 (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
32791 (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
32792 (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
32793 operand to VCOND. Update lane flipping and bounds checking logic.
32794 (aarch64_sqdmlal2_lane<mode>): Likewise.
32795 (aarch64_sqdmlsl_lane<mode>): Likewise.
32796 (aarch64_sqdmull_lane<mode>): Likewise.
32797 (aarch64_sqdmull2_lane<mode>): Likewise.
32798 (aarch64_sqdmlal_laneq<mode>):
32799 Replace VCON usage with VCONQ.
32800 Emit aarch64_sqdmlal_laneq<mode>_internal insn.
32801 (aarch64_sqdmlal2_laneq<mode>): Emit
32802 aarch64_sqdmlal2_laneq<mode>_internal insn.
32803 Replace VCON with VCONQ.
32804 (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
32805 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
32806 (aarch64_sqdmull_laneq<mode>): Emit
32807 aarch64_sqdmull_laneq<mode>_internal insn.
32808 Replace VCON with VCONQ.
32809 (aarch64_sqdmull2_laneq<mode>): Emit
32810 aarch64_sqdmull2_laneq<mode>_internal insn.
32811 (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
32812 * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
32813 of 3rd argument to int16x4_t.
32814 (vqdmlalh_lane_s16): Likewise.
32815 (vqdmlslh_lane_s16): Likewise.
32816 (vqdmull_high_lane_s16): Likewise.
32817 (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
32818 (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
32819 (vqdmlsl_lane_s16): Likewise.
32820 (vqdmull_lane_s16): Don't create temporary int16x8_t value.
32821 (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
32822 (vqdmlals_lane_s32): Likewise.
32823 (vqdmlsls_lane_s32): Likewise.
32824 (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
32825 (vqdmulls_lane_s32): Likewise.
32826 (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
32827 (vqdmlsl_lane_s32): Likewise.
32828 (vqdmull_lane_s32): Don't create temporary int32x4_t value.
32829 (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
32830 (vqrdmulhh_lane_s16): Likewise.
32831 (vqdmlsl_high_lane_s16): Likewise.
32832 (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
32833 (vqdmlsl_high_lane_s32): Likewise.
32834 (vqrdmulhs_lane_s32): Likewise.
32836 2014-06-20 Tom de Vries <tom@codesourcery.com>
32838 * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
32839 get_call_reg_set_usage.
32841 2014-06-20 Tom de Vries <tom@codesourcery.com>
32843 * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
32844 it contains all call_used_regs.
32846 2014-06-20 Tom de Vries <tom@codesourcery.com>
32848 * final.c (collect_fn_hard_reg_usage): Add and use variable
32849 function_used_regs.
32851 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
32853 * cgraph.h (struct symtab_node): Add field in_init_priority_hash
32854 (set_init_priority, get_init_priority, set_fini_priority,
32855 get_fini_priority): New methods.
32856 * tree.c (init_priority_for_decl): Remove.
32857 (init_ttree): Do not initialize init priority.
32858 (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
32859 (decl_priority_info): Remove.
32860 (decl_init_priority_insert): Rewrite.
32861 (decl_fini_priority_insert): Rewrite.
32862 * tree.h (tree_priority_map_eq, tree_priority_map_hash,
32863 tree_priority_map_marked_p): Remove.
32864 * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
32865 * lto-streamer-out.c (hash_tree): Do not hash priorities.
32866 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
32867 not output priorities.
32868 (pack_ts_function_decl_value_fields): Likewise.
32869 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
32870 not input priorities.
32871 (unpack_ts_function_decl_value_fields): Likewise.
32872 * symtab.c (symbol_priority_map): Declare.
32873 (init_priority_hash): Declare.
32874 (symtab_unregister_node): Unregister from priority hash, too.
32875 (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
32877 (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
32878 (symbol_priority_info): New function.
32879 (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
32881 * tree-core.h (tree_priority_map): Remove.
32883 2014-06-20 Jakub Jelinek <jakub@redhat.com>
32885 * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
32886 0xff to uint64_t before shifting it up.
32888 2014-06-20 Julian Brown <julian@codesourcery.com>
32889 Chung-Lin Tang <cltang@codesourcery.com>
32891 * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
32892 TARGET_THUMB1_ONLY. Add comments.
32894 2014-06-19 Tom de Vries <tom@codesourcery.com>
32896 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
32897 return type to void.
32898 * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
32900 2014-06-19 Zhenqiang Chen <zhenqiang.chen@linaro.org>
32902 * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
32903 as "move", from depends_on.
32905 2014-06-19 Terry Guo <terry.guo@arm.com>
32907 * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
32910 2014-06-18 Segher Boessenkool <segher@kernel.crashing.org>
32912 * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
32914 (REG_ALLOC_ORDER): Update comment. Move cr5 earlier.
32916 2014-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
32919 * config/sh/sh.c (prepare_move_operands): Don't process TLS
32920 addresses here if reload in progress or completed.
32922 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
32924 * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
32925 "TARGET_MIPS16 ? M16_REGS : GR_REGS".
32926 * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
32927 (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
32928 (mips_register_priority): New function that implements the target
32929 hook TARGET_REGISTER_PRIORITY.
32930 (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
32931 (mips_lra_p): Likewise for TARGET_LRA_P.
32932 (TARGET_REGISTER_PRIORITY): Define macro.
32933 (TARGET_SPILL_CLASS): Likewise.
32934 (TARGET_LRA_P): Likewise.
32935 * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
32937 (REG_CLASS_NAMES): Likewise.
32938 (REG_CLASS_CONTENTS): Likewise.
32939 (BASE_REG_CLASS): Use M16_SP_REGS.
32940 * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
32941 New set attribute to enable alternatives depending on the register
32943 (*mul_acc_si_r3900, *mul_sub_si): Likewise.
32944 (*lea64): Disable pattern for MIPS16.
32945 * config/mips/mips.opt (mlra): New option.
32947 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
32949 * lra-constraints.c (base_to_reg): New function.
32950 (process_address): Use new function.
32952 2014-06-18 Tom de Vries <tom@codesourcery.com>
32954 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
32955 * config/aarch64/aarch64.c
32956 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
32957 (aarch64_emit_call_insn): New function.
32958 (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
32960 * config/aarch64/aarch64.md (define_expand "call_internal")
32961 (define_expand "call_value_internal", define_expand "sibcall_internal")
32962 (define_expand "sibcall_value_internal"): New.
32963 (define_expand "call", define_expand "call_value")
32964 (define_expand "sibcall", define_expand "sibcall_value"): Use internal
32965 expand variant and aarch64_emit_call_insn.
32967 2014-06-18 Radovan Obradovic <robradovic@mips.com>
32968 Tom de Vries <tom@codesourcery.com>
32970 * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
32971 * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
32973 (arm_emit_call_insn): Add and use sibcall parameter. Add IP and CC
32974 clobbers to CALL_INSN_FUNCTION_USAGE.
32975 (define_expand "sibcall_internal")
32976 (define_expand "sibcall_value_internal"): New.
32977 (define_expand "call", define_expand "call_value"): Add argument to
32978 arm_emit_call_insn.
32979 (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
32980 (define_expand "sibcall_value"): Use sibcall_value_internal and
32981 arm_emit_call_insn.
32983 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
32985 * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
32987 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
32989 * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
32992 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
32994 * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
32995 push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
32996 annotations. Fix DWARF information.
32998 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
33000 * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
33001 __udivmoddi4, and fixups for negative operands.
33003 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
33005 * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
33007 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
33009 * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
33012 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
33014 * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
33017 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
33019 * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
33020 describing register usage on function entry and exit.
33022 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
33024 * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
33025 (__aeabi_ldivmod): Fix whitespace.
33027 2014-06-18 Andreas Schwab <schwab@suse.de>
33029 * doc/md.texi (Standard Names): Use @itemx for grouped items.
33030 Remove blank line after @item.
33032 2014-06-18 Richard Henderson <rth@redhat.com>
33035 * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
33037 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
33039 * config/arm/arm.c (neon_vector_mem_operand): Allow register
33040 POST_MODIFY for neon loads and stores.
33041 (arm_print_operand): Output post-index register for neon loads and
33044 2014-06-18 Richard Biener <rguenther@suse.de>
33046 * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
33048 2014-06-18 Richard Biener <rguenther@suse.de>
33050 * tree-pass.h (make_pass_dce_loop): Remove.
33051 * passes.def: Replace pass_dce_loop with pass_dce.
33052 * tree-ssa-dce.c (perform_tree_ssa_dce): If something
33053 changed free niter estimates and reset the scev cache.
33054 (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
33055 make_pass_dce_loop): Remove.
33056 * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
33057 (fini_copy_prop): Return whether something changed. Always
33058 let substitute_and_fold perform DCE and free niter estimates
33059 and reset the scev cache if so.
33060 (execute_copy_prop): If sth changed schedule cleanup-cfg.
33061 (pass_data_copy_prop): Do not unconditionally schedule
33062 cleanup-cfg or update-ssa.
33064 2014-06-18 Yuri Rumyantsev <ysrumyan@gmail.com>
33066 PR tree-optimization/61518
33067 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
33068 reduction var is used in reduction stmt or phi-function only.
33070 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33072 * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
33074 2014-06-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
33076 PR tree-optimization/61517
33077 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
33078 whose rhs's first tree is the source expression instead of the
33080 (find_bswap_or_nop): Likewise.
33081 (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
33082 gimple stmt whose rhs's first tree is the source. In the memory source
33083 case, move the stmt to be replaced close to one of the original load to
33084 avoid the problem of a store between the load and the stmt's original
33086 (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
33089 2014-06-18 Andreas Schwab <schwab@suse.de>
33091 PR rtl-optimization/54555
33092 * postreload.c (move2add_use_add2_insn): Substitute
33093 STRICT_LOW_PART only if it is cheaper.
33095 2014-06-18 Uros Bizjak <ubizjak@gmail.com>
33097 * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
33098 Do not use unspec as call operand. Use memory_operand instead of
33099 memory_nox32_operand and add "m" operand constraint. Disable
33100 pattern for TARGET_X32.
33101 (*sibcall_pop_memory): Ditto.
33102 (*sibcall_value_memory): Ditto.
33103 (*sibcall_value_pop_memory): Ditto.
33104 (sibcall peepholes): Merge SImode and DImode patterns using
33105 W mode iterator. Use memory_operand instead of memory_nox32_operand.
33106 Disable pattern for TARGET_X32. Check if eliminated register is
33107 really dead after call insn. Generate call RTX without unspec operand.
33108 (sibcall_value peepholes): Ditto.
33109 (sibcall_pop peepholes): Fix call insn RTXes. Use memory_operand
33110 instead of memory_nox32_operand. Check if eliminated register is
33111 really dead after call insn. Generate call RTX without unspec operand.
33112 (sibcall_value_pop peepholes): Ditto.
33113 * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
33115 2014-06-18 Terry Guo <terry.guo@arm.com>
33118 * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
33121 2014-06-18 Olivier Hainque <hainque@adacore.com>
33123 * tree-core.h (tree_block): Add an "end_locus" field, allowing
33124 memorization of the end of block source location.
33125 * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
33126 * gimplify.c (gimplify_bind_expr): Propagate the block start and
33127 end source location info we have on the block entry/exit code we
33130 2014-06-18 Richard Biener <rguenther@suse.de>
33132 * common.opt (fssa-phiopt): New option.
33133 * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
33135 * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
33136 * doc/invoke.texi (-fssa-phiopt): Document.
33138 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33140 * genattrtab.c (n_bypassed): New variable.
33141 (process_bypasses): Initialise n_bypassed.
33142 Count number of bypassed reservations.
33143 (make_automaton_attrs): Allocate space for bypassed reservations
33144 rather than number of bypasses.
33146 2014-06-18 Richard Biener <rguenther@suse.de>
33148 * tree-ssa-propagate.c (replace_phi_args_in): Return whether
33149 we propagated anything.
33150 (substitute_and_fold_dom_walker::before_dom_children): Something
33151 changed if we propagated into PHI arguments.
33152 * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
33155 2014-06-18 Evgeny Stupachenko <evstupac@gmail.com>
33157 * config/i386/i386.c (ix86_reassociation_width): Add alternative for
33159 * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
33160 * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
33161 * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
33162 Introduces alternative way of loads group permutaions.
33163 (vect_transform_grouped_load): Try alternative way of permutations.
33165 2014-06-18 Jakub Jelinek <jakub@redhat.com>
33167 * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
33168 changed in ORT_TARGET region, don't jump to do_outer.
33169 (struct gimplify_adjust_omp_clauses_data): New type.
33170 (gimplify_adjust_omp_clauses_1): Adjust for data being
33171 a struct gimplify_adjust_omp_clauses_data pointer instead
33172 of tree *. Pass pre_p as a new argument to
33173 lang_hooks.decls.omp_finish_clause hook.
33174 (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
33175 splay_tree_foreach to pass both list_p and pre_p.
33176 (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
33177 gimplify_omp_workshare, gimplify_omp_target_update): Adjust
33178 gimplify_adjust_omp_clauses callers.
33179 * langhooks.c (lhd_omp_finish_clause): New function.
33180 * langhooks-def.h (lhd_omp_finish_clause): New prototype.
33181 (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
33182 * langhooks.h (struct lang_hooks_for_decls): Add a new
33183 gimple_seq * argument to omp_finish_clause hook.
33184 * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
33185 non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
33186 (scan_omp_parallel, lower_omp_for): When adding
33187 _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
33188 * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
33189 * tree-nested.c (convert_nonlocal_omp_clauses,
33190 convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
33191 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
33193 2014-06-17 Andrew MacLeod <amacleod@redhat.com>
33195 * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
33196 * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
33198 2014-06-17 Xinliang David Li <davidxl@google.com>
33200 * tree-pretty-print.c (dump_function_header): Print cgraph uid.
33201 * passes.c (pass_init_dump_file): Do not set initialize
33202 flag to false unconditionally.
33204 2014-06-17 Richard Biener <rguenther@suse.de>
33206 * genopinit.c (main): Use vec<>::qsort method.
33207 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
33209 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
33211 2014-06-17 Matthew Fortune <matthew.fortune@imgtec.com>
33213 * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
33214 * config/mips/mips.c (mips_expand_fcc_reload): Remove.
33215 (mips_move_to_gpr_cost): Remove ST_REGS case.
33216 (mips_move_from_gpr_cost): Likewise.
33217 (mips_register_move_cost): Likewise.
33218 (mips_secondary_reload_class): Likewise.
33220 2014-06-17 Richard Biener <rguenther@suse.de>
33222 * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
33223 (pass_all_optimizations): Move 3rd copy-prop pass from after
33224 fre to before ifcombine/phiopt.
33226 2014-06-17 Richard Biener <rguenther@suse.de>
33228 * tree-switch-conversion.c (collect_switch_conv_info): Simplify
33229 and allow all blocks to be forwarders.
33231 2014-06-17 Yufeng Zhang <yufeng.zhang@arm.com>
33234 * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
33235 variable 'size'; calculate 'size' right in the front; use
33236 'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
33237 pcum->aapcs_stack_words.
33239 2014-06-17 Nick Clifton <nickc@redhat.com>
33241 * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
33242 (umulhi3, mulsidi3, umulsidi3): Likewise.
33244 2014-06-17 Thomas Schwinge <thomas@codesourcery.com>
33246 PR middle-end/61508
33247 * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
33248 check for section name.
33250 2014-06-17 Richard Biener <rguenther@suse.de>
33252 * tree-ssa-propagate.c: Include domwalk.h.
33253 (substitute_and_fold): Outline main worker into a domwalker ...
33254 (substitute_and_fold_dom_walker::before_dom_children): ... here.
33255 Schedule stmts we can fully propagate for removal. Remove
33257 (substitute_and_fold): Apply a dominator walk to perform
33258 substitution. Process stmts scheduled for removal here.
33260 2014-06-17 Richard Biener <rguenther@suse.de>
33262 * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
33263 of PHI node moving.
33265 2014-06-17 Kugan Vivekanandarajah <kuganv@linaro.org>
33267 * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
33268 default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
33269 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
33270 __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
33271 * config/arm/vfp.md (set_fpscr): Make pattern conditional on
33273 (get_fpscr) : Likewise.
33275 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
33277 PR rtl-optimization/61325
33278 * lra-constraints.c (valid_address_p): Add forward declaration.
33279 (simplify_operand_subreg): Check address validity before and after
33280 alter_reg of memory subreg.
33282 2014-06-16 Uros Bizjak <ubizjak@gmail.com>
33284 * config/i386/i386.c (decide_alg): Correctly handle
33285 maximum size of stringop algorithm.
33287 2014-06-16 Yury Gribov <y.gribov@samsung.com>
33289 * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
33291 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
33293 PR rtl-optimization/61522
33294 * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
33296 2014-06-16 Jan Hubicka <hubicka@ucw.cz>
33299 * symtab.c (symtab_node::reset_section): New method.
33300 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
33302 * cgraph.h (reset_section): Declare.
33303 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
33304 do not consider comdat locals.
33305 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
33307 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
33308 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
33309 reset sections of symbols dragged out of the comdats.
33310 (function_and_variable_visibility): Reset sections of
33313 2014-06-16 Richard Biener <rguenther@suse.de>
33315 PR tree-optimization/61482
33316 * tree-vrp.c (adjust_range_with_scev): Avoid setting of
33317 [-INF(OVF), +INF(OVF)] range.
33319 2014-06-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
33321 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
33322 instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
33323 handling 32-bit multiplication.
33325 2014-06-16 Chung-Lin Tang <cltang@codesourcery.com>
33327 PR middle-end/61430
33328 * lra-lives.c (process_bb_lives): Skip creating copy during
33329 insn scan when src/dest has constrained to same regno.
33331 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
33333 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
33334 DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
33336 2014-06-16 Yury Gribov <y.gribov@samsung.com>
33338 * asan.c (check_func): New function.
33339 (maybe_create_ssa_name): Likewise.
33340 (build_check_stmt_with_calls): Likewise.
33341 (use_calls_p): Likewise.
33342 (report_error_func): Change interface.
33343 (build_check_stmt): Allow non-integer lengths; add support
33345 (asan_instrument): Likewise.
33346 (instrument_mem_region_access): Moved code to build_check_stmt.
33347 (instrument_derefs): Likewise.
33348 (instrument_strlen_call): Likewise.
33349 * cfgcleanup.c (old_insns_match_p): Add support for new functions.
33350 * doc/invoke.texi: Describe new parameter.
33351 * params.def: Define new parameter.
33352 * params.h: Likewise.
33353 * sanitizer.def: Describe new builtins.
33355 2014-06-16 Richard Biener <rguenther@suse.de>
33357 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
33358 Make all defs available at the end.
33359 (eliminate): If we remove a PHI node schedule cfg-cleanup.
33361 2014-06-18 Jakub Jelinek <jakub@redhat.com>
33364 * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
33366 2014-06-16 Richard Sandiford <rdsandiford@googlemail.com>
33369 * auto-inc-dec.c (merge_in_block): Fix location of insn_info
33370 initialization. Replace remaining use of uid.
33372 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
33374 * c-family/c-common.c (handle_tls_model_attribute): Use
33375 set_decl_tls_model.
33376 * c-family/c-common.c (handle_tls_model_attribute): Use
33377 set_decl_tls_model.
33378 * cgraph.h (struct varpool_node): Add tls_model.
33379 * tree.c (decl_tls_model, set_decl_tls_model): New functions.
33380 * tree.h (DECL_TLS_MODEL): Update.
33381 (DECL_THREAD_LOCAL_P): Check that variable is static.
33382 (decl_tls_model): Declare.
33383 (set_decl_tls_model): Declare.
33384 * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
33385 set symbol prorperties.
33386 (get_emutls_init_templ_addr): Cleanup.
33387 (new_emutls_decl): Update.
33388 * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
33389 (lto_input_varpool_node): Likewise.
33390 * lto-streamer-out.c (hash_tree): Likewise.
33391 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
33392 not stream DECL_TLS_MODEL.
33393 * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
33394 * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
33396 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
33398 * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
33400 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
33402 * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
33403 (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
33405 (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
33406 (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
33407 (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
33408 (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
33409 (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
33410 (df_get_artificial_defs, df_get_artificial_uses)
33411 (df_single_def, df_single_use): Update accordingly.
33412 (df_refs_chain_dump): Take the first element in a linked list as
33413 parameter, rather than a pointer to an array of pointers.
33414 * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
33415 * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
33416 (df_chain_create_bb_process_use): Likewise.
33417 (df_md_bb_local_compute_process_def): Likewise.
33418 * fwprop.c (process_defs, process_uses): Likewise.
33419 (register_active_defs, update_uses): Likewise.
33420 (forward_propagate_asm): Update for new df_ref linking.
33421 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
33422 (df_null_ref_rec, df_null_mw_rec): Likewise.
33423 (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
33425 (df_scan_free_bb_info): Remove check for null artificial_defs.
33426 (df_install_ref_incremental): Adjust for new df_ref linking.
33427 Use a single-element insertion rather than a full sort.
33428 (df_ref_chain_delete_du_chain): Take the first element
33429 in a linked list as parameter, rather than a pointer to an array of
33431 (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
33432 (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
33433 (df_insn_info_delete): Remove check for null defs and call to
33434 df_scan_free_mws_vec.
33435 (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
33436 null rather than df_null_*_rec.
33437 (df_insn_rescan_debug_internal): Likewise, and update null
33438 checks in the same way. Remove check for null defs.
33439 (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
33440 Move a single element rather doing a full sort.
33441 (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
33443 (df_notes_rescan): Likewise. Use a merge rather than a full sort.
33444 Initialize df_ref and df_mw_hardreg lists to null rather than
33446 (df_ref_compare): Take df_refs as parameter, transferring the
33447 old interface to...
33448 (df_ref_ptr_compare): ...this new function.
33449 (df_sort_and_compress_refs): Update accordingly.
33450 (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
33451 old interface to...
33452 (df_mw_ptr_compare): ...this new function.
33453 (df_sort_and_compress_mws): Update accordingly.
33454 (df_install_refs, df_install_mws): Return a linked list rather than
33455 an array of pointers.
33456 (df_refs_add_to_chains): Assert that old lists are empty rather
33458 (df_insn_refs_verify): Don't handle null defs speciailly.
33459 * web.c (union_match_dups): Update for new df_ref linking.
33461 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
33463 * df.h (df_ref_create, df_ref_remove): Delete.
33464 * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
33465 (df_ref_remove): Likewise.
33467 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
33469 * df.h (df_single_def, df_single_use): New functions.
33470 * ira.c (find_moveable_pseudos): Use them.
33472 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
33474 * df.h (FOR_EACH_INSN_INFO_MW): New macro.
33475 * df-problems.c (df_note_bb_compute): Use it.
33476 * regstat.c (regstat_bb_compute_ri): Likewise.
33478 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
33480 * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
33481 * cse.c (cse_extended_basic_block): Use them.
33482 * dce.c (mark_artificial_use): Likewise.
33483 * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
33484 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
33485 (df_chain_remove_problem, df_chain_bb_dump): Likewise.
33486 (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
33487 (df_simulate_initialize_backwards): Likewise.
33488 (df_simulate_finalize_backwards): Likewise.
33489 (df_simulate_initialize_forwards): Likewise.
33490 (df_md_simulate_artificial_defs_at_top): Likewise.
33491 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
33492 * regrename.c (init_rename_info): Likewise.
33493 * regstat.c (regstat_bb_compute_ri): Likewise.
33494 (regstat_bb_compute_calls_crossed): Likewise.
33496 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
33498 * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
33499 (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
33500 (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
33501 * auto-inc-dec.c (find_inc, merge_in_block): Use them.
33502 * combine.c (create_log_links): Likewise.
33503 * compare-elim.c (find_flags_uses_in_insn): Likewise.
33504 (try_eliminate_compare): Likewise.
33505 * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
33506 * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
33507 (remove_reg_equal_equiv_notes_for_defs): Likewise.
33508 (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
33509 (word_dce_process_block, dce_process_block): Likewise.
33510 * ddg.c (def_has_ccmode_p): Likewise.
33511 * df-core.c (df_bb_regno_first_def_find): Likewise.
33512 (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
33513 * df-problems.c (df_rd_simulate_one_insn): Likewise.
33514 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
33515 (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
33516 (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
33517 (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
33518 (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
33519 (df_simulate_find_defs, df_simulate_find_uses): Likewise.
33520 (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
33521 (df_simulate_uses, df_md_simulate_one_insn): Likewise.
33522 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
33523 * fwprop.c (local_ref_killed_between_p): Likewise.
33524 (all_uses_available_at, free_load_extend): Likewise.
33525 * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
33526 * hw-doloop.c (scan_loop): Likewise.
33527 * ifcvt.c (dead_or_predicable): Likewise.
33528 * init-regs.c (initialize_uninitialized_regs): Likewise.
33529 * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
33530 (process_bb_node_lives): Likewise.
33531 * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
33532 (find_moveable_pseudos): Likewise.
33533 * loop-invariant.c (check_dependencies, record_uses): Likewise.
33534 * recog.c (peep2_find_free_register): Likewise.
33535 * ree.c (get_defs): Likewise.
33536 * regstat.c (regstat_bb_compute_ri): Likewise.
33537 (regstat_bb_compute_calls_crossed): Likewise.
33538 * sched-deps.c (find_inc, find_mem): Likewise.
33539 * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
33540 (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
33541 * shrink-wrap.c (requires_stack_frame_p): Likewise.
33542 (prepare_shrink_wrap): Likewise.
33543 * store-motion.c (compute_store_table, build_store_vectors): Likewise.
33544 * web.c (union_defs, pass_web::execute): Likewise.
33545 * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
33546 (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
33548 2014-06-13 Vladimir Makarov <vmakarov@redhat.com>
33550 * lra-assign.c (assign_by_spills): Add code to assign vector regs
33551 to inheritance pseudos.
33552 * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
33554 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
33557 * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
33558 (BU_MISC_2): Rename to ...
33559 (BU_LDBL128_2): ... this.
33560 * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
33561 (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
33562 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
33563 RS6000_BTM_LDBL128.
33564 (rs6000_invalid_builtin): Add long double 128-bit builtin support.
33565 (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
33566 * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
33567 (unpacktf_1): Likewise.
33568 * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
33569 (__builtin_longdouble_dw1): Likewise.
33570 * doc/sourcebuild.texi (longdouble128): Document.
33572 2014-06-13 Jeff Law <law@redhat.com>
33574 PR rtl-optimization/61094
33575 PR rtl-optimization/61446
33576 * ree.c (combine_reaching_defs): Get the mode for the copy from
33577 the extension insn rather than the defining insn.
33579 2014-06-13 Dehao Chen <dehao@google.com>
33581 * dwarf2out.c (add_linkage_name): Emit more linkage name.
33583 2014-06-13 Thomas Schwinge <thomas@codesourcery.com>
33585 * doc/install.texi (--enable-linker-plugin-configure-flags)
33586 (--enable-linker-plugin-flags): Document new flags.
33588 2014-06-13 Martin Jambor <mjambor@suse.cz>
33591 * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
33592 cache_token if returning early.
33594 2014-06-13 Nick Clifton <nickc@redhat.com>
33596 * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
33597 requested alignment is active.
33598 (LABEL_ALIGN): Likewise.
33599 (LOOP_ALIGN): Likewise.
33601 2014-06-13 Richard Biener <rguenther@suse.de>
33603 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
33604 Rewrite to propagate the VN result into all uses where
33605 possible and to remove stmts becoming dead because of that.
33606 (eliminate): Generalize stmt removal handling, remove in
33607 reverse dominator order to support proper debug stmt
33608 generation. Update stmts before removing stmts.
33609 * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
33611 2014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
33613 PR tree-optimization/61375
33614 * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
33615 symbolic number cannot be represented in an uint64_t.
33616 (find_bswap_or_nop_1): Likewise.
33618 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
33620 * symtab.c (symtab_node::reset_section): New method.
33621 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
33623 * cgraph.h (reset_section): Declare.
33624 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
33625 do not consider comdat locals.
33626 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
33628 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
33629 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
33630 reset sections of symbols dragged out of the comdats.
33631 (function_and_variable_visibility): Reset sections of
33634 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
33636 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
33637 to use symtab and decl_binds_to_current_def_p
33638 * tree-vectorizer.c (increase_alignment): Increase alignment
33639 of alias target, too.
33641 2014-06-12 Jakub Jelinek <jakub@redhat.com>
33643 PR middle-end/61486
33644 * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
33645 (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
33646 if outer combined construct is distribute.
33647 (gimplify_omp_for): For OMP_DISTRIBUTE set
33648 gimplify_omp_ctxp->distribute.
33649 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
33650 GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
33651 mapping into decl map.
33653 2014-06-12 Jason Merrill <jason@redhat.com>
33655 * common.opt (fabi-version): Change default to 0.
33657 2014-06-12 Jason Merrill <jason@redhat.com>
33659 * toplev.c (process_options): Reject -fabi-version=1.
33661 2014-06-12 Jeff Law <law@redhat.com>
33663 PR tree-optimization/61009
33664 * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
33665 value when we stop processing a block due to problematic PHIs.
33667 2014-06-12 Alan Lawrence <alan.lawrence@arm.com>
33669 * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
33670 vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
33671 vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
33672 vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
33673 vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
33674 vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
33675 vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
33676 are not in the spec.
33678 2014-06-10 Alan Lawrence <alan.lawrence@arm.com>
33681 * config/aarch64/aarch64-modes.def: Add V1DFmode.
33682 * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
33685 2014-06-12 Eric Botcazou <ebotcazou@adacore.com>
33687 * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
33689 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
33692 * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
33693 loading from address spaces.
33695 2014-06-12 Martin Liska <mliska@suse.cz>
33698 * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
33699 statement is reachable.
33701 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
33703 * symtab.c (section_hash): New hash.
33704 (symtab_unregister_node): Clear section before freeing.
33705 (hash_section_hash_entry): New haser.
33706 (eq_sections): New function.
33707 (symtab_node::set_section_for_node): New method.
33708 (set_section_1): Update.
33709 (symtab_node::set_section): Take string instead of tree as parameter.
33710 (symtab_resolve_alias): Update.
33711 * cgraph.h (section_hash_entry_d): New structure.
33712 (section_hash_entry): New typedef.
33713 (cgraph_node): Change comdat_group_ to x_comdat_group,
33714 change section_ to x_section and turn into section_hash_entry;
33715 update accestors; put set_section_for_node offline.
33716 * tree.c (decl_section_name): Turn into string.
33717 (set_decl_section_name): Change parameter to be string.
33718 * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
33719 * sdbout.c (sdbout_one_type): Update.
33720 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
33721 * varasm.c (IN_NAMED_SECTION, get_named_section,
33722 resolve_unique_section, hot_function_section, get_named_text_section,
33723 USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
33724 make_decl_rtl, default_unique_section): Update.
33725 * config/c6x/c6x.c (c6x_in_small_data_p): Update.
33726 (c6x_elf_unique_section): Update.
33727 * config/nios2/nios2.c (nios2_in_small_data_p): Update.
33728 * config/pa/pa.c (pa_function_section): Update.
33729 * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
33730 * config/ia64/ia64.c (ia64_in_small_data_p): Update.
33731 * config/arc/arc.c (arc_in_small_data_p): Update.
33732 * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
33733 * config/mcore/mcore.c (mcore_unique_section): Update.
33734 * config/mips/mips.c (mips16_build_function_stub): Update.
33735 (mips16_build_call_stub): Update.
33736 (mips_function_rodata_section): Update.
33737 (mips_in_small_data_p): Update.
33738 * config/score/score.c (score_in_small_data_p): Update.
33739 * config/rx/rx.c (rx_in_small_data): Update.
33740 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
33741 (rs6000_xcoff_asm_named_section): Update.
33742 (rs6000_xcoff_unique_section): Update.
33743 * config/frv/frv.c (frv_string_begins_with): Update.
33744 (frv_in_small_data_p): Update.
33745 * config/v850/v850.c (v850_encode_data_area): Update.
33746 * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
33747 (bfin_handle_l1_data_attribute): Update.
33748 (bfin_handle_l2_attribute): Update.
33749 * config/mep/mep.c (mep_unique_section): Update.
33750 * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
33752 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
33753 (h8300_handle_tiny_data_attribute): Update.
33754 * config/m32r/m32r.c (m32r_in_small_data_p): Update.
33755 (m32r_in_small_data_p): Update.
33756 * config/alpha/alpha.c (alpha_in_small_data_p): Update.
33757 * config/i386/i386.c (ix86_in_large_data_p): Update.
33758 * config/i386/winnt.c (i386_pe_unique_section): Update.
33759 * config/darwin.c (darwin_function_section): Update.
33760 * config/lm32/lm32.c (lm32_in_small_data_p): Update.
33761 * tree-emutls.c (get_emutls_init_templ_addr): Update.
33762 (new_emutls_decl): Update.
33763 * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
33764 input_varpool_node): Update.
33765 (ead_string_cst): Turn to ...
33766 (read_string): ... this one.
33767 * dwarf2out.c (secname_for_decl): Update.
33768 * asan.c (asan_protect_global): Update.
33770 2014-06-11 DJ Delorie <dj@redhat.com>
33772 * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
33774 * config/rx/rx.c (rx_option_override): Likewise.
33775 (rx_align_for_label): Likewise.
33777 * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
33779 2014-06-11 Maciej W. Rozycki <macro@codesourcery.com>
33781 * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
33784 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
33786 * common.md: New file.
33787 * doc/md.texi: Update description of generic, machine-independent
33789 * config/s390/constraints.md (e): Delete.
33790 * Makefile.in (md_file): Include common.md.
33791 * config/m32c/t-m32c (md_file): Likewise.
33792 * genpreds.c (general_mem): New array.
33793 (generic_constraint_letters): Remove constraints now defined by
33795 (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
33796 Allow the first character to be '<' or '>' as well.
33797 * genoutput.c (general_mem): New array.
33798 (indep_constraints): Remove constraints now defined by common.md.
33799 (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
33800 Remove special handling of 'm'.
33801 * ira-costs.c (record_reg_classes): Remove special handling of
33802 constraints now defined by common.md.
33803 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
33804 * ira-lives.c (single_reg_class): Likewise.
33805 (ira_implicitly_set_insn_hard_regs): Likewise.
33806 * lra-constraints.c (reg_class_from_constraints): Likewise.
33807 (process_alt_operands, process_address, curr_insn_transform): Likewise.
33808 * postreload.c (reload_cse_simplify_operands): Likewise.
33809 * reload.c (push_secondary_reload, scratch_reload_class)
33810 (find_reloads, alternative_allows_const_pool_ref): Likewise.
33811 * reload1.c (maybe_fix_stack_asms): Likewise.
33812 * targhooks.c (default_secondary_reload): Likewise.
33813 * stmt.c (parse_output_constraint): Likewise.
33814 * recog.c (preprocess_constraints): Likewise.
33815 (constrain_operands, peep2_find_free_register): Likewise.
33816 (asm_operand_ok): Likewise, but add a comment saying why 'o'
33817 must be handled specially.
33819 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
33821 * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
33822 * genpreds.c (have_const_dbl_constraints): Delete.
33823 (add_constraint): Don't set it.
33824 (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
33825 * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
33826 constraints using the lookup_constraint logic.
33827 * ira-lives.c (single_reg_class): Likewise.
33828 * ira.c (ira_setup_alts): Likewise.
33829 * lra-constraints.c (process_alt_operands): Likewise.
33830 * recog.c (asm_operand_ok, constrain_operands): Likewise.
33831 * reload.c (find_reloads): Likewise.
33833 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
33835 * genpreds.c (const_int_start, const_int_end): New variables.
33836 (choose_enum_order): Output CONST_INT constraints before memory
33838 (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
33840 * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
33841 * ira.c (ira_setup_alts): Likewise.
33842 * lra-constraints.c (process_alt_operands): Likewise.
33843 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
33844 * reload.c (find_reloads): Likewise.
33846 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
33848 * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
33849 decmem_ok and incmem_ok. Reformat other bitfields for consistency.
33850 * recog.c (preprocess_constraints): Update accordingly.
33852 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
33854 * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
33855 (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
33856 (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
33857 * genpreds.c (print_type_tree): New function.
33858 (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
33859 REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
33860 EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
33861 Write out enum constraint_type and get_constraint_type.
33862 * lra-constraints.c (satisfies_memory_constraint_p): Take a
33863 constraint_num rather than a constraint string.
33864 (satisfies_address_constraint_p): Likewise.
33865 (reg_class_from_constraints): Avoid old constraint macros.
33866 (process_alt_operands, process_address_1): Likewise.
33867 (curr_insn_transform): Likewise.
33868 * ira-costs.c (record_reg_classes): Likewise.
33869 (record_operand_costs): Likewise.
33870 * ira-lives.c (single_reg_class): Likewise.
33871 (ira_implicitly_set_insn_hard_regs): Likewise.
33872 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
33873 * postreload.c (reload_cse_simplify_operands): Likewise.
33874 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
33875 (constrain_operands, peep2_find_free_register): Likewise.
33876 * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
33877 (find_reloads, alternative_allows_const_pool_ref): Likewise.
33878 * reload1.c (maybe_fix_stack_asms): Likewise.
33879 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
33880 * targhooks.c (default_secondary_reload): Likewise.
33881 * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
33882 to EXTRA_CONSTRAINT_STR.
33883 * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
33885 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
33887 * genpreds.c (write_constraint_satisfied_p_1): Replace with...
33888 (write_constraint_satisfied_p_array): ...this new function.
33889 (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
33891 (write_insn_preds_c): Update accordingly.
33893 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
33895 * genpreds.c (write_lookup_constraint): Rename to...
33896 (write_lookup_constraint_1): ...this.
33897 (write_lookup_constraint_array): New function.
33898 (write_tm_preds_h): Define lookup_constraint as an inline function
33899 that uses write_lookup_constraint_array where possible.
33900 (write_insn_preds_c): Update for the changes above.
33902 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
33904 * doc/md.texi (regclass_for_constraint): Rename to...
33905 (reg_class_for_constraint): ...this.
33906 * genpreds.c (num_constraints, enum_order, register_start)
33907 (register_end, satisfied_start, memory_start, memory_end)
33908 (address_start, address_end): New variables.
33909 (add_constraint): Count the number of constraints.
33910 (choose_enum_order): New function.
33911 (write_enum_constraint_num): Iterate over enum_order.
33912 (write_regclass_for_constraint): Rename to...
33913 (write_reg_class_for_constraint_1): ...this and update output
33915 (write_constraint_satisfied_p): Rename to...
33916 (write_constraint_satisfied_p_1): ...this and update output
33917 accordingly. Do nothing if all extra constraints are register
33919 (write_insn_extra_memory_constraint): Delete.
33920 (write_insn_extra_address_constraint): Delete.
33921 (write_range_function): New function.
33922 (write_tm_preds_h): Define constraint_satisfied_p and
33923 reg_class_for_constraint as inline functions that do a range check
33924 before calling the out-of-line function. Use write_range_function
33925 to implement insn_extra_{register,memory,address}_constraint,
33926 the first of which is new.
33927 (write_insn_preds_c): Update after above changes to write_* functions.
33928 (main): Call choose_enum_order.
33930 2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
33932 PR tree-optimization/61306
33933 * tree-ssa-math-opts.c (struct symbolic_number): Store type of
33934 expression instead of its size.
33935 (do_shift_rotate): Adapt to change in struct symbolic_number. Return
33936 false to prevent optimization when the result is unpredictable due to
33937 arithmetic right shift of signed type with highest byte is set.
33938 (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
33939 (init_symbolic_number): Likewise.
33940 (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
33941 when the result is unpredictable due to sign extension.
33943 2014-06-11 Terry Guo <terry.guo@arm.com>
33945 * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
33946 (*thumb1_addsi3): Ditto.
33947 (*thumb_subdi3): Ditto.
33948 (thumb1_subsi3_insn): Ditto.
33949 (*thumb_mulsi3): Ditto.
33950 (*thumb_mulsi3_v6): Ditto.
33951 (*thumb1_andsi3_insn): Ditto.
33952 (thumb1_bicsi3): Ditto.
33953 (*thumb1_iorsi3_insn): Ditto.
33954 (*thumb1_xorsi3_insn): Ditto.
33955 (*thumb1_ashlsi3): Ditto.
33956 (*thumb1_ashrsi3): Ditto.
33957 (*thumb1_lshrsi3): Ditto.
33958 (*thumb1_rotrsi3): Ditto.
33959 (*thumb1_negdi2): Ditto.
33960 (*thumb1_negsi2): Ditto.
33961 (*thumb1_abssi2): Ditto.
33962 (*thumb1_neg_abssi2): Ditto.
33963 (*thumb1_one_cmplsi2): Ditto.
33964 (*thumb1_zero_extendhisi2): Ditto.
33965 (*thumb1_zero_extendqisi2): Ditto.
33966 (*thumb1_zero_extendqisi2_v6): Ditto.
33967 (thumb1_extendhisi2): Ditto.
33968 (thumb1_extendqisi2): Ditto.
33969 (*thumb1_movdi_insn): Ditto.
33970 (*thumb1_movsi_insn): Ditto.
33971 (*thumb1_movhi_insn): Ditto.
33972 (thumb_movhi_clobber): Ditto.
33973 (*thumb1_movqi_insn): Ditto.
33974 (*thumb1_movhf): Ditto.
33975 (*thumb1_movsf_insn): Ditto.
33976 (*thumb_movdf_insn): Ditto.
33977 (movmem12b): Ditto.
33979 (cbranchqi4): Ditto.
33980 (cbranchsi4_insn): Ditto.
33981 (cbranchsi4_scratch): Ditto.
33982 (*negated_cbranchsi4): Ditto.
33983 (*tbit_cbranch): Ditto.
33984 (*tlobits_cbranch): Ditto.
33985 (*tstsi3_cbranch): Ditto.
33986 (*cbranchne_decr1): Ditto.
33987 (*addsi3_cbranch): Ditto.
33988 (*addsi3_cbranch_scratch): Ditto.
33989 (*thumb_cmpdi_zero): Ditto.
33990 (cstoresi_eq0_thumb1): Ditto.
33991 (cstoresi_ne0_thumb1): Ditto.
33992 (*cstoresi_eq0_thumb1_insn): Ditto.
33993 (*cstoresi_ne0_thumb1_insn): Ditto.
33994 (cstoresi_nltu_thumb1): Ditto.
33995 (cstoresi_ltu_thumb1): Ditto.
33996 (thumb1_addsi3_addgeu): Ditto.
33997 (*thumb_jump): Ditto.
33998 (*call_reg_thumb1_v5): Ditto.
33999 (*call_reg_thumb1): Ditto.
34000 (*call_value_reg_thumb1_v5): Ditto.
34001 (*call_value_reg_thumb1): Ditto.
34002 (*call_insn): Ditto.
34003 (*call_value_insn): Ditto.
34004 (thumb1_casesi_internal_pic): Ditto.
34005 (thumb1_casesi_dispatch): Ditto.
34006 (*thumb1_indirect_jump): Ditto.
34007 (prologue_thumb1_interwork): Ditto.
34008 (*epilogue_insns): Ditto.
34009 (consttable_1): Ditto.
34010 (consttable_2): Ditto.
34011 (tablejump): Ditto.
34012 (*thumb1_tablejump): Ditto.
34013 (thumb_eh_return): Ditto.
34014 (define_peephole2): Two of them are thumb1 only and got moved into
34015 new file thumb1.md.
34016 (define_split): Six of them are thumb1 only and got moved into new
34018 * config/arm/thumb1.md: New file comprised of above thumb1 only
34021 2014-06-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34023 * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
34024 * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
34026 * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
34027 (aarch64_crc_builtin_datum): New struct.
34028 (aarch64_crc_builtin_data): New.
34029 (aarch64_init_crc32_builtins): New function.
34030 (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
34031 (aarch64_crc32_expand_builtin): New.
34032 (aarch64_expand_builtin): Add CRC32 builtin expansion case.
34033 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
34034 __ARM_FEATURE_CRC32 when appropriate.
34035 (TARGET_CRC32): Define.
34036 * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
34037 UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
34038 UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
34039 (aarch64_<crc_variant>): New pattern.
34040 * config/aarch64/arm_acle.h: New file.
34041 * config/aarch64/iterators.md (CRC): New int iterator.
34042 (crc_variant, crc_mode): New int attributes.
34043 * doc/aarch64-acle-intrinsics.texi: New file.
34044 * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
34045 Include aarch64-acle-intrinsics.texi.
34047 2014-06-11 Evgeny Stupachenko <evstupac@gmail.com>
34049 * tree-vect-data-refs.c (vect_grouped_store_supported): New
34050 check for stores group of length 3.
34051 (vect_permute_store_chain): New permutations for stores group of
34053 * tree-vect-stmts.c (vect_model_store_cost): Change cost
34054 of vec_perm_shuffle for the new permutations.
34056 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
34058 * ipa-visibility.c (function_and_variable_visibility): Disable virtual
34059 table rewriting temporarily on targets not supporting ONE_ONLY.
34061 2014-06-11 Richard Biener <rguenther@suse.de>
34063 PR middle-end/61437
34065 2014-06-04 Richard Biener <rguenther@suse.de>
34067 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
34068 TREE_PUBLIC and DECL_EXTERNAL decls.
34070 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
34072 * varasm.c (set_implicit_section): New function.
34073 (resolve_unique_section): Use it to set implicit section
34075 (get_named_text_section): Use symtab_get_node (decl)->implicit_section
34076 (default_function_section): Likewise.
34077 (decl_binds_to_current_def_p): Constify argument.
34078 * varasm.h (decl_binds_to_current_def_p): Update prototype.
34079 * asan.c (asan_protect_global): Use
34080 symtab_get_node (decl)->implicit_section.
34081 * symtab.c (dump_symtab_base): Dump implicit sections.
34082 (verify_symtab_base): Verify sanity of sectoins and comdats.
34083 (symtab_resolve_alias): Alias share the section of its target.
34084 (set_section_1): New function.
34085 (symtab_node::set_section): Move here, recurse to aliases.
34086 (verify_symtab): Check for duplicated symtab lists.
34087 * tree-core.h (implicit_section_name_p): Remove.
34088 * tree-vect-data-refs.c: Include varasm.h.
34089 (vect_can_force_dr_alignment_p): Fix conditional on when
34090 decl bints to current definition; use
34091 symtab_get_node (decl)->implicit_section.
34092 * cgraph.c (cgraph_make_node_local_1): Fix section set.
34093 * cgraph.h (struct symtab_node): Add implicit_section.
34094 (set_section): Rename to ...
34095 (set_section_for_node): ... this one.
34096 (set_section): Declare.
34097 * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
34098 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
34099 input_overwrite_node, input_varpool_node): Stream implicit_section.
34100 * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
34101 removal; it will fail in LTO.
34103 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34105 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
34106 Change second alternative type to f_mcr.
34107 * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
34108 and 12th alternatives' types to f_mcr and f_mrc.
34109 (*movdi_aarch64): Same for 12th and 13th alternatives.
34110 (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
34111 (aarch64_movtilow_tilow): Change type to fmov.
34113 2014-06-10 Jiong Wang <jiong.wang@arm.com>
34115 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
34116 (aarch64_save_or_restore_callee_save_registers): Fix layout.
34118 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34120 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
34122 (aarch64_sqrdmulh_lane<mode>): Likewise.
34123 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
34124 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
34125 (aarch64_sqdmulh_laneq<mode>): New expander.
34126 (aarch64_sqrdmulh_laneq<mode>): Likewise.
34127 (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
34128 (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
34129 (aarch64_sqdmulh_lane<mode>): New expander.
34130 (aarch64_sqrdmulh_lane<mode>): Likewise.
34131 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
34132 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
34133 (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
34134 (aarch64_sqdmlal_laneq<mode>): Likewise.
34135 (aarch64_sqdmlsl_lane<mode>): Likewise.
34136 (aarch64_sqdmlsl_laneq<mode>): Likewise.
34137 (aarch64_sqdmlal2_lane<mode>): Likewise.
34138 (aarch64_sqdmlal2_laneq<mode>): Likewise.
34139 (aarch64_sqdmlsl2_lane<mode>): Likewise.
34140 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
34141 (aarch64_sqdmull_lane<mode>): Likewise.
34142 (aarch64_sqdmull_laneq<mode>): Likewise.
34143 (aarch64_sqdmull2_lane<mode>): Likewise.
34144 (aarch64_sqdmull2_laneq<mode>): Likewise.
34146 2014-06-10 Richard Biener <rguenther@suse.de>
34148 PR tree-optimization/61438
34149 * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
34150 (eliminate_dom_walker::before_dom_children): Only try to inhibit
34151 insertion of IVs if running PRE.
34152 (eliminate): Adjust.
34153 (pass_pre::execute): Likewise.
34154 (pass_fre::execute): Likewise.
34156 2014-06-10 Richard Biener <rguenther@suse.de>
34158 PR middle-end/61456
34159 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
34160 Do not use the main variant for the type comparison.
34161 (ncr_compar): Likewise.
34162 (nonoverlapping_component_refs_p): Likewise.
34164 2014-06-10 Marcus Shawcroft <marcus.shawcroft@arm.com>
34166 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
34167 REG_CFA_RESTORE mode.
34169 2014-06-10 Evgeny Stupachenko <evstupac@gmail.com>
34171 * config/i386/i386.c (expand_vec_perm_pblendv): New.
34172 * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
34173 expand_vec_perm_pblendv.
34175 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34177 * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
34179 Simplify description of __crc32d and __crc32cd intrinsics.
34180 * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
34183 2014-06-10 Thomas Schwinge <thomas@codesourcery.com>
34186 * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
34187 * config.in: Regenerate.
34188 * configure: Likewise.
34190 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
34192 * ipa-reference.c (is_proper_for_analysis): Exclude addressable
34194 (intersect_static_var_sets): Remove.
34195 (propagate): Do not prune local statics.
34197 2014-06-10 Jakub Jelinek <jakub@redhat.com>
34200 * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
34201 Set lastprivate_firstprivate even if omp_private_outer_ref
34202 langhook returns true.
34203 <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
34204 langhook, call unshare_expr on new_var and call
34205 build_outer_var_ref to get the last argument.
34207 2014-06-10 Marek Polacek <polacek@redhat.com>
34210 * doc/extend.texi: Add cindex for transparent_union.
34212 2014-06-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
34214 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
34215 init_symbolic_number ().
34217 2014-05-18 John David Anglin <danglin@gcc.gnu.org>
34219 PR middle-end/61141
34220 * emit-rtl.c (reset_all_used_flags): In a sequence, check that
34221 XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
34222 (verify_rtl_sharing): Likewise.
34224 2014-06-09 Marc Glisse <marc.glisse@inria.fr>
34227 * tree.c (build_qualified_type): Use a canonical type for
34230 2014-06-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
34232 * config/arm/arm-modes.def: Remove XFmode.
34234 2014-06-09 Alan Lawrence <alan.lawrence@arm.com>
34237 * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
34238 vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
34239 vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
34240 vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
34241 vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
34242 vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
34243 vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
34244 vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
34245 vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
34247 2014-06-09 Jan Hubicka <hubicka@ucw.cz>
34249 * tree-core.h (tree_decl_with_vis): Remove section_name.
34251 2014-06-09 Kito Cheng <kito@0xlab.org>
34253 * ira.c (ira): Don't call init_caller_save if LRA enabled
34254 since LRA use its own infrastructure to handle that.
34256 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
34258 * symtab.c (dump_symtab_base): Update dumping.
34259 (symtab_make_decl_local): Clear only DECL_COMDAT.
34260 * tree-vect-data-refs.c (Check that variable is static before
34261 tampering with sections.
34262 * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
34263 (cgraph_create_virtual_clone): Likewise.
34264 * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
34265 (decl_section_name, set_decl_section_name): New accessors.
34266 (find_decls_types_r): Do not walk section name
34267 * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
34268 (decl_comdat_group, decl_comdat_group_id): Constify.
34269 (decl_section_name, set_decl_section_name): Update.
34270 * varpool.c (varpool_finalize_named_section_flags): Use get_section.
34271 * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
34272 (cgraph_make_node_local_1): Clear section and comdat group.
34273 * cgraph.h (set_comdat_group): Sanity check.
34274 (get_section, set_section): New.
34275 * ipa-comdats.c (ipa_comdats): Use get_section.
34276 * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
34277 * lto-streamer-out.c: Do not follow section names.
34278 * c-family/c-common.c (handle_section_attribute): Update.
34279 * lto-cgraph.c (lto_output_node): Output section.
34280 (lto_output_varpool_node): Likewise.
34281 (read_comdat_group): Rename to ...
34282 (read_identifier): ... this one.
34283 (read_string_cst): New function.
34284 (input_node, input_varpool_node): Input section names.
34285 * tree-emutls.c (get_emutls_init_templ_addr): Update.
34286 (new_emutls_decl): Update.
34287 (secname_for_decl): Check section names only of static vars.
34288 * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
34289 * config/i386/winnt.c (i386_pe_unique_section): Likewise.
34290 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
34291 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
34292 * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
34293 * config/mcore/mcore.c (mcore_unique_section): Likewise.
34294 * config/mips/mips.c (mips16_build_function_stub): Likewise.
34295 * config/v850/v850.c (v850_insert_attributes): Likewise.
34296 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
34298 (h8300_handle_tiny_data_attribute): Likewise.
34299 * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
34300 (bfin_handle_l2_attribute): Likewise.
34302 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
34304 * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
34305 remove static initializer.
34307 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
34309 * varasm.c (use_blocks_for_decl_p): Check symbol table
34310 instead of alias attribute.
34311 (place_block_symbol): Recurse on aliases.
34313 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
34315 * ipa-visibility.c: Include varasm.h
34316 (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
34318 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
34320 * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
34321 outputting aliases.
34323 2014-06-07 Steven Bosscher <steven@gcc.gnu.org>
34325 * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
34326 from test_insn into GGC space escape via SET_SRC.
34328 2014-06-07 Eric Botcazou <ebotcazou@adacore.com>
34330 * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
34331 call statement, if any.
34332 (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
34333 statements, if any. Tidy up.
34335 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
34338 * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
34339 iterators, VSX_D that handles 64-bit types, and VSX_LE that
34340 handles swapping the two 64-bit double words on little endian
34341 systems. Include V1TImode and optionally TImode in VSX_LE so that
34342 these types are properly swapped. Change all of the insns and
34343 splits that do the 64-bit swaps to use VSX_LE.
34344 (vsx_le_perm_load_<mode>): Likewise.
34345 (vsx_le_perm_store_<mode>): Likewise.
34346 (splitters for little endian memory operations): Likewise.
34347 (vsx_xxpermdi2_le_<mode>): Likewise.
34348 (vsx_lxvd2x2_le_<mode>): Likewise.
34349 (vsx_stxvd2x2_le_<mode>): Likewise.
34351 2014-06-06 Uros Bizjak <ubizjak@gmail.com>
34354 * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
34355 define_insn_and_split pattern, merged from *floatunssi<mode>2_1
34356 and corresponding splitters. Zero extend general register
34357 or memory input operand to XMM temporary. Enable for
34358 TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
34359 (floatunssi<mode>2): Update expander predicate.
34361 2014-06-06 Vladimir Makarov <vmakarov@redhat.com>
34363 PR rtl-optimization/61325
34364 * lra-constraints.c (process_address_1): Check scale equal to one
34365 to prevent transformation: base + scale * index => base + new_reg.
34367 2014-06-06 Richard Biener <rguenther@suse.de>
34369 PR tree-optimization/59299
34370 * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
34372 (nearest_common_dominator_of_uses): Likewise.
34373 (statement_sink_location): Adjust. Support sinking loads.
34375 2014-06-06 Martin Jambor <mjambor@suse.cz>
34377 * ipa-prop.c (get_place_in_agg_contents_list): New function.
34378 (build_agg_jump_func_from_list): Likewise.
34379 (determine_known_aggregate_parts): Renamed to
34380 determine_locally_known_aggregate_parts. Moved some functionality
34381 to the two functions above, removed bound checks.
34383 2014-06-06 James Greenhalgh <james.greenhalgh@arm.com>
34385 * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
34386 * config/aarch64/aarch64.c (aarch64_move_pointer): New.
34387 (aarch64_progress_pointer): Likewise.
34388 (aarch64_copy_one_part_and_move_pointers): Likewise.
34389 (aarch64_expand_movmen): Likewise.
34390 * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
34391 * config/aarch64/aarch64.md (movmem<mode>): New.
34393 2014-06-06 Bingfeng Mei <bmei@broadcom.com>
34395 * targhooks.c (default_add_stmt_cost): Call target specific
34396 hook instead of default one.
34398 2014-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
34400 * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
34401 endianness instead of host endianness.
34402 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
34405 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
34408 * function.c (instantiate_decls): Process the saved static chain.
34409 (expand_function_start): If not optimizing, save the static chain
34411 * tree-nested.c (convert_all_function_calls): Always create the static
34412 chain for nested functions if not optimizing.
34414 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
34416 * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
34418 2014-06-06 Richard Biener <rguenther@suse.de>
34420 * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
34421 (construct_init_block): Likewise.
34422 (construct_exit_block): Likewise.
34423 (pass_expand::execute): Likewise.
34424 * graphite.c (graphite_transforms): Replace check for current_loops
34425 with a check for > 1 loops.
34426 (pass_graphite_transforms::execute): Adjust.
34427 * ipa-split.c (split_function): Remove check for current_loops.
34428 * omp-low.c (expand_parallel_call): Likewise.
34429 (expand_omp_for_init_counts): Likewise.
34430 (extract_omp_for_update_vars): Likewise.
34431 (expand_omp_for_generic): Likewise.
34432 (expand_omp_sections): Likewise.
34433 (expand_omp_target): Likewise.
34434 * tracer.c (tail_duplicate): Likewise.
34435 (pass_tracer::execute): Likewise.
34436 * trans-mem.c (expand_transaction): Likewise.
34437 * tree-complex.c (expand_complex_div_wide): Likewise.
34438 * tree-eh.c (lower_resx): Likewise.
34439 (cleanup_empty_eh_merge_phis): Likewise.
34440 * tree-predcom.c (run_tree_predictive_commoning): Replace check for
34441 current_loops with a check for > 1 loops.
34442 (pass_predcom::execute): Adjust.
34443 * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
34444 * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
34445 * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
34446 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
34447 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
34448 * tree-switch-conversion.c (process_switch): Likewise.
34449 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
34450 * tree-vrp.c (vrp_visit_phi_node): Likewise.
34451 (execute_vrp): Likewise.
34452 * ubsan.c (ubsan_expand_null_ifn): Likewise.
34454 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
34456 * rtl.h (insn_location): Declare.
34457 * cfgcleanup.c (try_forward_edges): Compare the locus of locations
34458 with UNKNOWN_LOCATION.
34459 * emit-rtl.c (insn_location): New function.
34460 * final.c (notice_source_line): Check that the instruction has a
34461 location before retrieving it and use insn_location.
34462 * modulo-sched.c (loop_single_full_bb_p): Likewise.
34463 * print-rtl.c (print_rtx): Likewise.
34465 2014-06-06 Richard Biener <rguenther@suse.de>
34467 * passes.def: Move 2nd VRP pass before phi-only-cprop.
34469 2014-06-06 Christian Bruel <christian.bruel@st.com>
34471 PR tree-optimization/43934
34472 * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
34475 2014-06-06 Richard Sandiford <rdsandiford@googlemail.com>
34477 * ira-lives.c (single_reg_class): Add missing break. Explicitly
34478 return NO_REGS for extra address and memory constraints. Handle
34479 operands that match (or are equivalent to something that matches)
34480 extra constant constraints. Ignore other non-register operands.
34482 2014-06-06 Alan Modra <amodra@gmail.com>
34485 * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
34486 * doc/tm.texi: Regenerate.
34487 * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
34488 Use throughout in place of REG_PARM_STACK_SPACE.
34489 * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
34490 "incoming" param. Pass to rs6000_function_parms_need_stack.
34491 (rs6000_function_parms_need_stack): Add "incoming" param, ignore
34492 prototype_p when incoming. Use function decl when incoming
34493 to handle K&R style functions.
34494 * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
34495 (INCOMING_REG_PARM_STACK_SPACE): Define.
34497 2014-06-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
34500 * cfgexpand.c (expand_debug_expr): Use address space of nested
34501 TREE_TYPE for ADDR_EXPR and MEM_REF.
34503 2014-06-05 Jeff Law <law@redhat.com>
34505 PR tree-optimization/61289
34506 * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
34507 DST_MAP parameters. Invalidate by walking all the SSA_NAME_VALUES
34508 looking for those which match LHS. All callers changed.
34509 (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
34510 parameters and code which manipulated them. All callers changed.
34511 (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
34512 and DST_MAP parameters. Simplify invalidation code by just calling
34513 invalidate_equivalences. All callers changed.
34514 (thread_across_edge): Simplify now that we don't need to maintain
34515 the map of equivalences to invalidate.
34517 2014-06-05 Kai Tietz <ktietz@redhat.com>
34518 Richard Henderson <rth@redhat.com>
34521 * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
34522 checking for !TARGET_X32.
34523 * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
34524 (sibcall_intern): New define_insn, plus required peepholes.
34525 (sibcall_pop_intern): Likewise.
34526 (sibcall_value_intern): Likewise.
34527 (sibcall_value_pop_intern): Likewise.
34529 2014-06-05 Ilya Enkovich <ilya.enkovich@intel.com>
34531 * tree-inline.c (tree_function_versioning): Check DF info existence
34532 before accessing it.
34534 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
34536 * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
34538 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
34539 aarch64_frame hard_fp_offset and frame_size.
34540 (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
34541 frame_size; remove original_frame_size.
34542 (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
34543 (aarch64_initial_elimination_offset): Remove frame_size and
34544 offset. Use aarch64_frame frame_size.
34546 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
34547 Jiong Wang <jiong.wang@arm.com>
34548 Renlin <renlin.li@arm.com>
34550 * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
34551 initialization of R30 offset. Update offset. Iterate core
34552 regisers upto X30. Remove X29, X30 specific code.
34554 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
34555 Jiong Wang <jiong.wang@arm.com>
34557 * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
34558 (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
34559 (aarch64_register_saved_on_entry): Adjust test.
34561 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
34563 * config/aarch64/aarch64.h (machine_function): Move
34564 saved_varargs_size from here...
34565 (aarch64_frame): ... to here.
34567 * config/aarch64/aarch64.c (aarch64_expand_prologue)
34568 (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
34569 (aarch64_initial_elimination_offset)
34570 (aarch64_setup_incoming_varargs): Adjust location of
34571 saved_varargs_size.
34573 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
34575 * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
34578 2014-06-05 Jaydeep Patil <Jaydeep.Patil@imgtec.com>
34579 Prachi Godbole <Prachi.Godbole@imgtec.com>
34581 * config/mips/mips-cpus.def: Add definition for p5600. Updated
34582 mips32r5 entry to use PROCESSOR_P5600.
34583 * config/mips/mips-tables.opt: Regenerate.
34584 * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
34585 * config/mips/mips.c (mips_fmadd_bypass): New function.
34586 (mips_rtx_cost_data): Add costs for p5600.
34587 (mips_issue_rate): Add support for p5600.
34588 (mips_multipass_dfa_lookahead): Likewise.
34589 * config/mips/mips.h (TUNE_P5600): New define.
34590 (TUNE_MACC_CHAINS): Add TUNE_P5600.
34591 (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
34592 * config/mips/mips.md: Include p5600.md.
34593 (processor): Add p5600.
34594 * config/mips/p5600.md: New file.
34596 2014-06-05 Evgeny Stupachenko <evstupac@gmail.com>
34598 * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
34599 * config/i386/predicates.md (palignr_operand): New.
34600 Indicates if permutation is suitable for palignr instruction.
34602 2014-06-05 Yuri Rumyantsev <ysrumyan@gmail.com>
34604 PR tree-optimization/61319
34605 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
34606 stmt belongs to loop.
34608 2014-06-05 Richard Biener <rguenther@suse.de>
34610 * gimplify.c (create_tmp_from_val): Remove is_formal parameter
34611 and set DECL_GIMPLE_REG_P unconditionally if appropriate.
34612 (lookup_tmp_var): Adjust.
34613 (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
34615 2014-06-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
34617 * config/arm/arm.md (enabled): Disable opt_enabled attribute.
34619 2014-06-05 Marek Polacek <polacek@redhat.com>
34622 * doc/invoke.texi: Document -Wlogical-not-parentheses.
34624 2014-06-04 Tom de Vries <tom@codesourcery.com>
34626 * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
34629 2014-06-04 Marc Glisse <marc.glisse@inria.fr>
34631 PR tree-optimization/61385
34632 * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
34634 2014-06-04 Bernd Schmidt <bernds@codesourcery.com>
34636 * lto-wrapper.c (fatal, fatal_perror): Remove functions. All callers
34637 changed to use fatal_error.
34638 (main): Ensure lto_wrapper_cleanup is run atexit.
34640 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
34642 * lra-constraints.c (valid_address_p): Move earlier in file.
34643 (address_eliminator): New structure.
34644 (satisfies_memory_constraint_p): New function.
34645 (satisfies_address_constraint_p): Likewise.
34646 (process_alt_operands, process_address, curr_insn_transform): Use them.
34648 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
34650 * lra-int.h (lra_static_insn_data): Make operand_alternative a
34652 (target_lra_int, default_target_lra_int, this_target_lra_int)
34653 (op_alt_data): Delete.
34654 * lra.h (lra_init): Delete.
34655 * lra.c (default_target_lra_int, this_target_lra_int): Delete.
34656 (init_insn_code_data_once): Remove op_alt_data handling.
34657 (finish_insn_code_data_once): Likewise.
34658 (init_op_alt_data): Delete.
34659 (get_static_insn_data): Initialize operand_alternative to null.
34660 (free_insn_recog_data): Cast operand_alternative before freeing it.
34661 (setup_operand_alternative): Take the operand_alternative as
34662 parameter and assume it isn't already cached in the static
34664 (lra_set_insn_recog_data): Update accordingly.
34665 (lra_init): Delete.
34666 * ira.c (ira_init): Don't call lra_init.
34667 * target-globals.h (this_target_lra_int): Declare.
34668 (target_globals): Remove lra_int.
34669 (restore_target_globals): Update accordingly.
34670 * target-globals.c: Don't include lra-int.h.
34671 (default_target_globals, save_target_globals): Remove lra_int.
34673 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
34675 * recog.h (operand_alternative): Convert reg_class, reject,
34676 matched and matches into bitfields.
34677 (preprocess_constraints): New overload.
34678 (preprocess_insn_constraints): New function.
34679 (preprocess_constraints): Take the insn as parameter.
34680 (recog_op_alt): Change into a pointer.
34681 (target_recog): Add x_op_alt.
34682 * recog.c (asm_op_alt): New variable.
34683 (recog_op_alt): Change into a pointer.
34684 (preprocess_constraints): New overload, replacing the old function
34685 definition with one that doesn't use global state.
34686 (preprocess_insn_constraints): New function.
34687 (preprocess_constraints): Use them. Take the insn as parameter.
34688 Use asm_op_alt for asms.
34689 (recog_init): Free existing x_op_alt entries.
34690 * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
34692 (make_early_clobber_and_input_conflicts): Likewise.
34693 (process_bb_node_lives): Pass the insn to process_constraints.
34694 * reg-stack.c (check_asm_stack_operands): Likewise.
34695 (subst_asm_stack_regs): Likewise.
34696 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
34697 * regrename.c (build_def_use): Likewise.
34698 * sched-deps.c (sched_analyze_insn): Likewise.
34699 * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
34700 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
34701 (note_invalid_constants): Likewise.
34702 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
34703 (ix86_legitimate_combined_insn): Make operand_alternative pointer
34706 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
34708 * recog.c (preprocess_constraints): Don't skip disabled alternatives.
34709 * ira-lives.c (check_and_make_def_conflict): Check for disabled
34711 (make_early_clobber_and_input_conflicts): Likewise.
34712 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
34714 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
34716 * recog.h (alternative_class): New function.
34717 (which_op_alt): Return a const recog_op_alt.
34718 * reg-stack.c (check_asm_stack_operands): Update type accordingly.
34719 (subst_asm_stack_regs): Likewise.
34720 * config/arm/arm.c (note_invalid_constants): Likewise.
34721 * regcprop.c (copyprop_hardreg_forward_1): Likewise. Don't modify
34722 the operand_alternative; use alternative class instead.
34723 * sel-sched.c (get_reg_class): Likewise.
34724 * regrename.c (build_def_use): Likewise.
34725 (hide_operands, restore_operands, record_out_operands): Update type
34728 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
34730 * recog.h (recog_op_alt): Convert to a flat array.
34731 (which_op_alt): New function.
34732 * recog.c (recog_op_alt): Convert to a flat array.
34733 (preprocess_constraints): Update accordingly, grouping all
34734 operands of the same alternative together, rather than the
34736 * ira-lives.c (check_and_make_def_conflict): Likewise.
34737 (make_early_clobber_and_input_conflicts): Likewise.
34738 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
34739 * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
34740 (subst_asm_stack_regs): Likewise.
34741 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
34742 * regrename.c (hide_operands, record_out_operands): Likewise.
34743 (build_def_use): Likewise.
34744 * sel-sched.c (get_reg_class): Likewise.
34745 * config/arm/arm.c (note_invalid_constants): Likewise.
34747 2014-06-04 Jason Merrill <jason@redhat.com>
34751 * gimplify.c (gimplify_arg): Non-static.
34752 * gimplify.h: Declare it.
34754 2014-06-04 Richard Biener <rguenther@suse.de>
34756 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
34757 TREE_PUBLIC and DECL_EXTERNAL decls.
34759 2014-06-04 Matthew Fortune <matthew.fortune@imgtec.com>
34761 * regcprop.c (copyprop_hardreg_forward_1): Account for
34762 HARD_REGNO_CALL_PART_CLOBBERED.
34764 2014-06-04 Richard Biener <rguenther@suse.de>
34766 * configure.ac: Check whether the underlying type of int64_t
34767 is long or long long.
34768 * configure: Regenerate.
34769 * config.in: Likewise.
34770 * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
34771 (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
34773 2014-06-04 Richard Biener <rguenther@suse.de>
34775 PR tree-optimization/60098
34776 * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
34778 (dse_optimize_stmt): Simplify, now that we found a kill
34781 2014-06-04 Richard Biener <rguenther@suse.de>
34783 * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
34784 of accesses with non-invariant address.
34786 2014-06-04 Martin Liska <mliska@suse.cz>
34788 * cgraph.h (cgraph_make_wrapper): New function introduced.
34789 * cgraphunit.c (cgraph_make_wrapper): The function implementation.
34790 * ipa-inline.h (inline_analyze_function): The function is global.
34791 * ipa-inline-analysis.c (inline_analyze_function): Likewise.
34793 2014-06-04 Martin Liska <mliska@suse.cz>
34795 * tree.h (private_lookup_attribute_starting): New function.
34796 (lookup_attribute_starting): Likewise.
34797 * tree.c (private_lookup_attribute_starting): Likewise.
34799 2014-06-04 Martin Liska <mliska@suse.cz>
34801 * cgraph.h (expand_thunk): New argument added.
34802 (address_taken_from_non_vtable_p): New global function.
34803 * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
34804 * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
34805 * cgraphunit.c (analyze_function): Likewise.
34806 (assemble_thunks_and_aliases): Argument added to call.
34807 (expand_thunk): New argument forces to produce GIMPLE thunk.
34809 2014-06-04 Martin Liska <mliska@suse.cz>
34811 * coverage.h (coverage_compute_cfg_checksum): Argument added.
34812 * coverage.c (coverage_compute_cfg_checksum): Likewise.
34813 * profile.c (branch_prob): Likewise.
34815 2014-06-04 Martin Jambor <mjambor@suse.cz>
34818 * ipa-pure-const.c (propagate_pure_const): Add unreachable default
34819 handler for switch on an ipa_ref_use enum.
34820 * ipa-reference.c (analyze_function): Likewise.
34822 2014-06-04 Kai Tietz <ktietz@redhat.com>
34824 * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
34825 from old call-instruction.
34827 2014-06-04 Bin Cheng <bin.cheng@arm.com>
34829 * config/aarch64/aarch64.c (aarch64_classify_address)
34830 (aarch64_legitimize_reload_address): Support full addressing modes
34832 * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
34833 (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
34835 2014-06-03 Andrew Pinski <apinski@cavium.com>
34837 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
34840 2014-06-03 Andrew Pinski <apinski@cavium.com>
34842 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
34843 (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
34845 2014-06-03 Kai Tietz <ktietz@redhat.com>
34847 * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
34850 2014-06-03 Dehao Chen <dehao@google.com>
34852 * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
34855 2014-06-03 Marek Polacek <polacek@redhat.com>
34858 * doc/invoke.texi: Document -Wswitch-bool.
34859 * function.c (stack_protect_epilogue): Cast controlling expression of
34861 * gengtype.c (walk_type): Generate switch expression with its
34862 controlling expression cast to int.
34864 2014-06-03 Vishnu K S <Vishnu.k_s@atmel.com>
34866 * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
34868 * config/avr/avr-tables.opt: Regenerate.
34869 * config/avr/t-multilib: Regenerate.
34870 * doc/avr-mmcu.texi: Regenerate.
34872 2014-06-03 Vishnu K S <vishnu.k_s@atmel.com>
34873 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
34875 * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
34876 (ata6617c, ata664251): Add new avr35 devices.
34877 (ata6612c): Add new avr4 device.
34878 (ata6613c, ata6614q): Add new avr5 devices.
34879 * config/avr/avr-tables.opt: Regenerate.
34880 * config/avr/t-multilib: Regenerate.
34881 * doc/avr-mmcu.texi: Regenerate.
34883 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
34885 * gcc/config/aarch64/aarch64-builtins.c
34886 (aarch64_types_binop_ssu_qualifiers): New static data.
34887 (TYPES_BINOP_SSU): Define.
34888 * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
34889 urshr_n, ushll_n): Use appropriate unsigned qualifiers.
34890 * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
34891 vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
34892 vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
34893 vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
34894 vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
34895 vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
34896 vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
34897 suffix to builtin function name, remove cast.
34898 (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
34899 vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
34900 vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
34902 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
34904 * gcc/config/aarch64/aarch64-builtins.c
34905 (aarch64_types_binop_uus_qualifiers,
34906 aarch64_types_shift_to_unsigned_qualifiers,
34907 aarch64_types_unsigned_shiftacc_qualifiers): Define.
34908 * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
34909 uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
34910 sqshlu_n, uqshl_n): Update qualifiers.
34911 * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
34912 vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
34913 vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
34914 vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
34915 vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
34916 vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
34917 vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
34918 vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
34919 vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
34920 vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
34921 vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
34922 vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
34923 vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
34924 vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
34925 vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
34926 vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
34927 vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
34928 vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
34929 vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
34930 vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
34931 vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
34932 vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
34933 vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
34934 vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
34935 vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
34936 vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
34937 vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
34939 2014-06-03 Teresa Johnson <tejohnson@google.com>
34941 * tree-sra.c (modify_function): Record caller nodes after rebuild.
34943 2014-06-02 Jason Merrill <jason@redhat.com>
34946 * varpool.c (ctor_for_folding): Handle uninitialized vtables.
34948 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
34950 * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
34953 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
34955 * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
34957 * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
34958 (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
34959 * config/aarch64/iterators.md (REVERSE): New iterator.
34960 (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
34961 (rev_op): New int_attribute.
34962 * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
34963 vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
34964 vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
34965 vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
34966 vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
34967 vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
34968 vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
34969 Replace temporary __asm__ with __builtin_shuffle.
34971 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
34973 * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
34975 * config/mips/mips-tables.opt: Regenerate.
34976 * config/mips/mips.c (mips_compute_frame_info): Changed if statement
34977 to use mips_isa_rev rather than ISA_MIPS32R2.
34978 * config/mips/mips.h (ISA_MIPS32R3): New define.
34979 (ISA_MIPS32R5): New define.
34980 (ISA_MIPS64R3): New define.
34981 (ISA_MIPS64R5): New define.
34982 (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
34983 ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
34984 (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
34986 (MIPS_ISA_SYNCI_SPEC): Likewise.
34987 (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
34988 (LINK_SPEC): Added mips32r3 and mips32r5.
34989 * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
34990 to mips32r2; and mips64r3 and mips64r5 to mips64r2.
34991 * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
34992 * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
34993 * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
34994 * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
34995 * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
34997 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
34999 * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
35001 * config/mips/mips.opt (mxpa): New option.
35002 * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
35005 2014-06-03 Martin Jambor <mjambor@suse.cz>
35008 * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
35011 2014-06-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
35013 PR tree-optimization/61328
35014 * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
35015 initialization from find_bswap_or_nop_1.
35016 (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
35017 in source_expr2 before using the size value the function sets. Also
35018 make use of init_symbolic_number () in both the old place and
35019 find_bswap_or_nop_load () to avoid reading uninitialized memory when
35020 doing recursion in the GIMPLE_BINARY_RHS case.
35022 2014-06-03 Richard Biener <rguenther@suse.de>
35024 PR tree-optimization/61383
35025 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
35028 2014-06-03 Richard Sandiford <rdsandiford@googlemail.com>
35030 * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
35031 (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
35032 (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
35033 (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
35035 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
35036 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
35037 * system.h: ...here and make it unconditional.
35038 * target.def (conditional_register_usage): Mention
35039 define_register_constraint instead of old-style constraint macros.
35040 * doc/tm.texi.in: Remove documentation for old-style constraint macros.
35041 * doc/tm.texi: Regenerate.
35042 * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
35043 protected by !USE_MD_CONSTRAINTS.
35044 * config/frv/frv.md: Remove quote from old version of documentation.
35045 * config/frv/frv.c (frv_conditional_register_usage): Likewise.
35046 * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
35047 CONST_DOUBLE_OK_FOR_LETTER.
35048 * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
35050 2014-06-02 Andrew Pinski <apinski@cavium.com>
35052 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
35053 /lib/ld-linux32-aarch64.so.1 is used for ILP32.
35054 (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
35055 file whose name depends on -mabi= and -mbig-endian.
35056 * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
35057 Handle LP64 better and handle ilp32 too.
35058 (MULTILIB_OPTIONS): Delete.
35059 (MULTILIB_DIRNAMES): Delete.
35061 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
35063 * expr.h: Remove prototypes of functions defined in builtins.c.
35064 * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
35065 Remove prototypes of functions defined in builtins.c.
35066 * builtins.h: Update prototype list to include all exported functions.
35067 * builtins.c: (default_libc_has_function, gnu_libc_has_function,
35068 no_c99_libc_has_function): Move to targhooks.c
35069 (build_string_literal, build_call_expr_loc_array,
35070 build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
35072 (expand_builtin_object_size, fold_builtin_object_size): Make static.
35073 * targhooks.c (default_libc_has_function, gnu_libc_has_function,
35074 no_c99_libc_has_function): Relocate from builtins.c.
35075 * tree.c: Include builtins.h.
35076 (build_call_expr_loc_array, build_call_expr_loc_vec,
35077 build_call_expr_loc, build_call_expr, build_string_literal): Relocate
35079 * fold-const.h (fold_fma): Move prototype to builtins.h.
35080 * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
35081 * asan.c: Include builtins.h.
35082 * cfgexpand.c: Likewise.
35083 * convert.c: Likewise.
35084 * emit-rtl.c: Likewise.
35085 * except.c: Likewise.
35086 * expr.c: Likewise.
35087 * fold-const.c: Likewise.
35088 * gimple-fold.c: Likewise.
35089 * gimple-ssa-strength-reduction.c: Likewise.
35090 * gimplify.c: Likewise.
35091 * ipa-inline.c: Likewise.
35092 * ipa-prop.c: Likewise.
35093 * lto-streamer-out.c: Likewise.
35094 * stmt.c: Likewise.
35095 * tree-inline.c: Likewise.
35096 * tree-object-size.c: Likewise.
35097 * tree-sra.c: Likewise.
35098 * tree-ssa-ccp.c: Likewise.
35099 * tree-ssa-forwprop.c: Likewise.
35100 * tree-ssa-loop-ivcanon.c: Likewise.
35101 * tree-ssa-loop-ivopts.c: Likewise.
35102 * tree-ssa-math-opts.c: Likewise.
35103 * tree-ssa-reassoc.c: Likewise.
35104 * tree-ssa-threadedge.c: Likewise.
35105 * tree-streamer-in.c: Likewise.
35106 * tree-vect-data-refs.c: Likewise.
35107 * tree-vect-patterns.c: Likewise.
35108 * tree-vect-stmts.c: Likewise.
35109 * config/aarch64/aarch64.c: Likewise.
35110 * config/alpha/alpha.c: Likewise.
35111 * config/arc/arc.c: Likewise.
35112 * config/arm/arm.c: Likewise.
35113 * config/avr/avr.c: Likewise.
35114 * config/bfin/bfin.c: Likewise.
35115 * config/c6x/c6x.c: Likewise.
35116 * config/cr16/cr16.c: Likewise.
35117 * config/cris/cris.c: Likewise.
35118 * config/epiphany/epiphany.c: Likewise.
35119 * config/fr30/fr30.c: Likewise.
35120 * config/frv/frv.c: Likewise.
35121 * config/h8300/h8300.c: Likewise.
35122 * config/i386/i386.c: Likewise.
35123 * config/i386/winnt.c: Likewise.
35124 * config/ia64/ia64.c: Likewise.
35125 * config/iq2000/iq2000.c: Likewise.
35126 * config/lm32/lm32.c: Likewise.
35127 * config/m32c/m32c.c: Likewise.
35128 * config/m32r/m32r.c: Likewise.
35129 * config/m68k/m68k.c: Likewise.
35130 * config/mcore/mcore.c: Likewise.
35131 * config/mep/mep.c: Likewise.
35132 * config/microblaze/microblaze.c: Likewise.
35133 * config/mips/mips.c: Likewise.
35134 * config/mmix/mmix.c: Likewise.
35135 * config/mn10300/mn10300.c: Likewise.
35136 * config/moxie/moxie.c: Likewise.
35137 * config/msp430/msp430.c: Likewise.
35138 * config/nds32/nds32.c: Likewise.
35139 * config/pa/pa.c: Likewise.
35140 * config/pdp11/pdp11.c: Likewise.
35141 * config/picochip/picochip.c: Likewise.
35142 * config/rl78/rl78.c: Likewise.
35143 * config/rs6000/rs6000.c: Likewise.
35144 * config/rx/rx.c: Likewise.
35145 * config/s390/s390.c: Likewise.
35146 * config/score/score.c: Likewise.
35147 * config/sh/sh.c: Likewise.
35148 * config/sparc/sparc.c: Likewise.
35149 * config/spu/spu.c: Likewise.
35150 * config/stormy16/stormy16.c: Likewise.
35151 * config/tilegx/tilegx.c: Likewise.
35152 * config/tilepro/tilepro.c: Likewise.
35153 * config/v850/v850.c: Likewise.
35154 * config/vax/vax.c: Likewise.
35155 * config/xtensa/xtensa.c: Likewise.
35157 2014-06-02 Jeff Law <law@redhat.com>
35159 PR rtl-optimization/61094
35160 * ree.c (combine_reaching_defs): Do not reextend an insn if it
35161 was marked as do_no_reextend. If a copy is needed to eliminate
35162 an extension, then mark it as do_not_reextend.
35164 2014-06-02 Marcus Shawcroft <marcus.shawcroft@arm.com>
35166 * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
35168 2014-06-02 Richard Henderson <rth@redhat.com>
35171 * config/alpha/alpha.c (print_operand_address): Allow symbolic
35172 addresses inside asms. Use output_operand_lossage instead of
35175 2014-06-02 Uros Bizjak <ubizjak@gmail.com>
35178 * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
35179 GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
35181 2014-06-02 Tom de Vries <tom@codesourcery.com>
35183 * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
35184 case that x has VOIDmode.
35186 2014-06-02 Bernd Schmidt <bernds@codesourcery.com>
35188 * varasm.c (copy_constant): Delete function.
35189 (build_constant_desc): Don't call it.
35191 2014-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
35194 * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
35195 * config/arm/arm.md (mov64 splitter): Replace const_double_operand
35196 with immediate_operand.
35198 2014-06-02 Andreas Schwab <schwab@suse.de>
35200 * config/ia64/ia64.c
35201 (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
35202 pending_data_specs first.
35204 2014-06-02 Richard Biener <rguenther@suse.de>
35206 PR tree-optimization/61378
35207 * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
35208 valueized_anything.
35210 2014-06-01 Uros Bizjak <ubizjak@gmail.com>
35212 * config/i386/constraints.md (Bw): Rename from 'w'.
35213 (Bz): Rename from 'z'.
35214 * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
35216 2014-06-01 Kai Tietz <ktietz@redhat.com>
35219 * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
35220 * config/i386/i386.md (sibcall_insn_operand): Use Bs
35221 instead of m constraint.
35223 2014-05-31 Andreas Schwab <schwab@linux-m68k.org>
35225 * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
35226 a separate alternative where the scratch operand 2 is marked as
35229 2014-05-31 Kugan Vivekanandarajah <kuganv@linaro.org>
35231 * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
35232 (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
35233 (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
35234 and __builtins_arm_get_fpscr.
35235 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
35236 __builtins_arm_get_fpscr.
35237 (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
35238 __builtins_arm_ldfpscr.
35239 (arm_atomic_assign_expand_fenv): New function.
35240 * config/arm/vfp.md (set_fpscr): New pattern.
35241 (get_fpscr) : Likewise.
35242 * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
35244 * doc/extend.texi (AARCH64 Built-in Functions) : Document
35245 __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
35247 2014-05-30 Jakub Jelinek <jakub@redhat.com>
35249 * asan.c (report_error_func): Add SLOW_P argument, use
35250 BUILT_IN_ASAN_*_N if set.
35251 (build_check_stmt): Likewise.
35252 (instrument_derefs): If T has insufficient alignment,
35253 force same handling as for odd sizes.
35255 * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
35256 BUILT_IN_ASAN_REPORT_STORE_N): New.
35257 * asan.c (struct asan_mem_ref): Change access_size type to
35259 (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
35260 update_mem_ref_hash_table): Likewise.
35261 (asan_mem_ref_hasher::hash): Hash in a HWI.
35262 (report_error_func): Change size_in_bytes argument to HWI.
35263 Use *_N builtins if size_in_bytes is larger than 16 or not power of
35265 (build_shadow_mem_access): New function.
35266 (build_check_stmt): Use it. Change size_in_bytes argument to HWI.
35267 Handle size_in_bytes not power of two or larger than 16.
35268 (instrument_derefs): Don't give up if size_in_bytes is not
35269 power of two or is larger than 16.
35271 2014-05-30 Kai Tietz <ktietz@redhat.com>
35274 * config/i386/i386.c (x86_output_mi_thunk): Add memory case
35275 for sibling-tail-calls.
35276 * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
35278 * config/i386/predicates.md (sibcall_memory_operand): New predicate.
35279 (sibcall_insn_operand): Add check for sibcall_memory_operand.
35281 2014-05-30 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
35283 * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
35284 * config/avr/avr-tables.opt: Regenerate.
35285 * config/avr/t-multilib: Regenerate.
35286 * doc/avr-mmcu.texi: Regenerate.
35288 2014-05-30 Ian Lance Taylor <iant@google.com>
35290 * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
35293 2014-05-30 Tom de Vries <tom@codesourcery.com>
35295 * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
35298 2014-05-30 Tom de Vries <tom@codesourcery.com>
35300 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
35301 * lra.c (initialize_lra_reg_info_element): Add init of
35302 actual_call_used_reg_set field.
35303 (lra): Call lra_create_live_ranges before lra_inheritance for
35305 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
35307 * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
35308 instead of call_used_reg_set for -fuse-caller-save.
35309 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
35311 2014-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35313 * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
35315 * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
35317 2014-05-30 Richard Sandiford <rdsandiford@googlemail.com>
35319 * ira.c (ira_get_dup_out_num): Check for output operands at
35320 the start of the loop. Handle cases where an included alternative
35321 follows an excluded one.
35323 2014-05-29 Mike Stump <mikestump@comcast.net>
35326 * collect2.c (maybe_run_lto_and_relink): Be sure to always run
35327 post ld passes when lto is used.
35329 2014-05-29 Vladimir Makarov <vmakarov@redhat.com>
35331 PR rtl-optimization/61325
35332 * lra-constraints.c (process_address): Rename to process_address_1.
35333 (process_address): New function.
35335 2014-05-29 Alan Lawrence <alan.lawrence@arm.com>
35337 * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
35338 TYPES_BINOPV): New static data.
35339 * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
35341 * config/aarch64/aarch64-simd.md (aarch64_ext,
35342 aarch64_im_lane_boundsi): New patterns.
35343 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
35345 (aarch64_evpc_ext): New function.
35347 * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
35349 * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
35350 vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
35351 vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
35352 vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
35353 vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
35355 2014-05-29 Tom de Vries <tom@codesourcery.com>
35357 * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
35359 2014-05-29 Richard Earnshaw <rearnsha@arm.com>
35360 Richard Sandiford <rdsandiford@googlemail.com>
35362 * arm/iterators.md (shiftable_ops): New code iterator.
35363 (t2_binop0, arith_shift_insn): New code attributes.
35364 * arm/predicates.md (shift_nomul_operator): New predicate.
35365 * arm/arm.md (insn_enabled): Delete.
35366 (enabled): Remove insn_enabled test.
35367 (*arith_shiftsi): Delete. Replace with ...
35368 (*<arith_shift_insn>_multsi): ... new pattern.
35369 (*<arith_shift_insn>_shiftsi): ... new pattern.
35370 * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
35372 2014-05-29 Radovan Obradovic <robradovic@mips.com>
35373 Tom de Vries <tom@codesourcery.com>
35375 * config/mips/mips.h (POST_CALL_TMP_REG): Define.
35376 * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
35378 (mips_split_call): Use POST_CALL_TMP_REG.
35379 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
35381 2014-05-29 Tom de Vries <tom@codesourcery.com>
35383 * final.c (collect_fn_hard_reg_usage): Guard variable declaration
35384 with #ifdef STACK_REGS.
35386 2014-05-28 Jan Hubicka <hubicka@ucw.cz>
35388 * varasm.c (get_variable_section): Walk aliases.
35389 (place_block_symbol): Walk aliases.
35391 2014-05-28 Tom de Vries <tom@codesourcery.com>
35394 2014-05-28 Tom de Vries <tom@codesourcery.com>
35396 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
35397 * lra.c (initialize_lra_reg_info_element): Add init of
35398 actual_call_used_reg_set field.
35399 (lra): Call lra_create_live_ranges before lra_inheritance for
35401 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
35403 * lra-constraints.c (need_for_call_save_p): Use
35404 actual_call_used_reg_set instead of call_used_reg_set for
35406 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
35408 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
35410 * doc/md.texi: Document that the % constraint character must
35411 be at the beginning of the string.
35412 * genoutput.c (validate_insn_alternatives): Check that '=',
35413 '+' and '%' only appear at the beginning of a constraint.
35414 * ira.c (commutative_constraint_p): Delete.
35415 (ira_get_dup_out_num): Expect the '%' commutativity marker to be
35416 at the start of the string.
35417 * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
35419 * config/arm/neon.md (bicdi3_neon): Likewise.
35420 * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
35421 (slt_si, sltu_si): Likewise.
35422 * config/vax/vax.md (sbcdi3): Likewise.
35423 * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
35424 * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
35425 (mul64): Move '%' to beginning of constraint.
35426 * config/arm/arm.md (*xordi3_insn): Likewise.
35427 * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
35428 (xorsi3): Likewise.
35430 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
35432 * doc/md.texi: Document the restrictions on the "enabled" attribute.
35434 2014-05-28 Jason Merrill <jason@redhat.com>
35437 * cgraph.h (symtab_node::get_comdat_group_id): New.
35438 * cgraphunit.c (analyze_functions): Call it.
35439 * symtab.c (dump_symtab_node): Likewise.
35440 * tree.c (decl_comdat_group_id): New.
35441 * tree.h: Declare it.
35442 * lto-streamer-out.c (write_symbol): Use it.
35443 * trans-mem.c (ipa_tm_create_version_alias): Likewise.
35445 2014-05-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
35447 PR bootstrap/PR61146
35448 * wide-int.cc: Do not include longlong.h when compiling with clang.
35450 2014-05-28 Richard Biener <rguenther@suse.de>
35452 * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
35453 * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
35454 (vrp_visit_assignment_or_call): Print less vertical space.
35455 (vrp_visit_stmt): Likewise.
35456 (vrp_visit_phi_node): Likewise. For a PHI argument with
35457 VR_VARYING range consider recording it as copy.
35459 2014-05-28 Richard Biener <rguenther@suse.de>
35462 2014-05-28 Richard Biener <rguenther@suse.de>
35464 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
35466 2014-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
35468 * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
35469 sufficiently aligned and an offset is used at the same time.
35470 (expand_expr_real_1): Likewise.
35472 2014-05-28 Richard Biener <rguenther@suse.de>
35474 PR middle-end/61045
35475 * fold-const.c (fold_comparison): When folding
35476 X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
35477 the sign of the remaining constant operand stays the same.
35479 2014-05-28 Kaushik Phatak <kaushik.phatak@kpit.com>
35481 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
35482 __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
35483 (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
35485 (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
35486 * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
35487 (m32bit-doubles) Likewise.
35488 * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
35489 * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
35492 2014-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
35494 * configure.ac ($gcc_cv_ld_clearcap): New test.
35495 * configure: Regenerate.
35496 * config.in: Regenerate.
35497 * config/sol2.opt (mclear-hwcap): New option.
35498 * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
35499 * config/sol2-clearcap.map: Moved here from
35500 testsuite/gcc.target/i386/clearcap.map.
35501 * config/sol2-clearcapv2.map: Move here from
35502 gcc.target/i386/clearcapv2.map.
35503 * config/t-sol2 (install): Depend on install-clearcap-map.
35504 (install-clearcap-map): New target.
35505 * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
35508 2014-05-28 Richard Biener <rguenther@suse.de>
35510 * hwint.h (*_HALF_WIDE_INT*): Move to ...
35511 * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
35512 ... here and remove the rest.
35513 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
35515 2014-05-28 Richard Biener <rguenther@suse.de>
35517 PR tree-optimization/61335
35518 * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
35519 new range fails, drop to varying.
35521 2014-05-28 Olivier Hainque <hainque@adacore.com>
35523 * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
35524 (CPP_SPEC): Add entry for -mcpu=8548.
35525 * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
35526 * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
35528 2014-05-28 Tom de Vries <tom@codesourcery.com>
35530 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
35531 * lra.c (initialize_lra_reg_info_element): Add init of
35532 actual_call_used_reg_set field.
35533 (lra): Call lra_create_live_ranges before lra_inheritance for
35535 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
35537 * lra-constraints.c (need_for_call_save_p): Use
35538 actual_call_used_reg_set instead of call_used_reg_set for
35540 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
35542 2014-05-28 Radovan Obradovic <robradovic@mips.com>
35543 Tom de Vries <tom@codesourcery.com>
35545 * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
35547 (@item -fuse-caller-save): New item.
35549 2014-05-28 Radovan Obradovic <robradovic@mips.com>
35550 Tom de Vries <tom@codesourcery.com>
35552 * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
35553 OPT_fuse_caller_save.
35555 2014-05-28 Radovan Obradovic <robradovic@mips.com>
35556 Tom de Vries <tom@codesourcery.com>
35558 * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
35559 * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
35560 get_call_reg_set_usage.
35561 * resource.c (mark_set_resources, mark_target_live_regs): Use
35562 get_call_reg_set_usage.
35563 * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
35565 (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
35566 * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
35567 Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
35568 * ira-build.c (ira_create_allocno): Init
35569 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
35570 (create_cap_allocno, propagate_allocno_info)
35571 (propagate_some_info_from_allocno)
35572 (copy_info_to_removed_store_destinations): Handle
35573 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
35574 * ira-costs.c (ira_tune_allocno_costs): Use
35575 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
35577 2014-05-28 Radovan Obradovic <robradovic@mips.com>
35578 Tom de Vries <tom@codesourcery.com>
35580 * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
35581 and function_used_regs_valid fields.
35582 * final.c: Move include of hard-reg-set.h to before rtl.h to declare
35583 find_all_hard_reg_sets.
35584 (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
35585 (get_call_reg_set_usage): New function.
35586 (rest_of_handle_final): Use collect_fn_hard_reg_usage.
35587 * regs.h (get_call_reg_set_usage): Declare.
35589 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
35592 * config/dbx.h (License): Add Runtime Library Exception.
35593 * config/newlib-stdint.h (License): Same.
35594 * config/rtems.h (License): Same
35595 * config/initfini-array.h (License): Same
35596 * config/v850/v850.h (License): Same.
35597 * config/v850/v850-opts.h (License): Same
35598 * config/v850/rtems.h (License): Same.
35600 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
35603 * doc/extend.texi (Local Labels): Note that label differences are
35604 not supported for AVR.
35606 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
35607 Olivier Hainque <hainque@adacore.com>
35609 * rtl.h (set_for_reg_notes): Declare.
35610 * emit-rtl.c (set_for_reg_notes): New function.
35611 (set_unique_reg_note): Use it.
35612 * optabs.c (add_equal_note): Likewise
35614 2014-05-27 Andrew Pinski <apinski@cavium.com>
35616 * config/aarch64/aarch64.md (stack_protect_set_<mode>):
35617 Use <w> for the register in assembly template.
35618 (stack_protect_test): Use the mode of operands[0] for the result.
35619 (stack_protect_test_<mode>): Use <w> for the register
35620 in assembly template.
35622 2014-05-27 DJ Delorie <dj@redhat.com>
35624 * config/rx/rx.c (add_vector_labels): New.
35625 (rx_output_function_prologue): Call it.
35626 (rx_handle_func_attribute): Don't require empty arguments.
35627 (rx_handle_vector_attribute): New.
35628 (rx_attribute_table): Add "vector" attribute.
35629 * doc/extend.texi (interrupt, vector): Document new/changed
35630 RX-specific attributes.
35632 * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
35634 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
35636 * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
35637 predicate to detect a negative quotient.
35639 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
35641 * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
35642 to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
35643 Add X - Y CMP 0 to X CMP Y transformation.
35644 (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
35646 2014-05-27 Segher Boessenkool <segher@kernel.crashing.org>
35648 * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
35651 2014-05-27 Steve Ellcey <sellcey@mips.com>
35653 * config/mips/mips.c: Add include of cgraph.h.
35655 2014-05-27 Richard Biener <rguenther@suse.de>
35657 * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
35659 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
35662 * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
35663 * config/arm/arm-cores.def (License): Same.
35664 * config/arm/arm-opts.h (License): Same.
35665 * config/arm/aout.h (License): Same.
35666 * config/arm/bpabi.h (License): Same.
35667 * config/arm/elf.h (License): Same.
35668 * config/arm/linux-elf.h (License): Same.
35669 * config/arm/linux-gas.h (License): Same.
35670 * config/arm/netbsd-elf.h (License): Same.
35671 * config/arm/uclinux-eabi.h (License): Same.
35672 * config/arm/uclinux-elf.h (License): Same.
35673 * config/arm/vxworks.h (License): Same.
35675 2014-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35677 * config/arm/neon.md (neon_bswap<mode>): New pattern.
35678 * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
35679 (arm_init_neon_builtins): Handle NEON_BSWAP.
35680 Define required type nodes.
35681 (arm_expand_neon_builtin): Handle NEON_BSWAP.
35682 (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
35683 * config/arm/arm_neon_builtins.def (bswap): Define builtins.
35684 * config/arm/iterators.md (VDQHSD): New mode iterator.
35686 2014-05-27 Richard Biener <rguenther@suse.de>
35688 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
35689 Try using literal operands when comparing value-ranges failed.
35691 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
35693 * ira.c (commutative_operand): Adjust for change to recog_data.
35694 [Missing from previous commit.]
35696 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
35698 * system.h (TEST_BIT): New macro.
35699 * recog.h (alternative_mask): New type.
35700 (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
35701 (recog_data_d): Replace alternative_enabled_p array with
35702 enabled_alternatives.
35703 (target_recog): New structure.
35704 (default_target_recog, this_target_recog): Declare.
35705 (get_enabled_alternatives, recog_init): Likewise.
35706 * recog.c (default_target_recog, this_target_recog): New variables.
35707 (get_enabled_alternatives): New function.
35708 (extract_insn): Use it.
35709 (recog_init): New function.
35710 (preprocess_constraints, constrain_operands): Adjust for change to
35712 * postreload.c (reload_cse_simplify_operands): Likewise.
35713 * reload.c (find_reloads): Likewise.
35714 * ira-costs.c (record_reg_classes): Likewise.
35715 * ira-lives.c (single_reg_class): Likewise. Fix bug in which
35716 all alternatives after a disabled one would be skipped.
35717 (ira_implicitly_set_insn_hard_regs): Likewise.
35718 * ira.c (ira_setup_alts): Adjust for change to recog_data.
35719 * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
35720 with enabled_alternatives.
35721 * lra.c (free_insn_recog_data): Update accordingly.
35722 (lra_update_insn_recog_data): Likewise.
35723 (lra_set_insn_recog_data): Likewise. Use get_enabled_alternatives.
35724 * lra-constraints.c (process_alt_operands): Likewise. Handle
35725 only_alternative as part of the enabled mask.
35726 * target-globals.h (this_target_recog): Declare.
35727 (target_globals): Add a recog field.
35728 (restore_target_globals): Restore this_target_recog.
35729 * target-globals.c: Include recog.h.
35730 (default_target_globals): Initialize recog field.
35731 (save_target_globals): Likewise.
35732 * reginfo.c (reinit_regs): Call recog_init.
35733 * toplev.c (backend_init_target): Likewise.
35735 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
35737 * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
35738 rather than any named insn's code.
35740 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
35743 * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
35744 * config/arm/arm-cores.def (License): Same.
35746 2014-05-26 Jan Hubicka <hubicka@ucw.cz>
35748 * tree.h (decl_comdat_group): Declare.
35749 * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
35750 * tree.c (decl_comdat_group): Here.
35752 2014-05-26 Richard Sandiford <r.sandiford@uk.ibm.com>
35754 PR rtl-optimization/61222
35755 * combine.c (simplify_shift_const_1): When moving a PLUS outside
35756 the shift, truncate the PLUS operand to the result mode.
35758 2014-05-26 Uros Bizjak <ubizjak@gmail.com>
35761 * config/i386/i386.c (ix86_rtx_costs)
35762 <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
35765 2014-05-26 Martin Jambor <mjambor@suse.cz>
35767 * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
35770 2014-05-26 Richard Biener <rguenther@suse.de>
35772 * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
35773 wi::int_traits <long long>, wi::int_traits <unsigned long long>):
35774 Provide specializations.
35775 (wi::int_traits <HOST_WIDE_INT>,
35776 wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
35778 2014-05-26 Alan Modra <amodra@gmail.com>
35781 * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
35782 params and return a bool. Remove dead code. Update comment.
35783 Assert we have a const_int source. Remove bogus code from
35784 32-bit HWI days. Move !TARGET_POWERPC64 handling, and correct
35785 handling of constants > 2G and reg_equal note, from..
35786 (rs6000_emit_set_long_const): ..here. Remove unneeded param and
35787 return value. Update comment. If we can, use a new pseudo
35788 for intermediate calculations.
35789 * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
35791 * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
35792 call to rs6000_emit_set_const in splitter.
35793 (movdi_internal64+2, +3): Likewise.
35795 2014-05-26 Richard Biener <rguenther@suse.de>
35797 * system.h: Define __STDC_FORMAT_MACROS before
35798 including inttypes.h.
35799 * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
35800 HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
35801 HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
35802 HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
35803 HOST_WIDEST_INT_C): Remove.
35804 (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
35805 if C99 inttypes.h is not available.
35806 * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
35807 * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
35808 * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
35809 * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
35810 * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
35811 (struct output_info): Likewise.
35812 (print_statistics): Adjust.
35813 (dump_bitmap_statistics): Likewise.
35814 * bt-load.c (migrate_btr_defs): Print with PRId64.
35815 * cfg.c (dump_edge_info, dump_bb_info): Likewise.
35816 (MAX_SAFE_MULTIPLIER): Adjust.
35817 * cfghooks.c (dump_bb_for_graph): Print with PRId64.
35818 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
35819 dump_cgraph_node): Likewise.
35820 * final.c (dump_basic_block_info): Likewise.
35821 * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
35822 * gcov.c (format_gcov): Likewise.
35823 * ipa-cp.c (good_cloning_opportunity_p): Likewise. Use int64_t
35825 (get_clone_agg_value): Use HOST_WIDE_INT for offset.
35826 * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
35827 (inline_small_functions, dump_overall_stats, dump_inline_stats):
35828 Use PRId64 for dumping.
35829 * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
35830 * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
35831 (add_allocno_hard_regs): Adjust.
35832 * loop-doloop.c (doloop_modify): Print using PRId64.
35833 * loop-iv.c (inverse): Compute in uint64_t.
35834 (determine_max_iter, iv_number_of_iterations): Likewise.
35835 * loop-unroll.c (decide_peel_completely, decide_peel_simple):
35836 Print using PRId64.
35837 * lto-streamer-out.c (write_symbol): Use uint64_t.
35838 * mcf.c (CAP_INFINITY): Use int64_t maximum.
35839 (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
35840 find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
35841 * modulo-sched.c (const_iteration_count): Use int64_t.
35842 (sms_schedule): Dump using PRId64.
35843 * predict.c (dump_prediction): Likewise.
35844 * pretty-print.h (pp_widest_integer): Remove.
35845 * profile.c (get_working_sets, is_edge_inconsistent,
35846 is_inconsistent, read_profile_edge_counts): Dump using PRId64.
35847 * tree-pretty-print.c (pp_double_int): Remove case handling
35848 HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
35849 * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
35851 (pass_optimize_bswap::execute): Remove restriction on hosts.
35852 * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
35853 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
35854 * tree.c (widest_int_cst_value): Remove.
35855 * tree.h (widest_int_cst_value): Likewise.
35856 * value-prof.c (dump_histogram_value): Print using PRId64.
35857 * gengtype.c (main): Also inject int64_t.
35858 * ggc-page.c (struct max_alignment): Use int64_t.
35859 * alloc-pool.c (struct allocation_object_def): Likewise.
35860 * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
35862 * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
35863 * doc/tm.texi: Regenerated.
35864 * gengtype-lex.l (IWORD): Handle [u]int64_t.
35865 * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
35866 * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
35867 mmix_output_register_setting): Use [u]int64_t in prototypes.
35868 * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
35869 mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
35870 mmix_output_octa, mmix_output_shifted_value): Adjust.
35871 (mmix_intval): Adjust. Remove unreachable case.
35872 * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
35874 2014-05-26 Richard Biener <rguenther@suse.de>
35876 * configure.ac: Drop __int64 type check. Insist that we
35877 found uint64_t and int64_t.
35878 * hwint.h (HOST_BITS_PER___INT64): Remove.
35879 (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
35880 (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
35881 (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
35882 (HOST_WIDEST_FAST_INT): Remove __int64 case.
35883 * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
35884 for dst_q_src_df_rms_cdt.
35885 * configure: Regenerate.
35886 * config.in: Likewise.
35888 2014-05-26 Michael Tautschnig <mt@debian.org>
35891 * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
35892 __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
35894 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
35896 PR rtl-optimization/61278
35897 * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
35899 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
35901 PR rtl-optimization/61220
35902 Part of PR rtl-optimization/61225
35903 * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
35904 insn; skip split_edge for a block with only one successor.
35906 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
35908 * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
35911 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
35913 * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
35914 (update_vtable_references): New function.
35915 (function_and_variable_visibility): Rewrite also vtable initializers.
35916 * varpool.c (cgraph_variable_initializer_availability): Remove assert.
35918 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
35920 * ggc.h (ggc_grow): New function.
35921 * ggc-none.c (ggc_grow): New function.
35922 * ggc-page.c (ggc_grow): Likewise.
35924 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
35926 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
35927 address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
35928 comdat_can_be_unshared_p, cgraph_externally_visible_p,
35929 varpool_externally_visible_p, can_replace_by_local_alias,
35930 update_visibility_by_resolution_info, function_and_variable_visibility,
35931 pass_data_ipa_function_and_variable_visibility,
35932 make_pass_ipa_function_and_variable_visibility,
35933 whole_program_function_and_variable_visibility,
35934 pass_data_ipa_whole_program_visibility,
35935 make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
35936 * cgraph.h (cgraph_local_node_p): Declare.
35937 * ipa-visibility.c: New file.
35938 * Makefile.in (OBJS): Add ipa-visiblity.o
35940 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
35942 * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
35943 that var decl is available.
35945 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
35947 * tree-core.h (tree_decl_with_vis): Replace comdat_group by
35948 symtab_node pointer.
35949 * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
35950 (find_decls_types_r): Do not walk COMDAT_GROUP.
35951 * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
35952 * varasm.c (make_decl_one_only): Use set_comdat_group;
35953 create node if needed.
35954 * ipa-inline-transform.c (save_inline_function_body): Update
35955 way we decl->symtab mapping.
35956 * symtab.c (symtab_hash, hash_node, eq_node
35957 symtab_insert_node_to_hashtable): Remove.
35958 (symtab_register_node): Update.
35959 (symtab_unregister_node): Update.
35960 (symtab_get_node): Reimplement as inline function.
35961 (symtab_add_to_same_comdat_group): Update.
35962 (symtab_dissolve_same_comdat_group_list): Update.
35963 (dump_symtab_base): Update.
35964 (verify_symtab_base): Update.
35965 (symtab_make_decl_local): Update.
35966 (fixup_same_cpp_alias_visibility): Update.
35967 (symtab_nonoverwritable_alias): Update.
35968 * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
35969 * ipa.c (update_visibility_by_resolution_info): UPdate.
35970 * bb-reorder.c: Include cgraph.h
35971 * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
35972 with comdat groups.
35973 * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
35974 * cgraph.c (cgraph_get_create_node): Update.
35975 * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
35977 (symtab_get_node): Make inline.
35978 (symtab_insert_node_to_hashtable): Remove.
35979 (symtab_can_be_discarded): Update.
35980 (decl_comdat_group): New function.
35981 * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
35983 * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
35985 (read_comdat_group): New function.
35986 (input_node, input_varpool_node): Use it.
35987 * trans-mem.c (ipa_tm_create_version_alias): Update code creating
35989 * mips.c (mips_start_unique_function): Likewise.
35990 (ix86_code_end): Likewise.
35991 (rs6000_code_end): Likweise.
35992 * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
35994 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
35996 * gengtype-state.c (fatal_reading_state): Bring offline.
35997 * optabs.c (widening_optab_handler): Bring offline.
35998 * optabs.h (widening_optab_handler): Likewise.
35999 * final.c (get_attr_length_1): Likewise.
36001 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
36003 * sched-int.h (sd_iterator_cond): Manually tail recurse.
36005 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
36007 * config/rs6000/440.md (ppc440-integer): Include shift without dot.
36008 (ppc440-compare): Include shift with dot.
36009 * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
36010 * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
36012 * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
36014 (e6500_sfx2): Include it.
36015 * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
36016 *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
36017 *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
36018 andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
36019 *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
36020 *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
36021 *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
36022 *lshiftrt_internal1le, *lshiftrt_internal1be,
36023 *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
36024 *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
36025 *rotldi3_internal10le, *rotldi3_internal10be,
36026 *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
36027 ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
36028 ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
36029 *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
36030 define_insns): Use type "shift" in the appropriate alternatives.
36032 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
36034 * config/rs6000/rs6000.md (type): Add "logical". Delete
36036 (dot): Adjust comment.
36037 (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
36038 *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
36039 *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
36040 anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
36041 *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
36042 *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
36043 *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
36044 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
36046 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
36047 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
36048 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
36049 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
36050 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
36051 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
36052 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
36053 * config/rs6000/8540.md (ppc8540_su): Adjust.
36054 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
36055 cell-cmp-microcoded): Adjust.
36056 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
36057 * config/rs6000/e500mc.md (e500mc_su): Adjust.
36058 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
36059 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
36060 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
36061 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
36062 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
36063 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
36064 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
36066 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
36067 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
36068 Adjust. Adjust comment.
36069 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
36070 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
36072 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
36074 * config/rs6000/rs6000.md (type): Add "add".
36075 (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
36076 *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
36077 define_insns): Use it.
36078 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
36080 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
36081 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
36082 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
36083 * config/rs6000/601.md (ppc601-integer): Adjust.
36084 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
36085 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
36086 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
36087 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
36088 * config/rs6000/8540.md (ppc8540_su): Adjust.
36089 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
36090 cell-cmp-microcoded): Adjust.
36091 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
36092 * config/rs6000/e500mc.md (e500mc_su): Adjust.
36093 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
36094 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
36095 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
36096 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
36097 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
36098 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
36099 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
36101 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
36102 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
36103 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
36104 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
36106 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
36108 * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
36109 "delayed_compare", "var_delayed_compare".
36110 (var_shift): New attribute.
36111 (cell_micro): Adjust.
36112 (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
36113 *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
36114 rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
36115 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
36116 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
36117 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
36118 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
36119 *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
36120 *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
36121 *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
36122 *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
36123 rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
36124 *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
36125 *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
36126 *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
36127 *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
36128 *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
36129 *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
36130 *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
36131 *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
36132 *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
36133 *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
36134 *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
36135 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36136 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
36138 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
36139 * config/rs6000/440.md (ppc440-integer): Adjust.
36140 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
36141 * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
36142 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
36143 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
36144 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
36145 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
36146 * config/rs6000/8540.md (ppc8540_su): Adjust.
36147 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
36148 cell-cmp-microcoded): Adjust.
36149 * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
36150 * config/rs6000/e500mc.md (e500mc_su): Adjust.
36151 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
36152 e500mc64_delayed): Adjust.
36153 * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
36154 * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
36155 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
36156 * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
36157 * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
36158 * config/rs6000/power6.md (power6-shift, power6-var-rotate,
36159 power6-delayed-compare, power6-var-delayed-compare): Adjust.
36160 * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
36161 * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
36163 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
36164 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
36166 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
36168 * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv". Add "div".
36169 (bits): New mode_attr.
36170 (idiv_ldiv): Delete mode_attr.
36171 (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
36172 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36173 rs6000_adjust_priority, is_nonpipeline_insn,
36174 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
36176 * config/rs6000/40x.md (ppc403-idiv): Adjust.
36177 * config/rs6000/440.md (ppc440-idiv): Adjust.
36178 * config/rs6000/476.md (ppc476-idiv): Adjust.
36179 * config/rs6000/601.md (ppc601-idiv): Adjust.
36180 * config/rs6000/603.md (ppc603-idiv): Adjust.
36181 * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
36182 ppc620-ldiv): Adjust.
36183 * config/rs6000/7450.md (ppc7450-idiv): Adjust.
36184 * config/rs6000/7xx.md (ppc750-idiv): Adjust.
36185 * config/rs6000/8540.md (ppc8540_divide): Adjust.
36186 * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
36187 * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
36188 * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
36189 * config/rs6000/e500mc.md (e500mc_divide): Adjust.
36190 * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
36191 * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
36192 * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
36193 * config/rs6000/mpc.md (mpccore-idiv): Adjust.
36194 * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
36195 * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
36196 * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
36197 * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
36198 * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
36199 * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
36200 * config/rs6000/titan.md (titan_fxu_div): Adjust.
36202 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
36204 * config/rs6000/rs6000.md (type): Delete "insert_word",
36205 "insert_dword". Add "insert".
36206 (size): Update comment.
36207 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36208 insn_must_be_first_in_group): Adjust.
36209 (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
36210 *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
36211 *insvsi_internal6, insvdi_internal): Adjust.
36213 * config/rs6000/40x.md (ppc403-integer): Adjust.
36214 * config/rs6000/440.md (ppc440-integer): Adjust.
36215 * config/rs6000/476.md (ppc476-simple-integer): Adjust.
36216 * config/rs6000/601.md (ppc601-integer): Adjust.
36217 * config/rs6000/603.md (ppc603-integer): Adjust.
36218 * config/rs6000/6xx.md (ppc604-integer): Adjust.
36219 * config/rs6000/7450.md (ppc7450-integer): Adjust.
36220 * config/rs6000/7xx.md (ppc750-integer): Adjust.
36221 * config/rs6000/8540.md (ppc8540_su): Adjust.
36222 * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
36223 * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
36224 * config/rs6000/e500mc.md (e500mc_su): Adjust.
36225 * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
36226 * config/rs6000/e5500.md (e5500_sfx): Adjust.
36227 * config/rs6000/e6500.md (e6500_sfx): Adjust.
36228 * config/rs6000/mpc.md (mpccore-integer): Adjust.
36229 * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
36230 * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
36231 * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
36232 * config/rs6000/power7.md (power7-integer): Adjust.
36233 * config/rs6000/power8.md (power8-1cyc): Adjust.
36234 * config/rs6000/rs64.md (rs64a-integer): Adjust.
36235 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
36237 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
36239 * config/rs6000/rs6000.md (type): Add "mul". Delete "imul",
36240 "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
36241 (size): New attribute.
36242 (dot): New attribute.
36243 (cell_micro): Adjust.
36244 (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
36245 umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
36246 *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
36247 umuldi3_highpart): Adjust.
36248 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36249 rs6000_adjust_priority, is_nonpipeline_insn,
36250 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
36252 * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
36253 ppc405-imul3): Adjust.
36254 * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
36255 * config/rs6000/476.md (ppc476-imul): Adjust.
36256 * config/rs6000/601.md (ppc601-imul): Adjust.
36257 * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
36258 * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
36259 ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
36260 * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
36261 * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
36263 * config/rs6000/8540.md (ppc8540_multiply): Adjust.
36264 * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
36265 * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
36266 cell-imul): Adjust.
36267 * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
36268 * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
36269 * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
36270 * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
36271 * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
36272 * config/rs6000/mpc.md (mpccore-imul): Adjust.
36273 * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
36274 power4-lmul, power4-imul, power4-imul3): Adjust.
36275 * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
36276 power5-lmul, power5-imul, power5-imul3): Adjust.
36277 * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
36278 power6-lmul, power6-imul, power6-imul3): Adjust.
36279 * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
36280 * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
36282 * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
36283 rs64a-lmul): Adjust.
36284 * config/rs6000/titan.md (titan_imul): Adjust.
36286 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
36288 * config/rs6000/rs6000.md (type): Add new value "halfmul".
36289 (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
36290 *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
36291 *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
36292 *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
36293 *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
36294 * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
36295 * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
36296 * config/rs6000/476.md (ppc476-imul): Add type halfmul.
36297 * config/rs6000/titan.md: Delete nonsensical comment.
36298 (titan_imul): Add type imul3.
36299 (titan_mulhw): Remove type imul3; add type halfmul.
36301 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
36303 * config/rs6000/rs6000.md (type): Reorder, reformat.
36305 2014-05-23 Martin Jambor <mjambor@suse.cz>
36307 PR tree-optimization/53787
36308 * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
36309 * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
36310 analysis_done, update all uses.
36311 * ipa-prop.c: Include domwalk.h
36312 (param_analysis_info): Removed.
36313 (param_aa_status): New type.
36314 (ipa_bb_info): Likewise.
36315 (func_body_info): Likewise.
36316 (ipa_get_bb_info): New function.
36317 (aa_overwalked): Likewise.
36318 (find_dominating_aa_status): Likewise.
36319 (parm_bb_aa_status_for_bb): Likewise.
36320 (parm_preserved_before_stmt_p): Changed to use new param AA info.
36321 (load_from_unmodified_param): Accept func_body_info as a parameter
36322 instead of parms_ainfo.
36323 (parm_ref_data_preserved_p): Changed to use new param AA info.
36324 (parm_ref_data_pass_through_p): Likewise.
36325 (ipa_load_from_parm_agg_1): Likewise. Update callers.
36326 (compute_complex_assign_jump_func): Changed to use new param AA info.
36327 (compute_complex_ancestor_jump_func): Likewise.
36328 (ipa_compute_jump_functions_for_edge): Likewise.
36329 (ipa_compute_jump_functions): Removed.
36330 (ipa_compute_jump_functions_for_bb): New function.
36331 (ipa_analyze_indirect_call_uses): Likewise, moved variable
36333 (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
36334 and info, moved variable declarations down.
36335 (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
36337 (ipa_analyze_stmt_uses): Likewise.
36338 (ipa_analyze_params_uses): Removed.
36339 (ipa_analyze_params_uses_in_bb): New function.
36340 (ipa_analyze_controlled_uses): Likewise.
36341 (free_ipa_bb_info): Likewise.
36342 (analysis_dom_walker): New class.
36343 (ipa_analyze_node): Handle node-specific forbidden analysis,
36344 initialize and free func_body_info, use dominator walker.
36345 (ipcp_modif_dom_walker): New class.
36346 (ipcp_transform_function): Create and free func_body_info, use
36347 ipcp_modif_dom_walker, moved a lot of functionality there.
36349 2014-05-23 Marek Polacek <polacek@redhat.com>
36350 Jakub Jelinek <jakub@redhat.com>
36352 * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
36353 * gcc.c (sanitize_spec_function): Likewise.
36354 * convert.c (convert_to_integer): Include "ubsan.h". Add
36355 floating-point to integer instrumentation.
36356 * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
36357 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
36358 SANITIZE_NONDEFAULT.
36359 * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
36360 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
36361 BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
36362 * ubsan.c: Include "realmpfr.h" and "dfp.h".
36363 (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
36364 (ubsan_type_descriptor): Set tkind to 0xffff for types other than
36365 float/double/long double.
36366 (ubsan_instrument_float_cast): New function.
36367 * ubsan.h (ubsan_instrument_float_cast): Declare.
36369 2014-05-23 Jiong Wang <jiong.wang@arm.com>
36371 * config/aarch64/predicates.md (aarch64_call_insn_operand): New
36373 * config/aarch64/constraints.md ("Ucs", "Usf"): New constraints.
36374 * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
36375 Adjust for tailcalling through registers.
36376 * config/aarch64/aarch64.h (enum reg_class): New caller save
36378 (REG_CLASS_NAMES): Likewise.
36379 (REG_CLASS_CONTENTS): Likewise.
36380 * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
36381 Allow tailcalling without decls.
36383 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
36385 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
36386 Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
36388 * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
36389 gsi, and variables v_* to v*.
36391 2014-05-23 Eric Botcazou <ebotcazou@adacore.com>
36393 * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
36395 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
36397 * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
36398 * omp-low.c: Update accordingly.
36400 * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
36401 for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
36402 GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
36403 GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
36404 GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
36405 GF_OMP_TARGET_KIND_UPDATE.
36407 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
36408 Explicitly enumerate the expected region types.
36410 2014-05-23 Paul Eggert <eggert@cs.ucla.edu>
36413 * doc/extend.texi (Function Attributes): Fix __attribute__ ((malloc))
36414 documentation; the old documentation didn't clearly state the
36415 constraints on the contents of the pointed-to storage.
36417 2014-05-23 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
36419 Fix bootstrap error on ia64
36420 * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
36421 Return default value.
36423 2014-05-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
36425 PR tree-optimization/54733
36426 * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
36428 (find_bswap_or_nop_load): New.
36429 (find_bswap_1): Renamed to ...
36430 (find_bswap_or_nop_1): This. Also add support for memory source.
36431 (find_bswap): Renamed to ...
36432 (find_bswap_or_nop): This. Also add support for memory source and
36433 detection of bitwise operations equivalent to load in target
36435 (execute_optimize_bswap): Likewise. Also move its leading comment back
36436 in place and split statement transformation into ...
36437 (bswap_replace): This.
36439 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
36441 PR rtl-optimization/61215
36442 * lra-elelimination.c (lra_eliminate_regs_1): Don't use
36443 simplify_gen_subreg until final substitution.
36445 2014-05-23 Alan Modra <amodra@gmail.com>
36448 * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
36449 * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
36450 Use "Y" constraint rather than "m".
36452 2014-05-23 Kugan Vivekanandarajah <kuganv@linaro.org>
36454 * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
36456 * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
36457 New function declaration.
36458 * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
36459 AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
36460 AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
36461 (aarch64_init_builtins) : Initialize builtins
36462 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
36463 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
36464 (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
36465 __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
36466 and __builtins_aarch64_set_fpsr.
36467 (aarch64_atomic_assign_expand_fenv): New function.
36468 * config/aarch64/aarch64.md (set_fpcr): New pattern.
36469 (get_fpcr) : Likewise.
36470 (set_fpsr) : Likewise.
36471 (get_fpsr) : Likewise.
36472 (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
36473 and UNSPECV_SET_FPSR.
36474 * doc/extend.texi (AARCH64 Built-in Functions) : Document
36475 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
36476 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
36478 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
36480 PR rtl-optimization/60969
36481 * ira-costs.c (record_reg_classes): Process NO_REGS for matching
36482 constraints. Set up mem cost for NO_REGS case.
36484 2014-05-22 Thomas Schwinge <thomas@codesourcery.com>
36486 * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
36488 2012-05-22 Bernd Schmidt <bernds@codesourcery.com>
36490 * config/darwin.c: Include "lto-section-names.h".
36491 (LTO_SEGMENT_NAME): Don't define.
36492 * config/i386/winnt.c: Include "lto-section-names.h".
36493 * lto-streamer.c: Include "lto-section-names.h".
36494 * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
36495 * lto-wrapper.c: Include "lto-section-names.h".
36496 (LTO_SECTION_NAME_PREFIX): Don't define.
36497 * lto-section-names.h: New file.
36498 * cgraphunit.c: Include "lto-section-names.h".
36500 2014-05-22 Peter Bergner <bergner@vnet.ibm.com>
36502 * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
36504 2014-05-22 Richard Earnshaw <rearnsha@arm.com>
36507 * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
36509 2014-05-22 Nick Clifton <nickc@redhat.com>
36511 * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
36513 2014-05-22 Eric Botcazou <ebotcazou@adacore.com>
36515 * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
36516 -> (T)A transformation to integer types.
36518 2014-05-22 Teresa Johnson <tejohnson@google.com>
36520 * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
36521 (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
36522 (gcov_rewrite): Use gcov_nonruntime_assert.
36523 (gcov_open): Ditto.
36524 (gcov_write_words): Ditto.
36525 (gcov_write_length): Ditto.
36526 (gcov_read_words): Use gcov_nonruntime_assert, and remove
36527 gcc_assert from IN_LIBGCOV code.
36528 (gcov_read_summary): Use gcov_error to flag profile corruption.
36529 (gcov_sync): Use gcov_nonruntime_assert.
36530 (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
36531 (gcov_histo_index): Use gcov_nonruntime_assert.
36532 (static void gcov_histogram_merge): Ditto.
36533 (compute_working_sets): Ditto.
36534 * gcov-io.h (gcov_nonruntime_assert): Define.
36535 (gcov_error): Define for !IN_LIBGCOV
36537 2014-05-22 Richard Biener <rguenther@suse.de>
36539 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
36540 BUILT_IN_REALLOC like BUILT_IN_STRDUP.
36541 (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
36542 and deallocation site.
36543 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
36544 Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
36545 passing through the incoming points-to set.
36546 (handle_lhs_call): Use flags argument instead of recomputing it.
36547 (find_func_aliases_for_call): Call handle_lhs_call with proper
36550 2014-05-22 Jakub Jelinek <jakub@redhat.com>
36552 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
36553 all padding bits in REAL_VALUE_TYPE are cleared.
36555 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
36557 Cleanup and improve multipass_dfa_lookahead_guard
36558 * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
36559 (core2i7_first_cycle_multipass_begin,)
36560 (core2i7_first_cycle_multipass_issue,)
36561 (core2i7_first_cycle_multipass_backtrack): Update signature.
36562 * config/ia64/ia64.c
36563 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
36564 (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
36565 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
36567 (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
36568 ia64_first_cycle_multipass_dfa_lookahead_guard_spec. Update return
36570 * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
36572 * doc/tm.texi: Regenerate.
36574 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
36575 * haifa-sched.c (ready_try): Make signed to allow negative values.
36576 (rebug_ready_list_1): Update.
36577 (choose_ready): Simplify.
36578 (sched_extend_ready_list): Update.
36580 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
36582 Remove IA64 speculation tweaking flags
36583 * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
36584 speculation tuning flags.
36585 (msched-prefer-non-data-spec-insns,)
36586 (msched-prefer-non-control-spec-insns): Obsolete options.
36587 * haifa-sched.c (choose_ready): Remove handling of
36588 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
36589 * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
36590 and PREFER_NON_DATA_SPEC.
36591 * sel-sched.c (process_spec_exprs): Remove handling of
36592 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
36594 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
36596 Improve scheduling debug output
36597 * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
36598 (advance_one_cycle): Update.
36599 (schedule_insn, queue_to_ready): Add debug printouts.
36600 (debug_ready_list_1): New static function.
36601 (debug_ready_list): Update.
36602 (max_issue): Add debug printouts.
36603 (dump_insn_stream): New static function.
36604 (schedule_block): Use it. Also better indent printouts.
36606 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
36608 Fix sched_insn debug counter
36609 * haifa-sched.c (schedule_insn): Update.
36610 (struct haifa_saved_data): Add nonscheduled_insns_begin.
36611 (save_backtrack_point, restore_backtrack_point): Update.
36612 (first_nonscheduled_insn): New static function.
36613 (queue_to_ready, choose_ready): Use it.
36614 (schedule_block): Init nonscheduled_insns_begin.
36615 (sched_emit_insn): Update.
36618 2014-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
36620 * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
36622 (aarch64_secondary_reload) : LikeWise.
36623 (aarch64_class_max_nregs) : Remove CORE_REGS.
36624 * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
36625 (REG_CLASS_NAMES) : Likewise.
36626 (REG_CLASS_CONTENTS) : LikeWise.
36627 (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
36629 2014-05-21 Guozhi Wei <carrot@google.com>
36632 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
36634 (vqdmulhq_n_s16): Likewise.
36636 2014-05-21 Segher Boessenkool <segher@kernel.crashing.org>
36638 * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
36640 2014-05-21 Marek Polacek <polacek@redhat.com>
36643 * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
36645 2014-05-21 Martin Jambor <mjambor@suse.cz>
36647 * doc/invoke.texi (Optimize Options): Document parameters
36648 ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
36649 ipa-cp-array-index-hint-bonus.
36651 2014-05-21 Mark Wielaard <mjw@redhat.com>
36654 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
36655 version >= 3 or not strict DWARF.
36656 * langhooks.h (struct lang_hooks_for_types): Add
36657 enum_underlying_base_type.
36658 * langhooks.c (lhd_enum_underlying_base_type): New function.
36659 * gcc/langhooks.h (struct lang_hooks_for_types): Add
36660 enum_underlying_base_type.
36661 * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
36662 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
36663 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
36665 2014-05-21 Richard Biener <rguenther@suse.de>
36667 * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
36669 2014-05-21 John Marino <gnugcc@marino.st>
36671 * config.gcc (*-*-dragonfly*): New target.
36672 * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
36673 * configure: Regenerate.
36674 * config/dragonfly-stdint.h: New.
36675 * config/dragonfly.h: New.
36676 * config/dragonfly.opt: New.
36677 * config/i386/dragonfly.h: New.
36678 * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
36680 2014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
36682 * tree.def (VOID_CST): New.
36683 * tree-core.h (TI_VOID): New.
36684 * tree.h (void_node): New.
36685 * tree.c (tree_node_structure_for_code, tree_code_size)
36686 (iterative_hash_expr): Handle VOID_CST.
36687 (build_common_tree_nodes): Initialize void_node.
36689 2014-05-21 Bernd Schmidt <bernds@codesourcery.com>
36691 * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
36693 (reload, calculate_needs_all_insns, reload_as_needed): Use them.
36695 * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
36698 * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
36699 flag_reorder_blocks_and_partition.
36700 * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
36702 2014-05-21 Oleg Endo <olegendo@gcc.gnu.org>
36705 * config/sh/sh.md (*addc_r_1): Rename to addc_t_r. Remove empty
36707 (*addc_r_t): Add new insn_and_split.
36709 2014-05-21 Jakub Jelinek <jakub@redhat.com>
36711 PR middle-end/61252
36712 * omp-low.c (handle_simd_reference): New function.
36713 (lower_rec_input_clauses): Use it. Defer adding reference
36714 initialization even for reduction without placeholder if in simd,
36715 handle it properly later on.
36717 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
36719 PR tree-optimization/60899
36720 * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
36721 assume all static symbols will have definition wile parsing and
36722 check the do have definition later in compilation; check that
36723 variable referring symbol will be output before concluding that
36724 reference is safe; be conservative for referring local statics;
36725 be more precise about when comdat is output in other partition.
36727 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
36730 * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
36732 * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
36733 (ipa_inline): Loop inline_to_all_callers until no more aliases
36736 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
36738 * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
36739 set writeonly flag only for vars actually written to.
36741 2014-05-20 Dehao Chen <dehao@google.com>
36743 * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
36744 and callee count to get clone count.
36745 * tree-inline.c (expand_call_inline): Use callee count instead of bb
36746 count in copy_body.
36748 2014-05-20 Richard Sandiford <rdsandiford@googlemail.com>
36750 PR rtl-optimization/61243
36751 * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
36753 2014-05-20 Xinliang David Li <davidxl@google.com>
36755 * cgraphunit.c (walk_polymorphic_call_targets): Add
36756 dbgcnt and fopt-info support.
36757 * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
36758 * ipa-devirt.c (ipa_devirt): Ditto.
36759 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
36760 * ipa.c (walk_polymorphic_call_targets): Ditto.
36761 * gimple-fold.c (fold_gimple_assign): Ditto.
36762 (gimple_fold_call): Ditto.
36763 * dbgcnt.def: New counter.
36765 2014-05-20 DJ Delorie <dj@redhat.com>
36767 * config/msp430/msp430.md (split): Don't allow subregs when
36768 splitting SImode adds.
36769 (andneghi): Fix subtraction logic.
36770 * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
36772 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
36774 * tree.h (DECL_ONE_ONLY): Return true only for externally visible
36776 * except.c (switch_to_exception_section, resolve_unique_section,
36777 get_named_text_section, default_function_rodata_section,
36778 align_variable, get_block_for_decl, default_section_type_flags):
36779 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
36780 * symtab.c (symtab_add_to_same_comdat_group,
36781 symtab_make_decl_local, fixup_same_cpp_alias_visibility,
36782 symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
36784 * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
36785 * bb-reorder.c (pass_partition_blocks::gate): Likewise.
36786 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
36787 (c6x_function_in_section_p): Likewise.
36788 * config/darwin.c (machopic_select_section): Likewise.
36789 * config/arm/arm.c (arm_function_in_section_p): Likewise.
36790 * config/mips/mips.c (mips_function_rodata_section): Likewise.
36791 * config/mep/mep.c (mep_select_section): LIkewise.
36792 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
36794 2014-05-20 Eric Botcazou <ebotcazou@adacore.com>
36796 * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
36797 EH region of calls to pure functions that can throw an exception.
36798 * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
36799 (copy_reference_ops_from_call): Also copy the EH region of the call if
36800 it can throw an exception.
36802 2014-05-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36804 * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
36805 nested VEC_SELECTs that are inverses of each other.
36807 2014-05-20 Richard Biener <rguenther@suse.de>
36809 * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
36810 (extract_and_process_scc_for_name): not here.
36811 (cond_dom_walker::before_dom_children): Only process
36812 stmts that end the BB in interesting ways.
36813 (run_scc_vn): Mark param uses as visited.
36815 2014-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
36817 * config/arm/arm.md (arith_shiftsi): Do not predicate for
36820 2014-05-20 Nick Clifton <nickc@redhat.com>
36822 * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
36823 (msp430_gimplify_va_arg_expr): New function.
36824 (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
36826 * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
36827 operand 0 in order to prevent confusion about the number of
36828 registers involved.
36830 2014-05-20 Richard Biener <rguenther@suse.de>
36832 PR tree-optimization/61221
36833 * tree-ssa-pre.c (el_to_update): Remove.
36834 (eliminate_dom_walker::before_dom_children): Handle released
36835 VDEFs by value-numbering them to the associated VUSE. Update
36836 stmt immediately for substituted call address.
36837 (eliminate): Remove delayed stmt updating code.
36838 * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
36839 possibly late re-numbered vuses.
36840 (vn_reference_lookup_2): Adjust.
36841 (vn_reference_lookup_pieces): Likewise.
36842 (vn_reference_lookup): Likewise.
36844 2014-05-20 Richard Biener <rguenther@suse.de>
36846 * config.gcc: Remove need_64bit_hwint.
36847 * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
36848 * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
36850 * config.in: Regenerate.
36851 * configure: Likewise.
36853 2014-05-19 David Wohlferd <dw@LimeGreenSocks.com>
36855 * doc/extend.texi: Create Label Attributes section,
36856 move all label attributes into it and reference it.
36858 2014-05-19 Richard Earnshaw <rearnsha@arm.com>
36860 * arm.c (thumb1_reorg): When scanning backwards skip anything
36861 that's not a proper insn.
36863 2014-05-19 Richard Biener <rguenther@suse.de>
36865 PR tree-optimization/61221
36866 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
36867 Do nothing for unreachable blocks.
36868 * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
36869 Improve unreachability detection.
36871 2014-05-19 Richard Biener <rguenther@suse.de>
36873 PR tree-optimization/61209
36874 * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
36876 2014-05-19 Nick Clifton <nickc@redhat.com>
36878 * except.c (init_eh): Fix computation of builtin setjmp buffer
36879 size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
36881 2014-05-19 Richard Biener <rguenther@suse.de>
36883 PR tree-optimization/61184
36884 * tree-vrp.c (is_negative_overflow_infinity): Use
36885 TREE_OVERFLOW_P and do that check first.
36886 (is_positive_overflow_infinity): Likewise.
36887 (is_overflow_infinity): Likewise.
36888 (vrp_operand_equal_p): Properly treat operands with
36889 differing overflow as not equal.
36891 2014-05-19 Bernd Schmidt <bernds@codesourcery.com>
36893 * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
36894 shift simplification where it was intended.
36896 2014-05-19 Christian Bruel <christian.bruel@st.com>
36899 * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
36901 2014-05-19 Richard Sandiford <r.sandiford@uk.ibm.com>
36904 * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
36907 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
36909 * reg-notes.def (CROSSING_JUMP): Likewise.
36910 * rtl.h (rtx_def): Update comment for jump flag.
36911 (CROSSING_JUMP_P): Define.
36912 * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
36913 of a REG_CROSSING_JUMP note.
36914 * cfghooks.c (tidy_fallthru_edges): Likewise.
36915 * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
36916 * emit-rtl.c (try_split): Likewise.
36917 * haifa-sched.c (sched_create_recovery_edges): Likewise.
36918 * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
36919 * jump.c (redirect_jump_2): Likewise.
36920 * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
36921 (relax_delay_slots): Likewise.
36922 * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
36923 (bbit_di): Likewise.
36924 * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
36925 * config/sh/sh.md (jump_compact): Likewise.
36926 * bb-reorder.c (rotate_loop): Likewise.
36927 (pass_duplicate_computed_gotos::execute): Likewise.
36928 (add_reg_crossing_jump_notes): Rename to...
36929 (update_crossing_jump_flags): ...this.
36930 (pass_partition_blocks::execute): Update accordingly.
36932 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
36934 * tree.h: Remove extraneous template <>.
36936 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
36938 * ipa.c (symtab_remove_unreachable_nodes): Remove
36939 symbol from comdat group if its body was eliminated.
36940 (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
36941 * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
36942 (symtab_unregister_node): ... this one.
36943 (verify_symtab_base): More strict checking of comdats.
36944 * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
36946 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
36948 * tree-pass.h (make_pass_ipa_comdats): New pass.
36949 * timevar.def (TV_IPA_COMDATS): New timevar.
36950 * passes.def (pass_ipa_comdats): Add.
36951 * Makefile.in (OBJS): Add ipa-comdats.o
36952 * ipa-comdats.c: New file.
36954 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
36956 * ipa.c (update_visibility_by_resolution_info): New function.
36957 (function_and_variable_visibility): Use it.
36959 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
36961 * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
36963 (FOR_EACH_DEFINED_SYMBOL): New macro.
36964 (varpool_first_static_initializer, varpool_next_static_initializer,
36965 varpool_first_defined_variable, varpool_next_defined_variable):
36967 (symtab_in_same_comdat_p): Correctly deal with inline functions.
36969 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
36971 * ggc-page.c (ggc_handle_finalizers): Add comment.
36973 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
36975 * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
36976 * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
36977 (ggc_internal_cleared_alloc): Likewise.
36978 * ggc-page.c (finalizer): New class.
36979 (vec_finalizer): Likewise.
36980 (globals::finalizers): New member.
36981 (globals::vec_finalizers): Likewise.
36982 (ggc_internal_alloc): Record the finalizer if any for the block being
36984 (ggc_handle_finalizers): New function.
36985 (ggc_collect): Call ggc_handle_finalizers.
36986 * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
36988 (ggc_internal_cleared_alloc): Likewise.
36989 (finalize): New function.
36990 (need_finalization_p): Likewise.
36991 (ggc_alloc): Install the type's destructor as the finalizer if it
36992 might do something.
36993 (ggc_cleared_alloc): Likewise.
36994 (ggc_vec_alloc): Likewise.
36995 (ggc_cleared_vec_alloc): Likewise.
36997 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
36999 * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
37001 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
37003 * alias.c (record_alias_subset): Adjust.
37004 * bitmap.c (bitmap_element_allocate): Likewise.
37005 (bitmap_gc_alloc_stat): Likewise.
37006 * cfg.c (init_flow): Likewise.
37007 (alloc_block): Likewise.
37008 (unchecked_make_edge): Likewise.
37009 * cfgloop.c (alloc_loop): Likewise.
37010 (flow_loops_find): Likewise.
37011 (rescan_loop_exit): Likewise.
37012 * cfgrtl.c (init_rtl_bb_info): Likewise.
37013 * cgraph.c (insert_new_cgraph_node_version): Likewise.
37014 (cgraph_allocate_node): Likewise.
37015 (cgraph_create_edge_1): Likewise.
37016 (cgraph_allocate_init_indirect_info): Likewise.
37017 * cgraphclones.c (cgraph_clone_edge): Likewise.
37018 * cgraphunit.c (add_asm_node): Likewise.
37019 (init_lowered_empty_function): Likewise.
37020 * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
37021 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
37022 (alpha_use_linkage): Likewise.
37023 * config/arc/arc.c (arc_init_machine_status): Likewise.
37024 * config/arm/arm.c (arm_init_machine_status): Likewise.
37025 * config/avr/avr.c (avr_init_machine_status): Likewise.
37026 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
37027 * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
37028 * config/cris/cris.c (cris_init_machine_status): Likewise.
37029 * config/darwin.c (machopic_indirection_name): Likewise.
37030 (darwin_build_constant_cfstring): Likewise.
37031 (darwin_enter_string_into_cfstring_table): Likewise.
37032 * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
37033 * config/frv/frv.c (frv_init_machine_status): Likewise.
37034 * config/i386/i386.c (get_dllimport_decl): Likewise.
37035 (ix86_init_machine_status): Likewise.
37036 (assign_386_stack_local): Likewise.
37037 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
37038 (i386_pe_maybe_record_exported_symbol): Likewise.
37039 (i386_pe_record_stub): Likewise.
37040 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
37041 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
37042 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
37043 (m32c_note_pragma_address): Likewise.
37044 * config/mep/mep.c (mep_init_machine_status): Likewise.
37045 (mep_note_pragma_flag): Likewise.
37046 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
37047 (mips16_local_alias): Likewise.
37048 (mips_init_machine_status): Likewise.
37049 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
37050 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
37051 * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
37052 * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
37053 * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
37054 * config/pa/pa.c (pa_init_machine_status): Likewise.
37055 (pa_get_deferred_plabel): Likewise.
37056 * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
37057 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
37058 (rs6000_init_machine_status): Likewise.
37059 (output_toc): Likewise.
37060 * config/s390/s390.c (s390_init_machine_status): Likewise.
37061 * config/score/score.c (score_output_external): Likewise.
37062 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
37063 * config/spu/spu.c (spu_init_machine_status): Likewise.
37064 * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
37065 * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
37066 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
37067 * coverage.c (coverage_end_function): Likewise.
37068 * dbxout.c (dbxout_init): Likewise.
37069 * doc/gty.texi: Don't mention variable_size attribute.
37070 * dwarf2cfi.c (new_cfi): Adjust.
37071 (new_cfi_row): Likewise.
37072 (copy_cfi_row): Likewise.
37073 (create_cie_data): Likewise.
37074 * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
37075 (new_loc_descr): Likewise.
37076 (find_AT_string_in_table): Likewise.
37077 (add_addr_table_entry): Likewise.
37078 (new_die): Likewise.
37079 (add_var_loc_to_decl): Likewise.
37080 (clone_die): Likewise.
37081 (clone_as_declaration): Likewise.
37082 (break_out_comdat_types): Likewise.
37083 (new_loc_list): Likewise.
37084 (add_loc_descr_to_each): Likewise.
37085 (add_location_or_const_value_attribute): Likewise.
37086 (add_linkage_name): Likewise.
37087 (lookup_filename): Likewise.
37088 (dwarf2out_var_location): Likewise.
37089 (new_line_info_table): Likewise.
37090 (dwarf2out_init): Likewise.
37091 (mem_loc_descriptor): Likewise.
37092 (loc_descriptor): Likewise.
37093 (add_const_value_attribute): Likewise.
37094 (tree_add_const_value_attribute): Likewise.
37095 (comp_dir_string): Likewise.
37096 (dwarf2out_vms_debug_main_pointer): Likewise.
37097 (string_cst_pool_decl): Likewise.
37098 * emit-rtl.c (set_mem_attrs): Likewise.
37099 (get_reg_attrs): Likewise.
37100 (start_sequence): Likewise.
37101 (init_emit): Likewise.
37102 (init_emit_regs): Likewise.
37103 * except.c (init_eh_for_function): Likewise.
37104 (gen_eh_region): Likewise.
37105 (gen_eh_region_catch): Likewise.
37106 (gen_eh_landing_pad): Likewise.
37107 (add_call_site): Likewise.
37108 * function.c (add_frame_space): Likewise.
37109 (insert_temp_slot_address): Likewise.
37110 (assign_stack_temp_for_type): Likewise.
37111 (get_hard_reg_initial_val): Likewise.
37112 (allocate_struct_function): Likewise.
37113 (prepare_function_start): Likewise.
37114 (types_used_by_var_decl_insert): Likewise.
37115 * gengtype.c (variable_size_p): Remove function.
37116 (enum alloc_quantity): Remove enum.
37117 (write_typed_alloc_def): Remove function.
37118 (write_typed_struct_alloc_def): Likewise.
37119 (write_typed_typedef_alloc_def): Likewise.
37120 (write_typed_alloc_defns): Likewise.
37122 * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
37123 (ggc_cleared_alloc_ptr_array_two_args): Likewise.
37124 * ggc.h (ggc_alloc): new function.
37125 (ggc_cleared_alloc): Likewise.
37126 (ggc_vec_alloc): Template on type of vector element, and remove
37127 element size argument.
37128 (ggc_cleared_vec_alloc): Likewise.
37129 * gimple.c (gimple_build_omp_for): Adjust.
37130 (gimple_copy): Likewise.
37131 * ipa-cp.c (get_replacement_map): Likewise.
37132 (find_aggregate_values_for_callers_subset): Likewise.
37133 (known_aggs_to_agg_replacement_list): Likewise.
37134 * ipa-devirt.c (get_odr_type): Likewise.
37135 * ipa-prop.c (ipa_node_duplication_hook): Likewise.
37136 (read_agg_replacement_chain): Likewise.
37137 * loop-iv.c (get_simple_loop_desc): Likewise.
37138 * lto-cgraph.c (input_node_opt_summary): Likewise.
37139 * lto-section-in.c (lto_new_in_decl_state): Likewise.
37140 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
37141 (input_eh_region): Likewise.
37142 (input_eh_lp): Likewise.
37143 (input_cfg): Likewise.
37144 * optabs.c (set_optab_libfunc): Likewise.
37145 (init_tree_optimization_optabs): Likewise.
37146 (set_conv_libfunc): Likewise.
37147 * passes.c (do_per_function_toporder): Likewise.
37148 * rtl.h: Don't use variable_size gty attribute.
37149 * sese.c (if_region_set_false_region): Adjust.
37150 * stringpool.c (gt_pch_save_stringpool): Likewise.
37151 * target-globals.c (save_target_globals): Likewise.
37152 * toplev.c (general_init): Likewise.
37153 * trans-mem.c (record_tm_replacement): Likewise.
37154 (split_bb_make_tm_edge): Likewise.
37155 * tree-cfg.c (move_sese_region_to_fn): Likewise.
37156 * tree-data-ref.h (lambda_vector_new): Likewise.
37157 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
37158 * tree-iterator.c (tsi_link_before): Likewise.
37159 (tsi_link_after): Likewise.
37160 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
37161 * tree-ssa-loop-niter.c (record_estimate): Likewise.
37162 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
37163 * tree-ssa-operands.h: Don't use variable_size gty attribute.
37164 * tree-ssa.c (init_tree_ssa): Adjust.
37165 * tree-ssanames.c (set_range_info): Likewise.
37166 (get_ptr_info): Likewise.
37167 (duplicate_ssa_name_ptr_info): Likewise.
37168 (duplicate_ssa_name_range_info): Likewise.
37169 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
37170 (unpack_ts_fixed_cst_value_fields): Likewise.
37171 * tree.c (build_fixed): Likewise.
37172 (build_real): Likewise.
37173 (build_string): Likewise.
37174 (decl_priority_info): Likewise.
37175 (decl_debug_expr_insert): Likewise.
37176 (decl_value_expr_insert): Likewise.
37177 (decl_debug_args_insert): Likewise.
37178 (type_hash_add): Likewise.
37179 (build_omp_clause): Likewise.
37180 * ubsan.c (decl_for_type_insert): Likewise.
37181 * varasm.c (get_unnamed_section): Likewise.
37182 (get_noswitch_section): Likewise.
37183 (get_section): Likewise.
37184 (get_block_for_section): Likewise.
37185 (create_block_symbol): Likewise.
37186 (build_constant_desc): Likewise.
37187 (create_constant_pool): Likewise.
37188 (force_const_mem): Likewise.
37189 (record_tm_clone_pair): Likewise.
37190 * varpool.c (varpool_create_empty_node): Likewise.
37192 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
37194 * dwarf2out.c (tree_add_const_value_attribute): Call
37195 ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
37196 * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
37197 instead of ggc_internal_<x>alloc_stat.
37198 * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
37199 (ggc_realloc): Likewise.
37200 * ggc-none.c (ggc_internal_alloc): Likewise.
37201 (ggc_internal_cleared_alloc): Likewise.
37202 * ggc-page.c: Likewise.
37203 * ggc.h (ggc_internal_alloc_stat): Likewise.
37204 (ggc_internal_alloc): Remove macro.
37205 (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
37206 (ggc_internal_cleared_alloc): Remove macro.
37207 (GGC_RESIZEVEC): Adjust.
37208 (ggc_resizevar): Remove macro.
37209 (ggc_internal_vec_alloc_stat): Drop _stat suffix.
37210 (ggc_internal_cleared_vec_alloc_stat): Likewise.
37211 (ggc_internal_vec_cleared_alloc): Remove macro.
37212 (ggc_alloc_atomic_stat): Drop _stat suffix.
37213 (ggc_alloc_atomic): Remove macro.
37214 (ggc_alloc_cleared_atomic): Remove macro.
37215 (ggc_alloc_string_stat): Drop _stat suffix.
37216 (ggc_alloc_string): Remove macro.
37217 (ggc_alloc_rtx_def_stat): Adjust.
37218 (ggc_alloc_tree_node_stat): Likewise.
37219 (ggc_alloc_cleared_tree_node_stat): Likewise.
37220 (ggc_alloc_cleared_gimple_statement_stat): Likewise.
37221 (ggc_alloc_cleared_simd_clone_stat): Likewise.
37222 * gimple.c (gimple_build_omp_for): Likewise.
37223 (gimple_copy): Likewise.
37224 * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
37225 * toplev.c (realloc_for_line_map): Adjust.
37226 * tree-data-ref.h (lambda_vector_new): Likewise.
37227 * tree-phinodes.c (allocate_phi_node): Likewise.
37228 * tree.c (grow_tree_vec_stat): Likewise.
37229 * vec.h (va_gc::reserve): Adjust.
37231 2014-05-17 Ajit Agarwal <ajitkum@xilinx.com>
37233 * config/microblaze/microblaze.c (break_handler): New Declaration.
37234 (microblaze_break_function_p,microblaze_is_break_handler): New.
37235 (compute_frame_size): Use microblaze_break_function_p.
37236 Add the test of break_handler.
37237 (microblaze_function_prologue) : Add the test of variable
37238 break_handler. Check the fnname by BREAK_HANDLER_NAME.
37239 (microblaze_function_epilogue) : Add the test of break_handler.
37240 (microblaze_globalize_label) : Add the test of break_handler.
37241 Check the name by BREAK_HANDLER_NAME.
37243 * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
37245 * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
37246 microblaze_is_break_handler test.
37247 (call_internal1,call_value_intern): Use microblaze_break_function_p.
37248 Use SYMBOL_REF_DECL.
37250 * config/microblaze/microblaze-protos.h
37251 (microblaze_break_function_p,microblaze_is_break_handler):
37254 * doc/extend.texi (MicroBlaze break_handler Functions): Document
37255 new MicroBlaze break_handler functions.
37257 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
37259 * doc/extend.texi (Size of an asm): Move node text according
37260 to its @menu entry position.
37262 2014-05-17 Marc Glisse <marc.glisse@inria.fr>
37264 PR tree-optimization/61140
37265 PR tree-optimization/61150
37266 PR tree-optimization/61197
37267 * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
37269 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
37271 * doc/invoke.texi (free): Mention Alpha. Also enabled at -Os.
37273 2014-05-17 Richard Sandiford <r.sandiford@uk.ibm.com>
37275 * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
37276 __SIZEOF_INT128__ is defined.
37278 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
37280 * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
37281 (rs6000_delegitimize_address): Use it.
37283 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
37285 * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
37286 inplace argument. Store the new address in the original MEM when true.
37287 * emit-rtl.c (change_address_1): Likewise.
37288 (adjust_address_1, adjust_automodify_address_1, offset_address):
37289 Update accordingly.
37290 * rtl.h (plus_constant): Add an inplace argument.
37291 * explow.c (plus_constant): Likewise. Try to reuse the original PLUS
37292 when true. Avoid generating (plus X (const_int 0)).
37293 * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
37294 in-place. Pass true to plus_constant.
37295 (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
37297 2014-05-16 Dehao Chen <dehao@google.com>
37299 * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
37301 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
37304 * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
37306 * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
37308 2014-05-16 Dehao Chen <dehao@google.com>
37310 * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
37311 optimize_function_for_size_p.
37312 * regs.h (REG_FREQ_FROM_BB): Likewise.
37314 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
37317 * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
37318 negt_reg_operand cases.
37319 * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
37321 * config/sh/predicates.md (cbranch_treg_value): Simplify.
37323 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
37325 * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
37328 2014-05-16 David Malcolm <dmalcolm@redhat.com>
37331 2014-04-29 David Malcolm <dmalcolm@redhat.com>
37333 * tree-cfg.c (dump_function_to_file): Dump the return type of
37334 functions, in a line to itself before the function body, mimicking
37335 the layout of a C function.
37337 2014-05-16 Dehao Chen <dehao@google.com>
37339 * cfghooks.c (make_forwarder_block): Use direct computation to
37340 get fall-through edge's count and frequency.
37342 2014-05-16 Benno Schulenberg <bensberg@justemail.net>
37344 * config/arc/arc.c (arc_init): Fix typo in error message.
37345 * config/i386/i386.c (ix86_expand_builtin): Likewise.
37346 (split_stack_prologue_scratch_regno): Likewise.
37347 * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
37348 word from error message.
37350 2014-05-16 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
37352 * ira-costs.c: Fix typo in comment.
37354 2014-05-16 David Wohlferd <dw@LimeGreenSocks.com>
37356 * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
37358 2014-05-16 Jan Hubicka <hubicka@ucw.cz>
37360 * varpool.c (dump_varpool_node): Dump write-only flag.
37361 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
37363 * tree-cfg.c (execute_fixup_cfg): Remove statements setting
37364 write-only variables.
37365 * ipa.c (process_references): New function.
37366 (set_readonly_bit): New function.
37367 (set_writeonly_bit): New function.
37368 (clear_addressable_bit): New function.
37369 (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
37370 fix handling of aliases.
37371 * cgraph.h (struct varpool_node): Add writeonly flag.
37373 2014-05-16 Vladimir Makarov <vmakarov@redhat.com>
37375 PR rtl-optimization/60969
37376 * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
37377 Calculate costs for this case.
37379 2014-05-16 Eric Botcazou <ebotcazou@adacore.com>
37381 * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
37382 <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
37384 2014-05-16 Richard Biener <rguenther@suse.de>
37386 PR tree-optimization/61194
37387 * tree-vect-patterns.c (adjust_bool_pattern): Also handle
37388 bool patterns ending in a COND_EXPR.
37390 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37392 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
37394 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37396 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
37397 where we were unable to cost an RTX.
37399 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37401 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
37404 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37405 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
37407 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
37409 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37410 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
37412 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
37413 FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
37415 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37416 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
37418 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
37421 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37422 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
37424 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
37427 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37428 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
37430 * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
37431 (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
37433 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37434 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
37436 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
37437 rotates and shifts.
37439 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37440 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
37442 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
37443 ZERO_EXTEND and SIGN_EXTEND better.
37445 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37446 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
37448 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
37449 logical operations.
37451 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37452 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
37454 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
37455 costs when costing loads and stores to memory.
37457 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37458 Philip Tomsich <philipp.tomsich@theobroma-systems.com>
37460 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
37463 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37465 * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
37467 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37468 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
37470 * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
37472 (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
37474 (aarch64_rtx_mult_cost): New.
37475 (aarch64_rtx_costs): Use it, refactor as appropriate.
37477 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37478 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
37480 * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
37481 emit instructions, return number of instructions which would
37483 (aarch64_add_constant): Update call to aarch64_build_constant.
37484 (aarch64_output_mi_thunk): Likewise.
37485 (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
37488 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37490 * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
37491 (TARGET_RTX_COSTS): Call it.
37493 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37495 * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
37496 (cortexa57_vector_cost): Likewise.
37497 (cortexa57_tunings): Use them.
37499 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37501 * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
37502 (cpu_addrcost_table): Use it.
37503 * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
37504 (aarch64_address_cost): Rewrite using aarch64_classify_address,
37507 2014-05-16 Richard Biener <rguenther@suse.de>
37509 * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
37510 (set_ssa_val_to): Handle unexpected sets to VN_TOP.
37511 (visit_phi): Ignore edges marked as not executable.
37512 (class cond_dom_walker): New.
37513 (cond_dom_walker::before_dom_children): Value-number
37514 control statements and mark successor edges as not
37515 executable if possible.
37516 (run_scc_vn): First walk all control statements in
37517 dominator order, marking edges as not executable.
37518 * tree-inline.c (copy_edges_for_bb): Be not confused
37519 about random edge flags.
37521 2014-05-16 Richard Biener <rguenther@suse.de>
37523 * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
37525 2014-05-15 Peter Bergner <bergner@vnet.ibm.com>
37528 * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
37529 (__TM_simple_begin): Use it.
37530 (__TM_begin): Likewise.
37532 2014-05-15 Martin Jambor <mjambor@suse.cz>
37535 * ipa-prop.c (update_indirect_edges_after_inlining): Check
37536 type_preserved flag when the indirect edge is polymorphic.
37538 2014-05-15 Martin Jambor <mjambor@suse.cz>
37540 PR tree-optimization/61090
37541 * tree-sra.c (sra_modify_expr): Pass the current gsi to
37542 build_ref_for_model.
37544 2014-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37546 * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
37547 enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
37549 2014-05-15 Jakub Jelinek <jakub@redhat.com>
37551 PR tree-optimization/61158
37552 * fold-const.c (fold_binary_loc): If X is zero-extended and
37553 shiftc >= prec, make sure zerobits is all ones instead of
37554 invoking undefined behavior.
37556 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
37558 * regcprop.h: New file.
37559 * regcprop.c (skip_debug_insn_p): New decl.
37560 (replace_oldest_value_reg): Check skip_debug_insn_p.
37561 (copyprop_hardreg_forward_bb_without_debug_insn): New function.
37562 * shrink-wrap.c: Include regcprop.h.
37563 (prepare_shrink_wrap): Call
37564 copyprop_hardreg_forward_bb_without_debug_insn.
37566 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
37568 * shrink-wrap.h: Update comment.
37569 * shrink-wrap.c: Update comment.
37570 (next_block_for_reg): Rename to live_edge_for_reg.
37571 (live_edge_for_reg): Allow live_edge->dest has two predecessors.
37572 (move_insn_for_shrink_wrap): Split live_edge.
37573 (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
37575 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
37577 * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
37579 * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
37580 * config/sparc/sparc.md (fptype_ut699): New attribute.
37581 (in_branch_delay): Return false if -mfix-ut699 is specified and
37582 fptype_ut699 is set to single.
37583 (truncdfsf2): Add fptype_ut699 attribute.
37584 (fix_truncdfsi2): Likewise.
37585 (floatsisf2): Change fptype attribute.
37586 (fix_truncsfsi2): Likewise.
37587 (negtf2_notv9): Delete.
37588 (negtf2_v9): Likewise.
37589 (negtf2_hq): New instruction.
37590 (negtf2): New instruction and splitter.
37591 (negdf2_notv9): Rewrite.
37592 (abstf2_notv9): Delete.
37593 (abstf2_hq_v9): Likewise.
37594 (abstf2_v9): Likewise.
37595 (abstf2_hq): New instruction.
37596 (abstf2): New instruction and splitter.
37597 (absdf2_notv9): Rewrite.
37599 2014-05-14 Cary Coutant <ccoutant@google.com>
37602 * opts.c (common_handle_option): Don't special-case "-g".
37603 (set_debug_level): Default to at least level 2 with "-g".
37605 2014-05-14 DJ Delorie <dj@redhat.com>
37607 * config/msp430/msp430.c (msp430_builtin): Add
37608 MSP430_BUILTIN_DELAY_CYCLES.
37609 (msp430_init_builtins): Register void __delay_cycles(long long).
37610 (msp430_builtin_decl): Add it.
37611 (cg_magic_constant): New.
37612 (msp430_expand_delay_cycles): New.
37613 (msp430_expand_builtin): Call it.
37614 (msp430_print_operand_raw): Change integer printing from "int" to
37616 * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
37617 (delay_cycles_start): New.
37618 (delay_cycles_end): New.
37619 (delay_cycles_32): New.
37620 (delay_cycles_32x): New.
37621 (delay_cycles_16): New.
37622 (delay_cycles_16x): New.
37623 (delay_cycles_2): New.
37624 (delay_cycles_1): New.
37625 * doc/extend.texi: Document __delay_cycles().
37627 2014-05-14 Sandra Loosemore <sandra@codesourcery.com>
37629 * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
37630 length attribute computation.
37632 2014-05-14 Richard Sandiford <rdsandiford@googlemail.com>
37635 * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
37637 2014-05-14 Richard Sandiford <r.sandiford@uk.ibm.com>
37640 * config/sparc/sparc.md: Fix types of low and high in DI constant
37641 splitter. Use gen_int_mode in some other splitters.
37643 2014-05-14 Martin Jambor <mjambor@suse.cz>
37646 * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
37648 2014-05-14 James Norris <jnorris@codesourcery.com>
37650 * omp-low.c (expand_parallel_call): Remove shadow variable.
37651 (expand_omp_taskreg): Likewise.
37653 2014-05-14 Ilya Tocar <ilya.tocar@intel.com>
37655 * common/config/i386/i386-common.c
37656 (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
37657 (OPTION_MASK_ISA_XSAVES_SET): Ditto.
37658 (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
37659 (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
37660 (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
37661 (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
37662 (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
37663 * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
37664 xsavecintrin.h, xsavesintrin.h.
37665 (x86_64-*-*): Ditto.
37666 * config/i386/clflushoptintrin.h: New.
37667 * config/i386/xsavecintrin.h: Ditto.
37668 * config/i386/xsavesintrin.h: Ditto.
37669 * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
37670 (bit_XSAVES): Ditto.
37671 (bit_XSAVES): Ditto.
37672 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
37673 -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
37675 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
37676 OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
37677 OPTION_MASK_ISA_XSAVES.
37678 * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
37679 -mxsavec, -mxsaves.
37680 (PTA_CLFLUSHOPT) Define.
37681 (PTA_XSAVEC): Ditto.
37682 (PTA_XSAVES): Ditto.
37683 (ix86_option_override_internal): Handle new options.
37684 (ix86_valid_target_attribute_inner_p): Ditto.
37685 (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
37686 IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
37687 IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
37688 (bdesc_special_args): Add __builtin_ia32_xsaves,
37689 __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
37690 __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
37691 (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
37692 (ix86_expand_builtin): Handle new builtins.
37693 * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
37694 (TARGET_CLFLUSHOPT_P): Ditto.
37695 (TARGET_XSAVEC): Ditto.
37696 (TARGET_XSAVEC_P): Ditto.
37697 (TARGET_XSAVES): Ditto.
37698 (TARGET_XSAVES_P): Ditto.
37699 * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
37700 (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
37701 (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
37703 (ANY_XRSTOR64): Ditto.
37705 (xrstor): Change into <xrstor>.
37706 (xrstor_rex64): Change into <xrstor>_rex64.
37707 (xrstor64): Change into <xrstor>64
37709 * config/i386/i386.opt (mclflushopt): New.
37712 * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
37714 * doc/invoke.texi: Document new options.
37716 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
37718 PR rtl-optimization/60866
37719 * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
37720 Default it to -1. Pass it down to init_simplejump_data.
37721 (init_simplejump_data): New parameter old_seqno. Pass it down
37722 to get_seqno_for_a_jump.
37723 (get_seqno_for_a_jump): New parameter old_seqno. Use it for
37724 initializing new jump seqno as a last resort. Add comment.
37725 (sel_redirect_edge_and_branch): Save old seqno of the conditional
37726 jump and pass it down to sel_init_new_insn.
37727 (sel_redirect_edge_and_branch_force): Likewise.
37729 2014-05-14 Georg-Johann Lay <avr@gjlay.de>
37731 * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
37732 shifted values to avoid build warning.
37734 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
37736 * cfgcleanup.c (try_forward_edges): Use location_t for locations.
37737 * cfgrtl.c (rtl_merge_blocks): Fix comment.
37738 (cfg_layout_merge_blocks): Likewise.
37739 * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
37741 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
37743 PR rtl-optimization/60901
37744 * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
37745 bb predecessor belongs to the same scheduling region. Adjust comment.
37747 2014-05-13 Peter Bergner <bergner@vnet.ibm.com>
37749 * doc/sourcebuild.texi: (dfp_hw): Document.
37750 (p8vector_hw): Likewise.
37751 (powerpc_eabi_ok): Likewise.
37752 (powerpc_elfv2): Likewise.
37753 (powerpc_htm_ok): Likewise.
37754 (ppc_recip_hw): Likewise.
37755 (vsx_hw): Likewise.
37757 2014-05-13 Cary Coutant <ccoutant@google.com>
37759 * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
37761 2014-05-13 David Malcolm <dmalcolm@redhat.com>
37763 * gengtype-parse.c (require3): Eliminate in favor of...
37765 (require_template_declaration): Update to support optional single *
37768 * gengtype.c (get_ultimate_base_class): Add a non-const overload.
37769 (create_user_defined_type): Handle a single level of explicit
37770 pointerness within template arguments.
37771 (struct write_types_data): Add field "kind".
37772 (filter_type_name): Handle "*" character.
37773 (write_user_func_for_structure_ptr): Require a write_types_data
37774 rather than just a prefix string, so that we can look up the kind
37775 of the wtd and use it as an index into wrote_user_func_for_ptr,
37776 ensuring that such functions are written at most once. Support
37777 subclasses by invoking the marking function of the ultimate base class.
37778 (write_user_func_for_structure_body): Require a write_types_data
37779 rather than just a prefix string, so that we can pass this to
37780 write_user_func_for_structure_ptr.
37781 (write_func_for_structure): Likewise.
37782 (ggc_wtd): Add initializer of new "kind" field.
37783 (pch_wtd): Likewise.
37785 * gengtype.h (enum write_types_kinds): New.
37786 (struct type): Add field wrote_user_func_for_ptr to the "s"
37789 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
37791 * fold-const.c (optimize_bit_field_compare): Use wi:: operations
37792 instead of const_binop.
37793 (fold_binary_loc): Likewise.
37795 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
37797 * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
37798 calculation to match get_ref_base_and_extent.
37800 2014-05-13 Catherine Moore <clm@codesourcery.com>
37801 Sandra Loosemore <sandra@codesourcery.com>
37803 * configure.ac: Fix assembly for explicit JALR relocation check.
37804 * configure: Regenerate.
37806 2014-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37808 * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
37809 (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
37810 Remove associated type declarations and initialisations.
37811 (arm_expand_neon_builtin): Likewise.
37812 (neon_emit_pair_result_insn): Delete.
37813 * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
37814 * config/arm/neon.md (neon_vtrn<mode>): Delete.
37815 (neon_vzip<mode>): Likewise.
37816 (neon_vuzp<mode>): Likewise.
37818 2014-05-13 Richard Biener <rguenther@suse.de>
37821 * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
37822 it needs revisiting whether the call still may be tail-called.
37824 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
37826 * rtl.def (SYMBOL_REF): Remove middle "0" field.
37827 * rtl.h (block_symbol): Reduce number of fields to 2.
37828 (rtx_def): Add u2.symbol_ref_flags.
37829 (SYMBOL_REF_FLAGS): Use it.
37830 (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
37831 (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
37832 * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
37833 Lower index of SYMBOL_REF_DATA.
37834 * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
37835 Print SYMBOL_REF_FLAGS at the same time.
37836 * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
37838 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
37840 * rtl.def (VAR_LOCATION): Remove "i" field.
37841 * rtl.h (rtx_def): Add u2.var_location_status.
37842 (PAT_VAR_LOCATION_STATUS): Use it.
37843 (gen_rtx_VAR_LOCATION): Declare.
37844 * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
37845 * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
37846 * var-tracking.c (emit_note_insn_var_location): Remove casts.
37848 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
37850 * rtl.def (scratch): Fix outdated comment and remove "0" field.
37851 * gengtype.c (adjust_field_rtx_def): Update accordingly.
37853 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
37855 * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
37856 (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
37857 * rtl.h (rtx_def): Add insn_uid to u2 field.
37858 (RTX_FLAG_CHECK8): Delete in favor of...
37859 (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
37860 (INSN_DELETED_P): Update accordingly.
37861 (INSN_UID): Use u2.insn_uid.
37862 (INSN_CHAIN_CODE_P): Define.
37863 (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
37864 (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
37865 (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
37866 (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
37867 (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
37868 indices accordingly.
37869 * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
37870 Update indices for insn-chain rtxes.
37871 * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
37872 (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
37873 * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
37874 * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
37875 * combine.c (try_combine): Likewise.
37876 * ira.c (setup_prohibited_mode_move_regs): Likewise.
37878 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
37880 * rtl.def (REG): Remove middle field.
37881 * rtl.h (rtx_def): Add orignal_regno to u2.
37882 (ORIGINAL_REGNO): Use it instead of field 1.
37883 (REG_ATTRS): Lower field index accordingly.
37884 * gengtype.c (adjust_field_rtx_def): Remove handling of
37885 ORIGINAL_REGNO. Move REG_ATTRS index down.
37886 * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
37887 code that prints the REGNO.
37889 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
37891 * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
37894 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
37896 * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
37898 2014-05-13 Bin Cheng <bin.cheng@arm.com>
37900 * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
37901 (alloc_iv): Lower base expressions containing ADDR_EXPR.
37903 2014-05-13 Ian Bolton <ian.bolton@arm.com>
37905 * config/aarch64/aarch64-protos.h
37906 (aarch64_hard_regno_caller_save_mode): New prototype.
37907 * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
37909 * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
37911 2014-05-13 Christian Bruel <christian.bruel@st.com>
37913 * target.def (mode_switching): New hook vector.
37914 (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
37915 (mode_exit, modepriority_to_mode): Likewise.
37916 * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
37917 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
37918 * target.h: Include tm.h and hard-reg-set.h.
37919 * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
37920 (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
37921 * doc/tm.texi Regenerate.
37922 * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
37923 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
37924 * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
37925 (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
37926 * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
37927 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
37928 * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
37929 (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
37930 * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
37931 (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
37932 (ix86_emit_mode_set): Hookify.
37933 * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
37935 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
37936 * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
37937 (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
37938 (epiphany_mode_priority_to_mode): Remove declaration.
37939 * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
37940 (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
37941 (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
37943 (epiphany_mode_priority_to_mode): Change priority type. Hookify.
37944 (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
37945 (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
37947 2014-05-13 Jakub Jelinek <jakub@redhat.com>
37950 * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
37951 is const0_rtx, return immediately. Don't test count == 0 when
37954 2014-05-13 Zhenqiang Chen <zhenqiang.chen@linaro.org>
37956 * Makefile.in: add shrink-wrap.o.
37957 * config/i386/i386.c: include "shrink-wrap.h"
37958 * function.c: Likewise.
37959 (requires_stack_frame_p, next_block_for_reg,
37960 move_insn_for_shrink_wrap, prepare_shrink_wrap,
37961 dup_block_and_redirect): Move to shrink-wrap.c
37962 (thread_prologue_and_epilogue_insns): Extract three code segments
37963 as functions in shrink-wrap.c
37964 * function.h: Move #ifdef HAVE_simple_return ... #endif block to
37966 * shrink-wrap.c: New file.
37967 * shrink-wrap.h: New file.
37969 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
37971 * doc/extend.texi: Reflect current numbers of pragmas. Remove
37972 reference to Solaris.
37974 2014-05-12 Mike Stump <mikestump@comcast.net>
37977 * genattrtab.c (filename): Add.
37978 (convert_set_attr_alternative): Improve error message.
37979 (check_defs): Restore read_md_filename for error messages.
37980 (gen_insn): Save filename.
37982 2014-05-12 Dimitris Papavasiliou <dpapavas@gmail.com>
37984 * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
37985 -fno-local-ivars and -fivar-visibility.
37986 * c-family/c.opt: Make -Wshadow also implicitly enable
37989 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
37991 * doc/tm.texi: Remove reference to deleted macro.
37992 * doc/tm.texi.in: Likewise.
37994 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
37997 * config/avr/avr.c (avr_out_store_psi): Use correct constant
38000 2014-05-12 Georg-Johann Lay <avr@gjlay.de>
38003 * config/arm/arm.h (License): Add GCC Runtime Library Exception.
38004 * config/arm/aout.h (License): Same.
38005 * config/arm/bpabi.h (License): Same.
38006 * config/arm/elf.h (License): Same.
38007 * config/arm/linux-elf.h (License): Same.
38008 * config/arm/linux-gas.h (License): Same.
38009 * config/arm/netbsd-elf.h (License): Same.
38010 * config/arm/uclinux-eabi.h (License): Same.
38011 * config/arm/uclinux-elf.h (License): Same.
38012 * config/arm/vxworks.h (License): Same.
38014 2014-05-11 Jakub Jelinek <jakub@redhat.com>
38016 * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
38017 * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
38018 number of operands to 3.
38019 (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
38020 * tree-nested.c (convert_nonlocal_omp_clauses,
38021 convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
38022 * gimplify.c (gimplify_scan_omp_clauses): Handle
38023 OMP_CLAUSE_LINEAR_STMT.
38024 * omp-low.c (lower_rec_input_clauses): Fix typo.
38025 (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
38026 cast between Fortran boolean_type_node and C _Bool if
38029 2014-05-11 Richard Sandiford <rdsandiford@googlemail.com>
38031 PR tree-optimization/61136
38032 * wide-int.h (multiple_of_p): Define a version that doesn't return
38034 * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
38035 integer_zerop/const_binop pair.
38036 (multiple_of_p): Likewise, converting both operands to widest_int
38039 2014-05-09 Teresa Johnson <tejohnson@google.com>
38041 * cgraphunit.c (analyze_functions): Use correct dump file.
38043 2014-05-09 Florian Weimer <fweimer@redhat.com>
38045 * cfgexpand.c (stack_protect_decl_p): New function, extracted from
38047 (stack_protect_return_slot_p): New function.
38048 (expand_used_vars): Call stack_protect_decl_p and
38049 stack_protect_return_slot_p for -fstack-protector-strong.
38051 2014-05-09 David Wohlferd <LimeGreenSocks@yahoo.com>
38052 Andrew Haley <aph@redhat.com>
38053 Richard Sandiford <rdsandiford@googlemail.com>
38055 * doc/extend.texi: Rewrite inline asm page / re-org asm-related
38058 2014-05-09 Kenneth Zadeck <zadeck@naturalbridge.com>
38060 PR middle-end/61111
38061 * fold-const.c (fold_binary_loc): Changed width of mask.
38063 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
38065 * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
38066 unsigned int initializers for regno_in, regno_out.
38068 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
38071 * config/avr/avr.md (cc): Add new attribute set_vzn.
38072 (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
38073 Set cc insn attribute to set_vzn instead of set_zn for alternatives
38074 with INC, DEC or NEG.
38075 * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
38076 (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
38077 INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
38079 2014-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
38082 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
38084 * wide-int.cc (UTItype): Define.
38085 (UDWtype): Define for appropriate W_TYPE_SIZE.
38087 2014-05-09 Richard Biener <rguenther@suse.de>
38089 * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
38090 * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
38091 (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
38092 (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
38093 ssa_propagate): Adjust.
38095 2014-05-08 Jeff Law <law@redhat.com>
38097 PR tree-optimization/61009
38098 * tree-ssa-threadedge.c (thread_through_normal_block): Return a
38099 tri-state rather than a boolean. When a block is too big to
38100 thread through, inform caller via negative return value.
38101 (thread_across_edge): If a block was too big for normal threading,
38102 then it's too big for a joiner too, so remove temporary equivalences
38103 and return immediately.
38105 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
38106 Matthias Klose <doko@ubuntu.com>
38109 * optc-gen.awk: Fix option handling for -Wunused-parameter.
38111 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
38114 * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
38116 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
38119 * config/alpha/alpha.c: Include gimple-iterator.h.
38120 (alpha_gimple_fold_builtin): New function. Move
38121 ALPHA_BUILTIN_UMULH folding from ...
38122 (alpha_fold_builtin): ... here.
38123 (TARGET_GIMPLE_FOLD_BUILTIN): New define.
38125 2014-05-08 Wei Mi <wmi@google.com>
38128 * config/i386/i386.c (ix86_compute_frame_layout): Update
38129 preferred_stack_boundary for call, expanded from tls descriptor.
38130 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
38131 to depend on SP register.
38132 (*tls_local_dynamic_base_32_gnu): Ditto.
38133 (*tls_local_dynamic_32_once): Ditto.
38134 (tls_global_dynamic_64_<mode>): Set
38135 ix86_tls_descriptor_calls_expanded_in_cfun.
38136 (tls_local_dynamic_base_64_<mode>): Ditto.
38137 (tls_global_dynamic_32): Set
38138 ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
38139 to depend on SP register.
38140 (tls_local_dynamic_base_32): Ditto.
38142 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
38144 * config/arm/arm_neon.h: Update comment.
38145 * config/arm/neon-docgen.ml: Delete.
38146 * config/arm/neon-gen.ml: Delete.
38147 * doc/arm-neon-intrinsics.texi: Update comment.
38149 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
38151 * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
38153 (vand, vorr, veor, vorn, vbic): Remove.
38154 * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
38156 (neon_vsub_unspec): Likewise.
38157 (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
38159 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
38161 * config/arm/arm_neon.h (vadd_s8): GNU C implementation
38162 (vadd_s16): Likewise.
38163 (vadd_s32): Likewise.
38164 (vadd_f32): Likewise.
38165 (vadd_u8): Likewise.
38166 (vadd_u16): Likewise.
38167 (vadd_u32): Likewise.
38168 (vadd_s64): Likewise.
38169 (vadd_u64): Likewise.
38170 (vaddq_s8): Likewise.
38171 (vaddq_s16): Likewise.
38172 (vaddq_s32): Likewise.
38173 (vaddq_s64): Likewise.
38174 (vaddq_f32): Likewise.
38175 (vaddq_u8): Likewise.
38176 (vaddq_u16): Likewise.
38177 (vaddq_u32): Likewise.
38178 (vaddq_u64): Likewise.
38179 (vmul_s8): Likewise.
38180 (vmul_s16): Likewise.
38181 (vmul_s32): Likewise.
38182 (vmul_f32): Likewise.
38183 (vmul_u8): Likewise.
38184 (vmul_u16): Likewise.
38185 (vmul_u32): Likewise.
38186 (vmul_p8): Likewise.
38187 (vmulq_s8): Likewise.
38188 (vmulq_s16): Likewise.
38189 (vmulq_s32): Likewise.
38190 (vmulq_f32): Likewise.
38191 (vmulq_u8): Likewise.
38192 (vmulq_u16): Likewise.
38193 (vmulq_u32): Likewise.
38194 (vsub_s8): Likewise.
38195 (vsub_s16): Likewise.
38196 (vsub_s32): Likewise.
38197 (vsub_f32): Likewise.
38198 (vsub_u8): Likewise.
38199 (vsub_u16): Likewise.
38200 (vsub_u32): Likewise.
38201 (vsub_s64): Likewise.
38202 (vsub_u64): Likewise.
38203 (vsubq_s8): Likewise.
38204 (vsubq_s16): Likewise.
38205 (vsubq_s32): Likewise.
38206 (vsubq_s64): Likewise.
38207 (vsubq_f32): Likewise.
38208 (vsubq_u8): Likewise.
38209 (vsubq_u16): Likewise.
38210 (vsubq_u32): Likewise.
38211 (vsubq_u64): Likewise.
38212 (vand_s8): Likewise.
38213 (vand_s16): Likewise.
38214 (vand_s32): Likewise.
38215 (vand_u8): Likewise.
38216 (vand_u16): Likewise.
38217 (vand_u32): Likewise.
38218 (vand_s64): Likewise.
38219 (vand_u64): Likewise.
38220 (vandq_s8): Likewise.
38221 (vandq_s16): Likewise.
38222 (vandq_s32): Likewise.
38223 (vandq_s64): Likewise.
38224 (vandq_u8): Likewise.
38225 (vandq_u16): Likewise.
38226 (vandq_u32): Likewise.
38227 (vandq_u64): Likewise.
38228 (vorr_s8): Likewise.
38229 (vorr_s16): Likewise.
38230 (vorr_s32): Likewise.
38231 (vorr_u8): Likewise.
38232 (vorr_u16): Likewise.
38233 (vorr_u32): Likewise.
38234 (vorr_s64): Likewise.
38235 (vorr_u64): Likewise.
38236 (vorrq_s8): Likewise.
38237 (vorrq_s16): Likewise.
38238 (vorrq_s32): Likewise.
38239 (vorrq_s64): Likewise.
38240 (vorrq_u8): Likewise.
38241 (vorrq_u16): Likewise.
38242 (vorrq_u32): Likewise.
38243 (vorrq_u64): Likewise.
38244 (veor_s8): Likewise.
38245 (veor_s16): Likewise.
38246 (veor_s32): Likewise.
38247 (veor_u8): Likewise.
38248 (veor_u16): Likewise.
38249 (veor_u32): Likewise.
38250 (veor_s64): Likewise.
38251 (veor_u64): Likewise.
38252 (veorq_s8): Likewise.
38253 (veorq_s16): Likewise.
38254 (veorq_s32): Likewise.
38255 (veorq_s64): Likewise.
38256 (veorq_u8): Likewise.
38257 (veorq_u16): Likewise.
38258 (veorq_u32): Likewise.
38259 (veorq_u64): Likewise.
38260 (vbic_s8): Likewise.
38261 (vbic_s16): Likewise.
38262 (vbic_s32): Likewise.
38263 (vbic_u8): Likewise.
38264 (vbic_u16): Likewise.
38265 (vbic_u32): Likewise.
38266 (vbic_s64): Likewise.
38267 (vbic_u64): Likewise.
38268 (vbicq_s8): Likewise.
38269 (vbicq_s16): Likewise.
38270 (vbicq_s32): Likewise.
38271 (vbicq_s64): Likewise.
38272 (vbicq_u8): Likewise.
38273 (vbicq_u16): Likewise.
38274 (vbicq_u32): Likewise.
38275 (vbicq_u64): Likewise.
38276 (vorn_s8): Likewise.
38277 (vorn_s16): Likewise.
38278 (vorn_s32): Likewise.
38279 (vorn_u8): Likewise.
38280 (vorn_u16): Likewise.
38281 (vorn_u32): Likewise.
38282 (vorn_s64): Likewise.
38283 (vorn_u64): Likewise.
38284 (vornq_s8): Likewise.
38285 (vornq_s16): Likewise.
38286 (vornq_s32): Likewise.
38287 (vornq_s64): Likewise.
38288 (vornq_u8): Likewise.
38289 (vornq_u16): Likewise.
38290 (vornq_u32): Likewise.
38291 (vornq_u64): Likewise.
38293 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
38295 * wide-int.cc (UTItype): Define.
38296 (UDWtype): Define for appropriate W_TYPE_SIZE.
38298 2014-05-08 Marc Glisse <marc.glisse@inria.fr>
38300 PR tree-optimization/59100
38301 * tree-ssa-phiopt.c: Include tree-inline.h.
38302 (neutral_element_p, absorbing_element_p): New functions.
38303 (value_replacement): Handle conditional binary operations with a
38304 neutral or absorbing element.
38306 2014-05-08 Richard Biener <rguenther@suse.de>
38308 * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
38309 folding the expression.
38310 (valueize_expr): Remove.
38311 (visit_reference_op_load): Do not valueize the result of
38313 (simplify_binary_expression): Likewise.
38314 (simplify_unary_expression): Likewise.
38316 2014-05-08 Richard Biener <rguenther@suse.de>
38318 * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
38319 looking at TYPE_ARG_TYPES.
38321 2014-05-08 Richard Biener <rguenther@suse.de>
38323 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
38324 pointer propagation special-case.
38326 2014-05-08 Bin Cheng <bin.cheng@arm.com>
38328 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
38329 core part of address expressions.
38331 2014-05-08 Alan Modra <amodra@gmail.com>
38334 * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
38335 loads and stores when -mno-strict-align at any alignment.
38336 (expand_block_clear): Similarly. Also correct calculation of
38339 2014-05-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
38341 PR middle-end/39246
38342 * tree-complex.c (expand_complex_move): Keep line info when expanding
38344 * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
38345 of complex expression. Use new argument to display correct location
38346 for values coming from phi statement.
38347 (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
38348 (warn_uninitialized_phi): Pass location of phi argument to
38350 * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
38351 COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
38353 2014-05-07 Segher Boessenkool <segher@kernel.crashing.org>
38355 * config/rs6000/predicates.md (indexed_address_mem): New.
38356 * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
38357 load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
38358 fpstore_ux, fpstore_u.
38359 (sign_extend, indexed, update): New.
38360 (cell_micro): Adjust.
38361 (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
38362 *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
38363 *movsi_internal1, *movsi_internal1_single, *movhi_internal,
38364 *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
38365 *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
38366 *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
38367 *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
38368 *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
38369 *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
38370 *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
38371 *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
38372 *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
38373 *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
38374 *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
38375 *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
38377 * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
38378 * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
38379 *vsx_extract_<mode>_store): Adjust.
38380 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
38381 is_cracked_insn, insn_must_be_first_in_group,
38382 insn_must_be_last_in_group): Adjust.
38384 * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
38386 * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
38387 ppc440-fpstore): Adjust.
38388 * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
38389 ppc476-fpstore): Adjust.
38390 * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
38391 ppc601-fpstore): Adjust.
38392 * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
38394 * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
38396 * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
38397 ppc7450-fpstore): Adjust.
38398 * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
38399 * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
38400 * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
38402 * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
38403 cell-fpload, cell-fpload-update, cell-store, cell-store-update,
38404 cell-fpstore, cell-fpstore-update): Adjust.
38405 * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
38406 ppce300c3_store, ppce300c3_fpstore): Adjust.
38407 * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
38408 e500mc_fpstore): Adjust.
38409 * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
38410 e500mc64_store, e500mc64_fpstore): Adjust.
38411 * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
38412 e5500_fpstore): Adjust.
38413 * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
38414 e6500_fpstore): Adjust.
38415 * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
38417 * config/rs6000/power4.md (power4-load, power4-load-ext,
38418 power4-load-ext-update, power4-load-ext-update-indexed,
38419 power4-load-update-indexed, power4-load-update, power4-fpload,
38420 power4-fpload-update, power4-store, power4-store-update,
38421 power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
38423 * config/rs6000/power5.md (power5-load, power5-load-ext,
38424 power5-load-ext-update, power5-load-ext-update-indexed,
38425 power5-load-update-indexed, power5-load-update, power5-fpload,
38426 power5-fpload-update, power5-store, power5-store-update,
38427 power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
38429 * config/rs6000/power6.md (power6-load, power6-load-ext,
38430 power6-load-update, power6-load-update-indexed,
38431 power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
38432 power6-fpload-update, power6-store, power6-store-update,
38433 power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
38435 * config/rs6000/power7.md (power7-load, power7-load-ext,
38436 power7-load-update, power7-load-update-indexed,
38437 power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
38438 power7-fpload-update, power7-store, power7-store-update,
38439 power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
38441 * config/rs6000/power8.md (power8-load, power8-load-update,
38442 power8-load-ext, power8-load-ext-update, power8-fpload,
38443 power8-fpload-update, power8-store, power8-store-update-indexed,
38444 power8-fpstore, power8-fpstore-update): Adjust.
38445 * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
38447 * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
38448 titan_lsu_store, titan_lsu_fpstore): Adjust.
38449 * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
38451 2014-05-07 Oleg Endo <olegendo@gcc.gnu.org>
38454 * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
38455 unrolled byte insns. Emit address increments after move insns.
38457 2014-05-07 David Malcolm <dmalcolm@redhat.com>
38459 * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
38460 const_gimple, rather than a gimple.
38461 (gimple_call_builtin_p): Likewise, for the three variants.
38463 * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
38464 (gimple_call_builtin_p): Likewise, for the three variants.
38466 2014-05-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
38468 PR tree-optimization/61095
38469 * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
38471 2014-05-07 Richard Biener <rguenther@suse.de>
38473 PR tree-optimization/61034
38474 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
38475 (maybe_skip_until): Use translate to take into account
38476 lattices when trying to do disambiguations.
38477 (get_continuation_for_phi_1): Likewise.
38478 (get_continuation_for_phi): Adjust for added translate arguments.
38479 (walk_non_aliased_vuses): Likewise.
38480 * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
38481 (walk_non_aliased_vuses): Likewise.
38482 (call_may_clobber_ref_p_1): Declare.
38483 * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
38484 calls. Stop early if we are only supposed to disambiguate.
38485 * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
38487 2014-05-07 Joern Rennecke <joern.rennecke@embecosm.com>
38489 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
38490 Emit an error when the function has arguments.
38492 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
38494 * cfgloop.h (unswitch_loops): Remove.
38495 * doc/passes.texi: Remove references to loop-unswitch.c
38496 * timevar.def (TV_LOOP_UNSWITCH): Remove.
38498 2014-05-07 Evgeny Stupachenko <evstupac@gmail.com>
38500 * tree-vect-data-refs.c (vect_grouped_load_supported): New
38501 check for loads group of length 3.
38502 (vect_permute_load_chain): New permutations for loads group of
38504 * tree-vect-stmts.c (vect_model_load_cost): Change cost
38505 of vec_perm_shuffle for the new permutations.
38507 2014-05-07 Alan Lawrence <alan.lawrence@arm.com>
38509 * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
38510 vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
38511 vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
38512 vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
38513 vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
38514 vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
38515 vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
38516 vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
38518 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
38520 * loop-unswitch.c: Delete.
38522 2014-05-07 Richard Biener <rguenther@suse.de>
38524 * config.gcc: Always set need_64bit_hwint to yes.
38526 2014-05-07 Chung-Ju Wu <jasonwucj@gmail.com>
38528 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
38529 of using optimize_size.
38531 2014-05-06 Mike Stump <mikestump@comcast.net>
38533 * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
38535 2014-05-06 Joseph Myers <joseph@codesourcery.com>
38537 * config/i386/sse.md (*mov<mode>_internal)
38538 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
38539 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
38540 (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
38541 (*<code><mode>3, *andnot<mode>3<mask_name>)
38542 (<mask_codefor><code><mode>3<mask_name>): Only consider
38543 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
38545 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
38548 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
38550 * lra-constraints.c (valid_address_p): Move earlier in file.
38551 Add a constraint argument to the address_info version.
38552 (satisfies_memory_constraint_p): New function.
38553 (satisfies_address_constraint_p): Likewise.
38554 (process_alt_operands, curr_insn_transform): Use them.
38555 (process_address): Pass the constraint to valid_address_p when
38556 checking address operands.
38558 2014-05-06 Richard Sandiford <r.sandiford@uk.ibm.com>
38560 * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
38561 to their respective blocks. Fix inadvertent use of "node".
38563 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
38565 * emit-rtl.c (init_derived_machine_modes): New functionm, split
38567 (init_emit_once): ...here.
38568 * rtl.h (init_derived_machine_modes): Declare.
38569 * toplev.c (do_compile): Call it even if no_backend.
38571 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
38572 Mike Stump <mikestump@comcast.net>
38573 Richard Sandiford <rdsandiford@googlemail.com>
38574 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
38576 * alias.c (ao_ref_from_mem): Use wide-int interfaces.
38577 (rtx_equal_for_memref_p): Update comment.
38578 (adjust_offset_for_component_ref): Use wide-int interfaces.
38579 * builtins.c (get_object_alignment_2): Likewise.
38580 (c_readstr): Likewise.
38581 (target_char_cast): Add comment.
38582 (determine_block_size): Use wide-int interfaces.
38583 (expand_builtin_signbit): Likewise.
38584 (fold_builtin_int_roundingfn): Likewise.
38585 (fold_builtin_bitop): Likewise.
38586 (fold_builtin_bswap): Likewise.
38587 (fold_builtin_logarithm): Use signop.
38588 (fold_builtin_pow): Likewise.
38589 (fold_builtin_memory_op): Use wide-int interfaces.
38590 (fold_builtin_object_size): Likewise.
38591 * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
38592 nb_iterations_estimate.
38593 (record_niter_bound): Use wide-int interfaces.
38594 (get_estimated_loop_iterations_int): Likewise.
38595 (get_estimated_loop_iterations): Likewise.
38596 (get_max_loop_iterations): Likewise.
38597 * cfgloop.h: Include wide-int.h.
38598 (struct nb_iter_bound): Change bound to widest_int.
38599 (struct loop): Change nb_iterations_upper_bound and
38600 nb_iterations_estimate to widest_int.
38601 (record_niter_bound): Switch to use widest_int.
38602 (get_estimated_loop_iterations): Likewise.
38603 (get_max_loop_iterations): Likewise.
38604 (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
38605 update for wide-int.
38606 * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
38607 * combine.c (try_combine): Likewise.
38608 (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
38609 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
38611 (aarch64_float_const_representable_p): Likewise.
38612 * config/arc/arc.c: Include wide-int.h.
38613 (arc_can_use_doloop_p): Use wide-int interfaces.
38614 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
38615 (vfp3_const_double_index): Likewise.
38616 * config/avr/avr.c (avr_out_round): Likewise.
38617 (avr_fold_builtin): Likewise.
38618 * config/bfin/bfin.c (bfin_local_alignment): Likewise.
38619 (bfin_can_use_doloop_p): Likewise.
38620 * config/darwin.c (darwin_mergeable_constant_section): Likewise.
38621 (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
38622 * config/i386/i386.c: Include wide-int.h.
38623 (ix86_data_alignment): Use wide-int interfaces.
38624 (ix86_local_alignment): Likewise.
38625 (ix86_emit_swsqrtsf): Update real_from_integer.
38626 * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
38627 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
38628 * config/rs6000/predicates.md (any_operand): Add const_wide_int.
38629 (zero_constant): Likewise.
38630 (input_operand): Likewise.
38631 (splat_input_operand): Likewise.
38632 (non_logical_cint_operand): Change const_double to const_wide_int.
38633 * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
38634 (easy_altivec_constant): Remove comment.
38635 (paired_expand_vector_init): Use CONSTANT_P.
38636 (rs6000_legitimize_address): Handle CONST_WIDE_INT.
38637 (rs6000_emit_move): Update checks.
38638 (rs6000_aggregate_candidate): Use wide-int interfaces.
38639 (rs6000_expand_ternop_builtin): Likewise.
38640 (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
38641 (rs6000_assemble_integer): Likewise.
38642 (rs6000_hash_constant): Likewise.
38643 (output_toc): Likewise.
38644 (rs6000_rtx_costs): Likewise.
38645 (rs6000_emit_swrsqrt); Update call to real_from_integer.
38646 * config/rs6000/rs6000-c.c: Include wide-int.h.
38647 (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
38648 * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
38649 * config/rs6000/rs6000.md: Use const_scalar_int_operand.
38650 Handle CONST_WIDE_INT.
38651 * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
38652 Use tree_fits_uhwi_p.
38653 * config/sparc/sparc.c: Include wide-int.h.
38654 (sparc_fold_builtin): Use wide-int interfaces.
38655 * config/vax/vax.c: Include wide-int.h.
38656 (vax_float_literal): Use real_from_integer.
38657 * coretypes.h (struct hwivec_def): New.
38659 (const_hwivec): New.
38660 * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
38661 (equiv_constant): Handle CONST_WIDE_INT.
38662 * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
38663 (cselib_hash_rtx): Handle CONST_WIDE_INT.
38664 * dbxout.c (stabstr_U): Use wide-int interfaces.
38665 (dbxout_type): Update to use cst_fits_shwi_p.
38666 * defaults.h (LOG2_BITS_PER_UNIT): Define.
38667 (TARGET_SUPPORTS_WIDE_INT): Add default.
38668 * dfp.c: Include wide-int.h.
38669 (decimal_real_to_integer2): Use wide-int interfaces and rename to
38670 decimal_real_to_integer.
38671 * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
38672 decimal_real_to_integer.
38673 * doc/generic.texi (Constant expressions): Update for wide_int.
38674 * doc/rtl.texi (const_double): Likewise.
38675 (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
38676 (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
38677 * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
38678 (REAL_VALUE_FROM_INT): Remove.
38679 (TARGET_SUPPORTS_WIDE_INT): New.
38680 * doc/tm.texi: Regenerate.
38681 * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
38682 * double-int.h: Include wide-int.h.
38683 (struct wi::int_traits): New.
38684 * dwarf2out.c (get_full_len): New.
38685 (dw_val_equal_p): Add case dw_val_class_wide_int.
38686 (size_of_loc_descr): Likewise.
38687 (output_loc_operands): Likewise.
38688 (insert_double): Remove.
38689 (insert_wide_int): New.
38690 (add_AT_wide): New.
38691 (print_die): Add case dw_val_class_wide_int.
38692 (attr_checksum): Likewise.
38693 (attr_checksum_ordered): Likewise.
38694 (same_dw_val_p): Likewise.
38695 (size_of_die): Likewise.
38696 (value_format): Likewise.
38697 (output_die): Likewise.
38698 (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
38700 (clz_loc_descriptor): Use wide-int interfaces.
38701 (mem_loc_descriptor): Likewise. Handle CONST_WIDE_INT.
38702 (loc_descriptor): Use wide-int interfaces. Handle CONST_WIDE_INT.
38703 (round_up_to_align): Use wide-int interfaces.
38704 (field_byte_offset): Likewise.
38705 (insert_double): Rename to insert_wide_int. Use wide-int interfaces.
38706 (add_const_value_attribute): Handle CONST_WIDE_INT. Update
38707 CONST_DOUBLE handling. Use wide-int interfaces.
38708 (add_bound_info): Use tree_fits_uhwi_p. Use wide-int interfaces.
38709 (gen_enumeration_type_die): Use add_AT_wide.
38710 (hash_loc_operands): Add case dw_val_class_wide_int.
38711 (compare_loc_operands): Likewise.
38712 * dwarf2out.h: Include wide-int.h.
38713 (wide_int_ptr): New.
38714 (enum dw_val_class): Add dw_val_class_wide_int.
38715 (struct dw_val_struct): Add val_wide.
38716 * emit-rtl.c (const_wide_int_htab): New.
38717 (const_wide_int_htab_hash): New.
38718 (const_wide_int_htab_eq): New.
38719 (lookup_const_wide_int): New.
38720 (const_double_htab_hash): Use wide-int interfaces.
38721 (const_double_htab_eq): Likewise.
38722 (rtx_to_double_int): Conditionally compile for wide-int.
38723 (immed_double_int_const): Rename to immed_wide_int_const and
38724 update for wide-int.
38725 (immed_double_const): Conditionally compile for wide-int.
38726 (init_emit_once): Use wide-int interfaces.
38727 * explow.c (plus_constant): Likewise.
38728 * expmed.c (mask_rtx): Move further up file. Use wide-int interfaces.
38729 (lshift_value): Use wide-int interfaces.
38730 (expand_mult): Likewise.
38731 (choose_multiplier): Likewise.
38732 (expand_smod_pow2): Likewise.
38733 (make_tree): Likewise.
38734 * expr.c (convert_modes): Consolidate handling of constants.
38735 Use wide-int interfaces.
38736 (emit_group_load_1): Add note.
38737 (store_expr): Update comment.
38738 (get_inner_reference): Use wide-int interfaces.
38739 (expand_constructor): Update comment.
38740 (expand_expr_real_2): Use wide-int interfaces.
38741 (expand_expr_real_1): Likewise.
38742 (reduce_to_bit_field_precision): Likewise.
38743 (const_vector_from_tree): Likewise.
38744 * final.c: Include wide-int-print.h.
38745 (output_addr_const): Handle CONST_WIDE_INT. Use CONST_DOUBLE_AS_INT_P.
38746 * fixed-value.c: Include wide-int.h.
38747 (fixed_from_string): Use wide-int interfaces.
38748 (fixed_to_decimal): Likewise.
38749 (fixed_convert_from_real): Likewise.
38750 (real_convert_from_fixed): Likewise.
38751 * fold-const.h (mem_ref_offset): Return an offset_int.
38752 (div_if_zero_remainder): Remove code parameter.
38753 * fold-const.c (div_if_zero_remainder): Remove code parameter.
38754 Use wide-int interfaces.
38755 (may_negate_without_overflow_p): Use wide-int interfaces.
38756 (negate_expr_p): Likewise.
38757 (fold_negate_expr): Likewise.
38758 (int_const_binop_1): Likewise.
38759 (const_binop): Likewise.
38760 (fold_convert_const_int_from_int): Likewise.
38761 (fold_convert_const_int_from_real): Likewise.
38762 (fold_convert_const_int_from_fixed): Likewise.
38763 (fold_convert_const_fixed_from_int): Likewise.
38764 (all_ones_mask_p): Take an unsigned size. Use wide-int interfaces.
38765 (sign_bit_p): Use wide-int interfaces.
38766 (make_range_step): Likewise.
38767 (build_range_check): Likewise. Pass an integer of the correct type
38768 instead of using integer_one_node.
38769 (range_predecessor): Pass an integer of the correct type instead
38770 of using integer_one_node.
38771 (range_successor): Likewise.
38772 (merge_ranges): Likewise.
38773 (unextend): Use wide-int interfaces.
38774 (extract_muldiv_1): Likewise.
38775 (fold_div_compare): Likewise.
38776 (fold_single_bit_test): Likewise.
38777 (fold_sign_changed_comparison): Likewise.
38778 (try_move_mult_to_index): Update calls to div_if_zero_remainder.
38779 (fold_plusminus_mult_expr): Use wide-int interfaces.
38780 (native_encode_int): Likewise.
38781 (native_interpret_int): Likewise.
38782 (fold_unary_loc): Likewise.
38783 (pointer_may_wrap_p): Likewise.
38784 (size_low_cst): Likewise.
38785 (mask_with_tz): Likewise.
38786 (fold_binary_loc): Likewise.
38787 (fold_ternary_loc): Likewise.
38788 (multiple_of_p): Likewise.
38789 (tree_call_nonnegative_warnv_p): Update calls to
38790 tree_int_cst_min_precision and real_from_integer.
38791 (fold_negate_const): Use wide-int interfaces.
38792 (fold_abs_const): Likewise.
38793 (fold_relational_const): Use tree_int_cst_lt.
38794 (round_up_loc): Use wide-int interfaces.
38795 * genemit.c (gen_exp): Add CONST_WIDE_INT case.
38796 * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
38797 * gengtype.c: Remove include of double-int.h.
38798 (do_typedef): Use wide-int interfaces.
38799 (open_base_files): Add wide-int.h.
38800 (main): Add offset_int and widest_int typedefs.
38801 * gengtype-lex.l: Handle "^".
38802 (CXX_KEYWORD): Add "static".
38803 * gengtype-parse.c (require3): New.
38804 (require_template_declaration): Handle constant template arguments
38805 and nested templates.
38806 * gengtype-state.c: Don't include "double-int.h".
38807 * genpreds.c (write_one_predicate_function): Update comment.
38808 (write_tm_constrs_h): Add check for hval and lval use in
38810 * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
38811 (add_to_sequence): Likewise.
38812 * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
38813 and const_double_operand.
38814 * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
38816 * gimple-fold.c (get_base_constructor): Likewise.
38817 (fold_array_ctor_reference): Likewise.
38818 (fold_nonarray_ctor_reference): Likewise.
38819 (fold_const_aggregate_ref_1): Likewise.
38820 (gimple_val_nonnegative_real_p): Likewise.
38821 (gimple_fold_indirect_ref): Likewise.
38822 * gimple-pretty-print.c (dump_ssaname_info): Likewise.
38823 * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
38824 (struct slsr_cand_d): Change index to be widest_int.
38825 (struct incr_info_d): Change incr to be widest_int.
38826 (alloc_cand_and_find_basis): Use wide-int interfaces.
38827 (slsr_process_phi): Likewise.
38828 (backtrace_base_for_ref): Likewise. Return a widest_int.
38829 (restructure_reference): Take a widest_int instead of a double_int.
38830 (slsr_process_ref): Use wide-int interfaces.
38831 (create_mul_ssa_cand): Likewise.
38832 (create_mul_imm_cand): Likewise.
38833 (create_add_ssa_cand): Likewise.
38834 (create_add_imm_cand): Take a widest_int instead of a double_int.
38835 (slsr_process_add): Use wide-int interfaces.
38836 (slsr_process_cast): Likewise.
38837 (slsr_process_copy): Likewise.
38838 (dump_candidate): Likewise.
38839 (dump_incr_vec): Likewise.
38840 (replace_ref): Likewise.
38841 (cand_increment): Likewise. Return a widest_int.
38842 (cand_abs_increment): Likewise.
38843 (replace_mult_candidate): Take a widest_int instead of a double_int.
38844 (replace_unconditional_candidate): Use wide-int interfaces.
38845 (incr_vec_index): Take a widest_int instead of a double_int.
38846 (create_add_on_incoming_edge): Likewise.
38847 (create_phi_basis): Use wide-int interfaces.
38848 (replace_conditional_candidate): Likewise.
38849 (record_increment): Take a widest_int instead of a double_int.
38850 (record_phi_increments): Use wide-int interfaces.
38851 (phi_incr_cost): Take a widest_int instead of a double_int.
38852 (lowest_cost_path): Likewise.
38853 (total_savings): Likewise.
38854 (analyze_increments): Use wide-int interfaces.
38855 (ncd_with_phi): Take a widest_int instead of a double_int.
38856 (ncd_of_cand_and_phis): Likewise.
38857 (nearest_common_dominator_for_cands): Likewise.
38858 (insert_initializers): Use wide-int interfaces.
38859 (all_phi_incrs_profitable): Likewise.
38860 (replace_one_candidate): Likewise.
38861 (replace_profitable_candidates): Likewise.
38862 * godump.c: Include wide-int-print.h.
38863 (go_output_typedef): Use wide-int interfaces.
38864 * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
38865 * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
38866 (build_loop_iteration_domains): Likewise.
38867 * hooks.h: Include wide-int.h rather than double-int.h.
38868 (hook_bool_dint_dint_uint_bool_true): Delete.
38869 (hook_bool_wint_wint_uint_bool_true): Declare.
38870 * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
38871 (hook_bool_wint_wint_uint_bool_true): New.
38872 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
38874 (ubsan_expand_si_overflow_mul_check): Likewise.
38875 * ipa-devirt.c (get_polymorphic_call_info): Likewise.
38876 * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
38877 (get_ancestor_addr_info): Likewise.
38878 (ipa_modify_call_arguments): Likewise.
38879 * loop-doloop.c (doloop_modify): Likewise.
38880 (doloop_optimize): Likewise.
38881 * loop-iv.c (iv_number_of_iterations): Likewise.
38882 * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
38883 (unroll_loop_constant_iterations): Likewise.
38884 (decide_unroll_runtime_iterations): Likewise.
38885 (unroll_loop_runtime_iterations): Likewise.
38886 (decide_peel_simple): Likewise.
38887 (decide_unroll_stupid): Likewise.
38888 * lto-streamer-in.c (streamer_read_wi): Add.
38889 (input_cfg): Use wide-int interfaces.
38890 (lto_input_tree_1): Likewise.
38891 * lto-streamer-out.c (streamer_write_wi): Add.
38892 (hash_tree): Use wide-int interfaces.
38893 (output_cfg): Likewise.
38894 * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
38895 (GTFILES): Add wide-int.h and signop.h.
38896 (TAGS): Look for .cc files too.
38897 * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
38898 * optabs.c (expand_subword_shift): Likewise.
38899 (expand_doubleword_shift): Likewise.
38900 (expand_absneg_bit): Likewise.
38901 (expand_copysign_absneg): Likewise.
38902 (expand_copysign_bit): Likewise.
38903 * postreload.c (reload_cse_simplify_set): Likewise.
38904 * predict.c (predict_iv_comparison): Likewise.
38905 * pretty-print.h: Include wide-int-print.h.
38907 * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
38908 * print-tree.c: Include wide-int-print.h.
38909 (print_node_brief): Use wide-int interfaces.
38910 (print_node): Likewise.
38911 * read-rtl.c (validate_const_wide_int): New.
38912 (read_rtx_code): Add CONST_WIDE_INT case.
38913 * real.c: Include wide-int.h.
38914 (real_to_integer2): Delete.
38915 (real_to_integer): New function, returning a wide_int.
38916 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
38917 (ten_to_ptwo): Update call to real_from_integer.
38918 (real_digit): Likewise.
38919 * real.h: Include signop.h, wide-int.h and insn-modes.h.
38920 (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
38921 (REAL_VALUE_TO_INT): Delete.
38922 (real_to_integer): Declare a wide-int form.
38923 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
38924 * recog.c (const_int_operand): Improve comment.
38925 (const_scalar_int_operand): New.
38926 (const_double_operand): Add a separate definition for CONST_WIDE_INT.
38927 * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
38928 (split_double): Likewise.
38929 * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
38930 (rtx_size): Likewise.
38931 (rtx_alloc_stat_v): New.
38932 (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
38933 (cwi_output_hex): New.
38934 (iterative_hash_rtx): Handle CONST_WIDE_INT.
38935 (cwi_check_failed_bounds): New.
38936 * rtl.def (CONST_WIDE_INT): New.
38937 * rtl.h: Include <utility> and wide-int.h.
38938 (struct hwivec_def): New.
38939 (CWI_GET_NUM_ELEM): New.
38940 (CWI_PUT_NUM_ELEM): New.
38941 (struct rtx_def): Add num_elem and hwiv.
38942 (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
38943 (CASE_CONST_UNIQUE): Likewise.
38944 (CASE_CONST_ANY): Likewise.
38945 (CONST_SCALAR_INT_P): Likewise.
38946 (CONST_WIDE_INT_P): New.
38948 (HWIVEC_CHECK): New.
38949 (cwi_check_failed_bounds): New.
38951 (HWIVEC_CHECK): New.
38952 (CONST_WIDE_INT_VEC) New.
38953 (CONST_WIDE_INT_NUNITS) New.
38954 (CONST_WIDE_INT_ELT) New.
38955 (rtx_mode_t): New type.
38956 (wi::int_traits <rtx_mode_t>): New.
38958 (wi::min_value): New.
38959 (wi::max_value): New.
38961 (const_wide_int_alloc): New.
38962 (immed_wide_int_const): New.
38963 * sched-vis.c (print_value): Handle CONST_WIDE_INT.
38964 * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
38965 * signop.h: New file.
38966 * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
38967 (simplify_const_unary_operation): Use wide-int interfaces.
38968 (simplify_binary_operation_1): Likewise.
38969 (simplify_const_binary_operation): Likewise.
38970 (simplify_const_relational_operation): Likewise.
38971 (simplify_immed_subreg): Likewise.
38972 * stmt.c (expand_case): Likewise.
38973 * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
38974 signop rather than a bool.
38975 * stor-layout.c (layout_type): Use wide-int interfaces.
38976 (initialize_sizetypes): Update calls to
38977 set_min_and_max_values_for_integral_type.
38978 (set_min_and_max_values_for_integral_type): Take a signop rather
38979 than a bool. Use wide-int interfaces.
38980 (fixup_signed_type): Update accordingly. Remove
38981 HOST_BITS_PER_DOUBLE_INT limit.
38982 (fixup_unsigned_type): Likewise.
38983 * system.h (STATIC_CONSTANT_P): New.
38984 (STATIC_ASSERT): New.
38985 * target.def (can_use_doloop_p): Take widest_ints rather than
38987 * target.h: Include wide-int.h rather than double-int.h.
38988 * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
38990 * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
38991 rather than INT_CST_LT_UNSIGNED.
38992 (can_use_doloop_if_innermost): Take widest_ints rather than
38994 * tree-affine.c: Include wide-int-print.h.
38995 (double_int_ext_for_comb): Delete.
38996 (wide_int_ext_for_comb): New.
38997 (aff_combination_zero): Use wide-int interfaces.
38998 (aff_combination_const): Take a widest_int instead of a double_int.
38999 (aff_combination_elt): Use wide-int interfaces.
39000 (aff_combination_scale): Take a widest_int instead of a double_int.
39001 (aff_combination_add_elt): Likewise.
39002 (aff_combination_add_cst): Likewise.
39003 (aff_combination_add): Use wide-int interfaces.
39004 (aff_combination_convert): Likewise.
39005 (tree_to_aff_combination): Likewise.
39006 (add_elt_to_tree): Take a widest_int instead of a double_int.
39007 (aff_combination_to_tree): Use wide-int interfaces.
39008 (aff_combination_remove_elt): Likewise.
39009 (aff_combination_add_product): Take a widest_int instead of
39011 (aff_combination_mult): Use wide-int interfaces.
39012 (aff_combination_expand): Likewise.
39013 (double_int_constant_multiple_p): Delete.
39014 (wide_int_constant_multiple_p): New.
39015 (aff_combination_constant_multiple_p): Take a widest_int pointer
39016 instead of a double_int pointer.
39017 (print_aff): Use wide-int interfaces.
39018 (get_inner_reference_aff): Take a widest_int pointer
39019 instead of a double_int pointer.
39020 (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
39021 * tree-affine.h: Include wide-int.h.
39022 (struct aff_comb_elt): Change type of coef to widest_int.
39023 (struct affine_tree_combination): Change type of offset to widest_int.
39024 (double_int_ext_for_comb): Delete.
39025 (wide_int_ext_for_comb): New.
39026 (aff_combination_const): Use widest_int instead of double_int.
39027 (aff_combination_scale): Likewise.
39028 (aff_combination_add_elt): Likewise.
39029 (aff_combination_constant_multiple_p): Likewise.
39030 (get_inner_reference_aff): Likewise.
39031 (aff_comb_cannot_overlap_p): Likewise.
39032 (aff_combination_zero_p): Use wide-int interfaces.
39033 * tree.c: Include tree.h.
39034 (init_ttree): Use make_int_cst.
39035 (tree_code_size): Removed code for INTEGER_CST case.
39036 (tree_size): Add INTEGER_CST case.
39037 (make_node_stat): Update comment.
39038 (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
39039 (build_int_cst_type): Use wide-int interfaces.
39040 (double_int_to_tree): Likewise.
39041 (double_int_fits_to_tree_p): Delete.
39042 (force_fit_type_double): Delete.
39043 (force_fit_type): New.
39044 (int_cst_hash_hash): Use wide-int interfaces.
39045 (int_cst_hash_eq): Likewise.
39046 (build_int_cst_wide): Delete.
39047 (wide_int_to_tree): New.
39048 (cache_integer_cst): Use wide-int interfaces.
39049 (build_low_bits_mask): Likewise.
39050 (cst_and_fits_in_hwi): Likewise.
39051 (real_value_from_int_cst): Likewise.
39052 (make_int_cst_stat): New.
39053 (integer_zerop): Use wide_int interfaces.
39054 (integer_onep): Likewise.
39055 (integer_all_onesp): Likewise.
39056 (integer_pow2p): Likewise.
39057 (integer_nonzerop): Likewise.
39058 (tree_log2): Likewise.
39059 (tree_floor_log2): Likewise.
39060 (tree_ctz): Likewise.
39061 (int_size_in_bytes): Likewise.
39062 (mem_ref_offset): Return an offset_int rather than a double_int.
39063 (build_type_attribute_qual_variant): Use wide_int interfaces.
39064 (type_hash_eq): Likewise
39065 (tree_int_cst_equal): Likewise.
39066 (tree_int_cst_lt): Delete.
39067 (tree_int_cst_compare): Likewise.
39068 (tree_fits_shwi_p): Use wide_int interfaces.
39069 (tree_fits_uhwi_p): Likewise.
39070 (tree_int_cst_sign_bit): Likewise.
39071 (tree_int_cst_sgn): Likewise.
39072 (tree_int_cst_min_precision): Take a signop rather than a bool.
39073 (simple_cst_equal): Use wide_int interfaces.
39074 (compare_tree_int): Likewise.
39075 (iterative_hash_expr): Likewise.
39076 (int_fits_type_p): Likewise. Use tree_int_cst_lt rather than
39078 (get_type_static_bounds): Use wide_int interfaces.
39079 (tree_int_cst_elt_check_failed): New.
39080 (build_common_tree_nodes): Reordered to set prec before filling in
39082 (int_cst_value): Check cst_and_fits_in_hwi.
39083 (widest_int_cst_value): Use wide_int interfaces.
39084 (upper_bound_in_type): Likewise.
39085 (lower_bound_in_type): Likewise.
39086 (num_ending_zeros): Likewise.
39087 (drop_tree_overflow): Likewise.
39088 * tree-call-cdce.c (check_pow): Update call to real_from_integer.
39089 (gen_conditions_for_pow_cst_base): Likewise.
39090 * tree-cfg.c: Include wide-int.h and wide-int-print.h.
39091 (group_case_labels_stmt): Use wide-int interfaces.
39092 (verify_gimple_assign_binary): Likewise.
39093 (print_loop): Likewise.
39094 * tree-chrec.c (tree_fold_binomial): Likewise.
39095 * tree-core.h (struct tree_base): Add int_length.
39096 (struct tree_int_cst): Change rep of value.
39097 * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
39098 (dr_may_alias_p): Likewise.
39099 (max_stmt_executions_tree): Likewise.
39100 * tree.def (INTEGER_CST): Update comment.
39101 * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
39102 * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
39103 * tree-dump.c: Include wide-int.h and wide-int-print.h.
39104 (dequeue_and_dump): Use wide-int interfaces.
39105 * tree.h: Include wide-int.h.
39106 (NULL_TREE): Moved to earlier loc in file.
39107 (TREE_INT_CST_ELT_CHECK): New.
39108 (tree_int_cst_elt_check_failed): New.
39110 (TREE_INT_CST): Delete.
39111 (TREE_INT_CST_LOW): Use wide-int interfaces.
39112 (TREE_INT_CST_HIGH): Delete.
39113 (TREE_INT_CST_NUNITS): New.
39114 (TREE_INT_CST_EXT_NUNITS): Likewise.
39115 (TREE_INT_CST_OFFSET_NUNITS): Likewise.
39116 (TREE_INT_CST_ELT): Likewise.
39117 (INT_CST_LT): Delete.
39118 (tree_int_cst_elt_check): New (two forms).
39119 (type_code_size): Update comment.
39120 (make_int_cst_stat, make_int_cst): New.
39121 (tree_to_double_int): Delete.
39122 (double_int_fits_to_tree_p): Delete.
39123 (force_fit_type_double): Delete.
39124 (build_int_cstu): Replace with out-of-line function.
39125 (build_int_cst_wide): Delete.
39126 (tree_int_cst_lt): Define inline.
39127 (tree_int_cst_le): New.
39128 (tree_int_cst_compare): Define inline.
39129 (tree_int_cst_min_precision): Take a signop rather than a bool.
39130 (wi::int_traits <const_tree>): New.
39131 (wi::int_traits <tree>): New.
39132 (wi::extended_tree): New.
39133 (wi::int_traits <wi::extended_tree>): New.
39134 (wi::to_widest): New.
39135 (wi::to_offset): New.
39136 (wi::fits_to_tree_p): New.
39137 (wi::min_value): New.
39138 (wi::max_value): New.
39139 * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
39140 (copy_tree_body_r): Likewise.
39141 * tree-object-size.c (compute_object_offset): Likewise.
39142 (addr_object_size): Likewise.
39143 * tree-predcom.c: Include wide-int-print.h.
39144 (struct dref_d): Change type of offset to widest_int.
39145 (dump_dref): Call wide-int printer.
39146 (aff_combination_dr_offset): Use wide-int interfaces.
39147 (determine_offset): Take a widest_int pointer rather than a
39148 double_int pointer.
39149 (split_data_refs_to_components): Use wide-int interfaces.
39150 (suitable_component_p): Likewise.
39151 (order_drefs): Likewise.
39152 (add_ref_to_chain): Likewise.
39153 (valid_initializer_p): Likewise.
39154 (determine_roots_comp): Likewise.
39155 * tree-pretty-print.c: Include wide-int-print.h.
39156 (dump_generic_node): Use wide-int interfaces.
39157 * tree-sra.c (sra_ipa_modify_expr): Likewise.
39158 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
39159 (move_fixed_address_to_symbol): Likewise.
39160 (move_hint_to_base): Likewise.
39161 (move_pointer_to_base): Likewise.
39162 (move_variant_to_index): Likewise.
39163 (most_expensive_mult_to_index): Likewise.
39164 (addr_to_parts): Likewise.
39165 (copy_ref_info): Likewise.
39166 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
39167 (indirect_refs_may_alias_p): Likewise.
39168 (stmt_kills_ref_p_1): Likewise.
39169 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
39170 * tree-ssa-ccp.c: Update comment at top of file. Include
39172 (struct prop_value_d): Change type of mask to widest_int.
39173 (extend_mask): New function.
39174 (dump_lattice_value): Use wide-int interfaces.
39175 (get_default_value): Likewise.
39176 (set_constant_value): Likewise.
39177 (set_value_varying): Likewise.
39178 (valid_lattice_transition): Likewise.
39179 (set_lattice_value): Likewise.
39180 (value_to_double_int): Delete.
39181 (value_to_wide_int): New.
39182 (get_value_from_alignment): Use wide-int interfaces.
39183 (get_value_for_expr): Likewise.
39184 (do_dbg_cnt): Likewise.
39185 (ccp_finalize): Likewise.
39186 (ccp_lattice_meet): Likewise.
39187 (bit_value_unop_1): Use widest_ints rather than double_ints.
39188 (bit_value_binop_1): Likewise.
39189 (bit_value_unop): Use wide-int interfaces.
39190 (bit_value_binop): Likewise.
39191 (bit_value_assume_aligned): Likewise.
39192 (evaluate_stmt): Likewise.
39193 (ccp_fold_stmt): Likewise.
39194 (visit_cond_stmt): Likewise.
39195 (ccp_visit_stmt): Likewise.
39196 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
39197 (constant_pointer_difference): Likewise.
39198 (associate_pointerplus): Likewise.
39199 (combine_conversions): Likewise.
39200 * tree-ssa-loop.h: Include wide-int.h.
39201 (struct tree_niter_desc): Change type of max to widest_int.
39202 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
39203 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
39204 (remove_redundant_iv_tests): Likewise.
39205 (canonicalize_loop_induction_variables): Likewise.
39206 * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
39207 (constant_multiple_of): Take a widest_int pointer instead of
39208 a double_int pointer.
39209 (get_computation_aff): Use wide-int interfaces.
39210 (ptr_difference_cost): Likewise.
39211 (difference_cost): Likewise.
39212 (get_loop_invariant_expr_id): Likewise.
39213 (get_computation_cost_at): Likewise.
39214 (iv_elimination_compare_lt): Likewise.
39215 (may_eliminate_iv): Likewise.
39216 * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
39217 instead of double_int.
39218 (max_loop_iterations): Likewise.
39219 (max_stmt_executions): Likewise.
39220 (estimated_stmt_executions): Likewise.
39221 * tree-ssa-loop-niter.c: Include wide-int-print.h.
39222 (split_to_var_and_offset): Use wide-int interfaces.
39223 (determine_value_range): Likewise.
39224 (bound_difference_of_offsetted_base): Likewise.
39225 (bounds_add): Take a widest_int instead of a double_int.
39226 (number_of_iterations_ne_max): Use wide-int interfaces.
39227 (number_of_iterations_ne): Likewise.
39228 (number_of_iterations_lt_to_ne): Likewise.
39229 (assert_loop_rolls_lt): Likewise.
39230 (number_of_iterations_lt): Likewise.
39231 (number_of_iterations_le): Likewise.
39232 (number_of_iterations_cond): Likewise.
39233 (number_of_iterations_exit): Likewise.
39234 (finite_loop_p): Likewise.
39235 (derive_constant_upper_bound_assign): Likewise.
39236 (derive_constant_upper_bound): Return a widest_int.
39237 (derive_constant_upper_bound_ops): Likewise.
39238 (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
39239 (record_estimate): Take a widest_int rather than a double_int.
39240 (record_nonwrapping_iv): Use wide-int interfaces.
39241 (double_int_cmp): Delete.
39242 (wide_int_cmp): New.
39243 (bound_index): Take a widest_int rather than a double_int.
39244 (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
39245 (maybe_lower_iteration_bound): Likewise.
39246 (estimate_numbers_of_iterations_loop): Likewise.
39247 (estimated_loop_iterations): Take a widest_int pointer than than
39248 a double_int pointer.
39249 (estimated_loop_iterations_int): Use wide-int interfaces.
39250 (max_loop_iterations): Take a widest_int pointer than than
39251 a double_int pointer.
39252 (max_loop_iterations_int): Use wide-int interfaces.
39253 (max_stmt_executions): Take a widest_int pointer than than
39254 a double_int pointer.
39255 (estimated_stmt_executions): Likewise.
39256 (n_of_executions_at_most): Use wide-int interfaces.
39257 (scev_probably_wraps_p): Likewise.
39258 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
39259 to real_to_integer.
39260 * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
39262 * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
39263 double_ints. Adjust for trailing_wide_ints <3> representation.
39264 (set_nonzero_bits): Likewise.
39265 (get_range_info): Return wide_ints rather than double_ints.
39266 Adjust for trailing_wide_ints <3> representation.
39267 (get_nonzero_bits): Likewise.
39268 (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
39270 * tree-ssanames.h (struct range_info_def): Replace min, max and
39271 nonzero_bits with a trailing_wide_ints <3>.
39272 (set_range_info): Use wide_int_refs rather than double_ints.
39273 (set_nonzero_bits): Likewise.
39274 (get_range_info): Return wide_ints rather than double_ints.
39275 (get_nonzero_bits): Likewise.
39276 * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
39277 * tree-ssa-pre.c (phi_translate_1): Likewise.
39278 * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
39279 (acceptable_pow_call): Likewise.
39280 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
39282 (vn_reference_fold_indirect): Likewise.
39283 (vn_reference_maybe_forwprop_address): Likewise.
39284 (valueize_refs_1): Likewise.
39285 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
39286 * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
39287 tree_int_cst_lt and tree_int_cst_le.
39288 * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
39290 (streamer_alloc_tree): Likewise.
39291 * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
39292 (streamer_write_tree_header): Likewise.
39293 (streamer_write_integer_cst): Likewise.
39294 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
39295 (build_constructors): Likewise.
39296 (array_value_type): Likewise.
39297 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
39298 (vect_check_gather): Likewise.
39299 * tree-vect-generic.c (build_replicated_const): Likewise.
39300 (expand_vector_divmod): Likewise.
39301 * tree-vect-loop.c (vect_transform_loop): Likewise.
39302 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
39303 (vect_do_peeling_for_alignment): Likewise.
39304 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
39305 * tree-vrp.c: Include wide-int.h.
39306 (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
39307 (extract_range_from_assert): Use wide-int interfaces.
39308 (vrp_int_const_binop): Likewise.
39309 (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
39310 double_int pointers.
39311 (ranges_from_anti_range): Use wide-int interfaces.
39312 (quad_int_cmp): Delete.
39313 (quad_int_pair_sort): Likewise.
39314 (extract_range_from_binary_expr_1): Use wide-int interfaces.
39315 (extract_range_from_unary_expr_1): Likewise.
39316 (adjust_range_with_scev): Likewise.
39317 (masked_increment): Take and return wide_ints rather than double_ints.
39318 (register_edge_assert_for_2): Use wide-int interfaces.
39319 (check_array_ref): Likewise.
39320 (search_for_addr_array): Likewise.
39321 (maybe_set_nonzero_bits): Likewise.
39322 (union_ranges): Pass an integer of the correct type instead of
39323 using integer_one_node.
39324 (intersect_ranges): Likewise.
39325 (simplify_truth_ops_using_ranges): Likewise.
39326 (simplify_bit_ops_using_ranges): Use wide-int interfaces.
39327 (range_fits_type_p): Likewise.
39328 (simplify_cond_using_ranges): Likewise. Take a signop rather than
39330 (simplify_conversion_using_ranges): Use wide-int interfaces.
39331 (simplify_float_conversion_using_ranges): Likewise.
39332 (vrp_finalize): Likewise.
39333 * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
39334 (gimple_stringops_transform): Likewise.
39335 * varasm.c (decode_addr_const): Likewise.
39336 (const_hash_1): Likewise.
39337 (const_rtx_hash_1): Likewise
39338 (output_constant): Likewise.
39339 (array_size_for_constructor): Likewise.
39340 (output_constructor_regular_field): Likewise.
39341 (output_constructor_bitfield): Likewise.
39342 * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
39343 * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
39345 * gencheck.c: Define BITS_PER_UNIT.
39346 * wide-int.cc: New.
39348 * wide-int-print.cc: New.
39349 * wide-int-print.h: New.
39351 2014-05-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
39353 * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
39355 2014-05-06 Richard Biener <rguenther@suse.de>
39357 * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
39358 TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
39359 (TODO_verify_all): Adjust.
39360 * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
39361 TODO_verify_stmts and TODO_verify_rtl_sharing.
39362 * bb-reorder.c: Likewise.
39363 * cfgexpand.c: Likewise.
39364 * cprop.c: Likewise.
39366 * function.c: Likewise.
39367 * fwprop.c: Likewise.
39368 * gcse.c: Likewise.
39369 * gimple-ssa-isolate-paths.c: Likewise.
39370 * gimple-ssa-strength-reduction.c: Likewise.
39371 * ipa-split.c: Likewise.
39372 * loop-init.c: Likewise.
39373 * loop-unroll.c: Likewise.
39374 * lower-subreg.c: Likewise.
39375 * modulo-sched.c: Likewise.
39376 * postreload-gcse.c: Likewise.
39377 * predict.c: Likewise.
39378 * recog.c: Likewise.
39379 * sched-rgn.c: Likewise.
39380 * store-motion.c: Likewise.
39381 * tracer.c: Likewise.
39382 * trans-mem.c: Likewise.
39383 * tree-call-cdce.c: Likewise.
39384 * tree-cfg.c: Likewise.
39385 * tree-cfgcleanup.c: Likewise.
39386 * tree-complex.c: Likewise.
39387 * tree-eh.c: Likewise.
39388 * tree-emutls.c: Likewise.
39389 * tree-if-conv.c: Likewise.
39390 * tree-into-ssa.c: Likewise.
39391 * tree-loop-distribution.c: Likewise.
39392 * tree-object-size.c: Likewise.
39393 * tree-parloops.c: Likewise.
39394 * tree-pass.h: Likewise.
39395 * tree-sra.c: Likewise.
39396 * tree-ssa-ccp.c: Likewise.
39397 * tree-ssa-copy.c: Likewise.
39398 * tree-ssa-copyrename.c: Likewise.
39399 * tree-ssa-dce.c: Likewise.
39400 * tree-ssa-dom.c: Likewise.
39401 * tree-ssa-dse.c: Likewise.
39402 * tree-ssa-forwprop.c: Likewise.
39403 * tree-ssa-ifcombine.c: Likewise.
39404 * tree-ssa-loop-ch.c: Likewise.
39405 * tree-ssa-loop-ivcanon.c: Likewise.
39406 * tree-ssa-loop.c: Likewise.
39407 * tree-ssa-math-opts.c: Likewise.
39408 * tree-ssa-phiopt.c: Likewise.
39409 * tree-ssa-phiprop.c: Likewise.
39410 * tree-ssa-pre.c: Likewise.
39411 * tree-ssa-reassoc.c: Likewise.
39412 * tree-ssa-sink.c: Likewise.
39413 * tree-ssa-strlen.c: Likewise.
39414 * tree-ssa-tail-merge.c: Likewise.
39415 * tree-ssa-uncprop.c: Likewise.
39416 * tree-switch-conversion.c: Likewise.
39417 * tree-tailcall.c: Likewise.
39418 * tree-vect-generic.c: Likewise.
39419 * tree-vectorizer.c: Likewise.
39420 * tree-vrp.c: Likewise.
39421 * tsan.c: Likewise.
39422 * var-tracking.c: Likewise.
39423 * bt-load.c: Likewise.
39424 * cfgcleanup.c: Likewise.
39425 * combine-stack-adj.c: Likewise.
39426 * combine.c: Likewise.
39427 * compare-elim.c: Likewise.
39428 * config/epiphany/resolve-sw-modes.c: Likewise.
39429 * config/i386/i386.c: Likewise.
39430 * config/mips/mips.c: Likewise.
39431 * config/s390/s390.c: Likewise.
39432 * config/sh/sh_treg_combine.cc: Likewise.
39433 * config/sparc/sparc.c: Likewise.
39436 * final.c: Likewise.
39437 * ifcvt.c: Likewise.
39438 * mode-switching.c: Likewise.
39439 * passes.c: Likewise.
39440 * postreload.c: Likewise.
39442 * reg-stack.c: Likewise.
39443 * regcprop.c: Likewise.
39444 * regrename.c: Likewise.
39447 2014-05-06 Richard Biener <rguenther@suse.de>
39449 PR middle-end/61070
39450 * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
39451 * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
39453 2014-05-05 Jan Hubicka <hubicka@ucw.cz>
39456 * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
39458 2014-05-05 Radovan Obradovic <robradovic@mips.com>
39459 Tom de Vries <tom@codesourcery.com>
39461 * target.def (call_fusage_contains_non_callee_clobbers): New
39463 * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
39465 (@node Miscellaneous Register Hooks): New node.
39466 (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
39467 * doc/tm.texi: Regenerate.
39469 2014-05-05 Marek Polacek <polacek@redhat.com>
39472 * opts.c (common_handle_option): Call error_at instead of warning_at.
39474 2014-05-05 Richard Biener <rguenther@suse.de>
39476 * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
39477 from last_verified if update_ssa ran. Move TODO_verify_rtl_sharing
39478 under the TODO_verify_il umbrella.
39480 2014-05-05 Richard Biener <rguenther@suse.de>
39482 * passes.c (execute_function_todo): Move TODO_verify_flow under
39483 the TODO_verify_ul umbrella.
39485 2014-05-05 Richard Biener <rguenther@suse.de>
39487 PR middle-end/61010
39488 * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
39489 X & CST away from a CST that is the mask of a mode.
39491 2014-05-05 Jan-Benedict Glaw <jbglaw@lug-owl.de>
39493 * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
39494 int argument to enum machine_mode.
39495 (picochip_class_max_nregs): Ditto.
39496 * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
39497 (picochip_class_max_nregs): Ditto.
39499 2014-05-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
39501 * target.def: Add new target hook.
39502 * doc/tm.texi: Regenerate.
39503 * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
39504 * targhooks.c (default_keep_leaf_when_profiled): New function.
39506 * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
39507 (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
39509 2014-05-05 Bin Cheng <bin.cheng@arm.com>
39511 PR tree-optimization/60363
39512 * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
39513 (copy_phi_args): New parameters. Call get_value_locus_in_path.
39514 (update_destination_phis): New parameter.
39515 (create_edge_and_update_destination_phis): Ditto.
39516 (ssa_fix_duplicate_block_edges): Pass new arguments.
39517 (thread_single_edge): Ditto.
39519 2014-05-04 Peter Bergner <bergner@vnet.ibm.com>
39521 * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
39522 (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
39523 (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
39524 * config/rs6000/rs6000-builtin.def (BU_MISC_1):
39525 Use RS6000_BTM_HARD_FLOAT.
39526 (BU_MISC_2): Likewise.
39527 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
39528 RS6000_BTM_HARD_FLOAT.
39529 (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
39530 is explicitly used.
39531 (rs6000_invalid_builtin): Add hard floating builtin support.
39532 (rs6000_expand_builtin): Relax the gcc_assert to allow the new
39533 hard float builtins.
39534 (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
39536 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
39538 * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
39539 Add missing function* argument.
39541 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
39543 * lra-constraints.c (valid_address_p): Move earlier in file.
39544 Add a constraint argument to the address_info version.
39545 (satisfies_memory_constraint_p): New function.
39546 (satisfies_address_constraint_p): Likewise.
39547 (process_alt_operands, curr_insn_transform): Use them.
39548 (process_address): Pass the constraint to valid_address_p when
39549 checking address operands.
39551 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
39553 * config/mips/mips.c (mips_isa_rev): New variable.
39554 (mips_set_architecture): Set it.
39555 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
39557 (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
39558 (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
39559 (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
39560 (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
39561 (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
39562 conditions in terms of mips_isa_rev.
39563 (mips_isa_rev): Declare.
39565 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
39567 * config/sh/sh-mem.cc: Use tabs instead of spaces.
39568 (prob_unlikely, prob_likely): Make variables const.
39570 2014-05-03 Denis Chertykov <chertykov@gmail.com>
39572 * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
39574 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
39576 * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
39578 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
39580 * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
39581 (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
39582 * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
39584 (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
39585 sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
39587 Replace usage of ROUND_REG with sh_round_reg.
39588 Use CEIL instead of ROUND_ADVANCE.
39590 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
39593 * config/sh/sh.c: Include stdlib headers before everything else.
39595 2014-05-02 Jakub Jelinek <jakub@redhat.com>
39597 * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
39598 GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
39599 (gimplify_adjust_omp_clauses): Simd region is never
39600 directly nested in combined parallel. Instead, for linear
39601 with copyin/copyout, if in combined for simd loop, make decl
39602 firstprivate/lastprivate on OMP_FOR.
39603 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
39604 expand_omp_for_static_chunk): When setting endvar, also set
39605 fd->loop.v to the same value.
39607 2014-05-02 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
39609 * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
39611 2014-05-02 Alan Lawrence <alan.lawrence@arm.com>
39613 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
39616 2014-05-02 Marek Polacek <polacek@redhat.com>
39618 * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
39620 2014-05-02 Kito Cheng <kito@0xlab.org>
39622 * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
39623 to a C expression marco.
39624 * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
39625 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
39626 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
39627 * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
39628 HONOR_REG_ALLOC_ORDER.
39629 * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
39631 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
39633 * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
39635 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
39637 * config/arc/arc.c (arc_select_cc_mode): Fix typo.
39639 2014-05-01 Yuri Rumyantsev <ysrumyan@gmail.com>
39641 * tree-if-conv.c (is_cond_scalar_reduction): New function.
39642 (convert_scalar_cond_reduction): Likewise.
39643 (predicate_scalar_phi): Add recognition and transformation
39644 of simple conditioanl reduction to be vectorizable.
39646 2014-05-01 Marek Polacek <polacek@redhat.com>
39649 * doc/invoke.texi: Document -Wdiscarded-qualifiers.
39651 2014-04-30 Alan Lawrence <alan.lawrence@arm.com>
39653 * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
39654 vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
39655 vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
39656 vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
39657 vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
39658 vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
39659 vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
39660 vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
39662 2014-04-30 Joern Rennecke <joern.rennecke@embecosm.com>
39664 * config/arc/arc.opt (mlra): Move comment above option name
39665 to avoid mis-parsing as language options.
39667 2014-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
39669 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
39670 * config/sol2.h: ... here.
39671 * config/sol2-10.h: Remove.
39673 * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
39674 (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
39675 (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
39676 (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
39677 (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
39678 * config/sol2.h: ... here.
39679 (SECTION_NAME_FORMAT): Don't redefine.
39680 (STARTFILE_ARCH32_SPEC): Rename to ...
39681 (STARTFILE_ARCH_SPEC): ... this.
39682 (ASM_OUTPUT_ALIGNED_COMMON): Move ...
39683 * config/sparc/sol2.h: ... here.
39684 (SECTION_NAME_FORMAT): Don't undef.
39685 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
39686 (SUBTARGET_EXTRA_SPECS): Remove.
39687 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
39689 * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
39690 (MD_STARTFILE_PREFIX): Remove.
39691 (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
39692 (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
39693 (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
39694 (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
39695 (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
39696 (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
39697 * config/i386/sol2.h: ... here.
39698 (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
39699 * config/i386/sol2-bi.h: Remove.
39700 * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
39701 (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
39703 * config/i386/t-sol2-64: Rename to ...
39704 * config/i386/t-sol2: ... this.
39705 * config/sparc/t-sol2-64: Rename to ...
39706 * config/sparc/t-sol2: ... this.
39708 * config.gcc (*-*-solaris2*): Split sol2_tm_file into
39709 sol2_tm_file_head, sol2_tm_file_tail.
39710 Include ${cpu_type}/sol2.h before sol2.h.
39712 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
39713 i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
39714 Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
39715 Reflect i386/t-sol2-64 renaming.
39716 (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
39717 Reflect sparc/t-sol2-64 renaming.
39719 2014-04-30 Richard Biener <rguenther@suse.de>
39721 * passes.c (execute_function_todo): Move TODO_verify_stmts
39722 and TODO_verify_ssa under the TODO_verify_il umbrella.
39723 * tree-ssa.h (verify_ssa): Adjust prototype.
39724 * tree-ssa.c (verify_ssa): Add parameter to tell whether
39725 we should verify SSA operands.
39726 * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
39727 * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
39728 whether we should verify whether not throwing stmts have EH info.
39729 * graphite-scop-detection.c (create_sese_edges): Adjust.
39730 * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
39731 * tree-eh.c (lower_try_finally_switch): Do not add the
39732 default case label twice.
39734 2014-04-30 Marek Polacek <polacek@redhat.com>
39736 * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
39737 * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
39738 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
39739 * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
39741 2014-04-29 Alan Lawrence <alan.lawrence@arm.com>
39743 * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
39744 vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
39745 vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
39746 vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
39747 vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
39748 vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
39749 vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
39750 vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
39752 2014-04-29 David Malcolm <dmalcolm@redhat.com>
39754 * tree-cfg.c (dump_function_to_file): Dump the return type of
39755 functions, in a line to itself before the function body, mimicking
39756 the layout of a C function.
39758 2014-04-29 Jakub Jelinek <jakub@redhat.com>
39760 PR tree-optimization/60971
39761 * tree-tailcall.c (process_assignment): Reject conversions which
39764 2014-04-29 James Greenhalgh <james.greenhalgh@arm.com>
39766 * calls.c (initialize_argument_information): Always treat
39767 PUSH_ARGS_REVERSED as 1, simplify code accordingly.
39768 (expand_call): Likewise.
39769 (emit_library_call_calue_1): Likewise.
39770 * expr.c (PUSH_ARGS_REVERSED): Do not define.
39771 (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
39774 2014-04-29 Nick Clifton <nickc@redhat.com>
39776 * config/msp430/msp430.md (umulsidi): Fix typo.
39777 (mulhisi3): Enable even inside interrupt handlers.
39778 * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
39779 bigger return address pushed in large mode.
39781 2014-04-29 Nick Clifton <nickc@redhat.com>
39783 * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
39784 (arc_init_reg_tables): Use a machine_mode enum to iterate over
39786 * config/m32r/m32r.c (init_reg_tables): Likewise.
39787 * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
39788 enum to hold the modes.
39790 2014-04-29 Richard Biener <rguenther@suse.de>
39792 * dominance.c (free_dominance_info): Add overload with
39793 function parameter.
39794 (dom_info_state): Likewise.
39795 (dom_info_available_p): Likewise.
39796 * basic-block.h (free_dominance_info, dom_info_state,
39797 dom_info_available_p): Declare overloads.
39798 * passes.c (execute_function_todo): Verify that verifiers
39799 don't change dominator info state. Drop dominator info
39800 for IPA pass invocations.
39801 * cgraph.c (release_function_body): Restore asserts that
39802 dominator information is released.
39804 2014-04-29 Patrick Palka <patrick@parcs.ath.cx>
39806 * doc/invoke.texi: Fix typo.
39807 * tree-vrp.c: Fix typos.
39808 * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
39810 2014-04-29 Zhenqiang Chen <zhenqiang.chen@linaro.org>
39812 * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
39814 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
39816 * config/aarch64/aarch64-builtins.c
39817 (aarch64_types_storestruct_lane_qualifiers): New.
39818 (TYPES_STORESTRUCT_LANE): Likewise.
39819 * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
39820 (st3_lane): Likewise.
39821 (st4_lane): Likewise.
39822 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
39823 (vec_store_lanesci_lane<mode>): Likewise.
39824 (vec_store_lanesxi_lane<mode>): Likewise.
39825 (aarch64_st2_lane<VQ:mode>): Likewise.
39826 (aarch64_st3_lane<VQ:mode>): Likewise.
39827 (aarch64_st4_lane<VQ:mode>): Likewise.
39828 * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
39829 * config/aarch64/arm_neon.h
39830 (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
39831 use new macro arguments.
39832 (__ST3_LANE_FUNC): Likewise.
39833 (__ST4_LANE_FUNC): Likewise.
39834 * config/aarch64/iterators.md (V_TWO_ELEM): New.
39835 (V_THREE_ELEM): Likewise.
39836 (V_FOUR_ELEM): Likewise.
39838 2014-04-28 David Malcolm <dmalcolm@redhat.com>
39840 * doc/gimple.texi: Replace the description of the now-defunct
39841 union gimple_statement_d with a diagram showing the
39842 gimple_statement_base class hierarchy and its relationships to
39843 the GSS_ and GIMPLE_ enums.
39845 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
39847 * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
39848 * config/aarch64/aarch64.c
39849 (aarch64_cannot_change_mode_class): Weaken conditions.
39850 (aarch64_modes_tieable_p): New.
39851 * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
39853 2014-04-28 Pat Haugen <pthaugen@us.ibm.com>
39855 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
39856 (loadsync_<mode>): Change mode.
39857 (load_quadpti, store_quadpti): New.
39858 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
39859 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
39861 2014-04-28 Martin Jambor <mjambor@suse.cz>
39863 * tree-sra.c (sra_modify_expr): Generate new memory accesses with
39864 same alias type as the original statement.
39865 (subreplacement_assignment_data): New type.
39866 (handle_unscalarized_data_in_subtree): New type of parameter,
39867 generate new memory accesses with same alias type as the original
39869 (load_assign_lhs_subreplacements): Likewise.
39870 (sra_modify_constructor_assign): Generate new memory accesses with
39871 same alias type as the original statement.
39873 2014-04-28 Richard Biener <rguenther@suse.de>
39875 * tree-pass.h (TODO_verify_il): Define.
39876 (TODO_verify_all): Complete properly.
39877 * passes.c (execute_function_todo): Move existing loop-closed
39878 SSA verification under TODO_verify_il.
39879 (execute_one_pass): Trigger TODO_verify_il at todo-after time.
39880 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
39881 Fix tree sharing issue.
39883 2014-04-28 Richard Biener <rguenther@suse.de>
39885 PR middle-end/60092
39886 * builtins.def (DEF_C11_BUILTIN): Add.
39887 (BUILT_IN_ALIGNED_ALLOC): Likewise.
39888 * coretypes.h (enum function_class): Add function_c11_misc.
39889 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
39890 BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
39891 (call_may_clobber_ref_p_1): Likewise.
39892 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
39893 (mark_all_reaching_defs_necessary_1): Likewise.
39894 (propagate_necessity): Likewise.
39895 (eliminate_unnecessary_stmts): Likewise.
39896 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
39898 2014-04-28 Richard Biener <rguenther@suse.de>
39900 * tree-vrp.c (vrp_var_may_overflow): Remove.
39901 (vrp_visit_phi_node): Rather than bumping to +-INF possibly
39902 with overflow immediately bump to one before that value and
39903 let iteration figure out overflow status.
39905 2014-04-28 Richard Biener <rguenther@suse.de>
39907 * configure.ac: Do valgrind header checks unconditionally.
39908 Add --enable-valgrind-annotations.
39909 * system.h: Guard valgrind header inclusion with
39910 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
39911 * alloc-pool.c (pool_alloc, pool_free): Use
39912 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
39913 to guard possibly dead code.
39914 * config.in: Regenerated.
39915 * configure: Likewise.
39917 2014-04-28 Jeff Law <law@redhat.com>
39919 PR tree-optimization/60902
39920 * tree-ssa-threadedge.c
39921 (record_temporary_equivalences_from_stmts_at_dest): Only iterate
39922 over real defs when invalidating outputs from statements that do not
39923 produce useful outputs for threading.
39925 2014-04-28 Richard Biener <rguenther@suse.de>
39927 PR tree-optimization/60979
39928 * graphite-scop-detection.c (scopdet_basic_block_info): Reject
39929 SCOPs that end in a block with a successor with abnormal
39932 2014-04-28 Richard Biener <rguenther@suse.de>
39934 * tree-pass.h (execute_pass_list): Adjust prototype.
39935 * passes.c (pass_manager::execute_early_local_passes): Adjust.
39936 (do_per_function): Change callback signature, push all actual
39937 work to the callbals.
39938 (do_per_function_toporder): Likewise.
39939 (execute_function_dump): Adjust.
39940 (execute_function_todo): Likewise.
39941 (clear_last_verified): Likewise.
39942 (verify_curr_properties): Likewise.
39943 (update_properties_after_pass): Likewise.
39944 (execute_pass_list_1): Split out from ...
39945 (execute_pass_list): ... here. Adjust.
39946 (execute_ipa_pass_list): Likewise.
39947 * cgraphunit.c (cgraph_add_new_function): Adjust.
39948 (analyze_function): Likewise.
39949 (expand_function): Likewise.
39950 * cgraph.c (release_function_body): Free dominance info
39951 here instead of asserting it was magically freed elsewhere.
39953 2014-04-28 Eric Botcazou <ebotcazou@adacore.com>
39955 * configure.ac: Tweak GAS check for LEON instructions on SPARC.
39956 * configure: Regenerate.
39957 * config/sparc/sparc.opt (muser-mode): New option.
39958 * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
39960 (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
39961 * doc/invoke.texi (SPARC options): Document -muser-mode.
39963 2014-04-27 Richard Sandiford <rdsandiford@googlemail.com>
39965 * cselib.c (find_slot_memmode): Delete.
39966 (cselib_hasher): Change compare_type to a struct.
39967 (cselib_hasher::equal): Update accordingly. Don't expect wrapped
39969 (preserve_constants_and_equivs): Adjust for new compare_type.
39970 (cselib_find_slot): Likewise. Take the mode of the rtx as argument.
39971 (wrap_constant): Delete.
39972 (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
39974 2014-04-26 Markus Trippelsdorf <markus@trippelsdorf.de>
39976 * doc/install.texi (Building with profile feedback): Remove
39979 2014-04-26 Tom de Vries <tom@codesourcery.com>
39981 * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
39984 2014-04-25 Cary Coutant <ccoutant@google.com>
39987 * dwarf2out.c (should_move_die_to_comdat): A type definition
39988 can contain a subprogram definition, but don't move it to a
39990 (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
39991 (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
39993 (clone_tree_hash): Rename to...
39994 (clone_tree_partial): ...this; change callers. Copy
39995 DW_TAG_subprogram DIEs as declarations.
39996 (copy_decls_walk): Don't copy children of a declaration into a
39999 2014-04-25 H.J. Lu <hongjiu.lu@intel.com>
40002 * config/i386/i386.md (*movsf_internal): Set MODE to SI for
40005 2014-04-25 Jiong Wang <jiong.wang@arm.com>
40007 * config/arm/predicates.md (call_insn_operand): Add long_call check.
40008 * config/arm/arm.md (sibcall, sibcall_value): Force the address to
40010 * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
40013 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40015 * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
40017 2014-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
40019 PR tree-optimization/60930
40020 * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject
40021 creating a multiply candidate by folding two constant
40022 multiplicands when the result overflows.
40024 2014-04-25 Jakub Jelinek <jakub@redhat.com>
40026 PR tree-optimization/60960
40027 * tree-vect-generic.c (expand_vector_operation): Only call
40028 expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
40030 2014-04-25 Tom de Vries <tom@codesourcery.com>
40032 * expr.c (clobber_reg_mode): New function.
40033 * expr.h (clobber_reg): New function.
40035 2014-04-25 Tom de Vries <tom@codesourcery.com>
40037 * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
40040 2014-04-25 Radovan Obradovic <robradovic@mips.com>
40041 Tom de Vries <tom@codesourcery.com>
40043 * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
40045 * rtl.h (find_all_hard_reg_sets): Add bool parameter.
40046 * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
40047 new argument to find_all_hard_reg_sets call.
40049 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40051 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
40052 Use HOST_WIDE_INT_C for mask literal.
40053 (aarch_rev16_shleft_mask_imm_p): Likewise.
40055 2014-04-25 Eric Botcazou <ebotcazou@adacore.com>
40058 * config/sparc/sparc.md (ashlsi3_extend): Delete.
40060 2014-04-25 Marc Glisse <marc.glisse@inria.fr>
40062 PR preprocessor/56540
40063 * config/i386/i386-c.c (ix86_target_macros): Define
40064 __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
40066 2014-04-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
40068 * configure.ac (tga_func): Remove.
40069 (LIB_TLS_SPEC): Remove.
40070 * configure: Regenerate.
40071 * config.in: Regenerate.
40072 * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
40074 2014-04-25 Richard Biener <rguenther@suse.de>
40077 * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
40078 call stmt use/clobber sets during stmt walk instead of
40079 walking the possibly incomplete set of caller edges.
40081 2014-04-25 Richard Biener <rguenther@suse.de>
40084 * passes.c (apply_ipa_transforms): Inline into only caller ...
40085 (execute_one_pass): ... here. Properly bring in function
40086 bodies for nodes we want to apply IPA transforms to.
40088 2014-04-24 Cong Hou <congh@google.com>
40090 PR tree-optimization/60896
40091 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
40092 all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
40093 (vect_mark_pattern_stmts): Set the def type of all statements in
40094 PATTERN_DEF_SEQ as vect_internal_def.
40096 2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
40098 * doc/extend.texi (PowerPC Built-in Functions): Document new
40099 powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
40100 (PowerPC AltiVec/VSX Built-in Functions): Likewise.
40102 * config/rs6000/predicates.md (const_0_to_3_operand): New
40103 predicate to match 0..3 integer constants.
40105 * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
40106 to support adding miscellaneous builtin functions.
40107 (BU_DFP_MISC_2): Likewise.
40108 (BU_P7_MISC_1): Likewise.
40109 (BU_P7_MISC_2): Likewise.
40110 (BU_P8V_MISC_3): Likewise.
40111 (BU_MISC_1): Likewise.
40112 (BU_MISC_2): Likewise.
40113 (DIVWE): Add extended divide builtin functions.
40114 (DIVWEO): Likewise.
40115 (DIVWEU): Likewise.
40116 (DIVWEUO): Likewise.
40118 (DIVDEO): Likewise.
40119 (DIVDEU): Likewise.
40120 (DIVDEUO): Likewise.
40121 (DXEX): Add decimal floating-point builtin functions.
40123 (DDEDPD): Likewise.
40124 (DDEDPDQ): Likewise.
40125 (DENBCD): Likewise.
40126 (DENBCDQ): Likewise.
40130 (DSCLIQ): Likewise.
40132 (DSCRIQ): Likewise.
40133 (CDTBCD): Add new BCD builtin functions.
40134 (CBCDTD): Likewise.
40135 (ADDG6S): Likewise.
40136 (BCDADD): Likewise.
40137 (BCDADD_LT): Likewise.
40138 (BCDADD_EQ): Likewise.
40139 (BCDADD_GT): Likewise.
40140 (BCDADD_OV): Likewise.
40141 (BCDSUB): Likewise.
40142 (BCDSUB_LT): Likewise.
40143 (BCDSUB_EQ): Likewise.
40144 (BCDSUB_GT): Likewise.
40145 (BCDSUB_OV): Likewise.
40146 (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
40147 (UNPACK_TD): Likewise.
40148 (PACK_TF): Likewise.
40149 (UNPACK_TF): Likewise.
40150 (UNPACK_TF_0): Likewise.
40151 (UNPACK_TF_1): Likewise.
40152 (PACK_V1TI): Likewise.
40153 (UNPACK_V1TI): Likewise.
40155 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
40156 support for decimal floating point builtin functions.
40157 (rs6000_expand_ternop_builtin): Add checks for the new builtin
40158 functions that take constant arguments.
40159 (rs6000_invalid_builtin): Add decimal floating point builtin support.
40160 (rs6000_init_builtins): Setup long double, _Decimal64, and
40161 _Decimal128 types for new builtin functions.
40162 (builtin_function_type): Set the unsigned flags appropriately for
40163 the new builtin functions.
40164 (rs6000_opt_masks): Add support for decimal floating point builtin
40167 * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
40168 floating point builtin functions.
40169 (RS6000_BTM_COMMON): Likewise.
40170 (RS6000_BTI_long_double): Likewise.
40171 (RS6000_BTI_dfloat64): Likewise.
40172 (RS6000_BTI_dfloat128): Likewise.
40173 (long_double_type_internal_node): Likewise.
40174 (dfloat64_type_internal_node): Likewise.
40175 (dfloat128_type_internal_node): Likewise.
40177 * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
40178 2.07 bcd arithmetic instructions.
40179 (UNSPEC_BCDSUB): Likewise.
40180 (UNSPEC_BCD_OVERFLOW): Likewise.
40181 (UNSPEC_BCD_ADD_SUB): Likewise.
40182 (bcd_add_sub): Likewise.
40183 (BCD_TEST): Likewise.
40184 (bcd<bcd_add_sub>): Likewise.
40185 (bcd<bcd_add_sub>_test): Likewise.
40186 (bcd<bcd_add_sub>_test2): Likewise.
40187 (bcd<bcd_add_sub>_<code>): Likewise.
40188 (peephole2 for combined bcd ops): Likewise.
40190 * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
40191 decimal floating point builtin functions.
40192 (UNSPEC_DENBCD): Likewise.
40193 (UNSPEC_DXEX): Likewise.
40194 (UNSPEC_DIEX): Likewise.
40195 (UNSPEC_DSCLI): Likewise.
40196 (UNSPEC_DSCRI): Likewise.
40197 (D64_D128): Likewise.
40198 (dfp_suffix): Likewise.
40199 (dfp_ddedpd_<mode>): Likewise.
40200 (dfp_denbcd_<mode>): Likewise.
40201 (dfp_dxex_<mode>): Likewise.
40202 (dfp_diex_<mode>): Likewise.
40203 (dfp_dscli_<mode>): Likewise.
40204 (dfp_dscri_<mode>): Likewise.
40206 * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
40208 (UNSPEC_CDTBCD): Likewise.
40209 (UNSPEC_CBCDTD): Likewise.
40210 (UNSPEC_DIVE): Add support for new extended divide builtin functions.
40211 (UNSPEC_DIVEO): Likewise.
40212 (UNSPEC_DIVEU): Likewise.
40213 (UNSPEC_DIVEUO): Likewise.
40214 (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
40215 pack/unpack 128-bit types.
40216 (UNSPEC_PACK_128BIT): Likewise.
40217 (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
40218 (udiv<mode>3): Use idiv_ldiv mode attribute.
40219 (div<mode>3): Likewise.
40220 (addg6s): Add new BCD builtin functions.
40221 (cdtbcd): Likewise.
40222 (cbcdtd): Likewise.
40223 (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
40224 (div_extend): Likewise.
40225 (div<div_extend>_<mode>"): Likewise.
40226 (FP128_64): Add support for new builtin functions to pack/unpack
40228 (unpack<mode>): Likewise.
40229 (unpacktf_0): Likewise.
40230 (unpacktf_1): Likewise.
40231 (unpack<mode>_dm): Likewise.
40232 (unpack<mode>_nodm): Likewise.
40233 (pack<mode>): Likewise.
40234 (unpackv1ti): Likewise.
40235 (packv1ti): Likewise.
40237 2014-04-24 Vishnu K S <Vishnu.k_s@atmel.com>
40239 * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
40242 2014-04-24 Jakub Jelinek <jakub@redhat.com>
40244 * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
40245 * gimplify.c (omp_is_private): Change last argument's type to int.
40246 Only diagnose lastprivate if the simd argument is 1, only diagnose
40247 linear if the simd argument is 2.
40248 (gimplify_omp_for): Adjust omp_is_private callers. When adding
40249 lastprivate or private, add the clause to OMP_FOR_CLAUSES. Pass
40250 GOVD_EXPLICIT to omp_add_variable. For simd with collapse == 1
40251 create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
40252 If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
40253 increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
40254 * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
40255 OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
40256 * tree-nested.c (convert_nonlocal_omp_clauses,
40257 convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
40259 2014-04-24 Segher Boessenkool <segher@kernel.crashing.org>
40262 * config/m68k/m68k.md (extendplussidi): Don't allow memory for
40265 2014-04-24 Dimitris Papavasiliou <dpapavas@gmail.com>
40267 * flag-types.h (enum ivar_visibility): Add.
40269 2014-04-24 Trevor Saunders <tsaunders@mozilla.com>
40271 * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
40272 function * argument.
40274 2014-04-24 Alan Lawrence <alan.lawrence@arm.com>
40276 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
40278 2014-04-24 Radovan Obradovic <robradovic@mips.com>
40279 Tom de Vries <tom@codesourcery.com>
40281 * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
40282 * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
40284 * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
40285 * emit-rtl.c (try_split): Same.
40287 2014-04-24 Radovan Obradovic <robradovic@mips.com>
40288 Tom de Vries <tom@codesourcery.com>
40290 * common.opt (fuse-caller-save): New option.
40292 2014-04-24 Tejas Belagod <tejas.belagod@arm.com>
40294 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
40295 elements for big-endian.
40297 2014-04-24 Richard Biener <rguenther@suse.de>
40299 * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
40300 during TER and instead use the sepops interface for expanding
40301 non-GIMPLE_SINGLE_RHS.
40303 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
40305 * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
40306 if not HAVE_AS_IX86_DIFF_SECT_DELTA.
40308 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
40310 * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
40311 assembler 64-bit option.
40312 * configure: Regenerate.
40314 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40316 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
40317 TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
40318 (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
40319 (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
40320 (TARGET_CRYPTO): Take TARGET_SIMD into account.
40322 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40324 * config/aarch64/aarch64-builtins.c
40325 (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
40326 BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
40327 * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
40328 * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
40330 * config/aarch64/iterator.md (VDQHSD): New mode iterator.
40331 (Vrevsuff): New mode attribute.
40333 2014-04-24 Terry Guo <terry.guo@arm.com>
40335 * config/arm/arm.h (machine_function): Define variable
40336 after_arm_reorg here.
40337 * config/arm/arm.c (after_arm_reorg): Remove the definition.
40338 (arm_split_constant): Update the way to access variable
40340 (arm_reorg): Ditto.
40341 (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
40343 2014-04-23 Tom de Vries <tom@codesourcery.com>
40345 * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
40347 2014-04-23 David Malcolm <dmalcolm@redhat.com>
40349 * is-a.h: Update comments to reflect the following changes to the
40350 "pointerness" of the API, making the template parameter match the
40351 return type, allowing use of is-a.h with typedefs of pointers.
40352 (is_a_helper::cast): Return a T rather then a pointer to a T, so
40353 that the return type matches the parameter to the is_a_helper.
40355 (dyn_cast): Likewise.
40357 * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
40358 pointer from the is-a.h API.
40360 * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
40361 (is_a_helper <cgraph_node *>::test): ...this, matching change to
40363 (is_a_helper <varpool_node>::test): Likewise, convert to...
40364 (is_a_helper <varpool_node *>::test): ...this.
40366 (varpool_first_variable): Update for removal of implicit pointer
40367 from the is-a.h API.
40368 (varpool_next_variable): Likewise.
40369 (varpool_first_static_initializer): Likewise.
40370 (varpool_next_static_initializer): Likewise.
40371 (varpool_first_defined_variable): Likewise.
40372 (varpool_next_defined_variable): Likewise.
40373 (cgraph_first_defined_function): Likewise.
40374 (cgraph_next_defined_function): Likewise.
40375 (cgraph_first_function): Likewise.
40376 (cgraph_next_function): Likewise.
40377 (cgraph_first_function_with_gimple_body): Likewise.
40378 (cgraph_next_function_with_gimple_body): Likewise.
40379 (cgraph_alias_target): Likewise.
40380 (varpool_alias_target): Likewise.
40381 (cgraph_function_or_thunk_node): Likewise.
40382 (varpool_variable_node): Likewise.
40383 (symtab_real_symbol_p): Likewise.
40384 * cgraphunit.c (referred_to_p): Likewise.
40385 (analyze_functions): Likewise.
40386 (handle_alias_pairs): Likewise.
40387 * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
40388 * gimple-ssa.h (gimple_vuse_op): Likewise.
40389 (gimple_vdef_op): Likewise.
40390 * gimple-streamer-in.c (input_gimple_stmt): Likewise.
40391 * gimple.c (gimple_build_asm_1): Likewise.
40392 (gimple_build_try): Likewise.
40393 (gimple_build_resx): Likewise.
40394 (gimple_build_eh_dispatch): Likewise.
40395 (gimple_build_omp_for): Likewise.
40396 (gimple_omp_for_set_clauses): Likewise.
40398 * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
40399 (is_a_helper <gimple_statement_asm *>::test): ...this.
40400 (is_a_helper <gimple_statement_bind>::test): Convert to...
40401 (is_a_helper <gimple_statement_bind *>::test): ...this.
40402 (is_a_helper <gimple_statement_call>::test): Convert to...
40403 (is_a_helper <gimple_statement_call *>::test): ...this.
40404 (is_a_helper <gimple_statement_catch>::test): Convert to...
40405 (is_a_helper <gimple_statement_catch *>::test): ...this.
40406 (is_a_helper <gimple_statement_resx>::test): Convert to...
40407 (is_a_helper <gimple_statement_resx *>::test): ...this.
40408 (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
40409 (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
40410 (is_a_helper <gimple_statement_eh_else>::test): Convert to...
40411 (is_a_helper <gimple_statement_eh_else *>::test): ...this.
40412 (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
40413 (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
40414 (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
40415 (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
40416 (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
40417 (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
40418 (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
40419 (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
40420 (is_a_helper <gimple_statement_omp_return>::test): Convert to...
40421 (is_a_helper <gimple_statement_omp_return *>::test): ...this.
40422 (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
40423 (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
40424 (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
40425 (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
40426 (is_a_helper <gimple_statement_omp_for>::test): Convert to...
40427 (is_a_helper <gimple_statement_omp_for *>::test): ...this.
40428 (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
40429 (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
40430 (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
40431 (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
40432 (is_a_helper <gimple_statement_omp_target>::test): Convert to...
40433 (is_a_helper <gimple_statement_omp_target *>::test): ...this.
40434 (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
40435 (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
40436 (is_a_helper <gimple_statement_omp_single>::test): Convert to...
40437 (is_a_helper <gimple_statement_omp_single *>::test): ...this.
40438 (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
40439 (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
40440 (is_a_helper <gimple_statement_omp_task>::test): Convert to...
40441 (is_a_helper <gimple_statement_omp_task *>::test): ...this.
40442 (is_a_helper <gimple_statement_phi>::test): Convert to...
40443 (is_a_helper <gimple_statement_phi *>::test): ...this.
40444 (is_a_helper <gimple_statement_transaction>::test): Convert to...
40445 (is_a_helper <gimple_statement_transaction *>::test): ...this.
40446 (is_a_helper <gimple_statement_try>::test): Convert to...
40447 (is_a_helper <gimple_statement_try *>::test): ...this.
40448 (is_a_helper <gimple_statement_wce>::test): Convert to...
40449 (is_a_helper <gimple_statement_wce *>::test): ...this.
40450 (is_a_helper <const gimple_statement_asm>::test): Convert to...
40451 (is_a_helper <const gimple_statement_asm *>::test): ...this.
40452 (is_a_helper <const gimple_statement_bind>::test): Convert to...
40453 (is_a_helper <const gimple_statement_bind *>::test): ...this.
40454 (is_a_helper <const gimple_statement_call>::test): Convert to...
40455 (is_a_helper <const gimple_statement_call *>::test): ...this.
40456 (is_a_helper <const gimple_statement_catch>::test): Convert to...
40457 (is_a_helper <const gimple_statement_catch *>::test): ...this.
40458 (is_a_helper <const gimple_statement_resx>::test): Convert to...
40459 (is_a_helper <const gimple_statement_resx *>::test): ...this.
40460 (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
40461 (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
40462 (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
40463 (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
40464 (is_a_helper <const gimple_statement_omp_atomic_load>::test):
40466 (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
40468 (is_a_helper <const gimple_statement_omp_atomic_store>::test):
40470 (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
40472 (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
40473 (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
40474 (is_a_helper <const gimple_statement_omp_continue>::test): Convert
40476 (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
40477 (is_a_helper <const gimple_statement_omp_critical>::test): Convert
40479 (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
40480 (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
40481 (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
40482 (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
40483 (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
40484 (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
40486 (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
40487 (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
40488 (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
40489 (is_a_helper <const gimple_statement_omp_sections>::test): Convert
40491 (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
40492 (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
40493 (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
40494 (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
40495 (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
40496 (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
40497 (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
40498 (is_a_helper <const gimple_statement_phi>::test): Convert to...
40499 (is_a_helper <const gimple_statement_phi *>::test): ...this.
40500 (is_a_helper <const gimple_statement_transaction>::test): Convert to...
40501 (is_a_helper <const gimple_statement_transaction *>::test): ...this.
40502 (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
40503 (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
40504 (is_a_helper <gimple_statement_with_ops>::test): Convert to...
40505 (is_a_helper <gimple_statement_with_ops *>::test): ...this.
40506 (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
40508 (is_a_helper <const gimple_statement_with_memory_ops *>::test):
40510 (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
40511 (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
40513 (gimple_use_ops): Update for removal of implicit pointer from the
40515 (gimple_set_use_ops): Likewise.
40516 (gimple_vuse): Likewise.
40517 (gimple_vdef): Likewise.
40518 (gimple_vuse_ptr): Likewise.
40519 (gimple_vdef_ptr): Likewise.
40520 (gimple_set_vuse): Likewise.
40521 (gimple_set_vdef): Likewise.
40522 (gimple_omp_return_set_lhs): Likewise.
40523 (gimple_omp_return_lhs): Likewise.
40524 (gimple_omp_return_lhs_ptr): Likewise.
40525 (gimple_call_fntype): Likewise.
40526 (gimple_call_set_fntype): Likewise.
40527 (gimple_call_set_internal_fn): Likewise.
40528 (gimple_call_use_set): Likewise.
40529 (gimple_call_clobber_set): Likewise.
40530 (gimple_bind_vars): Likewise.
40531 (gimple_bind_set_vars): Likewise.
40532 (gimple_bind_body_ptr): Likewise.
40533 (gimple_bind_set_body): Likewise.
40534 (gimple_bind_add_stmt): Likewise.
40535 (gimple_bind_block): Likewise.
40536 (gimple_bind_set_block): Likewise.
40537 (gimple_asm_ninputs): Likewise.
40538 (gimple_asm_noutputs): Likewise.
40539 (gimple_asm_nclobbers): Likewise.
40540 (gimple_asm_nlabels): Likewise.
40541 (gimple_asm_input_op): Likewise.
40542 (gimple_asm_input_op_ptr): Likewise.
40543 (gimple_asm_output_op): Likewise.
40544 (gimple_asm_output_op_ptr): Likewise.
40545 (gimple_asm_set_output_op): Likewise.
40546 (gimple_asm_clobber_op): Likewise.
40547 (gimple_asm_set_clobber_op): Likewise.
40548 (gimple_asm_label_op): Likewise.
40549 (gimple_asm_set_label_op): Likewise.
40550 (gimple_asm_string): Likewise.
40551 (gimple_catch_types): Likewise.
40552 (gimple_catch_types_ptr): Likewise.
40553 (gimple_catch_handler_ptr): Likewise.
40554 (gimple_catch_set_types): Likewise.
40555 (gimple_catch_set_handler): Likewise.
40556 (gimple_eh_filter_types): Likewise.
40557 (gimple_eh_filter_types_ptr): Likewise.
40558 (gimple_eh_filter_failure_ptr): Likewise.
40559 (gimple_eh_filter_set_types): Likewise.
40560 (gimple_eh_filter_set_failure): Likewise.
40561 (gimple_eh_must_not_throw_fndecl): Likewise.
40562 (gimple_eh_must_not_throw_set_fndecl): Likewise.
40563 (gimple_eh_else_n_body_ptr): Likewise.
40564 (gimple_eh_else_e_body_ptr): Likewise.
40565 (gimple_eh_else_set_n_body): Likewise.
40566 (gimple_eh_else_set_e_body): Likewise.
40567 (gimple_try_eval_ptr): Likewise.
40568 (gimple_try_cleanup_ptr): Likewise.
40569 (gimple_try_set_eval): Likewise.
40570 (gimple_try_set_cleanup): Likewise.
40571 (gimple_wce_cleanup_ptr): Likewise.
40572 (gimple_wce_set_cleanup): Likewise.
40573 (gimple_phi_capacity): Likewise.
40574 (gimple_phi_num_args): Likewise.
40575 (gimple_phi_result): Likewise.
40576 (gimple_phi_result_ptr): Likewise.
40577 (gimple_phi_set_result): Likewise.
40578 (gimple_phi_arg): Likewise.
40579 (gimple_phi_set_arg): Likewise.
40580 (gimple_resx_region): Likewise.
40581 (gimple_resx_set_region): Likewise.
40582 (gimple_eh_dispatch_region): Likewise.
40583 (gimple_eh_dispatch_set_region): Likewise.
40584 (gimple_omp_critical_name): Likewise.
40585 (gimple_omp_critical_name_ptr): Likewise.
40586 (gimple_omp_critical_set_name): Likewise.
40587 (gimple_omp_for_clauses): Likewise.
40588 (gimple_omp_for_clauses_ptr): Likewise.
40589 (gimple_omp_for_set_clauses): Likewise.
40590 (gimple_omp_for_collapse): Likewise.
40591 (gimple_omp_for_index): Likewise.
40592 (gimple_omp_for_index_ptr): Likewise.
40593 (gimple_omp_for_set_index): Likewise.
40594 (gimple_omp_for_initial): Likewise.
40595 (gimple_omp_for_initial_ptr): Likewise.
40596 (gimple_omp_for_set_initial): Likewise.
40597 (gimple_omp_for_final): Likewise.
40598 (gimple_omp_for_final_ptr): Likewise.
40599 (gimple_omp_for_set_final): Likewise.
40600 (gimple_omp_for_incr): Likewise.
40601 (gimple_omp_for_incr_ptr): Likewise.
40602 (gimple_omp_for_set_incr): Likewise.
40603 (gimple_omp_for_pre_body_ptr): Likewise.
40604 (gimple_omp_for_set_pre_body): Likewise.
40605 (gimple_omp_parallel_clauses): Likewise.
40606 (gimple_omp_parallel_clauses_ptr): Likewise.
40607 (gimple_omp_parallel_set_clauses): Likewise.
40608 (gimple_omp_parallel_child_fn): Likewise.
40609 (gimple_omp_parallel_child_fn_ptr): Likewise.
40610 (gimple_omp_parallel_set_child_fn): Likewise.
40611 (gimple_omp_parallel_data_arg): Likewise.
40612 (gimple_omp_parallel_data_arg_ptr): Likewise.
40613 (gimple_omp_parallel_set_data_arg): Likewise.
40614 (gimple_omp_task_clauses): Likewise.
40615 (gimple_omp_task_clauses_ptr): Likewise.
40616 (gimple_omp_task_set_clauses): Likewise.
40617 (gimple_omp_task_child_fn): Likewise.
40618 (gimple_omp_task_child_fn_ptr): Likewise.
40619 (gimple_omp_task_set_child_fn): Likewise.
40620 (gimple_omp_task_data_arg): Likewise.
40621 (gimple_omp_task_data_arg_ptr): Likewise.
40622 (gimple_omp_task_set_data_arg): Likewise.
40623 (gimple_omp_taskreg_clauses): Likewise.
40624 (gimple_omp_taskreg_clauses_ptr): Likewise.
40625 (gimple_omp_taskreg_set_clauses): Likewise.
40626 (gimple_omp_taskreg_child_fn): Likewise.
40627 (gimple_omp_taskreg_child_fn_ptr): Likewise.
40628 (gimple_omp_taskreg_set_child_fn): Likewise.
40629 (gimple_omp_taskreg_data_arg): Likewise.
40630 (gimple_omp_taskreg_data_arg_ptr): Likewise.
40631 (gimple_omp_taskreg_set_data_arg): Likewise.
40632 (gimple_omp_task_copy_fn): Likewise.
40633 (gimple_omp_task_copy_fn_ptr): Likewise.
40634 (gimple_omp_task_set_copy_fn): Likewise.
40635 (gimple_omp_task_arg_size): Likewise.
40636 (gimple_omp_task_arg_size_ptr): Likewise.
40637 (gimple_omp_task_set_arg_size): Likewise.
40638 (gimple_omp_task_arg_align): Likewise.
40639 (gimple_omp_task_arg_align_ptr): Likewise.
40640 (gimple_omp_task_set_arg_align): Likewise.
40641 (gimple_omp_single_clauses): Likewise.
40642 (gimple_omp_single_clauses_ptr): Likewise.
40643 (gimple_omp_single_set_clauses): Likewise.
40644 (gimple_omp_target_clauses): Likewise.
40645 (gimple_omp_target_clauses_ptr): Likewise.
40646 (gimple_omp_target_set_clauses): Likewise.
40647 (gimple_omp_target_child_fn): Likewise.
40648 (gimple_omp_target_child_fn_ptr): Likewise.
40649 (gimple_omp_target_set_child_fn): Likewise.
40650 (gimple_omp_target_data_arg): Likewise.
40651 (gimple_omp_target_data_arg_ptr): Likewise.
40652 (gimple_omp_target_set_data_arg): Likewise.
40653 (gimple_omp_teams_clauses): Likewise.
40654 (gimple_omp_teams_clauses_ptr): Likewise.
40655 (gimple_omp_teams_set_clauses): Likewise.
40656 (gimple_omp_sections_clauses): Likewise.
40657 (gimple_omp_sections_clauses_ptr): Likewise.
40658 (gimple_omp_sections_set_clauses): Likewise.
40659 (gimple_omp_sections_control): Likewise.
40660 (gimple_omp_sections_control_ptr): Likewise.
40661 (gimple_omp_sections_set_control): Likewise.
40662 (gimple_omp_for_set_cond): Likewise.
40663 (gimple_omp_for_cond): Likewise.
40664 (gimple_omp_atomic_store_set_val): Likewise.
40665 (gimple_omp_atomic_store_val): Likewise.
40666 (gimple_omp_atomic_store_val_ptr): Likewise.
40667 (gimple_omp_atomic_load_set_lhs): Likewise.
40668 (gimple_omp_atomic_load_lhs): Likewise.
40669 (gimple_omp_atomic_load_lhs_ptr): Likewise.
40670 (gimple_omp_atomic_load_set_rhs): Likewise.
40671 (gimple_omp_atomic_load_rhs): Likewise.
40672 (gimple_omp_atomic_load_rhs_ptr): Likewise.
40673 (gimple_omp_continue_control_def): Likewise.
40674 (gimple_omp_continue_control_def_ptr): Likewise.
40675 (gimple_omp_continue_set_control_def): Likewise.
40676 (gimple_omp_continue_control_use): Likewise.
40677 (gimple_omp_continue_control_use_ptr): Likewise.
40678 (gimple_omp_continue_set_control_use): Likewise.
40679 (gimple_transaction_body_ptr): Likewise.
40680 (gimple_transaction_label): Likewise.
40681 (gimple_transaction_label_ptr): Likewise.
40682 (gimple_transaction_set_body): Likewise.
40683 (gimple_transaction_set_label): Likewise.
40685 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
40686 * ipa-inline-analysis.c (inline_write_summary): Likewise.
40687 * ipa-ref.c (ipa_record_reference): Likewise.
40688 * ipa-reference.c (analyze_function): Likewise.
40689 (ipa_reference_write_optimization_summary): Likewise.
40690 * ipa.c (symtab_remove_unreachable_nodes): Likewise.
40691 (address_taken_from_non_vtable_p): Likewise.
40692 (comdat_can_be_unshared_p_1): Likewise.
40693 * lto-cgraph.c (lto_output_ref): Likewise.
40694 (add_references): Likewise.
40695 (compute_ltrans_boundary): Likewise.
40696 (output_symtab): Likewise.
40697 (input_ref): Likewise.
40698 (input_cgraph_1): Likewise.
40699 (output_cgraph_opt_summary): Likewise.
40700 * lto-streamer-out.c (lto_output): Likewise.
40701 (output_symbol_p): Likewise.
40702 * lto-streamer.h (lsei_next_function_in_partition): Likewise.
40703 (lsei_start_function_in_partition): Likewise.
40704 (lsei_next_variable_in_partition): Likewise.
40705 (lsei_start_variable_in_partition): Likewise.
40706 * symtab.c (insert_to_assembler_name_hash): Likewise.
40707 (unlink_from_assembler_name_hash): Likewise.
40708 (symtab_unregister_node): Likewise.
40709 (symtab_remove_node): Likewise.
40710 (dump_symtab_node): Likewise.
40711 (verify_symtab_base): Likewise.
40712 (verify_symtab_node): Likewise.
40713 (symtab_make_decl_local): Likewise.
40714 (symtab_alias_ultimate_target): Likewise.
40715 (symtab_resolve_alias): Likewise.
40716 (symtab_get_symbol_partitioning_class): Likewise.
40717 * tree-phinodes.c (allocate_phi_node): Likewise.
40718 (reserve_phi_args_for_new_edge): Likewise.
40719 (remove_phi_args): Likewise.
40720 * varpool.c (varpool_node_for_asm): Likewise.
40721 (varpool_remove_unreferenced_decls): Likewise.
40723 2014-04-23 Jeff Law <law@redhat.com>
40725 PR tree-optimization/60902
40726 * tree-ssa-threadedge.c
40727 (record_temporary_equivalences_from_stmts_at_dest): Make sure to
40728 invalidate outputs from statements that do not produce useful
40729 outputs for threading.
40731 2014-04-23 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
40733 * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
40734 (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
40735 machine descriptions for Stack Smashing Protector.
40737 2014-04-23 Richard Earnshaw <rearnsha@arm.com>
40739 * aarch64.md (<optab>_rol<mode>3): New pattern.
40740 (<optab>_rolsi3_uxtw): Likewise.
40741 * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
40743 2014-04-23 James Greenhalgh <james.greenhalgh@arm.com>
40745 * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
40746 (arm_cortex_a12_tune): Likewise.
40748 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40750 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
40752 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40754 * config/arm/arm.md (arm_rev16si2): New pattern.
40755 (arm_rev16si2_alt): Likewise.
40756 * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
40758 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40760 * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
40761 (rev16<mode>2_alt): Likewise.
40762 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
40763 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
40764 (aarch_rev16_shleft_mask_imm_p): Likewise.
40765 (aarch_rev16_p_1): Likewise.
40766 (aarch_rev16_p): Likewise.
40767 * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
40768 (aarch_rev16_shright_mask_imm_p): Likewise.
40769 (aarch_rev16_shleft_mask_imm_p): Likewise.
40771 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40773 * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
40774 * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
40776 (cortex_a53_extra_costs): Likewise.
40777 (cortex_a57_extra_costs): Likewise.
40778 * config/arm/arm.c (cortexa9_extra_costs): Likewise.
40779 (cortexa7_extra_costs): Likewise.
40780 (cortexa8_extra_costs): Likewise.
40781 (cortexa12_extra_costs): Likewise.
40782 (cortexa15_extra_costs): Likewise.
40783 (v7m_extra_costs): Likewise.
40784 (arm_new_rtx_costs): Handle BSWAP.
40786 2013-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40788 * config/arm/arm.c (cortexa8_extra_costs): New table.
40789 (arm_cortex_a8_tune): New tuning struct.
40790 * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
40792 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40794 * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
40796 2014-04-23 Richard Biener <rguenther@suse.de>
40798 * Makefile.in (OBJS): Remove loop-unswitch.o.
40799 * tree-pass.h (make_pass_rtl_unswitch): Remove.
40800 * passes.def (pass_rtl_unswitch): Likewise.
40801 * loop-init.c (gate_rtl_unswitch): Likewise.
40802 (rtl_unswitch): Likewise.
40803 (pass_data_rtl_unswitch): Likewise.
40804 (pass_rtl_unswitch): Likewise.
40805 (make_pass_rtl_unswitch): Likewise.
40806 * rtl.h (reversed_condition): Likewise.
40807 (compare_and_jump_seq): Likewise.
40808 * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
40810 * loop-unroll.c (compare_and_jump_seq): Likewise.
40812 2014-04-23 Richard Biener <rguenther@suse.de>
40814 PR tree-optimization/60903
40815 * tree-ssa-loop-im.c (analyze_memory_references): Remove
40816 commented code block.
40817 (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
40818 loop flags to newly created BBs and edges.
40820 2014-04-23 Nick Clifton <nickc@redhat.com>
40822 * config/msp430/msp430.c (msp430_handle_option): Move function
40824 (msp430_option_override): Simplify mcu and mcpu option handling.
40825 (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult. Add
40826 support for -mhwmult command line option.
40827 (has_32bit_hwmult): Rename to use_32bit_hwmult. Add support for
40828 -mhwmult command line option.
40829 (msp430_hwmult_enabled): Delete.
40830 (msp43o_output_labelref): Add support for -mhwmult command line option.
40831 * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
40832 (umulsidi3): Likewise.
40833 * config/msp430/msp430.opt (mmcu): Add Report attribute.
40834 (mcpu, mlarge, msmall): Likewise.
40835 (mhwmult): New option.
40836 * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
40838 (msp430_is_f5_mcu): Remove prototype.
40839 (msp430_use_f5_series_hwmult): Add prototype.
40840 * config/msp430/msp430-opts.h: New file.
40841 * common/config/msp430: New directory.
40842 * common/config/msp430/msp430-common.c: New file.
40843 * config.gcc (msp430): Remove target_has_targetm_common.
40844 * doc/invoke.texi: Document -mhwmult command line option.
40846 2014-04-23 Nick Clifton <nickc@redhat.com>
40848 * config/i386/cygwin.h (ENDFILE_SPEC): Include
40849 default-manifest.o if it can be found in the search path.
40850 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
40852 2014-04-23 Terry Guo <terry.guo@arm.com>
40854 * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
40856 2014-04-23 Richard Biener <rguenther@suse.de>
40858 PR middle-end/60895
40859 * tree-inline.c (declare_return_variable): Use mark_addressable.
40861 2014-04-23 Richard Biener <rguenther@suse.de>
40863 PR middle-end/60891
40864 * loop-init.c (loop_optimizer_init): Make sure to apply
40865 LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
40867 2014-04-22 Jakub Jelinek <jakub@redhat.com>
40870 * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
40872 * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
40873 if flag_sanitize_undefined_trap_on_error.
40874 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
40875 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
40876 BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
40877 BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
40878 BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
40879 BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
40880 BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
40881 BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
40882 BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
40883 * ubsan.c (ubsan_instrument_unreachable): Return
40884 __builtin_trap () if flag_sanitize_undefined_trap_on_error.
40885 (ubsan_expand_null_ifn): Emit __builtin_trap ()
40886 if flag_sanitize_undefined_trap_on_error and
40887 __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
40888 (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
40889 instrument_bool_enum_load): Emit __builtin_trap () if
40890 flag_sanitize_undefined_trap_on_error and
40891 __builtin_handle_*_abort () if !flag_sanitize_recover.
40892 * doc/invoke.texi (-fsanitize-recover,
40893 -fsanitize-undefined-trap-on-error): Document.
40895 2014-04-22 Christian Bruel <christian.bruel@st.com>
40897 * config/sh/sh.md (mov<mode>): Replace movQIHI.
40898 Force immediates to SImode.
40900 2014-04-22 Sandra Loosemore <sandra@codesourcery.com>
40902 * config/nios2/nios2.md (UNSPEC_ROUND): New.
40903 (lroundsfsi2): New.
40904 * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
40905 * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
40906 * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
40907 (nios2_fpu_insn): Add entry for round.
40908 (N2FPU_NO_ERRNO_P): Define.
40909 (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
40911 * doc/invoke.texi (Nios II Options): Document -mcustom-round.
40913 2014-04-22 Richard Henderson <rth@redhat.com>
40915 * config/aarch64/aarch64 (addti3, subti3): New expanders.
40916 (add<GPI>3_compare0): Remove leading * from name.
40917 (add<GPI>3_carryin): Likewise.
40918 (sub<GPI>3_compare0): Likewise.
40919 (sub<GPI>3_carryin): Likewise.
40920 (<su_optab>mulditi3): New expander.
40921 (multi3): New expander.
40922 (madd<GPI>): Remove leading * from name.
40924 2014-04-22 Martin Jambor <mjambor@suse.cz>
40926 * cgraphclones.c (cgraph_function_versioning): Copy
40927 ipa_transforms_to_apply instead of asserting it is empty.
40929 2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
40932 * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
40933 on count_exp to get mode.
40935 2014-04-22 Andrew Pinski <apinski@cavium.com>
40937 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
40938 Handle TLS for ILP32.
40939 * config/aarch64/aarch64.md (tlsie_small): Rename to ...
40940 (tlsie_small_<mode>): this and handle PTR.
40941 (tlsie_small_sidi): New pattern.
40942 (tlsle_small): Change to an expand to handle ILP32.
40943 (tlsle_small_<mode>): New pattern.
40944 (tlsdesc_small): Rename to ...
40945 (tlsdesc_small_<mode>): this and handle PTR.
40947 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
40949 * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
40951 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
40953 * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
40954 (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
40955 (aarch64_types_signed_poly_qualifiers): Likewise.
40956 (aarch64_types_unsigned_signed_qualifiers): Likewise.
40957 (aarch64_types_poly_signed_qualifiers): Likewise.
40958 (TYPES_REINTERP_SS): Type macro added.
40959 (TYPES_REINTERP_SU): Likewise.
40960 (TYPES_REINTERP_SP): Likewise.
40961 (TYPES_REINTERP_US): Likewise.
40962 (TYPES_REINTERP_PS): Likewise.
40963 (aarch64_fold_builtin): New expression folding added.
40964 * config/aarch64/aarch64-simd-builtins.def (REINTERP):
40965 Declarations removed.
40966 (REINTERP_SS): Declarations added.
40967 (REINTERP_US): Likewise.
40968 (REINTERP_PS): Likewise.
40969 (REINTERP_SU): Likewise.
40970 (REINTERP_SP): Likewise.
40971 * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
40972 (vreinterpretq_p8_f64): Likewise.
40973 (vreinterpret_p16_f64): Likewise.
40974 (vreinterpretq_p16_f64): Likewise.
40975 (vreinterpret_f32_f64): Likewise.
40976 (vreinterpretq_f32_f64): Likewise.
40977 (vreinterpret_f64_f32): Likewise.
40978 (vreinterpret_f64_p8): Likewise.
40979 (vreinterpret_f64_p16): Likewise.
40980 (vreinterpret_f64_s8): Likewise.
40981 (vreinterpret_f64_s16): Likewise.
40982 (vreinterpret_f64_s32): Likewise.
40983 (vreinterpret_f64_s64): Likewise.
40984 (vreinterpret_f64_u8): Likewise.
40985 (vreinterpret_f64_u16): Likewise.
40986 (vreinterpret_f64_u32): Likewise.
40987 (vreinterpret_f64_u64): Likewise.
40988 (vreinterpretq_f64_f32): Likewise.
40989 (vreinterpretq_f64_p8): Likewise.
40990 (vreinterpretq_f64_p16): Likewise.
40991 (vreinterpretq_f64_s8): Likewise.
40992 (vreinterpretq_f64_s16): Likewise.
40993 (vreinterpretq_f64_s32): Likewise.
40994 (vreinterpretq_f64_s64): Likewise.
40995 (vreinterpretq_f64_u8): Likewise.
40996 (vreinterpretq_f64_u16): Likewise.
40997 (vreinterpretq_f64_u32): Likewise.
40998 (vreinterpretq_f64_u64): Likewise.
40999 (vreinterpret_s64_f64): Likewise.
41000 (vreinterpretq_s64_f64): Likewise.
41001 (vreinterpret_u64_f64): Likewise.
41002 (vreinterpretq_u64_f64): Likewise.
41003 (vreinterpret_s8_f64): Likewise.
41004 (vreinterpretq_s8_f64): Likewise.
41005 (vreinterpret_s16_f64): Likewise.
41006 (vreinterpretq_s16_f64): Likewise.
41007 (vreinterpret_s32_f64): Likewise.
41008 (vreinterpretq_s32_f64): Likewise.
41009 (vreinterpret_u8_f64): Likewise.
41010 (vreinterpretq_u8_f64): Likewise.
41011 (vreinterpret_u16_f64): Likewise.
41012 (vreinterpretq_u16_f64): Likewise.
41013 (vreinterpret_u32_f64): Likewise.
41014 (vreinterpretq_u32_f64): Likewise.
41016 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
41018 * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
41019 * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
41020 (vreinterpret_p8_s8): Likewise.
41021 * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
41022 (vreinterpret_p8_s16): Likewise.
41023 (vreinterpret_p8_s32): Likewise.
41024 (vreinterpret_p8_s64): Likewise.
41025 (vreinterpret_p8_f32): Likewise.
41026 (vreinterpret_p8_u8): Likewise.
41027 (vreinterpret_p8_u16): Likewise.
41028 (vreinterpret_p8_u32): Likewise.
41029 (vreinterpret_p8_u64): Likewise.
41030 (vreinterpret_p8_p16): Likewise.
41031 (vreinterpretq_p8_s8): Likewise.
41032 (vreinterpretq_p8_s16): Likewise.
41033 (vreinterpretq_p8_s32): Likewise.
41034 (vreinterpretq_p8_s64): Likewise.
41035 (vreinterpretq_p8_f32): Likewise.
41036 (vreinterpretq_p8_u8): Likewise.
41037 (vreinterpretq_p8_u16): Likewise.
41038 (vreinterpretq_p8_u32): Likewise.
41039 (vreinterpretq_p8_u64): Likewise.
41040 (vreinterpretq_p8_p16): Likewise.
41041 (vreinterpret_p16_s8): Likewise.
41042 (vreinterpret_p16_s16): Likewise.
41043 (vreinterpret_p16_s32): Likewise.
41044 (vreinterpret_p16_s64): Likewise.
41045 (vreinterpret_p16_f32): Likewise.
41046 (vreinterpret_p16_u8): Likewise.
41047 (vreinterpret_p16_u16): Likewise.
41048 (vreinterpret_p16_u32): Likewise.
41049 (vreinterpret_p16_u64): Likewise.
41050 (vreinterpret_p16_p8): Likewise.
41051 (vreinterpretq_p16_s8): Likewise.
41052 (vreinterpretq_p16_s16): Likewise.
41053 (vreinterpretq_p16_s32): Likewise.
41054 (vreinterpretq_p16_s64): Likewise.
41055 (vreinterpretq_p16_f32): Likewise.
41056 (vreinterpretq_p16_u8): Likewise.
41057 (vreinterpretq_p16_u16): Likewise.
41058 (vreinterpretq_p16_u32): Likewise.
41059 (vreinterpretq_p16_u64): Likewise.
41060 (vreinterpretq_p16_p8): Likewise.
41061 (vreinterpret_f32_s8): Likewise.
41062 (vreinterpret_f32_s16): Likewise.
41063 (vreinterpret_f32_s32): Likewise.
41064 (vreinterpret_f32_s64): Likewise.
41065 (vreinterpret_f32_u8): Likewise.
41066 (vreinterpret_f32_u16): Likewise.
41067 (vreinterpret_f32_u32): Likewise.
41068 (vreinterpret_f32_u64): Likewise.
41069 (vreinterpret_f32_p8): Likewise.
41070 (vreinterpret_f32_p16): Likewise.
41071 (vreinterpretq_f32_s8): Likewise.
41072 (vreinterpretq_f32_s16): Likewise.
41073 (vreinterpretq_f32_s32): Likewise.
41074 (vreinterpretq_f32_s64): Likewise.
41075 (vreinterpretq_f32_u8): Likewise.
41076 (vreinterpretq_f32_u16): Likewise.
41077 (vreinterpretq_f32_u32): Likewise.
41078 (vreinterpretq_f32_u64): Likewise.
41079 (vreinterpretq_f32_p8): Likewise.
41080 (vreinterpretq_f32_p16): Likewise.
41081 (vreinterpret_s64_s8): Likewise.
41082 (vreinterpret_s64_s16): Likewise.
41083 (vreinterpret_s64_s32): Likewise.
41084 (vreinterpret_s64_f32): Likewise.
41085 (vreinterpret_s64_u8): Likewise.
41086 (vreinterpret_s64_u16): Likewise.
41087 (vreinterpret_s64_u32): Likewise.
41088 (vreinterpret_s64_u64): Likewise.
41089 (vreinterpret_s64_p8): Likewise.
41090 (vreinterpret_s64_p16): Likewise.
41091 (vreinterpretq_s64_s8): Likewise.
41092 (vreinterpretq_s64_s16): Likewise.
41093 (vreinterpretq_s64_s32): Likewise.
41094 (vreinterpretq_s64_f32): Likewise.
41095 (vreinterpretq_s64_u8): Likewise.
41096 (vreinterpretq_s64_u16): Likewise.
41097 (vreinterpretq_s64_u32): Likewise.
41098 (vreinterpretq_s64_u64): Likewise.
41099 (vreinterpretq_s64_p8): Likewise.
41100 (vreinterpretq_s64_p16): Likewise.
41101 (vreinterpret_u64_s8): Likewise.
41102 (vreinterpret_u64_s16): Likewise.
41103 (vreinterpret_u64_s32): Likewise.
41104 (vreinterpret_u64_s64): Likewise.
41105 (vreinterpret_u64_f32): Likewise.
41106 (vreinterpret_u64_u8): Likewise.
41107 (vreinterpret_u64_u16): Likewise.
41108 (vreinterpret_u64_u32): Likewise.
41109 (vreinterpret_u64_p8): Likewise.
41110 (vreinterpret_u64_p16): Likewise.
41111 (vreinterpretq_u64_s8): Likewise.
41112 (vreinterpretq_u64_s16): Likewise.
41113 (vreinterpretq_u64_s32): Likewise.
41114 (vreinterpretq_u64_s64): Likewise.
41115 (vreinterpretq_u64_f32): Likewise.
41116 (vreinterpretq_u64_u8): Likewise.
41117 (vreinterpretq_u64_u16): Likewise.
41118 (vreinterpretq_u64_u32): Likewise.
41119 (vreinterpretq_u64_p8): Likewise.
41120 (vreinterpretq_u64_p16): Likewise.
41121 (vreinterpret_s8_s16): Likewise.
41122 (vreinterpret_s8_s32): Likewise.
41123 (vreinterpret_s8_s64): Likewise.
41124 (vreinterpret_s8_f32): Likewise.
41125 (vreinterpret_s8_u8): Likewise.
41126 (vreinterpret_s8_u16): Likewise.
41127 (vreinterpret_s8_u32): Likewise.
41128 (vreinterpret_s8_u64): Likewise.
41129 (vreinterpret_s8_p8): Likewise.
41130 (vreinterpret_s8_p16): Likewise.
41131 (vreinterpretq_s8_s16): Likewise.
41132 (vreinterpretq_s8_s32): Likewise.
41133 (vreinterpretq_s8_s64): Likewise.
41134 (vreinterpretq_s8_f32): Likewise.
41135 (vreinterpretq_s8_u8): Likewise.
41136 (vreinterpretq_s8_u16): Likewise.
41137 (vreinterpretq_s8_u32): Likewise.
41138 (vreinterpretq_s8_u64): Likewise.
41139 (vreinterpretq_s8_p8): Likewise.
41140 (vreinterpretq_s8_p16): Likewise.
41141 (vreinterpret_s16_s8): Likewise.
41142 (vreinterpret_s16_s32): Likewise.
41143 (vreinterpret_s16_s64): Likewise.
41144 (vreinterpret_s16_f32): Likewise.
41145 (vreinterpret_s16_u8): Likewise.
41146 (vreinterpret_s16_u16): Likewise.
41147 (vreinterpret_s16_u32): Likewise.
41148 (vreinterpret_s16_u64): Likewise.
41149 (vreinterpret_s16_p8): Likewise.
41150 (vreinterpret_s16_p16): Likewise.
41151 (vreinterpretq_s16_s8): Likewise.
41152 (vreinterpretq_s16_s32): Likewise.
41153 (vreinterpretq_s16_s64): Likewise.
41154 (vreinterpretq_s16_f32): Likewise.
41155 (vreinterpretq_s16_u8): Likewise.
41156 (vreinterpretq_s16_u16): Likewise.
41157 (vreinterpretq_s16_u32): Likewise.
41158 (vreinterpretq_s16_u64): Likewise.
41159 (vreinterpretq_s16_p8): Likewise.
41160 (vreinterpretq_s16_p16): Likewise.
41161 (vreinterpret_s32_s8): Likewise.
41162 (vreinterpret_s32_s16): Likewise.
41163 (vreinterpret_s32_s64): Likewise.
41164 (vreinterpret_s32_f32): Likewise.
41165 (vreinterpret_s32_u8): Likewise.
41166 (vreinterpret_s32_u16): Likewise.
41167 (vreinterpret_s32_u32): Likewise.
41168 (vreinterpret_s32_u64): Likewise.
41169 (vreinterpret_s32_p8): Likewise.
41170 (vreinterpret_s32_p16): Likewise.
41171 (vreinterpretq_s32_s8): Likewise.
41172 (vreinterpretq_s32_s16): Likewise.
41173 (vreinterpretq_s32_s64): Likewise.
41174 (vreinterpretq_s32_f32): Likewise.
41175 (vreinterpretq_s32_u8): Likewise.
41176 (vreinterpretq_s32_u16): Likewise.
41177 (vreinterpretq_s32_u32): Likewise.
41178 (vreinterpretq_s32_u64): Likewise.
41179 (vreinterpretq_s32_p8): Likewise.
41180 (vreinterpretq_s32_p16): Likewise.
41181 (vreinterpret_u8_s8): Likewise.
41182 (vreinterpret_u8_s16): Likewise.
41183 (vreinterpret_u8_s32): Likewise.
41184 (vreinterpret_u8_s64): Likewise.
41185 (vreinterpret_u8_f32): Likewise.
41186 (vreinterpret_u8_u16): Likewise.
41187 (vreinterpret_u8_u32): Likewise.
41188 (vreinterpret_u8_u64): Likewise.
41189 (vreinterpret_u8_p8): Likewise.
41190 (vreinterpret_u8_p16): Likewise.
41191 (vreinterpretq_u8_s8): Likewise.
41192 (vreinterpretq_u8_s16): Likewise.
41193 (vreinterpretq_u8_s32): Likewise.
41194 (vreinterpretq_u8_s64): Likewise.
41195 (vreinterpretq_u8_f32): Likewise.
41196 (vreinterpretq_u8_u16): Likewise.
41197 (vreinterpretq_u8_u32): Likewise.
41198 (vreinterpretq_u8_u64): Likewise.
41199 (vreinterpretq_u8_p8): Likewise.
41200 (vreinterpretq_u8_p16): Likewise.
41201 (vreinterpret_u16_s8): Likewise.
41202 (vreinterpret_u16_s16): Likewise.
41203 (vreinterpret_u16_s32): Likewise.
41204 (vreinterpret_u16_s64): Likewise.
41205 (vreinterpret_u16_f32): Likewise.
41206 (vreinterpret_u16_u8): Likewise.
41207 (vreinterpret_u16_u32): Likewise.
41208 (vreinterpret_u16_u64): Likewise.
41209 (vreinterpret_u16_p8): Likewise.
41210 (vreinterpret_u16_p16): Likewise.
41211 (vreinterpretq_u16_s8): Likewise.
41212 (vreinterpretq_u16_s16): Likewise.
41213 (vreinterpretq_u16_s32): Likewise.
41214 (vreinterpretq_u16_s64): Likewise.
41215 (vreinterpretq_u16_f32): Likewise.
41216 (vreinterpretq_u16_u8): Likewise.
41217 (vreinterpretq_u16_u32): Likewise.
41218 (vreinterpretq_u16_u64): Likewise.
41219 (vreinterpretq_u16_p8): Likewise.
41220 (vreinterpretq_u16_p16): Likewise.
41221 (vreinterpret_u32_s8): Likewise.
41222 (vreinterpret_u32_s16): Likewise.
41223 (vreinterpret_u32_s32): Likewise.
41224 (vreinterpret_u32_s64): Likewise.
41225 (vreinterpret_u32_f32): Likewise.
41226 (vreinterpret_u32_u8): Likewise.
41227 (vreinterpret_u32_u16): Likewise.
41228 (vreinterpret_u32_u64): Likewise.
41229 (vreinterpret_u32_p8): Likewise.
41230 (vreinterpret_u32_p16): Likewise.
41231 (vreinterpretq_u32_s8): Likewise.
41232 (vreinterpretq_u32_s16): Likewise.
41233 (vreinterpretq_u32_s32): Likewise.
41234 (vreinterpretq_u32_s64): Likewise.
41235 (vreinterpretq_u32_f32): Likewise.
41236 (vreinterpretq_u32_u8): Likewise.
41237 (vreinterpretq_u32_u16): Likewise.
41238 (vreinterpretq_u32_u64): Likewise.
41239 (vreinterpretq_u32_p8): Likewise.
41240 (vreinterpretq_u32_p16): Likewise.
41242 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
41244 * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
41246 * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
41248 * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
41249 (vqnegd_s64): Likewise.
41250 (vqabs_s64): Likewise.
41251 (vqabsd_s64): Likewise.
41253 2014-04-22 Richard Henderson <rth@redhat.com>
41255 * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
41256 computation to the top of the loop.
41258 2014-04-22 Renlin <renlin.li@arm.com>
41259 Jiong Wang <jiong.wang@arm.com>
41261 * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
41262 * config/aarch64/aarch64.c (aarch64_layout_frame)
41263 (aarch64_initial_elimination_offset): Likewise.
41265 2014-04-22 Marcus Shawcroft <marcus.shawcroft@arm.com>
41267 * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
41270 2014-04-22 Richard Sandiford <rdsandiford@googlemail.com>
41272 * machmode.h (bitwise_mode_for_mode): Declare.
41273 * stor-layout.h (bitwise_type_for_mode): Likewise.
41274 * stor-layout.c (bitwise_mode_for_mode): New function.
41275 (bitwise_type_for_mode): Likewise.
41276 * builtins.c (fold_builtin_memory_op): Use it instead of
41277 int_mode_for_mode and build_nonstandard_integer_type.
41279 2014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
41281 * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
41282 (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
41283 (*-*-solaris2*): Simplify.
41284 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
41285 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
41286 *-*-solaris2.9* handling.
41288 * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
41290 (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
41291 (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
41292 handling, simplify.
41293 (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
41294 * configure: Regenerate.
41296 * config/i386/sol2-9.h: Remove.
41298 * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
41299 (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
41300 Remove Solaris 9 references.
41302 2014-04-22 Vidya Praveen <vidyapraveen@arm.com>
41304 * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
41305 (floatuns<GPI:mode><GPF:mode>2): Remove.
41306 (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
41307 and floatuns conversions.
41308 (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
41309 and floatuns conversions.
41310 * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
41311 (w1,w2): New mode attributes for inequal width conversions.
41313 2014-04-22 Renlin Li <Renlin.Li@arm.com>
41315 * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
41316 the output asm format.
41318 2014-04-22 James Greenhalgh <james.greenhalgh@arm.com>
41320 * config/aarch64/aarch64-simd.md
41321 (aarch64_cm<optab>di): Always split.
41322 (*aarch64_cm<optab>di): New.
41323 (aarch64_cmtstdi): Always split.
41324 (*aarch64_cmtstdi): New.
41326 2014-04-22 Jakub Jelinek <jakub@redhat.com>
41328 PR tree-optimization/60823
41329 * omp-low.c (ipa_simd_modify_function_body): Go through
41330 all SSA_NAMEs and for those refering to vector arguments
41331 which are going to be replaced adjust SSA_NAME_VAR and,
41332 if it is a default definition, change it into a non-default
41333 definition assigned at the beginning of function from new_decl.
41334 (ipa_simd_modify_stmt_ops): Rewritten.
41335 * tree-dfa.c (set_ssa_default_def): When removing default def,
41336 check for NULL loc instead of NULL *loc.
41338 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
41340 * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
41341 restrictions on core registers for DImode values in Thumb2.
41343 2014-04-22 Ian Bolton <ian.bolton@arm.com>
41345 * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
41346 * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
41348 2014-04-22 Ian Bolton <ian.bolton@arm.com>
41350 * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
41351 (*iordi_notzesidi_di): Likewise.
41352 (*iordi_notsesidi_di): Likewise.
41354 2014-04-22 Ian Bolton <ian.bolton@arm.com>
41356 * config/arm/arm-protos.h (tune_params): New struct members.
41357 * config/arm/arm.c: Initialise tune_params per processor.
41358 (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
41359 for speed, based on new tune_params.
41361 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
41363 * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
41364 * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
41365 * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
41366 * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
41367 * config/aarch64/arm_neon.h (vrnd_f64): Added.
41368 (vrnda_f64): Likewise.
41369 (vrndi_f64): Likewise.
41370 (vrndm_f64): Likewise.
41371 (vrndn_f64): Likewise.
41372 (vrndp_f64): Likewise.
41373 (vrndx_f64): Likewise.
41375 2014-04-22 Zhenqiang Chen <zhenqiang.chen@linaro.org>
41377 * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
41378 GET_MODE_SIZE argument is enum machine_mode.
41380 2014-04-22 Jakub Jelinek <jakub@redhat.com>
41383 * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
41384 value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
41386 2014-04-22 Lin Zuojian <manjian2006@gmail.com>
41388 PR middle-end/60281
41389 * asan.c (asan_emit_stack_protection): Force the base to align to
41390 appropriate bits if STRICT_ALIGNMENT. Set shadow_mem align to
41391 appropriate bits if STRICT_ALIGNMENT.
41392 * cfgexpand.c (expand_stack_vars): Set base_align appropriately
41394 (expand_used_vars): Leave a space in the stack frame for alignment
41395 if STRICT_ALIGNMENT.
41397 2014-04-21 David Malcolm <dmalcolm@redhat.com>
41399 * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
41401 (gimple_store_p): Likewise.
41402 (gimple_assign_load_p): Likewise.
41403 (gimple_assign_cast_p): Likewise.
41404 (gimple_clobber_p): Likewise.
41406 * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
41407 rather than a gimple.
41408 (gimple_assign_cast_p): Likewise.
41410 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
41413 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
41414 If mode is DDmode and TARGET_E500_DOUBLE allow move.
41416 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
41417 more debug information for E500 if -mdebug=reg.
41419 2014-04-21 Uros Bizjak <ubizjak@gmail.com>
41422 * config/i386/i386.c (ix86_expand_builtin)
41423 <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
41424 register for target RTX.
41425 <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
41427 2014-04-18 Cong Hou <congh@google.com>
41429 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
41430 the widen-mult pattern by handling two operands with different sizes,
41431 and operands whose size is smaller than half of the result type.
41433 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
41435 * ipa-inline.h (INLINE_HINT_known_hot): New hint.
41436 * ipa-inline-analysis.c (dump_inline_hints): Dump it.
41437 (do_estimate_edge_time): Compute it.
41438 * ipa-inline.c (want_inline_small_function_p): Bypass
41439 INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
41441 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
41443 * ipa-inline.c (spec_rem): New static variable.
41444 (dump_overall_stats): New function.
41445 (dump_inline_stats): New function.
41447 2014-04-18 Richard Henderson <rth@redhat.com>
41449 * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
41450 to GET_MODE_SIZE, not a reg_class_t.
41452 2014-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
41454 * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
41455 (vsx_xxmrglw_<mode>): Likewise.
41457 2014-04-17 Michael Meissner <meissner@linux.vnet.ibm.com>
41460 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
41461 GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
41462 (rs6000_init_hard_regno_mode_ok): Likewise.
41464 2014-04-17 Jan Hubicka <hubicka@ucw.cz>
41466 * ipa-inline.c (inline_small_functions): Account only non-cold
41468 * doc/invoke.texi (inline-unit-growth): Update documentation.
41470 2014-04-17 Pat Haugen <pthaugen@us.ibm.com>
41472 * config/rs6000/rs6000.md (addti3, subti3): New.
41474 2014-04-17 H.J. Lu <hongjiu.lu@intel.com>
41477 * config/i386/i386.c (ix86_expand_clear): Remove outdated
41478 comment. Check optimize_insn_for_size_p instead of
41479 optimize_insn_for_speed_p.
41481 2014-04-17 Martin Jambor <mjambor@suse.cz>
41483 * gimple-iterator.c (gsi_start_edge): New function.
41484 * gimple-iterator.h (gsi_start_edge): Declare.
41485 * tree-sra.c (single_non_eh_succ): New function.
41486 (disqualify_ops_if_throwing_stmt): Renamed to
41487 disqualify_if_bad_bb_terminating_stmt. Allow throwing statements
41488 having one non-EH successor BB.
41489 (sra_modify_expr): If stmt ends bb, use single non-EH successor to
41490 generate loads into replacements.
41491 (sra_modify_assign): Likewise and and also use the simple path for
41493 (sra_modify_function_body): Commit statements on edges.
41495 2014-04-17 Richard Biener <rguenther@suse.de>
41497 PR middle-end/60849
41498 * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
41499 comparison results and add clarifying comment.
41501 2014-04-17 Jakub Jelinek <jakub@redhat.com>
41503 * genmodes.c (struct mode_data): Add need_bytesize_adj field.
41504 (blank_mode): Initialize it.
41505 (emit_mode_size_inline, emit_mode_nunits_inline,
41506 emit_mode_inner_inline): New functions.
41507 (emit_insn_modes_h): Call them and surround their output with
41508 #if GCC_VERSION >= 4001 ... #endif.
41509 * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
41510 For GCC_VERSION >= 4001 use mode_*_inline routines instead of
41511 mode_* arrays if the argument is __builtin_constant_p.
41512 * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
41513 is enum machine_mode.
41515 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
41517 * passes.c (opt_pass::execute): Adjust.
41518 (pass_manager::execute_pass_mode_switching): Likewise.
41519 (early_local_passes::execute): Likewise.
41520 (execute_one_pass): Pass cfun to the pass's execute method.
41521 * tree-pass.h (opt_pass::execute): Add function * argument.
41522 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
41523 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
41524 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
41525 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
41526 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
41527 config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
41528 except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
41529 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
41530 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
41531 ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
41532 ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
41533 lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
41534 postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
41535 reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
41536 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
41537 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
41538 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
41539 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
41540 tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
41541 tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
41542 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
41543 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
41544 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
41545 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
41546 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
41547 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
41548 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
41549 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
41550 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
41553 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
41555 * passes.c (opt_pass::gate): Take function * argument.
41556 (gate_all_early_local_passes): Merge into
41557 (early_local_passes::gate): this.
41558 (gate_all_early_optimizations): Merge into
41559 (all_early_optimizations::gate): this.
41560 (gate_all_optimizations): Mege into
41561 (all_optimizations::gate): this.
41562 (gate_all_optimizations_g): Merge into
41563 (all_optimizations_g::gate): this.
41564 (gate_rest_of_compilation): Mege into
41565 (rest_of_compilation::gate): this.
41566 (gate_postreload): Merge into
41567 (postreload::gate): this.
41568 (dump_one_pass): Pass cfun to the pass's gate method.
41569 (execute_ipa_summary_passes): Likewise.
41570 (execute_one_pass): Likewise.
41571 (ipa_write_summaries_2): Likewise.
41572 (ipa_write_optimization_summaries_1): Likewise.
41573 (ipa_read_summaries_1): Likewise.
41574 (ipa_read_optimization_summaries_1): Likewise.
41575 (execute_ipa_stmt_fixups): Likewise.
41576 * tree-pass.h (opt_pass::gate): Add function * argument.
41577 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
41578 combine-stack-adj.c, combine.c, compare-elim.c,
41579 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
41580 config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
41581 config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
41582 dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c, fwprop.c, gcse.c,
41583 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
41584 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
41585 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
41586 loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
41587 omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
41588 reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
41589 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
41590 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
41591 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
41592 tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
41593 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
41594 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
41595 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
41596 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
41597 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
41598 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
41599 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
41600 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
41601 tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
41602 tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
41603 var-tracking.c, vtable-verify.c, web.c: Adjust.
41605 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
41607 * configure.ac: Check for -Woverloaded-virtual and enable it if found.
41608 * configure: Regenerate.
41610 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
41612 * passes.c (dump_one_pass): don't check pass->has_gate.
41613 (execute_ipa_summary_passes): Likewise.
41614 (execute_one_pass): Likewise.
41615 (ipa_write_summaries_2): Likewise.
41616 (ipa_write_optimization_summaries_1): Likewise.
41617 (ipa_read_optimization_summaries_1): Likewise.
41618 (execute_ipa_stmt_fixups): Likewise.
41619 * tree-pass.h (pass_data::has_gate): Remove.
41620 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
41621 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
41622 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
41623 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
41624 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
41625 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
41626 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
41627 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
41628 gimple-low.c, gimple-ssa-isolate-paths.c,
41629 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
41630 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
41631 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
41632 ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
41633 modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
41634 recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
41635 reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
41636 trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
41637 tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
41638 tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
41639 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
41640 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
41641 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
41642 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
41643 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
41644 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
41645 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
41646 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
41647 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
41648 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
41649 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
41650 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
41653 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
41655 * pass_manager.h (pass_manager::register_dump_files_1): Remove
41657 * passes.c (pass_manager::register_dump_files_1): Merge into
41658 (pass_manager::register_dump_files): this, and remove its handling of
41659 properties since the pass always has the properties anyway.
41660 (pass_manager::pass_manager): Adjust.
41662 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
41664 * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
41665 * passes.c (pass_manager::register_dump_files_1): Remove dead code
41666 dealing with properties.
41667 (pass_manager::register_dump_files): Adjust.
41669 2014-03-20 Mark Wielaard <mjw@redhat.com>
41671 * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
41672 then represent the bound as normal constant value.
41674 2014-04-17 Jakub Jelinek <jakub@redhat.com>
41677 Forward port from 4.8 branch
41678 2013-07-19 Kirill Yukhin <kirill.yukhin@intel.com>
41680 * config/i386/bmiintrin.h (_blsi_u32): New.
41681 (_blsi_u64): Ditto.
41682 (_blsr_u32): Ditto.
41683 (_blsr_u64): Ditto.
41684 (_blsmsk_u32): Ditto.
41685 (_blsmsk_u64): Ditto.
41686 (_tzcnt_u32): Ditto.
41687 (_tzcnt_u64): Ditto.
41689 2014-04-17 Kito Cheng <kito@0xlab.org>
41691 * gcc.c (used_arg): Prevent out of bound access for multilib_options.
41693 2014-04-17 Richard Biener <rguenther@suse.de>
41695 PR middle-end/60849
41696 * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
41697 boolean results for comparisons.
41699 2014-04-17 Richard Biener <rguenther@suse.de>
41701 PR tree-optimization/60836
41702 * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
41703 initial PHI args to be gimple values.
41705 2014-04-17 Richard Biener <rguenther@suse.de>
41707 PR tree-optimization/60841
41708 * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
41709 * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
41710 of stmts to SLP build.
41711 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
41712 (vect_analyze_slp): Likewise.
41713 (vect_analyze_slp_instance): Likewise.
41714 (vect_build_slp_tree): Limit overall SLP tree growth.
41715 * tree-vectorizer.h (vect_analyze_data_refs,
41716 vect_analyze_slp): Adjust prototypes.
41718 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
41720 * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
41723 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
41725 * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
41726 * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
41727 * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
41728 for TARGET_SLOW_PSHUFB
41730 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
41732 * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
41733 * config/i386/i386.c (intel_cost): Ditto.
41735 2014-04-17 Joey Ye <joey.ye@arm.com>
41737 * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
41739 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
41741 * opts.c (common_handle_option): Disable -fipa-reference coorectly
41742 with -fuse-profile.
41744 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
41746 * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
41747 (type_all_derivations_known_p): New predicate.
41748 (type_all_ctors_visible_p): New predicate.
41749 (type_possibly_instantiated_p): New predicate.
41750 (get_odr_type): Compute all_derivations_known.
41751 (dump_odr_type): Dump the flag.
41752 (maybe_record_type): Cleanup.
41753 (record_target_from_binfo): Add bases_to_consider array;
41754 record bases for types w/o instances and skip CXX destructor.
41755 (possible_polymorphic_call_targets_1): Add bases_to_consider
41756 and consider_construction parameters; check if type may have instance.
41757 (get_polymorphic_call_info): Set maybe_in_construction to true
41758 when we know nothing.
41759 (record_targets_from_bases): Skip CXX destructors; they are
41760 never called for types in construction.
41761 (possible_polymorphic_call_targets): Do not record target when
41762 type may not have instance.
41764 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
41767 * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
41768 external aliases alive, too.
41770 2014-04-16 Andrew Pinski <apinski@cavium.com>
41772 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
41775 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
41777 * final.c (compute_alignments): Do not apply loop alignment to a block
41778 falling through to the exit.
41780 2014-04-16 Catherine Moore <clm@codesourcery.com>
41782 * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
41783 Adjust constraints for microMIPS store patterns.
41785 2014-04-16 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
41787 * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
41789 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
41791 * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
41792 (append_use): Run at -O0.
41793 (append_vdef): Likewise.
41794 * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
41795 * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
41797 2014-04-16 Jakub Jelinek <jakub@redhat.com>
41799 PR tree-optimization/60844
41800 * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
41801 (propagate_op_to_single_use, remove_visited_stmt_chain,
41802 linearize_expr, repropagate_negates, reassociate_bb): Use it
41803 instead of gsi_remove.
41805 2014-04-16 Martin Jambor <mjambor@suse.cz>
41807 * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
41808 ipa_transforms_to_apply.
41809 (cgraph_function_versioning): Assert that old_node has empty
41810 ipa_transforms_to_apply.
41811 * trans-mem.c (ipa_tm_create_version): Likewise.
41812 * tree-inline.c (tree_function_versioning): Do not duplicate
41813 ipa_transforms_to_apply.
41815 2014-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
41818 * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
41820 Pass necessary as flags on 64-bit Solaris/x86.
41821 Use lowercase relocs for x86_64-*-*.
41822 * configure: Regenerate.
41824 2014-04-15 Jan Hubicka <jh@suse.cz>
41826 * ipa-devirt.c (referenced_from_vtable_p): New predicate.
41827 (maybe_record_node, likely_target_p): Use it.
41829 2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
41832 Revert following patch
41834 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
41837 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
41838 software floating point or no floating point registers, do not
41839 allow any type in the FPRs. Eliminate a test for SPE SIMD types
41840 in GPRs that occurs after we tested for GPRs that would never be
41843 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
41844 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
41845 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
41846 specifically allow DDmode, since that does not use the SPE SIMD
41849 2014-03-21 Mark Wielaard <mjw@redhat.com>
41851 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
41852 as unsigned or int depending on type and value used.
41854 2014-04-15 Richard Biener <rguenther@suse.de>
41856 PR rtl-optimization/56965
41857 * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
41858 * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
41860 * alias.c (true_dependence_1): Do not call
41861 nonoverlapping_component_refs_p.
41862 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
41863 nonoverlapping_component_refs_p.
41864 (indirect_refs_may_alias_p): Likewise.
41866 2014-04-15 Teresa Johnson <tejohnson@google.com>
41868 * cfg.c (dump_bb_info): Fix flags check.
41869 * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
41871 2014-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
41873 PR rtl-optimization/60663
41874 * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
41877 2014-04-15 Richard Biener <rguenther@suse.de>
41879 * lto-streamer.h (LTO_major_version): Bump to 4.
41881 2014-04-15 Richard Biener <rguenther@suse.de>
41883 * common.opt (lto_partition_model): New enum.
41884 (flto-partition=): Merge separate options with a single with argument,
41885 add -flto-partition=one support.
41886 * flag-types.h (enum lto_partition_model): Declare.
41887 * opts.c (finish_options): Remove duplicate -flto-partition=
41889 * lto-wrapper.c (run_gcc): Adjust.
41891 2014-04-15 Richard Biener <rguenther@suse.de>
41893 * alias.c (ncr_compar): New function.
41894 (nonoverlapping_component_refs_p): Re-implement in O (n log n).
41896 2014-04-15 Richard Biener <rguenther@suse.de>
41898 * alias.c (record_component_aliases): Do not walk BINFOs.
41900 2014-04-15 Richard Biener <rguenther@suse.de>
41902 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
41903 Add struct function argument and adjust.
41904 (find_func_aliases_for_call): Likewise.
41905 (find_func_aliases): Likewise.
41906 (find_func_clobbers): Likewise.
41907 (intra_create_variable_infos): Likewise.
41908 (compute_points_to_sets): Likewise.
41909 (ipa_pta_execute): Adjust. Do not push/pop cfun.
41911 2014-04-15 Richard Biener <rguenther@suse.de>
41913 * tree.c (iterative_hash_expr): Use enum tree_code_class
41914 to store TREE_CODE_CLASS.
41915 (tree_block): Likewise.
41916 (tree_set_block): Likewise.
41917 * tree.h (fold_build_pointer_plus_loc): Use
41918 convert_to_ptrofftype_loc.
41920 2014-04-15 Jakub Jelinek <jakub@redhat.com>
41923 * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
41926 2014-04-15 Eric Botcazou <ebotcazou@adacore.com>
41928 * cfgloop.h (struct loop): Move force_vectorize down.
41929 * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
41930 (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
41931 * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
41932 * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
41933 * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
41934 * tree-core.h (enum annot_expr_kind): Add new kind values.
41935 * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
41936 * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
41938 * tree.def (ANNOTATE_EXPR): Tweak comment.
41940 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
41942 * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
41945 2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
41947 * tree.h (TYPE_IDENTIFIER): Declare.
41948 * tree.c (subrange_type_for_debug_p): Use it.
41949 * godump.c (go_format_type): Likewise.
41950 * dwarf2out.c (is_cxx_auto, modified_type_die,
41951 gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
41952 * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
41954 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
41957 * varpool.c (varpool_remove_node): Do not alter decls when streaming.
41959 2014-04-14 Uros Bizjak <ubizjak@gmail.com>
41961 * config/i386/i386.c (examine_argument): Return bool. Return true if
41962 parameter should be passed in memory.
41963 <case X86_64_COMPLEX_X87_CLASS>: Adjust.
41964 (construct_container): Update calls to examine_argument.
41965 (function_arg_advance_64): Ditto.
41966 (return_in_memory_32): Merge with ix86_return_in_memory.
41967 (return_in_memory_64): Ditto.
41968 (return_in_memory_ms_64): Ditto.
41970 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
41972 * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
41973 * coverage.c (coverage_compute_profile_id): Handle externally visible
41976 2014-04-14 Martin Jambor <mjambor@suse.cz>
41978 * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
41979 DECL_DISREGARD_INLINE_LIMITS functions.
41981 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
41984 * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
41986 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
41989 * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
41990 optimize_insn_for_speed_p instead of
41991 optimize_function_for_speed_p.
41993 2014-04-14 Yufeng Zhang <yufeng.zhang@arm.com>
41995 * doc/invoke.texi (free): Document AArch64.
41997 2014-04-14 Richard Biener <rguenther@suse.de>
41999 PR tree-optimization/60042
42000 * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
42001 (insert_into_preds_of_block): Do not prevent PHI insertion
42002 for REFERENCE exprs here ...
42003 (eliminate_dom_walker::before_dom_children): ... but prevent
42004 their use here under similar conditions when applied to the
42005 IL after PRE optimizations.
42007 2014-04-14 Richard Biener <rguenther@suse.de>
42009 * passes.def: Move early points-to after early SRA.
42011 2014-04-14 Richard Biener <rguenther@suse.de>
42013 * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
42014 check for which sign-changes we allow when forwarding
42015 a converted value into a switch.
42017 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
42019 * stor-layout.c (place_field): Finalize non-constant offset for the
42022 2014-04-14 Richard Biener <rguenther@suse.de>
42024 * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
42026 (expand_switch_using_bit_tests_p): Likewise.
42027 (process_switch): Compute and pass on speed_p based on the
42029 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
42030 optimize_bb_for_speed_p.
42032 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
42034 * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
42035 * function.h (struct function): Rename has_force_vect_loops into
42036 has_force_vectorize_loops.
42037 * lto-streamer-in.c (input_cfg): Adjust for renaming.
42038 (input_struct_function_base): Likewise.
42039 * lto-streamer-out.c (output_cfg): Likewise.
42040 (output_struct_function_base): Likewise.
42041 * omp-low.c (expand_omp_simd): Likewise.
42042 * tree-cfg.c (move_sese_region_to_fn): Likewise.
42043 * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
42044 (version_loop_for_if_conversion): Likewise.
42045 (tree_if_conversion): Likewise.
42046 (main_tree_if_conversion): Likewise.
42047 (gate_tree_if_conversion): Likewise.
42048 * tree-inline.c (copy_loops): Likewise.
42049 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
42050 * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
42051 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
42052 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
42053 * tree-vectorizer.c (vectorize_loops): Likewise.
42054 * tree-vectorizer.h (unlimited_cost_model): Likewise.
42056 2014-04-14 Richard Biener <rguenther@suse.de>
42059 * lto-streamer-out.c (wrap_refs): New function.
42060 (lto_output): Wrap symbol references in global initializes in
42061 type-preserving MEM_REFs.
42063 2014-04-14 Christian Bruel <christian.bruel@st.com>
42065 * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
42067 2014-04-14 Christian Bruel <christian.bruel@st.com>
42069 * config/sh/sh.md (setmemqi): New expand pattern.
42070 * config/sh/sh.h (CLEAR_RATIO): Define.
42071 * config/sh/sh-mem.cc (sh_expand_setmem): Define.
42072 * config/sh/sh-protos.h (sh_expand_setmem): Declare.
42074 2014-04-14 Richard Biener <rguenther@suse.de>
42076 PR middle-end/55022
42077 * fold-const.c (negate_expr_p): Don't negate directional rounding
42079 (fold_negate_expr): Likewise.
42081 2014-04-14 Richard Biener <rguenther@suse.de>
42083 PR tree-optimization/59817
42084 PR tree-optimization/60453
42085 * graphite-scop-detection.c (graphite_can_represent_scev): Complete
42086 recursion to catch all CHRECs in the scalar evolution and restrict
42087 the predicate for the remains appropriately.
42089 2014-04-12 Catherine Moore <clm@codesourcery.com>
42091 * config/mips/constraints.md: Add new register constraint "kb".
42092 * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
42093 (*movhi_internal): Likewise.
42094 (*movqi_internal): Likewise.
42095 * config/mips/mips.h (M16_STORE_REGS): New register class.
42096 (REG_CLASS_NAMES): Add M16_STORE_REGS.
42097 (REG_CLASS_CONTENTS): Likewise.
42098 * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
42100 2014-04-11 Tobias Burnus <burnus@net-b.de>
42103 * doc/invoke.texi (-Wformat-signedness): Document it.
42104 (Wformat=2): Mention that this enables -Wformat-signedness.
42106 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
42108 * common/config/epiphany/epiphany-common.c
42109 (epiphany_option_optimization_table): Enable section anchors by
42110 default at -O1 or higher.
42111 * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
42112 (TARGET_MIN_ANCHOR_OFFSET): Likewise.
42113 (epiphany_rtx_costs) <SET>: For binary operators, the set as such
42114 carries no extra cost.
42115 (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
42116 * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
42117 * config/epiphany/predicates.md (memclob_operand): New predicate.
42118 * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
42119 Use memclob_operand predicate and X constraint for operand 3.
42121 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
42123 * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
42124 with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
42127 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
42129 PR rtl-optimization/60651
42130 * mode-switching.c (optimize_mode_switching): Make sure to emit
42131 sets of a lower numbered entity before sets of a higher numbered
42132 entity to a mode of the same or lower priority.
42133 When creating a seginfo for a basic block that starts with a code
42134 label, move the insertion point past the code label.
42135 (new_seginfo): Document and enforce requirement that
42136 NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
42137 * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
42138 * doc/tm.texi: Regenerate.
42140 2014-01-11 Joern Rennecke <joern.rennecke@embecosm.com>
42143 * config/arc/arc.c (arc_save_restore): Fix assert typo.
42145 2013-04-11 Jakub Jelinek <jakub@redhat.com>
42147 * BASE-VER: Set to 4.10.0.
42149 2014-04-11 Tobias Burnus <burnus@net-b.de>
42152 * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
42153 * doc/gcc.texi (Service): Update description in the @menu
42154 * doc/invoke.texi (Option Summary): Remove misplaced and
42157 2014-04-11 Steve Ellcey <sellcey@mips.com>
42158 Jakub Jelinek <jakub@redhat.com>
42160 PR middle-end/60556
42161 * expr.c (convert_move): Use emit_store_flag_force instead of
42162 emit_store_flag. Pass lowpart_mode instead of VOIDmode as 5th
42165 2014-04-11 Richard Biener <rguenther@suse.de>
42167 PR middle-end/60797
42168 * varasm.c (assemble_alias): Avoid endless error reporting
42169 recursion by setting TREE_ASM_WRITTEN.
42171 2014-04-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
42173 * config/s390/s390.md: Add a splitter for NOT rtx.
42175 2014-04-11 Jakub Jelinek <jakub@redhat.com>
42177 PR rtl-optimization/60663
42178 * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
42180 2014-04-10 Jan Hubicka <hubicka@ucw.cz>
42181 Jakub Jelinek <jakub@redhat.com>
42184 * ipa.c (function_and_variable_visibility): Copy forced_by_abi
42185 flag from decl_node to node.
42187 2014-04-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
42190 * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
42191 (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
42192 ameliorating the cases where it can be.
42194 2014-04-09 David Edelsohn <dje.gcc@gmail.com>
42197 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
42199 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
42200 (loadsync_<mode>): Change mode.
42201 (load_quadpti, store_quadpti): New.
42202 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
42203 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
42204 * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
42206 2014-04-09 Cong Hou <congh@google.com>
42209 * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
42212 2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
42214 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
42215 instead of vnor to exploit possible fusion opportunity in the
42217 (altivec_expand_vec_perm_const_le): Likewise.
42219 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
42221 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
42222 (loadsync_<mode>): Change mode.
42223 (load_quadpti, store_quadpti): New.
42224 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
42225 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
42227 2014-04-08 Richard Sandiford <rdsandiford@googlemail.com>
42230 * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
42231 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
42232 Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
42234 2014-04-08 Richard Biener <rguenther@suse.de>
42236 PR middle-end/60706
42237 * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
42238 a 64bit widest int print double-int similar to on HWI64 hosts.
42240 2014-04-08 Richard Biener <rguenther@suse.de>
42242 PR tree-optimization/60785
42243 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
42244 default defs properly.
42246 2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
42248 * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
42249 (Weffc++): Likewise.
42251 2014-04-07 Jan Hubicka <hubcika@ucw.cz>
42253 * ipa-devirt.c (maybe_record_node): When node is not recorded,
42254 set completep to false rather than true.
42256 2014-04-07 Douglas B Rupp <rupp@adacore.com>
42259 * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
42260 ARM_TARGET2_DWARF_FORMAT.
42262 2014-04-07 Charles Baylis <charles.baylis@linaro.org>
42265 * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
42266 (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
42269 2014-04-07 Richard Biener <rguenther@suse.de>
42271 PR tree-optimization/60766
42272 * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
42273 (may_eliminate_iv): Convert cand_value_at result to desired type.
42275 2014-04-07 Jason Merrill <jason@redhat.com>
42278 * common.opt (-fno-gnu-unique): Add.
42279 * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
42281 2014-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
42283 * haifa-sched.c: Fix outdated function reference and minor
42284 grammar errors in introductory comment.
42286 2014-04-07 Richard Biener <rguenther@suse.de>
42288 PR middle-end/60750
42289 * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
42290 for noreturn calls.
42291 * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
42293 2014-04-06 John David Anglin <danglin@gcc.gnu.org>
42296 * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
42297 size accounting for thunks.
42298 (pa_asm_output_mi_thunk): Use final_start_function() and
42299 final_end_function() to output function start and end directives.
42301 2014-04-05 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
42303 * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
42304 device specific ISA/ feature information. Remove short_sp and
42305 errata_skip ds. Add avr_device_specific_features enum to have device
42307 * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
42308 errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
42309 * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
42310 updated device specific info.
42311 * config/avr/avr-mcus.def: Merge device specific details to
42312 dev_attribute field.
42313 * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
42315 * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
42316 * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
42317 assembler if RMW isa supported by current device.
42318 * config/avr/genmultilib.awk: Update as device info structure changed.
42319 * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
42321 2014-04-04 Cong Hou <congh@google.com>
42323 PR tree-optimization/60656
42324 * tree-vect-stmts.c (supportable_widening_operation):
42325 Fix a bug that elements in a vector with vect_used_by_reduction
42326 property are incorrectly reordered when the operation on it is not
42327 consistant with the one in reduction operation.
42329 2014-04-04 John David Anglin <danglin@gcc.gnu.org>
42331 PR rtl-optimization/60155
42332 * gcse.c (record_set_data): New function.
42333 (single_set_gcse): New function.
42334 (gcse_emit_move_after): Use single_set_gcse instead of single_set.
42335 (hoist_code): Likewise.
42336 (get_pressure_class_and_nregs): Likewise.
42338 2014-04-04 Eric Botcazou <ebotcazou@adacore.com>
42340 * explow.c (probe_stack_range): Emit a final optimization blockage.
42342 2014-04-04 Anthony Green <green@moxielogic.com>
42344 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
42347 2014-04-04 Jan Hubicka <hubicka@ucw.cz>
42350 * lto-cgraph.c (input_overwrite_node): Check that partitioning
42351 flags are set only during streaming.
42352 * ipa.c (process_references, walk_polymorphic_call_targets,
42353 symtab_remove_unreachable_nodes): Drop bodies of always inline
42354 after early inlining.
42355 (symtab_remove_unreachable_nodes): Remove always_inline attribute.
42357 2014-04-04 Jakub Jelinek <jakub@redhat.com>
42358 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
42361 * dwarf2out.c (const_ok_for_output_1): Reject expressions
42364 2014-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
42367 * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
42369 (cortex_a53_fdivd): Likewise.
42371 2014-04-04 Martin Jambor <mjambor@suse.cz>
42374 * cgraph.h (cgraph_clone_node): New parameter added to declaration.
42375 Adjust all callers.
42376 * cgraph.c (clone_of_p): Also return true if thunks match.
42377 (verify_edge_corresponds_to_fndecl): Removed extraneous call to
42378 cgraph_function_or_thunk_node and an obsolete comment.
42379 * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
42381 (build_function_decl_skip_args): Likewise.
42382 (set_new_clone_decl_and_node_flags): New function.
42383 (duplicate_thunk_for_node): Likewise.
42384 (redirect_edge_duplicating_thunks): Likewise.
42385 (cgraph_clone_node): New parameter args_to_skip, pass it to
42386 redirect_edge_duplicating_thunks which is called instead of
42387 cgraph_redirect_edge_callee.
42388 (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
42389 moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
42391 2014-04-04 Jeff Law <law@redhat.com>
42394 * config/arm/predicates.md (const_int_I_operand): New predicate.
42395 (const_int_M_operand): Similarly.
42396 * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
42398 (insv_t2, extv_reg, extzv_t2): Likewise.
42399 (load_multiple_with_writeback): Similarly for const_int_I_operand.
42400 (pop_multiple_with_writeback_and_return): Likewise.
42401 (vfp_pop_multiple_with_writeback): Likewise
42403 2014-04-04 Richard Biener <rguenther@suse.de>
42406 * tree-ssanames.c (make_ssa_name_fn): Fix assert.
42407 * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
42409 * gimplify.h (gimple_add_tmp_var_fn): Declare.
42410 * gimplify.c (gimple_add_tmp_var_fn): New function.
42411 * gimple-expr.h (create_tmp_reg_fn): Declare.
42412 * gimple-expr.c (create_tmp_reg_fn): New function.
42413 * gimple-low.c (record_vars_into): Don't change cfun.
42414 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
42415 code generation without cfun.
42417 2014-04-04 Thomas Schwinge <thomas@codesourcery.com>
42420 * Makefile.in (install-driver): Fix shell scripting.
42422 2014-04-03 Cong Hou <congh@google.com>
42424 PR tree-optimization/60505
42425 * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
42426 threshold of number of iterations below which no vectorization
42428 * tree-vect-loop.c (new_loop_vec_info):
42429 Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
42430 * tree-vect-loop.c (vect_analyze_loop_operations):
42431 Set LOOP_VINFO_COST_MODEL_THRESHOLD.
42432 * tree-vect-loop.c (vect_transform_loop):
42433 Use LOOP_VINFO_COST_MODEL_THRESHOLD.
42434 * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
42435 of iterations of the loop and see if we should build the epilogue.
42437 2014-04-03 Richard Biener <rguenther@suse.de>
42439 * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
42440 (streamer_tree_cache_create): Adjust.
42441 * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
42442 to allow optional nodes array.
42443 (streamer_tree_cache_insert_1): Use next_idx to assign idx.
42444 (streamer_tree_cache_append): Likewise.
42445 (streamer_tree_cache_create): Create nodes array optionally
42446 as specified by parameter.
42447 * lto-streamer-out.c (create_output_block): Avoid maintaining
42448 the node array in the writer cache.
42449 (DFS_write_tree): Remove assertion.
42450 (produce_asm_for_decls): Free the out decl state hash table early.
42451 * lto-streamer-in.c (lto_data_in_create): Adjust for
42452 streamer_tree_cache_create prototype change.
42454 2014-04-03 Richard Biener <rguenther@suse.de>
42456 * tree-streamer-out.c (streamer_write_chain): Do not temporarily
42457 set TREE_CHAIN to NULL_TREE.
42459 2014-04-03 Richard Biener <rguenther@suse.de>
42461 PR tree-optimization/60740
42462 * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
42463 over all GIMPLE_COND operands.
42465 2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
42467 * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
42468 (Weffc++): Remove Scott's numbering, merge lists and reference
42471 2014-04-03 Nick Clifton <nickc@redhat.com>
42473 * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
42476 2014-04-03 Martin Jambor <mjambor@suse.cz>
42478 * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
42479 mention gcc_unreachable before failing.
42480 * ipa.c (symtab_remove_unreachable_nodes): Also print order of
42483 2014-04-02 Jan Hubicka <hubicka@ucw.cz>
42486 * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
42487 inconsistent code and instead mark the context inconsistent.
42488 (possible_polymorphic_call_targets): For inconsistent contexts
42489 return empty complete list.
42491 2014-04-02 Anthony Green <green@moxielogic.com>
42493 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
42494 (extendqisi2, extendhisi2): Define.
42495 * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
42496 (WCHAR_TYPE): Change to unsigned int.
42498 2014-04-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
42500 PR tree-optimization/60733
42501 * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
42502 insertion point for PHI candidates to be the end of the feeding
42503 block for the PHI argument.
42505 2014-04-02 Vladimir Makarov <vmakarov@redhat.com>
42507 PR rtl-optimization/60650
42508 * lra-constraints.c (process_alt_operands): Decrease reject for
42509 earlyclobber matching.
42511 2014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
42513 * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
42515 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
42517 * config/spu/spu.c (pad_bb): Do not crash when the last
42518 insn is CODE_FOR_blockage.
42520 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
42522 * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
42523 lies outside the target mode.
42525 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
42528 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
42529 software floating point or no floating point registers, do not
42530 allow any type in the FPRs. Eliminate a test for SPE SIMD types
42531 in GPRs that occurs after we tested for GPRs that would never be
42534 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
42535 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
42536 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
42537 specifically allow DDmode, since that does not use the SPE SIMD
42540 2014-04-02 Richard Biener <rguenther@suse.de>
42542 PR middle-end/60729
42543 * optabs.c (expand_abs_nojump): Honor flag_trapv only for
42544 MODE_INTs. Properly use negv_optab.
42545 (expand_abs): Likewise.
42547 2014-04-02 Richard Biener <rguenther@suse.de>
42550 * Makefile.in (install-driver): Guard extra installs with special
42553 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com>
42555 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
42556 Document vec_vgbbd.
42558 2014-04-01 Richard Henderson <rth@redhat.com>
42561 * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
42562 alternative enabled before register allocation.
42564 2014-04-01 Chung-Lin Tang <cltang@codesourcery.com>
42566 * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
42567 * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
42569 (nios2_large_got_address): Remove unneeded 'sym' parameter.
42570 (nios2_got_address): Update nios2_large_got_address call site.
42571 (nios2_delegitimize_address): New function.
42572 (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
42573 * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
42574 (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
42576 2014-04-01 Martin Husemann <martin@duskware.de>
42578 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
42581 2014-04-01 Richard Sandiford <rdsandiford@googlemail.com>
42583 PR rtl-optimization/60604
42584 * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
42585 check from register_operand.
42586 (register_operand): Redefine in terms of general_operand.
42587 (nonmemory_operand): Use register_operand for the non-constant cases.
42589 2014-04-01 Richard Biener <rguenther@suse.de>
42591 * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
42593 2014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
42595 * doc/invoke.texi (mapp-regs): Clarify.
42597 2014-03-31 Ulrich Drepper <drepper@gmail.com>
42599 * config/i386/avx512fintrin.h (__v32hi): Define type.
42600 (__v64qi): Likewise.
42601 (_mm512_set1_epi8): Define.
42602 (_mm512_set1_epi16): Define.
42603 (_mm512_set4_epi32): Define.
42604 (_mm512_set4_epi64): Define.
42605 (_mm512_set4_pd): Define.
42606 (_mm512_set4_ps): Define.
42607 (_mm512_setr4_epi64): Define.
42608 (_mm512_setr4_epi32): Define.
42609 (_mm512_setr4_pd): Define.
42610 (_mm512_setr4_ps): Define.
42611 (_mm512_setzero_epi32): Define.
42613 2014-03-31 Martin Jambor <mjambor@suse.cz>
42615 PR middle-end/60647
42616 * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
42617 callsite_arguments_match_p. Updated all callers. Also check types of
42618 corresponding formal parameters and actual arguments.
42619 (not_all_callers_have_enough_arguments_p) Renamed to
42620 some_callers_have_mismatched_arguments_p.
42622 2014-03-31 Yuri Rumyantsev <ysrumyan@gmail.com>
42624 * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
42626 2014-03-31 Kugan Vivekanandarajah <kuganv@linaro.org>
42629 * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
42632 2014-03-30 Uros Bizjak <ubizjak@gmail.com>
42634 * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
42635 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
42637 <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
42638 Use FMAMODE_NOVF512 mode iterator.
42639 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
42640 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
42641 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
42642 (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
42644 <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
42645 Use VF_128_256 mode iterator.
42646 (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
42649 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
42651 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
42652 static chain if needed.
42654 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
42657 * lra-constraints.c (index_part_to_reg): New.
42658 (process_address): Use it.
42660 2014-03-27 Jeff Law <law@redhat.com>
42661 Jakub Jelinek <jakub@redhat.com>
42664 * expr.c (do_tablejump): Use simplify_gen_binary rather than
42665 gen_rtx_{PLUS,MULT} to build up the address expression.
42667 * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
42668 creating non-canonical RTL.
42670 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
42673 * ipa-inline.c (want_inline_small_function_p): Short circuit large
42674 functions; reorganize to make cheap checks first.
42675 (inline_small_functions): Do not estimate growth when dumping;
42677 * ipa-inline.h (inline_summary): Add min_size.
42678 (growth_likely_positive): New function.
42679 * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
42680 (set_cond_stmt_execution_predicate): Cleanup.
42681 (estimate_edge_size_and_time): Compute min_size.
42682 (estimate_calls_size_and_time): Likewise.
42683 (estimate_node_size_and_time): Likewise.
42684 (inline_update_overall_summary): Update min_size.
42685 (do_estimate_edge_time): Likewise.
42686 (do_estimate_edge_size): Update.
42687 (do_estimate_edge_hints): Update.
42688 (growth_likely_positive): New function.
42690 2014-03-28 Jakub Jelinek <jakub@redhat.com>
42693 * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
42694 also if addr has VOIDmode.
42696 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
42698 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
42699 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
42701 * config/arm/cortex-a53.md: Add reservations and bypass for crypto
42702 instructions as well as AdvancedSIMD loads.
42704 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
42706 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
42707 Use crypto_aese type.
42708 (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
42709 * config/arm/arm.md (is_neon_type): Replace crypto_aes with
42710 crypto_aese, crypto_aesmc. Move to types.md.
42711 * config/arm/types.md (crypto_aes): Split into crypto_aese,
42713 * config/arm/iterators.md (crypto_type): Likewise.
42715 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
42717 * cgraph.c: Include expr.h and tree-dfa.h.
42718 (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
42721 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
42724 * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
42725 regs from checking multi-reg pseudos.
42727 2014-03-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
42729 * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
42731 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
42733 * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
42734 if it would clobber the stack pointer, even temporarily.
42736 2014-03-28 Eric Botcazou <ebotcazou@adacore.com>
42738 * mode-switching.c: Make small adjustments to the top comment.
42740 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
42742 * config/rs6000/constraints.md (wD constraint): New constraint to
42743 match the constant integer to get the top DImode/DFmode out of a
42744 vector in a VSX register.
42746 * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
42747 match the constant integer to get the top DImode/DFmode out of a
42748 vector in a VSX register.
42750 * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
42753 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
42756 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
42757 -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
42759 * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
42760 Optimize vec_extract of 64-bit values, where the value being
42761 extracted is in the top word, where we can use scalar
42762 instructions. Add direct move and store support. Combine the big
42763 endian/little endian vector select load support into a single insn.
42764 (vsx_extract_<mode>_internal1): Likewise.
42765 (vsx_extract_<mode>_internal2): Likewise.
42766 (vsx_extract_<mode>_load): Likewise.
42767 (vsx_extract_<mode>_store): Likewise.
42768 (vsx_extract_<mode>_zero): Delete, big and little endian insns are
42769 combined into vsx_extract_<mode>_load.
42770 (vsx_extract_<mode>_one_le): Likewise.
42772 * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
42773 define the top 64-bit vector element.
42775 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
42778 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
42779 Document vec_vbpermq builtin.
42782 * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
42783 enable use of xxsldwi and xxpermdi builtin functions.
42784 (vec_xxpermdi): Likewise.
42786 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
42787 Document use of vec_xxsldwi and vec_xxpermdi builtins.
42789 2014-03-27 Vladimir Makarov <vmakarov@redhat.com>
42791 PR rtl-optimization/60650
42792 * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
42794 (find_spills_for): New.
42795 (assign_by_spills): Pass the new parameter to find_hard_regno_for.
42796 Spill all pseudos on the second iteration.
42798 2014-03-27 Marek Polacek <polacek@redhat.com>
42801 * doc/extend.texi (ffs Builtins): Change unsigned types to signed
42804 2014-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
42806 * config/s390/s390.c (s390_can_use_return_insn): Check for
42807 call-saved FPRs on 31 bit.
42809 2014-03-27 Jakub Jelinek <jakub@redhat.com>
42811 PR middle-end/60682
42812 * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
42813 if they need regimplification, just drop them instead of
42814 calling gimple_regimplify_operands on them.
42816 2014-03-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
42819 * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
42820 (aarch64_frame_pointer_required): Adjust logic.
42821 (aarch64_can_eliminate): Adjust logic.
42822 (aarch64_override_options_after_change): Adjust logic.
42824 2014-03-27 Dehao Chen <dehao@google.com>
42826 * ipa-inline.c (early_inliner): Update node's inline info.
42828 2014-03-26 Dehao Chen <dehao@google.com>
42830 * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
42831 compiler inserted conditional jumps for NAN float check.
42833 2014-03-26 Jakub Jelinek <jakub@redhat.com>
42835 * ubsan.h (ubsan_create_data): Change second argument's type
42836 to const location_t *.
42837 * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
42839 (ubsan_create_data): Change second argument to const location_t *PLOC.
42840 Create Loc field whenever PLOC is non-NULL.
42841 (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
42842 ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
42846 * real.c (real_to_integer2): Change type of low to UHWI.
42848 2014-03-26 Tobias Burnus <burnus@net-b.de>
42850 * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
42851 (CILK_SELF_SPECS): New define.
42852 (driver_self_specs): Use it.
42854 2014-03-26 Richard Biener <rguenther@suse.de>
42856 * tree-pretty-print.c (percent_K_format): Implement special
42857 case for LTO and its stripped down BLOCK tree.
42859 2014-03-26 Jakub Jelinek <jakub@redhat.com>
42862 * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
42864 * tree-vrp.c (simplify_internal_call_using_ranges): If only
42865 one range is range_int_cst_p, but not both, at least optimize
42866 addition/subtraction of 0 and multiplication by 0 or 1.
42867 * gimple-fold.c (gimple_fold_call): Fold
42868 IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
42869 (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
42870 INTEGER_CSTs, try to fold at least x * 0 and y - y.
42872 2014-03-26 Eric Botcazou <ebotcazou@adacore.com>
42874 PR rtl-optimization/60452
42875 * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
42876 <case REG>: Return 1 for invalid offsets from the frame pointer.
42878 2014-03-26 Marek Polacek <polacek@redhat.com>
42881 * doc/extend.texi (C Extensions): Mention variable-length arrays in
42884 2014-03-26 Marek Polacek <polacek@redhat.com>
42887 * doc/extend.texi (Designated Inits): Describe what happens to omitted
42890 2014-03-26 Marek Polacek <polacek@redhat.com>
42893 * ira-color.c (update_conflict_hard_regno_costs): Perform the
42894 multiplication in unsigned type.
42896 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
42898 * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
42900 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
42902 * doc/contrib.texi: Add myself as Andes nds32 port contributor.
42904 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
42907 * cif-code.def (UNREACHABLE) New code.
42908 * ipa-inline.c (inline_small_functions): Skip edges to
42909 __builtlin_unreachable.
42910 (estimate_edge_growth): Allow edges to __builtlin_unreachable.
42911 * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
42912 predicate to __bulitin_unreachable.
42913 (set_cond_stmt_execution_predicate): Fix issue when
42914 invert_tree_comparison returns ERROR_MARK.
42915 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
42916 propagate to inline clones.
42917 * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
42919 * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
42920 * cgraphclones.c (cgraph_clone_node): If call destination is already
42921 ureachable, do not redirect it back.
42922 * tree-inline.c (fold_marked_statements): Hanlde calls becoming
42925 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
42927 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
42928 Do not modify inline clones.
42930 2014-03-25 Jakub Jelinek <jakub@redhat.com>
42932 * config/i386/i386.md (general_sext_operand): New mode attr.
42933 (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
42934 don't generate (sign_extend (const_int)).
42935 (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
42936 operands[2]. Use We constraint instead of <i> and
42937 <general_sext_operand> predicate instead of <general_operand>.
42938 (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
42939 * config/i386/constraints.md (We): New constraint.
42940 * config/i386/predicates.md (x86_64_sext_operand,
42941 sext_operand): New predicates.
42943 2014-03-25 Martin Jambor <mjambor@suse.cz>
42946 * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
42947 inconsistent devirtualizations to __builtin_unreachable.
42949 2014-03-25 Marek Polacek <polacek@redhat.com>
42952 * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
42954 2014-03-25 Alan Lawrence <alan.lawrence@arm.com>
42956 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
42957 order of elements for big-endian.
42959 2014-03-25 Richard Biener <rguenther@suse.de>
42961 PR middle-end/60635
42962 * gimplify-me.c (gimple_regimplify_operands): Update the
42965 2014-03-25 Martin Jambor <mjambor@suse.cz>
42968 * lto-cgraph.c (lto_output_node): Stream body_removed flag.
42969 (lto_output_varpool_node): Likewise.
42970 (input_overwrite_node): Likewise.
42971 (input_varpool_node): Likewise.
42973 2014-03-25 Richard Biener <rguenther@suse.de>
42975 * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
42976 (run_gcc): Likewise.
42978 2014-03-25 Jakub Jelinek <jakub@redhat.com>
42980 * combine.c (simplify_compare_const): Add MODE argument.
42981 Handle mode_width 0 as very large mode_width.
42982 (try_combine, simplify_comparison): Adjust callers.
42984 * cselib.c (cselib_hash_rtx): Perform addition in unsigned
42985 type to avoid signed integer overflow.
42986 * explow.c (plus_constant): Likewise.
42988 2014-03-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
42990 * doc/generic.texi: Correct typos.
42992 2014-03-24 Tobias Burnus <burnus@net-b.de>
42994 * doc/invoke.texi (-flto): Expand section about
42995 using static libraries with LTO.
42997 2014-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
42999 PR rtl-optimization/60501
43000 * optabs.def (addptr3_optab): New optab.
43001 * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
43002 * doc/md.texi ("addptrm3"): Document new RTL standard expander.
43003 * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
43005 * lra.c (emit_add3_insn): Use the addptr pattern if available.
43007 * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
43009 2014-03-24 Ulrich Drepper <drepper@gmail.com>
43011 * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
43014 * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
43015 (_mm256_undefined_ps): Define.
43016 (_mm256_undefined_pd): Define.
43017 * config/i386/emmintrin.h (_mm_undefined_si128): Define.
43018 (_mm_undefined_pd): Define.
43019 * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
43020 * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
43021 (_mm512_undefined_ps): Define.
43022 (_mm512_undefined_pd): Define.
43023 Use _mm*_undefined_*.
43024 * config/i386/avx2intrin.h: Use _mm*_undefined_*.
43026 2014-03-24 Alex Velenko <Alex.Velenko@arm.com>
43028 * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
43029 (lshr_simd): DI mode added.
43030 * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
43031 (aarch64_ushr_simddi): Likewise.
43032 * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
43033 * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
43034 (vshrd_n_u64): Likewise.
43036 2014-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
43038 * Makefile.in (s-macro_list): Depend on cc1.
43040 2014-03-23 Teresa Johnson <tejohnson@google.com>
43042 * ipa-utils.c (ipa_print_order): Use specified dump file.
43044 2014-03-23 Eric Botcazou <ebotcazou@adacore.com>
43046 PR rtl-optimization/60601
43047 * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
43049 * gcc.c (eval_spec_function): Initialize save_growing_value.
43051 2014-03-22 Jakub Jelinek <jakub@redhat.com>
43054 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
43055 code == MINUS_EXPR, never swap op0 with op1.
43057 * toplev.c (init_local_tick): Avoid signed integer multiplication
43059 * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
43060 shift by first operand's bitsize.
43062 2014-03-21 Jakub Jelinek <jakub@redhat.com>
43065 * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
43066 redefine to 1 or 0.
43067 * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
43068 TARGET_ISA_64BIT_P(x).
43070 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
43072 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
43073 pattern for vector nor instead of subtract from splat(-1).
43074 (altivec_expand_vec_perm_const_le): Likewise.
43076 2014-03-21 Richard Henderson <rth@twiddle.net>
43079 * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
43080 related insns after epilogue_completed.
43082 2014-03-21 Martin Jambor <mjambor@suse.cz>
43085 * cgraph.h (symtab_node): New flag body_removed.
43086 * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
43087 when removing bodies.
43088 * symtab.c (dump_symtab_base): Dump body_removed flag.
43089 * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
43090 had their bodies removed.
43092 2014-03-21 Martin Jambor <mjambor@suse.cz>
43095 * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
43098 2014-03-21 Richard Biener <rguenther@suse.de>
43100 PR tree-optimization/60577
43101 * tree-core.h (struct tree_base): Document nothrow_flag use
43102 in DECL_NONALIASED.
43103 * tree.h (DECL_NONALIASED): New.
43104 (may_be_aliased): Adjust.
43105 * coverage.c (build_var): Set DECL_NONALIASED.
43107 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
43109 * expr.c (expand_expr_real_1): Remove outdated comment.
43111 2014-03-20 Jakub Jelinek <jakub@redhat.com>
43113 PR middle-end/60597
43114 * ira.c (adjust_cleared_regs): Call copy_rtx on
43115 *reg_equiv[REGNO (loc)].src_p before passing it to
43116 simplify_replace_fn_rtx.
43119 * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
43120 into CONST, put pic register as first operand of PLUS. Use
43121 gen_const_mem for both 32-bit and 64-bit PIC got loads.
43123 2014-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
43125 * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
43127 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
43129 * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
43130 around for store forwarding issue in the FPU on the UT699.
43131 * config/sparc/sparc.md (in_branch_delay): Return false for single FP
43132 loads and operations if -mfix-ut699 is specified.
43133 (divtf3_hq): Tweak attribute.
43134 (sqrttf2_hq): Likewise.
43136 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
43138 * calls.c (store_one_arg): Remove incorrect const qualification on the
43139 type of the temporary.
43140 * cfgexpand.c (expand_return): Likewise.
43141 * expr.c (expand_constructor): Likewise.
43142 (expand_expr_real_1): Likewise.
43144 2014-03-20 Zhenqiang Chen <zhenqiang.chen@linaro.org>
43146 * config/arm/arm.c (arm_dwarf_register_span): Update the element number
43149 2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
43152 * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
43154 2014-03-19 James Greenhalgh <james.greenhalgh@arm.com>
43156 * config/arm/aarch-common-protos.h
43157 (alu_cost_table): Fix spelling of "extend".
43158 * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
43160 2014-03-19 Richard Biener <rguenther@suse.de>
43162 PR middle-end/60553
43163 * tree-core.h (tree_type_common): Re-order pointer members
43164 to reduce recursion depth during GC walks.
43166 2014-03-19 Marek Polacek <polacek@redhat.com>
43169 * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
43170 before accessing it.
43172 2014-03-19 Richard Biener <rguenther@suse.de>
43175 * lto-streamer-in.c (input_function): In WPA stage do not drop
43178 2014-03-19 Jakub Jelinek <jakub@redhat.com>
43180 PR tree-optimization/60559
43181 * vectorizable_mask_load_store): Replace scalar MASK_LOAD
43182 with build_zero_cst assignment.
43184 2014-03-18 Kai Tietz <ktietz@redhat.com>
43186 PR rtl-optimization/56356
43187 * sdbout.c (sdbout_parms): Verify that parms'
43188 incoming argument is valid.
43189 (sdbout_reg_parms): Likewise.
43191 2014-03-18 Richard Henderson <rth@redhat.com>
43194 * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
43195 be shadowed by *float<SWI48><MODEF>2_sse. Test X87_ENABLE_FLOAT.
43196 (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
43198 2014-03-18 Basile Starynkevitch <basile@starynkevitch.net>
43200 * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
43201 * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
43202 Italicize plugin event names in description. Explain that
43203 PLUGIN_PRAGMAS has no sense for lto1. Explain PLUGIN_INCLUDE_FILE.
43204 Remind that no GCC functions should be called after PLUGIN_FINISH.
43205 Explain what pragmas with expansion are.
43207 2014-03-18 Martin Liska <mliska@suse.cz>
43209 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
43210 gimple call statement is update.
43211 * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
43212 GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
43214 2014-03-18 Jakub Jelinek <jakub@redhat.com>
43217 * ubsan.c (ubsan_instrument_unreachable): Call
43218 initialize_sanitizer_builtins.
43219 (ubsan_pass): Likewise.
43222 * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
43223 varpool_finalize_decl instead of rest_of_decl_compilation.
43225 2014-03-18 Richard Biener <rguenther@suse.de>
43227 * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
43228 by using bitmap_and_compl instead of bitmap_and_compl_into.
43229 (df_rd_transfer_function): Likewise.
43231 2014-03-18 Richard Biener <rguenther@suse.de>
43233 * doc/lto.texi (fresolution): Fix typo.
43235 2014-03-18 Richard Biener <rguenther@suse.de>
43237 * doc/invoke.texi (flto): Update for changes in 4.9.
43239 2014-03-18 Richard Biener <rguenther@suse.de>
43241 * doc/loop.texi: Remove section on the removed lambda framework.
43242 Update loop docs with recent changes in preserving loop structure.
43244 2014-03-18 Richard Biener <rguenther@suse.de>
43246 * doc/lto.texi (-fresolution): Document.
43248 2014-03-18 Richard Biener <rguenther@suse.de>
43250 * doc/contrib.texi: Adjust my name.
43252 2014-03-18 Jakub Jelinek <jakub@redhat.com>
43255 * internal-fn.c: Include diagnostic-core.h.
43256 (expand_BUILTIN_EXPECT): New function.
43257 * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
43258 (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
43259 IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
43260 * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
43261 IFN_BUILTIN_EXPECT.
43262 * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
43263 Revert 3 argument __builtin_expect code.
43264 (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
43265 * gimple-fold.c (gimple_fold_call): Likewise.
43266 * tree.h (fold_builtin_expect): New prototype.
43267 * builtins.c (build_builtin_expect_predicate): Add predictor
43268 argument, if non-NULL, create 3 argument __builtin_expect.
43269 (fold_builtin_expect): No longer static. Add ARG2 argument,
43270 pass it through to build_builtin_expect_predicate.
43271 (fold_builtin_2): Adjust caller.
43272 (fold_builtin_3): Handle BUILT_IN_EXPECT.
43273 * internal-fn.def (BUILTIN_EXPECT): New.
43275 2014-03-18 Tobias Burnus <burnus@net-b.de>
43278 * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
43279 PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
43280 PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
43282 2014-03-18 Jan Hubicka <hubicka@ucw.cz>
43285 * predict.c (combine_predictions_for_bb): Fix up formatting.
43286 (expr_expected_value_1, expr_expected_value): Add predictor argument,
43287 fill what it points to if non-NULL.
43288 (tree_predict_by_opcode): Adjust caller, use the predictor.
43289 * predict.def (PRED_COMPARE_AND_SWAP): Add.
43291 2014-03-18 Eric Botcazou <ebotcazou@adacore.com>
43293 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
43294 proper constant for the store mode.
43296 2014-03-18 Ilya Enkovich <ilya.enkovich@intel.com>
43298 * symtab.c (change_decl_assembler_name): Fix transparent alias
43299 chain construction.
43301 2014-03-16 Renlin Li <Renlin.Li@arm.com>
43303 * config/aarch64/aarch64.c: Correct the comments about the
43304 aarch64 stack layout.
43306 2014-03-18 Thomas Schwinge <thomas@codesourcery.com>
43308 * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
43309 check for GF_OMP_FOR_KIND_FOR.
43311 2013-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
43313 * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
43314 ymm and zmm register names.
43316 2014-03-17 Jakub Jelinek <jakub@redhat.com>
43319 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
43320 note creation for the 2010-08-31 changes.
43322 2014-03-17 Marek Polacek <polacek@redhat.com>
43324 PR middle-end/60534
43325 * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
43326 as -fno-tree-loop-vectorize.
43327 (expand_omp_simd): Likewise.
43329 2014-03-15 Eric Botcazou <ebotcazou@adacore.com>
43331 * config/sparc/sparc-protos.h (tls_call_delay): Delete.
43332 (eligible_for_call_delay): New prototype.
43333 * config/sparc/sparc.c (tls_call_delay): Rename into...
43334 (eligible_for_call_delay): ...this. Return false if the instruction
43335 cannot be put in the delay slot of a branch.
43336 (eligible_for_restore_insn): Simplify.
43337 (eligible_for_return_delay): Return false if the instruction cannot be
43338 put in the delay slot of a branch and simplify.
43339 (eligible_for_sibcall_delay): Return false if the instruction cannot be
43340 put in the delay slot of a branch.
43341 * config/sparc/sparc.md (fix_ut699): New attribute.
43342 (tls_call_delay): Delete.
43343 (in_call_delay): Reimplement.
43344 (eligible_for_sibcall_delay): Rename into...
43345 (in_sibcall_delay): ...this.
43346 (eligible_for_return_delay): Rename into...
43347 (in_return_delay): ...this.
43348 (in_branch_delay): Reimplement.
43349 (in_uncond_branch_delay): Delete.
43350 (in_annul_branch_delay): Delete.
43352 2014-03-14 Richard Henderson <rth@redhat.com>
43355 * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
43356 define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
43357 (*floathi<X87MODEF>2_i387_with_temp): Remove.
43358 (floathi splitters): Remove.
43359 (float<SWI48x>xf2): New pattern.
43360 (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2. Drop
43361 code that tried to handle DImode for 32-bit, but which was excluded
43362 by the pattern's condition. Drop allocation of stack temporary.
43363 (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
43364 (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
43365 (*float<SWI48><MODEF>2_mixed_interunit): Remove.
43366 (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
43367 (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
43368 (*float<SWI48><MODEF>2_sse_with_temp): Remove.
43369 (*float<SWI48><MODEF>2_sse_interunit): Remove.
43370 (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
43371 (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
43372 (*float<SWI48x><X87MODEF>2_i387): Remove.
43373 (all float _with_temp splitters): Remove.
43374 (*float<SWI48x><MODEF>2_i387): New pattern.
43375 (*float<SWI48><MODEF>2_sse): New pattern.
43376 (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
43377 (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
43379 2014-03-14 Jakub Jelinek <jakub@redhat.com>
43380 Marek Polacek <polacek@redhat.com>
43382 PR middle-end/60484
43383 * common.opt (dump_base_name_prefixed): New Variable.
43384 * opts.c (finish_options): Don't prepend directory to x_dump_base_name
43385 if x_dump_base_name_prefixed is already set, set it at the end.
43387 2014-03-14 Vladimir Makarov <vmakarov@redhat.com>
43389 PR rtl-optimization/60508
43390 * lra-constraints.c (get_reload_reg): Add new parameter
43392 (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
43393 Pass the new parameter values.
43395 2014-03-14 Richard Biener <rguenther@suse.de>
43397 * common.opt: Revert unintented changes from r205065.
43398 * opts.c: Likewise.
43400 2014-03-14 Richard Biener <rguenther@suse.de>
43402 PR middle-end/60518
43403 * cfghooks.c (split_block): Properly adjust all loops the
43404 block was a latch of.
43406 2014-03-14 Martin Jambor <mjambor@suse.cz>
43409 * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
43412 2014-03-14 Georg-Johann Lay <avr@gjlay.de>
43415 * config/avr/avr.c (avr_set_current_function): Pass function name
43416 through default_strip_name_encoding before sanity checking instead
43417 of skipping the first char of the assembler name.
43419 2014-03-13 Richard Henderson <rth@redhat.com>
43422 * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
43423 (ix86_force_to_memory, ix86_free_from_memory): Remove.
43424 * config/i386/i386-protos.h: Likewise.
43425 * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
43426 in the expander instead of a splitter.
43427 (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
43428 any possibility of requiring a memory.
43429 (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
43430 (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
43431 (fp branch splitters): Update for ix86_split_fp_branch.
43432 (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
43433 (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
43434 (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
43435 (*fop_<MODEF>_2_i387): Remove f/r alternative.
43436 (*fop_<MODEF>_3_i387): Likewise.
43437 (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
43438 (splitters for the fop_* register patterns): Remove.
43439 (fscalexf4_i387): Rename from *fscalexf4_i387.
43440 (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
43442 2014-03-13 Jakub Jelinek <jakub@redhat.com>
43444 PR tree-optimization/59779
43445 * tree-dfa.c (get_ref_base_and_extent): Use double_int
43446 type for bitsize and maxsize instead of HOST_WIDE_INT.
43448 2014-03-13 Steven Bosscher <steven@gcc.gnu.org>
43450 PR rtl-optimization/57320
43451 * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
43452 the CFG after thread_prologue_and_epilogue_insns.
43454 2014-03-13 Vladimir Makarov <vmakarov@redhat.com>
43456 PR rtl-optimization/57189
43457 * lra-constraints.c (process_alt_operands): Disfavor spilling
43460 2014-03-13 Cesar Philippidis <cesar@codesourcery.com>
43462 * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
43464 2014-03-13 Jakub Jelinek <jakub@redhat.com>
43466 PR tree-optimization/59025
43467 PR middle-end/60418
43468 * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
43469 same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
43471 2014-03-13 Georg-Johann Lay <avr@gjlay.de>
43474 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
43475 calls of avr_out_plus_1.
43477 2014-03-13 Bin Cheng <bin.cheng@arm.com>
43479 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
43480 BB's single pred and update the father loop's latch info later.
43482 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
43484 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
43488 (VEC_base): Likewise.
43489 (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
43490 registers, we need to swap double words in little endian mode.
43492 * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
43493 to be a container mode for 128-bit integer operations added in ISA
43494 2.07. Unlike TImode and PTImode, the preferred register set is
43495 the Altivec/VMX registers for the 128-bit operations.
43497 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
43499 (rs6000_split_128bit_ok_p): Likewise.
43501 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
43502 macros for creating ISA 2.07 normal and overloaded builtin
43503 functions with 3 arguments.
43504 (BU_P8V_OVERLOAD_3): Likewise.
43505 (VPERM_1T): Add support for V1TImode in 128-bit vector operations
43506 for use as overloaded functions.
43507 (VPERM_1TI_UNS): Likewise.
43508 (VSEL_1TI): Likewise.
43509 (VSEL_1TI_UNS): Likewise.
43510 (ST_INTERNAL_1ti): Likewise.
43511 (LD_INTERNAL_1ti): Likewise.
43512 (XXSEL_1TI): Likewise.
43513 (XXSEL_1TI_UNS): Likewise.
43514 (VPERM_1TI): Likewise.
43515 (VPERM_1TI_UNS): Likewise.
43516 (XXPERMDI_1TI): Likewise.
43517 (SET_1TI): Likewise.
43518 (LXVD2X_V1TI): Likewise.
43519 (STXVD2X_V1TI): Likewise.
43520 (VEC_INIT_V1TI): Likewise.
43521 (VEC_SET_V1TI): Likewise.
43522 (VEC_EXT_V1TI): Likewise.
43523 (EQV_V1TI): Likewise.
43524 (NAND_V1TI): Likewise.
43525 (ORC_V1TI): Likewise.
43526 (VADDCUQ): Add support for 128-bit integer arithmetic instructions
43527 added in ISA 2.07. Add both normal 'altivec' builtins, and the
43528 overloaded builtin.
43529 (VADDUQM): Likewise.
43530 (VSUBCUQ): Likewise.
43531 (VADDEUQM): Likewise.
43532 (VADDECUQ): Likewise.
43533 (VSUBEUQM): Likewise.
43534 (VSUBECUQ): Likewise.
43536 * config/rs6000/rs6000-c.c (__int128_type): New static to hold
43537 __int128_t and __uint128_t types.
43538 (__uint128_type): Likewise.
43539 (altivec_categorize_keyword): Add support for vector __int128_t,
43540 vector __uint128_t, vector __int128, and vector unsigned __int128
43541 as a container type for TImode operations that need to be done in
43542 VSX/Altivec registers.
43543 (rs6000_macro_to_expand): Likewise.
43544 (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
43545 to support 128-bit integer instructions vaddcuq, vadduqm,
43546 vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
43547 (altivec_resolve_overloaded_builtin): Add support for V1TImode.
43549 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
43550 for V1TImode, and set up preferences to use VSX/Altivec registers.
43551 Setup VSX reload handlers.
43552 (rs6000_debug_reg_global): Likewise.
43553 (rs6000_init_hard_regno_mode_ok): Likewise.
43554 (rs6000_preferred_simd_mode): Likewise.
43555 (vspltis_constant): Do not allow V1TImode as easy altivec constants.
43556 (easy_altivec_constant): Likewise.
43557 (output_vec_const_move): Likewise.
43558 (rs6000_expand_vector_set): Convert V1TImode set and extract to
43560 (rs6000_expand_vector_extract): Likewise.
43561 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
43563 (rs6000_const_vec): Add support for V1TImode.
43564 (rs6000_emit_le_vsx_load): Swap double words when loading or
43565 storing TImode/V1TImode.
43566 (rs6000_emit_le_vsx_store): Likewise.
43567 (rs6000_emit_le_vsx_move): Likewise.
43568 (rs6000_emit_move): Add support for V1TImode.
43569 (altivec_expand_ld_builtin): Likewise.
43570 (altivec_expand_st_builtin): Likewise.
43571 (altivec_expand_vec_init_builtin): Likewise.
43572 (altivec_expand_builtin): Likewise.
43573 (rs6000_init_builtins): Add support for V1TImode type. Add
43574 support for ISA 2.07 128-bit integer builtins. Define type names
43575 for the VSX/Altivec vector types.
43576 (altivec_init_builtins): Add support for overloaded vector
43577 functions with V1TImode type.
43578 (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
43579 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
43581 (rs6000_split_128bit_ok_p): Likewise.
43582 (rs6000_handle_altivec_attribute): Create V1TImode from vector
43583 __int128_t and vector __uint128_t.
43585 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
43586 and mode attributes.
43588 (VSX_M2): Likewise.
43593 (VS_scalar): Likewise.
43594 (VS_double): Likewise.
43595 (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
43597 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
43598 we support the ISA 2.07 128-bit integer arithmetic instructions.
43599 (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
43600 (enum rs6000_builtin_type_index): Add fields to hold V1TImode
43601 and TImode types for use with the builtin functions.
43602 (V1TI_type_node): Likewise.
43603 (unsigned_V1TI_type_node): Likewise.
43604 (intTI_type_internal_node): Likewise.
43605 (uintTI_type_internal_node): Likewise.
43607 * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
43608 128-bit builtin functions.
43609 (UNSPEC_VADDEUQM): Likewise.
43610 (UNSPEC_VADDECUQ): Likewise.
43611 (UNSPEC_VSUBCUQ): Likewise.
43612 (UNSPEC_VSUBEUQM): Likewise.
43613 (UNSPEC_VSUBECUQ): Likewise.
43614 (VM): Add V1TImode to vector mode iterators.
43616 (VI_unit): Likewise.
43617 (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
43618 (altivec_vaddcuq): Likewise.
43619 (altivec_vsubuqm): Likewise.
43620 (altivec_vsubcuq): Likewise.
43621 (altivec_vaddeuqm): Likewise.
43622 (altivec_vaddecuq): Likewise.
43623 (altivec_vsubeuqm): Likewise.
43624 (altivec_vsubecuq): Likewise.
43626 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
43628 (BOOL_128): Likewise.
43629 (BOOL_REGS_OUTPUT): Likewise.
43630 (BOOL_REGS_OP1): Likewise.
43631 (BOOL_REGS_OP2): Likewise.
43632 (BOOL_REGS_UNARY): Likewise.
43633 (BOOL_REGS_AND_CR0): Likewise.
43635 * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
43636 128-bit integer builtin support.
43637 (vec_vadduqm): Likewise.
43638 (vec_vaddecuq): Likewise.
43639 (vec_vaddeuqm): Likewise.
43640 (vec_vsubecuq): Likewise.
43641 (vec_vsubeuqm): Likewise.
43642 (vec_vsubcuq): Likewise.
43643 (vec_vsubuqm): Likewise.
43645 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
43646 Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
43647 vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
43648 128-bit integer add/subtract to ISA 2.07.
43650 2014-03-12 Joern Rennecke <joern.rennecke@embecosm.com>
43652 * config/arc/arc.c (arc_predicate_delay_insns):
43653 Fix third argument passed to conditionalize_nonjump.
43655 2014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
43657 * config/aarch64/aarch64-builtins.c
43658 (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
43659 BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
43660 * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
43661 instead of __builtin_lfloor.
43662 (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
43664 2014-03-12 Jakub Jelinek <jakub@redhat.com>
43666 * tree-ssa-ifcombine.c (forwarder_block_to): New function.
43667 (tree_ssa_ifcombine_bb_1): New function.
43668 (tree_ssa_ifcombine_bb): Use it. Handle also cases where else_bb
43669 is an empty forwarder block to then_bb or vice versa and then_bb
43670 and else_bb are effectively swapped.
43672 2014-03-12 Christian Bruel <christian.bruel@st.com>
43675 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
43676 REG_CFA_DEF_CFA note.
43677 (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
43678 (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
43680 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
43682 PR tree-optimization/60454
43683 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
43685 2014-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
43687 * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
43688 Do not define target_cpu_default2 to generic.
43689 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
43690 * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
43691 * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
43693 2014-03-12 Jakub Jelinek <jakub@redhat.com>
43694 Marc Glisse <marc.glisse@inria.fr>
43696 PR tree-optimization/60502
43697 * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
43698 instead of build_low_bits_mask.
43700 2014-03-12 Jakub Jelinek <jakub@redhat.com>
43702 PR middle-end/60482
43703 * tree-vrp.c (register_edge_assert_for_1): Don't add assert
43704 if there are multiple uses, but op doesn't live on E edge.
43705 * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
43706 clobber stmts before __builtin_unreachable.
43708 2014-03-11 Richard Sandiford <rdsandiford@googlemail.com>
43710 * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
43711 hard_frame_pointer_rtx.
43712 * cse.c (cse_insn): Remove volatile check.
43713 * cselib.c (cselib_process_insn): Likewise.
43714 * dse.c (scan_insn): Likewise.
43716 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
43718 * config/arc/arc.c (conditionalize_nonjump): New function,
43720 (arc_ifcvt): ... this.
43721 (arc_predicate_delay_insns): Use it.
43723 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
43725 * config/arc/predicates.md (extend_operand): During/after reload,
43726 allow const_int_operand.
43727 * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
43728 (umulsidi3_700): Likewise. Change operand 2 constraint back to "cL".
43729 (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
43731 (umulsi3_highpart_i): Likewise.
43733 2014-03-11 Richard Biener <rguenther@suse.de>
43735 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
43736 Add asserts to guard possible wrong-code bugs.
43738 2014-03-11 Richard Biener <rguenther@suse.de>
43740 PR tree-optimization/60429
43741 PR tree-optimization/60485
43742 * tree-ssa-structalias.c (set_union_with_increment): Properly
43743 take into account all fields that overlap the shifted vars.
43744 (do_sd_constraint): Likewise.
43745 (do_ds_constraint): Likewise.
43746 (get_constraint_for_ptr_offset): Likewise.
43748 2014-03-11 Chung-Lin Tang <cltang@codesourcery.com>
43750 * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
43751 (nios2_compute_frame_layout):
43752 Add calculation of cfun->machine->fp_save_offset.
43753 (nios2_expand_prologue): Correct setting of frame pointer register
43755 (nios2_expand_epilogue): Update recovery of stack pointer from
43756 frame pointer accordingly.
43757 (nios2_initial_elimination_offset): Update calculation of offset
43758 for eliminating to HARD_FRAME_POINTER_REGNUM.
43760 2014-03-10 Jakub Jelinek <jakub@redhat.com>
43763 * ipa.c (symtab_remove_unreachable_nodes): Don't call
43764 cgraph_get_create_node on VAR_DECLs.
43766 2014-03-10 Richard Biener <rguenther@suse.de>
43768 PR middle-end/60474
43769 * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
43771 2014-03-08 Douglas B Rupp <rupp@gnat.com>
43773 * config/vms/vms.opt (vms_float_format): New variable.
43775 2014-03-08 Tobias Burnus <burnus@net-b.de>
43777 * doc/invoke.texi (-fcilkplus): Update implementation status.
43779 2014-03-08 Paulo Matos <paulo@matos-sorge.com>
43780 Richard Biener <rguenther@suse.de>
43782 * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
43783 consistently accross all TUs.
43784 (run_gcc): Enable -fshort-double automatically at link at link-time
43785 and disallow override.
43787 2014-03-08 Richard Sandiford <rdsandiford@googlemail.com>
43790 * config/mips/mips.c (mips_option_override): Promote -mpaired-single
43791 warning to an error. Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
43792 if they can't be used.
43794 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
43796 * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
43797 for Solaris 11/x86 ld.
43798 * configure: Regenerate.
43800 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
43802 * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
43803 (LIB_TLS_SPEC): Save as ld_tls_libs.
43804 (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
43805 (HAVE_AS_IX86_TLSLDM): New test.
43806 * configure, config.in: Regenerate.
43807 * config/i386/i386.c (legitimize_tls_address): Fall back to
43808 TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
43809 cannot support TLS_MODEL_LOCAL_DYNAMIC.
43810 * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
43811 instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
43813 2014-03-07 Paulo Matos <paulo@matos-sorge.com>
43815 * common.opt (fira-loop-pressure): Mark as optimization.
43817 2014-03-07 Thomas Schwinge <thomas@codesourcery.com>
43819 * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
43820 an OpenMP mappable type.
43822 2014-03-06 Matthias Klose <doko@ubuntu.com>
43824 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
43825 MULTILIB_OSDIRNAMES is not defined.
43827 2014-03-06 Jakub Jelinek <jakub@redhat.com>
43828 Meador Inge <meadori@codesourcery.com>
43831 * config/arm/arm.c (arm_tls_symbol_p): Remove.
43832 (arm_legitimize_address): Call legitimize_tls_address for any
43833 arm_tls_referenced_p expression, handle constant addend. Call it
43834 before testing for !TARGET_ARM.
43835 (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
43837 2014-03-06 Richard Biener <rguenther@suse.de>
43839 PR middle-end/60445
43843 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
43845 * tree-streamer.c (record_common_node): Assert we don't record
43846 nodes with type double.
43847 (preload_common_node): Skip type double, complex double and double
43848 pointer since it is now frontend dependent due to fshort-double option.
43850 2014-03-06 Richard Biener <rguenther@suse.de>
43852 * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
43853 or -fno-lto is specified and the linker has full plugin support.
43854 * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
43855 (main): Remove -flto processing, adjust lto_mode using use_plugin late.
43856 * lto-wrapper.c (merge_and_complain): Merge compile-time
43857 optimization levels.
43858 (run_gcc): And pass it through to the link options.
43860 2014-03-06 Alexandre Oliva <aoliva@redhat.com>
43864 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
43866 * cselib.c (remove_useless_values): Skip to avoid quadratic
43867 behavior if the condition moved from...
43868 (cselib_process_insn): ... here holds.
43870 2014-03-05 Jakub Jelinek <jakub@redhat.com>
43873 * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
43874 ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
43877 * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
43878 (TM_H): Add x86-tune.def.
43880 2014-03-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
43882 * config/aarch64/aarch64.c (generic_tunings):
43883 Use cortexa57_extra_costs.
43885 2014-03-05 Jakub Jelinek <jakub@redhat.com>
43888 * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
43889 of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
43890 * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
43893 2014-03-04 Heiher <r@hev.cc>
43895 * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
43896 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
43898 2014-03-04 Uros Bizjak <ubizjak@gmail.com>
43900 * config/i386/predicates.md (const2356_operand): Change to ...
43901 (const2367_operand): ... this.
43902 * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
43904 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
43905 (*avx512pf_scatterpf<mode>sf): Ditto.
43906 (avx512pf_scatterpf<mode>df): Ditto.
43907 (*avx512pf_scatterpf<mode>df_mask): Ditto.
43908 (*avx512pf_scatterpf<mode>df): Ditto.
43909 * config/i386/i386.c (ix86_expand_builtin): Update
43910 incorrect hint operand error message.
43912 2014-03-04 Richard Biener <rguenther@suse.de>
43914 * lto-section-in.c (lto_get_section_data): Fix const cast.
43916 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
43918 * tree-streamer.c (record_common_node): Assert we don't record
43919 nodes with type double.
43920 (preload_common_node): Skip type double, complex double and double
43921 pointer since it is now frontend dependent due to fshort-double option.
43923 2014-03-04 Richard Biener <rguenther@suse.de>
43926 * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
43927 (lto_input_toplevel_asms): Likewise.
43928 * lto-section-in.c (lto_get_section_data): Instead do it here
43931 2014-03-04 Richard Biener <rguenther@suse.de>
43933 PR tree-optimization/60382
43934 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
43935 dead PHIs a reduction.
43937 2014-03-03 Uros Bizjak <ubizjak@gmail.com>
43939 * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
43941 (_mm_prefetch): Move out of GCC target("sse") pragma.
43942 * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
43943 GCC target("prfchw") pragma.
43944 * config/i386/i386.md (prefetch): Emit prefetchwt1 only
43946 * config/i386/i386.c (ix86_option_override_internal): Enable
43947 -mprfchw with -mprefetchwt1.
43949 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
43951 * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
43954 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
43956 * opts.h (CL_PCH_IGNORE): Define.
43957 * targhooks.c (option_affects_pch_p):
43958 Return false for options that have CL_PCH_IGNORE set.
43959 * opt-functions.awk: Process PchIgnore.
43960 * doc/options.texi: Document PchIgnore.
43962 * config/arc/arc.opt (misize): Add PchIgnore property.
43964 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
43966 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
43967 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
43968 constraint on constants to permit them being loaded into
43969 GENERAL_REGS or BASE_REGS.
43971 2014-03-03 Nick Clifton <nickc@redhat.com>
43973 * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
43974 anti-cacnonical alternatives.
43975 (negandhi3_real): New pattern.
43976 * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
43978 2014-03-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
43980 * config/avr/avr-mcus.def: Remove atxmega16x1.
43981 * config/avr/avr-tables.opt: Regenerate.
43982 * config/avr/t-multilib: Regenerate.
43983 * doc/avr-mmcu.texi: Regenerate.
43985 2014-03-03 Tobias Grosser <tobias@grosser.es>
43986 Mircea Namolaru <mircea.namolaru@inria.fr>
43988 PR tree-optimization/58028
43989 * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
43992 2014-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
43994 * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
43995 not handled by recognizers.
43997 2014-03-03 Jakub Jelinek <jakub@redhat.com>
43999 PR middle-end/60175
44000 * function.c (expand_function_end): Don't emit
44001 clobber_return_register sequence if clobber_after is a BARRIER.
44002 * cfgexpand.c (construct_exit_block): Append instructions before
44003 return_label to prev_bb.
44005 2014-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
44007 * config/rs6000/constraints.md: Document reserved use of "wc".
44009 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
44012 * ipa.c (function_and_variable_visibility): When dissolving comdat
44013 group, also set all symbols to local.
44015 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
44020 2013-12-14 Jan Hubicka <jh@suse.cz>
44021 PR middle-end/58477
44022 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
44024 2014-03-02 Jon Beniston <jon@beniston.com>
44030 * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
44031 (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
44032 * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
44033 (simple_return, *simple_return): New patterns
44034 * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
44035 * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
44037 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
44039 * dwarf2out.c (gen_subprogram_die): Tidy.
44041 2014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
44044 * config/sh/sh.md (*mov_t_msb_neg): Split into ...
44045 (*mov_t_msb_neg_negc): ... this new insn.
44047 2014-02-28 Jason Merrill <jason@redhat.com>
44050 * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
44053 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
44056 * dwarf2out.c (decltype_auto_die): New static.
44057 (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
44058 (gen_type_die_with_usage): Handle 'decltype(auto)'.
44059 (is_cxx_auto): Likewise.
44061 2014-02-28 Ian Bolton <ian.bolton@arm.com>
44063 * config/aarch64/aarch64.h: Define __ARM_NEON by default if
44064 we are not using general regs only.
44066 2014-02-28 Richard Biener <rguenther@suse.de>
44069 * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
44070 previous fix and only allow to remove trivial pre-headers
44071 and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
44072 (remove_forwarder_block): Properly update the latch of a loop.
44074 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
44077 * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
44078 (cselib_preserved_hash_table): New.
44079 (preserve_constants_and_equivs): Move preserved vals to it.
44080 (cselib_find_slot): Look it up first.
44081 (cselib_init): Initialize it.
44082 (cselib_finish): Release it.
44083 (dump_cselib_table): Dump it.
44085 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
44088 * cselib.c (remove_useless_values): Skip to avoid quadratic
44089 behavior if the condition moved from...
44090 (cselib_process_insn): ... here holds.
44092 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
44095 * var-tracking.c (vt_initialize): Apply the same condition to
44096 preserve the CFA base value.
44098 2014-02-28 Joey Ye <joey.ye@arm.com>
44101 * config/arm/arm.c (thumb_far_jump_used_p): Don't change
44102 if reload in progress or completed.
44104 2014-02-28 Tobias Burnus <burnus@net-b.de>
44106 PR middle-end/60147
44107 * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
44110 2014-02-27 H.J. Lu <hongjiu.lu@intel.com>
44112 * doc/tm.texi.in (Condition Code Status): Update documention for
44113 relative locations of cc0-setter and cc0-user.
44115 2014-02-27 Jeff Law <law@redhat.com>
44117 PR rtl-optimization/52714
44118 * combine.c (try_combine): When splitting an unrecognized PARALLEL
44119 into two independent simple sets, if I3 is a jump, ensure the
44120 pattern we place into I3 is a (set (pc) ...).
44122 2014-02-27 Mikael Pettersson <mikpe@it.uu.se>
44123 Jeff Law <law@redhat.com>
44125 PR rtl-optimization/49847
44126 * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
44127 are in different blocks.
44128 * doc/tm.texi (Condition Code Status): Update documention for
44129 relative locations of cc0-setter and cc0-user.
44131 2014-02-27 Vladimir Makarov <vmakarov@redhat.com>
44134 * lra.c (lra_emit_add): Check SUBREG too.
44136 2014-02-27 Andreas Schwab <schwab@suse.de>
44138 * config/m68k/m68k.c (m68k_option_override): Disable
44139 -flive-range-shrinkage for classic m68k.
44140 (m68k_override_options_after_change): Likewise.
44142 2014-02-27 Marek Polacek <polacek@redhat.com>
44144 PR middle-end/59223
44145 * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
44146 -Wmaybe-uninitialized.
44148 2014-02-27 Alan Modra <amodra@gmail.com>
44151 * reload1.c (emit_input_reload_insns): When reload_override_in,
44152 set old to rl->in_reg when rl->in_reg is a subreg.
44154 2014-02-26 Richard Biener <rguenther@suse.de>
44157 * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
44159 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
44161 * common/config/i386/predicates.md (const1256_operand): Remove.
44162 (const2356_operand): New.
44163 (const_1_to_2_operand): Remove.
44164 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
44165 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
44166 (*avx512pf_gatherpf<mode>sf): Ditto.
44167 (avx512pf_gatherpf<mode>df): Ditto.
44168 (*avx512pf_gatherpf<mode>df_mask): Ditto.
44169 (*avx512pf_gatherpf<mode>df): Ditto.
44170 (avx512pf_scatterpf<mode>sf): Ditto.
44171 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
44172 (*avx512pf_scatterpf<mode>sf): Ditto.
44173 (avx512pf_scatterpf<mode>df): Ditto.
44174 (*avx512pf_scatterpf<mode>df_mask): Ditto.
44175 (*avx512pf_scatterpf<mode>df): Ditto.
44176 * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
44178 2014-02-26 Ilya Tocar <ilya.tocar@intel.com>
44180 * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
44181 (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
44182 (_mm512_mask_testn_epi64_mask): Move to ...
44183 * config/i386/avx512cdintrin.h: Here.
44184 * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
44185 * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
44186 (avx512f_scalef<mode><mask_name><round_name>): Ditto.
44187 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
44188 TARGET_AVX512F from TARGET_AVX512CD.
44190 2014-02-26 Richard Biener <rguenther@suse.de>
44193 * ipa.c (walk_polymorphic_call_targets): Properly guard
44194 call to inline_update_overall_summary.
44196 2014-02-26 Bin Cheng <bin.cheng@arm.com>
44199 * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
44200 and latches only if requested. Fix latch if it is removed.
44201 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
44202 LOOPS_HAVE_PREHEADERS.
44204 2014-02-25 Andrew Pinski <apinski@cavium.com>
44206 * builtins.c (expand_builtin_thread_pointer): Create a new target
44207 when the target is NULL.
44209 2014-02-25 Vladimir Makarov <vmakarov@redhat.com>
44211 PR rtl-optimization/60317
44212 * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
44213 * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
44214 * lra-assigns.c: Include params.h.
44215 (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
44216 other reload pseudos considerations.
44218 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
44220 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
44221 to use canonical form for nor<mode>3.
44223 2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
44226 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
44229 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
44231 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
44232 (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
44233 (ix86_handle_option): Handle OPT_mprefetchwt1.
44234 * config/i386/cpuid.h (bit_PREFETCHWT1): New.
44235 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
44237 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
44238 OPTION_MASK_ISA_PREFETCHWT1.
44239 * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
44240 (PTA_PREFETCHWT1): New.
44241 (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
44242 (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
44243 * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
44244 * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
44245 (*prefetch_avx512pf_<mode>_: Change into ...
44246 (*prefetch_prefetchwt1_<mode>: This.
44247 * config/i386/i386.opt (mprefetchwt1): New.
44248 * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
44249 (_mm_prefetch): Handle intent to write.
44250 * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
44252 2014-02-25 Richard Biener <rguenther@suse.de>
44254 PR middle-end/60291
44255 * emit-rtl.c (mem_attrs_htab): Remove.
44256 (mem_attrs_htab_hash): Likewise.
44257 (mem_attrs_htab_eq): Likewise.
44258 (set_mem_attrs): Always allocate new mem-attrs when something changed.
44259 (init_emit_once): Do not allocate mem_attrs_htab.
44261 2014-02-25 Richard Biener <rguenther@suse.de>
44264 * lto-opts.c (lto_write_options): Output non-explicit conservative
44265 -fwrapv, -fno-trapv and -fno-strict-overflow.
44266 * lto-wrapper.c (merge_and_complain): Handle merging those options.
44267 (run_gcc): And pass them through.
44269 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
44271 * sel-sched.c (calculate_new_fences): New parameter ptime.
44272 Calculate it as a maximum over all fence cycles.
44273 (sel_sched_region_2): Adjust the call to calculate_new_fences.
44274 Print the final schedule timing when sched_verbose.
44276 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
44278 PR rtl-optimization/60292
44279 * sel-sched.c (fill_vec_av_set): Do not reset target availability
44280 bit fot the fence instruction.
44282 2014-02-24 Alangi Derick <alangiderick@gmail.com>
44284 * calls.h: Fix typo in comment.
44286 2014-02-24 John David Anglin <danglin@gcc.gnu.org>
44288 * config/pa/pa.c (pa_output_move_double): Don't valididate when
44289 adjusting offsetable addresses.
44291 2014-02-24 Guozhi Wei <carrot@google.com>
44293 * sparseset.h (sparseset_pop): Fix the wrong index.
44295 2014-02-24 Walter Lee <walt@tilera.com>
44297 * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
44298 (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
44300 * common/config/tilegx/tilegx-common.c
44301 (TARGET_DEFAULT_TARGET_FLAGS): Define.
44302 * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
44303 (LINK_SPEC): Ditto.
44304 * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
44305 * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
44306 (tilegx_gimplify_va_arg_expr): Handle big endian.
44307 (tilegx_expand_unaligned_load): Ditto.
44308 (tilegx_expand_unaligned_store): Ditto.
44309 (TARGET_RETURN_IN_MSB): New.
44310 * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
44311 (TARGET_ENDIAN_DEFAULT): New.
44312 (TARGET_BIG_ENDIAN): Handle big endian.
44313 (BYTES_BIG_ENDIAN): Ditto.
44314 (WORDS_BIG_ENDIAN): Ditto.
44315 (FLOAT_WORDS_BIG_ENDIAN): Ditto.
44316 (ENDIAN_SPEC): New.
44317 (EXTRA_SPECS): New.
44318 * config/tilegx/tilegx.md (extv): Handle big endian.
44320 (insn_st<n>): Ditto.
44321 (insn_st<n>_add<bitsuffix>): Ditto.
44322 (insn_stnt<n>): Ditto.
44323 (insn_stnt<n>_add<bitsuffix>):Ditto.
44324 (vec_interleave_highv8qi): Handle big endian.
44325 (vec_interleave_highv8qi_be): New.
44326 (vec_interleave_highv8qi_le): New.
44327 (insn_v1int_h): Handle big endian.
44328 (vec_interleave_lowv8qi): Handle big endian.
44329 (vec_interleave_lowv8qi_be): New.
44330 (vec_interleave_lowv8qi_le): New.
44331 (insn_v1int_l): Handle big endian.
44332 (vec_interleave_highv4hi): Handle big endian.
44333 (vec_interleave_highv4hi_be): New.
44334 (vec_interleave_highv4hi_le): New.
44335 (insn_v2int_h): Handle big endian.
44336 (vec_interleave_lowv4hi): Handle big endian.
44337 (vec_interleave_lowv4hi_be): New.
44338 (vec_interleave_lowv4hi_le): New.
44339 (insn_v2int_l): Handle big endian.
44340 (vec_interleave_highv2si): Handle big endian.
44341 (vec_interleave_highv2si_be): New.
44342 (vec_interleave_highv2si_le): New.
44343 (insn_v4int_h): Handle big endian.
44344 (vec_interleave_lowv2si): Handle big endian.
44345 (vec_interleave_lowv2si_be): New.
44346 (vec_interleave_lowv2si_le): New.
44347 (insn_v4int_l): Handle big endian.
44348 * config/tilegx/tilegx.opt (mbig-endian): New option.
44349 (mlittle-endian): New option.
44350 * doc/install.texi: Document tilegxbe-linux.
44351 * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
44353 2014-02-24 Martin Jambor <mjambor@suse.cz>
44356 * ipa-cp.c (propagate_constants_accross_call): Bail out early if
44357 there are no parameter descriptors.
44359 2014-02-24 Andrey Belevantsev <abel@ispras.ru>
44361 PR rtl-optimization/60268
44362 * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
44363 initialization to ...
44364 (sched_rgn_init): ... here.
44365 (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
44367 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
44369 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
44372 2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
44374 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
44377 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
44379 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
44380 define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
44382 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
44384 * config/microblaze/predicates.md: Add cmp_op predicate.
44385 * config/microblaze/microblaze.md: Add branch_compare instruction
44386 which uses cmp_op predicate and emits cmp insn before branch.
44387 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
44388 to microblaze_expand_conditional_branch and consolidate logic.
44389 (microblaze_expand_conditional_branch): emit branch_compare
44390 insn instead of handling cmp op separate from branch insn.
44392 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
44394 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
44397 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
44399 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
44400 define_insn with define_expand and new define_insn
44401 *altivec_lve<VI_char>x_internal.
44402 (altivec_stve<VI_char>x): Replace define_insn with define_expand
44403 and new define_insn *altivec_stve<VI_char>x_internal.
44404 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
44406 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
44408 (altivec_expand_stvex_be): New function.
44410 2014-02-22 Joern Rennecke <joern.rennecke@embecosm.com>
44412 * config/avr/avr.c (avr_can_eliminate): Allow elimination from
44413 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
44414 * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
44415 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
44417 2014-02-21 Vladimir Makarov <vmakarov@redhat.com>
44420 * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
44421 instead of emit_move_insn.
44423 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
44425 * config/rs6000/altivec.md (altivec_vsumsws): Replace second
44426 vspltw with vsldoi.
44427 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
44428 gen_altivec_vsumsws.
44430 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
44432 * config/rs6000/altivec.md (altivec_lvxl): Rename as
44433 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
44434 (altivec_lvxl_<mode>): New define_expand incorporating
44435 -maltivec=be semantics where needed.
44436 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
44437 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
44438 semantics where needed.
44439 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
44440 (altivec_stvx_<mode>): New define_expand incorporating
44441 -maltivec=be semantics where needed.
44442 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
44443 VM2 iterator instead of V4SI.
44444 (altivec_stvxl_<mode>): New define_expand incorporating
44445 -maltivec=be semantics where needed.
44446 * config/rs6000/rs6000-builtin.def: Add new built-in definitions
44447 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
44448 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
44449 STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
44450 STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
44451 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
44452 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
44453 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
44454 ALTIVEC_BUILTIN_STVXL.
44455 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
44456 (altivec_expand_stvx_be): Likewise.
44457 * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
44458 (altivec_expand_lvx_be): Likewise.
44459 (altivec_expand_stvx_be): Likewise.
44460 (altivec_expand_builtin): Add cases for
44461 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
44462 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
44463 (altivec_init_builtins): Add definitions for
44464 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
44465 __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
44467 2014-02-21 Catherine Moore <clm@codesourcery.com>
44469 * doc/invoke.texi (mvirt, mno-virt): Document.
44470 * config/mips/mips.opt (mvirt): New option.
44471 * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
44473 2014-02-21 Richard Biener <rguenther@suse.de>
44475 PR tree-optimization/60276
44476 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
44477 (STMT_VINFO_MIN_NEG_DIST): New macro.
44478 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
44479 STMT_VINFO_MIN_NEG_DIST.
44480 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
44481 made for negative dependence distances still hold.
44483 2014-02-21 Richard Biener <rguenther@suse.de>
44485 PR middle-end/60291
44486 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
44487 DECL_INITIAL for globals not in the current function context.
44489 2014-02-21 Jakub Jelinek <jakub@redhat.com>
44491 PR tree-optimization/56490
44492 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
44493 * tree-ssa-uninit.c: Include params.h.
44494 (compute_control_dep_chain): Add num_calls argument, return false
44495 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
44496 num_calls to recursive call.
44497 (find_predicates): Change dep_chain into normal array,
44498 cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
44499 variable and adjust compute_control_dep_chain caller.
44500 (find_def_preds): Likewise.
44502 2014-02-21 Thomas Schwinge <thomas@codesourcery.com>
44504 * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
44505 <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
44507 2014-02-21 Nick Clifton <nickc@redhat.com>
44509 * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
44510 (pushhi1): Likewise.
44511 (popqi1): Add mode to pre_dec.
44512 (pophi1): Likewise.
44514 2014-02-21 Jakub Jelinek <jakub@redhat.com>
44516 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
44517 mode for mask of V8SFmode permutation.
44519 2014-02-20 Richard Henderson <rth@redhat.com>
44522 * builtins.c (expand_builtin_atomic_compare_exchange): Always make
44523 a new pseudo for OLDVAL.
44525 2014-02-20 Jakub Jelinek <jakub@redhat.com>
44528 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
44529 gen_reg_rtx if d->testing_p.
44530 (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
44531 if d->testing_p and we will certainly return true.
44532 (expand_vec_perm_even_odd_1): Likewise. Don't call gen_reg_rtx
44535 2014-02-20 Uros Bizjak <ubizjak@gmail.com>
44537 * emit-rtl.c (gen_reg_rtx): Assert that
44538 crtl->emit.regno_pointer_align_length is non-zero.
44540 2014-02-20 Richard Henderson <rth@redhat.com>
44543 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
44544 on failure the store back into EXPECT.
44546 2014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
44547 Sandra Loosemore <sandra@codesourcery.com>
44549 * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
44550 * config/nios2/nios2.c (nios2_function_profiler): Add
44551 -fPIC (flag_pic == 2) support.
44552 (nios2_handle_custom_fpu_cfg): Fix warning parameter.
44553 (nios2_large_offset_p): New function.
44554 (nios2_unspec_reloc_p): Move up position, update to use
44555 nios2_large_offset_p.
44556 (nios2_unspec_address): Remove function.
44557 (nios2_unspec_offset): New function.
44558 (nios2_large_got_address): New function.
44559 (nios2_got_address): Add large offset support.
44560 (nios2_legitimize_tls_address): Update usage of removed and new
44562 (nios2_symbol_binds_local_p): New function.
44563 (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
44564 (nios2_legitimize_address): Update to use nios2_large_offset_p.
44565 (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
44566 (nios2_print_operand): Merge H/L processing, add hiadj/lo
44567 processing for (const (unspec ...)).
44568 (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
44570 2014-02-20 Richard Biener <rguenther@suse.de>
44572 * tree-cfg.c (replace_uses_by): Mark altered BBs before
44573 doing the substitution.
44574 (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
44576 2014-02-20 Martin Jambor <mjambor@suse.cz>
44579 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
44580 info when checking whether lattices are bottom.
44582 2014-02-20 Richard Biener <rguenther@suse.de>
44584 PR middle-end/60221
44585 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
44588 2014-02-20 Jan Hubicka <hubicka@ucw.cz>
44591 * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
44592 parameter specifying the scaling.
44593 (inline_call): Update.
44594 (want_inline_recursively): Guard division by zero.
44595 (recursive_inlining): Update.
44596 * ipa-inline.h (clone_inlined_nodes): Update.
44598 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
44601 * config/i386/i386.c (classify_argument): Pass structures of size
44602 64 bytes or less in register.
44604 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
44605 Kirill Yukhin <kirill.yukhin@intel.com>
44607 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
44608 (_mm_rcp28_round_ss): Ditto.
44609 (_mm_rsqrt28_round_sd): Ditto.
44610 (_mm_rsqrt28_round_ss): Ditto.
44611 * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
44612 (_mm_rcp14_round_ss): Ditto.
44613 (_mm_rsqrt14_round_sd): Ditto.
44614 (_mm_rsqrt14_round_ss): Ditto.
44615 * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
44616 the first input operand, get rid of match_dup.
44617 (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
44619 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
44621 (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
44622 operand as the first input operand, set type attribute.
44623 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
44624 Set type attribute.
44625 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
44626 operand as the first input operand, set type attribute.
44628 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
44630 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
44633 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
44636 * config/i386/i386.c (construct_container): Remove TFmode check
44637 for X86_64_INTEGER_CLASS.
44639 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
44642 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
44643 only when -Wpsabi is enabled.
44645 2014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
44648 * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
44649 passing arrays in registers are the same as for structs, so remove the
44650 special case for them.
44652 2014-02-19 Eric Botcazou <ebotcazou@adacore.com>
44654 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
44655 destination type, extract only the valid bits if the source type is not
44656 integral and has a different mode.
44658 2014-02-19 Richard Biener <rguenther@suse.de>
44661 * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
44664 2014-02-19 Richard Biener <rguenther@suse.de>
44667 * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
44668 (ipa_modify_call_arguments): Emit an argument load explicitely and
44669 preserve virtual SSA form there and for the replacement call.
44670 Do not update SSA form nor free dominance info.
44672 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
44674 * ipa.c (function_and_variable_visibility): Also clear WEAK
44675 flag when disolving COMDAT_GROUP.
44677 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
44679 * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
44680 * ipa-prop.c (ipa_set_jf_known_type): Return early when
44681 not devirtualizing.
44682 (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
44683 do more sanity checks.
44684 (detect_type_change): Return true when giving up early.
44685 (compute_complex_assign_jump_func): Fix type parameter of
44686 ipa_set_ancestor_jf.
44687 (compute_complex_ancestor_jump_func): Likewise.
44688 (update_jump_functions_after_inlining): Fix updating of
44690 * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
44692 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
44694 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
44695 inline clones when edge disappears.
44697 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
44700 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
44701 Split 64-bit moves into 2 patterns. Do not allow the use of
44702 direct move for TDmode in little endian, since the decimal value
44703 has little endian bytes within a word, but the 64-bit pieces are
44704 ordered in a big endian fashion, and normal subreg's of TDmode are
44706 (mov<mode>_64bit_dm): Likewise.
44707 (movtd_64bit_nodm): Likewise.
44709 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
44711 PR tree-optimization/60174
44712 * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
44713 statement of an SSA_NAME that occurs in an abnormal PHI node.
44715 2014-02-18 Jakub Jelinek <jakub@redhat.com>
44718 * final.c (SEEN_BB): Remove.
44719 (SEEN_NOTE, SEEN_EMITTED): Renumber.
44720 (final_scan_insn): Don't force_source_line on second
44721 NOTE_INSN_BASIC_BLOCK.
44723 2014-02-18 Uros Bizjak <ubizjak@gmail.com>
44726 * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
44727 * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
44728 (type_natural_mode): Warn ABI change when %zmm register is not
44729 available for AVX512F vector value passing.
44731 2014-02-18 Kai Tietz <ktietz@redhat.com>
44734 * config/i386/i386.c (ix86_expand_prologue): Use value in
44735 rax register as displacement when restoring %r10 or %rax.
44736 Fix wrong offset when restoring both registers.
44738 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
44740 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
44741 assertion with conditional return.
44743 2014-02-18 Jakub Jelinek <jakub@redhat.com>
44744 Uros Bizjak <ubizjak@gmail.com>
44747 * config/i386/driver-i386.c (host_detect_local_cpu): If
44748 YMM state is not saved by the OS, also clear has_f16c. Move
44749 CPUID 0x80000001 handling before YMM state saving checking.
44751 2014-02-18 Andrey Belevantsev <abel@ispras.ru>
44753 PR rtl-optimization/58960
44754 * haifa-sched.c (alloc_global_sched_pressure_data): New,
44755 factored out from ...
44756 (sched_init): ... here.
44757 (free_global_sched_pressure_data): New, factored out from ...
44758 (sched_finish): ... here.
44759 * sched-int.h (free_global_sched_pressure_data): Declare.
44760 * sched-rgn.c (nr_regions_initial): New static global.
44761 (haifa_find_rgns): Initialize it.
44762 (schedule_region): Disable sched-pressure for the newly
44765 2014-02-17 Richard Biener <rguenther@suse.de>
44767 * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
44768 release SSA defs of pattern stmts.
44770 2014-02-17 Richard Biener <rguenther@suse.de>
44772 * tree-inline.c (expand_call_inline): Release the virtual
44773 operand defined by the call we are about to inline.
44775 2014-02-17 Richard Biener <rguenther@suse.de>
44777 * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
44779 2014-02-17 Kirill Yukhin <kirill.yukhin@intel.com>
44780 Ilya Tocar <ilya.tocar@intel.com>
44782 * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
44783 arguments order in builtin.
44784 (_mm512_permutexvar_epi64): Ditto.
44785 (_mm512_mask_permutexvar_epi64): Ditto
44786 (_mm512_maskz_permutexvar_epi32): Ditto
44787 (_mm512_permutexvar_epi32): Ditto
44788 (_mm512_mask_permutexvar_epi32): Ditto
44790 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
44792 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
44793 (p8_vmrgow): Likewise.
44795 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
44797 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
44800 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
44803 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
44804 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
44805 into 64-bit and 32-bit moves. On 64-bit moves, add support for
44806 using direct move instructions on ISA 2.07. Also adjust
44807 instruction length for 64-bit.
44808 (mov<mode>_64bit, TFmode/TDmode): Likewise.
44809 (mov<mode>_32bit, TFmode/TDmode): Likewise.
44811 2014-02-15 Alan Modra <amodra@gmail.com>
44815 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
44816 find_replacement on parts of insn rtl that might be reloaded.
44818 2014-02-15 Richard Biener <rguenther@suse.de>
44820 PR tree-optimization/60183
44821 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
44822 (tree_ssa_phiprop): Calculate and free post-dominators.
44824 2014-02-14 Jeff Law <law@redhat.com>
44826 PR rtl-optimization/60131
44827 * ree.c (get_extended_src_reg): New function.
44828 (combine_reaching_defs): Use it rather than assuming location of REG.
44829 (find_and_remove_re): Verify first operand of extension is
44830 a REG before adding the insns to the copy list.
44832 2014-02-14 Roland McGrath <mcgrathr@google.com>
44834 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
44835 * configure: Regenerated.
44836 * config.in: Regenerated.
44837 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
44838 instead of ASM_SHORT.
44840 2014-02-14 Vladimir Makarov <vmakarov@redhat.com>
44841 Richard Earnshaw <rearnsha@arm.com>
44843 PR rtl-optimization/59535
44844 * lra-constraints.c (process_alt_operands): Encourage alternative
44845 when unassigned pseudo class is superset of the alternative class.
44846 (inherit_reload_reg): Don't inherit when optimizing for code size.
44847 * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
44848 returning CORE_REGS for anything but Thumb1 and BASE_REGS for
44849 modes not less than 4 for Thumb1.
44851 2014-02-14 Kyle McMartin <kyle@redhat.com>
44854 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
44856 2014-02-14 Richard Biener <rguenther@suse.de>
44858 * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
44859 (get_frame_arg): Drop the assert with langhook types_compatible_p.
44860 Do not strip INDIRECT_REFs.
44862 2014-02-14 Richard Biener <rguenther@suse.de>
44865 * lto-streamer-out.c (DFS_write_tree_body): Do not follow
44866 DECL_FUNCTION_SPECIFIC_TARGET.
44867 (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
44868 * tree-streamer-out.c (pack_ts_target_option): Remove.
44869 (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
44870 (write_ts_function_decl_tree_pointers): Do not stream
44871 DECL_FUNCTION_SPECIFIC_TARGET.
44872 * tree-streamer-in.c (unpack_ts_target_option): Remove.
44873 (unpack_value_fields): Do not stream TS_TARGET_OPTION.
44874 (lto_input_ts_function_decl_tree_pointers): Do not stream
44875 DECL_FUNCTION_SPECIFIC_TARGET.
44877 2014-02-14 Jakub Jelinek <jakub@redhat.com>
44879 * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
44880 (get_initial_def_for_induction, vectorizable_induction): Ignore
44881 debug stmts when looking for exit_phi.
44882 (vectorizable_live_operation): Fix up condition.
44884 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
44886 * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
44887 nreverse() because it changes the content of original tree list.
44889 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
44891 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
44892 * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
44894 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
44896 * config/nds32/nds32.c (nds32_naked_function_p): Follow the
44897 GNU coding standards.
44899 2014-02-13 Jakub Jelinek <jakub@redhat.com>
44902 * dwarf2out.c (gen_subprogram_die): Don't call
44903 add_calling_convention_attribute if subr_die is old_die.
44905 2014-02-13 Sharad Singhai <singhai@google.com>
44907 * doc/optinfo.texi: Fix order of nodes.
44909 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
44911 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
44912 operands[2], not operands[3].
44914 2014-02-13 Richard Biener <rguenther@suse.de>
44917 * doc/install.texi (ISL): Update recommended version to 0.12.2,
44918 mention the possibility of an in-tree build.
44919 (CLooG): Update recommended version to 0.18.1, mention the
44920 possibility of an in-tree build and clarify that the ISL
44921 bundled with CLooG does not work.
44923 2014-02-13 Jakub Jelinek <jakub@redhat.com>
44926 * expr.c (compress_float_constant): If x is a hard register,
44927 extend into a pseudo and then move to x.
44929 2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
44931 * config/s390/s390.c (s390_asm_output_function_label): Fix crash
44932 caused by bad second argument to warning_at() with -mhotpatch and
44933 nested functions (e.g. with gfortran).
44935 2014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
44937 * opts.c (option_name): Remove "enabled by default" rider.
44939 2014-02-12 John David Anglin <danglin@gcc.gnu.org>
44941 * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
44943 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
44944 Uros Bizjak <ubizjak@gmail.com>
44947 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
44948 * configure: Regenerated.
44950 2014-02-12 Richard Biener <rguenther@suse.de>
44952 * vec.c (vec_prefix::calculate_allocation): Move as
44953 inline variant to vec.h.
44954 (vec_prefix::calculate_allocation_1): New out-of-line version.
44955 * vec.h (vec_prefix::calculate_allocation_1): Declare.
44956 (vec_prefix::m_has_auto_buf): Rename to ...
44957 (vec_prefix::m_using_auto_storage): ... this.
44958 (vec_prefix::calculate_allocation): Inline the easy cases
44959 and dispatch to calculate_allocation_1 which doesn't need the
44961 (va_heap::reserve): Use gcc_checking_assert.
44962 (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
44963 m_using_auto_storage.
44964 (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
44966 (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
44967 (vec<T, va_heap, vl_ptr>::release): Avoid casting.
44968 (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
44970 2014-02-12 Richard Biener <rguenther@suse.de>
44972 * gcse.c (compute_transp): break from loop over canon_modify_mem_list
44973 when we found a dependence.
44975 2014-02-12 Thomas Schwinge <thomas@codesourcery.com>
44977 * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
44979 (maybe_fold_stmt): ... into this new function.
44980 * omp-low.c (lower_omp): Update comment.
44982 * omp-low.c (lower_omp_target): Add clobber for sizes array, after
44985 * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
44988 2014-02-12 James Greenhalgh <james.greenhalgh@arm.com>
44990 * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
44991 identifiers in comments.
44992 (cortexa53_extra_costs): Likewise.
44993 * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
44994 (cortexa7_extra_costs): Likewise.
44995 (cortexa12_extra_costs): Likewise.
44996 (cortexa15_extra_costs): Likewise.
44997 (v7m_extra_costs): Likewise.
44999 2014-02-12 Richard Biener <rguenther@suse.de>
45001 PR middle-end/60092
45002 * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
45003 of posix_memalign being successful.
45004 (lower_stmt): Restrict lowering of posix_memalign to when
45005 -ftree-bit-ccp is enabled.
45007 2014-02-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
45009 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
45011 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
45013 2014-02-12 Eric Botcazou <ebotcazou@adacore.com>
45015 PR rtl-optimization/60116
45016 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
45017 other_insn once the combination has been validated.
45019 2014-02-11 Jan Hubicka <hubicka@ucw.cz>
45022 * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
45024 * ipa-devirt.c: Include demangle.h
45025 (odr_violation_reported): New static variable.
45026 (add_type_duplicate): Update odr_violations.
45027 (maybe_record_node): Add completep parameter; update it.
45028 (record_target_from_binfo): Add COMPLETEP parameter;
45029 update it as needed.
45030 (possible_polymorphic_call_targets_1): Likewise.
45031 (struct polymorphic_call_target_d): Add nonconstruction_targets;
45032 rename FINAL to COMPLETE.
45033 (record_targets_from_bases): Sanity check we found the binfo;
45034 fix COMPLETEP updating.
45035 (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
45036 parameter, fix computing of COMPLETEP.
45037 (dump_possible_polymorphic_call_targets): Imrove readability of dump;
45038 at LTO time do demangling.
45039 (ipa_devirt): Use nonconstruction_targets; Improve dumps.
45040 * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
45042 (gimple_get_virt_method_for_binfo): Likewise.
45043 * gimple-fold.h (gimple_get_virt_method_for_binfo,
45044 gimple_get_virt_method_for_vtable): Update prototypes.
45046 2014-02-11 Vladimir Makarov <vmakarov@redhat.com>
45049 * genautomata.c (add_presence_absence): Fix typo with
45050 {final_}presence_list.
45052 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
45055 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
45056 for VSX/Altivec vectors that land in GPR registers.
45058 2014-02-11 Richard Henderson <rth@redhat.com>
45059 Jakub Jelinek <jakub@redhat.com>
45062 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
45063 around drhs if type conversion to lacc->type is not useless.
45065 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
45067 * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
45069 (cortex-a57.cortex-a53): Likewise.
45070 * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
45072 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
45074 * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
45077 2014-02-11 Renlin Li <Renlin.Li@arm.com>
45079 * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
45080 add_options_for_arm_vfp3.
45082 2014-02-11 Jeff Law <law@redhat.com>
45084 PR middle-end/54041
45085 * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
45086 object with an undesirable mode.
45088 2014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
45091 * config/i386/sol2-9.h: New file.
45092 * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
45093 *-*-solaris2.9*): Use it.
45095 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
45097 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
45098 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
45100 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
45102 * config/microblaze/microblaze.c: Extend mcpu version format
45104 2014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
45106 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
45108 2014-02-10 Richard Henderson <rth@redhat.com>
45111 * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
45112 * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
45113 ms-abi vs -mno-accumulate-outgoing-args.
45114 (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
45115 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
45118 2014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
45120 PR middle-end/60080
45121 * cfgexpand.c (expand_asm_operands): Attach source location to
45122 ASM_INPUT rtx objects.
45123 * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
45125 2014-02-10 Nick Clifton <nickc@redhat.com>
45127 * config/mn10300/mn10300.c (popcount): New function.
45128 (mn10300_expand_prologue): Include saved registers in stack usage
45131 2014-02-10 Jeff Law <law@redhat.com>
45133 PR middle-end/52306
45134 * reload1.c (emit_input_reload_insns): Do not create invalid RTL
45135 when changing the SET_DEST of a prior insn to avoid an input reload.
45137 2014-02-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
45139 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
45140 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
45141 -mcall-openbsd, or -mcall-linux.
45142 (CC1_ENDIAN_BIG_SPEC): Remove.
45143 (CC1_ENDIAN_LITTLE_SPEC): Remove.
45144 (CC1_ENDIAN_DEFAULT_SPEC): Remove.
45145 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
45146 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
45147 and %cc1_endian_default.
45148 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
45150 2014-02-10 Richard Biener <rguenther@suse.de>
45152 PR tree-optimization/60115
45153 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
45154 MEM_REF handling. Properly verify that the accesses are not
45155 out of the objects bound.
45157 2014-02-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
45159 * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
45162 2014-02-10 Eric Botcazou <ebotcazou@adacore.com>
45164 * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
45165 proper constants and fix formatting.
45166 (possible_polymorphic_call_targets): Fix formatting.
45168 2014-02-10 Kirill Yukhin <kirill.yukhin@intel.com>
45169 Ilya Tocar <ilya.tocar@intel.com>
45171 * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
45172 (_mm512_loadu_epi32): Renamed into...
45173 (_mm512_loadu_si512): This.
45174 (_mm512_storeu_epi32): Renamed into...
45175 (_mm512_storeu_si512): This.
45176 (_mm512_maskz_ceil_ps): Removed.
45177 (_mm512_maskz_ceil_pd): Ditto.
45178 (_mm512_maskz_floor_ps): Ditto.
45179 (_mm512_maskz_floor_pd): Ditto.
45180 (_mm512_floor_round_ps): Ditto.
45181 (_mm512_floor_round_pd): Ditto.
45182 (_mm512_ceil_round_ps): Ditto.
45183 (_mm512_ceil_round_pd): Ditto.
45184 (_mm512_mask_floor_round_ps): Ditto.
45185 (_mm512_mask_floor_round_pd): Ditto.
45186 (_mm512_mask_ceil_round_ps): Ditto.
45187 (_mm512_mask_ceil_round_pd): Ditto.
45188 (_mm512_maskz_floor_round_ps): Ditto.
45189 (_mm512_maskz_floor_round_pd): Ditto.
45190 (_mm512_maskz_ceil_round_ps): Ditto.
45191 (_mm512_maskz_ceil_round_pd): Ditto.
45192 (_mm512_expand_pd): Ditto.
45193 (_mm512_expand_ps): Ditto.
45194 * config/i386/i386.c (ix86_builtins): Remove
45195 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
45196 (bdesc_args): Ditto.
45197 * config/i386/predicates.md (const1256_operand): New.
45198 (const_1_to_2_operand): Ditto.
45199 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
45200 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
45201 (*avx512pf_gatherpf<mode>sf): Ditto.
45202 (avx512pf_gatherpf<mode>df): Ditto.
45203 (*avx512pf_gatherpf<mode>df_mask): Ditto.
45204 (*avx512pf_gatherpf<mode>df): Ditto.
45205 (avx512pf_scatterpf<mode>sf): Ditto.
45206 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
45207 (*avx512pf_scatterpf<mode>sf): Ditto.
45208 (avx512pf_scatterpf<mode>df): Ditto.
45209 (*avx512pf_scatterpf<mode>df_mask): Ditto.
45210 (*avx512pf_scatterpf<mode>df): Ditto.
45211 (avx512f_expand<mode>): Removed.
45212 (<shift_insn><mode>3<mask_name>): Change predicate type.
45214 2014-02-08 Jakub Jelinek <jakub@redhat.com>
45216 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
45217 not at the end of datarefs vector use ordered_remove to avoid
45218 reordering datarefs vector.
45221 * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
45222 mark local addressable non-static vars as GOVD_PRIVATE
45223 instead of GOVD_LOCAL.
45224 * omp-low.c (lower_omp_for): Move gimple_bind_vars
45225 and BLOCK_VARS of gimple_bind_block to new_stmt rather
45228 PR middle-end/60092
45229 * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
45230 if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
45231 assume_aligned or alloc_align attributes.
45232 (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
45233 arguments. Handle also assume_aligned and alloc_align attributes.
45234 (evaluate_stmt): Adjust bit_value_assume_aligned caller. Handle
45235 calls to functions with assume_aligned or alloc_align attributes.
45236 * doc/extend.texi: Document assume_aligned and alloc_align attributes.
45238 2014-02-08 Terry Guo <terry.guo@arm.com>
45240 * doc/invoke.texi: Document ARM -march=armv7e-m.
45242 2014-02-08 Jakub Jelinek <jakub@redhat.com>
45244 * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
45245 flag on __cilkrts_rethrow builtin.
45248 * ipa-cp.c (determine_versionability): Fail at -O0
45249 or __attribute__((optimize (0))) or -fno-ipa-cp functions.
45250 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
45253 2014-02-04 Jakub Jelinek <jakub@redhat.com>
45256 * tree-inline.c (copy_forbidden): Fail for
45257 __attribute__((optimize (0))) functions.
45259 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
45261 * varpool.c: Include pointer-set.h.
45262 (varpool_remove_unreferenced_decls): Variables in other partitions
45263 will not be output; be however careful to not lose information
45264 about partitioning.
45266 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
45268 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
45269 lookup in the vtable constructor.
45271 2014-02-07 Jeff Law <law@redhat.com>
45274 * config/m68k/m68k.md (ashldi_extsi): Turn into a
45275 define_insn_and_split.
45277 * ipa-inline.c (inline_small_functions): Fix typos.
45279 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
45281 * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
45282 (s390_can_use_return_insn): Declare.
45283 * config/s390/s390.h (EPILOGUE_USES): Define.
45284 * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
45286 (s390_chunkify_start): Handle return JUMP_LABELs.
45287 (s390_early_mach): Emit a main_pool instruction on the entry edge.
45288 (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
45289 (s390_can_use_return_insn): New functions.
45290 (s390_fix_long_loop_prediction): Handle conditional returns.
45291 (TARGET_SET_UP_BY_PROLOGUE): Define.
45292 * config/s390/s390.md (ANY_RETURN): New code iterator.
45293 (*creturn, *csimple_return, return, simple_return): New patterns.
45295 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
45297 * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
45298 notes to each restore. Also add REG_CFA_DEF_CFA when restoring %r15.
45299 (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P. Update the
45300 REG_CFA_RESTORE list when deciding not to restore a register.
45302 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
45304 * config/s390/s390.c: Include tree-pass.h and context.h.
45305 (s390_early_mach): New function, split out from...
45306 (s390_emit_prologue): ...here.
45307 (pass_data_s390_early_mach): New pass structure.
45308 (pass_s390_early_mach): New class.
45309 (s390_option_override): Create and register early_mach pass.
45310 Move to end of file.
45312 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
45314 * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
45315 to match for the exit block.
45317 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
45319 * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
45320 ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
45321 Reject misaligned operands.
45323 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
45325 * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
45327 2014-02-07 Richard Biener <rguenther@suse.de>
45329 PR middle-end/60092
45330 * gimple-low.c (lower_builtin_posix_memalign): New function.
45331 (lower_stmt): Call it to lower posix_memalign in a way
45332 to make alignment info accessible.
45334 2014-02-07 Jakub Jelinek <jakub@redhat.com>
45337 * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
45338 __builtin_setjmp_receiver.
45340 2014-02-07 Richard Biener <rguenther@suse.de>
45342 PR middle-end/60092
45343 * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
45344 * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
45345 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
45346 Handle BUILT_IN_POSIX_MEMALIGN.
45347 (find_func_clobbers): Likewise.
45348 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
45349 (call_may_clobber_ref_p_1): Likewise.
45351 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
45354 * ipa-devirt.c (record_target_from_binfo): Remove overactive
45357 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
45360 * lto-cgraph.c (lto_output_node): Use
45361 symtab_get_symbol_partitioning_class.
45362 (lto_output_varpool_node): likewise.
45363 (symtab_get_symbol_partitioning_class): Move here from
45364 lto/lto-partition.c
45365 * cgraph.h (symbol_partitioning_class): Likewise.
45366 (symtab_get_symbol_partitioning_class): Declare.
45368 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
45370 * ggc.h (ggc_internal_cleared_alloc): New macro.
45371 * vec.h (vec_safe_copy): Handle memory stats.
45372 * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
45373 * target-globals.c (save_target_globals): Likewise.
45375 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
45378 * expr.c (emit_move_resolve_push): Export; be bit more selective
45379 on when to clear alias set.
45380 * expr.h (emit_move_resolve_push): Declare.
45381 * function.h (struct function): Add tail_call_marked.
45382 * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
45383 * config/i386/i386-protos.h (ix86_expand_push): Remove.
45384 * config/i386/i386.md (TImode move expander): De not call
45386 (FP push expanders): Preserve memory attributes.
45387 * config/i386/sse.md (push<mode>1): Remove.
45388 * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
45389 (ix86_expand_push): Remove.
45390 * config/i386/mmx.md (push<mode>1): Remove.
45392 2014-02-06 Jakub Jelinek <jakub@redhat.com>
45394 PR rtl-optimization/60030
45395 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
45396 lopart with paradoxical subreg before shifting it up by hprec.
45398 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
45400 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
45401 Remove extra newline at end of file.
45402 * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
45403 (arm_issue_rate): Handle cortexa57.
45404 * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
45405 (cortex-a57.cortex-a53): Likewise.
45407 2014-02-06 Jakub Jelinek <jakub@redhat.com>
45410 * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
45411 don't record in REG_FRAME_RELATED_EXPR registers not set in that
45413 (arm_expand_prologue): Adjust all callers.
45414 (arm_unwind_emit_sequence): Allow saved, but not important for unwind
45415 info, registers also at the lowest numbered registers side. Use
45416 gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
45420 * var-tracking.c (adjust_mems): Before adding a SET to
45421 amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
45423 2014-02-06 Alan Modra <amodra@gmail.com>
45426 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
45427 change SDmode to DDmode when lra_in_progress.
45429 2014-02-06 Jakub Jelinek <jakub@redhat.com>
45431 PR middle-end/59150
45432 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
45433 free_data_ref on the dr first, and before goto again also set dr
45434 to the next dr. For simd_lane_access, free old datarefs[i] before
45435 overwriting it. For get_vectype_for_scalar_type failure, don't
45436 free_data_ref if simd_lane_access.
45438 * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
45441 * tree.h (opts_for_fn): New inline function.
45442 (opt_for_fn): Define.
45443 * config/i386/i386.c (ix86_function_regparm): Use
45444 opt_for_fn (decl, optimize) instead of optimize.
45446 2014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
45448 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
45449 for SYMBOL_REF in large memory model.
45451 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
45453 * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
45454 and crypto support.
45455 (cortex-a57): Likewise.
45456 (cortex-a57.cortex-a53): Likewise.
45458 2014-02-06 Yury Gribov <y.gribov@samsung.com>
45459 Kugan Vivekanandarajah <kuganv@linaro.org>
45461 * config/arm/arm.c (arm_vector_alignment_reachable): Check
45463 * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
45465 2014-02-06 Richard Biener <rguenther@suse.de>
45467 * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
45468 set_loop_copy and initialize_original_copy_tables.
45470 2014-02-06 Alex Velenko <Alex.Velenko@arm.com>
45472 * config/aarch64/aarch64-simd.md
45473 (aarch64_ashr_simddi): Change QI to SI.
45475 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
45476 Jakub Jelinek <jakub@redhat.com>
45478 PR middle-end/60013
45479 * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
45482 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
45484 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
45485 CODE_FOR_altivec_vpku[hw]um to
45486 CODE_FOR_altivec_vpku[hw]um_direct.
45487 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
45488 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
45489 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
45490 UNSPEC_VUNPACK_LO_SIGN_DIRECT.
45492 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
45494 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
45495 generation for -maltivec=be.
45496 (altivec_vsumsws): Simplify redundant test.
45498 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
45500 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
45501 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
45502 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
45503 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
45504 gen_altivec_vpkuwum.
45505 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
45507 (altivec_vpks<VI_char>ss): Likewise.
45508 (altivec_vpks<VI_char>us): Likewise.
45509 (altivec_vpku<VI_char>us): Likewise.
45510 (altivec_vpku<VI_char>um): Likewise.
45511 (altivec_vpku<VI_char>um_direct): New (copy of
45512 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
45514 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
45515 target is little endian and -maltivec=be is not specified.
45516 (*altivec_vupkhs<VU_char>_direct): New (copy of
45517 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
45518 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
45519 target is little endian and -maltivec=be is not specified.
45520 (*altivec_vupkls<VU_char>_direct): New (copy of
45521 altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
45522 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
45523 little endian and -maltivec=be is not specified.
45524 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
45525 little endian and -maltivec=be is not specified.
45527 2014-02-05 Richard Henderson <rth@redhat.com>
45530 * combine-stack-adj.c: Revert r206943.
45531 * sched-int.h (struct deps_desc): Add last_args_size.
45532 * sched-deps.c (init_deps): Initialize it.
45533 (sched_analyze_insn): Add OUTPUT dependencies between insns that
45534 contain REG_ARGS_SIZE notes.
45536 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
45538 * lto-cgraph.c (asm_nodes_output): Make global.
45539 * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
45540 * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
45541 (driver_handle_option): Handle OPT_fwpa.
45543 2014-02-05 Jakub Jelinek <jakub@redhat.com>
45546 * ipa-devirt.c (possible_polymorphic_call_targets): Fix
45547 a comment typo and formatting issue. If odr_hash hasn't been
45548 created, return vNULL and set *completep to false.
45550 PR middle-end/57499
45551 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
45552 bb with no successors.
45554 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
45557 * doc/invoke.texi (-march): Clarify documentation for ARM.
45558 (-mtune): Likewise.
45561 2014-02-05 Richard Biener <rguenther@suse.de>
45563 * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
45564 when not vectorizing because of too many alias checks.
45565 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
45566 Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
45568 2014-02-05 Nick Clifton <nickc@redhat.com>
45570 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
45571 accept extended registers in any mode when compiling for the MN10300.
45573 2014-02-05 Yury Gribov <y.gribov@samsung.com>
45575 * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
45576 * ipa-inline.c (report_inline_failed_reason): Handle mismatched
45577 sanitization attributes.
45578 (can_inline_edge_p): Likewise.
45579 (sanitize_attrs_match_for_inline_p): New function.
45581 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
45583 * ipa-prop.c (detect_type_change): Shor circuit testing of
45584 type changes on THIS pointer.
45586 2014-02-04 John David Anglin <danglin@gcc.gnu.org>
45589 * config/pa/pa.c (legitimize_tls_address): Return original address
45590 if not passed a SYMBOL_REF rtx.
45591 (hppa_legitimize_address): Call legitimize_tls_address for all TLS
45593 (pa_emit_move_sequence): Simplify TLS source operands.
45594 (pa_legitimate_constant_p): Reject all TLS constants.
45595 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
45596 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
45598 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
45600 * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
45601 groups when we know they are controlled by LTO.
45602 * varasm.c (default_binds_local_p_1): If object is in other partition,
45603 it will be resolved locally.
45605 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
45607 * config/host-linux.c (linux_gt_pch_use_address): Don't
45608 use SSIZE_MAX because it is not always defined.
45610 2014-02-04 Vladimir Makarov <vmakarov@redhat.com>
45613 * lra-constraints.c (need_for_split_p): Use more 3 reloads as
45614 threshold for pseudo splitting.
45615 (update_ebb_live_info): Process call argument hard registers and
45616 hard registers from insn definition too.
45617 (max_small_class_regs_num): New constant.
45618 (inherit_in_ebb): Update live hard regs through EBBs. Update
45619 reloads_num only for small register classes. Don't split for
45622 2014-02-04 Markus Trippelsdorf <markus@trippelsdorf.de>
45625 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
45628 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
45630 * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
45631 visibility is safe.
45633 2014-02-04 Marek Polacek <polacek@redhat.com>
45635 * gdbinit.in (pel): Define.
45637 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
45639 * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
45642 2014-02-04 Richard Biener <rguenther@suse.de>
45645 * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
45646 in function context local.
45647 (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
45648 * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
45649 similar to LTO_imported_decl_ref.
45651 2014-02-04 Jakub Jelinek <jakub@redhat.com>
45653 PR tree-optimization/60002
45654 * cgraphclones.c (build_function_decl_skip_args): Clear
45655 DECL_LANG_SPECIFIC.
45657 PR tree-optimization/60023
45658 * tree-if-conv.c (predicate_mem_writes): Pass true instead of
45659 false to gsi_replace.
45660 * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
45661 has been in some EH region and vec_stmt could throw, add
45662 vec_stmt into the same EH region.
45663 * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
45664 has no lhs, ignore it.
45665 * internal-fn.c (expand_MASK_LOAD): Likewise.
45668 * tree-inline.c (copy_forbidden): Fail for
45669 __attribute__((optimize (0))) functions.
45672 * omp-low.c (simd_clone_struct_copy): If from->inbranch
45673 is set, copy one less argument.
45674 (expand_simd_clones): Don't subtract clone_info->inbranch
45675 from simd_clone_struct_alloc argument.
45677 PR rtl-optimization/57915
45678 * recog.c (simplify_while_replacing): If all unary/binary/relational
45679 operation arguments are constant, attempt to simplify those.
45681 PR middle-end/59261
45682 * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
45683 if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
45685 2014-02-04 Richard Biener <rguenther@suse.de>
45687 PR tree-optimization/60012
45688 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
45689 TBAA disambiguation to all DDRs.
45691 2014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
45694 * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
45695 (LINK_SPEC): Use it for -shared, -shared-libgcc.
45697 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
45700 * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
45702 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
45704 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
45705 * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
45707 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
45710 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
45711 to figure out targets of polymorphic calls with known decl.
45712 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
45713 * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
45714 * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
45715 (get_polymorphic_call_info): ... here.
45716 (get_polymorphic_call_info_from_invariant): New function.
45718 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
45720 * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
45721 lookup via vtable pointer; check for type consistency
45722 and turn inconsitent facts into UNREACHABLE.
45723 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
45724 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
45725 type inconsistent querries; return UNREACHABLE instead.
45727 2014-02-03 Richard Henderson <rth@twiddle.net>
45730 * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
45731 already processed this node.
45732 (normalize_one_pred_1): Pass along mark_set.
45733 (normalize_one_pred): Create and destroy a pointer_set_t.
45734 (normalize_one_pred_chain): Likewise.
45736 2014-02-03 Laurent Aflonsi <laurent.alfonsi@st.com>
45738 PR gcov-profile/58602
45739 * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
45741 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
45744 * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
45745 -fno-devirtualize; try to devirtualize by the knowledge of
45746 virtual table pointer given by aggregate propagation.
45747 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
45748 (ipa_print_node_jump_functions): Dump also offset that
45749 is relevant for polymorphic calls.
45750 (determine_known_aggregate_parts): Add arg_type parameter; use it
45751 instead of determining the type from pointer type.
45752 (ipa_compute_jump_functions_for_edge): Update call of
45753 determine_known_aggregate_parts.
45754 * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
45755 (gimple_get_virt_method_for_binfo): ... here; simplify using
45756 vtable_pointer_value_to_vtable.
45757 * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
45758 * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
45759 to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
45760 (vtable_pointer_value_to_vtable): Break out from ...; handle also
45762 (vtable_pointer_value_to_binfo): ... here.
45763 * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
45765 2014-02-03 Teresa Johnson <tejohnson@google.com>
45767 * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
45768 redef of outer loop index variable.
45770 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
45774 * doc/extend.texi (Function Attributes): Typo.
45776 2014-02-03 Cong Hou <congh@google.com>
45778 PR tree-optimization/60000
45779 * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
45780 if the vectorized statement is a store. A store statement can only
45781 appear at the end of pattern statements.
45783 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
45785 * config/i386/i386.c (flag_opts): Add -mlong-double-128.
45786 (ix86_option_override_internal): Default long double to 64-bit for
45787 32-bit Bionic and to 128-bit for 64-bit Bionic.
45789 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
45790 TARGET_LONG_DOUBLE_128 is true.
45791 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
45793 * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
45794 (mlong-double-64): Negate -mlong-double-128.
45795 (mlong-double-128): New option.
45797 * config/i386/i386-c.c (ix86_target_macros): Define
45798 __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
45800 * doc/invoke.texi: Document -mlong-double-128.
45802 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
45804 PR rtl-optimization/60024
45805 * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
45807 2014-02-03 Markus Trippelsdorf <markus@trippelsdorf.de>
45809 * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
45811 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
45813 PR rtl-optimization/57662
45814 * sel-sched.c (code_motion_path_driver): Do not mark already not
45815 existing blocks in the visiting bitmap.
45817 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
45819 * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
45820 on the insn being emitted.
45822 2014-02-03 James Greenhalgh <james.greenhalgh@arm.com>
45823 Will Deacon <will.deacon@arm.com>
45825 * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
45827 2014-02-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
45829 * config/arm/arm-tables.opt: Regenerate.
45831 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
45833 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
45834 for vector types other than V16QImode.
45835 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
45836 define_expand, and call altivec_expand_vec_perm_le when producing
45837 code with little endian element order.
45838 (*altivec_vperm_<mode>_internal): New insn having previous
45839 behavior of altivec_vperm_<mode>.
45840 (altivec_vperm_<mode>_uns): Change to a define_expand, and call
45841 altivec_expand_vec_perm_le when producing code with little endian
45843 (*altivec_vperm_<mode>_uns_internal): New insn having previous
45844 behavior of altivec_vperm_<mode>_uns.
45846 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
45848 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
45849 (altivec_vsumsws): Add handling for -maltivec=be with a little
45851 (altivec_vsumsws_direct): New.
45852 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
45853 gen_altivec_vsumsws.
45855 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
45857 * ipa-devirt.c (subbinfo_with_vtable_at_offset,
45858 vtable_pointer_value_to_binfo): New functions.
45859 * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
45860 * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
45862 2014-02-02 Sandra Loosemore <sandra@codesourcery.com>
45864 * config/nios2/nios2.md (load_got_register): Initialize GOT
45865 pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
45866 * config/nios2/nios2.c (nios2_function_profiler): Likewise.
45868 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
45870 * ipa-prop.c (update_jump_functions_after_inlining): When type is not
45871 preserverd by passthrough, do not propagate the type.
45873 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
45875 * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
45876 (mips_atomic_assign_expand_fenv): New function.
45877 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
45879 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
45881 * doc/extend.texi (__builtin_mips_get_fcsr): Document.
45882 (__builtin_mips_set_fcsr): Likewise.
45883 * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
45884 MIPS_USI_FTYPE_VOID.
45885 * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
45886 (mips16_expand_set_fcsr): Likewise.
45887 * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
45888 (mips16_set_fcsr_stub): Likewise.
45889 (mips16_get_fcsr_one_only_stub): New class.
45890 (mips16_set_fcsr_one_only_stub): Likewise.
45891 (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
45892 (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
45893 (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
45894 (hard_float): New availability predicate.
45895 (mips_builtins): Add get_fcsr and set_fcsr.
45896 (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
45897 * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
45898 (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
45899 (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
45900 (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
45903 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
45905 * config/mips/mips.c (mips_one_only_stub): New class.
45906 (mips_need_mips16_rdhwr_p): Replace with...
45907 (mips16_rdhwr_stub): ...this new variable.
45908 (mips16_stub_call_address): New function.
45909 (mips16_rdhwr_one_only_stub): New class.
45910 (mips_expand_thread_pointer): Use mips16_stub_call_address.
45911 (mips_output_mips16_rdhwr): Delete.
45912 (mips_finish_stub): New function.
45913 (mips_code_end): Use it to handle rdhwr stubs.
45915 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
45918 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
45919 when calculating size of integer atomic types.
45921 2014-02-02 H.J. Lu <hongjiu.lu@intel.com>
45923 * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
45925 2014-02-01 Jakub Jelinek <jakub@redhat.com>
45927 PR tree-optimization/60003
45928 * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
45929 * profile.c (branch_prob): Use gimple_call_builtin_p
45930 to check for BUILT_IN_SETJMP_RECEIVER.
45931 * tree-inline.c (copy_bb): Call notice_special_calls.
45933 2014-01-31 Vladimir Makarov <vmakarov@redhat.com>
45936 * lra-constraints.c (process_alt_operands): Update reload_sum only
45939 2014-01-31 Richard Henderson <rth@redhat.com>
45941 PR middle-end/60004
45942 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
45943 until after else_eh is processed.
45945 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
45947 * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
45948 (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
45949 (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
45950 in smmintrin.h, remove them.
45951 (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
45952 * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
45953 * config/i386/i386.md (ROUND_SAE): Fix value.
45954 * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
45955 (const48_operand): New.
45956 * config/i386/subst.md (round), (round_expand): Use
45957 const_4_or_8_to_11_operand.
45958 (round_saeonly), (round_saeonly_expand): Use const48_operand.
45960 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
45962 * config/i386/constraints.md (Yk): Swap meaning with k.
45963 * config/i386/i386.md (movhi_internal): Change Yk to k.
45964 (movqi_internal): Ditto.
45965 (*k<logic><mode>): Ditto.
45968 (kandn<mode>): Ditto.
45969 (*<code>hi_1): Ditto.
45970 (*<code>qi_1): Ditto.
45971 (kxnor<mode>): Ditto.
45972 (kortestzhi): Ditto.
45973 (kortestchi): Ditto.
45975 (*one_cmplhi2_1): Ditto.
45976 (*one_cmplqi2_1): Ditto.
45977 * config/i386/sse.md (): Change k to Yk.
45978 (avx512f_load<mode>_mask): Ditto.
45979 (avx512f_blendm<mode>): Ditto.
45980 (avx512f_store<mode>_mask): Ditto.
45981 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
45982 (avx512f_storedqu<mode>_mask): Ditto.
45983 (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
45985 (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
45986 (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
45987 (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
45988 (avx512f_maskcmp<mode>3): Ditto.
45989 (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
45990 (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
45991 (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
45992 (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
45993 (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
45994 (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
45995 (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
45996 (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
45997 (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
45998 (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
45999 (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
46000 (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
46001 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
46002 (vec_extract_lo_<mode>_maskm): Ditto.
46003 (vec_extract_hi_<mode>_maskm): Ditto.
46004 (avx512f_vternlog<mode>_mask): Ditto.
46005 (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
46006 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
46007 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
46008 (avx512f_<code>v8div16qi2_mask): Ditto.
46009 (avx512f_<code>v8div16qi2_mask_store): Ditto.
46010 (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
46011 (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
46012 (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
46013 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
46014 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
46015 (*avx512pf_gatherpf<mode>df_mask): Ditto.
46016 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
46017 (*avx512pf_scatterpf<mode>df_mask): Ditto.
46018 (avx512cd_maskb_vec_dupv8di): Ditto.
46019 (avx512cd_maskw_vec_dupv16si): Ditto.
46020 (avx512f_vpermi2var<mode>3_maskz): Ditto.
46021 (avx512f_vpermi2var<mode>3_mask): Ditto.
46022 (avx512f_vpermi2var<mode>3_mask): Ditto.
46023 (avx512f_vpermt2var<mode>3_maskz): Ditto.
46024 (*avx512f_gathersi<mode>): Ditto.
46025 (*avx512f_gathersi<mode>_2): Ditto.
46026 (*avx512f_gatherdi<mode>): Ditto.
46027 (*avx512f_gatherdi<mode>_2): Ditto.
46028 (*avx512f_scattersi<mode>): Ditto.
46029 (*avx512f_scatterdi<mode>): Ditto.
46030 (avx512f_compress<mode>_mask): Ditto.
46031 (avx512f_compressstore<mode>_mask): Ditto.
46032 (avx512f_expand<mode>_mask): Ditto.
46033 * config/i386/subst.md (mask): Change k to Yk.
46034 (mask_scalar_merge): Ditto.
46037 2014-01-31 Marc Glisse <marc.glisse@inria.fr>
46039 * doc/extend.texi (Vector Extensions): Document ?: in C++.
46041 2014-01-31 Richard Biener <rguenther@suse.de>
46043 PR middle-end/59990
46044 * builtins.c (fold_builtin_memory_op): Make sure to not
46045 use a floating-point mode or a boolean or enumeral type for
46046 the copy operation.
46048 2014-01-30 DJ Delorie <dj@redhat.com>
46050 * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
46051 * config/msp430/msp430.md (msp430_refsym_need_exit): New.
46052 * config/msp430/msp430.c (msp430_expand_epilogue): Call it
46053 whenever main() has an epilogue.
46055 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
46057 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
46058 unused variable "field".
46059 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
46060 (vsx_mergeh_<mode>): Likewise.
46061 * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
46062 (altivec_vmrghh): Likewise.
46063 (altivec_vmrghw): Likewise.
46064 (altivec_vmrglb): Likewise.
46065 (altivec_vmrglh): Likewise.
46066 (altivec_vmrglw): Likewise.
46067 (altivec_vspltb): Add missing uses.
46068 (altivec_vsplth): Likewise.
46069 (altivec_vspltw): Likewise.
46070 (altivec_vspltsf): Likewise.
46072 2014-01-30 Jakub Jelinek <jakub@redhat.com>
46075 * ifcvt.c (cond_exec_process_insns): Don't conditionalize
46076 frame related instructions.
46078 2014-01-30 Vladimir Makarov <vmakarov@redhat.com>
46080 PR rtl-optimization/59959
46081 * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
46082 any reload of register whose subreg is invalid.
46084 2014-01-30 Jakub Jelinek <jakub@redhat.com>
46086 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
46087 * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
46088 Add missing return type - void.
46090 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
46092 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
46093 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
46094 remove element index adjustment for endian (now handled in vsx.md
46096 (altivec_expand_vec_perm_const): Use
46097 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
46098 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
46099 (vsx_xxspltw_<mode>): Adjust element index for little endian.
46100 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
46101 define_expand and a new define_insn *altivec_vspltb_internal;
46102 adjust for -maltivec=be on a little endian target.
46103 (altivec_vspltb_direct): New.
46104 (altivec_vsplth): Divide into a define_expand and a new
46105 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
46106 little endian target.
46107 (altivec_vsplth_direct): New.
46108 (altivec_vspltw): Divide into a define_expand and a new
46109 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
46110 little endian target.
46111 (altivec_vspltw_direct): New.
46112 (altivec_vspltsf): Divide into a define_expand and a new
46113 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
46114 a little endian target.
46116 2014-01-30 Richard Biener <rguenther@suse.de>
46118 PR tree-optimization/59993
46119 * tree-ssa-forwprop.c (associate_pointerplus): Check we
46120 can propagate form the earlier stmt and avoid the transform
46121 when the intermediate result is needed.
46123 2014-01-30 Alangi Derick <alangiderick@gmail.com>
46125 * README.Portability: Fix typo.
46127 2014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
46129 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
46130 comparison_operator with ordered_comparison_operator.
46132 2014-01-30 Nick Clifton <nickc@redhat.com>
46134 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
46135 Rename to mn10300_store_multiple_regs.
46136 * config/mn10300/mn10300.c: Likewise.
46137 * config/mn10300/mn10300.md (store_movm): Fix typo: call
46138 store_multiple_regs.
46139 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
46140 Call mn10300_store_multiple_regs.
46142 2014-01-30 Nick Clifton <nickc@redhat.com>
46143 DJ Delorie <dj@redhat.com>
46145 * config/rl78/rl78.c (register_sizes): Make the "upper half" of
46146 %fp 2 to keep registers after it properly word-aligned.
46147 (rl78_alloc_physical_registers_umul): Handle the case where both
46148 input operands are the same.
46150 2014-01-30 Richard Biener <rguenther@suse.de>
46152 PR tree-optimization/59903
46153 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
46156 2014-01-30 Jason Merrill <jason@redhat.com>
46159 * tree.c (walk_type_fields): Handle VECTOR_TYPE.
46162 * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
46164 2014-01-30 Richard Biener <rguenther@suse.de>
46166 PR tree-optimization/59951
46167 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
46169 2014-01-30 Savin Zlobec <savin.zlobec@gmail.com>
46172 * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
46173 SFmode to DFmode case.
46175 2014-01-29 DJ Delorie <dj@redhat.com>
46177 * config/msp430/msp430.opt (-minrt): New.
46178 * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
46180 (ENDFILE_SPEC): Likewise.
46182 2014-01-29 Jan Hubicka <hubicka@ucw.cz>
46184 * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
46185 (estimate_function_body_sizes): Use it.
46187 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
46190 * dwarf2out.c (is_cxx_auto): New.
46191 (is_base_type): Use it.
46192 (gen_type_die_with_usage): Likewise.
46194 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
46196 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
46197 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
46198 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
46199 -maltivec=be with LE targets.
46200 (vsx_mergeh_<mode>): Likewise.
46201 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
46202 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
46203 (altivec_vmrghb): Replace with define_expand and new
46204 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
46205 (altivec_vmrghb_direct): New define_insn.
46206 (altivec_vmrghh): Replace with define_expand and new
46207 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
46208 (altivec_vmrghh_direct): New define_insn.
46209 (altivec_vmrghw): Replace with define_expand and new
46210 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
46211 (altivec_vmrghw_direct): New define_insn.
46212 (*altivec_vmrghsf): Adjust for endianness.
46213 (altivec_vmrglb): Replace with define_expand and new
46214 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
46215 (altivec_vmrglb_direct): New define_insn.
46216 (altivec_vmrglh): Replace with define_expand and new
46217 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
46218 (altivec_vmrglh_direct): New define_insn.
46219 (altivec_vmrglw): Replace with define_expand and new
46220 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
46221 (altivec_vmrglw_direct): New define_insn.
46222 (*altivec_vmrglsf): Adjust for endianness.
46223 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
46224 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
46225 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
46226 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
46227 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
46228 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
46229 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
46230 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
46232 2014-01-29 Marcus Shawcroft <marcus.shawcroft@arm.com>
46234 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
46235 (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
46238 2014-01-29 Richard Biener <rguenther@suse.de>
46240 PR tree-optimization/58742
46241 * tree-ssa-forwprop.c (associate_pointerplus): Rename to
46242 associate_pointerplus_align.
46243 (associate_pointerplus_diff): New function.
46244 (associate_pointerplus): Likewise. Call associate_pointerplus_align
46245 and associate_pointerplus_diff.
46247 2014-01-29 Richard Biener <rguenther@suse.de>
46249 * lto-streamer.h (LTO_major_version): Bump to 3.
46250 (LTO_minor_version): Reset to 0.
46252 2014-01-29 Renlin Li <Renlin.Li@arm.com>
46254 * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
46255 * config/arm/arm.c (FL_FOR_ARCH7VE): New.
46256 (arm_file_start): Generate correct asm header for armv7ve.
46257 * config/arm/bpabi.h: Add multilib support for armv7ve.
46258 * config/arm/driver-arm.c: Change the architectures of cortex-a7
46259 and cortex-a15 to armv7ve.
46260 * config/arm/t-aprofile: Add multilib support for armv7ve.
46261 * doc/invoke.texi: Document -march=armv7ve.
46263 2014-01-29 Richard Biener <rguenther@suse.de>
46265 PR tree-optimization/58742
46266 * tree-ssa-forwprop.c (associate_plusminus): Return true
46267 if we changed sth, defer EH cleanup to ...
46268 (ssa_forward_propagate_and_combine): ... here. Call simplify_mult.
46269 (simplify_mult): New function.
46271 2014-01-29 Jakub Jelinek <jakub@redhat.com>
46273 PR middle-end/59917
46274 PR tree-optimization/59920
46275 * tree.c (build_common_builtin_nodes): Remove
46276 __builtin_setjmp_dispatcher initialization.
46277 * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
46278 * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
46279 instead of gsi_after_labels + manually skipping debug stmts.
46280 Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
46281 ignore bbs with IFN_ABNORMAL_DISPATCHER.
46282 * tree-inline.c (copy_edges_for_bb): Remove
46283 can_make_abnormal_goto argument, instead add abnormal_goto_dest
46284 argument. Ignore computed_goto_p stmts. Don't call
46285 make_abnormal_goto_edges. If a call might need abnormal edges
46286 for non-local gotos, see if it already has an edge to
46287 IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
46288 with true argument, don't do anything then, otherwise add
46289 EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
46290 (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
46292 * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
46293 (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
46294 (lower_stmt): Don't set data->calls_builtin_setjmp.
46295 (lower_builtin_setjmp): Adjust comment.
46296 * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
46297 * tree-cfg.c (found_computed_goto): Remove.
46298 (factor_computed_gotos): Remove.
46299 (make_goto_expr_edges): Return bool, true for computed gotos.
46300 Don't call make_abnormal_goto_edges.
46301 (build_gimple_cfg): Don't set found_computed_goto, don't call
46302 factor_computed_gotos.
46303 (computed_goto_p): No longer static.
46304 (make_blocks): Don't set found_computed_goto.
46305 (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
46306 (make_edges): If make_goto_expr_edges returns true, push bb
46307 into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
46308 instead of calling make_abnormal_goto_edges push bb into ab_edge_call
46309 vector. Record mapping between bbs and OpenMP regions if there
46310 are any, adjust make_gimple_omp_edges caller. Call
46311 handle_abnormal_edges.
46312 (make_abnormal_goto_edges): Remove.
46313 * tree-cfg.h (make_abnormal_goto_edges): Remove.
46314 (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
46315 * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
46316 * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
46317 * internal-fn.def (ABNORMAL_DISPATCHER): New.
46318 * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
46319 filling *region also set *region_idx to (*region)->entry->index.
46322 * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
46323 For REGs set ORIGINAL_REGNO.
46325 2014-01-29 Bingfeng Mei <bmei@broadcom.com>
46327 * doc/md.texi: Mention that a target shouldn't implement
46328 vec_widen_(s|u)mul_even/odd pair if it is less efficient
46331 2014-01-29 Jakub Jelinek <jakub@redhat.com>
46333 PR tree-optimization/59594
46334 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
46335 a copy of the datarefs vector rather than the vector itself.
46337 2014-01-28 Jason Merrill <jason@redhat.com>
46340 * dwarf2out.c (auto_die): New static.
46341 (gen_type_die_with_usage): Handle C++1y 'auto'.
46342 (gen_subprogram_die): If in-class DIE had 'auto', emit type again
46345 2014-01-28 H.J. Lu <hongjiu.lu@intel.com>
46348 * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
46349 (SPEC_X32): Likewise.
46350 (SPEC_64): Likewise.
46351 * config/i386/i386.c (ix86_option_override_internal): Turn off
46352 OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
46354 (x86_file_start): Output .code16gcc for TARGET_16BIT.
46355 * config/i386/i386.h (TARGET_16BIT): New macro.
46356 (TARGET_16BIT_P): Likewise.
46357 * config/i386/i386.opt: Add m16.
46358 * doc/invoke.texi: Document -m16.
46360 2014-01-28 Jakub Jelinek <jakub@redhat.com>
46362 PR preprocessor/59935
46363 * input.c (location_get_source_line): Bail out on when line number
46364 is zero, and test the return value of lookup_or_add_file_to_cache_tab.
46366 2014-01-28 Richard Biener <rguenther@suse.de>
46368 PR tree-optimization/58742
46369 * tree-ssa-forwprop.c (associate_plusminus): Handle
46370 pointer subtraction of the form (T)(P + A) - (T)P.
46372 2014-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
46374 * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
46377 2014-01-28 Richard Biener <rguenther@suse.de>
46380 2014-01-28 Richard Biener <rguenther@suse.de>
46382 PR rtl-optimization/45364
46383 PR rtl-optimization/59890
46384 * var-tracking.c (local_get_addr_clear_given_value): Handle
46385 already cleared slot.
46386 (val_reset): Handle not allocated local_get_addr_cache.
46387 (vt_find_locations): Use post-order on the inverted CFG.
46389 2014-01-28 Richard Biener <rguenther@suse.de>
46391 * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
46393 2014-01-28 Richard Biener <rguenther@suse.de>
46395 PR rtl-optimization/45364
46396 PR rtl-optimization/59890
46397 * var-tracking.c (local_get_addr_clear_given_value): Handle
46398 already cleared slot.
46399 (val_reset): Handle not allocated local_get_addr_cache.
46400 (vt_find_locations): Use post-order on the inverted CFG.
46402 2014-01-28 Alan Modra <amodra@gmail.com>
46404 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
46405 * configure.ac <recursive call for build != host>: Define
46406 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
46407 and LD_FOR_BUILD too.
46408 * configure: Regenerate.
46410 2014-01-27 Allan Sandfeld Jensen <sandfeld@kde.org>
46412 * config/i386/i386.c (get_builtin_code_for_version): Separate
46413 Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
46414 Broadwell from Haswell.
46416 2014-01-27 Steve Ellcey <sellcey@mips.com>
46418 * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
46419 Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
46420 * config/mips/mips.c (mips_option_override): Change setting
46422 * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
46423 * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
46424 Change from Mask to Var.
46426 2014-01-27 Jeff Law <law@redhat.com>
46428 * ipa-inline.c (inline_small_functions): Fix typo.
46430 2014-01-27 Ilya Tocar <ilya.tocar@intel.com>
46432 * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
46433 (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
46434 (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
46435 (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
46436 (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
46437 (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
46438 (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
46439 (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
46440 (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
46441 (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
46442 (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
46443 (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
46444 (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
46445 (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
46446 (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
46447 (_mm512_storeu_epi64): Ditto.
46448 (_mm512_cmpge_epi32_mask): Ditto.
46449 (_mm512_cmpge_epu32_mask): Ditto.
46450 (_mm512_cmpge_epi64_mask): Ditto.
46451 (_mm512_cmpge_epu64_mask): Ditto.
46452 (_mm512_cmple_epi32_mask): Ditto.
46453 (_mm512_cmple_epu32_mask): Ditto.
46454 (_mm512_cmple_epi64_mask): Ditto.
46455 (_mm512_cmple_epu64_mask): Ditto.
46456 (_mm512_cmplt_epi32_mask): Ditto.
46457 (_mm512_cmplt_epu32_mask): Ditto.
46458 (_mm512_cmplt_epi64_mask): Ditto.
46459 (_mm512_cmplt_epu64_mask): Ditto.
46460 (_mm512_cmpneq_epi32_mask): Ditto.
46461 (_mm512_cmpneq_epu32_mask): Ditto.
46462 (_mm512_cmpneq_epi64_mask): Ditto.
46463 (_mm512_cmpneq_epu64_mask): Ditto.
46464 (_mm512_expand_pd): Ditto.
46465 (_mm512_expand_ps): Ditto.
46466 * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
46467 VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
46468 VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
46469 * config/i386/i386.c (ix86_builtins): Add
46470 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
46471 IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
46472 IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
46473 IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
46474 IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
46475 IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
46476 IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
46477 IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
46478 IX86_BUILTIN_PMOVUSQW512_MEM.
46479 (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
46480 __builtin_ia32_pmovsqd512mem_mask,
46481 __builtin_ia32_pmovqd512mem_mask,
46482 __builtin_ia32_pmovusqw512mem_mask,
46483 __builtin_ia32_pmovsqw512mem_mask,
46484 __builtin_ia32_pmovqw512mem_mask,
46485 __builtin_ia32_pmovusdw512mem_mask,
46486 __builtin_ia32_pmovsdw512mem_mask,
46487 __builtin_ia32_pmovdw512mem_mask,
46488 __builtin_ia32_pmovqb512mem_mask,
46489 __builtin_ia32_pmovusqb512mem_mask,
46490 __builtin_ia32_pmovsqb512mem_mask,
46491 __builtin_ia32_pmovusdb512mem_mask,
46492 __builtin_ia32_pmovsdb512mem_mask,
46493 __builtin_ia32_pmovdb512mem_mask.
46494 (bdesc_args): Add __builtin_ia32_expanddf512,
46495 __builtin_ia32_expandsf512.
46496 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
46497 VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
46498 VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
46499 * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
46500 (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
46501 (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
46502 (avx512f_<code>v8div16qi2_mask_store): This.
46503 (avx512f_expand<mode>): New.
46505 2014-01-27 Kirill Yukhin <kirill.yukhin@intel.com>
46507 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
46509 (_mm512_mask_prefetch_i64gather_pd): Ditto.
46510 (_mm512_prefetch_i32scatter_pd): Ditto.
46511 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
46512 (_mm512_prefetch_i64scatter_pd): Ditto.
46513 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
46514 (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
46515 (_mm512_mask_prefetch_i64gather_ps): Ditto.
46516 (_mm512_prefetch_i32scatter_ps): Ditto.
46517 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
46518 (_mm512_prefetch_i64scatter_ps): Ditto.
46519 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
46520 * config/i386/i386-builtin-types.def: Define
46521 VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
46522 and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
46523 * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
46524 IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
46525 IX86_BUILTIN_SCATTERPFQPD.
46526 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
46527 __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
46528 __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
46529 __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
46530 __builtin_ia32_scatterpfqps.
46531 (ix86_expand_builtin): Expand new built-ins.
46532 * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
46533 fix memory access data type.
46534 (*avx512pf_gatherpf<mode>_mask): Ditto.
46535 (*avx512pf_gatherpf<mode>): Ditto.
46536 (avx512pf_scatterpf<mode>): Ditto.
46537 (*avx512pf_scatterpf<mode>_mask): Ditto.
46538 (*avx512pf_scatterpf<mode>): Ditto.
46539 (GATHER_SCATTER_SF_MEM_MODE): New.
46540 (avx512pf_gatherpf<mode>df): Ditto.
46541 (*avx512pf_gatherpf<mode>df_mask): Ditto.
46542 (*avx512pf_scatterpf<mode>df): Ditto.
46544 2014-01-27 Jakub Jelinek <jakub@redhat.com>
46547 * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
46548 know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
46551 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
46553 * common/config/arm/arm-common.c
46554 (arm_rewrite_mcpu): Handle multiple names.
46556 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
46558 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
46560 * gimple-builder.h (create_gimple_tmp): Delete.
46562 2014-01-27 Christian Bruel <christian.bruel@st.com>
46564 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
46567 2014-01-26 John David Anglin <danglin@gcc.gnu.org>
46569 * config/pa/pa.md (call): Generate indirect long calls to non-local
46570 functions when outputing 32-bit code.
46571 (call_value): Likewise except for special call to buggy powf function.
46573 * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
46574 portable runtime and PIC indirect calls.
46575 (pa_output_indirect_call): Remove unnecessary nop from portable runtime
46576 and PIC call sequences. Use ldo instead of blr to set return register
46577 in PIC call sequence.
46579 2014-01-25 Walter Lee <walt@tilera.com>
46581 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
46582 avoid clobbering a live register.
46584 2014-01-25 Walter Lee <walt@tilera.com>
46586 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
46587 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
46588 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
46589 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
46591 2014-01-25 Walter Lee <walt@tilera.com>
46593 * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
46594 arguments on even registers.
46595 (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
46597 * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
46598 (BIGGEST_ALIGNMENT): Ditto.
46599 (BIGGEST_FIELD_ALIGNMENT): Ditto.
46601 2014-01-25 Walter Lee <walt@tilera.com>
46603 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
46604 insns before bundling.
46605 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
46607 2014-01-25 Walter Lee <walt@tilera.com>
46609 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
46610 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
46611 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
46613 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
46615 * config/mips/constraints.md (kl): Delete.
46616 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
46617 define expands, using...
46618 (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
46619 instructions for MIPS16.
46620 (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
46621 non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
46623 2014-01-25 Walter Lee <walt@tilera.com>
46625 * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
46629 2014-01-25 Walter Lee <walt@tilera.com>
46631 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
46632 (TARGET_EXPAND_TO_RTL_HOOK): Define.
46634 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
46636 * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
46639 2014-01-25 Jakub Jelinek <jakub@redhat.com>
46641 * print-rtl.c (in_call_function_usage): New var.
46642 (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
46643 EXPR_LIST mode as mode and not as reg note name.
46645 PR middle-end/59561
46646 * cfgloopmanip.c (copy_loop_info): If
46647 loop->warned_aggressive_loop_optimizations, make sure
46648 the flag is set in target loop too.
46650 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
46652 * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
46654 * builtins.def: Likewise.
46655 * cilk.h (fn_contains_cilk_spawn_p): Likewise.
46656 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
46657 * ira.c (ira_setup_eliminable_regset): Likewise.
46658 * omp-low.c (gate_expand_omp): Likewise.
46659 (execute_lower_omp): Likewise.
46660 (diagnose_sb_0): Likewise.
46661 (gate_diagnose_omp_blocks): Likewise.
46662 (simd_clone_clauses_extract): Likewise.
46665 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
46667 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
46668 correction for little endian...
46669 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
46672 2014-01-24 Jeff Law <law@redhat.com>
46674 PR tree-optimization/59919
46675 * tree-vrp.c (find_assert_locations_1): Do not register asserts
46676 for non-returning calls.
46678 2014-01-24 James Greenhalgh <james.greenhalgh@arm.com>
46680 * common/config/aarch64/aarch64-common.c
46681 (aarch64_rewrite_mcpu): Handle multiple names.
46682 * config/aarch64/aarch64.h
46683 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
46685 2014-01-24 Dodji Seketeli <dodji@redhat.com>
46687 * input.c (add_file_to_cache_tab): Handle the case where fopen
46690 2014-01-23 H.J. Lu <hongjiu.lu@intel.com>
46693 * config/i386/i386.md (pushsf splitter): Get stack adjustment
46694 from push operand if code of push isn't PRE_DEC.
46696 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
46699 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
46700 -mquad-memory-atomic. Update -mquad-memory documentation to say
46701 it is only used for non-atomic loads/stores.
46703 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
46704 -mquad-memory or -mquad-memory-atomic switches.
46706 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
46707 -mquad-memory-atomic to ISA 2.07 support.
46709 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
46710 to separate support of normal quad word memory operations (ldq, stq)
46711 from the atomic quad word memory operations.
46713 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
46714 support to separate non-atomic quad word operations from atomic
46715 quad word operations. Disable non-atomic quad word operations in
46716 little endian mode so that we don't have to swap words after the
46717 load and before the store.
46718 (quad_load_store_p): Add comment about atomic quad word support.
46719 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
46720 options printed with -mdebug=reg.
46722 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
46723 -mquad-memory-atomic as the test for whether we have quad word
46724 atomic instructions.
46725 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
46726 or -mp8-vector are used, allow byte/half-word atomic operations.
46728 * config/rs6000/sync.md (load_lockedti): Insure that the address
46729 is a proper indexed or indirect address for the lqarx instruction.
46730 On little endian systems, swap the hi/lo registers after the lqarx
46732 (load_lockedpti): Use indexed_or_indirect_operand predicate to
46733 insure the address is valid for the lqarx instruction.
46734 (store_conditionalti): Insure that the address is a proper indexed
46735 or indirect address for the stqcrx. instruction. On little endian
46736 systems, swap the hi/lo registers before doing the stqcrx.
46738 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
46739 insure the address is valid for the stqcrx. instruction.
46741 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
46742 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
46743 type of quad memory support is available.
46745 2014-01-23 Vladimir Makarov <vmakarov@redhat.com>
46747 PR regression/59915
46748 * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
46749 there is a danger of looping.
46751 2014-01-23 Pat Haugen <pthaugen@us.ibm.com>
46753 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
46754 force flag_ira_loop_pressure if set via command line.
46756 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
46758 * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
46759 (ashr_simd): New builtin handling DI mode.
46760 * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
46761 (aarch64_sshr_simddi): New match pattern.
46762 * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
46763 (vshrd_n_s64): Likewise.
46764 * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
46766 2014-01-23 Nick Clifton <nickc@redhat.com>
46768 * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
46769 (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
46770 favour of mcu specific scripts.
46771 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
46774 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
46775 Alex Velenko <Alex.Velenko@arm.com>
46777 * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
46778 (vaddv_s16): Likewise.
46779 (vaddv_s32): Likewise.
46780 (vaddv_u8): Likewise.
46781 (vaddv_u16): Likewise.
46782 (vaddv_u32): Likewise.
46783 (vaddvq_s8): Likewise.
46784 (vaddvq_s16): Likewise.
46785 (vaddvq_s32): Likewise.
46786 (vaddvq_s64): Likewise.
46787 (vaddvq_u8): Likewise.
46788 (vaddvq_u16): Likewise.
46789 (vaddvq_u32): Likewise.
46790 (vaddvq_u64): Likewise.
46791 (vaddv_f32): Likewise.
46792 (vaddvq_f32): Likewise.
46793 (vaddvq_f64): Likewise.
46794 (vmaxv_f32): Likewise.
46795 (vmaxv_s8): Likewise.
46796 (vmaxv_s16): Likewise.
46797 (vmaxv_s32): Likewise.
46798 (vmaxv_u8): Likewise.
46799 (vmaxv_u16): Likewise.
46800 (vmaxv_u32): Likewise.
46801 (vmaxvq_f32): Likewise.
46802 (vmaxvq_f64): Likewise.
46803 (vmaxvq_s8): Likewise.
46804 (vmaxvq_s16): Likewise.
46805 (vmaxvq_s32): Likewise.
46806 (vmaxvq_u8): Likewise.
46807 (vmaxvq_u16): Likewise.
46808 (vmaxvq_u32): Likewise.
46809 (vmaxnmv_f32): Likewise.
46810 (vmaxnmvq_f32): Likewise.
46811 (vmaxnmvq_f64): Likewise.
46812 (vminv_f32): Likewise.
46813 (vminv_s8): Likewise.
46814 (vminv_s16): Likewise.
46815 (vminv_s32): Likewise.
46816 (vminv_u8): Likewise.
46817 (vminv_u16): Likewise.
46818 (vminv_u32): Likewise.
46819 (vminvq_f32): Likewise.
46820 (vminvq_f64): Likewise.
46821 (vminvq_s8): Likewise.
46822 (vminvq_s16): Likewise.
46823 (vminvq_s32): Likewise.
46824 (vminvq_u8): Likewise.
46825 (vminvq_u16): Likewise.
46826 (vminvq_u32): Likewise.
46827 (vminnmv_f32): Likewise.
46828 (vminnmvq_f32): Likewise.
46829 (vminnmvq_f64): Likewise.
46831 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
46833 * config/aarch64/aarch64-simd.md
46834 (aarch64_dup_lane<mode>): Correct lane number on big-endian.
46835 (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
46836 (*aarch64_mul3_elt<mode>): Likewise.
46837 (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
46838 (*aarch64_mul3_elt_to_64v2df): Likewise.
46839 (*aarch64_mla_elt<mode>): Likewise.
46840 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
46841 (*aarch64_mls_elt<mode>): Likewise.
46842 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
46843 (*aarch64_fma4_elt<mode>): Likewise.
46844 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
46845 (*aarch64_fma4_elt_to_64v2df): Likewise.
46846 (*aarch64_fnma4_elt<mode>): Likewise.
46847 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
46848 (*aarch64_fnma4_elt_to_64v2df): Likewise.
46849 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
46850 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
46851 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
46852 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
46853 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
46854 (aarch64_sqdmull_lane<mode>_internal): Likewise.
46855 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
46857 2013-01-23 Alex Velenko <Alex.Velenko@arm.com>
46859 * config/aarch64/aarch64-simd.md
46860 (aarch64_be_checked_get_lane<mode>): New define_expand.
46861 * config/aarch64/aarch64-simd-builtins.def
46862 (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
46863 New builtin definition.
46864 * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
46865 Use new safe be builtin.
46867 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
46869 * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
46871 (aarch64_be_st1<mode>): Likewise.
46872 (aarch_ld1<VALL:mode>): Define_expand modified.
46873 (aarch_st1<VALL:mode>): Likewise.
46874 * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
46875 (UNSPEC_ST1): Likewise.
46877 2014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
46879 * config/microblaze/microblaze.md: Add trap insn and attribute
46881 2014-01-23 Dodji Seketeli <dodji@redhat.com>
46883 PR preprocessor/58580
46884 * input.h (location_get_source_line): Take an additional line_size
46886 (void diagnostics_file_cache_fini): Declare new function.
46887 * input.c (struct fcache): New type.
46888 (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
46889 New static constants.
46890 (diagnostic_file_cache_init, total_lines_num)
46891 (lookup_file_in_cache_tab, evicted_cache_tab_entry)
46892 (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
46893 (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
46894 (get_next_line, read_next_line, goto_next_line, read_line_num):
46895 New static function definitions.
46896 (diagnostic_file_cache_fini): New function.
46897 (location_get_source_line): Take an additional output line_len
46898 parameter. Re-write using lookup_or_add_file_to_cache_tab and
46900 * diagnostic.c (diagnostic_finish): Call
46901 diagnostic_file_cache_fini.
46902 (adjust_line): Take an additional input parameter for the length
46903 of the line, rather than calculating it with strlen.
46904 (diagnostic_show_locus): Adjust the use of
46905 location_get_source_line and adjust_line with respect to their new
46906 signature. While displaying a line now, do not stop at the first
46907 null byte. Rather, display the zero byte as a space and keep
46908 going until we reach the size of the line.
46909 * Makefile.in: Add vec.o to OBJS-libcommon
46911 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
46912 Ilya Tocar <ilya.tocar@intel.com>
46914 * config/i386/avx512fintrin.h (_mm512_kmov): New.
46915 * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
46916 (__builtin_ia32_kmov16): Ditto.
46917 * config/i386/i386.md (UNSPEC_KMOV): New.
46920 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
46922 * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
46923 (_mm512_storeu_si512): Ditto.
46925 2014-01-23 Richard Sandiford <rdsandiford@googlemail.com>
46928 * rtl.h (get_referenced_operands): Declare.
46929 * recog.c (get_referenced_operands): New function.
46930 * config/mips/mips.c (mips_reorg_process_insns): Check which asm
46931 operands have been referenced when recording LO_SUM references.
46933 2014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
46935 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
46937 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
46939 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
46940 Enable for generic and recent AMD targets.
46942 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
46944 * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
46945 ARG_SIZE note when adjustment was eliminated.
46947 2014-01-22 Jeff Law <law@redhat.com>
46949 PR tree-optimization/59597
46950 * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
46951 in file. Accept new argument REGISTERING and use it to modify
46952 dump output appropriately.
46953 (register_jump_thread): Corresponding changes.
46954 (mark_threaded_blocks): Reinstate code to cancel unprofitable
46955 thread paths involving joiner blocks. Add code to dump cancelled
46956 jump threading paths.
46958 2014-01-22 Vladimir Makarov <vmakarov@redhat.com>
46960 PR rtl-optimization/59477
46961 * lra-constraints.c (inherit_in_ebb): Process call for living hard
46962 regs. Update reloads_num and potential_reload_hard_regs for all insns.
46964 2014-01-22 Tom Tromey <tromey@redhat.com>
46966 * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
46968 * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
46970 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
46972 PR rtl-optimization/59896
46973 * lra-constraints.c (process_alt_operands): Check unused note for
46974 matched operands of insn with no output reloads.
46976 2014-01-21 Richard Sandiford <rdsandiford@googlemail.com>
46978 * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
46979 (mips_move_from_gpr_cost): Likewise.
46981 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
46983 PR rtl-optimization/59858
46984 * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
46985 ira_class_hard_regs_num.
46986 (process_alt_operands): Increase reject for dying matched operand.
46988 2014-01-21 Jakub Jelinek <jakub@redhat.com>
46991 * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
46992 smaller than size, perform several stores or loads and stores
46993 at dst + count - size to store or copy all of size bytes, rather
46994 than just last modesize bytes.
46996 2014-01-20 DJ Delorie <dj@redhat.com>
46998 * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
46999 that CLOBBERs are REGs before propogating their values.
47001 2014-01-20 H.J. Lu <hongjiu.lu@intel.com>
47003 PR middle-end/59789
47004 * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
47005 (cgraph_inline_failed_type): New function.
47006 * cgraph.h (DEFCIFCODE): Add type.
47007 (cgraph_inline_failed_type_t): New enum.
47008 (cgraph_inline_failed_type): New prototype.
47009 * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
47010 FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
47011 FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
47012 LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
47013 MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
47014 RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
47015 OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
47016 INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
47017 Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
47018 FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
47019 EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
47020 OPTIMIZATION_MISMATCH.
47021 * tree-inline.c (expand_call_inline): Emit errors during
47022 early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
47024 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
47027 * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
47028 mode attribute in insn output.
47030 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
47032 * output.h (output_constant): Delete.
47033 * varasm.c (output_constant): Make private.
47035 2014-01-20 Alex Velenko <Alex.Velenko@arm.com>
47037 * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
47039 2014-01-20 Jakub Jelinek <jakub@redhat.com>
47041 PR middle-end/59860
47042 * tree.h (fold_builtin_strcat): New prototype.
47043 * builtins.c (fold_builtin_strcat): No longer static. Add len
47044 argument, if non-NULL, don't call c_strlen. Optimize
47045 directly into __builtin_memcpy instead of __builtin_strcpy.
47046 (fold_builtin_2): Adjust fold_builtin_strcat caller.
47047 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
47049 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
47051 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
47052 for SImode_address_operand operands, having only a REG argument.
47054 2014-01-20 Marcus Shawcroft <marcus.shawcroft@arm.com>
47056 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
47057 loader name using mbig-endian.
47058 (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
47060 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
47062 * doc/invoke.texi (-march): Clarify documentation for AArch64.
47063 (-mtune): Likewise.
47066 2014-01-20 Tejas Belagod <tejas.belagod@arm.com>
47068 * config/aarch64/aarch64-protos.h
47069 (aarch64_cannot_change_mode_class_ptr): Declare.
47070 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
47071 aarch64_cannot_change_mode_class_ptr): New.
47072 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
47073 backend hook aarch64_cannot_change_mode_class.
47075 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
47077 * common/config/aarch64/aarch64-common.c
47078 (aarch64_handle_option): Don't handle any option order logic here.
47079 * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
47080 selected_cpu, warn on architecture version mismatch.
47081 (aarch64_override_options): Fix parsing order for option strings.
47083 2014-01-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
47084 Iain Sandoe <iain@codesourcery.com>
47087 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
47088 warning. Amend comment to reflect current functionality.
47090 2014-01-20 Richard Biener <rguenther@suse.de>
47092 PR middle-end/59860
47093 * builtins.c (fold_builtin_strcat): Remove case better handled
47094 by tree-ssa-strlen.c.
47096 2014-01-20 Alan Lawrence <alan.lawrence@arm.com>
47098 * config/aarch64/aarch64.opt
47099 (mcpu, march, mtune): Make case-insensitive.
47101 2014-01-20 Jakub Jelinek <jakub@redhat.com>
47104 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
47105 if operands[1] is a REG or ZERO_EXTEND of a REG.
47107 2014-01-19 Jan Hubicka <hubicka@ucw.cz>
47109 * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
47111 2014-01-19 John David Anglin <danglin@gcc.gnu.org>
47113 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
47114 long non-pic millicode calls.
47116 2014-01-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
47118 * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
47120 2014-01-19 Kito Cheng <kito@0xlab.org>
47122 * builtins.c (expand_movstr): Check movstr expand done or fail.
47124 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
47125 H.J. Lu <hongjiu.lu@intel.com>
47128 * config/i386/i386.md (*lea<mode>): Zero-extend return register
47129 to DImode for zero-extended addresses.
47131 2014-01-19 Jakub Jelinek <jakub@redhat.com>
47133 PR rtl-optimization/57763
47134 * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
47135 on the new indirect jump_insn and increment LABEL_NUSES (label).
47137 2014-01-18 H.J. Lu <hongjiu.lu@intel.com>
47141 * config.gcc (x86_archs): New variable.
47142 (x86_64_archs): Likewise.
47143 (x86_cpus): Likewise.
47144 Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
47145 --with-arch/--with-cpu= options.
47146 Support --with-arch=/--with-cpu={nehalem,westmere,
47147 sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
47149 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
47151 * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
47152 and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
47154 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
47156 * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
47158 2014-01-18 Jakub Jelinek <jakub@redhat.com>
47161 * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
47162 clear cpp_get_options (parse_in)->warn_unused_macros for
47163 ix86_target_macros_internal with cpp_define.
47165 2014-01-18 Richard Sandiford <rdsandiford@googlemail.com>
47167 * jump.c (delete_related_insns): Keep (use (insn))s.
47168 * reorg.c (redundant_insn): Check for barriers too.
47170 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
47172 * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
47174 2014-01-17 John David Anglin <danglin@gcc.gnu.org>
47176 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
47177 call to $$dyncall when TARGET_LONG_CALLS is true.
47179 2014-01-17 Jeff Law <law@redhat.com>
47181 * ree.c (combine_set_extension): Temporarily disable test for
47182 changing number of hard registers.
47184 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
47186 PR middle-end/58125
47187 * ipa-inline-analysis.c (inline_free_summary):
47188 Do not free summary of aliases.
47190 2014-01-17 Jakub Jelinek <jakub@redhat.com>
47192 PR middle-end/59706
47193 * gimplify.c (gimplify_expr): Use create_tmp_var
47194 instead of create_tmp_var_raw. If cond doesn't have
47195 integral type, don't add the IFN_ANNOTATE builtin at all.
47197 2014-01-17 Martin Jambor <mjambor@suse.cz>
47200 * ipa-cp.c (prev_edge_clone): New variable.
47201 (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
47202 Also resize prev_edge_clone vector.
47203 (ipcp_edge_duplication_hook): Also update prev_edge_clone.
47204 (ipcp_edge_removal_hook): New function.
47205 (ipcp_driver): Register ipcp_edge_removal_hook.
47207 2014-01-17 Andrew Pinski <apinski@cavium.com>
47208 Steve Ellcey <sellcey@mips.com>
47211 * config/mips/mips.c (mips_print_operand): Check operand mode instead
47214 2014-01-17 Jeff Law <law@redhat.com>
47216 PR middle-end/57904
47217 * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
47218 so that pass_ccp runs first.
47220 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
47222 * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
47223 (ix86_adjust_cost): Use !TARGET_XXX.
47224 (do_reorder_for_imul): Likewise.
47225 (swap_top_of_ready_list): Likewise.
47226 (ix86_sched_reorder): Likewise.
47228 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
47230 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
47231 PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC.
47232 * config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy.
47233 (intel_memset): New. Duplicate slm_memset.
47234 (intel_cost): New. Duplicate slm_cost.
47235 (m_INTEL): New macro.
47236 (processor_target_table): Add "intel".
47237 (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
47238 with PROCESSOR_INTEL for "intel".
47239 (ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate
47240 PROCESSOR_SILVERMONT.
47241 (ix86_issue_rate): Likewise.
47242 (ix86_adjust_cost): Likewise.
47243 (ia32_multipass_dfa_lookahead): Likewise.
47244 (swap_top_of_ready_list): Likewise.
47245 (ix86_sched_reorder): Likewise.
47246 (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
47247 instead of TARGET_OPT_AGU.
47248 * config/i386/i386.h (TARGET_INTEL): New.
47249 (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
47250 (processor_type): Add PROCESSOR_INTEL.
47251 * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
47252 Add X86_TUNE_AVOID_LEA_FOR_ADDR.
47254 2014-01-17 Marek Polacek <polacek@redhat.com>
47257 * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
47260 2014-01-17 Richard Biener <rguenther@suse.de>
47262 PR tree-optimization/46590
47263 * opts.c (default_options_table): Add entries for
47264 OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
47265 all enabled at -O1 but not for -Og.
47266 * common.opt (fbranch-count-reg): Remove Init(1).
47267 (fmove-loop-invariants): Likewise.
47268 (ftree-pta): Likewise.
47270 2014-01-17 Jakub Jelinek <jakub@redhat.com>
47272 * config/i386/i386.c (ix86_data_alignment): For compatibility with
47273 (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
47274 decls to at least the GCC 4.8 used alignments.
47277 * tree-nested.c (convert_nonlocal_reference_stmt,
47278 convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
47279 of GIMPLE_BIND stmts, adjust associated decls.
47281 2014-01-17 Richard Biener <rguenther@suse.de>
47283 PR tree-optimization/46590
47284 * vec.h (vec<>::bseach): New member function implementing
47285 binary search according to C89 bsearch.
47286 (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
47287 * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
47288 bitmap pointer again. Make accesses_in_loop a flat array.
47289 (mem_ref_obstack): New global.
47290 (outermost_indep_loop): Adjust for mem_ref->stored changes.
47291 (mark_ref_stored): Likewise.
47292 (ref_indep_loop_p_2): Likewise.
47293 (set_ref_stored_in_loop): New helper function.
47294 (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
47295 (memref_free): Adjust.
47296 (record_mem_ref_loc): Simplify.
47297 (gather_mem_refs_stmt): Adjust.
47298 (sort_locs_in_loop_postorder_cmp): New function.
47299 (analyze_memory_references): Sort accesses_in_loop after
47300 loop postorder number.
47301 (find_ref_loc_in_loop_cmp): New function.
47302 (for_all_locs_in_loop): Find relevant cluster of locs in
47303 accesses_in_loop and iterate without recursion.
47304 (execute_sm): Avoid uninit warning.
47305 (struct ref_always_accessed): Simplify.
47306 (ref_always_accessed::operator ()): Likewise.
47307 (ref_always_accessed_p): Likewise.
47308 (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
47309 loop postorder numbers here.
47310 (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
47313 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
47316 * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
47317 on decls for which assemble_alias has been called.
47319 2014-01-17 Nick Clifton <nickc@redhat.com>
47321 * config/msp430/msp430.opt: (mcpu): New option.
47322 * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
47323 (msp430_option_override): Parse target_cpu. If the MCU name
47324 matches a generic string, clear target_mcu.
47325 (msp430_attr): Allow numeric interrupt values up to 63.
47326 (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
47327 * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
47329 * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
47331 * config/msp430/msp430.md (popm): Use %J rather than %I.
47332 (addsi3): Use msp430_nonimmediate_operand for operand 2.
47333 (addhi_cy_i): Use immediate_operand for operand 2.
47334 * doc/invoke.texi: Document -mcpu option.
47336 2014-01-17 Richard Biener <rguenther@suse.de>
47338 PR rtl-optimization/38518
47339 * df.h (df_analyze_loop): Declare.
47340 * df-core.c: Include cfgloop.h.
47341 (df_analyze_1): Split out main part of df_analyze.
47342 (df_analyze): Adjust.
47343 (loop_inverted_post_order_compute): New function.
47344 (loop_post_order_compute): Likewise.
47345 (df_analyze_loop): New function avoiding whole-function
47346 postorder computes.
47347 * loop-invariant.c (find_defs): Use df_analyze_loop.
47348 (find_invariants): Adjust.
47349 * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
47351 2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
47353 * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
47354 (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
47356 2014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
47358 * ipa-ref.c (ipa_remove_stmt_references): Fix references
47359 traversal when removing references.
47361 2014-01-16 Jan Hubicka <hubicka@ucw.cz>
47364 * tree.c (get_binfo_at_offset): Look harder for virtual bases.
47366 2014-01-16 Bernd Schmidt <bernds@codesourcery.com>
47368 PR middle-end/56791
47369 * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
47370 pushing a reload for an autoinc when we had previously reloaded an
47371 inner part of the address.
47373 2014-01-16 Jakub Jelinek <jakub@redhat.com>
47375 * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
47377 (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
47378 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
47379 when not giving up or versioning for alias only because of
47381 (vect_analyze_data_ref_dependences): Set to true.
47382 * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
47384 (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
47385 LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
47388 PR middle-end/58344
47389 * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
47392 * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
47393 operand 0 predicate for gathers, use a new pseudo as subtarget.
47395 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
47397 PR middle-end/59609
47398 * lra-constraints.c (process_alt_operands): Add printing debug info.
47399 Check absence of input/output reloads for matched operands too.
47401 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
47403 PR rtl-optimization/59835
47404 * ira.c (ira_init_register_move_cost): Increase cost for
47407 2014-01-16 Alan Lawrence <alan.lawrence@arm.com>
47409 * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
47411 2014-01-16 Richard Earnshaw <rearnsha@arm.com>
47414 * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
47415 non-register objects. Use gen_(high/low)part more consistently.
47418 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
47421 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
47422 endian support, remove tests for WORDS_BIG_ENDIAN.
47423 (p8_mfvsrd_3_<mode>): Likewise.
47424 (reload_gpr_from_vsx<mode>): Likewise.
47425 (reload_gpr_from_vsxsf): Likewise.
47426 (p8_mfvsrd_4_disf): Likewise.
47428 2014-01-16 Richard Biener <rguenther@suse.de>
47430 PR rtl-optimization/46590
47431 * lcm.c (compute_antinout_edge): Use postorder iteration.
47432 (compute_laterin): Use inverted postorder iteration.
47434 2014-01-16 Nick Clifton <nickc@redhat.com>
47436 PR middle-end/28865
47437 * varasm.c (output_constant): Return the number of bytes actually
47439 (output_constructor_array_range): Update the field size with the
47440 number of bytes emitted by output_constant.
47441 (output_constructor_regular_field): Likewise. Also do not
47442 complain if the total number of bytes emitted is now greater
47443 than the expected fieldpos.
47444 * output.h (output_constant): Update prototype and descriptive comment.
47446 2014-01-16 Marek Polacek <polacek@redhat.com>
47448 PR middle-end/59827
47449 * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
47450 it is error_mark_node.
47452 2014-01-15 Uros Bizjak <ubizjak@gmail.com>
47454 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
47455 VALID_AVX256_REG_OR_OI_MODE.
47457 2014-01-15 Pat Haugen <pthaugen@us.ibm.com>
47459 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
47460 current procedure should be profiled.
47462 2014-01-15 Andrew Pinski <apinski@cavium.com>
47464 * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
47465 of moving from/to the STACK_REG register class.
47467 2014-01-15 Richard Henderson <rth@redhat.com>
47470 * reginfo.c (global_regs_decl): Globalize.
47471 * rtl.h (global_regs_decl): Declare.
47472 * ira.c (do_reload): Diagnose frame_pointer_needed and it
47473 reserved via global_regs.
47475 2014-01-15 Teresa Johnson <tejohnson@google.com>
47477 * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
47479 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
47481 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
47482 and vmulosh rather than call gen_vec_widen_smult_*.
47483 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
47484 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
47485 (vec_widen_smult_even_v16qi): Likewise.
47486 (vec_widen_umult_even_v8hi): Likewise.
47487 (vec_widen_smult_even_v8hi): Likewise.
47488 (vec_widen_umult_odd_v16qi): Likewise.
47489 (vec_widen_smult_odd_v16qi): Likewise.
47490 (vec_widen_umult_odd_v8hi): Likewise.
47491 (vec_widen_smult_odd_v8hi): Likewise.
47492 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
47493 vmuloub rather than call gen_vec_widen_umult_*.
47494 (vec_widen_umult_lo_v16qi): Likewise.
47495 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
47496 vmulosb rather than call gen_vec_widen_smult_*.
47497 (vec_widen_smult_lo_v16qi): Likewise.
47498 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
47499 rather than call gen_vec_widen_umult_*.
47500 (vec_widen_umult_lo_v8hi): Likewise.
47501 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
47502 rather than call gen_vec_widen_smult_*.
47503 (vec_widen_smult_lo_v8hi): Likewise.
47505 2014-01-15 Jeff Law <law@redhat.com>
47507 PR tree-optimization/59747
47508 * ree.c (find_and_remove_re): Properly handle case where a second
47509 eliminated extension requires widening a copy created for elimination
47510 of a prior extension.
47511 (combine_set_extension): Ensure that the number of hard regs needed
47512 for a destination register does not change when we widen it.
47514 2014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
47516 * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
47517 (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
47518 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
47519 (arm*-*-rtems*): Use t-rtems from existing tmake_file.
47520 (avr-*-rtems*): Likewise.
47521 (bfin*-rtems*): Likewise.
47522 (moxie-*-rtems*): Likewise.
47523 (h8300-*-rtems*): Likewise.
47524 (i[34567]86-*-rtems*): Likewise.
47525 (lm32-*-rtems*): Likewise.
47526 (m32r-*-rtems*): Likewise.
47527 (m68k-*-rtems*): Likewise.
47528 (microblaze*-*-rtems*): Likewise.
47529 (mips*-*-rtems*): Likewise.
47530 (powerpc-*-rtems*): Likewise.
47531 (sh-*-rtems*): Likewise.
47532 (sparc-*-rtems*): Likewise.
47533 (sparc64-*-rtems*): Likewise.
47534 (v850-*-rtems*): Likewise.
47535 (m32c-*-rtems*): Likewise.
47537 2014-01-15 Vladimir Makarov <vmakarov@redhat.com>
47539 PR rtl-optimization/59511
47540 * ira.c (ira_init_register_move_cost): Use memory costs for some
47541 cases of register move cost calculations.
47542 * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
47543 instead of BB frequency.
47544 * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
47545 * lra-assigns.c (find_hard_regno_for): Ditto.
47547 2014-01-15 Richard Biener <rguenther@suse.de>
47549 PR tree-optimization/59822
47550 * tree-vect-stmts.c (hoist_defs_of_uses): New function.
47551 (vectorizable_load): Use it to hoist defs of uses of invariant
47552 loads out of the loop.
47554 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
47555 Kugan Vivekanandarajah <kuganv@linaro.org>
47558 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
47561 2014-01-15 Richard Biener <rguenther@suse.de>
47563 PR rtl-optimization/59802
47564 * lcm.c (compute_available): Use inverted postorder to seed
47565 the initial worklist.
47567 2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
47570 * config/s390/s390.c (s390_preferred_reload_class): Don't return
47571 ADDR_REGS for invalid symrefs in non-PIC code.
47573 2014-01-15 Jakub Jelinek <jakub@redhat.com>
47576 * builtins.c (determine_block_size): Initialize *probable_max_size
47577 even if len_rtx is CONST_INT.
47579 2014-01-14 Andrew Pinski <apinski@cavium.com>
47581 * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
47582 * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
47583 (cortexa53_tunings): Likewise.
47584 (aarch64_sched_issue_rate): New function.
47585 (TARGET_SCHED_ISSUE_RATE): Define.
47587 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
47589 * ira-costs.c (find_costs_and_classes): Add missed
47590 ira_init_register_move_cost_if_necessary.
47592 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
47595 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
47597 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
47600 * config/i386/i386.c (type_natural_mode): Add a bool parameter
47601 to indicate if type is used for function return value. Warn ABI
47602 change if the vector mode isn't available for function return value.
47603 (ix86_function_arg_advance): Pass false to type_natural_mode.
47604 (ix86_function_arg): Likewise.
47605 (ix86_gimplify_va_arg): Likewise.
47606 (function_arg_32): Don't warn ABI change.
47607 (ix86_function_value): Pass true to type_natural_mode.
47608 (ix86_return_in_memory): Likewise.
47609 (ix86_struct_value_rtx): Removed.
47610 (TARGET_STRUCT_VALUE_RTX): Likewise.
47612 2014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
47614 * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
47615 converting a conditional jump into a conditional return.
47617 2014-01-14 Richard Biener <rguenther@suse.de>
47619 PR tree-optimization/58921
47620 PR tree-optimization/59006
47621 * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
47622 hoisting invariant stmts.
47623 * tree-vect-stmts.c (vectorizable_load): Insert the splat of
47624 invariant loads on the preheader edge if possible.
47626 2014-01-14 Joey Ye <joey.ye@arm.com>
47628 * doc/plugin.texi (Building GCC plugins): Update to C++.
47630 2014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
47632 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
47633 (_mm_rcp28_round_ss): Ditto.
47634 (_mm_rsqrt28_round_sd): Ditto.
47635 (_mm_rsqrt28_round_ss): Ditto.
47636 (_mm_rcp28_sd): Ditto.
47637 (_mm_rcp28_ss): Ditto.
47638 (_mm_rsqrt28_sd): Ditto.
47639 (_mm_rsqrt28_ss): Ditto.
47640 * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
47641 * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
47642 * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
47643 (IX86_BUILTIN_RCP28SD): Ditto.
47644 (IX86_BUILTIN_RCP28SS): Ditto.
47645 (IX86_BUILTIN_RSQRT28SD): Ditto.
47646 (IX86_BUILTIN_RSQRT28SS): Ditto.
47647 (bdesc_special_args): Define __builtin_ia32_movntdqa512,
47648 __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
47649 __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
47650 (ix86_expand_special_args_builtin): Expand new FTYPE.
47651 * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
47652 (srcp14<mode>): Make insn unary.
47653 (avx512f_vmscalef<mode><round_name>): Use substed predicate.
47654 (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
47655 (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
47656 (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
47657 (avx512er_exp2<mode><mask_name><round_saeonly_name>):
47658 Fix rounding: make it SAE only.
47659 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
47661 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
47663 (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
47664 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
47665 (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
47666 * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
47667 (round_saeonly_mask_scalar_operand4): Ditto.
47668 (round_saeonly_mask_scalar_op3): Ditto.
47669 (round_saeonly_mask_scalar_op4): Ditto.
47671 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
47673 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
47674 Implement -maltivec=be for vec_insert and vec_extract.
47676 2014-01-10 DJ Delorie <dj@redhat.com>
47678 * config/msp430/msp430.md (call_internal): Don't allow memory
47679 references with SP as the base register.
47680 (call_value_internal): Likewise.
47681 * config/msp430/constraints.md (Yc): New. For memory references
47682 that don't use SP as a base register.
47684 * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
47685 "an integer without a # prefix"
47686 * config/msp430/msp430.md (epilogue_helper): Use it.
47688 2014-01-13 Jakub Jelinek <jakub@redhat.com>
47691 * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
47692 AVX512F gather builtins.
47693 * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
47694 on gather decls with INTEGER_TYPE masktype.
47695 (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
47696 directly into the builtin rather than hoisting it before loop.
47698 PR tree-optimization/59387
47699 * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
47700 (scev_const_prop): If folded_casts and type has undefined overflow,
47701 use force_gimple_operand instead of force_gimple_operand_gsi and
47702 for each added stmt if it is assign with
47703 arith_code_with_undefined_signed_overflow, call
47704 rewrite_to_defined_overflow.
47705 * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
47706 gimple-fold.h instead.
47707 (arith_code_with_undefined_signed_overflow,
47708 rewrite_to_defined_overflow): Moved to ...
47709 * gimple-fold.c (arith_code_with_undefined_signed_overflow,
47710 rewrite_to_defined_overflow): ... here. No longer static.
47711 Include gimplify-me.h.
47712 * gimple-fold.h (arith_code_with_undefined_signed_overflow,
47713 rewrite_to_defined_overflow): New prototypes.
47715 2014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
47717 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
47719 2014-01-13 Eric Botcazou <ebotcazou@adacore.com>
47721 * builtins.c (get_object_alignment_2): Minor tweak.
47722 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
47724 2014-01-13 Christian Bruel <christian.bruel@st.com>
47726 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
47727 optimized non constant lengths.
47729 2014-01-13 Jakub Jelinek <jakub@redhat.com>
47732 * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
47733 load as __atomic_load_N if possible.
47735 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
47737 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
47739 (rs6000_expand_builtin): Adjust call.
47741 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
47744 * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
47745 * config/rs6000/rs6000.c: Include target-globals.h.
47746 (rs6000_set_current_function): Instead of doing target_reinit
47747 unconditionally, use save_target_globals_default_opts and
47748 restore_target_globals.
47750 * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
47752 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
47753 (rs6000_expand_builtin): Handle mffs and mtfsf.
47754 (rs6000_init_builtins): Define mffs and mtfsf.
47755 * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
47756 (rs6000_mffs): New pattern.
47757 (rs6000_mtfsf): New pattern.
47759 2014-01-11 Bin Cheng <bin.cheng@arm.com>
47761 * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
47762 Start narrowing with START. Apply candidate-use pair
47763 and check overall cost in narrowing.
47764 (iv_ca_prune): Pass new argument.
47766 2014-01-10 Jeff Law <law@redhat.com>
47768 PR middle-end/59743
47769 * ree.c (combine_reaching_defs): Ensure the defining statement
47770 occurs before the extension when optimizing extensions with
47771 different source and destination hard registers.
47773 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
47776 * ipa-devirt.c (build_type_inheritance_graph): Also add types of
47777 vtables into the type inheritance graph.
47779 2014-01-10 Jakub Jelinek <jakub@redhat.com>
47781 PR rtl-optimization/59754
47782 * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
47783 modes in the REGNO != REGNO case.
47785 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
47787 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
47789 2014-01-10 Jakub Jelinek <jakub@redhat.com>
47791 PR tree-optimization/59745
47792 * tree-predcom.c (tree_predictive_commoning_loop): Call
47793 free_affine_expand_cache if giving up because components is NULL.
47795 * target-globals.c (save_target_globals): Allocate < 4KB structs using
47796 GC in payload of target_globals struct instead of allocating them on
47797 the heap and the larger structs separately using GC.
47798 * target-globals.h (struct target_globals): Make regs, hard_regs,
47799 reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
47800 of GTY((skip)) and change type to void *.
47801 (reset_target_globals): Cast loads from those fields to corresponding
47804 2014-01-10 Steve Ellcey <sellcey@mips.com>
47807 * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
47808 gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
47809 tree-ssanames.h, print-tree.h, varasm.h, and context.h.
47811 2014-01-10 Richard Earnshaw <rearnsha@arm.com>
47814 * aarch64-modes.def (CC_Zmode): New flags mode.
47815 * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
47816 represents an equality.
47817 (aarch64_get_condition_code): Handle CC_Zmode.
47818 * aarch64.md (compare_neg<mode>): Restrict to equality operations.
47820 2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
47822 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
47823 extraction in good case.
47825 2014-01-10 Richard Biener <rguenther@suse.de>
47827 PR tree-optimization/59374
47828 * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
47829 checking after SLP discovery. Mark stmts not participating
47830 in any SLP instance properly.
47832 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
47834 * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
47835 when handling a SET rtx.
47837 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
47839 * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
47840 (cortex-a57): Likewise.
47841 (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
47843 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
47845 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
47846 non-iwmmxt builtins.
47848 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
47852 * ipa-devirt.c record_target_from_binfo): Take as argument
47853 stack of binfos and lookup matching one for virtual inheritance.
47854 (possible_polymorphic_call_targets_1): Update.
47856 2014-01-10 Huacai Chen <chenhc@lemote.com>
47858 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
47859 kernel strings for Loongson-2E/2F/3A.
47861 2014-01-10 Jakub Jelinek <jakub@redhat.com>
47863 PR middle-end/59670
47864 * tree-vect-data-refs.c (vect_analyze_data_refs): Check
47865 is_gimple_call before calling gimple_call_internal_p.
47867 2014-01-09 Steve Ellcey <sellcey@mips.com>
47869 * Makefile.in (TREE_FLOW_H): Remove.
47870 (TREE_SSA_H): Add file names from tree-flow.h.
47871 * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
47872 * tree.h: Remove tree-flow.h reference.
47873 * hash-table.h: Remove tree-flow.h reference.
47874 * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
47875 reference with tree-ssa-loop.h.
47877 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
47879 * doc/invoke.texi: Add -maltivec={be,le} options, and document
47880 default element-order behavior for -maltivec.
47881 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
47882 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
47883 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
47884 when targeting big endian, at least for now.
47885 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
47887 2014-01-09 Jakub Jelinek <jakub@redhat.com>
47889 PR middle-end/47735
47890 * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
47891 var satisfies use_register_for_decl, just take into account type
47892 alignment, rather than decl alignment.
47894 PR tree-optimization/59622
47895 * gimple-fold.c (gimple_fold_call): Fix a typo in message. For
47896 __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
47897 __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
47898 Don't devirtualize for inplace at all. For targets.length () == 1,
47899 if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
47901 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
47903 * config/i386/i386.md (cpu): Remove the unused btver1.
47905 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
47907 * gdbasan.in: Put a breakpoint on __sanitizer::Report.
47909 2014-01-09 Jakub Jelinek <jakub@redhat.com>
47912 * tree-core.h (struct target_globals): New forward declaration.
47913 (struct tree_target_option): Add globals field.
47914 * tree.h (TREE_TARGET_GLOBALS): Define.
47915 (prepare_target_option_nodes_for_pch): New prototype.
47916 * target-globals.h (struct target_globals): Define even if
47917 !SWITCHABLE_TARGET.
47918 * tree.c (prepare_target_option_node_for_pch,
47919 prepare_target_option_nodes_for_pch): New functions.
47920 * config/i386/i386.h (SWITCHABLE_TARGET): Define.
47921 * config/i386/i386.c: Include target-globals.h.
47922 (ix86_set_current_function): Instead of doing target_reinit
47923 unconditionally, use save_target_globals_default_opts and
47924 restore_target_globals.
47926 2014-01-09 Richard Biener <rguenther@suse.de>
47928 PR tree-optimization/59715
47929 * tree-cfg.h (split_critical_edges): Declare.
47930 * tree-cfg.c (split_critical_edges): Export.
47931 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
47933 2014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
47935 * cfgexpand.c (expand_stack_vars): Optionally disable
47936 asan stack protection.
47937 (expand_used_vars): Likewise.
47938 (partition_stack_vars): Likewise.
47939 * asan.c (asan_emit_stack_protection): Optionally disable
47940 after return stack usage.
47941 (instrument_derefs): Optionally disable memory access instrumentation.
47942 (instrument_builtin_call): Likewise.
47943 (instrument_strlen_call): Likewise.
47944 (asan_protect_global): Optionally disable global variables protection.
47945 * doc/invoke.texi: Added doc for new options.
47946 * params.def: Added new options.
47947 * params.h: Likewise.
47949 2014-01-09 Jakub Jelinek <jakub@redhat.com>
47951 PR rtl-optimization/59724
47952 * ifcvt.c (cond_exec_process_if_block): Don't call
47953 flow_find_head_matching_sequence with 0 longest_match.
47954 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
47955 non-active insns if !stop_after.
47956 (try_head_merge_bb): Revert 2014-01-07 changes.
47958 2014-01-08 Jeff Law <law@redhat.com>
47960 * ree.c (get_sub_rtx): New function, extracted from...
47961 (merge_def_and_ext): Here.
47962 (combine_reaching_defs): Use get_sub_rtx.
47964 2014-01-08 Eric Botcazou <ebotcazou@adacore.com>
47966 * cgraph.h (varpool_variable_node): Do not choke on null node.
47968 2014-01-08 Catherine Moore <clm@codesourcery.com>
47970 * config/mips/mips.md (simple_return): Attempt to use JRC
47972 * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
47974 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
47976 PR rtl-optimization/59137
47977 * reorg.c (steal_delay_list_from_target): Call update_block for
47979 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
47981 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
47983 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
47984 two duplicate entries.
47986 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
47989 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
47991 * config/mips/mips.c (mips_truncated_op_cost): New function.
47992 (mips_rtx_costs): Adjust test for BADDU.
47993 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
47995 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
47997 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
47998 (*baddu_si): ...this new pattern.
48000 2014-01-08 Jakub Jelinek <jakub@redhat.com>
48003 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
48005 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
48007 PR middle-end/57748
48008 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
48010 (expand_expr, expand_normal): Adjust.
48011 * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
48012 inner_reference_p. Use inner_reference_p to expand inner references.
48013 (store_expr): Adjust.
48014 * cfgexpand.c (expand_call_stmt): Adjust.
48016 2014-01-08 Rong Xu <xur@google.com>
48018 * gcov-io.c (gcov_var): Move from gcov-io.h.
48019 (gcov_position): Ditto.
48020 (gcov_is_error): Ditto.
48021 (gcov_rewrite): Ditto.
48022 * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
48023 only part to libgcc/libgcov.h.
48025 2014-01-08 Marek Polacek <polacek@redhat.com>
48027 PR middle-end/59669
48028 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
48030 2014-01-08 Marek Polacek <polacek@redhat.com>
48033 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
48035 2014-01-08 Jakub Jelinek <jakub@redhat.com>
48037 PR rtl-optimization/59649
48038 * stor-layout.c (get_mode_bounds): For BImode return
48039 0 and STORE_FLAG_VALUE.
48041 2014-01-08 Richard Biener <rguenther@suse.de>
48043 PR middle-end/59630
48044 * gimple.h (is_gimple_builtin_call): Remove.
48045 (gimple_builtin_call_types_compatible_p): New.
48046 (gimple_call_builtin_p): New overload.
48047 * gimple.c (is_gimple_builtin_call): Remove.
48048 (validate_call): Rename to ...
48049 (gimple_builtin_call_types_compatible_p): ... this and export. Also
48050 check return types.
48051 (validate_type): New static function.
48052 (gimple_call_builtin_p): New overload and adjust.
48053 * gimple-fold.c (gimple_fold_builtin): Fold the return value.
48054 (gimple_fold_call): Likewise. Use gimple_call_builtin_p.
48055 (gimple_fold_stmt_to_constant_1): Likewise.
48056 * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
48058 2014-01-08 Richard Biener <rguenther@suse.de>
48060 PR middle-end/59471
48061 * gimplify.c (gimplify_expr): Gimplify register-register type
48062 VIEW_CONVERT_EXPRs to separate stmts.
48064 2014-01-07 Jeff Law <law@redhat.com>
48066 PR middle-end/53623
48067 * ree.c (combine_set_extension): Handle case where source
48068 and destination registers in an extension insn are different.
48069 (combine_reaching_defs): Allow source and destination registers
48070 in extension to be different under limited circumstances.
48071 (add_removable_extension): Remove restriction that the
48072 source and destination registers in the extension are the same.
48073 (find_and_remove_re): Emit a copy from the extension's
48074 destination to its source after the defining insn if
48075 the source and destination registers are different.
48077 PR middle-end/59285
48078 * ifcvt.c (merge_if_block): If we are merging a block with more than
48079 one successor with a block with no successors, remove any BARRIER
48080 after the second block.
48082 2014-01-07 Dan Xio Qiang <ziyan01@163.com>
48084 * hw-doloop.c (reorg_loops): Release the bitmap obstack.
48086 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
48089 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
48090 for 14-bit register offsets when INT14_OK_STRICT is false.
48092 2014-01-07 Roland Stigge <stigge@antcom.de>
48093 Michael Meissner <meissner@linux.vnet.ibm.com>
48096 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
48097 Only check TFmode for SPE constants. Don't check TImode or TDmode.
48099 2014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
48101 * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
48104 2014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
48106 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
48107 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
48108 rtx is const0_rtx or not.
48110 2014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
48113 * target-globals.c (save_target_globals): Remove this_fn_optab
48115 * toplev.c: Include optabs.h.
48116 (target_reinit): Temporarily restore the global options if another
48117 set of options are in force.
48119 2014-01-07 Jakub Jelinek <jakub@redhat.com>
48121 PR rtl-optimization/58668
48122 * cfgcleanup.c (flow_find_cross_jump): Don't count
48123 any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p
48124 to determine what is counted.
48125 (flow_find_head_matching_sequence): Use active_insn_p to determine
48127 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
48129 * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
48130 determine what is counted.
48132 PR tree-optimization/59643
48133 * tree-predcom.c (split_data_refs_to_components): If one dr is
48134 read and one write, determine_offset fails and the write isn't
48135 in the bad component, just put the read into the bad component.
48137 2014-01-07 Mike Stump <mikestump@comcast.net>
48138 Jakub Jelinek <jakub@redhat.com>
48141 * tree-core.h (struct tree_optimization_option): Change optabs
48142 type from unsigned char * to void *.
48143 * optabs.c (init_tree_optimization_optabs): Adjust
48144 TREE_OPTIMIZATION_OPTABS initialization.
48146 2014-01-06 Jakub Jelinek <jakub@redhat.com>
48149 * config/i386/i386.h (struct machine_function): Add
48150 no_drap_save_restore field.
48151 * config/i386/i386.c (ix86_save_reg): Use
48152 !cfun->machine->no_drap_save_restore instead of
48153 crtl->stack_realign_needed.
48154 (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
48155 this function clears frame_pointer_needed. Set
48156 cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
48157 and DRAP reg is needed.
48159 2014-01-06 Marek Polacek <polacek@redhat.com>
48162 * doc/implement-c.texi: Mention that other integer types are
48163 permitted as bit-field types in strictly conforming mode.
48165 2014-01-06 Felix Yang <fei.yang0953@gmail.com>
48167 * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
48168 is newly allocated.
48170 2014-01-06 Richard Earnshaw <rearnsha@arm.com>
48172 * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
48174 2014-01-06 Martin Jambor <mjambor@suse.cz>
48177 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
48179 * ipa-prop.c (ipa_print_node_params): Fix indentation.
48181 2014-01-06 Eric Botcazou <ebotcazou@adacore.com>
48185 * var-tracking.c (add_stores): Preserve the value of the source even if
48186 we don't record the store.
48188 2014-01-06 Terry Guo <terry.guo@arm.com>
48190 * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
48192 2014-01-05 Iain Sandoe <iain@codesourcery.com>
48195 * config/darwin.c (darwin_function_section): Adjust return values to
48196 correspond to optimisation changes made in r206070.
48198 2014-01-05 Uros Bizjak <ubizjak@gmail.com>
48200 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
48201 from prefetch_block tune setting.
48202 (nocona_cost): Correct size of prefetch block to 64.
48204 2014-01-04 Eric Botcazou <ebotcazou@adacore.com>
48206 * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
48207 (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
48208 used to save the static chain register in the computation of the offset
48209 from which the FP registers need to be restored.
48211 2014-01-04 Jakub Jelinek <jakub@redhat.com>
48213 PR tree-optimization/59519
48214 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
48215 ICE if get_current_def (current_new_name) is already non-NULL, as long
48216 as it is a phi result of some other phi in *new_exit_bb that has
48219 * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
48220 or vmovdqu* for misaligned_operand.
48221 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
48222 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
48223 * config/i386/i386.c (ix86_expand_special_args_builtin): Set
48224 aligned_mem for AVX512F masked aligned load and store builtins and for
48225 non-temporal moves.
48227 2014-01-03 Bingfeng Mei <bmei@broadcom.com>
48229 PR tree-optimization/59651
48230 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
48231 Address range for negative step should be added by TYPE_SIZE_UNIT.
48233 2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
48235 * config/m68k/m68k.c (handle_move_double): Handle pushes with
48236 overlapping registers also for registers other than the stack pointer.
48238 2014-01-03 Marek Polacek <polacek@redhat.com>
48241 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
48244 2014-01-03 Jakub Jelinek <jakub@redhat.com>
48247 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
48250 * config/i386/i386.md (MODE_SIZE): New mode attribute.
48251 (push splitter): Use <P:MODE_SIZE> instead of
48252 GET_MODE_SIZE (<P:MODE>mode).
48253 (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
48254 (mov -1, reg peephole2): Likewise.
48255 * config/i386/sse.md (*mov<mode>_internal,
48256 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
48257 <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
48258 *<code><mode>3, *andnot<mode>3<mask_name>,
48259 <mask_codefor><code><mode>3<mask_name>): Likewise.
48260 * config/i386/subst.md (mask_mode512bit_condition,
48261 sd_mask_mode512bit_condition): Likewise.
48263 2014-01-02 Xinliang David Li <davidxl@google.com>
48265 PR tree-optimization/59303
48266 * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
48267 (dump_predicates): Better output format.
48268 (pred_equal_p): New function.
48269 (is_neq_relop_p): Ditto.
48270 (is_neq_zero_form_p): Ditto.
48271 (pred_expr_equal_p): Ditto.
48272 (pred_neg_p): Ditto.
48273 (simplify_pred): Ditto.
48274 (simplify_preds_2): Ditto.
48275 (simplify_preds_3): Ditto.
48276 (simplify_preds_4): Ditto.
48277 (simplify_preds): Ditto.
48278 (push_pred): Ditto.
48279 (push_to_worklist): Ditto.
48280 (get_pred_info_from_cmp): Ditto.
48281 (is_degenerated_phi): Ditto.
48282 (normalize_one_pred_1): Ditto.
48283 (normalize_one_pred): Ditto.
48284 (normalize_one_pred_chain): Ditto.
48285 (normalize_preds): Ditto.
48286 (normalize_cond_1): Remove function.
48287 (normalize_cond): Ditto.
48288 (is_gcond_subset_of): Ditto.
48289 (is_subset_of_any): Ditto.
48290 (is_or_set_subset_of): Ditto.
48291 (is_and_set_subset_of): Ditto.
48292 (is_norm_cond_subset_of): Ditto.
48293 (pred_chain_length_cmp): Ditto.
48294 (convert_control_dep_chain_into_preds): Type change.
48295 (find_predicates): Ditto.
48296 (find_def_preds): Ditto.
48297 (destroy_predicates_vecs): Ditto.
48298 (find_matching_predicates_in_rest_chains): Ditto.
48299 (use_pred_not_overlap_with_undef_path_pred): Ditto.
48300 (is_pred_expr_subset): Ditto.
48301 (is_pred_chain_subset_of): Ditto.
48302 (is_included_in): Ditto.
48303 (is_superset_of): Ditto.
48305 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
48307 Update copyright years.
48309 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
48311 * common/config/arc/arc-common.c, config/arc/arc-modes.def,
48312 config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
48313 config/arc/arc.md, config/arc/arc.opt,
48314 config/arm/arm_neon_builtins.def, config/arm/crypto.def,
48315 config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
48316 config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
48317 config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
48318 config/linux-protos.h, config/linux.c, config/winnt-c.c,
48319 diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
48320 vtable-verify.c, vtable-verify.h: Use the standard form for the
48323 2014-01-02 Tobias Burnus <burnus@net-b.de>
48325 * gcc.c (process_command): Update copyright notice dates.
48326 * gcov-dump.c: Ditto.
48328 * doc/cpp.texi: Bump @copying's copyright year.
48329 * doc/cppinternals.texi: Ditto.
48330 * doc/gcc.texi: Ditto.
48331 * doc/gccint.texi: Ditto.
48332 * doc/gcov.texi: Ditto.
48333 * doc/install.texi: Ditto.
48334 * doc/invoke.texi: Ditto.
48336 2014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
48338 * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
48340 2014-01-01 Jakub Jelinek <jakub@redhat.com>
48342 * config/i386/sse.md (*mov<mode>_internal): Guard
48343 EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
48345 PR rtl-optimization/59647
48346 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
48347 new_rtx into UNSIGNED_FLOAT rtxes.
48349 Copyright (C) 2014 Free Software Foundation, Inc.
48351 Copying and distribution of this file, with or without modification,
48352 are permitted in any medium without royalty provided the copyright
48353 notice and this notice are preserved.