1 2015-10-30 Vladimir Makarov <vmakarov@redhat.com>
3 PR rtl-optimization/68106
4 * lra-remat.c (input_regno_present_p): Process hard regs
5 explicitly present in machine description insns.
6 (call_used_input_regno_present_p): Ditto.
7 (calculate_gen_cands): Ditto.
10 2015-10-30 Jim Wilson <jim.wilson@linaro.org>
12 * config/arm/neon-testgen.ml: Fix comment typo.
14 2015-10-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16 * rtlanal.c (reg_set_p): Expand function comment.
18 2015-10-30 Andrew MacLeod <amacleod@redhat.com>
20 * alias.c: Remove unused headers.
22 * attribs.c: Likewise.
23 * auto-inc-dec.c: Likewise.
24 * auto-profile.c: Likewise.
25 * bb-reorder.c: Likewise.
27 * bt-load.c: Likewise.
28 * builtins.c: Likewise.
29 * caller-save.c: Likewise.
33 * cfganal.c: Likewise.
34 * cfgbuild.c: Likewise.
35 * cfgcleanup.c: Likewise.
36 * cfgexpand.c: Likewise.
37 * cfghooks.c: Likewise.
38 * cfgloop.c: Likewise.
39 * cfgloopanal.c: Likewise.
40 * cfgloopmanip.c: Likewise.
43 * cgraphbuild.c: Likewise.
44 * cgraphclones.c: Likewise.
45 * cgraphunit.c: Likewise.
46 * cilk-common.c: Likewise.
47 * combine-stack-adj.c: Likewise.
48 * combine.c: Likewise.
49 * compare-elim.c: Likewise.
50 * convert.c: Likewise.
51 * coverage.c: Likewise.
52 * cppbuiltin.c: Likewise.
56 * data-streamer-in.c: Likewise.
57 * data-streamer-out.c: Likewise.
58 * data-streamer.c: Likewise.
63 * df-core.c: Likewise.
64 * df-problems.c: Likewise.
65 * df-scan.c: Likewise.
68 * dominance.c: Likewise.
69 * domwalk.c: Likewise.
70 * double-int.c: Likewise.
72 * dumpfile.c: Likewise.
73 * dwarf2asm.c: Likewise.
74 * dwarf2cfi.c: Likewise.
75 * dwarf2out.c: Likewise.
76 * emit-rtl.c: Likewise.
82 * fixed-value.c: Likewise.
83 * fold-const.c: Likewise.
84 * function.c: Likewise.
87 * generic-match-head.c: Likewise.
88 * ggc-common.c: Likewise.
89 * gimple-builder.c: Likewise.
90 * gimple-expr.c: Likewise.
91 * gimple-fold.c: Likewise.
92 * gimple-iterator.c: Likewise.
93 * gimple-low.c: Likewise.
94 * gimple-match-head.c: Likewise.
95 * gimple-pretty-print.c: Likewise.
96 * gimple-ssa-isolate-paths.c: Likewise.
97 * gimple-ssa-strength-reduction.c: Likewise.
98 * gimple-streamer-in.c: Likewise.
99 * gimple-streamer-out.c: Likewise.
100 * gimple-walk.c: Likewise.
101 * gimple.c: Likewise.
102 * gimplify-me.c: Likewise.
103 * gimplify.c: Likewise.
104 * godump.c: Likewise.
106 * graphds.c: Likewise.
107 * haifa-sched.c: Likewise.
108 * hw-doloop.c: Likewise.
110 * init-regs.c: Likewise.
111 * internal-fn.c: Likewise.
112 * ipa-chkp.c: Likewise.
113 * ipa-comdats.c: Likewise.
114 * ipa-cp.c: Likewise.
115 * ipa-devirt.c: Likewise.
116 * ipa-icf-gimple.c: Likewise.
117 * ipa-icf.c: Likewise.
118 * ipa-inline-analysis.c: Likewise.
119 * ipa-inline-transform.c: Likewise.
120 * ipa-inline.c: Likewise.
121 * ipa-polymorphic-call.c: Likewise.
122 * ipa-profile.c: Likewise.
123 * ipa-prop.c: Likewise.
124 * ipa-pure-const.c: Likewise.
125 * ipa-ref.c: Likewise.
126 * ipa-reference.c: Likewise.
127 * ipa-split.c: Likewise.
128 * ipa-utils.c: Likewise.
129 * ipa-visibility.c: Likewise.
131 * ira-build.c: Likewise.
132 * ira-color.c: Likewise.
133 * ira-conflicts.c: Likewise.
134 * ira-costs.c: Likewise.
135 * ira-emit.c: Likewise.
136 * ira-lives.c: Likewise.
139 * langhooks.c: Likewise.
142 * loop-doloop.c: Likewise.
143 * loop-init.c: Likewise.
144 * loop-invariant.c: Likewise.
145 * loop-iv.c: Likewise.
146 * loop-unroll.c: Likewise.
147 * lower-subreg.c: Likewise.
148 * lra-assigns.c: Likewise.
149 * lra-coalesce.c: Likewise.
150 * lra-constraints.c: Likewise.
151 * lra-eliminations.c: Likewise.
152 * lra-lives.c: Likewise.
153 * lra-remat.c: Likewise.
154 * lra-spills.c: Likewise.
156 * lto-cgraph.c: Likewise.
157 * lto-compress.c: Likewise.
158 * lto-opts.c: Likewise.
159 * lto-section-in.c: Likewise.
160 * lto-section-out.c: Likewise.
161 * lto-streamer-in.c: Likewise.
162 * lto-streamer-out.c: Likewise.
163 * lto-streamer.c: Likewise.
165 * mode-switching.c: Likewise.
166 * modulo-sched.c: Likewise.
167 * optabs.c: Likewise.
168 * opts-global.c: Likewise.
169 * passes.c: Likewise.
170 * plugin.c: Likewise.
171 * postreload-gcse.c: Likewise.
172 * postreload.c: Likewise.
173 * predict.c: Likewise.
174 * print-tree.c: Likewise.
175 * profile.c: Likewise.
177 * realmpfr.c: Likewise.
180 * reg-stack.c: Likewise.
181 * regcprop.c: Likewise.
182 * reginfo.c: Likewise.
183 * regrename.c: Likewise.
184 * regstat.c: Likewise.
185 * reload.c: Likewise.
186 * reload1.c: Likewise.
188 * resource.c: Likewise.
189 * rtl-chkp.c: Likewise.
190 * rtl-error.c: Likewise.
191 * rtlanal.c: Likewise.
192 * rtlhooks.c: Likewise.
193 * sanopt.c: Likewise.
194 * sched-deps.c: Likewise.
195 * sched-ebb.c: Likewise.
196 * sched-rgn.c: Likewise.
197 * sdbout.c: Likewise.
198 * sel-sched-dump.c: Likewise.
199 * sel-sched-ir.c: Likewise.
200 * sel-sched.c: Likewise.
202 * shrink-wrap.c: Likewise.
203 * simplify-rtx.c: Likewise.
204 * stack-ptr-mod.c: Likewise.
205 * statistics.c: Likewise.
207 * stor-layout.c: Likewise.
208 * store-motion.c: Likewise.
209 * stringpool.c: Likewise.
210 * symtab.c: Likewise.
211 * target-globals.c: Likewise.
212 * targhooks.c: Likewise.
213 * toplev.c: Likewise.
214 * tracer.c: Likewise.
215 * trans-mem.c: Likewise.
216 * tree-affine.c: Likewise.
217 * tree-call-cdce.c: Likewise.
218 * tree-cfg.c: Likewise.
219 * tree-cfgcleanup.c: Likewise.
220 * tree-chkp-opt.c: Likewise.
221 * tree-chkp.c: Likewise.
222 * tree-chrec.c: Likewise.
223 * tree-complex.c: Likewise.
224 * tree-data-ref.c: Likewise.
225 * tree-dfa.c: Likewise.
226 * tree-diagnostic.c: Likewise.
227 * tree-dump.c: Likewise.
228 * tree-eh.c: Likewise.
229 * tree-emutls.c: Likewise.
230 * tree-if-conv.c: Likewise.
231 * tree-inline.c: Likewise.
232 * tree-into-ssa.c: Likewise.
233 * tree-iterator.c: Likewise.
234 * tree-loop-distribution.c: Likewise.
235 * tree-nested.c: Likewise.
236 * tree-nrv.c: Likewise.
237 * tree-object-size.c: Likewise.
238 * tree-outof-ssa.c: Likewise.
239 * tree-parloops.c: Likewise.
240 * tree-phinodes.c: Likewise.
241 * tree-predcom.c: Likewise.
242 * tree-pretty-print.c: Likewise.
243 * tree-profile.c: Likewise.
244 * tree-scalar-evolution.c: Likewise.
245 * tree-sra.c: Likewise.
246 * tree-ssa-address.c: Likewise.
247 * tree-ssa-alias.c: Likewise.
248 * tree-ssa-ccp.c: Likewise.
249 * tree-ssa-coalesce.c: Likewise.
250 * tree-ssa-copy.c: Likewise.
251 * tree-ssa-dce.c: Likewise.
252 * tree-ssa-dse.c: Likewise.
253 * tree-ssa-forwprop.c: Likewise.
254 * tree-ssa-ifcombine.c: Likewise.
255 * tree-ssa-live.c: Likewise.
256 * tree-ssa-loop-ch.c: Likewise.
257 * tree-ssa-loop-im.c: Likewise.
258 * tree-ssa-loop-ivcanon.c: Likewise.
259 * tree-ssa-loop-ivopts.c: Likewise.
260 * tree-ssa-loop-manip.c: Likewise.
261 * tree-ssa-loop-niter.c: Likewise.
262 * tree-ssa-loop-prefetch.c: Likewise.
263 * tree-ssa-loop-unswitch.c: Likewise.
264 * tree-ssa-loop.c: Likewise.
265 * tree-ssa-math-opts.c: Likewise.
266 * tree-ssa-operands.c: Likewise.
267 * tree-ssa-phiopt.c: Likewise.
268 * tree-ssa-phiprop.c: Likewise.
269 * tree-ssa-pre.c: Likewise.
270 * tree-ssa-propagate.c: Likewise.
271 * tree-ssa-reassoc.c: Likewise.
272 * tree-ssa-scopedtables.c: Likewise.
273 * tree-ssa-sink.c: Likewise.
274 * tree-ssa-strlen.c: Likewise.
275 * tree-ssa-structalias.c: Likewise.
276 * tree-ssa-tail-merge.c: Likewise.
277 * tree-ssa-ter.c: Likewise.
278 * tree-ssa-threadupdate.c: Likewise.
279 * tree-ssa-uncprop.c: Likewise.
280 * tree-ssa-uninit.c: Likewise.
281 * tree-ssa.c: Likewise.
282 * tree-ssanames.c: Likewise.
283 * tree-stdarg.c: Likewise.
284 * tree-streamer-in.c: Likewise.
285 * tree-streamer-out.c: Likewise.
286 * tree-streamer.c: Likewise.
287 * tree-switch-conversion.c: Likewise.
288 * tree-tailcall.c: Likewise.
289 * tree-vect-data-refs.c: Likewise.
290 * tree-vect-generic.c: Likewise.
291 * tree-vect-loop-manip.c: Likewise.
292 * tree-vect-loop.c: Likewise.
293 * tree-vect-patterns.c: Likewise.
294 * tree-vect-slp.c: Likewise.
295 * tree-vect-stmts.c: Likewise.
296 * tree-vectorizer.c: Likewise.
297 * tree-vrp.c: Likewise.
301 * value-prof.c: Likewise.
302 * var-tracking.c: Likewise.
303 * varasm.c: Likewise.
304 * varpool.c: Likewise.
305 * vmsdbgout.c: Likewise.
306 * vtable-verify.c: Likewise.
308 * wide-int-print.cc: Likewise.
309 * wide-int.cc: Likewise.
310 * xcoffout.c: Likewise.
312 2015-10-30 James Greenhalgh <james.greenhalgh@arm.com>
314 * doc/invoke.texi (fdump-rtl-@var{pass}): Clarify relationship
315 between pass numbering and execution order.
317 2015-10-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
319 * config/arm/arm.c (cortex_a9_sched_adjust_cost): Use reg_set_p to
320 check for dependencies.
322 2015-10-30 Richard Sandiford <richard.sandiford@arm.com>
324 * tree-ssa-math-opts.c (pass_cse_sincos::execute): Don't free
327 2015-10-30 Richard Sandiford <richard.sandiford@arm.com>
329 * real.h (format_helper): New.
330 (real_convert, exact_real_truncate, real_from_string3, real_to_target)
331 (real_from_target, real_nan, real_2expN, real_value_truncate)
332 (significand_size, real_from_string2, exact_real_inverse)
333 (exact_real_inverse, real_powi, real_trunc, real_floor, real_ceil)
334 (real_round, real_isinteger, real_from_integer): Replace
335 machine_mode arguments with format_helper arguments.
336 * real.c (exact_real_inverse, real_from_string2, real_from_string3)
337 (real_from_integer, real_nan, real_2expN, real_convert)
338 (real_value_truncate, exact_real_truncate, real_to_target)
339 (real_from_target, significand_size, real_powi, real_trunc)
340 (real_floor, real_ceil, real_round, real_isinteger): Replace
341 machine_mode arguments with format_helper arguments.
342 (real_to_target_fmt, real_from_target_fmt): Delete.
343 * dfp.h (decimal_real_convert): Replace mode argument with real_format.
344 * dfp.c (decimal_to_binary, decimal_real_convert): Replace mode
345 argument with real_format.
346 * builtins.c (do_real_to_int_conversion): Update type of fn argument.
348 2015-10-30 Richard Sandiford <richard.sandiford@arm.com>
350 * fixed-value.c (check_real_for_fixed_mode, fixed_from_string)
351 (fixed_to_decimal, fixed_convert_from_real)
352 (real_convert_from_fixed): Fix mode arguments to real_2expN.
354 2015-10-30 Richard Sandiford <richard.sandiford@arm.com>
356 * real.h (REAL_MODE_FORMAT): Abort if the mode isn't a
359 2015-10-30 Alan Lawrence <alan.lawrence@arm.com>
361 * tree-sra.c (scalarizable_type_p): Comment variable-length arrays.
362 (completely_scalarize): Comment zero-length arrays.
363 (get_access_replacement): Correct comment re. precondition.
365 2015-10-30 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
367 * config/i386/i386.c (get_builtin_code_for_version): Set priority
368 for PROCESSOR_ZNVER1.
369 (enum processor_model): Add M_AMDFAM17H_znver1.
370 (struct arch_names_table): Likewise.
371 * doc/extend.texi: ADD znver1.
373 2015-10-30 Richard Biener <rguenther@suse.de>
375 * gimple-fold.c (fold_gimple_assign): Do not dispatch to
376 fold () on single RHSs. Allow CONSTRUCTORS with trailing
377 zeros to be folded to VECTOR_CSTs.
378 * tree.c (build_vector_from_ctor): Handle VECTOR_CST elements.
379 * fold-const.c (fold): Use build_vector_from_ctor.
381 2015-10-30 Evandro Menezes <e.menezes@samsung.com>
383 * config/aarch64/aarch64.md (*movhf_aarch64): Change the type of
384 "mov %0.h[0], %1.h[0] to "neon_move".
385 (*movtf_aarch64): Change the type of "fmov %s0, wzr" to "f_mcr".
386 (*cmov<mode>_insn): Change the types of "mov %<w>0, {-1,1}" to
388 (*cmovsi_insn_uxtw): Likewise.
390 2015-10-30 Tom de Vries <tom@codesourcery.com>
392 * tree-ssa-structalias.c (ipa_pta_execute): Declare variable from as
393 unsigned, and initialize, and use initial value instead of hardcoded
394 constant. Add generic constraints dumping section. Don't dump global
395 initializers constraints dumping section if empty. Don't update
396 variable from if unused.
398 2015-10-29 Mikhail Maltsev <maltsevm@gmail.com>
400 * config/alpha/alpha.c (alpha_function_arg): Use gcc_checking_assert,
401 flag_checking and/or CHECKING_P to eliminate conditional compilation
403 * config/arm/arm.c (arm_unwind_emit_sequence): Likewise.
404 * config/bfin/bfin.c (hwloop_optimize): Likewise.
405 * config/i386/i386.c (ix86_print_operand_address): Likewise.
406 (output_387_binary_op): Likewise.
407 * config/ia64/ia64.c (ia64_sched_init, bundling): Likewise.
408 * config/m68k/m68k.c (m68k_sched_md_init_global): Likewise.
409 * config/rs6000/rs6000.c (htm_expand_builtin, rs6000_emit_prologue):
411 * config/rs6000/rs6000.h: Likewise.
412 * config/visium/visium.c (visium_setup_incoming_varargs): Likewise.
414 2015-10-29 Kaz Kojima <kkojima@gcc.gnu.org>
416 * config/sh/sh.opt (mfdpic): Add missing period.
418 2015-08-29 Anatoly Sokolov <aesok@post.ru>
420 * config/mcore/mcore.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
421 BASE_REGISTER_RTX_P, INDEX_REGISTER_RTX_P,
422 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
423 * config/mcore/mcore.c (mcore_reg_ok_for_base_p,
424 mcore_base_register_rtx_p, mcore_legitimate_index_p,
425 mcore_legitimate_address_p): New functions.
426 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
428 2015-10-29 Jeff Law <law@redhat.com>
430 * tree-ssa-scopedtables.h (const_and_copies): Remove invalidate
432 * tree-ssa-scopedtables.h (const_and_copies::invalidate): Remove.
433 * tree-ssa-threadedge.c
434 (record_temporary_equivalences_from_stmts_at_dest): Remove
435 backedge_seen argument and associated code which invalidated
436 equivalences based on the value of that argument.
437 (thread_through_normal_block): Corresponding changes.
439 2015-10-29 Segher Boessenkool <segher@kernel.crashing.org>
441 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Move this
442 function earlier in the file.
443 (first_reg_to_save): Use rs6000_reg_live_or_pic_offset_p instead of
446 2015-10-29 Segher Boessenkool <segher@kernel.crashing.org>
448 * lra-constraints.c (process_address_1): Handle (mem:BLK (scratch))
451 2015-10-29 Richard Henderson <rth@redhat.com>
455 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
456 sse check to the exact conditions of PR 67609.
458 2015-10-29 Michael Meissner <meissner@linux.vnet.ibm.com>
460 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Split libfunc
461 setup into 3 functions: init_float128_ibm, init_float128_ieee, and
462 rs6000_init_libfuncs. If -mfloat128, add IFmode functions for all
463 of the traditional names that TFmode uses for handling IEEE
464 extended double. If -mfloat128, add KFmode functions for all of
465 the emulation functions. If -mabi=ieeelongdouble and -mfloat128,
466 make TFmode use the same emulation functions as KFmode.
467 (init_float128_ibm): Likewise.
468 (init_float128_ieee): Likewise.
469 (rs6000_generate_compare): For IEEE 128-bit floating point
470 comparisons, call the unordered comparison function instead of the
471 ordered comparison function.
472 (rs6000_expand_float128_convert): Deal with operands that are
473 memory operands. Restructure the code to use a switch statement on
474 the mode. Add support for TFmode defaulting to either IBM extended
475 double or IEEE 128-bit floating point. If the underlying types are
476 the same, use a move instead of a conversion function.
477 (TARGET_C_MODE_FOR_SUFFIX): Define 'q' and 'Q' as the suffix to
478 use for IEEE 128-bit floating point constants with -mfloat128.
479 (rs6000_c_mode_for_suffix): Likewise.
480 (TARGET_INVALID_BINARY_OP): Do not allow inter-mixing of IEEE
481 128-bit floating point with IBM extended double floating point.
482 (rs6000_invalid_binary_op): Likewise.
483 (rs6000_gen_le_vsx_permute): On little endian systems generate a
484 ROTATE insn instead of VEC_SELECT for IEEE 128-bit floating point
485 types that can go in vector registers.
486 (chain_contains_only_swaps): Properly swap IEEE 128-bit floating
487 point types that can go in vector registers on little endian
489 (mark_swaps_for_removal): Likewise.
490 (rs6000_analyze_swaps): Likewise.
491 (rs6000_mangle_type): Use U10__float128 for IEEE 128-bit floating point.
493 * config/rs6000/rs6000.md (FLOAT128_SFDFTF): Delete iterator,
494 rework IEEE 128-bit floating point insns to deal with TFmode being
495 either IBM extended double or IEEE 128-bit floating point.
497 (IBM128): Update iterator to add condition that the mode is IBM
499 (IEEE128): New iterator for IEEE 128-bit floating point.
500 (TFIFKF): Rename TFIFKF iterator to FLOAT128.
501 (FLOAT128): Likewise.
502 (signbit<mode>2): FLOAT128_IBM_P condition test moved into IBM128
504 (neg<mode>2): Replace TFIFKF iterator with FLOAT128. Add support
505 for TFmode being IEEE 128-bit floating point. Use IEEE128 iterator
506 instead of hard coding TFmode or KFmode.
507 (negtf2_internal): Likewise.
508 (neg<mode>2_internal): Likewise.
509 (abs<mode>2): Likewise.
510 (abstf2_internal): Likewise.
511 (abs<mode>2_internal): Likewise.
512 (ieee_128bit_neg<mode>2): Likewise.
513 (ieee_128bit_neg<mode>2_internal): Likewise.
514 (ieee_128bit_abs<mode>2): Likewise.
515 (ieee_128bit_abs<mode>2_internal): Likewise.
516 (ieee_128bit_nabs<mode>2): Likewise.
517 (ieee_128bit_nabs<mode>2_internal): Likewise.
518 (extendiftf2): Add explicit conversions between 128-bit floating
519 point types. Drop the old conversions that had become unwieldy.
520 (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
521 (extendifkf2): Likewise.
522 (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
523 (extendtfkf2): Likewise.
524 (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
525 (trunciftf2): Likewise.
526 (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
527 (truncifkf2): Likewise.
528 (float<SDI:mode><IFKF:mode>2): Likewise.
529 (trunckftf2): Likewise.
530 (floatuns<SDI:mode><IFKF:mode>2): Likewise.
531 (trunctfif2): Likewise.
532 (FP iterator): Allow TFmode to be IEEE 128-bit floating point.
533 (extenddftf2): Rework 128-bit floating point conversions to
534 properly handle -mabi=ieeelongdouble. Merge IFmode, TFmode, and
535 KFmode expanders into one function.
536 (extenddf<mode>2): Likewise.
537 (extenddftf2_fprs): Likewise.
538 (extenddf<mode>2_fprs): Likewise.
539 (extenddftf2_vsx): Likewise.
540 (extenddf<mode>2_vsx): Likewise.
541 (extendsftf2): Likewise.
542 (extendsf<mode>2): Likewise.
543 (trunctfdf2): Likewise.
544 (trunc<mode>df2): Likewise.
545 (trunctfdf2_internal1): Likewise.
546 (trunc<mode>df2_internal1): Likewise.
547 (trunctfdf2_internal2): Likewise.
548 (trunc<mode>df2_internal2): Likewise.
549 (trunctfsf2): Likewise.
550 (trunc<mode>sf2): Likewise.
551 (trunctfsf2_fprs): Likewise.
552 (trunc<mode>sf2_fprs): Likewise.
553 (floatsit2f): Likewise.
554 (floatsi<mode>2): Likewise.
555 (fix_trunc_helper): Likewise.
556 (fix_trunc_helper<mode>): Likewise.
557 (fix_trunctfsi2): Likewise.
558 (fix_trunc<mode>si2): Likewise.
559 (fix_trunctfsi2_fprs): Likewise.
560 (fix_trunc<mode>si2_fprs): Likewise.
561 (fix_trunctfsi2_internal): Likewise.
562 (fix_trunc<mode>si2_internal): Likewise.
563 (fix_trunctfdi2): Likewise.
564 (fix_trunc<mode>di2): Likewise.
565 (fixuns_trunctf<mode>2): Likewise.
566 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
567 (floatditf2): Likewise.
568 (floatdi<mode>2): Likewise.
569 (floatuns<mode>tf2): Likewise.
570 (floatuns<SDI:mode><IEEE128:mode>): Likewise.
571 (cmptf_internal1): Use a mode iterator to add support for both
572 types (IFmode, TFmode) that support IBM extended double.
573 (cmp<mode>_internal1): Likewise.
574 (cmptf_internal2): Likewise.
575 (cmp<mode>_internal2): Likewise.
577 * doc/extend.texi (Floating Types): Document __ibm128 and
578 __float128 on PowerPC.
580 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
581 -mfloat128 and -mno-float128.
583 2015-10-29 Michael Meissner <meissner@linux.vnet.ibm.com>
585 * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Add IEEE 128-bit
586 floating point modes that can go in vector registers.
587 (MODES_TIEABLE_P): Move tests for vector modes before tests for
588 scalar floating point, so that IEEE 128-bit floating point that
589 can go in vector registers bind with vectors and not FP.
590 (struct rs6000_args): Add libcall field.
592 * config/rs6000/rs6000.opt (-mfloat128-*): Delete -mfloat128-none
593 and -mfloat128-software switches. Replace them with a binary
595 (-mfloat128): Likewise.
597 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
598 128-bit floating point types in GPRs, even if the appropriate
599 option enabling the type was not used.
600 (rs6000_debug_reg_global): Remove -mfloat128-{software,none}
602 (rs6000_setup_reg_addr_masks): Do not allow pre-increment and
603 pre-decrement on IEEE 128-bit floating point values.
604 (rs6000_init_hard_regno_mode_ok): Change test for whether TFmode
605 is IEEE 128-bit floating point.
606 (rs6000_init_hard_regno_mode_ok): Add reload handlers for IEEE
607 128-bit floating point types that can go in vector registers.
608 (rs6000_option_override_internal): Change -mfloat128-none and
609 -mfloat128-software to -mfloat128, and move code to be near other
611 (rs6000_option_override_internal): Disable -mfloat128 if we don't
612 have the Altivec ABI.
613 (rs6000_init_builtins): Don't make TFmode use either IFmode or
614 KFmode floating point nodes. Instead, have three separate nodes.
615 (rs6000_scalar_mode_supported_p): Add support for IFmode to allow
616 eventually moving the long double default to IEEE 128-bit floating
618 (rs6000_opt_masks): Add -mfloat128.
619 (struct rs6000_opt_var): Fix typo in comment.
620 (init_cumulative_args): Initialize libcall field in
622 (rs6000_function_arg): Treat library functions as if they had
623 prototypes to prevent IEEE 128-bit support functions from passing
624 arguments in both GPRs and vector registers.
625 (rs6000_arg_partial_bytes): Likewise.
627 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add -mfloat128 as
628 an option that can be turned on via -mcpu=<xxx>.
630 * config/rs6000/rs6000-opts.h (enum float128_type_t): Delete, no
633 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
634 __FLOAT128__ if -mfloat128. Define __LONG_DOUBLE_IEEE128__ if long
635 double is IEEE 128-bit. Define __LONG_DOUBLE_IBM128__ if long
636 double is IBM extended double.
638 * config/rs6000/predicates.md (reg_or_indexed_operand): Allow
641 2015-10-29 Mikhail Maltsev <maltsevm@gmail.com>
643 * genautomata.c: Use CHECKING_P instead of ENABLE_CHECKING.
644 * genconditions.c: Define CHECKING_P in the generated code.
645 * genextract.c: Use flag_checking in insn_extract.
646 * gengtype.c (main): Remove conditional compilation.
647 * gengtype.h: Likewise.
649 2015-10-29 Jeff Law <law@redhat.com>
651 PR tree-optimization/67892
652 * tree-ssa-threadedge.c (simplify_controL_stmt_condition): Fix typo
654 (thread_through_normal_block): If we have seen a backedge, then
655 do nothing. No longer call find_jump_threads_backwards here.
656 (thread_across_edge): Use find_jump_threads_backwards to find
657 jump threads if the old style threader was not successful.
658 * tree-ssa-threadbackward.c (get_gimple_control_stmt): Use
659 gsi_last_nondebug_bb. Return NULL if the block does not end
660 with a control statement.
661 (find_jump_threads_backwards): Setup code moved here from
662 tree-ssa-threadedge.c::thread_through_normal_block. Accept
663 single edge argument instead of name & block.
664 * tree-ssa-threadbackward.h (find_jump_threads_backwards): Update
667 2015-10-29 Tom de Vries <tom@codesourcery.com>
669 * fold-const.c (fold_unary_loc): Remove folding inhibition for restrict
672 2015-10-29 Nathan Sidwell <nathan@codesourcery.com>
674 * omp-low.c (lower_omp_target): Remove unreachable code & merge
677 2015-10-29 Marc Glisse <marc.glisse@inria.fr>
679 * match.pd (X-(X/Y)*Y): Properly handle conversions and commutativity.
681 2015-10-29 Richard Sandiford <richard.sandiford@arm.com>
683 * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
684 guard_bb0 and use guard_bb throughout.
686 2015-10-29 Richard Sandiford <richard.sandiford@arm.com>
688 * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
691 2015-10-29 Richard Biener <rguenther@suse.de>
694 * fold-const.c (extract_muldiv_1): Avoid introducing undefined
697 2015-10-29 Andrew MacLeod <amacleod@redhat.com>
699 * alias.c: Reorder #include statements and remove duplicates.
701 * attribs.c: Likewise.
702 * auto-inc-dec.c: Likewise.
703 * auto-profile.c: Likewise.
704 * bb-reorder.c: Likewise.
705 * bt-load.c: Likewise.
706 * builtins.c: Likewise.
707 * caller-save.c: Likewise.
711 * cfganal.c: Likewise.
712 * cfgbuild.c: Likewise.
713 * cfgcleanup.c: Likewise.
714 * cfgexpand.c: Likewise.
715 * cfghooks.c: Likewise.
716 * cfgloop.c: Likewise.
717 * cfgloopanal.c: Likewise.
718 * cfgloopmanip.c: Likewise.
719 * cfgrtl.c: Likewise.
720 * cgraph.c: Likewise.
721 * cgraphbuild.c: Likewise.
722 * cgraphclones.c: Likewise.
723 * cgraphunit.c: Likewise.
724 * cilk-common.c: Likewise.
725 * combine-stack-adj.c: Likewise.
726 * combine.c: Likewise.
727 * compare-elim.c: Likewise.
728 * convert.c: Likewise.
729 * coverage.c: Likewise.
730 * cppbuiltin.c: Likewise.
733 * cselib.c: Likewise.
734 * data-streamer-in.c: Likewise.
735 * data-streamer-out.c: Likewise.
736 * data-streamer.c: Likewise.
737 * dbxout.c: Likewise.
741 * df-core.c: Likewise.
742 * df-problems.c: Likewise.
743 * df-scan.c: Likewise.
745 * dojump.c: Likewise.
746 * dominance.c: Likewise.
747 * double-int.c: Likewise.
749 * dumpfile.c: Likewise.
750 * dwarf2asm.c: Likewise.
751 * dwarf2cfi.c: Likewise.
752 * dwarf2out.c: Likewise.
753 * emit-rtl.c: Likewise.
754 * except.c: Likewise.
755 * explow.c: Likewise.
756 * expmed.c: Likewise.
759 * fixed-value.c: Likewise.
760 * fold-const.c: Likewise.
761 * function.c: Likewise.
762 * fwprop.c: Likewise.
764 * generic-match-head.c: Likewise.
765 * ggc-common.c: Likewise.
766 * gimple-builder.c: Likewise.
767 * gimple-expr.c: Likewise.
768 * gimple-fold.c: Likewise.
769 * gimple-iterator.c: Likewise.
770 * gimple-low.c: Likewise.
771 * gimple-match-head.c: Likewise.
772 * gimple-pretty-print.c: Likewise.
773 * gimple-ssa-isolate-paths.c: Likewise.
774 * gimple-ssa-strength-reduction.c: Likewise.
775 * gimple-streamer-in.c: Likewise.
776 * gimple-streamer-out.c: Likewise.
777 * gimple-walk.c: Likewise.
778 * gimple.c: Likewise.
779 * gimplify-me.c: Likewise.
780 * gimplify.c: Likewise.
781 * godump.c: Likewise.
783 * graphite-poly.c: Likewise.
784 * haifa-sched.c: Likewise.
785 * hw-doloop.c: Likewise.
787 * incpath.c: Likewise.
788 * init-regs.c: Likewise.
789 * internal-fn.c: Likewise.
790 * ipa-chkp.c: Likewise.
791 * ipa-comdats.c: Likewise.
792 * ipa-cp.c: Likewise.
793 * ipa-devirt.c: Likewise.
794 * ipa-icf-gimple.c: Likewise.
795 * ipa-icf.c: Likewise.
796 * ipa-inline-analysis.c: Likewise.
797 * ipa-inline-transform.c: Likewise.
798 * ipa-inline.c: Likewise.
799 * ipa-polymorphic-call.c: Likewise.
800 * ipa-profile.c: Likewise.
801 * ipa-prop.c: Likewise.
802 * ipa-pure-const.c: Likewise.
803 * ipa-ref.c: Likewise.
804 * ipa-reference.c: Likewise.
805 * ipa-split.c: Likewise.
806 * ipa-utils.c: Likewise.
807 * ipa-visibility.c: Likewise.
809 * ira-build.c: Likewise.
810 * ira-color.c: Likewise.
811 * ira-conflicts.c: Likewise.
812 * ira-costs.c: Likewise.
813 * ira-emit.c: Likewise.
814 * ira-lives.c: Likewise.
817 * langhooks.c: Likewise.
820 * loop-doloop.c: Likewise.
821 * loop-init.c: Likewise.
822 * loop-invariant.c: Likewise.
823 * loop-iv.c: Likewise.
824 * loop-unroll.c: Likewise.
825 * lower-subreg.c: Likewise.
826 * lra-assigns.c: Likewise.
827 * lra-coalesce.c: Likewise.
828 * lra-constraints.c: Likewise.
829 * lra-eliminations.c: Likewise.
830 * lra-lives.c: Likewise.
831 * lra-remat.c: Likewise.
832 * lra-spills.c: Likewise.
834 * lto-cgraph.c: Likewise.
835 * lto-compress.c: Likewise.
836 * lto-opts.c: Likewise.
837 * lto-section-in.c: Likewise.
838 * lto-section-out.c: Likewise.
839 * lto-streamer-in.c: Likewise.
840 * lto-streamer-out.c: Likewise.
841 * lto-streamer.c: Likewise.
842 * mode-switching.c: Likewise.
843 * modulo-sched.c: Likewise.
844 * omp-low.c: Likewise.
845 * optabs.c: Likewise.
846 * opts-global.c: Likewise.
847 * passes.c: Likewise.
848 * plugin.c: Likewise.
849 * postreload-gcse.c: Likewise.
850 * postreload.c: Likewise.
851 * predict.c: Likewise.
852 * print-tree.c: Likewise.
853 * profile.c: Likewise.
855 * realmpfr.c: Likewise.
858 * reg-stack.c: Likewise.
859 * regcprop.c: Likewise.
860 * reginfo.c: Likewise.
861 * regrename.c: Likewise.
862 * regstat.c: Likewise.
863 * reload.c: Likewise.
864 * reload1.c: Likewise.
866 * resource.c: Likewise.
867 * rtl-chkp.c: Likewise.
868 * rtl-error.c: Likewise.
869 * rtlanal.c: Likewise.
870 * rtlhooks.c: Likewise.
871 * sanopt.c: Likewise.
872 * sched-deps.c: Likewise.
873 * sched-ebb.c: Likewise.
874 * sched-rgn.c: Likewise.
876 * shrink-wrap.c: Likewise.
877 * simplify-rtx.c: Likewise.
878 * stack-ptr-mod.c: Likewise.
879 * statistics.c: Likewise.
881 * stor-layout.c: Likewise.
882 * store-motion.c: Likewise.
883 * stringpool.c: Likewise.
884 * symtab.c: Likewise.
885 * target-globals.c: Likewise.
886 * targhooks.c: Likewise.
887 * toplev.c: Likewise.
888 * tracer.c: Likewise.
889 * trans-mem.c: Likewise.
890 * tree-affine.c: Likewise.
891 * tree-call-cdce.c: Likewise.
892 * tree-cfg.c: Likewise.
893 * tree-cfgcleanup.c: Likewise.
894 * tree-chkp-opt.c: Likewise.
895 * tree-chkp.c: Likewise.
896 * tree-chrec.c: Likewise.
897 * tree-complex.c: Likewise.
898 * tree-data-ref.c: Likewise.
899 * tree-dfa.c: Likewise.
900 * tree-diagnostic.c: Likewise.
901 * tree-dump.c: Likewise.
902 * tree-eh.c: Likewise.
903 * tree-emutls.c: Likewise.
904 * tree-if-conv.c: Likewise.
905 * tree-inline.c: Likewise.
906 * tree-into-ssa.c: Likewise.
907 * tree-iterator.c: Likewise.
908 * tree-loop-distribution.c: Likewise.
909 * tree-nested.c: Likewise.
910 * tree-nrv.c: Likewise.
911 * tree-object-size.c: Likewise.
912 * tree-outof-ssa.c: Likewise.
913 * tree-parloops.c: Likewise.
914 * tree-phinodes.c: Likewise.
915 * tree-predcom.c: Likewise.
916 * tree-pretty-print.c: Likewise.
917 * tree-profile.c: Likewise.
918 * tree-scalar-evolution.c: Likewise.
919 * tree-sra.c: Likewise.
920 * tree-ssa-address.c: Likewise.
921 * tree-ssa-alias.c: Likewise.
922 * tree-ssa-ccp.c: Likewise.
923 * tree-ssa-coalesce.c: Likewise.
924 * tree-ssa-copy.c: Likewise.
925 * tree-ssa-dce.c: Likewise.
926 * tree-ssa-dom.c: Likewise.
927 * tree-ssa-dse.c: Likewise.
928 * tree-ssa-forwprop.c: Likewise.
929 * tree-ssa-ifcombine.c: Likewise.
930 * tree-ssa-live.c: Likewise.
931 * tree-ssa-loop-ch.c: Likewise.
932 * tree-ssa-loop-im.c: Likewise.
933 * tree-ssa-loop-ivcanon.c: Likewise.
934 * tree-ssa-loop-ivopts.c: Likewise.
935 * tree-ssa-loop-manip.c: Likewise.
936 * tree-ssa-loop-niter.c: Likewise.
937 * tree-ssa-loop-prefetch.c: Likewise.
938 * tree-ssa-loop-unswitch.c: Likewise.
939 * tree-ssa-loop.c: Likewise.
940 * tree-ssa-math-opts.c: Likewise.
941 * tree-ssa-operands.c: Likewise.
942 * tree-ssa-phiopt.c: Likewise.
943 * tree-ssa-phiprop.c: Likewise.
944 * tree-ssa-pre.c: Likewise.
945 * tree-ssa-propagate.c: Likewise.
946 * tree-ssa-reassoc.c: Likewise.
947 * tree-ssa-sccvn.c: Likewise.
948 * tree-ssa-scopedtables.c: Likewise.
949 * tree-ssa-sink.c: Likewise.
950 * tree-ssa-strlen.c: Likewise.
951 * tree-ssa-structalias.c: Likewise.
952 * tree-ssa-tail-merge.c: Likewise.
953 * tree-ssa-ter.c: Likewise.
954 * tree-ssa-threadedge.c: Likewise.
955 * tree-ssa-threadupdate.c: Likewise.
956 * tree-ssa-uncprop.c: Likewise.
957 * tree-ssa-uninit.c: Likewise.
958 * tree-ssa.c: Likewise.
959 * tree-ssanames.c: Likewise.
960 * tree-stdarg.c: Likewise.
961 * tree-streamer-in.c: Likewise.
962 * tree-streamer-out.c: Likewise.
963 * tree-streamer.c: Likewise.
964 * tree-switch-conversion.c: Likewise.
965 * tree-tailcall.c: Likewise.
966 * tree-vect-data-refs.c: Likewise.
967 * tree-vect-generic.c: Likewise.
968 * tree-vect-loop-manip.c: Likewise.
969 * tree-vect-loop.c: Likewise.
970 * tree-vect-patterns.c: Likewise.
971 * tree-vect-slp.c: Likewise.
972 * tree-vect-stmts.c: Likewise.
973 * tree-vectorizer.c: Likewise.
974 * tree-vrp.c: Likewise.
978 * value-prof.c: Likewise.
979 * var-tracking.c: Likewise.
980 * varasm.c: Likewise.
981 * varpool.c: Likewise.
982 * vtable-verify.c: Likewise.
984 * wide-int-print.cc: Likewise.
985 * wide-int.cc: Likewise.
986 * xcoffout.c: Likewise.
988 2015-10-29 H.J. Lu <hongjiu.lu@intel.com>
990 * Makefile.in (NO_PIE_CFLAGS): New.
991 (NO_PIE_FLAG): Likewise.
992 (NO_PIE_CFLAGS_FOR_BUILD): Likewise.
993 (NO_PIE_FLAG_FOR_BUILD): Likewise.
994 (BUILD_NO_PIE_CFLAGS): Likewise.
995 (BUILD_NO_PIE_FLAG): Likewise.
996 (COMPILER): Replace @NO_PIE_CFLAGS@ with $(NO_PIE_CFLAGS).
997 (LINKER): Replace @NO_PIE_FLAG@ with $(NO_PIE_FLAG).
998 (BUILD_CFLAGS): Replace @NO_PIE_CFLAGS@ with
999 $(BUILD_NO_PIE_CFLAGS).
1000 (BUILD_CXXFLAGS): Likewise.
1001 (BUILD_LDFLAGS ): Replace @NO_PIE_FLAG@ with
1002 $(BUILD_NO_PIE_FLAG).
1003 * configure.ac (BUILD_NO_PIE_CFLAGS): New. AC_SUBST.
1004 (BUILD_NO_PIE_FLAG): Likewise.
1005 (NO_PIE_CFLAGS_FOR_BUILD): Likewise.
1006 (NO_PIE_FLAG_FOR_BUILD): Likewise.
1007 * configure: Regenerated.
1009 2015-10-29 Richard Biener <rguenther@suse.de>
1012 * fold-const.c (fold_cond_expr_with_comparison): Do not fold
1013 unsigned conditonal negation to ABS_EXPR.
1015 2015-10-29 Richard Biener <rguenther@suse.de>
1017 * gimple-match-head.c (gimple_simplify): Remove premature checking
1018 of builtin_decl_implicit of function calls we simplify.
1020 2015-10-29 Bin Cheng <bin.cheng@arm.com>
1022 * tree-ssa-loop-ivopts.c (split_address_cost): Check depends_on.
1023 (get_computation_cost_at): Ditto.
1024 (determine_use_iv_cost_address): Pass NULL for arguments depends_on
1027 2015-10-28 Tom de Vries <tom@codesourcery.com>
1029 * tree-ssa-structalias.c (intra_create_variable_infos): Remove
1032 2015-10-28 Jason Merrill <jason@redhat.com>
1034 * Makefile.in (TAGS): Include libcpp and libiberty.
1036 2015-10-28 Nathan Sidwell <nathan@codesourcery.com>
1038 * omp-low.c (MASK_GANG, MASK_WORKER, MASK_VECTOR): Delete.
1039 (extract_omp_for_data): Remove OpenACC special handling of
1042 * config/nvptx/nvptx.c (nvptx_print_operand): Remove 'd' case.
1043 (struct parallel): Update comment.
1044 (nvptx_reorg): Likewise.
1045 (nvptx_neuter): Cleanup whitespace.
1047 2015-10-28 Richard Henderson <rth@redhat.com>
1049 * tree-eh.c (mark_reachable_handlers): Fix typo in assert.
1051 2015-10-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
1054 * config/avr/predicates.md (low_io_address_operand): Don't
1055 consider MODE when computing upper bound.
1056 (io_address_operand): Likewise.
1058 2015-10-28 Jan Hubicka <hubicka@ucw.cz>
1060 * fold-const.c (operand_equal_p): Do not verify that types are
1061 compatible for MEM_REFs.
1063 2015-10-28 Richard Biener <rguenther@suse.de>
1065 * gimple-match-head.c (gimple_simplify): Allow VECTOR_CSTs
1066 in simplifying VEC_COND_EXPR conditions.
1068 2015-10-28 Tom de Vries <tom@codesourcery.com>
1070 * tree-ssa-structalias.c (intra_create_variable_infos): Don't iterate
1071 into vi_next of a full_var.
1073 2015-10-28 Tom de Vries <tom@codesourcery.com>
1075 * tree-ssa-structalias.c (new_var_info, make_heapvar)
1076 (make_constraint_from_restrict, make_constraint_from_global_restrict)
1077 (create_function_info_for, create_variable_info_for_1)
1078 (create_variable_info_for): Add and handle add_id parameter.
1079 (get_call_vi, new_scalar_tmp_constraint_exp, handle_rhs_call)
1080 (init_base_vars): Add extra argument to calls to new_var_info.
1081 (get_vi_for_tree): Add extra argument to call to
1082 create_variable_info_for.
1083 (process_constraint, do_deref, process_all_all_constraints): Add extra
1084 argument to calls to new_scalar_tmp_constraint_exp.
1085 (handle_lhs_call, find_func_aliases_for_builtin_call): Add extra
1086 argument to calls to make_heapvar.
1087 (make_restrict_var_constraints): Add extra argument to call to
1088 make_constraint_from_global_restrict.
1089 (intra_create_variable_infos): Add extra argument to call to
1090 create_variable_info_for_1.
1091 (ipa_pta_execute): Add extra argument to call to
1092 create_function_info_for.
1094 2015-10-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1096 * config/aarch64/aarch64.md (call, call_value, sibcall): Handle noplt.
1097 (sibcall_value): Likewise.
1099 2015-10-28 Nathan Sidwell <nathan@codesourcery.com>
1101 * config/nvptx/nvptx.h (struct machine_function): Add
1103 * config/nvptx/nvptx-protos.h (nvptx_expand_oacc_fork,
1104 nvptx_expand_oacc_join): Declare.
1105 * config/nvptx/nvptx.md (UNSPEC_NTID, UNSPEC_TID): Delete.
1106 (UNSPEC_DIM_SIZE, UNSPEC_SHARED_DATA, UNSPEC_BIT_CONV,
1107 UNSPEC_SHUFFLE, UNSPEC_BR_UNIFIED): New.
1108 (UNSPECV_BARSYNC, UNSPECV_DIM_POS, UNSPECV_FORK, UNSPECV_FORKED,
1109 UNSPECV_JOINING, UNSPECV_JOIN): New.
1110 (BITS, BITD): New mode iterators.
1111 (br_true_uni, br_false_uni): New.
1112 (*oacc_ntid_insn, oacc_ntid, *oacc_tid_insn, oacc_tid): Delete.
1113 (oacc_dim_size, oacc_dim_pos): New.
1114 (nvptx_fork, nvptx_forked, nvptx_joining, nvptx_join): New.
1115 (oacc_fork, oacc_join): New.
1116 (nvptx_shuffle<mode>, unpack<mode>si2, packsi<mode>2): New.
1117 (worker_load<mode>, worker_store<mode>): New.
1118 (nvptx_barsync): New.
1119 * config/nvptx/nvptx.c: Include gimple.h & dumpfile.h.
1120 (SHUFFLE_UP, SHUFFLE_DOWN, SHUFFLE_BFLY, SHUFFLE_IDX): Define.
1121 (worker_bcast_hwm, worker_bcast_align, worker_bcast_name,
1122 worker_bcast_sym): New.
1123 (nvptx_option_override): Initialize worker broadcast buffer.
1124 (nvptx_emit_forking, nvptx_emit_joining): New.
1125 (nvptx_init_axis_predicate): New.
1126 (nvptx_declare_function_name): Init axis predicates.
1127 (nvptx_expand_call): Add fork/join markers around routine call.
1128 (nvptx_expand_oacc_fork, nvptx_expand_oacc_join): New.
1129 (nvptx_gen_unpack, nvptx_gen_pack, nvptx_gen_shuffle): New.
1130 (nvptx_gen_vcast): New.
1131 (struct wcast_data_t): New.
1132 (enum propagate_mask): New.
1133 (nvptx_gen_wcast): New.
1134 (nvptx_print_operand): Add 'S' case.
1135 (struct parallel): New.
1136 (parallel::parallel, parallel::~parallel): New.
1137 (bb_insn_map_t, insn_bb_t, insn_bb_vec_t): New typedefs.
1138 (nvptx_split_blocks, nvptx_discover_pre, nvptx_dump_pars,
1139 nvptx_find_par, nvptx_discover_pars): New.
1140 (nvptx_propagate): New.
1141 (vprop_gen, nvptx_vpropagate): New.
1142 (wprop_gen, nvptx_wpropagate): New.
1144 (nvptx_single, nvptx_skip_par): New.
1145 (nvptx_process_pars, nvptx_neuter_pars): New.
1146 (ntptx_reorg): Split blocks, generate parallel structure, apply
1148 (nvptx_cannot_copy_insn_p): New.
1149 (nvptx_file_end): Emit worker broadcast decl.
1150 (nvptx_goacc_fork_join): New.
1151 (TARGET_CANNOT_COPY_INSN_P): Override.
1152 (TARGET_GOACC_FORK_JOIN): Override.
1154 2015-10-28 Richard Biener <rguenther@suse.de>
1156 * fold-const.c (negate_expr_p): Adjust the division case to
1157 properly avoid introducing undefined overflow.
1158 (fold_negate_expr): Likewise.
1160 2015-10-28 Richard Biener <rguenther@suse.de>
1162 PR tree-optimization/65962
1163 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1164 Avoid creating loop carried dependences also for outer loops
1165 of the loop a use to replace is in.
1167 2015-10-28 Richard Biener <rguenther@suse.de>
1169 * common.opt (fchecking): New flag controlling flag_checking.
1170 * passes.c (verify_curr_properties): Drop DEBUG_FUNCTION.
1171 * timevar.c (timer::print): Adjust output.
1172 * doc/invoke.texi (fchecking): Document.
1174 2015-10-28 Richard Biener <rguenther@suse.de>
1177 * fold-const.c (negate_expr_p): We cannot negate plus or minus
1178 if overflow is not wrapping. Likewise multiplication unless
1179 one operand is constant and not power of two.
1180 (fold_negate_expr): Adjust accordingly.
1182 2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
1184 * omp-low.c (struct omp_context): Remove gwv_below, gwv_this
1186 (is_oacc_parallel, is_oacc_kernels): New.
1187 (enclosing_target_ctx): May return NULL.
1188 (ctx_in_oacc_kernels_region): New.
1189 (check_oacc_kernel_gwv): New.
1190 (oacc_loop_or_target_p): Delete.
1191 (scan_omp_for): Don't calculate gwv mask. Check parallel clause
1192 operands. Strip reductions fro kernels.
1193 (scan_omp_target): Don't calculate gwv mask.
1194 (lower_oacc_head_mark, lower_oacc_loop_marker,
1195 lower_oacc_head_tail): New.
1196 (struct oacc_collapse): New.
1197 (expand_oacc_collapse_init, expand_oacc_collapse_vars): New.
1198 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
1199 Remove OpenACC handling.
1200 (expand_oacc_for): New.
1201 (expand_omp_for): Call expand_oacc_for.
1202 (lower_omp_for): Call lower_oacc_head_tail.
1204 2015-10-27 Mikhail Maltsev <maltsevm@gmail.com>
1206 * attribs.c (check_attribute_tables): New function, broken out from...
1207 (init_attributes): Use it.
1208 * cfgcleanup.c (try_optimize_cfg): Use flag_checking, CHECKING_P
1209 gcc_checking_assert and checking_* functions to eliminate
1210 ENABLE_CHECKING conditionals.
1211 * cfgexpand.c (expand_goto, expand_debug_expr): Likewise.
1212 (pass_expand::execute): Likewise.
1213 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
1214 * cgraphunit.c (mark_functions_to_output): Likewise.
1215 (cgraph_node::expand_thunk): Likewise.
1216 (symbol_table::compile): Likewise.
1217 * ddg.c (add_cross_iteration_register_deps): Likewise.
1218 (create_ddg_all_sccs): Likewise.
1219 * df-core.c (df_finish_pass, df_analyze): Likewise.
1220 * diagnostic-core.h: Likewise.
1221 * diagnostic.c (diagnostic_report_diagnostic): Likewise.
1222 * dominance.c (calculate_dominance_info): Likewise.
1223 * dwarf2out.c (add_AT_die_ref): Likewise.
1224 (const_ok_for_output_1, mem_loc_descriptor): Likewise.
1225 (loc_list_from_tree, gen_lexical_block_die): Likewise.
1226 gen_type_die_with_usage, gen_type_die): Likewise.
1227 (dwarf2out_decl): Likewise.
1228 * emit-rtl.c (verify_rtx_sharing, reorder_insns_nobb): Likewise.
1229 * except.c (duplicate_eh_regions): Likewise.
1230 * fwprop.c (register_active_defs, update_df_init): Likewise.
1231 (fwprop_init, fwprop_done): Likewise.
1232 (update_uses): Likewise.
1233 * ggc-page.c (ggc_grow): Likewise.
1234 * gimplify.c (gimplify_body): Likewise.
1235 (gimplify_hasher::equal): Likewise.
1236 * graphite-isl-ast-to-gimple.c (graphite_verify): Likewise.
1237 * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form):
1239 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Likewise.
1240 (rewrite_cross_bb_scalar_deps_out_of_ssa): Likwise.
1241 * hash-table.h (::find_empty_slot_for_expand): Likewise.
1242 * ifcvt.c (if_convert): Likewise.
1243 * ipa-cp.c (ipcp_propagate_stage): Likewise.
1244 * ipa-devirt.c (type_in_anonymous_namespace_p): Likewise.
1245 (odr_type_p, odr_types_equivalent_p): Likewise.
1246 (add_type_duplicate, get_odr_type): Likewise.
1247 * ipa-icf.c (sem_item_optimizer::execute): Likewise.
1248 (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
1249 (sem_item_optimizer::verify_classes): Likewise.
1250 (sem_item_optimizer::traverse_congruence_split): Likewise.
1251 (sem_item_optimizer::checking_verify_classes): New.
1252 * ipa-icf.h (sem_item_optimizer::checking_verify_classes): Add new
1254 * cfgrtl.c (commit_edge_insertions): Likewise.
1255 (fixup_reorder_chain, cfg_layout_finalize): Likewise.
1256 (rtl_flow_call_edges_add): Likewise.
1257 * cgraph.c (symbol_table::create_edge): Likewise.
1258 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
1259 * cgraph.h (symtab_node): Likewise.
1260 (symtab_node::checking_verify_symtab_nodes): Define.
1261 (cgraph_node::checking_verify_cgraph_nodes): Define.
1262 * cfghooks.h (checking_verify_flow_info): Define.
1263 * cfgloop.h (checking_verify_loop_structure): Define.
1264 * dominance.h (checking_verify_dominators): Define.
1265 * et-forest.c: Fix comment.
1266 * ipa-inline-analysis.c (compute_inline_parameters): Use flag_checking,
1267 CHECKING_P gcc_checking_assert and checking_* functions to eliminate
1268 ENABLE_CHECKING conditionals.
1269 * ipa-inline-transform.c (save_inline_function_body): Likewise.
1270 * ipa-inline.c (inline_small_functions): Likewise.
1271 (early_inliner): Likewise.
1272 * ipa-inline.h (estimate_edge_growth): Likewise.
1273 * ipa-visibility.c (function_and_variable_visibility): Likewise.
1274 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
1275 (ipa_single_use): Likewise.
1276 * ira-int.h: Likewise.
1277 * ira.c (ira): Likewise.
1278 * loop-doloop.c (doloop_optimize_loops): Likewise.
1279 * loop-init.c (loop_optimizer_init, fix_loop_structure): Likewise.
1280 * loop-invariant.c (move_loop_invariants): Likewise.
1281 * lra-assigns.c (lra_assign): Likewise.
1282 * lra-constraints.c (lra_constraints): Likewise.
1283 * lra-eliminations.c (lra_eliminate): Likewise.
1284 * lra-int.h (struct lra_reg): Likewise.
1285 * lra-lives.c (check_pseudos_live_through_calls): Likewise.
1286 (lra_create_live_ranges_1): Likewise.
1287 * lra-remat.c (create_remat_bb_data): Likewise.
1288 * lra.c (lra_update_insn_recog_data, restore_scratches): Likewise.
1290 (check_rtl): Always define. Remove incorrect guard around
1291 extract_constrain_insn call.
1292 * lto-cgraph.c (input_cgraph_1: Use flag_checking,
1293 CHECKING_P gcc_checking_assert and checking_* functions to eliminate
1294 ENABLE_CHECKING conditionals.
1295 * lto-streamer-out.c (DFS::DFS): Likewise.
1296 (lto_output): Likewise.
1297 * lto-streamer.c (lto_streamer_init): Likewise.
1298 * omp-low.c (scan_omp_target, expand_omp_taskreg): Likewise.
1299 expand_omp_target, execute_expand_omp): Likewise.
1300 (lower_omp_target): Likewise.
1301 * passes.c (execute_function_todo): Likewise.
1302 (execute_todo, execute_one_pass): Likewise.
1303 (verify_curr_properties): Always define.
1304 * predict.c (tree_estimate_probability: Use flag_checking,
1305 CHECKING_P gcc_checking_assert and checking_* functions to eliminate
1306 ENABLE_CHECKING conditionals.
1307 (propagate_freq): Likewise.
1308 * pretty-print.c (pp_format): Likewise.
1309 * real.c (real_to_decimal_for_mode): Likewise.
1310 * recog.c (split_all_insns): Likewise.
1311 * regcprop.c (kill_value_one_regno): Likewise.
1312 (copy_value): Likewise.
1313 (validate_value_data): Define unconditionally.
1314 * reload.c: Fix comment.
1315 * timevar.c: Include options.h
1316 * tree-ssa.h (checking_verify_ssa): Define.
1317 * tree-ssa-loop-manip.h (checking_verify_loop_closed_ssa): Define.
1318 * sched-deps.c (CHECK): Remove unused macro.
1319 (add_or_update_dep_1, sd_add_dep: Use flag_checking, CHECKING_P
1320 gcc_checking_assert and checking_* functions to eliminate
1321 ENABLE_CHECKING conditionals.
1322 * sel-sched-ir.c (free_regset_pool, tidy_control_flow): Likewise.
1323 * sel-sched.c (struct moveop_static_params): Likewise.
1324 (find_best_reg_for_expr, move_cond_jump): Likewise.
1325 (move_op_orig_expr_not_found): Likewise.
1326 (code_motion_process_successors, move_op): Likewise.
1327 * ssa-iterators.h (first_readonly_imm_use): Likewise.
1328 (next_readonly_imm_use): Likewise.
1329 * store-motion.c (compute_store_table): Likewise.
1330 * symbol-summary.h (function_summary::function_summary): Likewise.
1331 * target.h (cumulative_args_t): Likewise.
1332 (get_cumulative_args, pack_cumulative_args): Likewise.
1333 * timevar.c: (timer::print): Likewise.
1334 * trans-mem.c (ipa_tm_execute): Likewise.
1335 * tree-cfg.c (move_stmt_op): Likewise.
1336 (move_sese_region_to_fn): Likewise.
1337 (gimple_flow_call_edges_add): Likewise.
1338 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
1340 * tree-eh.c (remove_unreachable_handlers): Likewise.
1341 * tree-if-conv.c (pass_if_conversion::execute): Likewise.
1342 * tree-inline.c (expand_call_inline, optimize_inline_calls): Likewise.
1343 * tree-into-ssa.c (update_ssa): Likewise.
1344 * tree-loop-distribution.c (pass_loop_distribution::execute): Likewise.
1345 * tree-outof-ssa.c (eliminate_useless_phis, rewrite_trees): Likewise.
1346 * tree-parloops.c (pass_parallelize_loops::execute): Likewise.
1347 * tree-predcom.c (suitable_component_p): Likewise.
1348 * tree-profile.c (gimple_gen_const_delta_profiler): Likewise.
1349 * tree-ssa-alias.c (refs_may_alias_p_1): Likewise.
1350 * tree-ssa-live.c (verify_live_on_entry): Likewise.
1351 * tree-ssa-live.h (register_ssa_partition): Likewise.
1352 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Likewise.
1353 * tree-ssa-loop-manip.c (add_exit_phi): Likewise.
1354 (tree_transform_and_unroll_loop): Likewise.
1355 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
1356 * tree-ssa-operands.c (get_expr_operands): Likewise.
1357 * tree-ssa-propagate.c (replace_exp_1): Likewise.
1358 * tree-ssa-structalias.c (rewrite_constraints): Likewise.
1359 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
1360 * tree-ssa-threadupdate.c (duplicate_thread_path): Likewise.
1361 * tree-ssanames.c (release_ssa_name_fn): Likewise.
1362 * tree-stdarg.c (expand_ifn_va_arg): Likewise.
1363 * tree-vect-loop-manip.c
1364 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
1365 (slpeel_checking_verify_cfg_after_peeling): Likewise.
1366 (vect_do_peeling_for_loop_bound): Likewise.
1367 (vect_do_peeling_for_alignment): Likewise.
1368 * tree-vrp.c (supports_overflow_infinity): Likewise.
1369 (set_value_range): Likewise.
1370 * tree.c (free_lang_data_in_cgraph): Likewise.
1371 * value-prof.c (gimple_remove_histogram_value): Likewise.
1372 (free_hist): Likewise.
1373 * var-tracking.c (canonicalize_values_star): Likewise.
1374 (compute_bb_dataflow, vt_find_locations, vt_emit_notes): Likewise.
1376 2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
1378 * internal-fn.def (IFN_GOACC_DIM_SIZE, IFN_GOACC_DIM_POS,
1379 IFN_GOACC_LOOP): New.
1380 * internal-fn.h (enum ifn_unique_kind): Add IFN_UNIQUE_OACC_FORK,
1381 IFN_UNIQUE_OACC_JOIN, IFN_UNIQUE_OACC_HEAD_MARK,
1382 IFN_UNIQUE_OACC_TAIL_MARK.
1383 (enum ifn_goacc_loop_kind): New.
1384 * internal-fn.c (expand_UNIQUE): Add IFN_UNIQUE_OACC_FORK,
1385 IFN_UNIQUE_OACC_JOIN cases.
1386 (expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS): New.
1387 (expand_GOACC_LOOP): New.
1388 * target-insns.def (oacc_dim_pos, oacc_dim_size): New.
1389 * omp-low.c: Include gimple-pretty-print.h.
1390 (struct oacc_loop): New.
1391 (enum oacc_loop_flags): New.
1392 (oacc_thread_numbers): New.
1393 (oacc_xform_loop): New.
1394 (new_oacc_loop_raw, new_oacc_loop_outer, new_oacc_loop,
1395 new_oacc_loop_routine, finish_oacc_loop, free_oacc_loop): New,
1396 (dump_oacc_loop_part, dump_oacc_loop, debug_oacc_loop): New,
1397 (oacc_loop_discover_walk, oacc_loop_sibling_nrevers,
1398 oacc_loop_discovery): New.
1399 (oacc_loop_xform_head_tail, oacc_loop_xform_loop,
1400 oacc_loop_process): New.
1401 (oacc_loop_fixed_partitions, oacc_loop_partition): New.
1402 (execute_oacc_device_lower): Discover & process loops. Process
1404 * target.def (goacc.fork_join): Change sense of hook, clarify
1406 * doc/tm.texi: Regenerated.
1408 2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
1410 * target-insns.def (oacc_fork, oacc_join): Define.
1411 * target.def (goacc.validate_dims): Adjust doc to avoid warning.
1412 (goacc.fork_join): New GOACC hook.
1413 * targhooks.h (default_goacc_fork_join): Declare.
1414 * omp-low.c (default_goacc_forkjoin): New.
1415 * doc/tm.texi.in (TARGET_GOACC_FORK_JOIN): Add.
1416 * doc/tm.texi: Regenerate.
1418 2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
1420 * omp-low.c (oacc_init_rediction_array): New.
1421 (oacc_initialize_reduction_data): Initialize array.
1423 2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
1425 * omp-low.c (pass_oacc_device_lower::execute): Ignore errors.
1427 2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
1429 * internal-fn.c (expand_UNIQUE): New.
1430 * internal-fn.h (enum ifn_unique_kind): New.
1431 * internal-fn.def (IFN_UNIQUE): New.
1432 * target-insns.def (unique): Define.
1433 * gimple.h (gimple_call_internal_unique_p): New.
1434 * gimple.c (gimple_call_same_target_p): Check internal fn
1436 * tracer.c (ignore_bb_p): Check for IFN_UNIQUE call.
1437 * tree-ssa-threadedge.c
1438 (record_temporary_equivalences_from_stmts): Likewise.
1439 * tree-cfg.c (gmple_call_initialize_ctrl_altering): Likewise.
1441 2015-10-27 Richard Henderson <rth@redhat.com>
1444 * config/i386/i386.c (ix86_cannot_change_mode_class): Disallow
1445 narrowing subregs on SSE and MMX registers.
1446 * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Clarify when subregs that
1447 appear to be sub-words of multi-register pseudos must be rejected.
1448 * doc/tm.texi: Regenerate.
1450 2015-10-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1453 * config/aarch64/aarch64.md (*movsi_aarch64): Check that
1454 operands[0] is a reg before taking its REGNO in split condition.
1455 (*movdi_aarch64): Likewise.
1457 2015-10-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1459 * config/aarch64/aarch64.c (aarch64_output_simd_mov_immediate):
1460 Handle floating point inner modes properly.
1462 2015-10-27 Alan Hayward <alan.hayward@arm.com>
1465 (vectorizable_live_operation): Change iterator.
1467 2015-10-27 Abderrazek Zaafrani <a.zaafrani@samsung.com>
1468 Aditya Kumar <aditya.k7@samsung.com>
1470 * graphite-optimize-isl.c (get_schedule_for_node_st): New callback
1471 function to schedule based on isl_schedule_node.
1472 (get_schedule_map_st): New schedule optimizer based on
1474 (scop_get_domains): New. Return the isl_union_set containing the
1475 domains of all the pbbs.
1476 (optimize_isl): Call the new function get_schedule_map_st for isl-0.15
1478 2015-10-27 H.J. Lu <hongjiu.lu@intel.com>
1481 * calls.c (prepare_call_address): Don't handle -fno-plt here.
1482 * config/i386/i386.c (ix86_expand_call): Generate indirect call
1483 via GOT for -fno-plt. Support indirect call via GOT for x32.
1484 * config/i386/predicates.md (sibcall_memory_operand): Allow
1487 2015-10-27 Richard Biener <rguenther@suse.de>
1489 PR tree-optimization/68104
1490 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
1491 strided access check ...
1492 (vect_compute_data_refs_alignment): ... here.
1494 2015-10-27 Daniel Jacobowitz <dan@codesourcery.com>
1495 Joseph Myers <joseph@codesourcery.com>
1496 Mark Shinwell <shinwell@codesourcery.com>
1497 Andrew Stubbs <ams@codesourcery.com>
1498 Rich Felker <dalias@libc.org>
1500 * config.gcc: Handle --enable-fdpic.
1501 * config/sh/constraints.md (Ccl): New constraint.
1502 * config/sh/linux.h (SUBTARGET_LINK_EMUL_SUFFIX): Handle -mfdpic.
1503 * config/sh/sh-c.c (sh_cpu_cpp_builtins): Add __FDPIC__ and
1505 * config/sh/sh-mem.cc (expand_block_move): Support FDPIC for calls to
1507 * config/sh/sh-protos.h (function_symbol_result): New struct.
1508 (function_symbol): Return function_symbol_result.
1509 (sh_get_fdpic_reg_initial_val, sh_load_function_descriptor): New
1511 * config/sh/sh.c (TARGET_ASM_INTEGER, sh_assemble_integer): Implement
1513 (TARGET_CANNOT_FORCE_CONST_MEM, sh_cannot_force_const_mem_p): Likewise.
1514 (sh_option_override): Force -fPIC if FDPIC is in effect.
1515 (sh_asm_output_addr_const_extra): Add UNSPEC_GOTFUNCDESC and
1516 UNSPEC_GOTOFFFUNCDESC cases.
1517 (prepare_move_operands): Use FDPIC initial GOT register for
1518 TLS-related GOT access; inhibit cross-section address offset constants
1520 (sh_assemble_integer): New function.
1521 (sh_cannot_copy_insn_p): Inhibit copying insns that are FDPIC
1522 PC-relative call sites.
1523 (expand_ashiftrt): Adapt invocation of function_symbol.
1524 (sh_expand_prologue): Inhibit PC-relative GOT address load for FDPIC.
1525 (nonpic_symbol_mentioned_p): Add cases for UNSPEC_GOTFUNCDESC and
1526 UNSPEC_GOTOFFFUNCDESC.
1527 (legitimize_pic_address): Resolve function symbols to function
1528 descriptors for FDPIC. Do not use GOT-relative addressing for local
1529 data that may be read-only on FDPIC.
1530 (sh_emit_storesi, sh_emit_storehi): New functions.
1531 (sh_trampoline_init): Generate FDPIC trampolines.
1532 (sh_function_ok_for_sibcall): Add TARGET_FDPIC check.
1533 (sh_expand_sym_label2reg): Don't assume sibcalls are local.
1534 (sh_output_mi_thunk): Generate FDPIC call.
1535 (function_symbol): Return function_symbol_result. For SFUNC_STATIC on
1536 FDPIC, generate call site labels to use PC-relative addressing rather
1537 than GOT-relative addressing.
1538 (sh_conditional_register_usage): Make PIC register fixed and call used
1539 when FDPIC is in effect.
1540 (sh_legitimate_constant_p): Impose FDPIC constant constraints.
1541 (sh_cannot_force_const_mem_p, sh_load_function_descriptor,
1542 sh_get_fdpic_reg_initial_val): New functions.
1543 * config/sh/sh.h (SUBTARGET_ASM_SPEC, SUBTARGET_LINK_EMUL_SUFFIX):
1545 (FDPIC_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
1546 PIC_OFFSET_TABLE_REG_CALL_CLOBBERED,
1547 SH_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macros.
1548 (DRIVER_SELF_SPECS): Add SUBTARGET_DRIVER_SELF_SPECS and
1550 (TRAMPOLINE_SIZE): Select trampoline size for FDPIC.
1551 (ASM_PREFERRED_EH_DATA_FORMAT): Add EH format constraints for FDPIC.
1552 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Handle FDPIC case.
1553 * config/sh/sh.md (UNSPEC_GOTFUNCDESC, UNSPEC_GOTOFFFUNCDESC): New
1555 (calli_fdpic, call_valuei_fdpic, sibcalli_fdpic, sibcalli_pcrel_fdpic,
1556 sibcall_pcrel_fdpic, sibcall_valuei_fdpic, sibcall_valuei_pcrel_fdpic,
1557 sibcall_value_pcrel_fdpic, sym2GOTFUNCDESC, symGOTFUNCDESC2reg,
1558 sym2GOTOFFFUNCDESC, symGOTOFFFUNCDESC2reg): New patterns.
1559 (udivsi3_i1, udivsi3_i4, udivsi3_i4_single, udivsi3,
1560 *divsi_inv_call_combine, divsi3_i4, divsi3_i4_single, divsi3, ashlsi3,
1561 ashlsi3_d_call, ashrsi3_n, lshrsi3, lshrsi3_d_call, calli, call_valuei,
1562 call, call_value, sibcalli, sibcalli_pcrel, sibcall_pcrel, sibcall,
1563 sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
1564 sibcall_value, GOTaddr2picreg, symGOT_load, symGOTOFF2reg,
1565 block_move_real, block_lump_real, block_move_real_i4,
1566 block_lump_real_i4): Add support for FDPIC calls.
1567 (mulsi3, ic_invalidate_line, initialize_trampoline, call_pop,
1568 call_value_pop): Adjust for new function_symbol signature.
1569 * config/sh/sh.opt (-mfdpic): New option.
1570 * doc/install.texi (Options specification): Document --enable-fdpic.
1571 * doc/invoke.texi (SH Options): Document -mfdpic.
1574 2015-10-27 Alan Lawrence <alan.lawrence@arm.com>
1576 PR tree-optimization/65963
1577 * tree-scalar-evolution.c (interpret_rhs_expr): Handle some LSHIFT_EXPRs
1578 as equivalent MULT_EXPRs.
1580 2015-10-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1583 * config/arm/arm.c (vfp3_const_double_for_bits): Rewrite.
1584 * config/arm/constraints.md (Dp): Update callsite.
1585 * config/arm/predicates.md (const_double_vcvt_power_of_two): Likewise.
1587 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1589 * builtins.c (fold_builtin_load_exponent): Rename to...
1590 (fold_const_builtin_load_exponent): ...this and only handle
1592 (fold_builtin_2): Update accordingly.
1593 * match.pd: Add rules previously handled by fold_builtin_load_exponent.
1595 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1597 * builtins.c (fold_builtin_logb): Rename to...
1598 (fold_const_builtin_logb): ...this and remove STRIP_NOPS call.
1599 (fold_builtin_significand): Rename to...
1600 (fold_const_builtin_significand): ...this and remove STRIP_NOPS call.
1601 (fold_builtin_1): Update accordingly.
1603 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1605 * builtins.c (fold_builtin_fmin_fmax): Delete.
1606 (fold_builtin_2): Handle constant fmin and fmax arguments here.
1607 * match.pd: Add rules previously handled by fold_builtin_fmin_fmax.
1609 2015-10-27 Evandro Menezes <e.menezes@samsung.com>
1611 * config/aarch64/aarch64-protos.h (cpu_addrcost_table): Split member
1612 for register extension into sign and zero register extension.
1613 * config/aarch64/aarch64.c (generic_addrcost_table): Infer values
1614 for sign and zero register extension.
1615 (cortexa57_addrcost_table): Likewise.
1616 (xgene1_addrcost_table): Likewise.
1618 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1620 * fold-const.c (fold_minmax): Delete.
1621 (fold_binary_loc): Don't call it.
1622 * match.pd: Add rules previously handled by fold_minmax.
1624 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1626 * builtins.c (fold_builtin_fma): Remove constant handling.
1627 (fold_builtin_3): Handle constant fma arguments here.
1629 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1631 * builtins.c (fold_builtin_fabs): Remove constant handling.
1632 (fold_builtin_abs): Likewise.
1634 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1636 * builtins.c (fold_builtin_copysign): Delete.
1637 (fold_builtin_2): Handle constant copysign arguments here.
1638 * match.pd: Add rules previously handled by fold_builtin_copysign.
1640 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1642 * builtins.c (fold_builtin_signbit): Delete.
1643 (fold_builtin_2): Handle constant signbit arguments here.
1644 * match.pd: Add rules previously handled by fold_builtin_signbit.
1646 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1648 * match.pd: Handle sqrt(x) cmp 0 specially.
1650 2015-10-27 Ilya Enkovich <enkovich.gnu@gmail.com>
1652 * tree-vect-generic.c (expand_vector_operations_1): Check
1653 optab type before using it.
1655 2015-10-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1657 * config/aarch64/aarch64-protos.h
1658 (struct tune_params): Add autoprefetcher_model field.
1659 * config/aarch64/aarch64.c: Include params.h
1660 (generic_tunings): Specify autoprefetcher_model value.
1661 (cortexa53_tunings): Likewise.
1662 (cortexa57_tunings): Likewise.
1663 (cortexa72_tunings): Likewise.
1664 (thunderx_tunings): Likewise.
1665 (xgene1_tunings): Likewise.
1666 (aarch64_first_cycle_multipass_dfa_lookahead_guard): New function.
1667 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
1668 (aarch64_override_options_internal): Set
1669 PARAM_SCHED_AUTOPREF_QUEUE_DEPTH param.
1671 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1673 * builtins.c (fold_builtin_exponent): Delete.
1674 (fold_builtin_2): Handle constant expN arguments here.
1675 * match.pd: Fold expN(logN(x)) -> x.
1677 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1679 * builtins.c (fold_builtin_powi): Delete.
1680 (fold_builtin_2): Handle constant powi arguments here.
1681 * match.pd: Add rules previously handled by fold_builtin_powi.
1683 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1685 * builtins.c (fold_builtin_pow): Delete in favor of...
1686 (fold_const_builtin_pow): ...this new function. Only handle constant
1688 (fold_builtin_2): Update accordingly.
1689 * match.pd: Add rules previously handled by fold_builtin_pow.
1691 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1693 * builtins.c (fold_builtin_hypot): Delete.
1694 (fold_builtin_2): Handle constant hypot arguments here.
1695 * match.pd: Fold hypot(x, 0) and hypot(0, x) to x. Canonicalize
1696 hypot(x, x) to fabs(x)*sqrt(2).
1698 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1700 * gimple-match-head.c (maybe_push_res_to_seq): Use create_tmp_reg
1701 instead of make_ssa_name if not yet in SSA form.
1703 2015-10-27 Richard Biener <rguenther@suse.de>
1705 * cfg.c (free_edge): Add function argument and use it instead of cfun.
1706 (clear_edges): Likewise.
1707 * cfg.h (clear_edges): Adjust prototype.
1708 * cfgexpand.c (pass_expand::execute): Adjust.
1709 * cfgloop.c (release_recorded_exits): Add function argument and use
1711 * cfgloop.h (release_recorded_exits): Adjust prototype.
1712 (loops_state_satisfies_p): Add overload with function argument.
1713 (loops_state_set): Likewise.
1714 (loops_state_clear): Likewise.
1715 (struct loop_iterator): Add function argument to constructor
1716 and iterator and use it instead of cfun.
1717 (FOR_EACH_LOOP_FN): New macro.
1718 (loop_optimizer_finalize): Add overload with function argument.
1719 * loop-init.c (loop_optimizer_init): Adjust.
1720 (fix_loop_structure): Likewise.
1721 (loop_optimizer_finaliz): Add function argument and use it
1723 * tree-cfg.c (delete_tree_cfg_annotations): Likewise.
1724 * tree-cfg.h (delete_tree_cfg_annotations): Adjust prototype.
1725 * cgraph.c (release_function_body): Do not push/pop cfun.
1726 * final.c (rest_of_clean_state): Adjust.
1727 * graphite.c (graphite_finalize): Likewise.
1728 * tree-ssa-copy.c (fini_copy_prop): Likewise.
1729 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
1730 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Likewise.
1731 (tree_unroll_loops_completely): Likewise.
1732 (pass_complete_unrolli::execute): Likewise.
1733 * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates):
1734 Add function argument and use it instead of cfun.
1735 * tree-ssa-loop-niter.h (free_numbers_of_iterations_estimates):
1737 * tree-ssa-loop.c (tree_ssa_loop_done): Adjust.
1738 * tree-ssa.c (delete_tree_ssa): Add function argument and use it
1740 * tree-ssa.h (delete_tree_ssa): Adjust prototype.
1741 * tree-ssanames.c (fini_ssanames): Add function argument and use it
1743 * tree-ssanames.c (fini_ssanames): Adjust prototype.
1744 * tree-vrp.c (execute_vrp): Adjust.
1745 * value-prof.c (free_histograms): Add function argument and use it
1747 * value-prof.h (free_histograms): Adjust prototype.
1749 2015-10-27 Thomas Schwinge <thomas@codesourcery.com>
1751 * tree.h (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES)
1752 (OACC_KERNELS_BODY, OACC_KERNELS_CLAUSES, OACC_KERNELS_COMBINED)
1753 (OACC_PARALLEL_COMBINED): Don't define macros. Adjust all users.
1755 2015-10-27 Tom de Vries <tom@codesourcery.com>
1757 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add and use var
1760 2015-10-27 Bin Cheng <bin.cheng@arm.com>
1762 * loop-invariant.c (struct def): New field can_prop_to_addr_uses.
1763 (inv_can_prop_to_addr_use): New function.
1764 (record_use): Call can_prop_to_addr_uses, set the new field.
1765 (get_inv_cost): Count cost if inv can't be propagated into its
1768 2015-10-26 Doug Evans <dje@google.com>
1770 * config/linux.h (INCLUDE_DEFAULTS): Add INCLUDE_DEFAULTS_MUSL_LOCAL.
1772 2015-10-26 Eric Botcazou <ebotcazou@adacore.com>
1774 * match.pd (fold_widened_comparison): Apply simplifications to all
1777 2015-10-26 Simon Dardis <simon.dardis@imgtec.com>
1779 * target.def (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): New hook.
1780 * doc/tm.texi.in (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): Document.
1781 * doc/tm.texi: Regenerated.
1782 * reorg.c (dbr_schedule): Use new hook.
1783 * config/mips/mips.c (mips_no_speculation_in_delay_slots_p): New.
1785 2015-10-26 Jeff Law <law@redhat.com>
1787 PR tree-optimization/68013
1788 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
1789 Make sure the first block in the path is in VISITED_BBs.
1791 2015-10-26 Richard Biener <rguenther@suse.de>
1792 Dominik Vogt <vogt@linux.vnet.ibm.com>
1795 * alias.c (ao_ref_from_mem): Remove promoted subreg handling.
1796 Properly prune ref->ref for accesses outside of ref.
1798 2015-10-26 Richard Sandiford <richard.sandiford@arm.com>
1800 * gimple-fold.c (replace_stmt_with_simplification): Don't allow
1801 new statements to be inserted if inplace. Allow calls to have
1804 2015-10-26 Richard Biener <rguenther@suse.de>
1806 * tree-object-size.c: Remove builtins.h include, include tree-cfg.h.
1807 (do_valueize): New function.
1808 (pass_object_sizes::execute): Use gimple_fold_stmt_to_constant and
1810 * tree-ssa-threadedge.c: Remove builtins.h include, include
1812 (fold_assignment_stmt): Remove.
1813 (threadedge_valueize): New function.
1814 (record_temporary_equivalences_from_stmts): Use
1815 gimple_fold_stmt_to_constant_1, note additional cleanup
1818 2015-10-26 Richard Biener <rguenther@suse.de>
1820 * match.pd ((A & ~B) - (A & B) -> (A ^ B) - B): Add missing :c.
1821 ( (X & ~Y) | (~X & Y) -> X ^ Y): Remove redundant :c.
1823 2015-10-26 Alan Hayward <alan.hayward@arm.com>
1825 * tree-vect-loop.c (vect_create_epilog_for_reduction): Fix
1826 VEC_COND_EXPR types.
1828 2015-10-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1830 * auto-inc-dec.c (insert_move_insn_before): Delete.
1831 (attempt_change): Remember to cost the simple move in the
1832 FORM_PRE_ADD and FORM_POST_ADD cases.
1834 2015-10-26 Kaz Kojima <kkojima@gcc.gnu.org>
1837 * config/sh/sh.c (sh_vector_mode_supported_p): Use
1838 TARGET_SHMEDIA_FPU instead of TARGET_FPU_ANY.
1840 2015-10-26 Tom de Vries <tom@codesourcery.com>
1842 * tree-ssa-structalias.c (make_restrict_var_constraints): New function,
1844 (intra_create_variable_infos): ... here.
1846 2015-10-26 Tom de Vries <tom@codesourcery.com>
1848 * tree-ssa-structalias.c (intra_create_variable_infos): Add
1849 restrict_pointer_p and recursive_restrict_p variables.
1851 2015-10-26 Tom de Vries <tom@codesourcery.com>
1853 * tree-ssa-structalias.c (intra_create_variable_infos): Inline
1854 get_vi_for_tree call.
1856 2015-10-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1859 * optabs.c (expand_atomic_compare_and_swap): Handle case when
1860 ptarget_oval or ptarget_bool are const0_rtx.
1862 2015-10-26 Christian Bruel <christian.bruel@st.com>
1864 * function.h (MINIMUM_METHOD_BOUNDARY): New macro.
1865 * cp/decl.c (grokfndecl): Set DECL_ALIGN with MINIMUM_METHOD_BOUNDARY.
1866 * cp/method.c (implicitly_declare_fn): Likewise.
1867 * cp/lambda.c (maybe_add_lambda_conv_op): Likewise. Remove VBIT setting.
1868 * java/class.c (add_method_1): Likewise.
1870 2015-10-26 Richard Biener <rguenther@suse.de>
1872 * alloc-pool.h (base_pool_allocator): Use placement new.
1873 (base_pool_allocator::remove): Likewise. Compute size outside of
1876 2015-10-26 Richard Sandiford <richard.sandiford@arm.com>
1878 * builtins.c (do_real_to_int_conversion): New function.
1879 (fold_fixed_mathfn, fold_builtin_int_roundingfn): Delete.
1880 (fold_builtin_1): Handle constant {i,l,ll}{ceil,floor,round}{f,,l}
1882 * match.pd: Add rules previously handled by fold_fixed_mathfn
1883 and fold_builtin_int_roundingfn.
1885 2015-10-26 Richard Sandiford <richard.sandiford@arm.com>
1887 * match.pd: Use macros to define built-in operator lists.
1889 2015-10-20 Richard Sandiford <richard.sandiford@arm.com>
1890 Richard Biener <rguenther@suse.de>
1892 * genmatch.c (dt_simplify::gen): Skip captures that are
1894 (parser::parse_expr): Allow captures in results too.
1895 * builtins.c (fold_builtin_cexp): Delete.
1896 (fold_builtin_1): Handle constant cexp arguments here.
1897 * match.pd: Fold cexp(x+yi) to exp(x) * cexpi(y).
1899 2015-10-26 Mikhail Maltsev <maltsevm@gmail.com>
1901 * alloc-pool.h (base_pool_allocator::initialize, ::allocate): Remove
1902 conditional compilation.
1903 (base_pool_allocator::remove): Use flag_checking.
1905 2015-10-25 John David Anglin <danglin@gcc.gnu.org>
1907 * config/pa/som.h (EH_FRAME_THROUGH_COLLECT2): Define.
1910 * dojump.c (do_compare_and_jump): Canonicalize both function and
1913 2015-10-25 Uros Bizjak <ubizjak@gmail.com>
1916 * config/i386/i386.c (ix86_md_asm_adjust) [case 'a']: Use NE code
1919 2015-10-23 Jan Hubicka <hubicka@ucw.cz>
1922 * ipa-polymorphic-call.c
1923 (ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
1924 instance offset with offset of outer type.
1926 2015-10-23 Jan Hubicka <hubicka@ucw.cz>
1928 * fold-const.c (operand_equal_p): Handle VIEW_CONVERT_EXPR.
1930 2015-10-23 Caroline Tice <cmtice@google.com>
1932 (from Richard Biener
1933 * tree.c (int_cst_hasher::hash): Replace XOR with more efficient
1934 call to iterative_hash_host_wide_int.
1936 2015-10-23 David Edelsohn <dje.gcc@gmail.com>
1938 * config.gcc (powerpc-ibm-aix[6789]) [default_use_cxa_atexit]:
1941 2015-10-23 Ilya Enkovich <enkovich.gnu@gmail.com>
1943 * tree-vect-generic.c (expand_vector_operations_1): Check
1944 optab exists before use it.
1946 2015-10-23 Ilya Enkovich <enkovich.gnu@gmail.com>
1948 * tree-vect-generic.c (expand_vector_condition): Avoid
1949 uninitialized variable warning.
1951 2015-10-23 Jeff Law <law@redhat.com>
1953 * passes.c (execute_function_todo): Do not call flush_ssaname_freelist
1955 (execute_todo): Call it here.
1956 * tree-ssanames.c (make_ssa_name_fn): Unconditionally gather reuse
1958 (pass_release_ssa_names::execute): Do not call flusH_ssaname_freelist.
1960 2015-10-23 Gregor Richards <gregor.richards@uwaterloo.ca>
1961 Szabolcs Nagy <szabolcs.nagy@arm.com>
1963 * config.gcc (enable_secureplt): Add *-linux*-musl*.
1965 2015-10-23 Jeff Law <law@redhat.com>
1967 PR tree-optimization/67830
1968 * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
1969 Explicitly verify the mask has no bits outside the type of
1970 the innermost operands.
1972 2015-10-23 Gregor Richards <gregor.richards@uwaterloo.ca>
1973 Szabolcs Nagy <szabolcs.nagy@arm.com>
1975 * config/rs6000/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
1976 (MUSL_DYNAMIC_LINKER64): Define.
1977 (GNU_USER_DYNAMIC_LINKER32): Update.
1978 (GNU_USER_DYNAMIC_LINKER64): Update.
1979 (CHOOSE_DYNAMIC_LINKER): Update.
1981 * config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Update.
1982 (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER_E,)
1983 (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
1984 (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
1985 (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
1986 (CHOOSE_DYNAMIC_LINKER): Update.
1987 (INCLUDE_DEFAULTS): Redefine.
1989 * config/rs6000/sysv4le.h (MUSL_DYNAMIC_LINKER_E): Define.
1991 2015-10-23 Jan Hubicka <hubicka@ucw.cz>
1993 * fold-const.c (operand_equal_p): Do not compare TYPE_MODE when
1994 comparing addresses.
1996 2015-10-23 Jan Hubicka <hubicka@ucw.cz>
1998 * fold-const.c (operand_equal_p): Handle matching of vector
2001 2015-10-23 David Edelsohn <dje.gcc@gmail.com>
2003 * doc/install.texi (*-ibm-aix*): Additional information for AIX 7.1.
2005 2015-10-23 Steve Ellcey <sellcey@imgtec.com>
2006 Andrew Pinski <apinski@cavium.com>
2008 PR rtl-optimization/67736
2009 * combine.c (simplify_comparison): Use gen_lowpart_or_truncate instead
2012 2015-10-23 Ilya Enkovich <enkovich.gnu@gmail.com>
2015 * tree.c (build_truth_vector_type): Support BLK mode
2016 returned for boolean vector.
2018 2015-10-23 Alan Hayward <alan.hayward@arm.com>
2020 PR tree-optimization/65947
2022 (vect_is_simple_reduction_1): Find condition reductions.
2023 (vect_model_reduction_cost): Add condition reduction costs.
2024 (get_initial_def_for_reduction): Add condition reduction initial var.
2025 (vect_create_epilog_for_reduction): Add condition reduction epilog.
2026 (vectorizable_reduction): Condition reduction support.
2027 * tree-vect-stmts.c (vectorizable_condition): Add vect reduction arg
2028 * doc/sourcebuild.texi (Vector-specific attributes): Document
2031 2015-10-23 Richard Biener <rguenther@suse.de>
2033 * Makefile.in (build/genmatch.o): Properly depend on is-a.h, tree.def
2036 2015-10-23 Richard Biener <rguenther@suse.de>
2037 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2039 * fold-const.c (fold_binary_loc) : Move Fold (A & ~B) - (A & B)
2040 into (A ^ B) - B to match.pd
2041 Move (X & ~Y) | (~X & Y) is X ^ Y to match.pd.
2043 * match.pd (minus (bit_and:cs @0 (bit_not @1)) (bit_and:s @0 @1)):
2045 (minus (bit_and:s @0 INTEGER_CST@2) (bit_and:s @0 INTEGER_CST@1)):
2047 (minus (bit_and:s @0 @1) (bit_and:cs @0 (bit_not @1))):
2049 (bit_ior:c (bit_and:c @0 (bit_not @1)) (bit_and:c (bit_not @0) @1)):
2051 (bit_ior:c (bit_and @0 INTEGER_CST@2) (bit_and (bit_not @0)
2052 INTEGER_CST@1)): New simplifier.
2054 2015-10-23 Richard Sandiford <richard.sandiford@arm.com>
2056 * builtins.c (integer_valued_real_p): Move to fold-const.c.
2057 (fold_trunc_transparent_mathfn, fold_builtin_trunc, fold_builtin_floor)
2058 (fold_builtin_ceil, fold_builtin_round): Delete.
2059 (fold_builtin_1): Handle constant trunc, floor, ceil and round
2061 * convert.c (convert_to_real): Remove narrowing of rounding
2063 * fold-const.h (integer_valued_real_unary_p)
2064 (integer_valued_real_binary_p, integer_valued_real_call_p)
2065 (integer_valued_real_single_p, integer_valued_real_p): Declare.
2066 * fold-const.c (tree_single_nonnegative_warnv_p): Move
2067 name_registered_for_update_p check to SSA_NAME case statement.
2068 Don't call tree_simple_nonnegative_warnv_p for SSA names.
2069 (integer_valued_real_unary_p, integer_valued_real_binary_p)
2070 (integer_valued_real_call_p, integer_valued_real_single_p)
2071 (integer_valued_real_invalid_p): New functions.
2072 (integer_valued_real_p): Move from fold-const.c and rework
2073 to call the functions above. Handle SSA names.
2074 * gimple-fold.h (gimple_stmt_integer_valued_real_p): Declare.
2075 * gimple-fold.c (gimple_assign_integer_valued_real_p)
2076 (gimple_call_integer_valued_real_p, gimple_phi_integer_valued_real_p)
2077 (gimple_stmt_integer_valued_real_p): New functions.
2078 * match.pd: Fold f(f(x))->f(x) for fp->fp rounding functions f.
2079 Fold f(x)->x for the same f if x is known to be integer-valued.
2080 Fold f(extend(x))->extend(f'(x)) if doing so doesn't affect
2081 the result. Canonicalize floor(x) as trunc(x) if x is
2084 2015-10-23 Tom de Vries <tom@codesourcery.com>
2086 * tree-ssa-structalias.c (intra_create_variable_infos): Use
2087 make_constraint_from.
2089 2015-10-23 Tom de Vries <tom@codesourcery.com>
2091 * tree-ssa-structalias.c (create_variable_info_for_1): Add missing
2092 setting of is_full_var in case of a single field.
2094 2015-10-22 Martin Sebor <msebor@redhat.com>
2097 * config/i386/i386.opt: Add missing periods to the ends of sentences.
2098 * config/msp430/msp430.opt: Same.
2100 2015-10-21 David Wohlferd <dw@LimeGreenSocks.com>
2102 * doc/extend.exp (Global Register Variables): Rewrite.
2104 2015-10-22 Jeff Law <law@redhat.com>
2106 * genattrtab.c (main): If we do not have any annul-true or annul-false
2107 slots, then write out a dummy eligible_for_annul_true or
2108 eligible_for_annul_false as needed.
2110 2015-10-22 Nick Clifton <nickc@redhat.com>
2112 * config/msp430/msp430.opt: Add -msilicon-errata and
2113 -msilicon-errata-warn.
2114 * config/msp430/msp430.h (ASM_SPEC): Pass new options on to
2116 * doc/invoke.texi: Document new options.
2118 2015-10-22 Richard Biener <rguenther@suse.de>
2120 PR tree-optimization/58497
2121 * tree-vect-generic.c (ssa_uniform_vector_p): New helper.
2122 (expand_vector_operations_1): Use it. Lower operations on
2123 all uniform vectors to scalar operations if the HW supports it.
2125 2015-10-22 Richard Biener <rguenther@suse.de>
2127 PR tree-optimization/19049
2128 PR tree-optimization/65962
2129 * tree-vect-data-refs.c (vect_analyze_group_access_1): Fall back
2130 to strided accesses if single-element interleaving doesn't work.
2132 2015-10-22 Richard Biener <rguenther@suse.de>
2136 * optabs.c (emit_libcall_block_1): Allow a NULL_RTX equiv.
2137 (expand_binop): For -ftrapv optabs do not record an REG_EQUAL note.
2138 (expand_unop): Likewise.
2140 2015-10-22 Richard Biener <rguenther@suse.de>
2142 * fold-const.c (fold_addr_of_array_ref_difference): Properly
2143 convert operands before folding a MINUS_EXPR.
2144 (fold_binary_loc): Move simplification of MINUS_EXPR on
2145 converted POINTER_PLUS_EXPRs ...
2146 * match.pd: ... here.
2148 2015-10-22 Richard Sandiford <richard.sandiford@arm.com>
2150 * builtins.c (fold_builtin_tan): Delete.
2151 (fold_builtin_1): Handle constant tan arguments here.
2152 * match.pd: Simplify (tan (atan x)) to x.
2154 2015-10-22 Richard Sandiford <richard.sandiford@arm.com>
2156 * builtins.c (fold_builtin_cproj): Delete.
2157 (fold_builtin_1): Handle constant arguments here.
2158 (build_complex_cproj): Move and rename to...
2159 * tree.c: (build_complex_inf): ...this.
2160 * tree.h (build_complex_inf): Declare.
2161 * match.pd: Fold cproj(x)->x if x has no infinity.
2162 Use build_complex_inf for existing cproj rules.
2164 2015-10-22 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2167 * config/s390/s390.md (mov<mode>cc): Emit compare only if we don't
2168 already have a comparison result.
2170 2015-10-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2173 * config/aarch64/aarch64.c (aarch64_nopcrelative_literal_loads): New.
2174 (aarch64_expand_mov_immediate): Use aarch64_nopcrelative_literal_loads.
2175 (aarch64_classify_address): Likewise.
2176 (aarch64_secondary_reload): Likewise.
2177 (aarch64_override_options_after_change_1): Adjust.
2178 * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
2179 Use aarch64_nopcrelative_literal_loads.
2180 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
2181 * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
2184 2015-10-21 Martin Sebor <msebor@redhat.com>
2187 * opts.c (undocumented_msg, use_diagnosed_msg): New globals.
2188 (print_filtered_help): Reference aliased option's name and encourage
2189 readers to use it in preference to the alias if the former is not
2190 documented. Mention when using an option is diagnosed.
2191 * gcc.c (display_help): End each sentence with a period.
2193 * common.opt: End each sentence that describes an option with
2195 * config/aarch64/aarch64.opt: Same.
2196 * config/alpha/alpha.opt: Same.
2197 * config/arc/arc.opt: Same.
2198 * config/arm/arm.opt: Same.
2199 * config/avr/avr.opt: Same.
2200 * config/bfin/bfin.opt: Same.
2201 * config/c6x/c6x.opt: Same.
2202 * config/cr16/cr16.opt: Same.
2203 * config/cris/cris.opt: Same.
2204 * config/cris/linux.opt: Same.
2205 * config/darwin.opt: Same.
2206 * config/epiphany/epiphany.opt: Same.
2207 * config/fr30/fr30.opt: Same.
2208 * config/frv/frv.opt: Same.
2209 * config/ft32/ft32.opt: Same.
2210 * config/g.opt: Same.
2211 * config/h8300/h8300.opt: Same.
2212 * config/i386/cygming.opt: Same.
2213 * config/i386/djgpp.opt: Same.
2214 * config/i386/i386.opt: Same.
2215 * config/i386/interix.opt: Same.
2216 * config/i386/mingw-w64.opt: Same.
2217 * config/i386/mingw.opt: Same.
2218 * config/ia64/ia64.opt: Same.
2219 * config/ia64/ilp32.opt: Same.
2220 * config/iq2000/iq2000.opt: Same.
2221 * config/linux.opt: Same.
2222 * config/lm32/lm32.opt: Same.
2223 * config/lynx.opt: Same.
2224 * config/m32c/m32c.opt: Same.
2225 * config/m32r/m32r.opt: Same.
2226 * config/m68k/ieee.opt: Same.
2227 * config/m68k/m68k.opt: Same.
2228 * config/mcore/mcore.opt: Same.
2229 * config/mep/mep.opt: Same.
2230 * config/microblaze/microblaze.opt: Same.
2231 * config/mips/mips.opt: Same.
2232 * config/mmix/mmix.opt: Same.
2233 * config/mn10300/mn10300.opt: Same.
2234 * config/moxie/moxie.opt: Same.
2235 * config/msp430/msp430.opt: Same.
2236 * config/nios2/elf.opt: Same.
2237 * config/nios2/nios2.opt: Same.
2238 * config/nvptx/nvptx.opt: Same.
2239 * config/pa/pa-hpux.opt: Same.
2240 * config/pa/pa-hpux1010.opt: Same.
2241 * config/pa/pa-hpux1111.opt: Same.
2242 * config/pa/pa-hpux1131.opt: Same.
2243 * config/pa/pa.opt: Same.
2244 * config/pa/pa64-hpux.opt: Same.
2245 * config/pdp11/pdp11.opt: Same.
2246 * config/rl78/rl78.opt: Same.
2247 * config/rs6000/476.opt: Same.
2248 * config/rs6000/aix64.opt: Same.
2249 * config/rs6000/darwin.opt: Same.
2250 * config/rs6000/linux64.opt: Same.
2251 * config/rs6000/rs6000.opt: Same.
2252 * config/rs6000/sysv4.opt: Same.
2253 * config/s390/s390.opt: Same.
2254 * config/s390/tpf.opt: Same.
2255 * config/sh/sh.opt: Same.
2256 * config/sol2.opt: Same.
2257 * config/sparc/long-double-switch.opt: Same.
2258 * config/sparc/sparc.opt: Same.
2259 * config/spu/spu.opt: Same.
2260 * config/stormy16/stormy16.opt: Same.
2261 * config/tilegx/tilegx.opt: Same.
2262 * config/tilepro/tilepro.opt: Same.
2263 * config/v850/v850.opt: Same.
2264 * config/vax/vax.opt: Same.
2265 * config/visium/visium.opt: Same.
2266 * config/vms/vms.opt: Same.
2267 * config/vxworks.opt: Same.
2268 * config/xtensa/xtensa.opt: Same.
2270 2015-10-21 Aditya Kumar <aditya.k7@samsung.com>
2271 Sebastian Pop <s.pop@samsung.com>
2273 * graphite-scop-detection.c (parameter_index_in_region): Update call to
2274 invariant_in_sese_p_rec.
2275 * graphite-sese-to-poly.c (extract_affine): Same.
2276 * sese.c (invariant_in_sese_p_rec): Pass in an extra
2277 parameter has_vdefs.
2278 (scalar_evolution_in_region): Return chrec_dont_know when the scalar
2279 variable depends on virtual definitions in the current region.
2280 * sese.h (invariant_in_sese_p_rec): Update declaration.
2282 2015-10-21 Aditya Kumar <aditya.k7@samsung.com>
2283 Sebastian Pop <s.pop@samsung.com>
2285 * graphite-scop-detection.c (build_scops): Do not handle scops
2286 with more than PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP arrays.
2287 * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): New.
2289 2015-10-21 Mikhail Maltsev <maltsevm@gmail.com>
2291 * config.in: Regenerate.
2292 * configure: Regenerate.
2293 * configure.ac (CHECKING_P): Define.
2294 * system.h: Use CHECKING_P.
2296 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
2299 * ipa-polymorphic-call.c (possible_placement_new): If cur_offset
2300 is negative we don't know the type.
2301 (check_stmt_for_type_change): Skip constructors of non-polymorphic
2302 types as those won't help devirutalization.
2304 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
2306 * fold-const.c (operand_equal_p): Add code matching empty constructors.
2308 2015-10-21 Eric Botcazou <ebotcazou@adacore.com>
2310 * tree.def (CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR): Tweak
2312 (TRUNC_MOD_EXPR, CEIL_MOD_EXPR, FLOOR_MOD_EXPR, ROUND_MOD_EXPR):
2313 Add comments on sign of the result.
2314 * fold-const.c (tree_binary_nonnegative_warnv_p) <FLOOR_MOD_EXPR>:
2315 Recurse on operand #1 instead of operand #0.
2316 <CEIL_MOD_EXPR>: Do not recurse.
2317 <ROUND_MOD_EXPR>: Likewise.
2319 2015-10-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2321 * cfgrtl.c (pass_free_cfg::execute): Adjust.
2322 * final.c (dbr_sequence_length): Always define.
2323 (shorten_branches): Adjust.
2324 * genattr-common.c (main): Always define DELAY_SLOTS.
2325 * genattr.c (main): Unconditionally declare functions and define
2326 macros related to delay slots.
2327 * genattrtab.c (write_eligible_delay): Adjust.
2328 (main): Always write out delay slot functions.
2329 * opts.c (default_options_table): Adjust.
2330 * reorg.c (redirect_with_delay_slots_safe_p): Likewise.
2331 (redirect_with_delay_list_safe_p): Likewise.
2332 (fill_simple_delay_slots): Likewise.
2333 (fill_slots_from_thread): Likewise.
2334 (make_return_insns): Likewise.
2335 (dbr_schedule): Likewise.
2336 (rest_of_handle_delay_slots): Likewise.
2337 (pass_delay_slots::gate): Likewise.
2338 * toplev.c (process_options): Likewise.
2340 2015-10-21 Richard Henderson <rth@redhat.com>
2342 * targhooks.c (default_addr_space_pointer_mode): Remove check
2343 for generic address space.
2344 (default_addr_space_address_mode): Likewise.
2345 (default_addr_space_valid_pointer_mode): Likewise.
2346 (default_addr_space_legitimate_address_p): Likewise.
2347 (default_addr_space_legitimize_address): Likewise.
2348 * target.def (addr_space.pointer_mode): Update documentation
2349 of default behavior.
2350 (addr_space.address_mode): Likewise.
2353 * expr.c (expand_expr_real_2): Use convert_modes on disjoint
2356 2015-10-21 Richard Sandiford <richard.sandiford@arm.com>
2358 * builtins.c (fold_builtin_cabs): Delete.
2359 (fold_builtin_1): Update accordingly. Handle constant arguments here.
2360 * match.pd: Add rules previously handled by fold_builtin_cabs.
2362 2015-10-21 Richard Sandiford <richard.sandiford@arm.com>
2364 * fold-const.h (fold_strip_sign_ops): Delete.
2365 * fold-const.c (fold_strip_sign_ops): Likewise.
2366 (fold_unary_loc, fold_binary_loc): Remove calls to it.
2367 * builtins.c (fold_builtin_cos, fold_builtin_cosh)
2368 (fold_builtin_ccos): Delete.
2369 (fold_builtin_pow): Don't call fold_strip_sign_ops.
2370 (fold_builtin_hypot, fold_builtin_copysign): Likewise.
2371 Remove fndecl argument.
2372 (fold_builtin_1): Update calls accordingly. Handle constant
2373 cos, cosh, ccos and ccosh here.
2375 2015-10-21 Richard Sandiford <richard.sandiford@arm.com>
2377 * doc/invoke.texi (-fdump-tree-backprop, -fssa-backprop): Document.
2378 * Makefile.in (OBJS): Add gimple-ssa-backprop.o.
2379 * common.opt (fssa-backprop): New option.
2380 * fold-const.h (negate_mathfn_p): Declare.
2381 * fold-const.c (negate_mathfn_p): Make public.
2382 * timevar.def (TV_TREE_BACKPROP): New.
2383 * tree-pass.h (make_pass_backprop): Declare.
2384 * passes.def (pass_backprop): Add.
2385 * gimple-ssa-backprop.c: New file.
2387 2015-10-21 Aditya Kumar <aditya.k7@samsung.com>
2388 Sebastian Pop <s.pop@samsung.com>
2390 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard):
2391 Do not call create_empty_if_region_on_edge when cond_expr is true.
2392 (translate_isl_ast_node_for): Check whether a guard has been generated.
2394 2015-10-21 Aditya Kumar <aditya.k7@samsung.com>
2396 * graphite-poly.h (struct dr_info): Added invalid_alias_set number.
2397 (operator=): Removed.
2398 (dr_info): Make alias_set number the last argument with default
2399 value of invalid_alias_set.
2400 * graphite-sese-to-poly.c (build_scop_drs): Update constructor
2402 (rewrite_reductions_out_of_ssa): Iterate only through the
2403 basic blocks which are inside region.
2404 (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
2405 * sese.h (struct sese_l): Removed assignment operator.
2406 (split_region_for_bb): Removed dead code.
2408 2015-10-21 Aditya Kumar <aditya.k7@samsung.com>
2410 * graphite-poly.h (struct dr_info): Removed conversion constructor.
2411 (struct scop): Renamed scop::region to scop::scop_info
2412 (scop_set_region): Same.
2413 (SCOP_REGION): Removed
2414 (SCOP_CONTEXT): Removed.
2415 (POLY_SCOP_P): Removed.
2416 * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
2417 Rename scop->region to scop->scop_info.
2418 (add_parameters_to_ivs_params): Same.
2419 (graphite_regenerate_ast_isl): Same.
2420 * graphite-poly.c (new_scop): Same.
2422 (print_scop_params): Same.
2423 * graphite-scop-detection.c (scop_detection::remove_subscops): Same.
2424 (scop_detection::remove_intersecting_scops): Use pointer to sese_l.
2425 (dot_all_scops_1): Rename scop->region to scop->scop_info.
2426 (scop_detection::nb_pbbs_in_loops): Same.
2427 (find_scop_parameters): Same.
2428 (try_generate_gimple_bb): Same.
2429 (gather_bbs::before_dom_children): Same.
2430 (gather_bbs::after_dom_children): Same.
2431 (build_scops): Same.
2432 * graphite-sese-to-poly.c (build_scop_scattering): Same.
2433 (extract_affine_chrec): Same.
2434 (extract_affine): Same.
2435 (set_scop_parameter_dim): Same.
2436 (build_loop_iteration_domains): Same.
2437 (create_pw_aff_from_tree): Same.
2438 (add_param_constraints): Same.
2439 (build_scop_iteration_domain): Same.
2440 (build_scop_drs): Same.
2441 (analyze_drs_in_stmts): Same.
2442 (insert_out_of_ssa_copy_on_edge): Same.
2443 (rewrite_close_phi_out_of_ssa):Same.
2444 (rewrite_reductions_out_of_ssa):Same.
2445 (handle_scalar_deps_crossing_scop_limits):Same.
2446 (rewrite_cross_bb_scalar_deps):Same.
2447 (rewrite_cross_bb_scalar_deps_out_of_ssa):Same.
2448 (build_poly_scop):Same.
2449 (build_alias_set): Use pointer to dr_info.
2450 * graphite.c (print_graphite_scop_statistics):
2451 (graphite_transform_loops):
2452 * sese.h (struct sese_l): Remove conversion constructor.
2454 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
2457 * tree.c (verify_type): Verify that TYPE_MODE match
2458 between TYPE_CANONICAL and type.
2459 * expr.c (store_expr_with_bounds): Revert my previous change.
2460 * expmed.c (store_bit_field_1): Revert prevoius change.
2461 * gimple-expr.c (useless_type_conversion_p): Require TYPE_MODE
2462 to match for all types.
2464 2015-10-21 Nathan Sidwell <nathan@codesourcery.com>
2466 * omp-low.c (check_omp_nesting_restrictions): Check OpenACC loop
2469 2015-10-21 Ilya Enkovich <enkovich.gnu@gmail.com>
2471 * doc/tm.texi: Regenerated.
2472 * doc/tm.texi.in (TARGET_VECTORIZE_GET_MASK_MODE): New.
2473 * stor-layout.c (layout_type): Use mode to get vector mask size.
2474 * target.def (get_mask_mode): New.
2475 * targhooks.c (default_get_mask_mode): New.
2476 * targhooks.h (default_get_mask_mode): New.
2477 * gcc/tree-vect-stmts.c (get_same_sized_vectype): Add special case
2479 * tree.c (MAX_BOOL_CACHED_PREC): New.
2480 (nonstandard_boolean_type_cache): New.
2481 (build_nonstandard_boolean_type): New.
2482 (make_vector_type): Vector mask has no canonical type.
2483 (build_truth_vector_type): New.
2484 (build_same_sized_truth_vector_type): New.
2485 (truth_type_for): Support vector masks.
2486 * tree.h (VECTOR_BOOLEAN_TYPE_P): New.
2487 (build_truth_vector_type): New.
2488 (build_same_sized_truth_vector_type): New.
2489 (build_nonstandard_boolean_type): New.
2490 * tree-cfg.c (verify_gimple_comparison) Require boolean
2491 vector type for vector comparison.
2492 (verify_gimple_assign_ternary): Likewise.
2493 * optabs.c (expand_vec_cond_expr): Accept boolean vector as
2495 * tree-vect-stmts.c (vectorizable_condition): Use boolean
2496 vector type for vector comparison.
2497 * tree-vect-generic.c (elem_op_func): Add new operand to hold
2499 (do_unop): Adjust to modified function type.
2500 (do_binop): Likewise.
2501 (do_plus_minus): Likewise.
2502 (do_negate); Likewise.
2503 (expand_vector_piecewise): Likewise.
2504 (do_cond): Likewise.
2505 (do_compare): Use comparison instead of condition.
2506 (expand_vector_divmod): Use boolean vector type for comparison.
2507 (expand_vector_operations_1): Skip scalar mask operations.
2509 2015-10-21 Ilya Enkovich <enkovich.gnu@gmail.com>
2511 * omp-low.c (simd_clone_create): Set in_other_partition
2514 2015-10-21 David Wohlferd <dw@LimeGreenSocks.com>
2516 * doc/extend.exp (Local Register Variables): Rewrite.
2518 2015-10-21 Richard Sandiford <richard.sandiford@arm.com>
2520 * match.pd: Add rules to simplify ccos, ccosh, hypot, copysign
2521 and x*x in cases where the operands are sign ops. Extend these
2522 rules to handle copysign as a sign op (including for cos, cosh
2523 and pow, which already treated negate and abs as sign ops).
2525 2015-10-21 Uros Bizjak <ubizjak@gmail.com>
2528 * config/i386/i386.c (ix86_compute_frame_layout): Realign the stack
2529 for 64-bit MS_ABI targets also when default incoming stack boundary
2532 2015-10-21 Richard Biener <rguenther@suse.de>
2534 * tree-ssa-sccvn.c (cond_stmts_equal_p): Compare two GIMPLE
2535 cond stmts, enhanced and split out from ...
2536 (vn_phi_eq): ... here.
2538 2015-10-21 Richard Biener <rguenther@suse.de>
2541 * fold-const.c: Include tree-ssa-operands.h and tree-into-ssa.h.
2542 (tree_ssa_name_nonnegative_warnv_p): Fold into ...
2543 (tree_single_nonnegative_warnv_p): ... here. For SSA names
2544 make sure they are not registered for update.
2546 2015-10-21 Richard Biener <rguenther@suse.de>
2548 PR tree-optimization/68026
2549 * tree-ssa-ccp.c (get_value_for_expr): Zero-extend mask for
2550 unsigned VARYING values.
2552 2015-10-21 Maxim Ostapenko <m.ostapenko@partner.samsung.com>
2554 * asan.c (asan_emit_stack_protection): Don't pass local stack to
2555 asan_stack_malloc_[n] anymore. Check if asan_stack_malloc_[n] returned
2556 NULL and use local stack than.
2557 (asan_finish_file): Insert __asan_version_mismatch_check_v[n] call
2558 in addition to __asan_init.
2559 * sanitizer.def (BUILT_IN_ASAN_INIT): Rename to __asan_init.
2560 (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Add new builtin call.
2561 * asan.h (asan_intercepted_p): Handle new string builtins.
2562 * ubsan.c (ubsan_use_new_style_p): New function.
2563 (ubsan_instrument_float_cast): If location is unknown, assign
2564 input_location to loc. Propagate loc to ubsan_create_data if
2565 ubsan_use_new_style_p returned true.
2567 2015-10-21 Jeff Law <law@redhat.com>
2569 * Makefile.in (OBJS): Remove sched-vis.c
2570 * sched-vis.c: Removed. Code moved into...
2571 * print-rtl.c: Here. Include cfg.h, pretty-print.h and print-rtl.h.
2572 * rtl.h: Remove prototypes for functions now living in print-rtl.c
2573 * print-rtl.h Add prototypes for new functions in print-rtl.c.
2574 * auto-inc-dec.c: Include print-rtl.h
2575 * cfgrtl.c, combine.c, final.c haifa-sched.c: Likewise.
2576 * ira.c, lra-constraints.c, lra.c, sel-sched-dump.c: Likewise.
2578 * varasm.c (handle_vtv_comdat_section): Mark 2nd parameter with
2581 2015-10-21 Richard Biener <rguenther@suse.de>
2582 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2584 * fold-const.c (fold_binary_loc) : Move (-A) * (-B) -> A * B
2586 Move (a * (1 << b)) is (a << b) to match.pd.
2587 Move convert (C1/X)*C2 into (C1*C2)/X to match.pd.
2588 Move ~X & X, (X == 0) & X, and !X & X are zero to match.pd.
2589 Move X & ~X , X & (X == 0), and X & !X are zero to match.pd.
2591 * match.pd (mult:c @0 (convert? (lshift integer_onep@1 @2))):
2593 (mult (rdiv:s REAL_CST@0 @1) REAL_CST@2): New simplifier.
2594 (bit_and:c (convert? @0) (convert? (bit_not @0))): New simplifier.
2595 (bit_ior (bit_and:s @0 (bit_not:s @1)) (bit_and:s (bit_not:s @0) @1))
2597 (mult:c (convert1? (negate @0)) (convert2? negate_expr_p@1)):
2599 (match (logical_inverted_value @0) (truth_not @0)) : New Predicate.
2601 2015-10-21 Gregor Richards <gregor.richards@uwaterloo.ca>
2602 Szabolcs Nagy <szabolcs.nagy@arm.com>
2603 Alan Modra <amodra@gmail.com>
2605 * config/rs6000/secureplt.h (LINK_SECURE_PLT_DEFAULT_SPEC): Define.
2606 * config/rs6000/sysv4.h (LINK_SECURE_PLT_SPEC): Define.
2607 (LINK_SPEC): Add %(link_secure_plt).
2608 (SUBTARGET_EXTRA_SPECS): Add "link_secure_plt".
2609 * config/rs6000/linux64.h (LINK_SECURE_PLT_SPEC): Redefine.
2611 2015-10-20 Gregor Richards <gregor.richards@uwaterloo.ca>
2612 Szabolcs Nagy <szabolcs.nagy@arm.com>
2614 * config/sh/linux.h (MUSL_DYNAMIC_LINKER): Define.
2615 (MUSL_DYNAMIC_LINKER_E, MUSL_DYNAMIC_LINKER_FP): Define.
2617 2015-10-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2619 * config/aarch64/aarch64.c (aarch64_mode_valid_for_sched_fusion_p):
2621 (fusion_load_store): Use it.
2622 * config/aarch64/aarch64-ldpstp.md: Add new peephole2s for
2623 ldp and stp in VD modes.
2624 * config/aarch64/aarch64-simd.md (load_pair<mode>, VD): New pattern.
2625 (store_pair<mode>, VD): Likewise.
2627 2015-10-20 Vladimir Makarov <vmakarov@redhat.com>
2629 PR rtl-optimization/67609
2630 * lra-splill.c (lra_final_code_change): Don't remove all
2633 2015-10-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2635 * simplify-rtx.c (simplify_binary_operation): If either operand was
2636 a constant pool reference use them if all other simplifications failed.
2638 2015-10-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2640 * config/aarch64/aarch64.md
2641 (*aarch64_fcvt<su_optab><GPF:mode><GPI:mode>2_mult): New pattern.
2642 * config/aarch64/aarch64-simd.md
2643 (*aarch64_fcvt<su_optab><VDQF:mode><fcvt_target>2_mult): Likewise.
2644 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle above patterns.
2645 (aarch64_fpconst_pow_of_2): New function.
2646 (aarch64_vec_fpconst_pow_of_2): Likewise.
2647 * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow_of_2): Declare
2649 (aarch64_vec_fpconst_pow_of_2): Likewise.
2650 * config/aarch64/predicates.md (aarch64_fp_pow2): New predicate.
2651 (aarch64_fp_vec_pow2): Likewise.
2653 2015-10-20 Uros Bizjak <ubizjak@gmail.com>
2655 * config/alpha/alpha.h (HARD_REGNO_NREGS): Use CEIL macro.
2656 (ALPHA_ARG_SIZE): Ditto. Remove unused NAMED argument.
2657 * config/alpha/alpha.c (alpha_function_arg_advance): Update
2658 ALPHA_ARG_SIZE usage.
2659 (alpha_arg_partial_bytes): Ditto.
2661 2015-10-20 H.J. Lu <hongjiu.lu@intel.com>
2664 * cgraphbuild.c (pass_build_cgraph_edges::execute): Skip local
2665 error_mark_node decls.
2667 2015-10-20 H.J. Lu <hongjiu.lu@intel.com>
2671 * common/config/i386/i386-common.c (ix86_handle_option): Remove
2672 OPT_miamcu handling.
2673 * config/i386/i386.c (PTA_NO_80387): New macro.
2674 (processor_alias_table): Add PTA_NO_80387 to lakemont.
2675 (ix86_option_override_internal): Update MASK_80387 from
2676 PTA_NO_80387. Don't warn x87/MMX/SSE/AVX for -miamcu. Warn
2677 SSE math only if 80387 is supported. Don't change
2679 (ix86_valid_target_attribute_tree): Enable FPMATH_387 only if
2681 * config/i386/i386.h (TARGET_FLOAT_RETURNS_IN_80387): True only
2682 if TARGET_80387 is true and TARGET_IAMCU is false.
2683 (TARGET_FLOAT_RETURNS_IN_80387_P): True only if TARGET_80387_P
2684 is true and TARGET_IAMCU_P is false.
2686 2015-10-20 Richard Biener <rguenther@suse.de>
2688 PR tree-optimization/68017
2689 * tree-tailcall.c (eliminate_tail_call): Remove stmts backwards.
2691 2015-10-20 Martin Liska <mliska@suse.cz>
2693 * cgraphclones.c (cgraph_node::create_virtual_clone):
2694 Verify cgraph_node.local.versionable instead of calling
2695 tree_versionable_function_p.
2696 * ipa-cp.c (determine_versionability): Save the information
2697 to ipa_node_params summary.
2698 (ipcp_versionable_function_p): Use it.
2699 (ipcp_propagate_stage): Pass IPA_NODE_REF to a called function.
2700 (ipcp_generate_summary): Do not compute cgraph_node
2702 * ipa-inline-analysis.c (inline_generate_summary): Compute
2703 versionability for all cgraph nodes.
2704 * ipa-prop.c (ipa_node_params_t::duplicate): Duplicate
2705 ipa_node_params::versionability.
2706 * ipa-prop.h (struct ipa_node_params): Declare it.
2708 2015-10-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2711 * varasm.c (assemble_variable): Move special vtv handling to..
2712 (handle_vtv_comdat_sections): .. here. New function.
2713 (output_object_block): Handle vtv sections.
2715 2015-10-20 Szabolcs Nagy <szabolcs.nagy@arm.com>
2718 * varasm.c (default_binds_local_p_2): Turn on extern_protected_data.
2720 2015-10-20 Arkadiusz Drabczyk <arkadiusz@drabczyk.org>
2722 * doc/extend.texi: Update documentation WRT inline functions.
2724 2015-10-20 Alan Modra <amodra@gmail.com>
2727 * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Don't define.
2728 * config/rs6000/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
2729 (TARGET_CAN_SPLIT_STACK_64BIT): Define.
2731 2015-10-19 Pierre-Marie de Rodat <derodat@adacore.com>
2733 PR rtl-optimization/66790
2734 * df.h (DF_MIR): New macro.
2735 (DF_LAST_PROBLEM_PLUS1): Update to be past DF_MIR
2736 (DF_MIR_INFO_BB): New macro.
2737 (DF_MIR_IN, DF_MIR_OUT): New macros.
2738 (struct df_mir_bb_info): New.
2739 (df_mir): New macro.
2740 (df_mir_add_problem, df_mir_simulate_one_insn): New forward
2742 (df_mir_get_bb_info): New.
2743 * df-problems.c (struct df_mir_problem_data): New.
2744 (df_mir_free_bb_info, df_mir_alloc, df_mir_reset,
2745 df_mir_bb_local_compute, df_mir_local_compute, df_mir_init,
2746 df_mir_confluence_0, df_mir_confluence_n,
2747 df_mir_transfer_function, df_mir_free, df_mir_top_dump,
2748 df_mir_bottom_dump, df_mir_verify_solution_start,
2749 df_mir_verify_solution_end): New.
2751 (df_mir_add_problem, df_mir_simulate_one_insn): New.
2752 * timevar.def (TV_DF_MIR): New.
2753 * ree.c: Include bitmap.h
2754 (add_removable_extension): Add an INIT_REGS parameter. Use it
2755 to skip zero-extensions that may get an uninitialized register.
2756 (find_removable_extensions): Compute must-initialized registers
2757 using the MIR dataflow problem. Update the call to
2758 add_removable_extension.
2759 (find_and_remove_re): Call df_mir_add_problem.
2761 2015-10-19 Segher Boessenkool <segher@kernel.crashing.org>
2763 * common/config/mn10300/mn10300-common.c
2764 (mn10300_option_optimization_table) <OPT_freorder_blocks_algorithm_>:
2765 Use REORDER_BLOCKS_ALGORITHM_STC at -Os and up.
2767 2015-10-19 David Wohlferd <dw@LimeGreenSocks.com>
2769 * doc/extend.texi (Explicit Register Variables): Simplify and
2770 avoid unnecessary and confusion abbreviations. Update cross
2772 doc/implement-c.tex: Update cross reference.
2774 2015-10-19 Jeff Law <law@redhat.com>
2776 * tree-ssa-threadupdate.c (valid_jump_thread_path): Reject paths
2777 that create irreducible loops unless the path elimiantes a multiway
2780 2015-10-19 Richard Biener <rguenther@suse.de>
2782 PR tree-optimization/67975
2783 * tree-cfg.h (extract_true_false_controlled_edges): Declare.
2784 * tree-cfg.c (extract_true_false_controlled_edges): Split out
2785 core worker from ...
2786 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): ... here.
2787 * tree-ssa-sccvn.c (vn_phi_compute_hash): Hash number of args
2788 instead of block number for PHIs with two or one args.
2789 (vn_phi_eq): Compare edge predicates of PHIs that are in different
2792 2015-10-19 Richard Biener <rguenther@suse.de>
2794 * gimple-fold.c (gimple_phi_nonnegative_warnv_p): New function.
2795 (gimple_stmt_nonnegative_warnv_p): Use it.
2796 * match.pd (CPROJ): New operator list.
2797 (cproj (complex ...)): Move simplifications from ...
2798 * builtins.c (fold_builtin_cproj): ... here.
2800 2015-10-19 H.J. Lu <hongjiu.lu@intel.com>
2802 * config/i386/i386.c (ix86_expand_vector_move): Use
2803 GET_MODE_BITSIZE for IA MCU psABI to get vector natural
2806 2015-10-19 H.J. Lu <hongjiu.lu@intel.com>
2808 * doc/invoke.texi: Replace @optindex with @opindex.
2810 2015-10-19 H.J. Lu <hongjiu.lu@intel.com>
2813 * config/i386/i386.c (ix86_valid_target_attribute_tree): If
2814 arch= is set, clear all bits in x_ix86_isa_flags, except for
2815 ISA_64BIT, ABI_64, ABI_X32, and CODE16.
2817 2015-10-19 Joost VandeVondele <vondele@gnu.gcc.org>
2820 * common.opt (fkeep-static-functions): New option.
2821 * doc/invoke.texi: Document it.
2822 * cgraphunit.c (cgraph_node::finalize_function): Use it.
2824 2015-10-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2826 * sched-int.h (struct autopref_multipass_data_): Remove offset
2827 field. Add min_offset, max_offset, multi_mem_insn_p fields.
2828 * haifa-sched.c (analyze_set_insn_for_autopref): New function.
2829 (autopref_multipass_init): Use it. Handle PARALLEL sets.
2830 (autopref_rank_data): New function.
2831 (autopref_rank_for_schedule): Use it.
2832 (autopref_multipass_dfa_lookahead_guard_1): Likewise.
2834 2015-10-18 Mikhail Maltsev <maltsevm@gmail.com>
2837 * gengtype.c (dump_type): Handle TYPE_UNDEFINED correctly.
2839 2015-10-18 Iain Sandoe <iain@codesourcery.com>
2841 * config/darwin.h (TARGET_SYSTEM_ROOT): Remove this from here,
2842 (HAVE_LD_SYSROOT): New. (SYSROOT_SPEC): New.
2843 (LINK_SYSROOT_SPEC): Revise to remove the default for target sysroot.
2844 (STANDARD_STARTFILE_PREFIX_1): New.
2845 (STANDARD_STARTFILE_PREFIX_2): New.
2847 2015-10-18 Iain Sandoe <iain@codesourcery.com>
2849 * config/darwin-driver.c (darwin_default_min_version): Refactor code.
2850 (darwin_driver_init): Note a version-min when provided on the c/l.
2851 * config/darwin.h (%darwin_minversion): Remove.
2852 * config/i386/darwin.h: Likewise.
2853 * config/rs6000/darwin.h: Likewise.
2854 * config/darwin.opt (mmacosx-version-min=): Use the configured default,
2855 rather than an arbitrary constant.
2857 2015-10-18 Iain Sandoe <iain@codesourcery.com>
2859 * config/darwin-driver.c (darwin_driver_init): Handle '-arch' for
2860 PPC, detect conflicts between -arch and multilib settings. Detect
2861 and warn about conflicts between multiple -arch definitions.
2863 2015-10-18 Iain Sandoe <iain@codesourcery.com>
2865 * config/darwin-driver.c: Adjust includes to add diagnostic-core.
2867 2015-10-16 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2869 * lra-constraints.c (add_next_usage_insn): Change argument type
2870 from rtx to rtx_insn *.
2872 2015-10-16 H.J. Lu <hongjiu.lu@intel.com>
2874 * i386/x86-tune.def (X86_TUNE_ALWAYS_FANCY_MATH_387): Disable
2877 2015-10-16 Andrew MacLeod <amacleod@redhat.com>
2879 * config/tilepro/gen-mul-tables.cc: Adjust include files.
2880 * config/tilegx/mul-tables.c: Regenerate.
2881 * config/tilepro/mul-tables.c: Regenerate.
2883 * config/tilegx/tilegx-c.c: Adjust include files.
2884 * config/tilegx/tilegx.c: Likewise.
2885 * config/tilepro/tilepro-c.c: Likewise.
2886 * config/tilepro/tilepro.c: Likewise.
2887 * config/aarch64/aarch64-builtins.c: Likewise.
2888 * config/aarch64/aarch64.c: Likewise.
2889 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
2890 * config/alpha/alpha.c: Likewise.
2891 * config/arc/arc.c: Likewise.
2892 * config/arm/aarch-common.c: Likewise.
2893 * config/arm/arm-builtins.c: Likewise.
2894 * config/arm/arm-c.c: Likewise.
2895 * config/arm/arm.c: Likewise.
2896 * config/avr/avr-c.c: Likewise.
2897 * config/avr/avr-devices.c: Likewise.
2898 * config/avr/avr-log.c: Likewise.
2899 * config/avr/avr.c: Likewise.
2900 * config/bfin/bfin.c: Likewise.
2901 * config/c6x/c6x.c: Likewise.
2902 * config/cr16/cr16.c: Likewise.
2903 * config/cris/cris.c: Likewise.
2904 * config/darwin-c.c: Likewise.
2905 * config/darwin-driver.c: Likewise.
2906 * config/darwin.c: Likewise.
2907 * config/default-c.c: Likewise.
2908 * config/epiphany/epiphany.c: Likewise.
2909 * config/epiphany/mode-switch-use.c: Likewise.
2910 * config/epiphany/resolve-sw-modes.c: Likewise.
2911 * config/fr30/fr30.c: Likewise.
2912 * config/frv/frv.c: Likewise.
2913 * config/ft32/ft32.c: Likewise.
2914 * config/glibc-c.c: Likewise.
2915 * config/h8300/h8300.c: Likewise.
2916 * config/i386/host-cygwin.c: Likewise.
2917 * config/i386/host-mingw32.c: Likewise.
2918 * config/i386/i386-c.c: Likewise.
2919 * config/i386/i386.c: Likewise.
2920 * config/i386/msformat-c.c: Likewise.
2921 * config/i386/winnt-cxx.c: Likewise.
2922 * config/i386/winnt-stubs.c: Likewise.
2923 * config/i386/winnt.c: Likewise.
2924 * config/ia64/ia64-c.c: Likewise.
2925 * config/ia64/ia64.c: Likewise.
2926 * config/iq2000/iq2000.c: Likewise.
2927 * config/lm32/lm32.c: Likewise.
2928 * config/m32c/m32c-pragma.c: Likewise.
2929 * config/m32c/m32c.c: Likewise.
2930 * config/m32r/m32r.c: Likewise.
2931 * config/mcore/mcore.c: Likewise.
2932 * config/mep/mep-pragma.c: Likewise.
2933 * config/mep/mep.c: Likewise.
2934 * config/microblaze/microblaze-c.c: Likewise.
2935 * config/microblaze/microblaze.c: Likewise.
2936 * config/mips/mips-tables.opt
2937 * config/mips/mips.c: Likewise.
2938 * config/mmix/mmix.c: Likewise.
2939 * config/mn10300/mn10300.c: Likewise.
2940 * config/moxie/moxie.c: Likewise.
2941 * config/msp430/msp430-c.c: Likewise.
2942 * config/msp430/msp430.c: Likewise.
2943 * config/nds32/nds32-cost.c: Likewise.
2944 * config/nds32/nds32-fp-as-gp.c: Likewise.
2945 * config/nds32/nds32-intrinsic.c: Likewise.
2946 * config/nds32/nds32-isr.c: Likewise.
2947 * config/nds32/nds32-md-auxiliary.c: Likewise.
2948 * config/nds32/nds32-memory-manipulation.c: Likewise.
2949 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
2950 * config/nds32/nds32-predicates.c: Likewise.
2951 * config/nds32/nds32.c: Likewise.
2952 * config/nios2/nios2.c: Likewise.
2953 * config/nvptx/mkoffload.c: Likewise.
2954 * config/nvptx/nvptx.c: Likewise.
2955 * config/pa/pa.c: Likewise.
2956 * config/pdp11/pdp11.c: Likewise.
2957 * config/rl78/rl78-c.c: Likewise.
2958 * config/rl78/rl78.c: Likewise.
2959 * config/rs6000/host-darwin.c: Likewise.
2960 * config/rs6000/rs6000-c.c: Likewise.
2961 * config/rs6000/rs6000-linux.c: Likewise.
2962 * config/rs6000/rs6000.c: Likewise.
2963 * config/rx/rx.c: Likewise.
2964 * config/s390/s390-c.c: Likewise.
2965 * config/s390/s390.c: Likewise.
2966 * config/sh/sh-c.c: Likewise.
2967 * config/sh/sh-mem.cc: Likewise.
2968 * config/sh/sh.c: Likewise.
2969 * config/sh/sh_optimize_sett_clrt.cc: Likewise.
2970 * config/sh/sh_treg_combine.cc: Likewise.
2971 * config/sol2-c.c: Likewise.
2972 * config/sol2-cxx.c: Likewise.
2973 * config/sol2-stubs.c: Likewise.
2974 * config/sol2.c: Likewise.
2975 * config/sparc/sparc-c.c: Likewise.
2976 * config/sparc/sparc.c: Likewise.
2977 * config/spu/spu-c.c: Likewise.
2978 * config/spu/spu.c: Likewise.
2979 * config/stormy16/stormy16.c: Likewise.
2980 * config/v850/v850-c.c: Likewise.
2981 * config/v850/v850.c: Likewise.
2982 * config/vax/vax.c: Likewise.
2983 * config/visium/visium.c: Likewise.
2984 * config/vms/vms-c.c: Likewise.
2985 * config/vms/vms.c: Likewise.
2986 * config/vxworks.c: Likewise.
2987 * config/winnt-c.c: Likewise.
2988 * config/xtensa/xtensa.c: Likewise.
2990 2015-10-16 Christian Bruel <christian.bruel@st.com>
2993 * config/arm/arm.h (FUNCTION_BOUNDARY): Use FUNCTION_BOUNDARY_P.
2994 (FUNCTION_BOUNDARY_P): New macro:
2995 * config/arm/arm.c (TARGET_RELAYOUT_FUNCTION, arm_relayout_function):
2997 * doc/tm.texi.in (TARGET_RELAYOUT_FUNCTION): Document.
2998 * doc/tm.texi (TARGET_RELAYOUT_FUNCTION): New hook.
2999 * gcc/target.def (TARGET_RELAYOUT_FUNCTION): Likewise.
3000 * gcc/function.c (allocate_struct_function): Call
3001 relayout_function hook.
3002 * gcc/passes.c (rest_of_decl_compilation): Likewise.
3004 2015-10-16 Christian Bruel <christian.bruel@st.com>
3007 * config/arm/arm.h (FUNCTION_BOUNDARY): Move optimize_size condition to:
3008 * config/arm/arm.c (arm_option_override_internal): Call
3009 arm_override_options_after_change_1.
3010 (arm_override_options_after_change): New function.
3011 (arm_override_options_after_change_1): Likewise.
3012 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define hook.
3014 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
3017 * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
3020 2015-10-16 Eric Botcazou <ebotcazou@adacore.com>
3022 * tree.c (recompute_tree_invariant_for_addr_expr): Assert that the
3023 argument is an ADDR_EXPR.
3025 2015-10-16 Richard Biener <rguenther@suse.de>
3027 * gimple-fold.c (gimple_fold_builtin_memory_op): Use gimple_build
3028 and get rid of force_gimple_operand_gsi.
3029 (gimple_fold_builtin_memory_chk): Likewise.
3030 (gimple_fold_builtin_stxcpy_chk): Likewise.
3031 (rewrite_to_defined_overflow): Likewise.
3032 (gimple_convert_to_ptrofftype): New function.
3033 * gimple-fold.h (gimple_convert_to_ptrofftype): New overload, declare.
3035 2015-10-16 Richard Biener <rguenther@suse.de>
3037 * tree-nested.h (build_addr): Adjust prototype.
3038 * tree-nested.c (build_addr): Remove context argument and use
3040 (get_static_chain): Adjust calls to build_addr.
3041 (convert_nl_goto_reference): Likewise.
3042 (convert_tramp_reference_op): Likewise.
3043 (finalize_nesting_tree_1): Likewise.
3044 * value-prof.c (gimple_ic): Likewise.
3045 * gimple-low.c (lower_builtin_setjmp): Likewise.
3046 * tree-parloops.c (take_address_of): Likewise.
3047 (create_call_for_reduction_1): Likewise.
3048 * tree-profile.c (gimple_gen_interval_profiler): Likewise.
3049 (gimple_gen_ic_func_profiler): Likewise.
3051 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
3053 * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
3056 2015-10-16 Michael Collison <michael.collison@linaro.org>
3057 Andrew Pinski <andrew.pinski@caviumnetworks.com>
3059 * match.pd ((x < y) && (x < z) -> x < min (y,z),
3060 (x > y) and (x > z) -> x > max (y,z))
3062 2015-10-15 Gregor Richards <gregor.richards@uwaterloo.ca>
3063 Szabolcs Nagy <szabolcs.nagy@arm.com>
3065 * config/microblaze/linux.h (MUSL_DYNAMIC_LINKER): Define.
3066 (DYNAMIC_LINKER): Renamed to ...
3067 (GLIBC_DYNAMIC_LINKER): This.
3068 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_DYNAMIC_LINKER.
3070 2015-10-15 Marek Polacek <polacek@redhat.com>
3072 * tree-ssa-reassoc.c (attempt_builtin_copysign): Call
3073 gimple_call_builtin instead of is_gimple_call.
3075 2015-10-15 Richard Biener <rguenther@suse.de>
3077 * tree-vect-stmts.c (vect_init_vector): Remove unused vars.
3079 2015-10-15 Richard Biener <rguenther@suse.de>
3081 * tree-vectorizer.h (vect_get_new_ssa_name): Declare.
3082 * tree-vect-data-refs.c (vect_get_new_ssa_name): New helper.
3083 * tree-vect-loop.c (get_initial_def_for_induction): Drop
3084 use of force_gimple_operand in favor of gimple_build.
3085 Use vect_get_new_ssa_name.
3086 * tree-vect-stmts.c (vect_init_vector): Use vect_get_new_ssa_name.
3087 (vectorizable_mask_load_store): Likewise.
3088 (vectorizable_call): Likewise.
3089 (vectorizable_store): Likewise.
3090 (vectorizable_load): Likewise.
3091 (vect_get_vec_def_for_stmt_copy): Remove redundant stmt.
3093 2015-10-15 Richard Sandiford <richard.sandiford@arm.com>
3095 PR tree-optimization/67945
3096 * tree-pass.h (PROP_gimple_opt_math): New property flag.
3097 * generic-match-head.c (canonicalize_math_p): New function.
3098 * gimple-match-head.c: Include tree-pass.h.
3099 (canonicalize_math_p): New function.
3100 * match.pd: Group math built-in rules into simplifications
3101 and canonicalizations. Guard the latter with canonicalize_math_p.
3102 * tree-ssa-math-opts.c (pass_data_cse_sincos): Provide the
3103 PROP_gimple_opt_math property.
3105 2015-10-15 Marek Polacek <polacek@redhat.com>
3107 PR tree-optimization/67953
3108 * match.pd (X - (X / Y) * Y): Don't change signedness of @0.
3110 2015-10-15 Jiong Wang <jiong.wang@arm.com>
3112 * config.gcc: Recognize "." in architecture base name for AArch64.
3114 2015-10-14 Uros Bizjak <ubizjak@gmail.com>
3116 * config/mips/mips.h (MIPS_STACK_ALIGN): Implement using
3118 * config/mips/mips.c (mips_setup_incoming_varargs): Use
3119 ROUND_DOWN to calculate off.
3120 (mips_gimplify_va_arg_expr): Use ROUND_UP to calculate rsize.
3121 (mips_emit_probe_stack_range): Use ROUND_DOWN to calculate
3124 2015-10-14 Eric Botcazou <ebotcazou@adacore.com>
3126 * gimplify.c (gimplify_addr_expr) <MEM_REF>: New case.
3128 2015-10-14 Peter Bergner <bergner@vnet.ibm.com>
3129 Torvald Riegel <triegel@redhat.com>
3132 * config/rs6000/htm.md (UNSPEC_HTM_FENCE): New.
3133 (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
3134 trechkpt, treclaim, tsr, ttest): Rename define_insns from this...
3135 (*tabort, *tabort<wd>c, *tabort<wd>ci, *tbegin, *tcheck, *tend,
3136 *trechkpt, *treclaim, *tsr, *ttest): ...to this. Add memory barrier.
3137 (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
3138 trechkpt, treclaim, tsr, ttest): New define_expands.
3139 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
3140 __TM_FENCE__ for htm.
3141 * doc/extend.texi: Update documentation for htm builtins.
3143 2015-10-14 Uros Bizjak <ubizjak@gmail.com>
3146 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Do not add
3147 REG_CFA_EXPRESSION to aligned SSE stores.
3149 2015-10-14 Jeff Law <law@redhat.com>
3151 * tree-ssa-threadupdate.c (thread_through_all_blocks): Bump
3152 num_threaded_edges for successful FSM threads too.
3154 2015-10-14 Richard Biener <rguenther@suse.de>
3156 * tree-vectorizer.h (vect_is_simple_use): Remove unused parameters.
3157 (vect_is_simple_use_1): Likewise. Make overload of vect_is_simple_use.
3158 (vect_get_vec_def_for_operand): Remove unused parameter.
3159 * tree-vect-loop.c (get_initial_def_for_induction): Adjust.
3160 (vect_create_epilog_for_reduction): Likewise.
3161 (vectorizable_reduction): Likewise.
3162 (vectorizable_live_operation): Likewise.
3163 * tree-vect-patterns.c (type_conversion_p): Likewise.
3164 (vect_recog_vector_vector_shift_pattern): Likewise.
3165 (check_bool_pattern): Likewise.
3166 * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
3167 (vect_analyze_slp_cost_1): Likewise.
3168 * tree-vect-stmts.c (process_use): Likewise.
3169 (vect_get_vec_def_for_operand): Do not handle reductions.
3170 (vect_get_vec_defs): Adjust.
3171 (vectorizable_mask_load_store): Likewise.
3172 (vectorizable_call): Likewise.
3173 (vectorizable_simd_clone_call): Likewise.
3174 (vect_get_loop_based_defs): Likewise.
3175 (vectorizable_conversion): Likewise.
3176 (vectorizable_assignment): Likewise.
3177 (vectorizable_shift): Likewise.
3178 (vectorizable_operation): Likewise.
3179 (vectorizable_store): Likewise.
3180 (vectorizable_load): Likewise.
3181 (vect_is_simple_cond): Likewise.
3182 (vectorizable_condition): Likewise.
3183 (vect_is_simple_use): Remove unused parameters.
3184 (vect_is_simple_use_1): Adjust and rename.
3186 2015-10-14 Richard Biener <rguenther@suse.de>
3188 PR tree-optimization/67915
3189 * match.pd: Handle comparisons of addresses of STRING_CSTs.
3190 * gimplify.c (gimplify_cond_expr): Fold the GIMPLE conds we build.
3191 * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove GENERIC
3192 stmt folding in favor of GIMPLE one.
3194 2015-10-14 Marek Polacek <polacek@redhat.com>
3196 PR tree-optimization/67815
3197 * tree-ssa-reassoc.c (attempt_builtin_copysign): New function.
3198 (reassociate_bb): Call it.
3200 2015-10-14 Richard Biener <rguenther@suse.de>
3202 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
3203 Reset info at start.
3204 (vect_analyze_group_access_1): Add debug print.
3205 * tree-vect-loop.c (vect_get_single_scalar_iteration_cost): Rename ...
3206 (vect_compute_single_scalar_iteration_cost): ... to this.
3207 (vect_analyze_loop_2): Adjust.
3208 * tree-vect-slp.c (struct _slp_oprnd_info): Move from ...
3209 * tree-vectorizer.h: ... here.
3210 (add_stmt_info_to_vec): Remove.
3211 * tree-vect-stmts.c (record_stmt_cost): Inline add_stmt_info_to_vec.
3213 2015-10-14 Dominik Vogt <vogt@linux.vnet.ibm.com>
3215 * targhooks.c (default_target_option_pragma_parse): Do not warn if
3216 called on behalf of "#pragma GCC pop_options".
3218 2015-10-14 Tom de Vries <tom@codesourcery.com>
3220 * cfganal.c (verify_no_unreachable_blocks): New function.
3221 (inverted_post_order_compute) [ENABLE_CHECKING]: Call
3222 verify_no_unreachable_blocks.
3223 cfganal.h (verify_no_unreachable_blocks): Declare.
3225 2015-10-13 Mikhail Maltsev <maltsevm@gmail.com>
3227 * common.opt: Add flag_checking.
3228 * system.h (CHECKING_P): Define.
3230 2015-10-13 Jakub Jelinek <jakub@redhat.com>
3231 Aldy Hernandez <aldyh@redhat.com>
3232 Ilya Verbin <ilya.verbin@intel.com>
3234 * builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
3235 BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
3236 BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
3237 BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
3238 BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
3239 BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
3240 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
3241 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
3242 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
3243 BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
3244 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
3245 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
3246 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
3247 * cgraph.h (enum cgraph_simd_clone_arg_type): Add
3248 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP,
3249 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
3250 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
3251 (struct cgraph_simd_clone_arg): Adjust comment.
3252 * coretypes.h (struct gomp_ordered): New forward decl.
3253 * gimple.c (gimple_build_omp_critical): Add CLAUSES argument,
3254 set critical clauses to it.
3255 (gimple_build_omp_ordered): Return gomp_ordered * instead of
3256 gimple *. Add CLAUSES argument, set ordered clauses to it.
3257 (gimple_copy): Unshare clauses on GIMPLE_OMP_CRITICAL and
3259 * gimple.def (GIMPLE_OMP_ORDERED): Change from GSS_OMP to
3260 GSS_OMP_SINGLE_LAYOUT, move it after GIMPLE_OMP_TEAMS.
3261 * gimple.h (enum gf_mask): Add GF_OMP_TASK_TASKLOOP. Add another bit
3262 to GF_OMP_FOR_KIND_MASK mask. Add GF_OMP_FOR_KIND_TASKLOOP, renumber
3263 GF_OMP_FOR_KIND_CILKFOR and GF_OMP_FOR_KIND_OACC_LOOP. Adjust
3264 GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED and GF_OMP_FOR_COMBINED_INTO.
3265 Add another bit to GF_OMP_TARGET_KIND_MASK mask. Add
3266 GF_OMP_TARGET_KIND_ENTER_DATA and GF_OMP_TARGET_KIND_EXIT_DATA,
3268 GF_OMP_TARGET_KIND_OACC_{PARALLEL,KERNELS,DATA,UPDATE,ENTER_EXIT_DATA}.
3269 (gomp_critical): Add clauses field.
3270 (gomp_ordered): New struct.
3271 (is_a_helper <gomp_ordered *>::test): New inline.
3272 (gimple_build_omp_critical): Add CLAUSES argument.
3273 (gimple_build_omp_ordered): Likewise. Return gomp_ordered *
3274 instead of gimple *.
3275 (gimple_omp_critical_clauses, gimple_omp_critical_clauses_ptr,
3276 gimple_omp_critical_set_clauses, gimple_omp_ordered_clauses,
3277 gimple_omp_ordered_clauses_ptr, gimple_omp_ordered_set_clauses,
3278 gimple_omp_task_taskloop_p, gimple_omp_task_set_taskloop_p): New
3280 * gimple-pretty-print.c (dump_gimple_omp_for): Handle taskloop.
3281 (dump_gimple_omp_target): Handle enter data and exit data.
3282 (dump_gimple_omp_block): Don't handle GIMPLE_OMP_ORDERED here.
3283 (dump_gimple_omp_critical): Print clauses.
3284 (dump_gimple_omp_ordered): New function.
3285 (dump_gimple_omp_task): Handle taskloop.
3286 (pp_gimple_stmt_1): Use dump_gimple_omp_ordered for
3288 * gimple-walk.c (walk_gimple_op): Walk clauses on
3289 GIMPLE_OMP_CRITICAL and GIMPLE_OMP_ORDERED.
3290 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_0LEN_ARRAY.
3291 (enum omp_region_type): Add ORT_COMBINED_TARGET and ORT_NONE.
3292 (struct gimplify_omp_ctx): Add loop_iter_var,
3293 target_map_scalars_firstprivate, target_map_pointers_as_0len_arrays
3294 and target_firstprivatize_array_bases fields.
3295 (delete_omp_context): Release loop_iter_var.
3296 (gimplify_bind_expr): Handle ORT_NONE.
3297 (maybe_fold_stmt): Adjust check for ORT_TARGET for the addition of
3298 ORT_COMBINED_TARGET.
3299 (is_gimple_stmt): Return true for OMP_TASKLOOP, OMP_TEAMS and
3300 OMP_TARGET{,_DATA,_UPDATE,_ENTER_DATA,_EXIT_DATA}.
3301 (omp_firstprivatize_variable): Handle ORT_NONE. Adjust check for
3302 ORT_TARGET for the addition of ORT_COMBINED_TARGET. Handle
3303 ctx->target_map_scalars_firstprivate.
3304 (omp_add_variable): Handle ORT_NONE. Allow map clause together with
3305 data sharing clauses. For data sharing clause with VLA decl
3306 on omp target/target data don't add firstprivate for the pointer.
3307 Call omp_notice_variable on TYPE_SIZE_UNIT only if it is a DECL_P.
3308 (omp_notice_threadprivate_variable): Adjust check for ORT_TARGET for
3309 the addition of ORT_COMBINED_TARGET.
3310 (omp_notice_variable): Handle ORT_NONE. Adjust check for ORT_TARGET
3311 for the addition of ORT_COMBINED_TARGET. Handle implicit mapping of
3312 pointers as zero length array sections and
3313 ctx->target_map_scalars_firstprivate mapping of scalars as firstprivate
3315 (omp_check_private): Handle omp_member_access_dummy_var vars.
3316 (find_decl_expr): New function.
3317 (gimplify_scan_omp_clauses): Add CODE argument. For OMP_CLAUSE_IF
3318 complain if OMP_CLAUSE_IF_MODIFIER is present and does not match code.
3319 Handle OMP_CLAUSE_GANG separately. Handle
3320 OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
3321 clauses. Diagnose linear clause on combined
3322 distribute {, parallel for} simd construct, unless it is the loop
3323 iterator. Handle struct element GOMP_MAP_FIRSTPRIVATE_POINTER.
3324 Handle map clauses with COMPONENT_REF. Initialize
3325 ctx->target_map_scalars_firstprivate,
3326 ctx->target_firstprivatize_array_bases and
3327 ctx->target_map_pointers_as_0len_arrays. Add firstprivate for
3328 linear clause even to target region if combined. Remove
3329 map clauses with GOMP_MAP_FIRSTPRIVATE_POINTER kind from
3330 OMP_TARGET_{,ENTER_,EXIT_}DATA. For GOMP_MAP_FIRSTPRIVATE_POINTER
3331 map kind with non-INTEGER_CST OMP_CLAUSE_SIZE firstprivatize the bias.
3332 Handle OMP_CLAUSE_DEPEND_{SINK,SOURCE}. Handle
3333 OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.
3334 For linear clause on worksharing loop combined with parallel add
3335 shared clause on the parallel. Handle OMP_CLAUSE_REDUCTION
3336 with MEM_REF OMP_CLAUSE_DECL. Set DECL_NAME on
3337 omp_member_access_dummy_var vars. Add lastprivate clause to outer
3339 (gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_0LEN_ARRAY.
3340 If gimplify_omp_ctxp->target_firstprivatize_array_bases, use
3341 GOMP_MAP_FIRSTPRIVATE_POINTER map kind instead of
3343 (gimplify_adjust_omp_clauses): Add CODE argument. Handle removal
3344 of GOMP_MAP_FIRSTPRIVATE_POINTER struct elements for struct not seen
3345 in target body. Handle removal of struct mapping if struct is not
3346 seen in target body. Remove GOMP_MAP_STRUCT map clause on
3347 OMP_TARGET_EXIT_DATA. Adjust check for ORT_TARGET for the
3348 addition of ORT_COMBINED_TARGET. Use GOMP_MAP_FIRSTPRIVATE_POINTER
3349 instead of GOMP_MAP_POINTER if ctx->target_firstprivatize_array_bases
3350 for VLAs. Set OMP_CLAUSE_MAP_PRIVATE if both data sharing and map
3351 clause appear together. Handle
3352 OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}. Don't remove map
3353 clause if it has map-type-modifier always. Handle
3354 OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
3356 (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task):
3357 Adjust gimplify_scan_omp_clauses and gimplify_adjust_omp_clauses
3359 (gimplify_omp_for): Likewise. Handle OMP_TASKLOOP. Initialize
3360 loop_iter_var. Use OMP_FOR_ORIG_DECLS. Fix handling of lastprivate
3361 iterators in doacross loops.
3362 (gimplify_omp_workshare): Adjust gimplify_scan_omp_clauses and
3363 gimplify_adjust_omp_clauses callers. Use ORT_COMBINED_TARGET
3364 for OMP_TARGET_COMBINED. Adjust check for ORT_TARGET
3365 for the addition of ORT_COMBINED_TARGET.
3366 (gimplify_omp_target_update): Adjust gimplify_scan_omp_clauses and
3367 gimplify_adjust_omp_clauses callers. Handle OMP_TARGET_ENTER_DATA
3368 and OMP_TARGET_EXIT_DATA.
3369 (gimplify_omp_ordered): New function.
3370 (gimplify_expr): Handle OMP_TASKLOOP, OMP_TARGET_ENTER_DATA and
3371 OMP_TARGET_EXIT_DATA. Use gimplify_omp_ordered for OMP_ORDERED.
3372 Gimplify clauses on OMP_CRITICAL.
3373 * internal-fn.c (expand_GOMP_SIMD_ORDERED_START,
3374 expand_GOMP_SIMD_ORDERED_END): New functions.
3375 * internal-fn.def (GOMP_SIMD_ORDERED_START,
3376 GOMP_SIMD_ORDERED_END): New internal functions.
3377 * omp-builtins.def (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
3378 BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
3379 BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
3380 BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
3381 BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
3382 BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
3383 BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
3384 BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
3385 BUILT_IN_GOMP_DOACROSS_POST, BUILT_IN_GOMP_DOACROSS_WAIT,
3386 BUILT_IN_GOMP_DOACROSS_ULL_POST, BUILT_IN_GOMP_DOACROSS_ULL_WAIT,
3387 BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA, BUILT_IN_GOMP_TASKLOOP,
3388 BUILT_IN_GOMP_TASKLOOP_ULL): New built-ins.
3389 (BUILT_IN_GOMP_TASK): Add INT argument to the end.
3390 (BUILT_IN_GOMP_TARGET): Rename from GOMP_target to GOMP_target_41,
3392 (BUILT_IN_GOMP_TARGET_DATA): Rename from GOMP_target_data to
3393 GOMP_target_data_41, adjust type.
3394 (BUILT_IN_GOMP_TARGET_UPDATE): Rename from GOMP_target_update to
3395 GOMP_target_update_41, adjust type.
3396 * omp-low.c (struct omp_region): Adjust comments, add ord_stmt
3398 (struct omp_for_data): Add ordered and simd_schedule fields.
3399 (omp_member_access_dummy_var, unshare_and_remap_1,
3400 unshare_and_remap, is_taskloop_ctx): New functions.
3401 (is_taskreg_ctx): Use is_parallel_ctx and is_task_ctx.
3402 (extract_omp_for_data): Handle taskloops and doacross loops
3403 and simd schedule modifier.
3404 (omp_adjust_chunk_size): New function.
3405 (get_ws_args_for): Use it.
3406 (lookup_sfield): Change first argument to splay_tree_key,
3407 add overload with first argument tree.
3408 (maybe_lookup_field): Likewise.
3409 (use_pointer_for_field): Handle omp_member_access_dummy_var.
3410 (omp_copy_decl_2): If var is TREE_ADDRESSABLE listed in
3411 task_shared_vars, clear TREE_ADDRESSABLE on the copy.
3412 (build_outer_var_ref): Add LASTPRIVATE argument, handle
3413 taskloops and omp_member_access_dummy_var vars.
3414 (build_sender_ref): Change first argument to splay_tree_key,
3415 add overload with first argument tree.
3416 (install_var_field): For mask & 8 use &DECL_UID as key instead
3418 (fixup_child_record_type): Const qualify *.omp_data_i.
3419 (scan_sharing_clauses): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE,
3420 C/C++ array reductions, OMP_CLAUSE_{IS,USE}_DEVICE_PTR clauses,
3421 OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,SIMDLEN,THREADS,SIMD} and
3422 OMP_CLAUSE_{NOGROUP,DEFAULTMAP} clauses, OMP_CLAUSE__LOOPTEMP_ clause
3423 on taskloop, GOMP_MAP_FIRSTPRIVATE_POINTER, OMP_CLAUSE_MAP_PRIVATE.
3424 (create_omp_child_function): Set TREE_READONLY on .omp_data_i.
3425 (find_combined_for): Allow searching for different GIMPLE_OMP_FOR
3427 (add_taskreg_looptemp_clauses): New function.
3428 (scan_omp_parallel): Use it.
3429 (scan_omp_task): Likewise.
3430 (finish_taskreg_scan): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
3431 For taskloop, move fields for the first two _LOOPTEMP_ clauses first.
3432 (check_omp_nesting_restrictions): Handle GF_OMP_TARGET_KIND_ENTER_DATA
3433 and GF_OMP_TARGET_KIND_EXIT_DATA. Formatting fixes. Allow the
3434 sandwiched taskloop constructs. Type check
3435 OMP_CLAUSE_DEPEND_{KIND,SOURCE}. Allow ordered simd inside of simd
3436 region. Diagnose depend(source) or depend(sink:...) on
3437 target constructs or task/taskloop.
3438 (handle_simd_reference): Use get_name.
3439 (lower_rec_input_clauses): Likewise. Ignore all
3440 OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses on taskloop construct.
3441 Allow _LOOPTEMP_ clause on GOMP_TASK. Unshare new_var
3442 before passing it to omp_clause_{default,copy}_ctor. Handle
3443 OMP_CLAUSE_REDUCTION with MEM_REF OMP_CLAUSE_DECL. Set
3444 lastprivate_firstprivate flag for linear that needs copyin and
3445 copyout. Use BUILT_IN_ALLOCA_WITH_ALIGN instead of BUILT_IN_ALLOCA.
3446 (lower_lastprivate_clauses): For OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE
3447 on taskloop lookup decl in outer context. Pass true to
3448 build_outer_var_ref lastprivate argument. Handle
3449 OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV lastprivate if the decl is global
3450 outside of outer taskloop for.
3451 (lower_reduction_clauses): Handle OMP_CLAUSE_REDUCTION with MEM_REF
3453 (lower_send_clauses): Ignore first two _LOOPTEMP_ clauses in taskloop
3454 GOMP_TASK. Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE. Handle
3455 omp_member_access_dummy_var vars. Handle OMP_CLAUSE_REDUCTION
3456 with MEM_REF OMP_CLAUSE_DECL. Use new lookup_sfield overload.
3457 (lower_send_shared_vars): Ignore fields with NULL or FIELD_DECL
3458 abstract origin. Handle omp_member_access_dummy_var vars.
3459 (expand_parallel_call): Use expand_omp_build_assign.
3460 (expand_task_call): Handle taskloop construct expansion. Add
3461 REGION argument. Use GOMP_TASK_* defines instead of hardcoded
3462 integers. Add priority argument to GOMP_task* calls. Or in
3463 GOMP_TASK_FLAG_PRIORITY into flags if priority is present for
3465 (expand_omp_build_assign): Add prototype. Add AFTER
3466 argument, if true emit statements after *GSI_P and continue linking.
3467 (expand_omp_taskreg): Adjust expand_task_call caller.
3468 (expand_omp_for_init_counts): Rename zero_iter_bb argument to
3469 zero_iter1_bb and first_zero_iter to first_zero_iter1, add
3470 zero_iter2_bb and first_zero_iter2 arguments, handle computation
3471 of counts even for ordered loops.
3472 (expand_omp_for_init_vars): Handle GOMP_TASK inner_stmt.
3473 (expand_omp_ordered_source, expand_omp_ordered_sink,
3474 expand_omp_ordered_source_sink, expand_omp_for_ordered_loops): New
3476 (expand_omp_for_generic): Use omp_adjust_chunk_size. Handle linear
3477 clauses on worksharing loop. Handle DOACROSS loop expansion.
3478 (expand_omp_for_static_nochunk): Handle linear clauses on
3479 worksharing loop. Adjust expand_omp_for_init_counts
3481 (expand_omp_for_static_chunk): Likewise. Use omp_adjust_chunk_size.
3482 (expand_omp_simd): Handle addressable fd->loop.v. Adjust
3483 expand_omp_for_init_counts callers.
3484 (expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): New
3486 (expand_omp_for): Call expand_omp_taskloop_for_* for taskloop.
3487 Handle doacross loops.
3488 (expand_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
3489 GF_OMP_TARGET_KIND_EXIT_DATA. Pass flags and depend arguments to
3490 GOMP_target_{41,update_41,enter_exit_data} libcalls.
3491 (expand_omp): Don't expand ordered depend constructs here, record
3492 ord_stmt instead for later expand_omp_for_generic.
3493 (build_omp_regions_1): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
3494 GF_OMP_TARGET_KIND_EXIT_DATA. Treat GIMPLE_OMP_ORDERED with depend
3495 clause as stand-alone directive.
3496 (lower_omp_ordered_clauses): New function.
3497 (lower_omp_ordered): Handle OMP_CLAUSE_SIMD, for OMP_CLAUSE_DEPEND
3498 don't lower anything.
3499 (lower_omp_for_lastprivate): Use last _looptemp_ clause
3500 on taskloop for comparison.
3501 (lower_omp_for): Handle taskloop constructs. Adjust OMP_CLAUSE_DECL
3502 and OMP_CLAUSE_LINEAR_STEP so that expand_omp_for_* can use it during
3503 expansion for linear adjustments.
3504 (create_task_copyfn): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
3505 (lower_depend_clauses): Assert not seeing sink/source depend kinds.
3506 Set TREE_ADDRESSABLE on array. Change first argument from gimple *
3507 to tree * pointing to the stmt's clauses.
3508 (lower_omp_taskreg): Adjust lower_depend_clauses caller.
3509 (lower_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA
3510 and GF_OMP_TARGET_KIND_EXIT_DATA, depend clauses,
3511 GOMP_MAP_{RELEASE,ALWAYS_{TO,FROM,TOFROM},FIRSTPRIVATE_POINTER,STRUCT}
3512 map kinds, OMP_CLAUSE_{FIRSTPRIVATE,PRIVATE,{IS,USE}_DEVICE_PTR
3513 clauses. Always use short kind and 8-bit align shift.
3514 (lower_omp_regimplify_p): Use IS_TYPE_OR_DECL_P macro.
3515 (struct lower_omp_regimplify_operands_data): New type.
3516 (lower_omp_regimplify_operands_p, lower_omp_regimplify_operands):
3518 (lower_omp_1): Use lower_omp_regimplify_operands instead of
3519 gimple_regimplify_operands.
3520 (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
3521 GF_OMP_TARGET_KIND_EXIT_DATA. Treat GIMPLE_OMP_ORDERED with depend
3522 clause as stand-alone directive.
3523 (simd_clone_clauses_extract): Honor OMP_CLAUSE_LINEAR_KIND.
3524 (simd_clone_mangle): Mangle the various linear kinds
3526 (simd_clone_adjust_argument_types): Handle
3527 SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP.
3528 (simd_clone_init_simd_arrays): Don't do anything for uval.
3529 (simd_clone_adjust): Handle
3530 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
3531 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.
3532 Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP.
3533 * omp-low.h (omp_member_access_dummy_var): New prototype.
3534 * passes.def (pass_simduid_cleanup): Schedule another copy of the
3535 pass after all optimizations.
3536 * tree.c (omp_clause_code_name): Add entries for
3537 OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
3538 and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
3539 (omp_clause_num_ops): Likewise. Bump number of OMP_CLAUSE_REDUCTION
3540 arguments to 5 and for OMP_CLAUSE_ORDERED to 1.
3541 (walk_tree_1): Adjust for OMP_CLAUSE_ORDERED having 1 argument and
3542 OMP_CLAUSE_REDUCTION 5 arguments. Handle
3543 OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
3544 and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}
3546 * tree-core.h (enum omp_clause_linear_kind): New.
3547 (struct tree_omp_clause): Change type of map_kind
3548 from unsigned char to unsigned int. Add subcode.if_modifier
3549 and subcode.linear_kind fields.
3550 (enum omp_clause_code): Add
3551 OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
3552 and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
3553 (OMP_CLAUSE_REDUCTION): Document
3554 OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
3555 (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_{SOURCE,SINK}.
3556 * tree.def (OMP_FOR): Add OMP_FOR_ORIG_DECLS operand.
3557 (OMP_CRITICAL): Move before OMP_SINGLE. Add OMP_CRITICAL_CLAUSES
3559 (OMP_ORDERED): Move before OMP_SINGLE. Add OMP_ORDERED_CLAUSES
3561 (OMP_TASKLOOP, OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA): New tree
3563 * tree.h (OMP_BODY): Replace OMP_CRITICAL with OMP_TASKGROUP.
3564 (OMP_CLAUSE_SET_MAP_KIND): Cast to unsigned int rather than unsigned
3566 (OMP_CRITICAL_NAME): Adjust to be 3rd operand instead of 2nd.
3567 (OMP_CLAUSE_NUM_TASKS_EXPR): Formatting fix.
3568 (OMP_STANDALONE_CLAUSES): Adjust to cover OMP_TARGET_{ENTER,EXIT}_DATA.
3569 (OMP_CLAUSE_DEPEND_SINK_NEGATIVE, OMP_TARGET_COMBINED,
3570 OMP_CLAUSE_MAP_PRIVATE, OMP_FOR_ORIG_DECLS, OMP_CLAUSE_IF_MODIFIER,
3571 OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION, OMP_CRITICAL_CLAUSES,
3572 OMP_CLAUSE_PRIVATE_TASKLOOP_IV, OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV,
3573 OMP_CLAUSE_HINT_EXPR, OMP_CLAUSE_SCHEDULE_SIMD,
3574 OMP_CLAUSE_LINEAR_KIND, OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
3575 OMP_CLAUSE_SHARED_FIRSTPRIVATE, OMP_ORDERED_CLAUSES,
3576 OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES,
3577 OMP_CLAUSE_NUM_TASKS_EXPR, OMP_CLAUSE_GRAINSIZE_EXPR,
3578 OMP_CLAUSE_PRIORITY_EXPR, OMP_CLAUSE_ORDERED_EXPR): Define.
3579 * tree-inline.c (remap_gimple_stmt): Handle clauses on
3580 GIMPLE_OMP_ORDERED and GIMPLE_OMP_CRITICAL. For
3581 IFN_GOMP_SIMD_ORDERED_{START,END} set has_simduid_loops.
3582 * tree-nested.c (convert_nonlocal_omp_clauses): Handle
3583 OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
3584 and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
3585 clauses. Handle OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
3586 (convert_local_omp_clauses): Likewise.
3587 * tree-pretty-print.c (dump_omp_clause): Handle
3588 OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
3589 and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
3590 clauses. Handle OMP_CLAUSE_IF_MODIFIER, OMP_CLAUSE_ORDERED_EXPR,
3591 OMP_CLAUSE_SCHEDULE_SIMD, OMP_CLAUSE_LINEAR_KIND,
3592 OMP_CLAUSE_DEPEND_{SOURCE,SINK}. Use "delete" for
3593 GOMP_MAP_FORCE_DEALLOC. Handle
3594 GOMP_MAP_{ALWAYS_{TO,FROM,TOFROM},RELEASE,FIRSTPRIVATE_POINTER,STRUCT}.
3595 (dump_generic_node): Handle OMP_TASKLOOP, OMP_TARGET_{ENTER,EXIT}_DATA
3596 and clauses on OMP_ORDERED and OMP_CRITICAL.
3597 * tree-vectorizer.c (adjust_simduid_builtins): Adjust comment.
3598 Remove IFN_GOMP_SIMD_ORDERED_{START,END}.
3599 (vectorize_loops): Adjust comments.
3600 (pass_simduid_cleanup::execute): Likewise.
3601 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
3602 SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_CONSTANT_STEP.
3603 * wide-int.h (wi::gcd): New.
3605 2015-10-13 Uros Bizjak <ubizjak@gmail.com>
3607 * config/i386/i386.c (classify_argument): Use CEIL where applicable.
3608 (ix86_function_arg_advance): Ditto.
3609 (ix86_function_arg): Ditto.
3610 (ix86_gimplify_va_arg): Ditto.
3611 (ix86_class_max_nregs): Ditto.
3612 (inline_memory_move_cost): Ditto.
3613 (ix86_set_reg_reg_cost): Ditto.
3614 * config/i386/i386.h (HARD_REGNO_NREGS): Ditto.
3616 2015-10-13 Alexandre Oliva <aoliva@redhat.com>
3619 * expmed.c (store_bit_field_1): Adjust mode of BLKmode inputs.
3621 2015-10-13 Uros Bizjak <ubizjak@gmail.com>
3623 * config/sparc/sparc.h (SPARC_STACK_ALIGN): Implement using
3624 ROUND_UP macro and UNITS_PER_WORD * 2.
3625 * config/sparc/sparc.c (sparc_compute_frame_size):
3626 Use ROUND_UP and ROUND_DOWN macros where applicable.
3627 (function_arg_record_value, function_arg_record_value_1)
3628 (function_arg_record_value_1): Ditto.
3629 (emit_save_or_restore_regs): Use ROUND_DOWN to preserve offset
3630 alignment to double-word.
3631 (sparc_gimplify_va_arg): Use ROUND_UP to calculate rsize.
3632 (sparc_emit_probe_stack_range): Use ROUND_DOWN to calculate
3635 2015-10-13 Nikolai Bozhenov <n.bozhenov@samsung.com>
3637 * gcc/rtl.h (print_insn): Fix prototype.
3639 2015-10-13 Tom de Vries <tom@codesourcery.com>
3641 * tree-parloops.c (reduction_phi): Handle cases that gimple_uid is 0 or
3642 -1. Add assert that returned entry matches phi argument.
3643 (parallelize_loops): Move calls to init_stmt_vec_info_vec and
3644 free_stmt_vec_info_vec ...
3645 (gather_scalar_reductions): ... here. Initialize gimple_uids of phis
3648 2014-10-13 Yuri Rumyantsev <ysrumyan@gmail.com>
3650 PR tree-optimization/67909, 67947
3651 * tree-ssa-loop-unswitch.c (find_loop_guard): Add check that GUARD_EDGE
3652 really skip the inner loop.
3654 2015-10-13 Jeff Law <law@redhat.com>
3656 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
3657 Allow single block jump threading paths.
3659 2015-10-13 Tom de Vries <tom@codesourcery.com>
3661 PR tree-optimization/67476
3662 * doc/invoke.texi (@item parloops-schedule): New item.
3663 * params.def (PARAM_PARLOOPS_SCHEDULE): New DEFPARAMENUM5.
3664 * tree-parloops.c: Include params-enum.h.
3665 (create_parallel_loop): Handle PARAM_PARLOOPS_SCHEDULE.
3667 2015-10-13 Tom de Vries <tom@codesourcery.com>
3669 * Makefile.in (PARAMS_H, PLUGIN_HEADERS): Add params-enum.h.
3670 * params-enum.h: New file.
3671 * opts.c (handle_param): Handle case that param arg is a string.
3672 * params-list.h: Handle DEFPARAMENUM5 in params.def.
3673 * params.c (find_param): New function, factored out of ...
3674 (set_param_value): ... here.
3675 (param_string_value_p): New function.
3676 * params.h (struct param_info): Add value_names field.
3677 (find_param, param_string_value_p): Declare.
3679 2015-10-13 Tom de Vries <tom@codesourcery.com>
3681 PR tree-optimization/67476
3682 * omp-low.c (expand_omp_for_generic): Handle original loop tree.
3684 2015-10-13 Richard Biener <rguenther@suse.de>
3686 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Allocate
3687 the data dependence vector.
3688 (vect_peeling_hash_insert): Get the peeling hash table as argument.
3689 (vect_peeling_hash_get_lowest_cost): Likewise.
3690 (vect_enhance_data_refs_alignment): Adjust.
3691 (struct _vect_peel_info, struct _vect_peel_extended_info,
3692 struct peel_info_hasher): Move from ...
3693 * tree-vectorizer.h: ... here.
3694 (LOOP_VINFO_COST_MODEL_MIN_ITERS): Remove.
3695 (LOOP_VINFO_PEELING_HTAB): Likewise.
3696 (struct _loop_vec_info): Remove min_profitable_iters and
3697 peeling_htab members.
3698 * tree-vect-loop.c (new_loop_vec_info): Do not allocate vectors
3700 (destroy_loop_vec_info): Adjust.
3701 (vect_analyze_loop_2): Do not set LOOP_VINFO_COST_MODEL_MIN_ITERS.
3702 (vect_estimate_min_profitable_iters): Use LOOP_VINFO_COMP_ALIAS_DDRS
3703 to estimate alias versioning cost.
3704 * tree-vect-slp.c (vect_analyze_slp_cost): Dump header.
3706 2015-10-13 Richard Sandiford <richard.sandiford@arm.com>
3708 * real.h (real_isinteger): Declare.
3709 * real.c (real_isinteger): New function.
3710 * match.pd: Simplify pow(|x|,y) and pow(-x,y) to pow(x,y)
3711 if y is an even integer.
3713 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
3716 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
3717 * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
3718 counts when these are more informative.
3720 2015-10-12 Jeff Law <law@redhat.com>
3722 * tree-ssa-threadbackward.c (get_gimple_control_stmt): New function.
3723 (fsm_find_control_stmt_paths): Change name of first argument to
3724 more accurately relfect what it really is. Handle simplification
3725 of GIMPLE_COND after finding a thread path for NAME.
3726 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Allow
3727 nontrivial conditions to be handled by FSM threader.
3728 (thread_through_normal_block): Extract the name to looup via
3729 FSM threader from COND_EXPR.
3731 * tree-ssa-threadbackward.c (fsm_find_thread_path): Remove
3732 restriction that traced SSA_NAME is a user variable.
3734 2015-10-12 Tom de Vries <tom@codesourcery.com>
3736 PR tree-optimization/67476
3737 * omp-low.c (expand_omp_for_generic): Add missing phis.
3739 2015-10-12 Tom de Vries <tom@codesourcery.com>
3741 PR tree-optimization/67476
3742 * omp-low.c (expand_omp_for_generic): Handle simple latch.
3744 2015-10-12 Christophe Lyon <christophe.lyon@linaro.org>
3746 * config/aarch64/aarch64-simd-builtins.def: Update builtins
3747 tables: add tbl3 and tbx4.
3748 * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): New.
3749 (aarch64_tbx4v8qi): New.
3750 * config/aarch64/arm_neon.h (vtbl3_s8, vtbl3_u8, vtbl3_p8)
3751 (vtbl4_s8, vtbl4_u8, vtbl4_p8, vtbx4_s8, vtbx4_u8, vtbx4_p8):
3752 Rewrite using builtin functions.
3753 * config/aarch64/iterators.md (UNSPEC_TBX): New.
3755 2015-10-12 Uros Bizjak <ubizjak@gmail.com>
3757 * config/rs6000/rs6000.h (RS6000_ALIGN): Implement using
3759 * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
3760 Use ROUND_UP and ROUND_DOWN macros where applicable.
3761 (rs6000_darwin64_record_arg_flush): Ditto.
3762 (rs6000_function_arg): Use ROUND_UP to calculate align_words.
3763 (rs6000_emit_probe_stack_range): Use ROUND_DOWN to calculate
3766 2015-10-12 Uros Bizjak <ubizjak@gmail.com>
3768 * config/aarch/aarch64.h (AARCH64_ROUND_UP): Remove.
3769 (AARCH64_ROUND_DOWN): Ditto.
3770 * config/aarch64/aarch64.c: Use ROUND_UP instead of AARCH64_ROUND_UP.
3772 2015-10-12 Richard Biener <rguenther@suse.de>
3775 * ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
3776 code that analyzes IVs on each stmt but in a cheaper way avoiding
3779 2015-10-12 Nick Clifton <nickc@redhat.com>
3781 * config/msp430/msp430.c (msp430_mcu_names): Rename to
3782 msp430_mcu_data, add fields for ISA and hardware multiply
3783 support. Import latest data from the devices.csv file.
3784 (msp430_override_option): Use the data from the new array.
3785 (msp430_use_f5_series_hwmult): Likewise.
3786 (use_32bit_hwmult): Likewise.
3787 (msp430_no_hwmult): Likewise.
3788 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for new
3790 * doc/invoke.texi (MSP430 Options): Note that if the MCU name is
3791 not recognised then no hardware multiply support is assumed and
3792 that only the MSP430 ISA is allowed.
3794 2015-10-12 Richard Biener <rguenther@suse.de>
3796 * tree-vect-loop.c (vect_analyze_loop_operations): Move cost
3798 (vect_analyze_loop_2): ... here.
3800 2015-10-11 Jason Merrill <jason@redhat.com>
3803 * expr.c (store_field): Call store_constructor directly when
3804 storing a CONSTRUCTOR into a target smaller than its type.
3805 Guard against unsafe bitwise copy.
3807 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
3809 * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
3810 counts when these are more informative.
3812 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
3814 * tree-profile.c (tree_profiling): Do not clear
3815 pure/const when not instrumenting.
3816 (pass tree_profile): Add dump of symtab.
3818 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
3820 * fold-const.c (fold_comparsion): Pass OEP_ADDRESS_OF when comparing
3822 (fold_addr_of_array_ref_difference): Likewise.
3824 2015-10-11 Jeff Law <law@redhat.com>
3826 * tree-ssa-threadedge.c (fsm_find_thread_path): Moved from here into
3827 tree-ssa-threadbackward.c.
3828 (fsm_find_control_statement_thread_paths): Likewise.
3829 (thread_through_normal_block): Break out FSM bits and move them
3830 into a new function in tree-ssa-threadbackward.c. Call new function
3832 Minimize header file usage.
3833 * tree-ssa-threadbackward.h: New file.
3834 * tree-ssa-threadbackward.c: Likewise.
3835 * Makefile.in (OBJS): Add tree-ssa-threadbackward.o
3837 2015-10-11 Uros Bizjak <ubizjak@gmail.com>
3839 * config/alpha/alpha.h (ALPHA_ROUND): Implement using ROUND_UP macro.
3841 2015-10-11 Segher Boessenkool <segher@kernel.crashing.org>
3843 PR rtl-optimization/67864
3844 * gcc/bb-reorder (reorder_basic_blocks_simple): Prefer existing
3845 fallthrough edges for conditional jumps. Don't sort candidate
3846 edges if not optimizing for speed.
3848 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3850 * defaults.h (REVERSE_CONDITION): New default definition.
3851 * jump.c (reversed_comparison_code_parts): Adjust.
3853 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3855 * builtins.c (expand_builtin_setjmp_receiver): Don't use #if to
3856 check HARD_FRAME_POINTER_IS_ARG_POINTER.
3858 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3860 * defaults.h (FRAME_ADDR_RTX): New default definition.
3861 * builtins.c (expand_builtin_return_addr): Adjust.
3863 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3865 * defaults.h (DYNAMIC_CHAIN_ADDRESS): New default definition.
3866 * builtins.c (expand_builtin_return_addr): Adjust.
3868 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3870 * defaults.h (SETUP_FRAME_ADDRESSES): New default definition.
3871 * builtins.c (expand_builtin_return_addr): Adjust.
3872 * doc/tm.texi: Likewise.
3873 * doc/tm.texi.in: Likewise.
3874 * except.c (expand_builtin_unwind_init): Likewise.
3876 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3878 * builtins.c (expand_builtin_return_addr): Adjust.
3879 * defaults.h (INITIAL_FRAME_ADDRESS_RTX): New default definition.
3881 2015-10-10 Jan Hubicka <hubicka@ucw.cz>
3883 * tree.c (type_with_interoperable_signedness): New.
3884 (gimple_canonical_types_compatible_p): Use it.
3885 * tree.h (type_with_interoperable_signedness): Declare
3887 2015-10-10 Jan Hubicka <hubicka@ucw.cz>
3889 * fold-const.c (operand_equal_p): Document OEP_ADDRESS_OF
3890 and OEP_CONSTANT_ADDRESS_OF; skip type compatibility checks
3891 when OEP_ADDRESS_OF is se.
3893 2015-10-10 Aditya Kumar <aditya.k7@samsung.com>
3894 Sebastian Pop <s.pop@samsung.com>
3896 * graphite-dependences.c (scop_get_dependences): Add dump of the
3897 data dependence graph.
3898 * graphite-poly.c (print_isl_union_map): New.
3899 (debug_isl_union_map): New.
3900 * graphite-poly.h (print_isl_union_map): Declare.
3901 (debug_isl_union_map): Declare.
3903 2015-10-10 Aditya Kumar <aditya.k7@samsung.com>
3904 Sebastian Pop <s.pop@samsung.com>
3906 * graphite-poly.c (print_iteration_domain): Remove verbosity.
3907 Remove OpenScop formatting.
3908 (print_iteration_domains): Same.
3909 (debug_iteration_domain): Same.
3910 (debug_iteration_domains): Same.
3913 (dump_gbb_cases): Same.
3914 (dump_gbb_conditions): Same.
3917 (print_pbb_body): Same.
3919 (print_scop_params): Same.
3920 (print_scop_context): Same.
3922 (debug_pbb_domain): Same.
3924 (debug_scop_context): Same.
3926 (debug_scop_params): Same.
3927 * graphite-poly.h: Same.
3928 * graphite.c (graphite_transform_loops): Same.
3930 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3932 * function.c (stack_protect_epilogue): Remove as_a<rtx_insn *> ()
3933 call that isn't needed.
3935 2015-10-09 Jeff Law <law@redhat.com>
3937 * tree-ssanames.c (flush_ssaname_freelist): Use splice and truncate
3938 rather than moving each name to the freelist individually.
3940 2015-10-09 Steve Ellcey <sellcey@imgtec.com>
3942 * config.gcc (mips*-*-*): Add frame-header-opt.o to extra_objs.
3943 * frame-header-opt.c: New file.
3944 * config/mips/mips-proto.h (mips_register_frame_header_opt):
3946 * config/mips/mips.c (mips_compute_frame_info): Check
3947 optimize_call_stack flag.
3948 (mips_option_override): Register new frame_header_opt pass.
3949 (mips_frame_info, mips_int_mask, mips_shadow_set,
3950 machine_function): Move these types to...
3951 * config/mips/mips.h: here.
3952 (machine_function): Add does_not_use_frame_header and
3953 optimize_call_stack fields.
3954 * config/mips/t-mips (frame-header-opt.o): Add new make rule.
3955 * doc/invoke.texi (-mframe-header-opt, -mno-frame-header-opt):
3957 * config/mips/mips.opt (mframe-header-opt): Add new option.
3959 2015-10-09 Uros Bizjak <ubizjak@gmail.com>
3961 * config/i386/i386.c
3962 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Use
3963 ROUND_DOWN where applicable.
3965 2015-10-09 Jeff Law <law@redhat.com>
3967 * tree-vect-stmts.c (free_stmt_vec_info): Free the LHS of the
3970 2015-10-09 Renlin Li <renlin.li@arm.com>
3972 * config/arm/neon.md (neon_vuzp<mode>_insn): Add & modifier for
3973 operands[0] and operands[2].
3974 (neon_vtrn<mode>_insn): Likewise.
3975 (neon_vzip<mode>_insn): Likewise.
3977 2015-10-09 Andre Vieira <andre.simoesdiasvieira@arm.com>
3979 * match.pd: ((X inner_op C0) outer_op C1) New pattern.
3980 ((X & C2) << C1): Expand to...
3981 (X {&,^,|} C2 << C1): ...This.
3982 ((X & C2) >> C1): Expand to...
3983 (X {&,^,|} C2 >> C1): ...This.
3985 2015-10-09 Alexander Fomin <alexander.fomin@intel.com>
3988 * config/i386/sse.md (define_insn "sse_cvtsi2ss<round_name>"):
3989 Adjust embedded rounding/SAE specifier position.
3990 (define_insn "sse_cvtsi2ssq<round_name>"): Likewise.
3991 (define_insn "cvtusi2<ssescalarmodesuffix>32<round_name>"): Likewise.
3992 (define_insn "cvtusi2<ssescalarmodesuffix>64<round_name>"): Likewise.
3993 (define_insn "sse2_cvtsi2sdq<round_name>"): Likewise.
3994 (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
3996 (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Likewise.
3998 2015-10-09 Martin Jambor <mjambor@suse.cz>
4000 tree-optimization/67794
4001 * tree-sra.c (replace_removed_params_ssa_names): Do not distinguish
4002 between types of state,ents but accept original definitions as a
4004 (ipa_sra_modify_function_body): Use FOR_EACH_SSA_DEF_OPERAND to
4005 iterate over definitions.
4007 2015-10-09 James Norris <jnorris@codesourcery.com>
4009 * config/rs6000/rs6000.c (rs6000_offload_options): New.
4010 (TARGET_OFFLOAD_OPTIONS): New.
4012 2015-10-09 Alexandre Oliva <aoliva@redhat.com>
4015 * cfgexpand.c (set_parm_rtl): Drop is_gimple_reg test.
4018 * function.c (expand_function_end): Move return value
4019 promotion past the handling of PARALLELs and CONCATs.
4021 PR rtl-optimization/67828
4022 * tree-ssa-loop-unswitch.c: Include tree-ssa.h.
4023 (tree_may_unswitch_on): Don't unswitch on expressions
4024 involving undefined values.
4026 2015-10-09 Richard Biener <rguenther@suse.de>
4028 * genmatch.c (print_operand): Fix formatting.
4029 (dt_node::append_simplify): Warn for multiple simplifiers
4030 that match the same pattern.
4031 * match.pd (log (exp @0)): Remove duplicates.
4033 2015-10-09 Richard Biener <rguenth@suse.de>
4036 * gimple-fold.c (optabs-query.h): Include
4037 (gimple_fold_builtin_memory_op): Allow unaligned stores
4038 when movmisalign_optabs are available.
4040 2015-10-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4043 * config/arm/arm.md (movmisalign<mode>): New.
4044 * config/arm/iterators.md (HSI): New.
4046 2015-10-09 Richard Biener <rguenther@suse.de>
4048 PR tree-optimization/67891
4049 * gimple-match.h (gimple_simplified_result_is_gimple_val):
4051 (gimple_resimplify1): Declare.
4052 (gimple_resimplify2): Likewise.
4053 (gimple_resimplify3): Likewise.
4054 * gimple-match-head.c (gimple_resimplify1): Export.
4055 (gimple_resimplify2): Likewise.
4056 (gimple_resimplify3): Likewise.
4057 (maybe_push_res_to_seq): Use gimple_simplified_result_is_gimple_val.
4058 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
4059 * tree-ssa-sccvn.c (visit_reference_op_load): Use gimple_resimplify1
4060 to avoid creating stmts without VN info.
4062 2015-10-08 Jan Hubicka <hubicka@ucw.cz>
4064 * ipa-icf.c (sem_item::compare_symbol_references): Fix use
4067 2015-10-08 Jeff Law <law@redhat.com>
4069 * value-prof.c (gimple_ic): Add missing calls to unlink_stmt_vdef
4070 and release_ssa_name in two places.
4071 (gimple_stringop_fixed_value): Similarly.
4073 * tree-ssa-loop-im.c (rewrite_bittest): Add missing call to
4076 * tree-stdarg.c (expand_ifn_va_arg_1): Add missing call to
4077 unlink_stmt_vdef and release_ssa_name_fn.
4079 * tree-ssa-dse.c (dse_optimize_stmt): Add missing call to
4082 2015-10-08 H.J. Lu <hongjiu.lu@intel.com>
4084 * config/i386/i386.c (ix86_compute_frame_layout): Round up the
4085 SSE register save area to 16 bytes only if the incoming stack
4086 boundary is no less than 16 bytes.
4088 2015-10-08 Jeff Law <law@redhat.com>
4090 * tree-ssa-phiopt.c (factor_out_conversion): Add missing calls to
4091 release_ssa_name. Fix typo in comment.
4093 2015-10-08 Nathan Sidwell <nathan@acm.org>
4095 * config/nvptx/nvptx.h (struct machine_function): Add comment.
4096 * config/nvptx/nvptx.c (nvptx_declare_function_name): Functions
4097 may return pointer as well as in memory.
4098 (nvptx_output_return): Likewise.
4100 2015-10-08 Richard Sandiford <richard.sandiford@arm.com>
4102 * builtins.c (fold_builtin_sqrt, fold_builtin_cbrt): Delete.
4103 (fold_builtin_1): Update accordingly. Handle constant arguments here.
4104 * match.pd: Add rules previously handled by fold_builtin_sqrt
4105 and fold_builtin_cbrt.
4107 2015-10-08 Richard Sandiford <richard.sandiford@arm.com>
4109 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): New param.
4110 * doc/invoke.texi (--param max-ssa-name-query-depth): Document.
4111 * fold-const.h (tree_unary_nonnegative_warnv_p)
4112 (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
4113 (tree_expr_nonnegative_warnv_p): Add depth parameters.
4114 * fold-const.c: Include gimple-fold.h and params.h.
4115 (tree_ssa_name_nonnegative_warnv_p): New function.
4116 (tree_unary_nonnegative_warnv_p, tree_binary_nonnegative_warnv_p)
4117 (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
4118 (tree_invalid_nonnegative_warnv_p, tree_expr_nonnegative_warnv_p):
4119 Add a depth parameter and increment it for recursive calls to
4120 tree_expr_nonnegative_warnv_p. Use tree_ssa_name_nonnegative_warnv_p
4121 to handle SSA names.
4122 * gimple-fold.h (gimple_val_nonnegative_real_p): Delete.
4123 (gimple_stmt_nonnegative_warnv_p): Declare.
4124 * tree-vrp.c (remove_range_assertions): Remove assert that condition
4125 cannot be proven false.
4126 (gimple_assign_nonnegative_warnv_p, gimple_call_nonnegative_warnv_p)
4127 (gimple_stmt_nonnegative_warnv_p): Move to...
4128 * gimple-fold.c: ...here. Add depth parameters and pass them
4129 down to the tree routines. Accept statements that aren't
4130 assignments or calls but just return false for them.
4131 (gimple_val_nonnegative_real_p): Delete.
4132 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
4133 tree_expr_nonnegative_p instead of gimple_val_nonnegative_real_p.
4134 Check HONOR_NANs first.
4136 2015-10-08 Martin Jambor <mjambor@suse.cz>
4138 * ipa-cp.c (meet_with_1): Make the argument of abs signed. Remove
4141 2015-10-08 Yuri Rumyantsev <ysrumyan@gmail.com>
4143 * tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi
4144 in the tail of outer-loop.
4146 2015-10-08 David Edelsohn <dje.gcc@gmail.com>
4148 * config/rs6000/rs6000.c (rs6000_xcoff_debug_unwind_info): Always
4151 2015-10-08 Yuri Rumyantsev <ysrumyan@gmail.com>
4153 * tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and
4154 "cfghooks.h", add prototypes for introduced new functions.
4155 (tree_ssa_unswitch_loops): Use from innermost loop iterator, move all
4156 checks on ability of loop unswitching to tree_unswitch_single_loop;
4157 invoke tree_unswitch_single_loop or tree_unswitch_outer_loop depending
4158 on innermost loop check.
4159 (tree_unswitch_single_loop): Add all required checks on ability of
4160 loop unswitching under zero recursive level guard.
4161 (tree_unswitch_outer_loop): New function.
4162 (find_loop_guard): Likewise.
4163 (empty_bb_without_guard_p): Likewise.
4164 (used_outside_loop_p): Likewise.
4165 (get_vop_from_header): Likewise.
4166 (hoist_guard): Likewise.
4167 (check_exit_phi): Likewise.
4169 2015-10-08 Marek Polacek <polacek@redhat.com>
4171 * tree-ssa-reassoc.c (dump_ops_vector): Print newline after each
4174 2015-10-08 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4177 * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
4178 create_tmp_var_raw instead of create_tmp_var.
4180 2015-10-07 Jan Hubicka <hubicka@ucw.cz>
4182 * expr.c (store_expr_with_bounds): Handle aggregate moves from
4184 * gimple-expr.c (useless_type_conversion_p): Do not use TYPE_CANONICAL
4185 to define gimple type system; compare aggregates only by size.
4187 2015-10-07 Jeff Law <law@redhat.com>
4189 * tree-ssa-dom.c (optimize_stmt): Don't set LOOPS_NEED_FIXUP here.
4190 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Do it
4191 here instead. Tighten test to avoid setting LOOPS_NEED_FIXUP
4194 2015-10-07 Aditya Kumar <aditya.k7@samsung.com>
4195 Sebastian Pop <s.pop@samsung.com>
4197 * graphite-dependences.c (scop_get_dependences): Do not use SCOP_BBS.
4198 * graphite-isl-ast-to-gimple.c (get_max_schedule_dimensions): Same.
4199 (generate_isl_schedule): Same.
4200 * graphite-optimize-isl.c (scop_get_domains): Same.
4201 (apply_schedule_map_to_scop): Same.
4202 * graphite-poly.c (print_iteration_domains): Same.
4203 (remove_gbbs_in_scop): Same.
4207 * graphite-poly.h (struct scop): Rename bbs to pbbs.
4209 * graphite-scop-detection.c (compare_bb_depths): Remove.
4210 (graphite_sort_dominated_info): Remove.
4211 (try_generate_gimple_bb): Move out of scop_detection.
4212 (all_non_dominated_preds_marked_p): Remove.
4213 (build_scop_bbs_1): Remove.
4214 (build_scop_bbs): Remove.
4215 (nb_pbbs_in_loops): Do not use SCOP_BBS.
4216 (find_scop_parameters): Same.
4217 (sese_dom_walker): Rename gather_bbs.
4218 (before_dom_children): Call try_generate_gimple_bb and collect gbb
4220 (build_scops): Call gather_bbs.
4221 * graphite-sese-to-poly.c (build_scop_scattering): Do not use SCOP_BBS.
4222 (add_conditions_to_constraints): Same.
4223 (build_scop_iteration_domain): Same.
4224 (build_scop_drs): Same.
4225 (new_pbb_from_pbb): Same.
4226 * sese.c (new_sese_info): Create bbs.
4227 * sese.h (struct sese_info_t): Add bbs.
4229 2015-10-07 David Edelsohn <dje.gcc@gmail.com>
4231 * config/rs6000/xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit
4232 encoding in 64-bit mode.
4234 2015-10-07 Uros Bizjak <ubizjak@gmail.com>
4237 * config/i386/i386.c (ix86_option_override_internal): Always use
4238 8-byte minimum stack boundary in 64-bit mode.
4239 (ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY.
4240 (ix86_emit_save_reg_using_mov): Support unaligned SSE store.
4241 Add a REG_CFA_EXPRESSION note if needed.
4242 (ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load.
4243 (ix86_handle_force_align_arg_pointer_attribute): New.
4244 (ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check.
4245 (ix86_attribute_table): Set ix86_force_align_arg_pointer_string
4246 with ix86_handle_force_align_arg_pointer_attribute.
4247 * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD.
4249 2015-10-07 Aditya Kumar <aditya.k7@samsung.com>
4250 Sebastian Pop <s.pop@samsung.com>
4252 * graphite-scop-detection.c (parameter_index_in_region): Remove
4253 use of SESE_ADD_PARAMS.
4254 (find_scop_parameters): Same.
4255 * sese.c (new_sese_info): Same.
4256 * sese.h (struct sese_info_t): Remove add_params.
4257 (SESE_ADD_PARAMS): Remove.
4259 2015-10-07 Aditya Kumar <aditya.k7@samsung.com>
4260 Sebastian Pop <s.pop@samsung.com>
4262 * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple): Use
4265 (copy_internal_parameters): Same.
4266 (translate_isl_ast_to_gimple): Use an sese_l.
4267 (build_iv_mapping): Same.
4268 * graphite-poly.c (new_sese): Rename new_sese_info.
4269 (free_sese): Rename free_sese_info.
4270 * graphite-poly.h (struct scop): Use an sese_info_p.
4271 (scop_set_region): Same.
4272 * graphite-scop-detection.c (struct sese_l): Moved...
4273 (get_entry_bb): Moved...
4274 (get_exit_bb): Moved...
4275 (parameter_index_in_region_1): Use an sese_info_p.
4276 (parameter_index_in_region): Same.
4277 (scan_tree_for_params): Same.
4278 (find_params_in_bb): Same.
4279 (sese_dom_walker): Use an sese_l.
4280 * graphite-sese-to-poly.c (remove_invariant_phi): Same.
4281 (reduction_phi_p): Same.
4282 (parameter_index_in_region_1): Use an sese_info_p.
4283 (propagate_expr_outside_region): Use an sese_l.
4284 * graphite.c: Replace uses of SCOP_REGION.
4285 * sese.c (sese_record_loop): Use an sese_info_p.
4286 (build_sese_loop_nests): Same.
4287 (sese_build_liveouts_use): Same.
4288 (sese_build_liveouts_bb): Same.
4289 (sese_build_liveouts_bb): Same.
4290 (sese_bad_liveouts_use): Same.
4291 (sese_reset_debug_liveouts_bb): Same.
4292 (sese_build_liveouts): Same.
4293 (new_sese): Renamed new_sese_info.
4294 (free_sese): Renamed free_sese_info.
4295 (set_rename): Use an sese_info_p.
4296 (graphite_copy_stmts_from_block): Same.
4297 (copy_bb_and_scalar_dependences): Same.
4298 (outermost_loop_in_sese_1): Use an sese_l.
4299 (outermost_loop_in_sese): Same.
4300 (if_region_set_false_region): Use an sese_info_p.
4301 (move_sese_in_condition): Same.
4302 (scalar_evolution_in_region): Use an sese_l.
4303 * sese.h (struct sese_l): ... here.
4304 (SESE_ENTRY): Remove.
4305 (SESE_ENTRY_BB): Remove.
4306 (SESE_EXIT): Remove.
4307 (SESE_EXIT_BB): Remove.
4308 (sese_contains_loop): Use an sese_info_p.
4309 (sese_nb_params): Same.
4310 (bb_in_sese_p): Use an sese_l.
4311 (stmt_in_sese_p): Same.
4312 (defined_in_sese_p): Same.
4313 (loop_in_sese_p): Same.
4314 (sese_loop_depth): Same.
4315 (struct ifsese_s): Use an sese_info_p.
4316 (gbb_loop_at_index): Use an sese_l.
4317 (nb_common_loops): Same.
4318 (scev_analyzable_p): Same.
4320 2015-10-07 H.J. Lu <hongjiu.lu@intel.com>
4322 * config/i386/i386.c (ix86_conditional_register_usage): Use
4323 CALL_USED_REGISTERS_MASK.
4324 * config/i386/i386.h (CALL_USED_REGISTERS_MASK): New macro.
4326 2015-10-07 H.J. Lu <hongjiu.lu@intel.com>
4329 * configure.ac (gcc_cv_readelf): Check $READELF_FOR_TARGET.
4330 * configure: Regenerated.
4332 2015-10-07 H.J. Lu <hongjiu.lu@intel.com>
4335 * config/i386/i386.c (ix86_maybe_switch_abi): Merged with ...
4336 (ix86_set_current_function): This.
4337 (TARGET_EXPAND_TO_RTL_HOOK): Removed.
4339 2015-10-07 Richard Biener <rguenther@suse.de>
4341 * tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>.
4342 (vinfo_for_stmt): Adjust.
4343 (set_vinfo_for_stmt): Likewise.
4344 * tree-vectorizer.c (stmt_vec_info_vec): Likewise.
4345 * tree-vect-stmts.c (free_stmt_vec_info_vec): Likewise.
4346 * tree-vect-loop.c (new_loop_vec_info): Remove special-casing
4348 (vect_analyze_loop_1): Remove.
4349 (vect_analyze_loop_form_1): Avoid building a loop_vec_info for
4350 inner loop when vectorizing an outer loop by splitting out from ...
4351 (vect_analyze_loop_form): ... here.
4353 2015-10-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4356 * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv):
4357 Use create_tmp_var_raw instead of create_tmp_var.
4359 2015-10-07 Richard Sandiford <richard.sandiford@arm.com>
4361 * real.h (dconst_quarter, dconst_sixth, dconst_ninth): New macros.
4362 (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): Declare.
4363 * real.c (CACHED_FRACTION): New helper macro.
4364 (dconst_third_ptr): Use it.
4365 (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): New.
4366 * builtins.c (fold_builtin_sqrt): Use dconst_quarter and
4368 (fold_builtin_cbrt): Use dconst_sixth and dconst_ninth.
4370 2015-10-06 Jeff Law <law@redhat.com>
4372 PR tree-optimization/67816
4373 * tree-ssa-threadupdate.h (remove_jump_threads_including): Renamed
4374 from remove_jump_threads_starting_at. Accept an edge rather than
4376 * tree-ssa-threadupdate.c (removed_edges): New hash table.
4377 (remove_jump_threads_including): Note edges that get removed from
4378 the CFG for later pruning of jump threading paths including them.
4379 (thread_through_all_blocks): Remove paths which include edges that
4381 * tree-ssa-dom.c (optimize_stmt): Call remove_jump_threads_including
4382 on each outgoing edges when optimizing away a control statement.
4384 2015-10-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4386 * reorg.c (emit_delay_sequence): Store list of delay slot insns
4387 in a vector instead of rtx_insn_list.
4388 (add_to_delay_list): Likewise.
4389 (delete_from_delay_slot): Likewise.
4390 (optimize_skip): Likewise.
4391 (redirect_with_delay_list_safe_p): Likewise.
4392 (check_annul_list_true_false): Likewise.
4393 (steal_delay_list_from_target): Likewise.
4394 (steal_delay_list_from_fallthrough): Likewise.
4395 (redundant_insn): Likewise.
4396 (fill_simple_delay_slots): Likewise.
4397 (fill_slots_from_thread): Likewise.
4398 (fill_eager_delay_slots): Likewise.
4399 (relax_delay_slots): Likewise.
4401 2015-10-06 Sandra Loosemore <sandra@codesourcery.com>
4403 * config/nios2/nios2.c (nios2_symbol_ref_in_small_data_p):
4404 For -mgpopt=local, also exclude unintialized common symbols.
4405 * doc/invoke.texi (Nios II Options): Document the change.
4407 2015-10-07 Kugan Vivekanandarajah <kuganv@linaro.org>
4409 * config/aarch64/iterators.md (vwcore): Add missing cases for
4412 2015-10-06 Aditya Kumar <aditya.k7@samsung.com>
4413 Sebastian Pop <s.pop@samsung.com>
4415 * graphite-poly.c (new_scop): Initialize drs.
4416 * graphite-poly.h (struct dr_info): New.
4417 (struct scop): Add drs.
4418 * graphite-sese-to-poly.c (pdr_add_alias_set): Use dr_info.
4419 (pdr_add_memory_accesses): Same.
4420 (build_poly_dr): Same.
4421 (build_alias_set): Same.
4422 (build_scop_drs): Same.
4423 (build_pbb_drs): Remove.
4424 * tree-data-ref.c (create_data_ref): Do not initialize alias_set.
4425 * tree-data-ref.h (data_reference): Remove alias_set.
4427 2015-10-06 Aditya Kumar <aditya.k7@samsung.com>
4428 Sebastian Pop <s.pop@samsung.com>
4430 * graphite-poly.c (free_data_refs_aux): Remove.
4431 (free_gimple_poly_bb): Do not call free_data_refs_aux.
4432 * graphite-poly.h (struct base_alias_pair): Remove.
4433 * graphite-sese-to-poly.c (pdr_add_alias_set): Remove all uses of
4434 base_alias_pair and dr->aux.
4435 (build_alias_set): Same.
4436 * tree-data-ref.c (create_data_ref): Initialize alias_set.
4437 * tree-data-ref.h (data_reference): Add alias_set.
4439 2015-10-06 Aditya Kumar <aditya.k7@samsung.com>
4440 Sebastian Pop <s.pop@samsung.com>
4442 * graphite-poly.c (new_poly_dr): Remove dr_base_object_set.
4443 Do not set PDR_BASE_OBJECT_SET.
4444 * graphite-poly.h (poly_dr): Same.
4445 (PDR_BASE_OBJECT_SET): Remove.
4446 (new_poly_dr): Update decl.
4447 * graphite-sese-to-poly.c (build_poly_dr): Update call to
4449 (write_alias_graph_to_ascii_dimacs): Remove.
4450 (write_alias_graph_to_ascii_dot): Remove.
4451 (write_alias_graph_to_ascii_ecc): Remove.
4452 (dr_same_base_object_p): Remove.
4453 (build_alias_set_optimal_p): Rename build_alias_set. Remove dead
4455 (build_base_obj_set_for_drs): Remove.
4456 (dump_alias_graphs): Remove.
4457 (build_scop_drs): Remove dead code.
4459 2015-10-05 Michael Meissner <meissner@linux.vnet.ibm.com>
4460 Peter Bergner <bergner@vnet.ibm.com>
4463 * config/rs6000/rs6000.md (extenddftf2): In the expander, only
4464 allow registers, but provide insns for the combiner to create for
4465 loads from memory. Separate VSX code from non-VSX code. For
4466 non-VSX code, combine extenddftf2_fprs into extenddftf2 and rename
4467 externaldftf2_internal to externaldftf2_fprs. Reorder constraints
4468 so that registers come before memory operations. Drop support from
4469 converting DFmode to TFmode, if the DFmode value is in a GPR
4471 (extenddftf2_fprs): Likewise.
4472 (extenddftf2_internal): Likewise.
4473 (extenddftf2_vsx): Likewise.
4474 (extendsftf2): In the expander, only allow registers, but provide
4475 insns for the combiner to create for stores and loads.
4477 2015-10-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4479 * varasm.c (default_elf_asm_named_section): Remove ATTRIBUTE_UNUSED
4480 from the decl parameter.
4482 2015-10-06 Nathan Sidwell <nathan@codesourcery.com>
4485 * gimple-fold.c (gimple_fold_builtin): Add break after
4486 BUILT_IN_PRINTF_CHK, BUILT_IN_VPRINTF_CHK folding.
4488 2015-10-06 H.J. Lu <hongjiu.lu@intel.com>
4490 * graphite-optimize-isl.c (optimize_isl): Rename scop->ctx
4491 to scop->isl_context.
4493 2015-10-06 Eric Botcazou <ebotcazou@adacore.com>
4495 * config/arm/arm.c (arm_emit_probe_stack_range): Adjust comment.
4496 (output_probe_stack_range): Rotate the loop and simplify.
4497 (thumb1_expand_prologue): Tweak sorry message.
4498 * config/arm/arm.md (probe_stack): Use bare string.
4500 2015-10-06 Nick Clifton <nickc@redhat.com>
4502 * config.gcc (lm32-elf): Add newlib-stdint.h to tm_file.
4504 2015-10-06 Nick Clifton <nickc@redhat.com>
4506 * config/msp430/msp430.c (ATTR_NOINIT): New constant.
4507 (ATTR_PERSIST): New constant.
4508 (msp430_data_attr): New function - verifies an attribute that only
4509 applies to variables.
4510 (msp430_attributes): Add noinit and persistent attributes.
4511 (noinit_section): New variable.
4512 (presis_section): New variable.
4513 (TARGET_ASM_INIT_SECTIONS): Define.
4514 (msp430_init_sections): New function - initialises the noinit and
4515 persist section variables.
4516 (msp430_select_section): Add support for noinit and persist
4518 (msp430_section_type_flags): Likewise.
4519 * doc/extend.texi: Document the reent, critical, wakeup, noinit
4520 and persistent attributes.
4522 2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
4523 Sebastian Pop <s.pop@samsung.com>
4525 * graphite-dependences.c (scop_get_transformed_schedule): Remove.
4526 (no_violations): Remove.
4527 (subtract_commutative_associative_deps): Remove.
4528 (compute_deps): Do not call subtract_commutative_associative_deps.
4529 (transform_is_safe): Remove.
4530 (graphite_legal_transform): Remove.
4531 * graphite-poly.h (graphite_legal_transform): Remove.
4533 2015-10-05 Aditya Kumar <hiraditya@msn.com>
4535 * graphite-sese-to-poly.c (build_loop_iteration_domains): Only loops
4536 which are in this region are passed so gcc_assert and remove redundant
4538 * sese.c (sese_build_liveouts): Pass only those bbs which are not
4540 (sese_bad_liveouts_use): Only BBs which are not in region are passed so
4541 gcc_assert on that and remove unnecessary computation.
4542 (sese_build_liveouts_use): Same.
4544 2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
4546 * graphite-dependences.c (scop_get_reads): Renamed scop->context
4547 to scop->param_context.
4548 (scop_get_must_writes): Same.
4549 (scop_get_may_writes): Same.
4550 (scop_get_original_schedule): Same.
4551 (scop_get_transformed_schedule): Same.
4552 (subtract_commutative_associative_deps): Same.
4553 * graphite-isl-ast-to-gimple.c (add_parameters_to_ivs_params): Same.
4554 (generate_isl_context): Same.
4555 (generate_isl_schedule): Same.
4556 (scop_to_isl_ast): Same.
4557 (graphite_regenerate_ast_isl): Same.
4558 * graphite-optimize-isl.c (scop_get_domains): Same.
4559 (optimize_isl): Renamed scop->context to scop->param_context.
4560 * graphite-poly.c (new_poly_bb): Change the type of argument to
4562 (new_scop): Renamed scop->context to scop->param_context.
4564 (print_scop_context): Same.
4565 * graphite-poly.h (new_poly_dr): Change the type of argument from
4566 void* to data_reference_p.
4567 (struct poly_bb): Change the type of black_box to gimple_poly_bb_p.
4568 (new_poly_bb): Change the type of argument from void* to
4570 (pbb_set_black_box): Same.
4571 (struct scop): Rename context to param_context, ctx to isl_context.
4572 * graphite-scop-detection.c (scop_detection::build_scop_bbs_1):
4573 Move declarations closer to assignment.
4574 (find_params_in_bb): Same.
4575 (find_scop_parameters): Same.
4576 * graphite-sese-to-poly.c (unsigned ssa_name_version_typesize):
4577 Global to be used for statement IDs.
4578 (isl_id_for_pbb): Use ssa_name_version_typesize.
4579 (simple_copy_phi_p): Move declarations closer to assignment.
4580 (build_pbb_scattering_polyhedrons): Same.
4581 (build_scop_scattering): Same.
4582 (isl_id_for_ssa_name): Same.
4583 (extract_affine_name): Same.
4584 (extract_affine_int): Same.
4585 (extract_affine): Same.
4586 (set_scop_parameter_dim): Use renamed member.
4587 (build_loop_iteration_domains): Same.
4588 (add_param_constraints): Same.
4589 (build_scop_iteration_domain): Same.
4590 (pdr_add_data_dimensions): Same.
4591 (build_poly_dr): Same.
4592 (build_scop_drs): Move declarations closer to assignment.
4593 (analyze_drs_in_stmts): Same.
4594 (insert_out_of_ssa_copy): Same.
4595 (insert_out_of_ssa_copy_on_edge): Same.
4596 (propagate_expr_outside_region): Same.
4597 (rewrite_phi_out_of_ssa): Same.
4598 (rewrite_degenerate_phi): Same.
4599 (rewrite_reductions_out_of_ssa): Same.
4600 (rewrite_cross_bb_scalar_dependence): Same.
4601 (handle_scalar_deps_crossing_scop_limits): Same.
4602 (rewrite_cross_bb_scalar_deps): Same.
4603 * graphite.c (graphite_transform_loops): Use renamed member.
4605 2015-10-06 Uros Bizjak <ubizjak@gmail.com>
4608 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
4609 create_tmp_var_raw instead of create_tmp_var.
4611 2015-10-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4614 * config/aarch64/aarch64-builtins.c (aarch64_atomic_assign_expand_fenv):
4615 Use create_tmp_var_raw instead of create_tmp_var.
4617 2015-10-06 Alexander Fomin <alexander.fomin@intel.com>
4620 * config/i386/sse.md (define_split vec_select/V8FI): Restrict
4621 split for upper-bank registers when target does not support
4623 (define_insn "vec_extract_lo_<mode><mask_name>"): Restrict
4624 split when target does not support AVX512VL.
4626 2015-10-06 David Edelsohn <dje.gcc@gmail.com>
4629 * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv):
4630 Adjust to use create_tmp_var_raw instead of create_tmp_var.
4632 2015-10-06 Nick Clifton <nickc@redhat.com>
4634 * config/rl78/rl78.c (rl78_rtx_costs): Improve cost estimates for
4637 2015-10-06 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
4639 * config.gcc (i[34567]86-*-linux* | ...): Add znver1.
4640 (case ${target}): Add znver1.
4641 * config/i386/cpuid.h(bit_CLZERO): Define.
4642 * config/i386/driver-i386.c: (host_detect_local_cpu): Let
4643 -march=native recognize znver1 processors.
4644 * config/i386/i386-c.c (ix86_target_macros_internal): Add
4645 znver1, clzero def_and_undef.
4646 * config/i386/i386.c (struct processor_costs znver1_cost): New.
4647 (m_znver1): New definition.
4648 (m_AMD_MULTIPLE): Includes m_znver1.
4649 (processor_target_table): Add znver1 entry.
4650 (ix86_target_string) : Add clzero entry.
4651 (static const char *const cpu_names): Add znver1 entry.
4652 (ix86_option_override_internal): Add znver1 instruction sets.
4653 (PTA_CLZERO) : New definition.
4654 (ix86_option_override_internal): Handle new clzerooption.
4655 (ix86_issue_rate): Add znver1.
4656 (ix86_adjust_cost): Add znver1.
4657 (ia32_multipass_dfa_lookahead): Add znver1.
4658 (has_dispatch): Add znver1.
4659 * config/i386/i386.h (TARGET_znver1): New definition.
4660 (TARGET_CLZERO): Define.
4661 (TARGET_CLZERO_P): Define.
4662 (struct ix86_size_cost): Add TARGET_ZNVER1.
4663 (enum processor_type): Add PROCESSOR_znver1.
4664 * config/i386/i386.md (define_attr "cpu"): Add znver1.
4665 (set_attr znver1_decode): New definitions for znver1.
4666 * config/i386/i386.opt (flag_dispatch_scheduler): Add znver1.
4668 * config/i386/mmx.md (set_attr znver1_decode): New definitions
4670 * config/i386/sse.md (set_attr znver1_decode): Likewise.
4671 * config/i386/x86-tune.def: Add znver1 tunings.
4672 * config/i386/znver1.md: Introduce znver1 cpu and include new md file.
4673 * gcc/doc/invoke.texi: Add details about znver1
4675 2015-10-06 Richard Biener <rguenther@suse.de>
4677 PR tree-optimization/67859
4678 * tree-ssa-pre.c (create_expression_by_pieces): Properly
4679 discard not inserted stmts.
4681 2015-10-06 Jonathan Wakely <jwakely@redhat.com>
4683 * doc/extend.texi (Template Instantiation): Reorder options and
4684 de-emphasize -frepo.
4685 * doc/invoke.texi (C++ Dialect Options): Use -fstrict-enums in
4686 example instead of -frepo.
4688 2015-10-06 Eric Botcazou <ebotcazou@adacore.com>
4691 * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv): Adjust to
4692 use create_tmp_var_raw rather than create_tmp_var.
4694 2015-10-06 Richard Biener <rguenther@suse.de>
4696 * tree-vectorizer.h (vec_info): New base class for...
4697 (_loop_vec_info): ... this and ...
4698 (_bb_vec_info): ... this.
4699 (vect_is_simple_use, vect_is_simple_use_1, new_stmt_vec_info,
4700 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
4701 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
4702 vect_schedule_slp, vect_analyze_slp, vect_pattern_recog,
4703 vect_destroy_datarefs): Adjust interface to take a vec_info *
4704 rather than both a loop_vec_info and a bb_vec_info argument.
4705 * tree-vect-data-refs.c (vect_compute_data_refs_alignment,
4706 vect_verify_datarefs_alignment, vect_enhance_data_refs_alignment,
4707 vect_analyze_data_refs_alignment, vect_analyze_data_ref_accesses,
4708 vect_analyze_data_refs, vect_create_data_ref_ptr): Adjust
4710 * tree-vect-loop.c (new_loop_vec_info): Initialize base class.
4711 (destroy_loop_vec_info, vect_analyze_loop_2,
4712 vect_is_simple_reduction_1, get_initial_def_for_induction,
4713 vect_create_epilog_for_reduction, vectorizable_reduction,
4714 vectorizable_live_operation, vect_transform_loop): Adjust.
4715 * tree-vect-patterns.c (type_conversion_p,
4716 vect_recog_widen_mult_pattern, vect_recog_widen_shift_pattern,
4717 vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
4718 vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
4719 check_bool_pattern, vect_recog_bool_pattern,
4720 vect_mark_pattern_stmts, vect_pattern_recog): Likewise.
4721 * tree-vect-slp.c (vect_get_and_check_slp_defs,
4722 vect_build_slp_tree_1, vect_build_slp_tree, vect_analyze_slp_cost_1,
4723 vect_analyze_slp_instance, vect_analyze_slp, destroy_bb_vec_info,
4724 vect_slp_analyze_bb_1, vect_schedule_slp): Likewise.
4725 (new_bb_vec_info): Initialize base classs.
4726 * tree-vect-stmts.c (record_stmt_cost, process_use,
4727 vect_get_vec_def_for_operand, vect_finish_stmt_generation,
4728 vectorizable_mask_load_store, vectorizable_call,
4729 vectorizable_simd_clone_call, vectorizable_conversion,
4730 vectorizable_assignment, vectorizable_shift,
4731 vectorizable_operation, vectorizable_store,
4732 vectorizable_load, vect_is_simple_cond, vectorizable_condition,
4733 new_stmt_vec_info, vect_is_simple_use, vect_is_simple_use_1): Likewise.
4734 * tree-vectorizer.c (vect_destroy_datarefs): Likewise.
4736 2015-10-05 Kaz Kojima <kkojima@gcc.gnu.org>
4739 * config/sh/sh.c (sh_atomic_assign_expand_fenv): Adjust to use
4740 create_tmp_var_raw rather than create_tmp_var.
4742 2015-10-05 Marek Polacek <polacek@redhat.com>
4744 * tree-ssa-loop-im.c
4745 (move_computations_dom_walker::before_dom_children): Don't set
4746 SSA_NAME_ANTI_RANGE_P.
4747 * tree-ssa-phiopt.c (value_replacement): Likewise.
4749 2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
4750 Sebastian Pop <s.pop@samsung.com>
4752 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Increase to 7.
4754 2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
4755 Sebastian Pop <s.pop@samsung.com>
4757 * graphite-poly.c (new_gimple_poly_bb): ... here.
4758 (free_data_refs_aux): ... here.
4759 (free_gimple_poly_bb): ... here.
4760 (remove_gbbs_in_scop): ... here.
4761 (new_scop): Call new_sese.
4762 (free_scop): Call remove_gbbs_in_scop and free_sese.
4763 * graphite-poly.h (base_alias_pair): ... here.
4764 (new_gimple_poly_bb): Declare.
4765 (free_gimple_poly_bb): Declare.
4766 * graphite-scop-detection.c (parameter_index_in_region_1):
4767 (parameter_index_in_region): ... here.
4768 (scan_tree_for_params): ... here.
4769 (find_params_in_bb): ... here.
4770 (find_scop_parameters): ... here.
4771 (build_scops): Call find_scop_parameters.
4772 * graphite-sese-to-poly.c (free_gimple_poly_bb): Move...
4773 (free_scops): Move...
4774 (single_pred_cond_non_loop_exit): Move...
4775 (sese_dom_walker::before_dom_children): Move...
4776 (sese_dom_walker::after_dom_children): Move...
4777 (build_poly_scop): Move...
4778 * graphite-sese-to-poly.h (base_alias_pair): Move...
4779 * graphite.c (free_scops): ... here.
4781 2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
4782 Sebastian Pop <s.pop@samsung.com>
4784 * graphite-scop-detection.c: Include domwalk.h and tree-cfg.h.
4785 (trivially_empty_bb_p): Move...
4786 (same_close_phi_node): Move...
4787 (new_gimple_poly_bb): Move...
4788 (compare_bb_depths): Move...
4789 (graphite_sort_dominated_info): Move...
4790 (remove_duplicate_close_phi): Move...
4791 (make_close_phi_nodes_unique): Move...
4792 (canonicalize_loop_closed_ssa): Move...
4793 (canonicalize_loop_closed_ssa_form): Move...
4794 (loop_ivs_can_be_represented): Move...
4795 (single_pred_cond_non_loop_exit): Move...
4796 (graphite_can_represent_init): Move...
4797 (graphite_can_represent_scev): Move...
4798 (stmt_has_simple_data_refs_p): Move...
4799 (stmt_has_side_effects): Move...
4800 (graphite_can_represent_stmt): Move...
4801 (scop_detection): ... here.
4802 (sese_dom_walker): ... and here.
4803 (build_scops): Call all moved functions.
4804 * graphite-sese-to-poly.c (try_generate_gimple_bb): Move...
4805 (all_non_dominated_preds_marked_p): Move...
4806 (build_scop_bbs_1): Move...
4807 (build_scop_bbs): Move...
4808 (set_scop_parameter_dim): Move...
4809 (nb_pbbs_in_loops): Move...
4810 (build_poly_scop): Do not call all the moved functions.
4812 2015-10-05 Martin Jambor <mjambor@suse.cz>
4813 Jan Hubicka <hubicka@ucw.cz>
4815 * ipa-cp.c (ipcp_alignment_lattice): New type.
4816 (ipcp_param_lattices): Use the above to represent alignment.
4817 (ipcp_alignment_lattice::print): New function.
4818 (print_all_lattices): Use it to print alignment information.
4819 (ipcp_alignment_lattice::top_p): New function.
4820 (ipcp_alignment_lattice::bottom_p): Likewise.
4821 (ipcp_alignment_lattice::set_to_bottom): Likewise.
4822 (ipcp_alignment_lattice::meet_with_1): Likewise.
4823 (ipcp_alignment_lattice::meet_with): Two new overloaded functions.
4824 (set_all_contains_variable): Use set_to_bottom of alignment lattice.
4825 (initialize_node_lattices): Likewise.
4826 (propagate_alignment_accross_jump_function): Work with the new class
4827 for alignment lattices.
4828 (propagate_constants_accross_call): Pass only the alignment lattice to
4829 propagate_alignment_accross_jump_function.
4830 (ipcp_store_alignment_results): Work with the new class for alignment
4833 2015-10-05 Marek Polacek <polacek@redhat.com>
4835 PR tree-optimization/67821
4836 * tree-ssanames.c (duplicate_ssa_name_range_info): Remove an assert.
4838 2015-10-05 Thomas Schwinge <thomas@codesourcery.com>
4841 * config/i386/intelmic-mkoffload.c (mkoffload_atexit): Rename
4843 (mkoffload_cleanup): ... this. Adjust all users.
4844 (maybe_unlink): Look at save_temps and verbose flags instead of
4846 (main): Parse "-save-temps" flag.
4847 (generate_target_descr_file, generate_target_offloadend_file)
4848 (generate_host_descr_file, prepare_target_image): Pass it on.
4849 * config/nvptx/mkoffload.c (tool_cleanup): Implement.
4850 (mkoffload_cleanup): New function.
4851 (maybe_unlink): Look at save_temps and verbose flags instead of
4853 (main): Instead of calling utils_cleanup, register atexit handler
4854 for mkoffload_cleanup.
4855 (main): Parse "-save-temps" flag.
4856 (compile_native, main): Pass it on.
4857 * lto-wrapper.c (compile_offload_image): Likewise.
4859 2015-10-05 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4861 * gimple.h (gimple_op_ptr): Require a non const gimple *.
4862 (gimple_assign_lhs_ptr): Likewise.
4863 (gimple_assign_rhs1_ptr): Likewise.
4864 (gimple_assign_rhs2_ptr): Likewise.
4865 (gimple_assign_rhs3_ptr): Likewise.
4866 (gimple_call_lhs_ptr): Likewise.
4867 (gimple_call_fn_ptr): Likewise.
4868 (gimple_call_chain_ptr): Likewise.
4869 (gimple_call_arg_ptr): Likewise.
4870 (gimple_cond_lhs_ptr): Likewise.
4871 (gimple_cond_rhs_ptr): Likewise.
4872 (gimple_switch_index_ptr): Likewise.
4873 (gimple_return_retval_ptr): Likewise.
4875 2015-10-05 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4877 * gimple.h (gimple_asm_input_op_ptr): Remove.
4878 (gimple_asm_output_op_ptr): Likewise.
4880 2015-10-05 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4882 * gimple.h (gimple_location_ptr): Remove.
4883 * tree-vrp.c (check_all_array_refs): Adjust.
4885 2015-10-05 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4887 * tree-ssa-operands.c (build_uses): store tree * instead of
4889 (finalize_ssa_uses): Adjust.
4890 (append_use): Likewise.
4891 (verify_ssa_operands): Likewise.
4893 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
4895 * real.h (build_real_truncate): Declare.
4896 * tree.c (build_real_truncate): New function.
4897 (strip_float_extensions): Use it.
4898 * builtins.c (fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_cbrt)
4899 (fold_builtin_hypot, fold_builtin_pow): Likewise.
4900 * match.pd: Likewise.
4902 2015-10-05 James Greenhalgh <james.greenhalgh@arm.com>
4903 Jiong Wang <jiong.wang@arm.com>
4905 * config/aarch64/aarch64.md (tlsie_tiny_sidi): Replace "<w>" with "w".
4907 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
4909 * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Delete.
4910 * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p)
4911 (aarch64_print_operand, aarch64_float_const_representable_p)
4912 (aarch64_output_simd_mov_immediate): Use CONST_DOUBLE_REAL_VALUE
4913 instead of REAL_VALUE_FROM_CONST_DOUBLE.
4914 * config/arc/arc.c (arc_print_operand): Likewise.
4915 * config/arm/arm.c (arm_const_double_rtx, vfp3_const_double_index)
4916 (neon_valid_immediate, arm_print_operand, arm_emit_fp16_const)
4917 (vfp3_const_double_for_fract_bits, vfp3_const_double_for_bits):
4919 * config/arm/arm.md (*arm32_movhf, consttable_4, consttable_8)
4920 (consttable_16): Likewise.
4921 * config/arm/vfp.md (*movhf_vfp_neon, *movhf_vfp): Likewise.
4922 * config/avr/avr.c (avr_print_operand): Likewise.
4923 * config/bfin/bfin.md: Likewise (in a define_split).
4924 * config/c6x/c6x.md: Likewise (in a define_split).
4925 * config/cr16/cr16.c (cr16_const_double_ok): Likewise.
4926 (cr16_print_operand): Likewise.
4927 * config/cris/cris.c (cris_print_operand): Likewise.
4928 * config/epiphany/epiphany.c (epiphany_print_operand): Likewise.
4929 * config/fr30/fr30.c (fr30_print_operand): Likewise.
4930 (fr30_const_double_is_zero): Likewise.
4931 * config/frv/frv.c (frv_print_operand, output_move_single): Likewise.
4932 * config/frv/frv.md: Likewise (in a define_split).
4933 * config/frv/predicates.md (int_2word_operand): Likewise.
4934 * config/h8300/h8300.c (h8300_print_operand): Likewise.
4935 * config/i386/i386.c (standard_80387_constant_p): Likewise.
4936 (ix86_print_operand, ix86_split_to_parts): Likewise.
4937 * config/i386/i386.md: Likewise (in a define_split).
4938 * config/ia64/ia64.c (ia64_split_tmode, ia64_print_operand): Likewise.
4939 * config/iq2000/iq2000.md (movsf_lo_sum, movsf_high): Likewise.
4940 * config/m32r/m32r.c (easy_df_const, m32r_print_operand): Likewise.
4941 * config/m68k/m68k.c (handle_move_double, standard_68881_constant_p)
4942 (print_operand): Likewise.
4943 * config/m68k/m68k.md (movsf_cf_hard, movdf_cf_hard): Likewise.
4944 * config/mep/mep.md: Likewise (in define_split).
4945 * config/microblaze/microblaze.c (microblaze_const_double_ok)
4946 (print_operand): Likewise.
4947 * config/mips/mips.md (consttable_float): Likewise.
4948 * config/mmix/mmix.c (mmix_intval): Likewise.
4949 * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
4950 * config/nvptx/nvptx.c (nvptx_print_operand): Likewise.
4951 * config/pa/pa.c (pa_singlemove_string): Likewise.
4952 * config/pdp11/pdp11.c (pdp11_expand_operands): Likewise.
4953 (pdp11_asm_print_operand, legitimate_const_double_p): Likewise.
4954 * config/rs6000/rs6000.c (num_insns_constant, rs6000_emit_cmove)
4955 (output_toc): Likewise.
4956 * config/rs6000/rs6000.md: Likewise (in define_splits).
4957 * config/rx/rx.c (rx_print_operand): Likewise.
4958 * config/s390/s390.c (s390_output_pool_entry): Likewise.
4959 * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
4960 * config/sh/sh.md (consttable_sf, consttable_df): Likewise
4961 (and also in define_splits).
4962 * config/sparc/sparc.c (fp_sethi_p, fp_mov_p): Likewise.
4963 (fp_high_losum_p): Likewise.
4964 * config/sparc/sparc.md (*movsf_insn, *movsf_lo_sum): Likewise.
4965 (*movsf_high): Likewise.
4966 * config/spu/spu.c (const_double_to_hwint): Likewise.
4967 * config/v850/v850.c (const_double_split): Likewise.
4968 * config/vax/vax.c (vax_float_literal): Likewise.
4969 * config/visium/visium.c (visium_expand_copysign): Likewise.
4970 * config/visium/visium.md: Likewise (in define_split).
4971 * config/xtensa/predicates.md (const_float_1_operand): Likewise.
4972 * config/xtensa/xtensa.c (print_operand): Likewise.
4973 (xtensa_output_literal): Likewise.
4974 * cprop.c (implicit_set_cond_p): Likewise.
4975 * dwarf2out.c (insert_float): Likewise.
4976 * expmed.c (expand_mult, make_tree): Likewise.
4977 * expr.c (compress_float_constant): Likewise.
4978 * rtlanal.c (split_double): Likewise.
4979 * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
4980 (simplify_const_unary_operation, simplify_binary_operation_1)
4981 (simplify_const_binary_operation): Likewise.
4982 (simplify_const_relational_operation): Likewise.
4983 * varasm.c (output_constant_pool_2): Likewise.
4985 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
4987 * real.h (CONST_DOUBLE_ATOF): Use const_double_from_real_value
4988 instead of CONST_DOUBLE_FROM_REAL_VALUE.
4989 (CONST_DOUBLE_FROM_REAL_VALUE): Delete.
4990 * config/c6x/c6x.md (divsf3, divdf3): Use const_double_from_real_value
4991 instead of CONST_DOUBLE_FROM_REAL_VALUE.
4992 * config/epiphany/epiphany.md (fixuns_truncsfsi2): Likewise.
4993 * config/i386/i386.c (standard_80387_constant_rtx): Likewise.
4994 (ix86_expand_builtin, ix86_emit_i387_log1p, ix86_emit_i387_round)
4995 (ix86_emit_swsqrtsf): Likewise.
4996 * config/ia64/ia64.c (ia64_expand_builtin): Likewise.
4997 * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
4998 (fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
4999 * config/pa/pa.c (pa_expand_builtin): Likewise.
5000 * config/rs6000/rs6000.c (rs6000_load_constant_and_splat): Likewise.
5001 (rs6000_scale_v2df): Likewise.
5002 * config/rs6000/rs6000.md (*cmptf_internal2): Likewise.
5003 * config/s390/s390.md (fixuns_truncdddi2, fixuns_trunctddi2)
5004 (fixuns_trunc<BFP:mode><GPR:mode>2): Likewise.
5005 * config/s390/vx-builtins.md (vec_ctd_s64, vec_ctd_u64, vec_ctsl)
5006 (vec_ctul): Likewise.
5007 * config/sparc/sparc.c (sparc_emit_fixunsdi): Likewise.
5008 * config/spu/spu.c (hwint_to_const_double, spu_float_const): Likewise.
5009 * config/spu/spu.md (floatunsdisf2, floatunstisf2): Likewise.
5010 * cse.c (fold_rtx): Likewise.
5011 * emit-rtl.c (immed_double_const): Likewise (in comments).
5012 (init_emit_once): Likewise.
5013 * expr.c (compress_float_constant, expand_expr_real_1)
5014 (const_vector_from_tree): Likewise.
5015 * optabs.c (expand_float, expand_fix): Likewise.
5016 * reg-stack.c (reg_to_stack): Likewise.
5017 * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
5018 (simplify_const_unary_operation, simplify_binary_operation_1)
5019 (simplify_const_binary_operation, simplify_relational_operation)
5020 (simplify_immed_subreg): Likewise.
5022 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
5024 * doc/tm.texi.in (REAL_ARITHMETIC): Delete.
5025 * doc/tm.texi: Regenerate.
5026 * real.h (REAL_ARITHMETIC): Delete.
5027 * config/i386/i386.c (ix86_expand_lround, ix86_expand_round)
5028 (ix86_expand_round_sse4): Use real_arithmetic instead of
5030 * config/i386/sse.md (round<mode>2): Likewise.
5031 * rtl.h (rtx_to_tree_code): Likewise (in comment).
5032 * explow.c (rtx_to_tree_code): Likewise (in comment).
5033 * match.pd: Likewise.
5034 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
5035 * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
5036 (expand_pow_as_sqrts): Likewise.
5037 * tree-pretty-print.c (dump_generic_node): Remove code that
5038 was conditional on REAL_ARITHMETIC being undefined.
5040 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
5042 * doc/tm.texi.in (REAL_VALUES_LESS): Delete.
5043 * doc/tm.texi: Regenerate.
5044 * real.h (real_less): Declare.
5045 (REAL_VALUES_LESS): Delete.
5046 * real.c (real_less): New function.
5047 (real_compare): Use it.
5048 * config/m68k/m68k.c (floating_exact_log2): Use real_less instead
5049 of REAL_VALUES_LESS.
5050 * config/microblaze/microblaze.c (microblaze_const_double_ok):
5052 * fold-const.c (fold_convert_const_int_from_real): Likewise.
5053 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
5054 (simplify_const_relational_operation): Likewise.
5055 * tree-call-cdce.c (check_pow): Likewise.
5056 (gen_conditions_for_pow_cst_base): Likewise.
5058 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
5060 * real.h (REAL_VALUES_IDENTICAL): Delete.
5061 * config/m68k/m68k.c (standard_68881_constant_p): Use real_identical
5062 instead of REAL_VALUES_IDENTICAL.
5063 * fold-const.c (operand_equal_p): Likewise.
5064 * ipa-icf.c (sem_variable::equals): Likewise.
5065 * tree-complex.c (some_nonzerop): Likewise.
5066 (expand_complex_multiplication): Likewise.
5067 * tree.c (simple_cst_equal): Likewise.
5068 * varasm.c (compare_constant): Likewise.
5070 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
5072 * real.h (real_equal): Declare.
5073 (REAL_VALUES_EQUAL): Delete.
5074 * real.c (real_equal): New function.
5075 (real_compare): Use it.
5076 * doc/tm.texi.in (REAL_VALUES_EQUAL): Delete.
5077 * doc/tm.texi: Regenerate.
5078 * builtins.c (fold_builtin_pow, fold_builtin_load_exponent): Use
5079 real_equal instead of REAL_VALUES_EQUAL.
5080 * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p): Likewise.
5081 * config/arm/arm.c (arm_const_double_rtx, neon_valid_immediate)
5082 (fp_const_from_val): Likewise.
5083 * config/fr30/fr30.c (fr30_const_double_is_zero): Likewise.
5084 * config/m68k/m68k.c (standard_68881_constant_p): Likewise.
5085 (floating_exact_log2): Likewise.
5086 * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
5087 * config/vax/vax.c (vax_float_literal): Likewise.
5088 * config/xtensa/predicates.md (const_float_1_operand): Likewise.
5089 * cprop.c (implicit_set_cond_p): Likewise.
5090 * expmed.c (expand_mult): Likewise.
5091 * fold-const.c (const_binop): Likewise.
5092 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
5093 (simplify_const_binary_operation): Likewise.
5094 (simplify_const_relational_operation): Likewise.
5095 * tree-call-cdce.c (check_pow): Likewise.
5096 (gen_conditions_for_pow_cst_base): Likewise.
5097 * tree-inline.c (estimate_num_insns): Likewise.
5098 * tree-ssa-dom.c (record_equality): Likewise.
5099 * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
5100 (gimple_expand_builtin_pow): Likewise.
5101 (pass_optimize_widening_mul::execute): Likewise.
5102 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
5103 * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
5104 * tree.c (real_zerop, real_onep, real_minus_onep): Likewise.
5106 2015-10-05 Richard Biener <rguenther@suse.de>
5109 * ipa-inline-analysis.c (estimate_function_body_sizes): Only
5110 consider loop header PHI defs as IVs.
5112 2015-10-05 Richard Biener <rguenther@suse.de>
5114 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Move
5116 (create_expression_by_pieces): ... here and build GIMPLE
5117 calls directly. Use gimple_build API and avoid force_gimple_operand.
5118 (insert_into_preds_of_block): Simplify.
5119 (do_regular_insertion): Add comment.
5121 2015-10-04 Jason Merrill <jason@redhat.com>
5123 * builtins.def (BUILT_IN_ABORT): Add transaction_pure attribute.
5125 2015-10-04 Uros Bizjak <ubizjak@gmail.com>
5127 * config/i386/i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to
5128 check for general register.
5129 (ix86_emit_save_regs): Ditto.
5130 (ix86_emit_save_regs_using_mov): Ditto.
5131 (ix86_emit_restore_regs_using_pop): Ditto.
5132 (ix86_emit_restore_regs_using_mov): Ditto.
5134 2015-10-03 Marek Polacek <polacek@redhat.com>
5136 * Makefile.in (insn-latencytab.o): Remove -Wno-duplicated-cond.
5137 (insn-dfatab.o): Likewise.
5139 2015-10-03 Max Filippov <jcmvbkbc@gmail.com>
5141 * config.gcc (xtensa*-*-uclinux*): New configuration.
5142 * config/xtensa/uclinux.h: New file.
5143 * config/xtensa/uclinux.opt: New file.
5145 2015-10-03 Jonathan Wakely <jwakely@redhat.com>
5147 * doc/cpp.texi (Standard Predefined Macros): Document value of
5148 __cplusplus for C++14.
5150 2015-10-02 Bernd Schmidt <bernds@codesourcery.com>
5152 * gcc.c (process_command): Use spec_machine rather than
5153 spec_host_machine to build tooldir_prefix2.
5155 2015-10-02 Thomas Schwinge <thomas@codesourcery.com>
5156 Bernd Schmidt <bernds@codesourcery.com>
5158 * config/nvptx/mkoffload.c (Kind, Vis): Remove enums.
5159 (Token, Stmt): Remove structs.
5160 (decls, vars, fns): Remove variables.
5161 (alloc_comment, append_stmt, is_keyword): Remove macros.
5162 (tokenize, write_token, write_tokens, alloc_stmt, rev_stmts)
5163 (write_stmt, write_stmts, parse_insn, parse_list_nosemi)
5164 (parse_init, parse_file): Remove functions.
5165 (read_file): Accept a pointer to a length and store into it.
5166 (process): Don't try to parse the input file, just write it out as
5167 a string, but looking for maps. Also write out the length.
5168 (main): Don't use "-S" to compile PTX code.
5170 2015-10-02 Jeff Law <law@redhat.com>
5172 * tree-ssa-dom.c (optimize_stmt): Note when loop structures need
5175 2015-10-02 Thomas Schwinge <thomas@codesourcery.com>
5178 * config/nvptx/mkoffload.c (main): Scan the argument vector for
5179 -fopenmp, and skip generating an offloading image if specified.
5181 2015-10-02 Uros Bizjak <ubizjak@gmail.com>
5183 * system.h (ROUND_UP): New macro definition.
5184 (ROUND_DOWN): Ditto.
5185 * ggc-page.c (ROUND_UP): Remove local macro definition.
5186 (PAGE_ALIGN): Implement using ROUND_UP macro.
5188 * config/i386/i386.h (PUSH_ROUNDING): Implement using ROUND_UP macro.
5189 * config/i386/i386.c (function_arg_advance_64): Use ROUND_UP macro
5191 (ix86_compute_frame_layout): Ditto.
5192 (ix86_expand_prologue): Ditto.
5193 (ix86_adjust_stack_and_probe): Use ROUND_DOWN macro
5194 to round down values.
5195 (expand_set_or_movmem_via_rep): Ditto.
5197 2015-10-02 Marek Polacek <polacek@redhat.com>
5199 * genemit.c (gen_exp): Remove -Wduplicated-cond hack.
5201 2015-10-02 Aditya Kumar <aditya.k7@samsung.com>
5203 * graphite-scop-detection.c (loop_ivs_can_be_represented): New.
5204 (loop_body_is_valid_scop): Call loop_ivs_can_be_represented.
5205 * graphite-sese-to-poly.c (new_gimple_bb): Renamed new_gimple_poly_bb.
5206 (free_gimple_bb): Renamed free_gimple_poly_bb.
5207 (try_generate_gimple_bb): Hoist loop invariant code.
5208 (analyze_drs_in_stmts): Same.
5209 (build_scop_drs): Call renamed functions.
5210 (new_pbb_from_pbb): Same.
5211 (scop_ivs_can_be_represented): Delete as functionality now moved to
5212 graphite-scop-detection.c
5213 (build_poly_scop): Remove call to scop_ivs_can_be_represented.
5215 2015-10-02 Aditya Kumar <hiraditya@msn.com>
5217 * graphite-scop-detection.c (stmt_has_side_effects): New function
5218 outlined from stmt_simple_for_scop_p.
5219 (graphite_can_represent_stmt): Same.
5220 (stmt_simple_for_scop_p): Moved code out of this function for better
5223 2015-10-02 Kirill Yukhin <kirill.yukhin@intel.com>
5225 * config/i386/i386.c (processor_features): Add F_AVX512VBMI,
5227 (isa_names_table): Handle F_AVX512VBMI and F_AVX512IFMA.
5229 2015-10-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5231 * config/aarch64/aarch64-elf.h (TARGET_ASM_NAMED_SECTION): Delete.
5233 2015-10-02 Vladimir Makarov <vmakarov@redhat.com>
5235 PR rtl-optimization/67756
5236 * lra-constraints.c (match_reload): Add a new parameter. Use it
5237 for creating a pseudo with the same value.
5238 (curr_insn_transform): Pass a new argument to match_reload.
5240 2015-10-02 Kirill Yukhin <kirill.yukhin@intel.com>
5242 * config/i386/i386.c (expand_vec_perm_even_odd_trunc): New.
5243 (expand_vec_perm_even_odd_1): Handle V64QImode.
5244 (ix86_expand_vec_perm_const_1): Try expansion with
5245 expand_vec_perm_even_odd_trunc as well.
5246 * config/i386/sse.md (VI124_AVX512F): Rename to ...
5247 (define_mode_iterator VI124_AVX2_24_AVX512F_1_AVX512BW): This. Extend
5249 (define_mode_iterator VI248_AVX2_8_AVX512F): Rename to ...
5250 (define_mode_iterator VI248_AVX2_8_AVX512F_24_AVX512BW): This. Extend
5252 (define_insn "avx512bw_<code>v32hiv32qi2"): Unhide pattern name.
5253 (define_expand "vec_pack_trunc_<mode>"): Update iterator name.
5254 (define_expand "vec_unpacks_lo_<mode>"): Ditto.
5255 (define_expand "vec_unpacks_hi_<mode>"): Ditto.
5256 (define_expand "vec_unpacku_lo_<mode>"): Ditto.
5257 (define_expand "vec_unpacku_hi_<mode>"): Ditto.
5259 2015-10-02 Kirill Yukhin <kirill.yukhin@intel.com>
5261 * doc/invoke.texi: Mention -mavx512vl, -mavx512bw, -mavx512dq,
5262 -mavx521vbmi, -mavx512ifma. Add missing opindex-es.
5264 2015-10-02 Jason Merrill <jason@redhat.com>
5267 * trans-mem.c (volatile_lvalue_p): Rename from volatile_var_p.
5268 (diagnose_tm_1_op): Also diagnose volatile accesses in
5269 transaction_safe function.
5271 2015-10-02 Jonathan Wakely <jwakely@redhat.com>
5273 * system.h (malloc.h): Don't include obsolete header.
5275 2015-10-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5277 * config/aarch64/aarch64.c (aarch64_elf_asm_named_section): Delete.
5278 (TLS_SECTION_ASM_FLAG): Delete.
5280 2015-10-02 Marek Polacek <polacek@redhat.com>
5283 * doc/invoke.texi: Document -Wduplicated-cond.
5284 * Makefile.in (insn-latencytab.o): Use -Wno-duplicated-cond.
5285 (insn-dfatab.o): Likewise.
5286 * genemit.c (gen_exp): Rewrite condition to avoid -Wduplicated-cond
5289 2015-10-02 Oleg Endo <olegendo@gcc.gnu.org>
5291 * config/sh/sh.md: Add new unnamed split pattern to handle movt-movt
5294 2015-10-02 Renlin Li <renlin.li@arm.com>
5296 * config/aarch64/aarch64.md (csneg3_insn_uxtw): New pattern.
5298 2015-10-02 Renlin Li <renlin.li@arm.com>
5301 * config/aarch64/aarch64.md (cmovdi_insn_uxtw): New pattern.
5303 2015-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5305 PR rtl-optimization/67786
5306 PR rtl-optimization/67787
5307 * ifcvt.c (bb_valid_for_noce_process_p): Reject basic block if
5308 it modifies a reg used in the condition calculation.
5310 2015-10-02 James Greenhalgh <james.greenhalgh@arm.com>
5312 * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Add
5313 alternatives for reads from memory and moves from general-purpose
5315 (*aarch64_combinez_be<mode>): Likewise.
5317 2015-10-02 Kai Tietz <ktietz70@googlemail.com>
5320 * config/i386/winnt.c (ix86_handle_selectany_attribute): Handle
5321 selectany within this function without need to keep attribute.
5322 (i386_pe_encode_section_info): Remove selectany-code.
5324 2015-10-02 Richard Biener <rguenther@suse.de>
5326 * tree-ssa-sccvn.c (has_VN_INFO): New function.
5327 (free_scc_vn): Use it.
5328 (visit_use): Remove dead code and refactor to use gassign
5329 and use less indentation.
5331 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org>
5335 * config/rs6000/rs6000.c (TARGET_CANNOT_COPY_INSN_P): New.
5336 (rs6000_cannot_copy_insn_p): New function.
5337 * config/rs6000/rs6000.md (cannot_copy): New attribute.
5338 (load_toc_v4_PIC_1_normal): Set cannot_copy.
5339 (load_toc_v4_PIC_1_476): Ditto.
5341 2015-10-01 Aditya Kumar <aditya.k7@samsung.com>
5343 * graphite-scop-detection.c (struct sese_l): New conversion constructor
5344 so that this type can be pushed into a vec.
5345 (class scop_builder): use sese_l to collect scops.
5346 (get_scops): New getter function.
5347 (remove_intersecting_scops): Use sese_l instead of scops_p.
5351 (remove_subscops): Same.
5352 (build_scops): Add scops to vec<scops_p> once all the scops have been
5355 2015-10-01 Aditya Kumar <aditya.k7@samsung.com>
5357 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
5358 Renamed type from gimple_bb_p to gimple_poly_bb_p.
5359 (translate_isl_ast_node_user): Same.
5360 * graphite-poly.c (new_poly_bb): Same.
5361 * graphite-poly.h (gbb_from_bb): Same.
5363 * graphite-sese-to-poly.c (new_gimple_bb):
5364 gimple_bb_p -> gimple_poly_bb_p
5365 (build_scop_scattering): Same.
5366 (find_params_in_bb): Same.
5367 (add_conditions_to_domain): Same.
5368 (sese_dom_walker::before_dom_children): Same.
5369 (analyze_drs_in_stmts): Same.
5370 (new_pbb_from_pbb): Same.
5371 (free_data_refs_aux): New pointer to type base_alias_pair.
5372 * graphite-sese-to-poly.h: Same.
5373 * sese.c (if_region_set_false_region): Fixed Indentation.
5374 (move_sese_in_condition): Same.
5376 2015-10-01 Sebastian Pop <s.pop@samsung.com>
5377 Aditya Kumar <aditya.k7@samsung.com>
5379 PR tree-optimization/66980
5380 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Return false
5381 when data reference analysis has failed.
5383 2015-10-01 Sebastian Pop <s.pop@samsung.com>
5384 Aditya Kumar <aditya.k7@samsung.com>
5386 PR tree-optimization/67754
5387 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Call
5388 scev analysis on the same loop nest as analyze_drs_in_stmts.
5389 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): Moved and
5391 (try_generate_gimple_bb): Call outermost_loop_in_sese.
5392 (analyze_drs_in_stmts): Same.
5393 * sese.c (outermost_loop_in_sese): ...here.
5395 2015-10-01 Sebastian Pop <s.pop@samsung.com>
5396 Aditya Kumar <aditya.k7@samsung.com>
5398 PR tree-optimization/67754
5399 * graphite-scop-detection.c (loop_body_is_valid_scop): Add missing
5400 recursion on the inner loops.
5402 2015-10-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5404 * cfganal.c, compare-elim.c, coverage.c, cprop.c, df-scan.c,
5405 function.c, read-rtl.c, statistics.c, trans-mem.c, tree-if-conv.c,
5406 tree-into-ssa.c, tree-loop-distribution.c, tree-ssa-coalesce.c,
5407 tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-strlen.c,
5408 tree-ssa-tail-merge.c, tree-vrp.c, var-tracking.c: Remove
5410 2015-10-01 Marek Polacek <polacek@redhat.com>
5413 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Adjust to use
5414 create_tmp_var_raw rather than create_tmp_var.
5416 2015-10-01 Marek Polacek <polacek@redhat.com>
5418 PR tree-optimization/67769
5419 * tree-ssa-phiopt.c (conditional_replacement): Call
5420 reset_flow_sensitive_info_in_bb.
5421 (minmax_replacement): Likewise.
5422 (abs_replacement): Likewise.
5424 2015-10-01 Nathan Sidwell <nathan@codesourcery.com>
5426 * builtins.c: Don't include gomp-constants.h.
5427 (fold_builtin_1): Don't fold acc_on_device here.
5428 * gimple-fold.c: Include gomp-constants.h.
5429 (gimple_fold_builtin_acc_on_device): New.
5430 (gimple_fold_builtin): Call it.
5432 2015-10-01 H.J. Lu <hongjiu.lu@intel.com>
5434 * config/i386/x86-tune.def (X86_TUNE_USE_BT): Enable for Lakemont.
5435 (X86_TUNE_ZERO_EXTEND_WITH_AND): Disable for Lakemont.
5437 2015-10-01 James Greenhalgh <james.greenhalgh@arm.com>
5439 * config/arm/aarch-common-protos.h
5440 (aarch_accumulator_forwarding): New.
5441 (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
5442 * config/arm/aarch-common.c (aarch_accumulator_forwarding): New.
5443 (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
5444 * config/arm/cortex-a53.md: Rewrite.
5446 2015-10-01 Richard Biener <rguenther@suse.de>
5448 * gimple-match.h (mprts_hook): Declare.
5449 * gimple-match.head.c (mprts_hook): Define.
5450 (maybe_push_res_to_seq): Use new hook.
5451 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
5452 * tree-ssa-sccvn.h (vn_ssa_aux::expr): Change to a gimple_seq.
5453 (vn_ssa_aux::has_constants): Remove.
5454 * tree-ssa-sccvn.c: Include gimple-match.h.
5455 (VN_INFO_GET): Assert we don't re-use SSA names.
5456 (vn_get_expr_for): Remove.
5457 (expr_has_constants): Likewise.
5458 (stmt_has_constants): Likewise.
5459 (simplify_binary_expression): Likewise.
5460 (simplify_unary_expression): Likewise.
5461 (vn_lookup_simplify_result): New hook.
5462 (visit_copy): Adjust.
5463 (visit_reference_op_call): Likewise.
5464 (visit_phi): Likewise.
5465 (visit_use): Likewise.
5466 (process_scc): Likewise.
5467 (init_scc_vn): Likewise.
5468 (visit_reference_op_load): Likewise. Use match-and-simplify and
5469 a gimple seq for inserted expressions.
5470 (try_to_simplify): Remove GENERIC stmt combining code.
5471 (sccvn_dom_walker::before_dom_children): Use match-and-simplify.
5472 * tree-ssa-pre.c (eliminate_insert): Adjust.
5473 (eliminate_dom_walker::before_dom_children): Likewise.
5475 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org>
5477 * doc/invoke.texi (Optimization Options): Add
5478 -freorder-blocks-algorithm=.
5479 (Optimize Options) <-O>: Add -freorder-blocks.
5480 <-O2>: Remove -freorder-blocks. Add -freorder-blocks-algorithm=stc.
5481 <-Os>: Add -freorder-blocks-algorithm=stc as not enabled.
5482 <-freorder-blocks>: Also enabled at levels -O and -Os.
5483 <-freorder-blocks-algorithm=>: Document new option.
5485 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org>
5487 * bb-reorder.c (reorder_basic_blocks): Use the algorithm selected
5488 with flag_reorder_blocks_algorithm.
5489 * common.opt (freorder-blocks-algorithm=): New flag.
5490 (reorder_blocks_algorithm): New enum.
5491 * flag-types.h (reorder_blocks_algorithm): New enum.
5492 * opts.c (default_options_table): Use -freorder-blocks at -O1 and up,
5493 and -freorder-blocks-algorithm=stc at -O2 and up (not at -Os).
5495 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org>
5497 * bb-reorder.c: Add intro comment.
5498 (reorder_basic_blocks_software_trace_cache): Print a header to
5500 (edge_order): New function.
5501 (reorder_basic_blocks_simple): New function.
5502 (reorder_basic_blocks): Choose between the STC and the simple
5503 algorithms (always choose the former).
5505 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org>
5507 * bb-reorder.c (reorder_basic_blocks_software_trace_cache): New
5508 function, factored out from ...
5509 (reorder_basic_blocks): ... here.
5511 2015-10-01 Tom de Vries <tom@codesourcery.com>
5513 * tree-cfg.c (dump_function_to_file): Dump function attributes using
5514 __attribute__(()) string. Move dumping of function attributes to before
5517 2015-10-01 Lynn Boger <laboger@linux.vnet.ibm.com>
5520 * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Define.
5521 * configure.ac: Define HAVE_GOLD_ALTERNATE_SPLIT_STACK on Power
5522 based on gold linker version.
5523 * gcc.c: Add -fuse-ld=gold to STACK_SPLIT_SPEC if
5524 HAVE_GOLD_ALTERNATE_SPLIT_STACK defined.
5525 * configure, config.in: Regenerate.
5527 2015-10-01 Alan Modra <amodra@gmail.com>
5529 * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't set
5530 r2_setup_needed when TARGET_SINGLE_PIC_BASE.
5531 (rs6000_output_mi_thunk): Likewise.
5533 2015-09-30 Nathan Sidwell <nathan@codesourcery.com>
5535 * config/nvptx/mkoffload.c (process): Change offload data format.
5537 2015-09-30 Jeff Law <law@redhat.com>
5539 * tree-ssa-dom.c (optimize_stmt): Collapse control flow statements
5540 with constant conditions.
5541 * tree-ssa-threadupdate.c (remove_jump_threads_starting_at): New.
5542 (remove_ctrl_stmt_and_useless_edges): No longer static.
5543 * tree-ssa-threadupdate.h (remove_jump_threads_starting_at): Prototype.
5544 (remove_ctrl_stmt_and_useless_edges): Likewise.
5546 2015-09-30 Nathan Sidwell <nathan@codesourcery.com>
5547 Cesar Philippidis <cesar@codesourcery.com>
5549 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): New.
5550 (TARGET_GOACC_VALIDATE_DIMS): Override.
5551 * target.def (TARGET_GOACC): New target hook prefix.
5552 (validate_dims): New hook.
5553 * targhooks.h (default_goacc_validate_dims): New.
5554 * omp-low.c (oacc_validate_dims): New.
5555 (execute_oacc_device_lower): New.
5556 (default_goacc_validate_dims): New.
5557 (pass_data_oacc_device_lower): New.
5558 (pass_oacc_device_lower): New pass.
5559 (make_pass_oacc_device_lower): New.
5560 * tree-pass.h (make_pass_oacc_device_lower): Declare.
5561 * passes.def (pass_oacc_device_lower): Add it.
5562 * doc/tm.texi: Rebuilt.
5563 * doc/tm.texi.in (TARGET_GOACC_VALIDATE_DIMS): Add hook.
5564 * doc/invoke.texi (oaccdevlow): Document tree dump flag.
5566 2015-09-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
5568 PR rtl-optimization/67037
5569 * lra-constraints.c (process_addr_reg): Use copy_rtx when necessary.
5571 2015-09-30 Bernd Schmidt <bernds@redhat.com>
5573 * gimple-ssa.h (gimple_df): Add free_ssanames_queue field.
5574 * passes.c: Include tree-ssanames.h.
5575 (execute_function_todo): Flush the pending free SSA_NAMEs after
5576 eliminating unreachable basic blocks.
5577 * tree-ssanames.c (FREE_SSANAMES_QUEUE): new.
5578 (init_ssanames): Initialize FREE_SSANAMES_QUEUE.
5579 (fini_ssanames): Finalize FREE_SSANAMES_QUEUE.
5580 (flush_ssanames_freelist): New function.
5581 (release_ssaname_fn): Put released names on the queue.
5582 (pass_release_ssa_names::execute): Call flush_ssanames_freelist.
5583 * tree-ssanames.h (flush_ssanames_freelist): Declare.
5585 2015-09-30 Thomas Schwinge <thomas@codesourcery.com>
5587 * config/i386/intelmic-mkoffload.c (main): Parse "-v" flag.
5588 (generate_target_descr_file, generate_target_offloadend_file)
5589 (generate_host_descr_file, prepare_target_image): Pass it on.
5590 * config/nvptx/mkoffload.c (main): Parse "-v" flag.
5591 (compile_native, main): Pass it on.
5592 * lto-wrapper.c (compile_offload_image): Likewise.
5594 2015-09-30 Thomas Schwinge <thomas@codesourcery.com>
5595 Ilya Verbin <ilya.verbin@intel.com>
5596 Andrey Turetskiy <andrey.turetskiy@intel.com>
5598 * config/i386/intelmic-mkoffload.c (generate_host_descr_file)
5599 (prepare_target_image, main): Refactor argv building to use
5602 2015-09-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5604 * config/spu/spu-protos.h (spu_expand_atomic_op): Add prototype.
5605 * config/spu/spu.c (spu_expand_atomic_op): New function.
5606 * config/spu/spu.md (AINT): New mode iterator.
5607 (ATOMIC): New code iterator.
5608 (atomic_name, atomic_pred): New code predicates.
5609 ("atomic_load<mode>", "atomic_store<mode>"): New expanders.
5610 ("atomic_compare_and_swap<mode>", "atomic_exchange<mode>"): Likewise.
5611 (""atomic_<atomic_name><mode>", "atomic_fetch_<atomic_name><mode>",
5612 "atomic_<atomic_name>_fetch<mode>"): Likewise.
5614 2015-09-30 Ilya Enkovich <enkovich.gnu@gmail.com>
5616 * config/i386/i386.c (scalar_chain::analyze_register_chain): Ignore
5618 (scalar_chain::convert_reg): Likewise.
5620 2015-09-30 Richard Biener <rguenther@suse.de>
5622 * builtins.c: Add comment that no new simplifications should
5625 2015-09-30 Marek Polacek <polacek@redhat.com>
5627 PR tree-optimization/67690
5628 * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): Call
5629 reset_flow_sensitive_info_in_bb.
5630 * tree-ssa-tail-merge.c (replace_block_by): Likewise.
5631 * tree-ssanames.c: Include "gimple-iterator.h".
5632 (reset_flow_sensitive_info_in_bb): New function.
5633 * tree-ssanames.h (reset_flow_sensitive_info_in_bb): Declare.
5635 2015-09-30 Thomas Schwinge <thomas@codesourcery.com>
5637 * config/i386/intelmic-mkoffload.c (target_ilp32): Remove
5638 variable, replacing it with...
5639 (offload_abi): ... this new variable. Adjust all users.
5640 * config/nvptx/mkoffload.c (target_ilp32, offload_abi): Likewise.
5642 2015-09-30 Matthias Klose <doko@ubuntu.com>
5644 * configure.ac: Remove extraneous ;;.
5645 * configure: Regenerate.
5647 2015-09-29 James Bowman <james.bowman@ftdichip.com>
5649 * config/ft32/predicates.md (ft32_imm_operand): New predicate.
5650 * config/ft32/ft32.md (movmemsi, setmemsi): Use ft32_imm_operand
5651 predicate, disallow register for operand 2.
5653 2015-09-29 Aditya Kumar <aditya.k7@samsung.com>
5655 * graphite-dependences.c (scop_get_dependences): Moved in down
5656 in order to be visible to its caller.
5657 * graphite-poly.h: Removed compute_deps, and extend_schedule.
5659 2015-09-29 Sebastian Pop <s.pop@samsung.com>
5660 Aditya Kumar <aditya.k7@samsung.com>
5662 PR tree-optimization/67754
5663 * graphite-optimize-isl.c (optimize_isl): Call
5664 isl_options_set_schedule_fuse with ISL_SCHEDULE_FUSE_MIN for ISL-14.
5666 2015-09-29 Nathan Sidwell <nathan@codesourcery.com>
5668 * builtins.c (expand_builtin_acc_on_device): Delete.
5669 (expand_builtin): Don't call it.
5670 (fold_builtin_1): Fold acc_on_device.
5672 2015-09-29 H.J. Lu <hongjiu.lu@intel.com>
5674 * config/i386/i386.c (ix86_function_arg): Fix typo in comments.
5675 (ix86_nsaved_sseregs): Likewise.
5677 2015-09-29 Jeff Law <law@redhat.com>
5679 * config/microblaze/microblaze.c (microblaze_version_to_int): Remove
5680 computation of unused value.
5682 * config/pdp11/pdp11.c (pdp11_branch_cost): New function.
5683 * config/pdp11/pdp11.h (BRANCH_COST): Call function rather than
5684 inline macro expansion.
5686 * config/i386/t-interix (winnt-stubs.o): Fix compilation rule.
5688 * config/sh/sh.c (gen_shl_and): Fix undefined left shift behaviour.
5689 (gen_shl_sext): Likewise.
5690 * config/sh/sh.md (divsi3): Likewise.
5691 (imm->ext_dest_operand splitter): Likewise.
5693 2015-09-29 Sebastian Pop <s.pop@samsung.com>
5694 Aditya Kumar <aditya.k7@samsung.com>
5696 * graphite-sese-to-poly.c (gsi_for_phi_node): Remove.
5697 (nb_data_writes_in_bb): Remove.
5698 (split_pbb): Remove.
5699 (split_reduction_stmt): Remove.
5700 (is_reduction_operation_p): Remove.
5701 (phi_contains_arg): Remove.
5702 (follow_ssa_with_commutative_ops): Remove.
5703 (detect_commutative_reduction_arg): Remove.
5704 (detect_commutative_reduction_assign): Remove.
5705 (follow_inital_value_to_phi): Remove.
5706 (edge_initial_value_for_loop_phi): Remove.
5707 (initial_value_for_loop_phi): Remove.
5708 (used_outside_reduction): Remove.
5709 (detect_commutative_reduction): Remove.
5710 (translate_scalar_reduction_to_array_for_stmt): Remove.
5711 (remove_phi): Remove.
5712 (dr_indices_valid_in_loop): Remove.
5713 (close_phi_written_to_memory): Remove.
5714 (translate_scalar_reduction_to_array): Remove.
5715 (rewrite_commutative_reductions_out_of_ssa_close_phi): Remove.
5716 (rewrite_commutative_reductions_out_of_ssa_loop): Remove.
5717 (rewrite_commutative_reductions_out_of_ssa): Remove.
5718 (build_poly_scop): Remove call to
5719 rewrite_commutative_reductions_out_of_ssa.
5721 2015-09-29 Evandro Menezes <e.menezes@samsung.com>
5723 * config/arm/types.md (neon_ldp, neon_ldp_q, neon_stp, neon_stp_q):
5724 Add new insn types for vector load and store pairs.
5725 * config/arm/cortex-a53.md (cortex_a53_f_load_2reg): Add insn
5726 types "neon_ldp{,_q}".
5727 * config/arm/cortex-a57.md (neon_load_c): Add insn types
5729 (neon_store_complex): Add insn types "neon_stp{,_q}".
5730 * config/aarch64/aarch64-simd.md (aarch64_be_movoi): Add insn types
5733 2015-09-29 Jeff Law <law@redhat.com>
5735 * config/rx/constraints.md (Int08): Fix undefined left shift
5737 (Sint08, Sint16, Sint24): Likewise.
5738 * config/rx/rx.c (rx_get_stack_layout): Likewise.
5740 * config/rl78/rl78-expand.md (movqi): Fix undefined left shift
5743 * config/msp430/msp430.c (msp430_legitimate_constant): Fix undefined
5744 left shift behaviour.
5745 * config/msp430/constraints.md ('L' constraint): Similarly.
5746 ('Ys' constraint): Similarly.
5748 2015-09-29 Richard Biener <rguenther@suse.de>
5750 PR tree-optimization/67170
5751 * tree-ssa-alias.h (get_continuation_for_phi): Adjust
5752 the translate function pointer parameter to get the
5753 bool whether to disambiguate only by reference.
5754 (walk_non_aliased_vuses): Likewise.
5755 * tree-ssa-alias.c (maybe_skip_until): Adjust.
5756 (get_continuation_for_phi_1): Likewise.
5757 (get_continuation_for_phi): Likewise.
5758 (walk_non_aliased_vuses): Likewise.
5759 * tree-ssa-sccvn.c (const_parms): New bitmap.
5760 (vn_reference_lookup_3): Adjust for interface change.
5761 Disambiguate parameters pointing to readonly memory.
5762 (free_scc_vn): Free const_parms.
5763 (run_scc_vn): Initialize const_parms from a fn spec attribute.
5765 2015-09-29 Richard Biener <rguenther@suse.de>
5767 PR tree-optimization/67741
5768 * tree-ssa-math-opts.c (pass_cse_sincos::execute): Only recognize
5769 builtin calls with correct signature.
5771 2015-09-29 Ilya Enkovich <enkovich.gnu@gmail.com>
5774 * config/i386/i386.c: Include dbgcnt.h.
5775 (has_non_address_hard_reg): New.
5776 (convertible_comparison_p): New.
5777 (scalar_to_vector_candidate_p): New.
5778 (remove_non_convertible_regs): New.
5779 (scalar_chain): New.
5780 (scalar_chain::scalar_chain): New.
5781 (scalar_chain::~scalar_chain): New.
5782 (scalar_chain::add_to_queue): New.
5783 (scalar_chain::mark_dual_mode_def): New.
5784 (scalar_chain::analyze_register_chain): New.
5785 (scalar_chain::add_insn): New.
5786 (scalar_chain::build): New.
5787 (scalar_chain::compute_convert_gain): New.
5788 (scalar_chain::replace_with_subreg): New.
5789 (scalar_chain::replace_with_subreg_in_insn): New.
5790 (scalar_chain::emit_conversion_insns): New.
5791 (scalar_chain::make_vector_copies): New.
5792 (scalar_chain::convert_reg): New.
5793 (scalar_chain::convert_op): New.
5794 (scalar_chain::convert_insn): New.
5795 (scalar_chain::convert): New.
5796 (convert_scalars_to_vector): New.
5797 (pass_data_stv): New.
5799 (make_pass_stv): New.
5800 (ix86_option_override): Created and register stv pass.
5801 (flag_opts): Add -mstv.
5802 (ix86_option_override_internal): Likewise.
5803 * config/i386/i386.md (SWIM1248x): New.
5804 (*movdi_internal): Add xmm to mem alternative for TARGET_STV.
5805 (and<mode>3): Use SWIM1248x iterator instead of SWIM.
5806 (*anddi3_doubleword): New.
5807 (*zext<mode>_doubleword): New.
5808 (*zextsi_doubleword): New.
5809 (<code><mode>3): Use SWIM1248x iterator instead of SWIM.
5810 (*<code>di3_doubleword): New.
5811 * config/i386/i386.opt (mstv): New.
5812 * dbgcnt.def (stv_conversion): New.
5814 2015-09-29 Tom de Vries <tom@codesourcery.com>
5816 * tree-cfg.c (dump_function_to_file): Dump function attributes.
5818 2015-09-29 Kaz Kojima <kkojima@gcc.gnu.org>
5821 * config/sh/sh.c (sh_override_options_after_change): New.
5822 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
5823 (sh_option_override): Move align_loops, align_jumps and
5824 align_functions handling into sh_override_options_after_change.
5826 2015-09-28 Nathan Sidwell <nathan@codesourcery.com>
5828 * config/nvptx/nvptx.c: Include omp-low.h and gomp-constants.h.
5829 (nvptx_record_offload_symbol): Record function execution geometry.
5830 * config/nvptx/mkoffload.c (process): Include launch geometry in
5832 * omp-low.c (oacc_launch_pack): New.
5833 (replace_oacc_fn_attrib): New.
5834 (set_oacc_fn_attrib): New.
5835 (get_oacc_fn_attrib): New.
5836 (expand_omp_target): Create keyed varargs for GOACC_parallel call
5838 * omp-low.h (get_oacc_fn_attrib): Declare.
5839 * builtin-types.def (DEF_FUNCTION_TyPE_VAR_6): New.
5840 (DEF_FUNCTION_TYPE_VAR_11): Delete.
5841 * tree.h (OMP_CLAUSE_EXPR): New.
5842 * omp-builtins.def (BUILT_IN_GOACC_PARALLEL): Change target fn name.
5844 2015-09-28 Aditya Kumar <aditya.k7@samsung.com>
5845 Sebastian Pop <s.pop@samsung.com>
5847 * sese.c (invariant_in_sese_p_rec): Remove unused variable.
5849 2015-09-28 Aditya Kumar <aditya.k7@samsung.com>
5850 Sebastian Pop <s.pop@samsung.com>
5852 * graphite-optimize-isl.c (optimize_isl): Use ISL_SCHEDULE_FUSE_MAX.
5853 * graphite-scop-detection.c (struct sese_l): New type.
5854 (get_entry_bb): API for getting entry bb of SESE.
5855 (get_exit_bb): API for getting exit bb of SESE.
5856 (class debug_printer): New type. Simple printer in debug mode.
5857 (trivially_empty_bb_p): New. Return true when BB is empty or
5858 contains only debug instructions.
5859 (graphite_can_represent_expr): Call scalar_evoution_in_region
5860 instead of analyze_scalar_evolution. Pass in scop instead of only
5862 (stmt_has_simple_data_refs_p): Pass in scop instead of only the
5864 (stmt_simple_for_scop_p): Same.
5865 (harmful_stmt_in_bb): Same.
5866 (graphite_can_represent_loop): Deleted.
5867 (struct scopdet_info): Deleted.
5868 (scopdet_basic_block_info): Deleted.
5869 (build_scops_1): Deleted.
5870 (bb_in_sd_region): Deleted.
5871 (find_single_entry_edge): Deleted.
5872 (find_single_exit_edge): Deleted.
5873 (create_single_entry_edge): Deleted.
5874 (sd_region_without_exit): Deleted.
5875 (create_single_exit_edge): Deleted.
5876 (unmark_exit_edges): Deleted.
5877 (mark_exit_edges): Deleted.
5878 (create_sese_edges): Deleted.
5879 (build_graphite_scops): Deleted.
5880 (canonicalize_loop_closed_ssa): Recompute all dominators at the end.
5881 (build_scops): Use the new scop_builder to build scops.
5882 (dot_all_scops_1): Use the new pretty printer. Print loop father
5884 (loop_body_is_valid_scop): New. Return true if loop body is a
5886 (class scop_builder): New. Builds SCoPs for polyhedral
5888 (scop_builder): New constructor.
5889 (static sese_l invalid_sese): sese_l with invalid edges.
5890 (get_sese): Get an sese (from a loop) if possible, invalid_sese
5892 (get_nearest_dom_with_single_entry): Get nearest dominator of a
5893 basic_block with single entry. Return NULL if we get to the
5894 beginning of a function.
5895 (get_nearest_pdom_with_single_exit): Get nearest post-dominator of
5896 a basic_block with single exit. Return NULL if we get to the
5897 beginning of a function.
5898 (print_sese): Pretty-print SESE.
5899 (merge_sese): Merge two SESEs if possible and return the new SESE.
5900 (build_scop_depth): Start building the SCoP within a loop nest.
5901 (build_scop_breadth): Start building the SCoP at a single loop
5902 depth. Merge adjacent SESEs if valid.
5903 (can_represent_loop_1): Returns true if Graphite can represent
5904 loop inside SCoP. Helper for can_represent_loop.
5905 (can_represent_loop): Returns true if Graphite can represent LOOP
5906 and all its nested loops in SCoP.
5907 (loop_is_valid_scop): Returns true if LOOP and all its nests
5908 constitute a valid SCoP.
5909 (region_has_one_loop): Returns true of a region has only one loop.
5910 (add_scop): Add SCoP to the list of valid scops. Removes an
5911 already existing scop if it intersects with or subsumed by this one.
5912 (harmful_stmt_in_region): Returns true if SCoP has any statment
5913 which cannot be represented by Graphite.
5914 (subsumes): Returns true of SCoP S1 subsumes SCoP S2.
5915 (remove_subscops): Remove any SCoP from the list of already found
5916 SCoPs, if subsumed by S1.
5917 (intersects): Return true if region bounded by SCoPs S1 and S2
5919 (remove_intersecting_scops): Remove any SCoP which intersects with S1.
5920 * graphite.c (print_graphite_scop_statistics):
5921 (print_graphite_statistics): Print SCoP info while debugging.
5922 (graphite_initialize): Early exit in case number of loops in a
5923 function is less than PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION or
5924 basic blocks are more than PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
5925 (graphite_finalize):
5926 * params.def: Add PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION.
5927 * sese.h (sese_loop_depth): Remove unnecessary gcc_assert.
5928 (recompute_all_dominators): Recalculate POST_DOMINATORS.
5929 * tree-cfg.c (print_loops): Print the function name while printing
5932 2015-09-28 Aditya Kumar <aditya.k7@samsung.com>
5933 Sebastian Pop <s.pop@samsung.com>
5935 PR tree-optimization/67700
5936 * graphite-sese-to-poly.c (parameter_index_in_region): Call
5937 invariant_in_sese_p_rec.
5938 (extract_affine): Same.
5939 (rewrite_cross_bb_scalar_deps): Call update_ssa.
5940 * sese.c (invariant_in_sese_p_rec): Export. Handle vdefs and vuses.
5941 * sese.h (invariant_in_sese_p_rec): Declare.
5943 2015-09-28 David Wohlferd <dw@LimeGreenSocks.com>
5945 * doc/extend.texi (Asm Labels): Break out text for data vs functions.
5947 2015-09-28 Jiong Wang <jiong.wang@arm.com>
5950 2015-08-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5951 Jiong Wang <jiong.wang@arm.com>
5953 * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
5954 * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
5955 (REG_CLASS_NAMES): Likewise.
5956 (REG_CLASS_CONTENTS): Likewise.
5957 * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
5958 (aarch64_register_move_cost): Likewise.
5959 (aarch64_load_symref_appropriately): Invoke the new added pattern if
5961 * config/aarch64/constraints.md (Uc0): New constraint.
5963 2015-09-28 Daniel Hellstrom <daniel@gaisler.com>
5965 * config/sparc/t-rtems: Remove -muser-mode. Add ut699, at697f and leon.
5967 2015-09-28 David Edelsohn <dje.gcc@gmail.com>
5969 * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Place
5970 SECTION_EXCLUDE in XO mapping class.
5972 2015-09-28 Oleg Endo <olegendo@gcc.gnu.org>
5975 * config/sh/predicates.md (t_reg_operand, negt_reg_operand): Allow
5976 and handle ne and eq codes.
5977 * config/sh/sh.c (sh_rtx_costs): Adjust matching of tst #imm,r0 insn.
5978 (sh_recog_treg_set_expr): Early accept negt_reg_operand. Eearly reject
5979 CONST_INT_P. Use reverse_condition.
5980 (sh_split_treg_set_expr): Likewise.
5982 2015-09-28 James Greenhalgh <james.greenhalgh@arm.com>
5984 * config/arm/types.md (type): Add rotate_imm.
5985 * config/aarch64/aarch64.md (*ror<mode>3_insn): Split out the
5987 (*rorsi3_insn_uxtw): Likewise.
5988 * config/aarch64/thunderx.md (thunderx_shift): Add rotate_imm.
5989 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add rotate_imm.
5990 * config/arm/cortex-a57.md (cortex_a53_alu): Add rotate_imm.
5992 2015-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5994 PR rtl-optimization/67481
5995 * ifcvt.c (contains_ccmode_rtx_p): New function.
5996 (insn_valid_noce_process_p): Use it.
5998 2015-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6000 PR rtl-optimization/67456
6001 PR rtl-optimization/67464
6002 PR rtl-optimization/67465
6003 * ifcvt.c (noce_try_cmove_arith): Bail out if cannot conditionally
6004 move in the mode of x. Handle combination of complex and simple
6005 block pairs as well as the case when one is empty.
6007 2015-09-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6009 * doc/gimple.texi: Update references to gimple_statement_base.
6010 * gdbhooks.py: Likewise.
6011 * gimple.h: Likewise.
6013 2015-09-28 Daniel Cederman <cederman@gaisler.com>
6015 * config/sparc/driver-sparc.c: map LEON to leon3
6017 2015-09-28 Daniel Cederman <cederman@gaisler.com>
6019 * config/sparc/sparc.opt: Rename mask from USER_MODE to SV_MODE
6020 and make it inverse to change default
6021 * config/sparc/sync.md: Only use supervisor ASI for CASA when in
6023 * doc/invoke.texi: Document change of default
6025 2015-09-28 Daniel Cederman <cederman@gaisler.com>
6027 * config/sparc/sparc.c (sparc_function_value_regno_p): Do not return
6028 true on %f0 for a target without FPU.
6029 * config/sparc/sparc.md (untyped_call): Do not save %f0 for a target
6031 (untyped_return): Do not load %f0 for a target without FPU.
6033 2015-09-28 Andrew Pinski <apinski@cavium.com>
6035 * config/aarch64/aarch64.md (prefetch):
6036 Change the predicate of operand 0 to register_operand.
6038 2015-09-27 Uros Bizjak <ubizjak@gmail.com>
6040 * config/i386/predicates.md (register_sse4nonimm_operand): New
6042 * config/i386/sse.md (PEXTR_MODE12): New mode iterator.
6043 (*vec_extract<mode>): Use PEXTR_MODE12 instead of VI12_128 mode.
6044 Use register_sse4nonimm_operand as operand 0 predicate.
6045 (*vec_extractv8hi_sse2): Remove insn pattern.
6046 (*vec_extract<PEXTR_MODE12:mode>_zext): Merge insn pattern from
6047 *vec_extractv8hi_zext and *vec_extractv16qi_zext patterns.
6049 2015-09-27 Oleg Endo <olegendo@gcc.gnu.org>
6050 Kaz Kojima <kkojima@gcc.gnu.org>
6053 * config/sh/sh-protos.h (sh_lra_p): Declare.
6054 * config/sh/sh.c (sh_lra_p): Make non-static.
6055 * config/sh/sh.md (addsi3): Use arith_reg_dest for operands[0] and
6056 arith_reg_operand for operands[1]. Remove TARGET_SHMEDIA case.
6057 Expand into addsi3_scr if operands[2] if needed.
6058 (*addsi3_compact): Rename to *addsi3_compact_lra. Use
6059 arith_reg_operand for operands[1]. Allow it only when LRA is enabled.
6060 (addsi3_scr, *addsi3): New insn_and_split patterns.
6062 2015-09-27 Alexandre Oliva <aoliva@redhat.com>
6064 PR rtl-optimization/64164
6065 PR tree-optimization/67312
6069 * cfgexpand.c (parm_in_stack_slot_p): Remove.
6070 (ssa_default_def_partition): Remove.
6071 (get_rtl_for_parm_ssa_default_def): Remove.
6072 (set_rtl): Check that RTL assignments match expectations.
6073 Loop on SUBREGs, CONCATs and PARALLELs subexprs. Set only the
6074 default def location for params and results. Record SSA names
6075 or types in REG and MEM attrs, respectively.
6076 (set_parm_rtl): New.
6077 (expand_one_ssa_partition): Drop logic that assigned MEMs with
6078 unassigned addresses.
6079 (adjust_one_expanded_partition_var): Don't accept NULL RTL on
6080 deferred stack alloc vars.
6081 (expand_used_vars): Skip partitions holding parm default defs.
6082 Move adjust_one_expanded_partition_var loop...
6083 (pass_expand::execute): ... here. Drop redundant assert.
6084 Adjust comments before the final loop over all ssa names.
6085 Require assigned rtl of parms and results to match exactly.
6086 Reset its attributes to match them, not any other variables in
6088 (expand_debug_expr): Use entry value for PARM's default defs
6089 only iff they have zero nondebug uses.
6090 * cfgexpand.h (parm_in_stack_slot_p): Remove.
6091 (get_rtl_for_parm_ssa_default_def): Remove.
6092 (set_parm_rtl): Declare.
6093 * doc/invoke.texi: Improve wording.
6094 * explow.c (promote_decl_mode): Fix promote_function_mode for
6095 result decls not by reference.
6096 (promote_ssa_mode): Disregard BLKmode from promote_decl, and
6097 bypass TYPE_MODE to get the actual vector mode.
6098 * function.c: Include tree-dfa.h. Revert 2015-08-14's and
6099 2015-08-19's changes as follows. Drop include of
6100 basic-block.h and df.h.
6101 (rtl_for_parm): Remove.
6102 (maybe_reset_rtl_for_parm): Remove.
6103 (parm_in_unassigned_mem_p): Remove.
6104 (use_register_for_decl): Add logic for RESULT_DECLs matching
6105 assign_parms' behavior.
6106 (split_complex_args): Revert.
6107 (assign_parms_augmented_arg_list): Revert. Add comment
6108 referencing the logic above.
6109 (assign_parm_adjust_stack_rtl): Revert.
6110 (assign_parm_setup_block): Revert. Use set_parm_rtl instead
6111 of SET_DECL_RTL. Set up a REG if the parm demands so.
6112 (assign_parm_setup_reg): Revert. Consolidated SET_DECL_RTL
6113 calls into a single set_parm_rtl. Set up a temporary RTL
6114 temporarily for expand_assignment.
6115 (assign_parm_setup_stack): Revert. Use set_parm_rtl.
6116 (assign_parms_unsplit_complex): Revert. Use set_parm_rtl.
6117 (assign_bounds): Revert.
6118 (assign_parms): Revert. Use set_parm_rtl.
6119 (allocate_struct_function): Relayout result and parms of
6120 non-abstruct functions.
6121 (expand_function_start): Revert. Use set_parm_rtl. If the
6122 result is not a hard reg, create a pseudo from the promoted
6123 mode of the default def. Promote static chain mode.
6124 * tree-outof-ssa.c (remove_ssa_form): Drop unused
6125 partition_has_default_def. Set up
6126 partitions_for_parm_default_defs.
6127 (finish_out_of_ssa): Remove partition_has_default_def.
6128 Release partitions_for_parm_default_defs.
6129 * tree-outof-ssa.h (struct ssaexpand): Remove
6130 partition_has_default_def. Add
6131 partitions_for_parm_default_defs.
6132 * tree-ssa-coalesce.c: Include tree-dfa.h, tm_p.h and
6134 (build_ssa_conflict_graph): Fix conflict-detection of default
6135 defs of even unused default defs of params and results.
6136 (for_all_parms): New.
6137 (create_default_def): New.
6138 (register_default_def): New.
6139 (coalesce_with_default): New.
6140 (create_outofssa_var_map): Create default defs for all parms
6141 and results, and register their partitions. Add GIMPLE_RETURN
6142 operands as coalesce candidates with results. Add default
6143 defs of each parm or result as coalesce candidates with its
6144 other defs. Mark each result def, and each default def of
6145 parms, as used_in_copy.
6146 (gimple_can_coalesce_p): Call it. Call use_register_for_decl
6147 with the ssa names, even anonymous ones. Drop
6148 parm_in_stack_slot_p calls. Require same signedness and
6150 (coalesce_ssa_name): Add coalesce candidates for all defs of
6151 each parm and result, even unused ones.
6152 (parm_default_def_partition_arg): New type.
6153 (set_parm_default_def_partition): New.
6154 (get_parm_default_def_partitions): New.
6155 * tree-ssa-coalesce.h (get_parm_default_def_partitions): New.
6156 * tree-ssa-live.c (partition_view_init): Regard unused defs of
6157 parms and results as used.
6158 (verify_live_on_entry): Don't error out just because they're
6161 2015-09-26 David Edelsohn <dje.gcc@gmail.com>
6163 * dwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
6164 (HAVE_XCOFF_DWARF_EXTRAS): Default to 0 definition.
6165 (output_fde): Don't output length for debug_frame on AIX.
6166 (output_call_frame_info): Don't output length for debug_frame on AIX.
6167 (have_macinfo): Force to False for XCOFF_DEBUGGING_INFO and not
6168 HAVE_XCOFF_DWARF_EXTRAS.
6169 (add_AT_loc_list): Return early if XCOFF_DEBUGGING_INFO and not
6170 HAVE_XCOFF_DWARF_EXTRAS.
6171 (output_compilation_unit_header): Don't output length on AIX.
6172 (output_pubnames): Don't output length on AIX.
6173 (output_aranges): Delete argument. Compute length locally. Don't
6174 output length on AIX.
6175 (output_line_info): Don't output length on AIX.
6176 (dwarf2out_finish): Don't compute aranges_length.
6177 * dwarf2asm.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
6178 (dw2_asm_output_nstring): Emit .byte not .ascii on AIX.
6179 * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Emit correct
6180 symbol decoration for AIX.
6181 (rs6000_xcoff_debug_unwind_info): New.
6182 (rs6000_xcoff_asm_named_section): Emit .dwsect pseudo-op
6184 (rs6000_xcoff_declare_function_name): Emit different
6185 .function pseudo-op when DWARF2_DEBUG. Don't call
6186 xcoffout_declare_function for DWARF2_DEBUG.
6187 * config/rs6000/xcoff.h (TARGET_DEBUG_UNWIND_INFO):
6189 * config/rs6000/aix71.h: New.
6190 * configure.ac (gcc_cv_as_aix_dwloc): Check AIX as for DWARF
6192 * configure: Regenerate.
6193 * config.gcc (powerpc-ibm-aix[789]+): New stanza for AIX 7.1+ with
6196 2015-09-26 Jeff Law <law@redhat.com>
6198 * config/arc/arc.c (arc_output_addsi): Fix left shift undefined
6200 * config/arc/constraints.md (Cca, C2a): Fix left shift undefined
6203 * config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined
6206 * config/mips/mips.c (mips_compute_frame_info): Fix left shift
6207 undefined behaviour.
6209 * config/cris/cris.md (asrandb): Fix left shift undefined
6211 (asrandw): Likewise.
6213 2015-09-25 Vladimir Makarov <vmakarov@redhat.com>
6216 * lra-constarints.c (match_reload): Check presence of the input pseudo
6217 in the output operand.
6219 2015-09-25 Tobias Burnus <burnus@net-b.de>
6221 * doc/invoke.texi (-fsanitize): Minor wording tweak.
6223 2015-09-25 Tobias Burnus <burnus@net-b.de>
6225 * doc/invoke.texi (-fsanitize): Update URLs.
6227 2015-09-25 Teresa Johnson <tejohnson@google.com>
6229 * opts.c (finish_options): Unset -freorder-blocks-and-partition
6230 if not using profile.
6232 2015-09-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
6234 PR pretty-print/67567
6235 * pretty-print.c (pp_string): Add gcc_checking_assert.
6236 * pretty-print.h (output_buffer_append_r): Likewise.
6238 2015-09-25 Oleg Endo <olegendo@gcc.gnu.org>
6241 * config/sh/sh-mem.cc (sh_expand_cmpstr): Check alignment of addr1 and
6242 addr2 individually. Don't emit logical or insn if one is known to
6243 be aligned approriately.
6244 (sh_expand_cmpnstr): Likewise.
6246 2015-09-25 Richard Sandiford <richard.sandiford@arm.com>
6248 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Force
6249 __builtin_aarch64_fp[sc]r arguments into a register.
6251 2015-09-25 H.J. Lu <hongjiu.lu@intel.com>
6253 * config.gcc (x86_archs): Replace lakemount with lakemont.
6254 (with_cpu): Likewise.
6255 (with_arch): Likewise.
6256 * config/i386/i386-c.c (ix86_target_macros_internal): Replace
6257 PROCESSOR_LAKEMOUNT with PROCESSOR_LAKEMONT. Replace
6258 __tune_lakemount__ with __tune_lakemont__.
6259 * config/i386/i386.c (lakemount_cost): Renamed to ...
6260 (lakemont_cost): This.
6261 (m_LAKEMOUNT): Renamed to ...
6263 (initial_ix86_arch_features): Replace m_LAKEMOUNT with m_LAKEMONT.
6264 (processor_target_table): Replace "lakemount" with "lakemont".
6265 (processor_alias_table): Likewise.
6266 (ix86_issue_rate): Replace PROCESSOR_LAKEMOUNT with
6268 (ix86_adjust_cost): Likewise.
6269 (ia32_multipass_dfa_lookahead): Likewise.
6270 * config/i386/i386.h (processor_type): Likewise.
6271 * config/i386/x86-tune.def: Replace m_LAKEMOUNT with m_LAKEMONT.
6272 * doc/invoke.texi: Replace lakemount with lakemont. Replace
6273 Lakemount with Lakemont.
6275 2015-09-24 H.J. Lu <hongjiu.lu@intel.com>
6277 * config.gcc (x86_archs): Replace iamcu with lakemount.
6278 (with_cpu): Likewise.
6279 (with_arch): Likewise.
6280 * doc/invoke.texi: Likewise.
6281 * config/i386/i386-c.c (ix86_target_macros_internal): Replace
6282 PROCESSOR_IAMCU with PROCESSOR_LAKEMOUNT. Replace
6283 __tune_iamcu__ with __tune_lakemount__.
6284 * config/i386/i386.c (iamcu_cost): Renamed to ...
6285 (lakemount_cost): This.
6286 (m_IAMCU): Renamed to ...
6287 (m_LAKEMOUNT): This.
6288 (initial_ix86_arch_features): Replace m_IAMCU with m_LAKEMOUNT.
6289 (processor_target_table): Replace "iamcu" with "lakemount".
6290 (processor_alias_table): Likewise.
6291 (ix86_issue_rate): Replace PROCESSOR_IAMCU with
6292 PROCESSOR_LAKEMOUNT.
6293 (ix86_adjust_cost): Likewise.
6294 (ia32_multipass_dfa_lookahead): Likewise.
6295 * config/i386/i386.h (processor_type): Likewise.
6296 * config/i386/x86-tune.def: Replace m_IAMCU with m_LAKEMOUNT.
6298 2015-09-24 John David Anglin <danglin@gcc.gnu.org>
6300 * config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
6301 * config/pa/pa-protos.h (pa_maybe_emit_compare_and_swap_exchange_loop):
6303 * config/pa/pa.c (pa_init_libfuncs): Init sync libfuncs up to 8 bytes.
6304 (pa_expand_compare_and_swap_loop): New.
6305 (pa_maybe_emit_compare_and_swap_exchange_loop): New.
6306 * config/pa/pa.md (atomic_storeqi, atomic_storehi, atomic_storesi,
6307 atomic_storesf, atomic_loaddf, atomic_storedf): New expanders.
6308 (atomic_loaddf_1, atomic_storedf_1): New insn patterns.
6309 (atomic_loaddi, atomic_loaddi_1, atomic_storedi, atomic_storedi_1):
6312 2015-09-24 Michael Collison <michael.collison@linaro.org>
6315 * read-md.c (read_name): Allow mode iterators inside angle
6316 brackets in rtl expressions.
6318 2015-09-24 Vladimir Makarov <vmakarov@redhat.com>
6321 * ira-color.c (update_allocno_cost): Add parameter.
6322 (update_costs_from_allocno): Decrease conflict cost. Pass the new
6325 2015-09-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
6328 * opts-common.c (prune_options): Discard all -fdiagnostics-color
6329 but the last one, which is moved to the front to be processed
6331 * opts.c (enable_warning_as_error): Reject options that do not
6334 2015-09-24 Jiong Wang <jiong.wang@arm.com>
6336 * config/aarch64/aarch64.c (aarch64_print_operand): Add "CONST" support.
6338 2015-09-24 Jiong Wang <jiong.wang@arm.com>
6340 * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Delete.
6341 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Likewise.
6342 (aarch64_cannot_force_const_mem): Likewise.
6343 (aarch64_classify_address): Likewise.
6344 (aarch64_classify_symbolic_expression): Likewise.
6345 (aarch64_print_operand): Likewise.
6346 (aarch64_classify_symbol): Likewise.
6347 (aarch64_mov_operand_p): Likewise.
6348 * config/aarch64/predicates.md (aarch64_valid_symref): Likewise.
6349 (aarch64_mov_operand): Likewise.
6351 2015-09-24 Segher Boessenkool <segher@kernel.crashing.org>
6353 * config/rs6000/rs6000.c (debug_stack_info): Invert the test
6354 for info->spe_gp_size.
6356 2015-09-24 Richard Biener <rguenther@suse.de>
6359 * lto-cgraph.c (compute_ltrans_boundary): Do not stream
6362 2015-09-24 Thomas Schwinge <thomas@codesourcery.com>
6364 * tree-object-size.c (plus_stmt_object_size)
6365 (cond_expr_object_size): Change the formal parameters from gimple
6367 * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Likewise.
6368 * tree-ssa-sccvn.c (vn_nary_op_insert_stmt): Make it static.
6369 * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Don't declare.
6371 2015-09-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6373 * configure.ac (gcc_cv_ld_pie): Check for gld >= 2.26 on Solaris.
6374 Check for ld -type pie on Solaris 11.x and 12.
6375 * configure: Regenerate.
6376 * config.in: Regenerate.
6378 * gcc.c (LD_PIE_SPEC): Allow redefinition.
6380 * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Define.
6381 (STARTFILE_SPEC): Use it.
6382 (ENDFILE_CRTEND_SPEC): Define.
6383 (ENDFILE_SPEC): Use it and ENDFILE_ARCH_SPEC.
6384 (SUBTARGET_EXTRA_SPECS): Add STARTFILE_CRTBEGIN_SPEC,
6385 ENDFILE_ARCH_SPEC, ENDFILE_CRTEND_SPEC.
6386 [HAVE_LD_PIE && HAVE_SOLARIS_CRTS] (LD_PIE_SPEC): Define.
6387 (!(HAVE_LD_PIE && HAVE_SOLARIS_CRTS)] (LINK_PIE_SPEC): Define.
6388 * config/i386/sol2.h (ENDFILE_SPEC): Remove.
6389 (ENDFILE_ARCH_SPEC): Define.
6390 * config/sparc/sol2.h (ENDFILE_ARCH_SPEC): Define.
6392 2015-09-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6394 * configure.ac (gcc_cv_solaris_crts): New test.
6395 * configure. Regenerate.
6396 * config.in: Regenerate.
6397 * config/sol2.h (STARTFILE_SPEC): Simplify, provide
6398 HAVE_SOLARIS_CRTS variant.
6400 2015-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6402 * tree-inline.h (count_insns_seq): Delete prototype.
6403 (estimate_num_insns_seq): Define prototype.
6404 * tree-inline.c (count_insns_seq): Delete.
6405 (estimate_num_insns_seq): Remove static qualifier.
6406 * tree-eh.c (decide_copy_try_finally): Replace use of count_insns_seq
6407 with estimate_num_insns_seq.
6409 2015-09-24 Richard Biener <rguenther@suse.de>
6411 * tree-ssa-sccvn.h (vn_reference_op_struct): Add clique and base
6413 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record clique
6414 and base for MEM_REF and TARGET_MEM_REF. Handle BIT_FIELD_REF
6416 (ao_ref_init_from_vn_reference): Record clique and base in the
6418 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise
6420 2015-09-24 Richard Biener <rguenther@suse.de>
6422 PR tree-optimization/48885
6423 * tree-ssa-structalias.c (visit_loadstore): Handle default defs
6424 as not including any restrict tags from other pointers.
6426 2015-09-23 Thomas Schwinge <thomas@codesourcery.com>
6428 * gcc.c (handle_foffload_option): Don't lose the trailing NUL
6429 character when appending to offload_targets.
6431 * configure.ac (offload_targets, OFFLOAD_TARGETS): Separate
6432 offload targets by commas, not colons.
6433 * config.in: Regenerate.
6434 * configure: Likewise.
6435 * gcc.c (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Due to that,
6436 instead of setting up the default offload targets here...
6437 (process_command): ..., do it here.
6439 * plugin/configfrag.ac (OFFLOAD_TARGETS): Clarify that offload
6440 targets are separated by commas.
6441 * config.h.in: Regenerate.
6443 2015-09-23 Thomas Schwinge <thomas@codesourcery.com>
6444 Nathan Sidwell <nathan@codesourcery.com>
6446 * omp-low.h (omp_reduction_init_op): Declare.
6447 * omp-low.c (omp_reduction_init_op): New, broken out of ...
6448 (omp_reduction_init): ... here. Call it.
6449 * tree-parloops.c (initialize_reductions): Use
6450 omp_reduction_init_op.
6452 2015-09-23 Richard Biener <rguenther@suse.de>
6455 * fold-const.c (fold_binary_loc): Do not reassociate two vars with
6456 undefined overflow unless they will cancel out.
6458 2015-09-23 Kirill Yukhin <kirill.yukhin@intel.com>
6460 * config/i386/i386.md (define_insn "*<mshift><mode>3"): Fix
6463 2015-09-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
6466 * opts.h (write_langs): Declare.
6467 * opts-global.c (write_langs): Make it extern.
6469 2015-09-23 Oleg Endo <olegendo@gcc.gnu.org>
6472 * config/sh/sh.md (addsi3, *addsi3_compact): Don't check for
6473 overlapping regs when matching the pattern.
6475 2015-09-23 James Greenhalgh <james.greenhalgh@arm.com>
6477 * config/aarch64/aarch64-simd.md
6478 (aarch64_float_truncate_hi_v4sf): Rewrite as an expand.
6479 (aarch64_float_truncate_hi_v4sf_le): New.
6480 (aarch64_float_truncate_hi_v4sf_be): Likewise.
6482 2015-09-23 Richard Biener <rguenther@suse.de>
6484 * tree-ssa-structalias.c (intra_create_variable_infos): Build
6485 representatives for all restrict qualified pointer destinations.
6487 2015-09-23 Kirill Yukhin <kirill.yukhin@intel.com>
6489 * config/i386/i386.md (define_code_attr mshift): New.
6490 (define_mode_iterator SWI1248_AVX512BW): Rename ...
6491 (SWI1248_AVX512BW): ... to this. Make QI enabled for TARGET_AVX512DQ
6493 (define_insn "*k<logic><mode>"): Use new iterator name.
6494 (define_insn "*<mshift><mode>3"): New.
6496 2015-09-23 Mikhail Maltsev <maltsevm@gmail.com>
6499 * memory-block.h (memory_block_pool::allocate): Use valgrind API to
6500 mark the block as accessible.
6502 2015-09-22 Segher Boessenkool <segher@kernel.crashing.org>
6504 * function.c (thread_prologue_and_epilogue_insns): Delete
6505 orig_entry_edge argument to try_shrink_wrapping.
6506 * shrink-wrap.c (can_get_prologue): New function.
6507 (can_dup_for_shrink_wrapping): Also handle EDGE_CROSSING.
6508 (try_shrink_wrapping): Delete orig_entry_edge argument. Use
6509 can_get_prologue where needed. Remove code that finds a single
6510 edge for the prologue. Remove code that tests if any reg clobbered
6511 by the prologue is live on the prologue edge. Remove code that finds
6512 the new prologue edge after duplicating blocks. Make a new prologue
6514 * shrink-wrap.h (try_shrink_wrapping): Delete orig_entry_edge argument.
6516 2015-09-22 Jeff Law <law@redhat.com>
6518 * config/pa/pa.h (MIN_LEGIT_64BIT_CONST_INT): Avoid undefined
6521 2015-09-22 Nathan Sidwell <nathan@codesourcery.com>
6523 * doc/invoke.texi (-Wmultiple-inheritance, -Wvirtual-inheritance,
6524 -Wtemplates, -Wnamespaces): Document.
6526 2015-09-22 Tom de Vries <tom@codesourcery.com>
6528 PR tree-optimization/67671
6529 * tree-ssa-structalias.c (create_variable_info_for_1): Handle restrict
6530 pointer references as restrict.
6532 2015-09-22 Chung-Lin Tang <cltang@codesourcery.com>
6534 * config/nios2/nios2.c (nios2_legitimize_address): When handling
6535 'reg + reloc' cases, allow first operand to be non-REG, and use
6536 force_reg() to enforce address pattern.
6538 2015-09-22 Alexander Fomin <alexander.fomin@intel.com>
6541 * config/i386/sse.md (define_mode_iterator VI48_AVX_AVX512F): New.
6542 (define_mode_iterator VI12_AVX_AVX512F): New.
6543 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Change
6544 all iterators to VI48_AVX_AVX512F. Extract remaining modes ...
6545 (define_insn "*<code><mode>3"): ... Into new pattern using
6546 VI12_AVX_AVX512F iterators without masking.
6548 2015-09-22 Kirill Yukhin <kirill.yukhin@intel.com>
6550 * config.gcc: Support "skylake-avx512".
6551 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
6552 PROCESSOR_SKYLAKE_AVX512.
6553 * config/i386/i386.c (m_SKYLAKE_AVX512): Define.
6554 (processor_target_table): Add "skylake-avx512".
6555 (PTA_SKYLAKE_AVX512): Define.
6556 (ix86_option_override_internal): Add "skylake_avx512".
6557 (fold_builtin_cpu): Handle "skylake_avx512", add F_AVX512VL
6558 F_AVX512BW, F_AVX512DQ, F_AVX512ER, F_AVX512PF, F_AVX512CD.
6559 * config/i386/i386.h (TARGET_SKYLAKE_AVX512): Define.
6560 (processor_type): Add PROCESSOR_SKYLAKE_AVX512.
6561 * doc/invoke.texi (skylake-avx512): New.
6563 2015-09-22 Kirill Yukhin <kirill.yukhin@intel.com>
6565 * gcc/config/i386/i386.md (define_insn "kunpckhi"): Fix
6567 (define_insn "kunpcksi"): Ditto.
6568 (define_insn "kunpckdi"): Ditto.
6570 2015-09-22 Kirill Yukhin <kirill.yukhin@intel.com>
6572 * gcc/config/i386/i386.md (define_split not/xor SWI1248x): Use
6573 iterator instead of fixed modes.
6575 2015-09-22 Matthew Wahab <matthew.wahab@arm.com>
6577 * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
6579 * config/aarch64/aarch64.c (aarch64_emit_bic): New.
6580 (aarch64_gen_atomic_ldop): Adjust comment. Add parameter
6581 out_result. Update to support update-fetch operations.
6582 * config/aarch64/atomics.md (aarch64_atomic_exchange<mode>_lse):
6583 Adjust for change to aarch64_gen_atomic_ldop.
6584 (aarch64_atomic_<atomic_optab><mode>_lse): Likewise.
6585 (aarch64_atomic_fetch_<atomic_optab><mode>_lse): Likewise.
6586 (atomic_<atomic_optab>_fetch<mode>): Change to an expander.
6587 (aarch64_atomic_<atomic_optab>_fetch<mode>): New.
6588 (aarch64_atomic_<atomic_optab>_fetch<mode>_lse): New.
6590 2015-09-22 Matthew Wahab <matthew.wahab@arm.com>
6592 * config/aarch64/aarch64-protos.h
6593 (aarch64_atomic_ldop_supported_p): Declare.
6594 * config/aarch64/aarch64.c (aarch64_atomic_ldop_supported_p): New.
6595 (enum aarch64_atomic_load_op_code): New.
6596 (aarch64_emit_atomic_load_op): New.
6597 (aarch64_gen_atomic_ldop): Update to support load-operate
6599 * config/aarch64/atomics.md (atomic_<atomic_optab><mode>): Change
6601 (aarch64_atomic_<atomic_optab><mode>): New.
6602 (aarch64_atomic_<atomic_optab><mode>_lse): New.
6603 (atomic_fetch_<atomic_optab><mode>): Change to an expander.
6604 (aarch64_atomic_fetch_<atomic_optab><mode>): New.
6605 (aarch64_atomic_fetch_<atomic_optab><mode>_lse): New.
6607 2015-09-22 Matthew Wahab <matthew.wahab@arm.com>
6609 * config/aarch64/aarch64/atomics.md (UNSPECV_ATOMIC_LDOP): New.
6610 (UNSPECV_ATOMIC_LDOP_OR): New.
6611 (UNSPECV_ATOMIC_LDOP_BIC): New.
6612 (UNSPECV_ATOMIC_LDOP_XOR): New.
6613 (UNSPECV_ATOMIC_LDOP_PLUS): New.
6616 (aarch64_atomic_load<atomic_ldop><mode>): New.
6618 2015-09-22 Matthew Wahab <matthew.wahab@arm.com>
6620 * config/aarch64/aarch64.md
6621 (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Make a named
6624 2015-09-22 Matthew Wahab <matthew.wahab@arm.com>
6626 * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
6628 * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): New.
6629 (aarch64_gen_atomic_ldop): New.
6630 (aarch64_split_atomic_op): Fix whitespace and add a comment.
6631 * config/aarch64/atomics.md (UNSPECV_ATOMIC_SWP): New.
6632 (aarch64_compare_and_swap<mode>_lse): Fix some whitespace.
6633 (atomic_exchange<mode>): Replace with an expander.
6634 (aarch64_atomic_exchange<mode>): New.
6635 (aarch64_atomic_exchange<mode>_lse): New.
6636 (aarch64_atomic_<atomic_optab><mode>): Fix some whitespace.
6637 (aarch64_atomic_swp<mode>): New.
6639 2015-09-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
6641 * tree-inline.c (expand_call_inline): Use inform for extra note.
6642 Do not give a note with UNKNOWN_LOCATION.
6643 Replace input_location with gimple_location (stmt).
6644 Use true/false instead of TRUE/FALSE.
6646 2015-09-22 Tom de Vries <tom@codesourcery.com>
6648 PR tree-optimization/67666
6649 * tree-ssa-structalias.c (create_variable_info_for_1): Handle struct
6650 with single field non-conservative.
6652 2015-09-21 David S. Miller <davem@davemloft.net>
6656 2015-09-11 David S. Miller <davem@davemloft.net>
6658 * config/sparc/constraints.md: Make "U" constraint a real register
6660 * config/sparc/sparc.c (TARGET_LRA_P): Define.
6661 (D_MODES, DF_MODES): Add missing cast.
6662 (TF_MODES, TF_MODES_NO_S): Include T_MODE.
6663 (OF_MODES, OF_MODES_NO_S): Include O_MODE.
6664 (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
6666 * config/sparc/sparc.h (PROMOTE_MODE): Define.
6667 * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
6668 provide these insn when flag_pic.
6670 2015-09-17 David S. Miller <davem@davemloft.net>
6672 * config/sparc/sparc-protos.h (sparc_secondary_memory_needed):
6674 * config/sparc/sparc.c (sparc_secondary_memory_needed): New
6676 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
6677 (HARD_REGNO_CALLER_SAVE_MODE): Define.
6678 * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
6679 (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
6680 (embmedany_losum, embmedany_brsum, embmedany_textuhi)
6681 (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
6682 provide when flag_pic.
6684 2015-09-21 Jeff Law <law@redhat.com>
6686 * config/h8300/h8300.md (andsi3_ashift_n_lower): Avoid undefined
6689 2015-09-21 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6691 * config/spu/spu.c (spu_expand_insv): Avoid undefined behavior.
6693 2015-09-21 Richard Biener <rguenther@suse.de>
6695 * passes.c (rest_of_decl_compilation): Do not call
6696 dwarf2out_early_global_decl for aliases.
6698 2015-09-21 Richard Biener <rguenther@suse.de>
6701 * dwarf2out.c (add_location_or_const_value_attribute): Remove
6702 attribute parameter. Early exit if either DW_AT_const_value
6703 or DW_AT_location are present already.
6704 (gen_variable_die): Adjust caller.
6705 (dwarf2out_late_global_decl): Likewise.
6707 2015-09-21 Oleg Endo <olegendo@gcc.gnu.org>
6710 * config/sh/sh.c (sh_remove_overlapping_post_inc,
6711 sh_peephole_emit_move_insn): Add new functions.
6712 * config/sh/sh-protos.h (sh_remove_overlapping_post_inc,
6713 sh_peephole_emit_move_insn): Declere them.
6714 * config/sh/sh.md: Use them in various peephole2 patterns.
6716 2015-09-21 Richard Biener <rguenther@suse.de>
6719 * rtlanal.c (nonzero_address_p): SYMBOL_REFs may have zero
6720 address with -fno-delete-null-pointer-checks.
6722 2015-09-21 Alan Lawrence <alan.lawrence@arm.com>
6724 * config/rs6000/altivec.md (reduc_splus_<mode>): Rename to...
6725 (reduc_plus_scal_<mode>): ...this, add rs6000_expand_vector_extract.
6726 (reduc_uplus_v16qi): Remove.
6728 * config/rs6000/vector.md (VEC_reduc_name): Change "splus" to "plus".
6729 (reduc_<VEC_reduc_name>_v2df): Remove.
6730 (reduc_<VEC_reduc_name>_v4sf): Remove.
6731 (reduc_<VEC_reduc:VEC_reduc_name>_scal_<VEC_F:name>): New.
6733 * config/rs6000/vsx.md (vsx_reduc_<VEC_reduc_name>_v2df): Declare
6734 gen_ function by removing * prefix.
6735 (vsx_reduc_<VEC_reduc_name>_v4sf): Likewise.
6737 2015-09-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
6740 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
6741 Print i_bound without converting it to a tree.
6743 2015-09-21 Bilyan Borisov <bilyan.borisov@arm.com>
6745 * config/arm/arm.c (thumb_output_move_mem_multiple): Replaced
6746 operands[4] operands[5] swap with std::swap, removed tmp variable.
6747 (arm_evpc_neon_vzip): Replaced in0/in1 and
6748 out0/out1 swaps with std::swap, removed x variable.
6749 (arm_evpc_neon_vtrn): Replaced in0/int1 and
6750 out0/out1 swaos with std::swap, removed x variable.
6751 (arm_expand_vec_perm_const_1): Replaced
6752 d->op0/d->op1 swap with std::swap, removed x variable.
6753 (arm_evpc_neon_vuzp): Replaced in0/in1 and
6754 out0/out1 swaps with std::swap, removed x variable.
6756 2015-09-21 Jonathan Yong <10walls@gmail.com>
6758 * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
6759 sysroot/usr/lib/32api for additional win32 libraries,
6760 fixes failing Cygwin bootstrapping.
6762 2015-09-21 Oleg Endo <olegendo@gcc.gnu.org>
6764 * doc/invoke.texi (SH Options): Undocument SH5/SH64 related options.
6766 2015-09-21 Oleg Endo <olegendo@gcc.gnu.org>
6769 * config/sh/sh.md (*reg_lsb_t): Emit bld insn on SH2A.
6770 (*mov_t_msb_neg): Rewrite negc pattern.
6772 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com>
6774 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Cleanup
6775 immediate generation code.
6777 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com>
6779 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Remove
6780 redundant immediate generation code.
6782 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com>
6784 * config/aarch64/aarch64.c (aarch64_bitmasks): Remove.
6785 (AARCH64_NUM_BITMASKS): Remove.
6786 (aarch64_bitmasks_cmp): Remove.
6787 (aarch64_build_bitmask_table): Remove.
6789 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com>
6791 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Replace
6792 slow immediate matching loops with a faster algorithm.
6794 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com>
6796 * config/aarch64/aarch64.c (aarch64_bitmask_imm): Reimplement using
6799 2015-09-20 Jeff Law <law@redhat.com>
6801 PR tree-optimization/47679
6802 * tree-ssa-dom.c (record_temporary_equivalences): No longer static.
6803 * tree-ssa-dom.h (record_temporary_equivalences): Add prototype.
6804 * tree-ssa-threadedge.c: Include tree-ssa-dom.h.
6805 (thread_through_normal_block): Use record_temporary_equivalences.
6807 2015-09-19 Trevor Saunders <tbsaunde@tbsaunde.org>
6809 * coretypes.h (gimple): Change typedef to be a forward declaration.
6810 * gimple.h (gimple_statement_base): rename to gimple.
6811 * (all functions and types using gimple): Adjust.
6814 2015-09-19 Andrew Dixie <andrewd@gentrack.com>
6815 David Edelsohn <dje.gcc@gmail.com>
6817 * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): Delete.
6818 (ASM_PREFERRED_EH_DATA_FORMAT): Define.
6819 (EH_FRAME_THROUGH_COLLECT2): Define.
6820 (EH_TABLES_CAN_BE_READ_ONLY): Define.
6821 (ASM_OUTPUT_DWARF_PCREL): Define.
6822 (ASM_OUTPUT_DWARF_DATAREL): Define.
6824 2015-09-19 John David Anglin <danglin@gcc.gnu.org>
6826 * config/pa/pa.c (pa_function_ok_for_sibcall): Remove special treatment
6829 2015-09-18 Jeff Law <law@redhat.com>
6831 PR tree-optimization/47679
6832 * tree-ssa-dom.c (avail_exprs_stack): No longer file scoped. Move
6834 (dom_opt_dom_walker): New private member holding the avail_exprs_stack
6835 object. Update constructor.
6836 (pass_dominator::execute): Corresponding chagnes to declaration
6837 and initialization of avail_exprs_stack. Update constructor call
6838 for dom_opt_dom_walker object.
6839 (lookup_avail_expr, record_cond): Accept additional argument. Pass
6840 it down to children as needed.
6841 (record_equivalences_from_incoming_edge): Likewise.
6842 (eliminate_redundant_computations): Likewise.
6843 (record_equivalences_from_stmt): Likewise.
6844 (simplify_stmt_for_jump_threading): Likewise.
6845 (record_temporary_equivalences): Likewise.
6846 (optimize_stmt): Likewise.
6847 (dom_opt_dom_walker::thread_across_edge): Update access to
6848 avail_exprs_stack object and pass it to children as needed.
6849 (dom_opt_dom_walker::before_dom_children): Similarly.
6850 (dom_opt_dom_walker::after_dom_children): Similarly.
6851 * tree-ssa-threadedge.c (pfn_simplify): New typedef.
6852 (record_temporary_equivalences_from_stmts_at_dest): Use new typedef.
6853 Add avail_expr_stack argument. Pass it to children as needed.
6854 (dummy_simplify): Likewise.
6855 (simplify_control_stmt_condition): Likewise.
6856 (thread_around_empty_blocks): Likewise.
6857 (thread_through_normal_block): Likewise.
6858 (thread_across_edge): Likewise.
6859 * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
6860 * tree-vrp.c (simplify_stmt_for_jump_threading): Update.
6862 PR tree-optimization/47679
6863 * tree-ssa-dom.c (const_and_copies): No longer file scoped. Move
6865 (dom_opt_dom_walker): New private member holding the const_and_copies
6866 object. Update constructor.
6867 (pass_dominator::execute): Corresponding changes to declaration
6868 and initialization of const_and_copies. Update constructor call
6869 for the dom_opt_dom_walker object.
6870 (record_temporary_equivalences): Accept const_and_copies argument
6871 pass it down to children as needed.
6872 (record_equality): Likewise.
6873 (record_equivalences_from_incoming_edge): Likewise.
6874 (cprop_into_successor_phis, optimize_stmt): Likewise.
6875 (eliminate_redundant_computations): Likewise.
6876 (dom_opt_dom_walker::thread_across_edge): Update access to
6877 const_and_copies object and pass it to children as needed.
6878 (dom_opt_dom_walker::before_dom_children): Similarly.
6879 (dom_opt_dom_walker::after_dom_children): Similarly.
6881 PR tree-optimization/47679
6882 * tree-ssa-dom.c (avail_exprs): No longer file scoped. Bury
6883 it into the avail_exprs_stack class.
6884 (pass_dominator::execute): Corresponding changes to declaration
6885 and initialization of avail_exprs. Pass avail_exprs to
6886 dump_dominator_optimization_stats.
6887 (record_cond): Extract avail_exprs from avail_exprs_stack.
6888 (lookup_avail_expr): Similarly.
6889 (htab_staticstics): Remove unnecessary prototype. Move to earlier
6891 (dump_dominator_optimization_stats): Make static and prototype.
6892 Add argument for the hash table to dump.
6893 (debug_dominator_optimization_stats): Remove.
6894 * tree-ssa-dom.h (dump_dominator_optimization_stats): Remove
6896 (debug_dominator_optimization_stats): Similarly.
6897 * tree-ssa-scopedtables.h (class avail_exprs_stack): Add missing
6898 "void" in prototype for pop_to_marker method. Add accessor method
6899 for the underlying avail_exprs table.
6901 * tree-ssa-threadedge.c: Remove trailing whitespace.
6903 2014-09-18 John David Anglin <danglin@gcc.gnu.org>
6905 * config/pa/pa-protos.h (pa_cint_ok_for_move): Change argument type to
6907 (pa_ldil_cint_p): Likewise.
6908 * config/pa/pa.c (pa_cint_ok_for_move): likewise.
6909 (pa_ldil_cint_p): Likewise. Change signed casts to unsigned.
6911 * config/pa/pa.md: Likewise.
6913 2015-09-18 David Malcolm <dmalcolm@redhat.com>
6915 * Makefile.in (OBJS-libcommon): Add diagnostic-show-locus.o.
6916 * diagnostic.c (adjust_line): Move to diagnostic-show-locus.c.
6917 (diagnostic_show_locus): Likewise.
6918 (diagnostic_print_caret_line): Likewise.
6919 * diagnostic-show-locus.c: New file.
6921 2015-09-18 David Edelsohn <dje.gcc@gmail.com>
6923 * dwarf2out.c (switch_to_eh_frame_section): Add ATTRIBUTE_UNUSED to
6924 "back" parameter. Declare label in #if block.
6926 2015-09-18 Uros Bizjak <ubizjak@gmail.com>
6929 * except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy
6930 the address to a register.
6932 2015-09-18 Jeff Law <law@redhat.com>
6934 PR tree-optimization/47679
6935 * Makefile.in (OBJS): Add tree-ssa-phionlycprop.o
6936 * tree-ssa-dom.c: Remove unnecessary header includes.
6937 (remove_stmt_or_phi): Moved from here into tree-ssa-phionlycprop.c
6938 (get_rhs_or_phi_arg, get_lhs_or_phi_result): Likewise.
6939 (propagate_rhs_into_lhs, eliminate_const_or_copy): Likewise.
6940 (eliminate_degenerate_phis_1, pass_phi_only_cprop): Likewise.
6941 (pass_phi_only_cprop::execute): Likewise.
6942 (make_pass_phi_only_cprop): Likewise.
6943 * tree-ssa-phionlycprop.c: New file with moved code. Eliminate
6944 uses of file scoped statics by passing the required objects
6945 as parameters wherever needed.
6947 2015-09-18 Andrew Dixie <andrewd@gentrack.com>
6948 David Edelsohn <dje.gcc@gmail.com>
6950 * defaults.h (EH_FRAME_SECTION_NAME): Depend on
6951 EH_FRAME_THROUGH_COLLECT2.
6952 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add case for
6954 * dwarf2out.c (switch_to_eh_frame_section): Use a read-only section
6955 even if EH_FRAME_SECTION_NAME is undefined. Restrict special
6956 collect2 labels to EH_FRAME_THROUGH_COLLECT2.
6957 * except.c (switch_to_exception_section): Use a read-only section
6958 even if EH_FRAME_SECTION_NAME is undefined.
6959 * system.h (EH_FRAME_IN_DATA_SECTION): Poison.
6960 * collect2.c (write_c_file_stat): Provide dbase on AIX.
6961 (scan_prog_file): Don't export __dso_handle nor
6963 * config/rs6000/aix.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
6964 (EH_TABLES_CAN_BE_READ_ONLY): Define.
6965 (ASM_OUTPUT_DWARF_PCREL): Define.
6966 (ASM_OUTPUT_DWARF_DATAREL): Define.
6967 (EH_FRAME_THROUGH_COLLECT2): Define.
6968 (EH_FRAME_IN_DATA_SECTION): Delete.
6969 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtdbase.o.
6970 * config/rs6000/rs6000-protos.h (rs6000_asm_output_dwarf_pcrel):
6972 (rs6000_asm_output_dwarf_datarel): Declare.
6973 * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_pcrel): New.
6974 (rs6000_aix_asm_output_dwarf_datarel): New.
6975 (rs6000_xcoff_asm_init_sections): Don't set exception_section.
6976 * config/spu/spu-elf.h (EH_FRAME_IN_DATA_SECTION): Delete.
6977 (EH_FRAME_THROUGH_COLLECT2): Define.
6978 * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Delete.
6979 (EH_FRAME_THROUGH_COLLECT2): Define.
6980 (EH_TABLES_CAN_BE_READ_ONLY): Define.
6981 * doc/tm.texi.in (EH_FRAME_IN_DATA_SECTION): Delete.
6982 (EH_FRAME_THROUGH_COLLECT2): New.
6983 (ASM_OUTPUT_DWARF_DATAREL): New.
6984 * doc/tm.texi: Regenerate.
6986 2015-09-18 Richard Biener <rguenther@suse.de>
6988 * dwarf2out.c (append_entry_to_tmpl_value_parm_die_table): Assert
6989 we're in early phase.
6990 (schedule_generic_params_dies_gen): Likewise.
6991 (gen_remaining_tmpl_value_param_die_attribute): Do only as much
6992 work as possible, retaining unhandled cases.
6993 (gen_scheduled_generic_parms_dies): Set early-dwarf flag and
6994 clear out generic_type_instances at the end.
6995 (dwarf2out_finish): Move call to gen_scheduled_generic_parms_dies...
6996 (dwarf2out_early_finish): ... here. Do most of
6997 gen_remaining_tmpl_value_param_die_attribute here.
6999 2015-09-18 Alan Lawrence <alan.lawrence@arm.com>
7001 PR tree-optimization/67283
7002 * tree-sra.c (type_consists_of_records_p): Rename to...
7003 (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
7004 (completely_scalarize_record): Rename to...
7005 (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
7006 (scalarize_elem): New.
7007 (analyze_all_variable_accesses): Follow renamings.
7009 2015-09-18 Richard Biener <rguenther@suse.de>
7011 * dwarf2out.c (add_location_or_const_value_attribute): Do nothing
7014 2015-09-18 Richard Biener <rguenther@suse.de>
7016 PR tree-optimization/66142
7017 * fold-const.c (operand_equal_p): When OEP_ADDRESS_OF
7018 treat MEM[&x] and x the same.
7019 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Remove.
7020 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Return true
7021 when we simplified sth.
7022 (vn_reference_maybe_forwprop_address): Likewise.
7023 (valueize_refs_1): When we simplified through
7024 vn_reference_fold_indirect or vn_reference_maybe_forwprop_address
7025 set valueized_anything to true.
7026 (vn_reference_lookup_3): Use stmt_kills_ref_p to see whether
7027 one ref kills the other instead of just a offset-based test.
7028 * tree-ssa-alias.c (stmt_kills_ref_p): Use OEP_ADDRESS_OF
7029 for the operand_equal_p test to compare bases and also compare
7032 2015-09-17 Christian Bruel <christian.bruel@st.com>
7034 * config/arm/arm.md (*call_value_symbol): Fix operand for interworking.
7036 2015-09-17 Richard Henderson <rth@redhat.com>
7039 * builtins.c (fold_builtin_atomic_always_lock_free): Handle fake
7040 pointers that encode the alignment of the object.
7042 2015-09-17 Eric Botcazou <ebotcazou@adacore.com>
7044 PR rtl-optimization/66790
7045 * df-problems.c (LIVE): Amend documentation.
7047 2015-09-17 Richard Sandiford <richard.sandiford@arm.com>
7049 * Makefile.in (OBJS): Add optabs-libfuncs.o, optabs-query.o
7051 (GTFILES): Replace optabs.c with optabs-libfunc.c.
7052 * genopinit.c (main): Add an include guard to insn-opinit.h.
7053 Protect the rtx_code parts with NUM_RTX_CODE.
7054 * optabs.h: Split parts out to...
7055 * optabs-libfuncs.h, optabs-query.h, optabs-tree.h: ...these new files.
7056 * optabs.c: Split parts out to...
7057 * optabs-libfuncs.c, optabs-query.c, optabs-tree.c: ...these new files.
7058 * cilk-common.c: Include optabs-query.h rather than optabs.h.
7059 * fold-const.c: Likewise.
7060 * target-globals.c: Likewise.
7061 * tree-if-conv.c: Likewise.
7062 * tree-ssa-forwprop.c: Likewise.
7063 * tree-ssa-loop-prefetch.c: Likewise.
7064 * tree-ssa-math-opts.c: Include optabs-tree.h rather than optabs.h.
7065 Remove unncessary include files.
7066 * tree-ssa-phiopt.c: Likewise.
7067 * tree-ssa-reassoc.c: Likewise.
7068 * tree-switch-conversion.c: Likewise.
7069 * tree-vect-data-refs.c: Likewise.
7070 * tree-vect-generic.c: Likewise.
7071 * tree-vect-loop.c: Likewise.
7072 * tree-vect-patterns.c: Likewise.
7073 * tree-vect-slp.c: Likewise.
7074 * tree-vect-stmts.c: Likewise.
7075 * tree-vrp.c: Likewise.
7076 * toplev.c: Include optabs-query.h and optabs-libfuncs.h
7077 rather than optabs.h.
7078 * expr.c: Include optabs-tree.h.
7079 * function.c: Likewise.
7081 2015-09-17 Eric Botcazou <ebotcazou@adacore.com>
7084 * config/arm/linux-elf.h (STACK_CHECK_STATIC_BUILTIN): Define.
7085 * config/arm/arm-protos.h (output_probe_stack_range): Declare.
7086 * config/arm/arm.c: Include common/common-target.h.
7087 (use_return_insn): Return 0 if the static chain register was saved
7088 above a non-APCS frame.
7089 (arm_compute_static_chain_stack_bytes): Adjust for stack checking.
7090 (struct scratch_reg): New.
7091 (get_scratch_register_on_entry): New function.
7092 (release_scratch_register_on_entry): Likewise.
7093 (arm_emit_probe_stack_range): Likewise.
7094 (output_probe_stack_range): Likewise.
7095 (arm_expand_prologue): Factor out code dealing with the IP register
7096 for nested function and adjust it for stack checking.
7097 Invoke arm_emit_probe_stack_range if static builtin stack checking
7099 (thumb1_expand_prologue): Sorry out if static builtin stack checking
7101 (arm_expand_epilogue): Add the saved static chain register, if any, to
7102 the amount of pre-pushed registers to pop.
7103 (arm_frame_pointer_required): Return true if static stack checking is
7104 enabled and we want to catch the exception with the EABI unwinder.
7105 * config/arm/unspecs.md (UNSPEC_PROBE_STACK): New constant.
7106 (UNSPEC_PROBE_STACK_RANGE): Likewise.
7107 * config/arm/arm.md (probe_stack): New insn.
7108 (probe_stack_range): Likewise.
7110 2015-09-17 Richard Biener <rguenther@suse.de>
7112 * genmatch.c (parser::parse_expr): Improve error message
7113 for mis-placed flags.
7115 2015-09-17 Richard Biener <rguenther@suse.de>
7117 * passes.c (rest_of_decl_compilation): Always call early_global_decl
7118 debug hook when we created a varpool node.
7119 * dwarf2out.c (dwarf2out_late_global_decl): When in LTO call
7120 dwarf2out_early_global_decl, when not just add location or
7121 value attributes to existing DIEs.
7123 2015-09-17 James Greenhalgh <james.greenhalgh@arm.com>
7125 * config/aarch64/aarch64.md (copysigndf3): New.
7126 (copysignsf3): Likewise.
7128 2015-09-17 David S. Miller <davem@davemloft.net>
7130 * config/sparc/sparc-protos.h (sparc_secondary_memory_needed): Declare.
7131 * config/sparc/sparc.c (sparc_secondary_memory_needed): New function.
7132 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
7133 (HARD_REGNO_CALLER_SAVE_MODE): Define.
7134 * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
7135 (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
7136 (embmedany_losum, embmedany_brsum, embmedany_textuhi)
7137 (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
7138 provide when flag_pic.
7140 2015-09-17 Kaz Kojima <kkojima@gcc.gnu.org>
7142 * config/sh/sh.c (label_ref_list_d_pool): Adjust to
7143 object_allocator change.
7145 2015-09-17 Bin Cheng <bin.cheng@arm.com>
7147 PR tree-optimization/66388
7148 * tree-ssa-loop-ivopts.c (struct iv, iv_cand, ivopts_data): New fields.
7149 (dump_iv): Dump no_overflow information.
7150 (alloc_iv): Initialize new field for struct iv.
7151 (mark_bivs): Count number of no_overflow bivs.
7152 (find_deriving_biv_for_expr, record_biv_for_address_use): New
7154 (idx_find_step): Call new functions above.
7155 (add_candidate_1, add_candidate): New paramter.
7156 (add_iv_candidate_for_biv): Add sizetype cand for BIV.
7157 (get_computation_aff): Simplify convertion of cand for BIV.
7158 (get_computation_cost_at): Step cand's base if necessary.
7160 2015-09-17 Bin Cheng <bin.cheng@arm.com>
7162 * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New
7164 (tree_simplify_using_condition): Ditto.
7165 (simplify_using_initial_conditions): Ditto.
7166 (loop_exits_before_overflow): Pass new argument to function
7167 simplify_using_initial_conditions. Remove case for type conversions
7169 * tree-ssa-loop-niter.h (simplify_using_initial_conditions): New
7171 * tree-scalar-evolution.c (simple_iv): Simplify type conversions
7172 in iv base using loop initial conditions.
7174 2015-09-16 Jeff Law <law@redhat.com>
7176 PR tree-optimization/47679
7177 * tree-ssa-dom.c (free_edge_info): Factored out of free_all_edge_infos.
7178 (free_all_edge_infos): Use it.
7179 (allocate_edge_info): Free preexisting edge info data.
7180 (pass_dominator::execute): Set up initial edge info structures.
7181 (dom_opt_dom_walker::thread_across_edge): Pass avail_expr_stack to
7183 * tree-ssa-threadedge.c (thread_across_edge): Accept new argument.
7184 If non-null, then push/pop markers appropriately.
7185 * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
7186 * tree-vrp.c (identify_jump_threads): Pass NULL for new argument to
7189 2015-09-16 James Bowman <james.bowman@ftdichip.com>
7191 * config/ft32/ft32.c: Fix the memory address space predicate.
7193 2015-09-16 Kaz Kojima <kkojima@gcc.gnu.org>
7196 * config/sh/sh.md (call_pcrel): Add early clobber to scratch operand.
7197 (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
7199 2015-09-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
7201 * toplev.h (check_global_declaration): Remove declaration.
7202 * toplev.c (check_global_declaration): Move to ...
7203 * cgraphunit.c: ... here. Make it static and pass a symtab_node *.
7204 (analyze_functions): Update call.
7206 2015-09-16 David S. Miller <davem@davemloft.net>
7208 * lra-constraints.c (simplify_operand_subreg): Do not assume that
7209 lowpart of a SUBREG has offset zero.
7211 2015-09-16 Jeff Law <law@redhat.com>
7213 PR tree-optimization/47679
7214 * tree-ssa-dom.c (enum expr_kind): Moved from here to
7215 tree-ssa-scopedtables.h.
7216 (struct hashable_expr, class expr_hash_elt): Likewise.
7217 (struct expr_elt_hasher, class avail_exprs_stack): Likewise.
7218 Move associated methods into tree-ssa-scopedtables.c.
7219 (avail_expr_hash, initialize_expr_from_cond): Similarly.
7220 (hashable_expr_equal_p, add_expr_commutative): Likewise.
7221 (add_hashable_expr): Likewise.
7222 (record_cond): Delete element directly.
7223 * tree-ssa-scopedtables.h (avail_expr_stack, const_and_copies): Add
7224 private copy ctor and assignment operator methods.
7225 (expr_elt_hasher): Inline trivial methods.
7226 (initialize_expr_from_cond): Prototype.
7227 * tree-ssa-scopedtables.c: Add necessary includes, functions and
7228 methods that were previously in tree-ssa-dom.c. Improve various
7231 2015-09-16 Paolo Carlini <paolo.carlini@oracle.com>
7233 * doc/invoke.texi ([Wsubobject-linkage]): Extend documentation.
7235 2015-09-16 Segher Boessenkool <segher@kernel.crashing.org>
7238 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
7241 2015-09-16 Richard Biener <rguenther@suse.de>
7244 * cfgexpand.c (expand_gimple_stmt_1): Do not clobber
7245 location of possibly shared trees.
7247 2015-09-16 Richard Biener <rguenther@suse.de>
7250 * fold-const.c (native_encode_expr): Bail out on bogus offsets.
7252 2015-09-16 Eric Botcazou <ebotcazou@adacore.com>
7254 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use offset_int for
7255 offset and size computations instead of HOST_WIDE_INT.
7257 2015-09-16 Richard Biener <rguenther@suse.de>
7260 * fold-const.c (extract_muldiv_1): Properly extend multiplication
7261 result before builting a tree via wide_int_to_tree.
7263 2015-09-16 Mikhail Maltsev <maltsevm@gmail.com>
7265 * Makefile.in: Add memory-block.cc
7266 (pool_allocator::initialize): Use fixed block size.
7267 (pool_allocator::release): Use memory_block_pool.
7268 (pool_allocator::allocate): Likewise.
7269 * asan.c (asan_mem_ref_pool): Adjust to use common block size in all
7271 * cfg.c (initialize_original_copy_tables): Likewise.
7272 * cselib.c (elt_list_pool, elt_loc_list_pool,
7273 cselib_val_pool): Likewise.
7274 * df-problems.c (df_chain_alloc): Likewise.
7275 * df-scan.c (df_scan_alloc): Likewise.
7276 * dse.c (cse_store_info_pool, rtx_store_info_pool,
7277 read_info_type_pool, insn_info_type_pool, bb_info_pool,
7278 group_info_pool, deferred_change_pool): Likewise.
7279 * et-forest.c (et_nodes, et_occurrences): Likewise.
7280 * ipa-cp.c (ipcp_cst_values_pool, ipcp_sources_pool,
7281 ipcp_agg_lattice_pool): Likewise.
7282 * ipa-inline-analysis.c (edge_predicate_pool): Likewise.
7283 * ipa-profile.c (histogram_pool): Likewise.
7284 * ipa-prop.c (ipa_refdesc_pool): Likewise.
7285 * ira-build.c (live_range_pool, allocno_pool, object_pool,
7286 initiate_cost_vectors, pref_pool, copy_pool): Likewise.
7287 * ira-color.c (update_cost_record_pool): Likewise.
7288 * lra-lives.c (lra_live_range_pool): Likewise.
7289 * lra.c (lra_insn_reg_pool, lra_copy_pool): Likewise.
7290 * memory-block.cc: New file.
7291 * memory-block.h: New file.
7292 * regcprop.c (queued_debug_insn_change_pool): Use common block size.
7293 * sched-deps.c (sched_deps_init): Likewise.
7294 * sel-sched-ir.c (sched_lists_pool): Likewise.
7295 * stmt.c (expand_case, expand_sjlj_dispatch_table): Likewise.
7296 * tree-sra.c (access_pool): Likewise.
7297 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
7298 * tree-ssa-pre.c (pre_expr_pool, bitmap_set_pool): Likewise.
7299 * tree-ssa-reassoc.c (operand_entry_pool): Likewise.
7300 * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
7301 * tree-ssa-strlen.c (strinfo_pool): Likewise.
7302 * tree-ssa-structalias.c (variable_info_pool): Likewise.
7303 * var-tracking.c (attrs_def_pool, var_pool, valvar_pool,
7304 location_chain_pool, shared_hash_pool, loc_exp_dep_pool): Likewise.
7306 2015-09-15 Max Filippov <jcmvbkbc@gmail.com>
7308 * config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New
7310 (DWARF_FRAME_REGISTERS): Reserve space for one extra register in
7313 2015-09-15 Max Filippov <jcmvbkbc@gmail.com>
7315 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Use a10 or a2
7316 to pass TLS call argument, according to current ABI.
7317 * config/xtensa/xtensa.md (tls_call pattern): Use callx8 or
7318 callx0 for TLS call, according to current ABI.
7320 2015-09-15 Eric Botcazou <ebotcazou@adacore.com>
7322 * tree-eh.c (lower_try_finally_dup_block): Clear location information
7323 on stack restore statements.
7324 (decide_copy_try_finally): Do not consider a stack restore statement as
7325 coming from sources.
7327 2015-09-15 Uros Bizjak <ubizjak@gmail.com>
7329 * config/alpha/alpha.c (alpha_expand_block_clear): Use
7330 HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting.
7332 2015-09-15 Jeff Law <law@redhat.com>
7334 PR tree-optimization/47679
7335 * tree-ssa-dom.c (expr_hash_elt): Now a class with ctors/dtors,
7336 methods and private members.
7337 (avail_exprs_stack): Similarly. Change type of global
7338 from a pair of expr_hash_elt_t to the new class.
7339 (expr_elt_hasher::hash): Corresponding changes.
7340 (expr_elt_hasher::equal): Similarly.
7341 (avail_expr_hash): Similarly.
7342 (pass_dominator::execute): Similarly.
7343 (dom_opt_dom_walker::thread_across_edge): Similarly.
7344 (record_cond): Similarly.
7345 (dom_opt_dom_walker::before_dom_children): Similarly.
7346 (dom_opt_dom_walker::after_dom_children): Similarly.
7347 (lookup_avail_expr): Likewise.
7348 (initialize_hash_element): Now a expr_hash_elt constructor.
7349 (initialize_hash_element_from_expr): Similarly.
7350 (free_expr_hash_elt_contents): Now a dtor for class expr_hash_elt.
7351 (free_expr_hash_elt): Call dtor for the element.
7352 (remove_local_expressions_from_table): Now the "pop_to_marker"
7353 method in the available_exprs_stack class.
7354 (avail_expr_stack::record_expr): Method factored out.
7355 (print_expr_hash_elt): Now a method in the expr_hash_elt class.
7357 (hashable_expr_equal_p): Fix formatting.
7359 2015-09-15 David Malcolm <dmalcolm@redhat.com>
7361 * input.h (location_get_source_line): Drop "expanded_location"
7362 param in favor of a file and line number.
7363 * input.c (location_get_source_line): Likewise.
7364 (dump_location_info): Update for change in signature of
7365 location_get_source_line.
7366 * diagnostic.c (diagnostic_print_caret_line): Likewise.
7368 2015-09-15 Eric Botcazou <ebotcazou@adacore.com>
7370 * defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions.
7371 Bump to 4KB for SJLJ exceptions.
7372 (STACK_CHECK_PROTECT): Likewise. Bump to 8KB for SJLJ exceptions.
7373 * doc/tm.texi.in (STACK_CHECK_PROTECT): Adjust.
7374 * doc/tm.texi: Regenerate.
7376 2015-09-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7378 * config/arm/arm.c (arm_gen_constant): Use HOST_WIDE_INT_M1U instead
7379 of -1 when shifting. Change type of val to unsigned HOST_WIDE_INT.
7382 2015-09-15 Richard Biener <rguenther@suse.de>
7384 PR tree-optimization/67470
7385 * tree-ssa-loop-im.c (execute_sm_if_changed): Preserve PHI
7386 structure for PHI hoisting by inserting a forwarder block
7389 2015-09-15 Christian Bruel <christian.bruel@st.com>
7391 * config/arm/arm.c (TARGET_OPTION_PRINT): Define.
7392 (arm_option_print): New function.
7394 2015-09-15 Christian Bruel <christian.bruel@st.com>
7397 * config/arm/arm.c (arm_option_params_internal): Remove opts parameter.
7398 * config/arm/arm-c.c (arm_cpu_builtins): Declare static.
7399 Remove flags parameter.
7400 * config/arm/arm.h (TARGET_32BIT_P, TARGET_ARM_QBIT_P)
7401 (TARGET_ARM_SAT_P, TARGET_IDIV_P, TARGET_HAVE_LDREX_P)
7402 (TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P, TARGET_DSP_MULTIPLY_P)
7403 (TARGET_ARM_FEATURE_LDREX_P, TARGET_INT_SIMD_P): Redefine macros with...
7404 (TARGET_ARM_SAT, TARGET_IDIV, TARGET_HAVE_LDREX)
7405 (TARGET_HAVE_LDREXBH, TARGET_HAVE_LDREXD, TARGET_ARM_FEATURE_LDREX)
7406 (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): Redefined macros.
7407 * gcc/config/arm/arm-protos.h (arm_cpu_builtins): Remove declaration.
7409 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
7411 * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): New.
7413 * config/aarch64/aarch64.c (aarch64_array_mode_supported_p): Add
7414 AARCH64_VALID_SIMD_DREG_MODE.
7416 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
7418 * config/aarch64/aarch64-simd.md (aarch64_ld2r<mode>,
7419 aarch64_ld3r<mode>, aarch64_ld4r<mode>): Combine together, making...
7420 (aarch64_simd_ld<VSTRUCT:nregs>r<VALLDIF:mode>): ...this.
7421 (aarch64_ld2_lane<mode>, aarch64_ld3_lane<mode>,
7422 aarch64_ld4_lane<mode>): Combine together, making...
7423 (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
7424 (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
7425 aarch64_st4_lane<mode>): Combine together, making...
7426 (aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
7427 * config/aarch64/iterators.md (nregs): Add comment.
7429 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
7431 * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>):
7432 Change operand mode from <V_TWO_ELEM> to BLK.
7433 (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
7434 (aarch64_vec_store_lanesoi_lane<mode): Likewise
7435 (aarch64_ld2r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
7436 (aarch64_ld2_lane<mode>): Likewise.
7437 (aarch64_st2_lane<VQ:mode>): Likewise.
7438 * config/aarch64/iterators.md (V_TWO_ELEM): Remove.
7440 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
7442 * config/aarch64/aarch64-simd.md (aarch64_simd_ld4r<mode>):
7443 Change operand mode from <V_FOUR_ELEM> to BLK.
7444 (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
7445 (aarch64_vec_store_lanesxi_lane<mode): Likewise.
7446 (aarch64_ld4r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
7447 (aarch64_ld4_lane<mode>): Likewise.
7448 (aarch64_st4_lane<mode>): Likewise.
7449 * config/aarch64/iterators.md (V_FOUR_ELEM): Remove.
7451 2015-09-15 Richard Biener <rguenther@suse.de>
7454 * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
7455 transfer EH info from old to new stmt.
7456 (replace_call_with_value): Likewise.
7457 (replace_call_with_call_and_fold): Likewise.
7458 (gimple_fold_builtin_memory_op): Likewise.
7459 (gimple_fold_builtin_memset): Likewise.
7460 (gimple_fold_builtin_stpcpy): Likewise.
7461 (gimple_fold_call): Likewise.
7463 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
7465 * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist): Update
7467 * config/aarch64/aarch64-builtins.c (ei_UP): Remove.
7468 (aarch64_simd_intEI_type_node): Likewise.
7469 (aarch64_simd_builtin_std_type): Remove EImode case.
7470 (aarch64_init_simd_builtin_types): Don't create/add intEI_type_node.
7471 * config/aarch64/aarch64-modes.def: Remove EImode.
7473 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
7475 * config/aarch64/aarch64-simd.md (aarch64_simd_ld3r<mode>):
7476 Change operand mode from <V_THREE_ELEM> to BLK.
7477 (aarch64_vec_load_lanesci_lane<mode>): Likewise.
7478 (aarch64_vec_store_lanesci_lane<mode>): Likewise.
7479 (aarch64_ld3r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
7480 (aarch64_ld3_lane<mode>): Likewise.
7481 (aarch64_st3_lane<mode>): Likewise.
7482 * config/aarch64/iterators.md (V_THREE_ELEM): Remove.
7484 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
7486 * config/aarch64/aarch64-simd.md
7487 (aarch64_ld2<mode>_dreg VD & DX, aarch64_st2<mode>_dreg VD & DX ):
7488 Change all TImode operands to BLKmode.
7489 (aarch64_ld3<mode>_dreg VD & DX, aarch64_st3<mode>_dreg VD & DX):
7490 Change all EImode operands to BLKmode.
7491 (aarch64_ld4<mode>_dreg VD & DX, aarch64_st4<mode>_dreg VD & DX):
7492 Change all OImode operands to BLKmode.
7494 (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Generate MEM rtx with BLKmode
7495 and call set_mem_size.
7496 (aarch64_st<VSTRUCT:nregs><VDC:mode>): Likewise.
7498 * config/aarch64/iterators.md (VSTRUCT_DREG): Remove.
7500 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
7502 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Rename
7504 (aarch64_vec_store_lanesoi_lane<mode>): ...this.
7506 (vec_store_lanesci_lane<mode>): Rename to...
7507 (aarch64_vec_store_lanesci_lane<mode>): ...this.
7509 (vec_store_lanesxi_lane<mode>): Rename to...
7510 (aarch64_vec_store_lanesxi_lane<mode>): ...this.
7512 (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
7513 aarch64_st4_lane<mode>): Follow renaming.
7515 2015-09-15 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7517 * config/s390/s390.c (s390_const_operand_ok): Add missing
7520 2015-09-15 Richard Biener <rguenther@suse.de>
7523 * lto-streamer.h (lto_location_cache::current_sysp): Properly
7525 * lto-streamer-out.c (clear_line_info): Likewise.
7527 2015-09-15 Richard Biener <rguenther@suse.de>
7529 * doc/match-and-simplify.texi: Fix wording.
7531 2015-09-15 Bin Cheng <bin.cheng@arm.com>
7533 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Strip
7534 unnecessary type conversion in op1.
7536 2015-09-14 Segher Boessenkool <segher@kernel.crashing.org>
7538 * shrink-wrap.c (requires_stack_frame_p): Fix formatting.
7539 (dup_block_and_redirect): Delete function.
7540 (can_dup_for_shrink_wrapping): New function.
7541 (fix_fake_fallthrough_edge): New function.
7542 (try_shrink_wrapping): Rewrite function.
7543 (convert_to_simple_return): Call fix_fake_fallthrough_edge.
7545 2015-09-14 Rich Felker <dalias@libc.org>
7547 * configure.ac: Change target pattern for sh TLS support
7548 test from "sh[34]-*-*" to "sh[123456789lbe]*-*-*".
7549 * configure: Regenerate.
7551 2015-09-14 Jeff Law <law@redhat.com>
7553 PR tree-optimization/47679
7554 * tree-ssa-dom.c (avail_expr_hash): Pass a pointer to a real
7555 type rather than void *.
7557 2015-09-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
7560 * diagnostic.c (diagnostic_initialize): Do not set
7561 some_warnings_are_errors.
7562 (diagnostic_finish): Use DK_WERROR count instead.
7563 (diagnostic_report_diagnostic): Do not set
7564 some_warnings_are_errors.
7565 * diagnostic.h (struct diagnostic_context): Remove
7566 some_warnings_are_errors.
7568 2015-09-14 Richard Sandiford <richard.sandiford@arm.com>
7570 * config/sparc/predicates.md (const_all_ones_operand): Use
7571 CONSTM1_RTX to simplify definition.
7573 2015-09-14 Oleg Endo <olegendo@gcc.gnu.org>
7576 * config/sh/sh-protos.h (sh_find_set_of_reg): Simplfiy for-loop.
7579 2015-09-14 Chung-Lin Tang <cltang@codesourcery.com>
7581 * lto-wrapper.c (merge_and_complain): Add OPT_fdiagnostics_show_caret,
7582 OPT_fdiagnostics_show_option, OPT_fdiagnostics_show_location_, and
7583 OPT_fshow_column to handled saved option cases.
7584 (append_compiler_options): Do not skip the above added options.
7586 2015-09-14 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7589 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Handle
7590 nopcrelative_literal_loads.
7591 (aarch64_classify_address): Likewise.
7592 (aarch64_constant_pool_reload_icode): Define.
7593 (aarch64_secondary_reload): Handle secondary reloads for
7595 (aarch64_override_options): Handle nopcrelative_literal_loads.
7596 (aarch64_classify_symbol): Handle nopcrelative_literal_loads.
7597 * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
7599 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
7600 * config/aarch64/aarch64.opt (mpc-relative-literal-loads): New option.
7601 * config/aarch64/predicates.md (aarch64_constant_pool_symref): New
7603 * doc/invoke.texi (mpc-relative-literal-loads): Document.
7605 2015-09-14 John David Anglin <danglin@gcc.gnu.org>
7608 * optabs.c (expand_atomic_compare_and_swap): Move result of emitting
7609 sync_compare_and_swap_optab libcall to target_oval.
7611 2015-09-14 Marek Polacek <polacek@redhat.com>
7613 * rtlanal.c (split_double): Cast to unsigned when shifting a negative
7615 * sched-int.h (UNKNOWN_DEP_COST): Likewise.
7617 2015-09-11 Mark Wielaard <mjw@redhat.com>
7620 * toplev.c (check_global_declaration): Check and use
7621 warn_unused_const_variable.
7622 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable.
7623 (-Wunused-variable): Remove non-constant. For C implies
7624 -Wunused-const-variable.
7625 (-Wunused-const-variable): New.
7627 2015-09-14 Richard Biener <rguenther@suse.de>
7629 * doc/match-and-simplify.texi: Update for changed syntax
7630 of inner ifs and the new switch expression.
7632 2015-09-14 Yuri Rumyantsev <ysrumyan@gmail.com>
7634 * config/i386/haswell.md: New file describing Haswell pipeline.
7635 * config/i386/i386.c (processor_alias_table): Use CPU_HASWELL for
7636 haswell-like processors.
7637 (ix86_reassociation_width): Increase reassociation width for 64-bit
7638 Haswell processor family.
7639 * config/i386/i386.md: Introduce haswell cpu and include new md file.
7641 2015-09-14 Richard Biener <rguenther@suse.de>
7643 * doc/match-and-simplify.texi: Fixup some formatting issues
7644 and document the 's' flag.
7646 2015-09-13 Olivier Hainque <hainque@adacore.com>
7647 Eric Botcazou <ebotcazou@adacore.com>
7649 * config.gcc (visium-*-*): Enable --with-cpu option, accept gr5 and
7650 gr6 as possible values, defaulting to gr5. Set target_cpu_default2.
7651 * config/visium/visium.h (OPTION_DEFAULT_SPECS): Define.
7652 (TARGET_CPU_gr5): Likewise.
7653 (TARGET_CPU_gr6): Likewise.
7654 (MULTILIB_DEFAULTS): Likewise.
7655 * config/visium/t-visium (MULTILIB_OPTIONS): Request distinct variants
7656 for mcpu=gr5 and mcpu=gr6.
7657 (MULTILIB_DIRNAMES): Adjust accordingly.
7659 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7661 * tree-ssa-loop-im.c (mem_ref_loc_p): Remove typedef.
7662 (mem_ref_p): Likewise.
7663 (outermost_indep_loop): Adjust.
7664 (mem_ref_in_stmt): Likewise.
7665 (determine_max_movement): Likewise.
7666 (mem_ref_alloc): Likewise.
7667 (record_mem_ref_loc): Likewise.
7668 (set_ref_stored_in_loop): Likewise.
7669 (mark_ref_stored): Likewise.
7670 (gather_mem_refs_stmt): Likewise.
7671 (mem_refs_may_alias_p): Likewise.
7672 (for_all_locs_in_loop): Likewise.
7673 (struct rewrite_mem_ref_loc): Likewise.
7674 (rewrite_mem_refs): Likewise.
7675 (struct first_mem_ref_loc_1): Likewise.
7676 (first_mem_ref_loc): Likewise.
7677 (struct sm_set_flag_if_changed): Likewise.
7678 (execute_sm_if_changed_flag_set): Likewise.
7679 (execute_sm): Likewise.
7680 (hoist_memory_references):
7681 (struct ref_always_accessed): Likewise.
7682 (ref_always_accessed_p): Likewise.
7683 (refs_independent_p): Likewise.
7684 (record_dep_loop): Likewise.
7685 (ref_indep_loop_p_1): Likewise.
7686 (ref_indep_loop_p_2): Likewise.
7687 (ref_indep_loop_p): Likewise.
7688 (can_sm_ref_p): Likewise.
7689 (find_refs_for_sm): Likewise.
7690 (tree_ssa_lim_finalize): Likewise.
7692 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7694 * dwarf2out.c (dw_attr_ref): Remove typedef.
7695 (dw_line_info_ref): Likewise.
7696 (pubname_ref): Likewise.
7697 (dw_ranges_ref): Likewise.
7698 (dw_ranges_by_label_ref): Likewise.
7699 (comdat_type_node_ref): Likewise.
7701 (get_AT_low_pc): Likewise.
7702 (get_AT_hi_pc): Likewise.
7703 (get_AT_string): Likewise.
7704 (get_AT_flag): Likewise.
7705 (get_AT_unsigned): Likewise.
7706 (get_AT_ref): Likewise.
7707 (get_AT_file): Likewise.
7708 (remove_AT): Likewise.
7709 (print_die): Likewise.
7710 (check_die): Likewise.
7711 (die_checksum): Likewise.
7712 (attr_checksum_ordered): Likewise.
7713 (struct checksum_attributes): Likewise.
7714 (collect_checksum_attributes): Likewise.
7715 (die_checksum_ordered): Likewise.
7716 (same_die_p): Likewise.
7717 (is_declaration_die): Likewise.
7718 (clone_die): Likewise.
7719 (clone_as_declaration): Likewise.
7720 (copy_declaration_context): Likewise.
7721 (break_out_comdat_types): Likewise.
7722 (copy_decls_walk): Likewise.
7723 (output_location_lists): Likewise.
7724 (external_ref_hasher::hash): Likewise.
7725 (optimize_external_refs_1): Likewise.
7726 (build_abbrev_table): Likewise.
7727 (size_of_die): Likewise.
7728 (unmark_all_dies): Likewise.
7729 (size_of_pubnames): Likewise.
7730 (output_die_abbrevs): Likewise.
7731 (output_die): Likewise.
7732 (output_pubnames): Likewise.
7733 (add_ranges_num): Likewise.
7734 (add_ranges_by_labels): Likewise.
7735 (add_high_low_attributes): Likewise.
7736 (gen_producer_string): Likewise.
7737 (dwarf2out_set_name): Likewise.
7738 (new_line_info_table): Likewise.
7739 (prune_unused_types_walk_attribs): Likewise.
7740 (prune_unused_types_update_strings): Likewise.
7741 (prune_unused_types): Likewise.
7742 (resolve_addr): Likewise.
7743 (optimize_location_lists_1): Likewise.
7744 (index_location_lists): Likewise.
7745 (dwarf2out_finish): Likewise.
7747 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7749 * dwarf2cfi.c (dw_trace_info_ref): Remove typedef.
7751 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7753 * tree-vrp.c (struct assert_locus_d): Rename to assert_locus.
7754 (dump_asserts_for): Adjust.
7755 (register_new_assert_for): Likewise.
7756 (process_assert_insertions): Likewise.
7757 (insert_range_assertions): Likewise.
7759 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7761 * tree-ssa-ter.c (temp_expr_table_d): Rename to temp_expr_table
7763 (new_temp_expr_table): Adjust.
7764 (free_temp_expr_table): Likewise.
7765 (version_to_be_replaced_p): Likewise.
7766 (make_dependent_on_partition): Likewise.
7767 (add_to_partition_kill_list): Likewise.
7768 (remove_from_partition_kill_list): Likewise.
7769 (add_dependence): Likewise.
7770 (finished_with_expr): Likewise.
7771 (process_replaceable): Likewise.
7772 (kill_expr): Likewise.
7773 (kill_virtual_exprs): Likewise.
7774 (mark_replaceable): Likewise.
7775 (find_replaceable_in_bb): Likewise.
7776 (find_replaceable_exprs): Likewise.
7777 (debug_ter): Likewise.
7779 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7781 * bt-load.c (struct btr_def_group): Rename from btr_def_group_s.
7782 (struct btr_user): Rename from btr_user_s.
7783 (struct btr_def): Rename from btr_def_s.
7784 (find_btr_def_group): Adjust.
7785 (add_btr_def): Likewise.
7786 (new_btr_user): Likewise.
7787 (note_other_use_this_block): Likewise.
7788 (compute_defs_uses_and_gen): Likewise.
7789 (link_btr_uses): Likewise.
7790 (build_btr_def_use_webs): Likewise.
7791 (block_at_edge_of_live_range_p): Likewise.
7792 (btr_def_live_range): Likewise.
7793 (combine_btr_defs): Likewise.
7794 (move_btr_def): Likewise.
7795 (migrate_btr_def): Likewise.
7796 (migrate_btr_defs): Likewise.
7798 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7800 * var-tracking.c (shared_hash_def): Rename to shared_hash.
7801 (shared_hash): Remove typedef.
7802 (struct dataflow_set): Adjust.
7803 (shared_hash_unshare): Likewise.
7804 (dataflow_set_merge): Likewise.
7805 (vt_initialize): Likewise.
7806 (vt_finalize): Likewise.
7808 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7810 * var-tracking.c (struct location_chain): Rename from
7812 (struct variable_part): Adjust.
7813 (variable_htab_free): Likewise.
7814 (unshare_variable): Likewise.
7815 (get_init_value): Likewise.
7816 (get_addr_from_local_cache): Likewise.
7817 (drop_overlapping_mem_locs): Likewise.
7818 (val_reset): Likewise.
7819 (struct variable_union_info): Likewise.
7820 (variable_union): Likewise.
7821 (find_loc_in_1pdv): Likewise.
7822 (insert_into_intersection): Likewise.
7823 (intersect_loc_chains): Likewise.
7824 (canonicalize_loc_order_check): Likewise.
7825 (canonicalize_values_mark): Likewise.
7826 (canonicalize_values_star): Likewise.
7827 (canonicalize_vars_star): Likewise.
7828 (variable_merge_over_cur): Likewise.
7829 (remove_duplicate_values): Likewise.
7830 (variable_post_merge_new_vals): Likewise.
7831 (variable_post_merge_perm_vals): Likewise.
7832 (find_mem_expr_in_1pdv): Likewise.
7833 (dataflow_set_preserve_mem_locs): Likewise.
7834 (dataflow_set_remove_mem_locs): Likewise.
7835 (variable_part_different_p): Likewise.
7836 (onepart_variable_different_p): Likewise.
7837 (find_src_set_src): Likewise.
7838 (dump_var): Likewise.
7839 (set_slot_part): Likewise.
7840 (clobber_slot_part): Likewise.
7841 (delete_slot_part): Likewise.
7842 (vt_expand_var_loc_chain): Likewise.
7843 (emit_note_insn_var_location): Likewise.
7844 (vt_finalize): Likewise.
7846 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7848 * dse.c (store_info_t): Remove typedef.
7849 (group_info_t): Likewise.
7850 (const_group_info_t): Likewise.
7851 (deferred_change_t): Likewise.
7852 (get_group_info): Adjust.
7853 (free_store_info): Likewise.
7854 (canon_address): Likewise.
7855 (clear_rhs_from_active_local_stores): Likewise.
7856 (record_store): Likewise.
7857 (replace_read): Likewise.
7858 (check_mem_read_rtx): Likewise.
7859 (scan_insn): Likewise.
7860 (remove_useless_values): Likewise.
7861 (dse_step1): Likewise.
7862 (dse_step2_init): Likewise.
7863 (dse_step2_nospill): Likewise.
7864 (scan_stores_nospill): Likewise.
7865 (scan_reads_nospill): Likewise.
7866 (dse_step3_exit_block_scan): Likewise.
7867 (dse_step3): Likewise.
7868 (dse_step5_nospill): Likewise.
7869 (dse_step6): Likewise.
7871 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7873 * alias.c (alias_set_entry_d): Rename to alias_set_entry.
7874 (alias_set_entry): Remove typedef.
7875 (alias_set_subset_of): Adjust.
7876 (alias_sets_conflict_p): Likewise.
7877 (init_alias_set_entry): Likewise.
7878 (get_alias_set): Likewise.
7879 (new_alias_set): Likewise.
7880 (record_alias_subset): Likewise.
7882 2015-09-13 Gerald Pfeifer <gerald@pfeifer.com>
7884 * doc/install.texi (Downloading the source): Mark up
7885 contrib/download_prerequisites properly and drop leading "./".
7887 2015-09-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7889 * config/arc/arc.h: Remove define of STRUCT_VALUE.
7890 * config/lm32/lm32.h: Likewise.
7891 * config/mep/mep.h: Likewise.
7892 * config/visium/visium.h: Likewise.
7893 * system.h: Poison STRUCT_VALUE macro.
7895 2015-09-12 John David Anglin <danglin@gcc.gnu.org>
7897 * config/pa/pa.c (pa_output_move_double): Enhance to handle HIGH
7898 CONSTANT_P operands.
7900 2015-09-11 David S. Miller <davem@davemloft.net>
7902 * config/sparc/constraints.md: Make "U" constraint a real register
7904 * config/sparc/sparc.c (TARGET_LRA_P): Define.
7905 (D_MODES, DF_MODES): Add missing cast.
7906 (TF_MODES, TF_MODES_NO_S): Include T_MODE.
7907 (OF_MODES, OF_MODES_NO_S): Include O_MODE.
7908 (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
7910 * config/sparc/sparc.h (PROMOTE_MODE): Define.
7911 * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
7912 provide these insn when flag_pic.
7914 2015-09-11 Jeff Law <law@redhat.com>
7916 PR tree-optimization/47679
7917 * tree-ssa-dom.c (struct cond_equivalence): Update comment.
7918 * tree-ssa-scopedtables.h (class const_and_copies): Prefix data
7919 member with m_. Update inline member functions as necessary. Add
7921 * tree-ssa-scopedtables.c: Update const_and_copies's member
7922 functions to use m_ prefix to access the stack.
7924 2015-09-11 Aditya Kumar <aditya.k7@samsung.com>
7926 * graphite-optimize-isl.c (disable_tiling): Remove.
7927 (get_schedule_for_band): Do not use disable_tiling.
7928 (get_prevector_map): Delete function.
7929 (enable_polly_vector): Remove.
7930 (get_schedule_for_band_list): Remove dead code.
7932 2015-09-11 Aditya Kumar <aditya.k7@samsung.com>
7934 * graphite-optimize-isl.c (get_tile_map): Refactor.
7935 (get_schedule_for_band): Same.
7936 (getScheduleForBand): Same.
7937 (get_prevector_map): Same.
7938 (get_schedule_for_band_list): Same.
7939 (get_schedule_map): Same.
7940 (get_single_map): Same.
7941 (apply_schedule_map_to_scop): Same.
7942 (optimize_isl): Same.
7944 2015-09-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7947 * config/aarch64/aarch.md (mov<mode>:GPF_F16): Use GPF_TF_F16.
7949 * config/aarch64/iterators.md (GPF_TF_F16): New.
7952 2015-09-10 Nathan Sidwell <nathan@acm.org>
7954 * config/nvptx/nvptx.c (nvptx_expand_call): Add spacing.
7955 (nvptx_reorg): Adjust comments.
7957 2015-09-15 John David Anglin <danglin@gcc.gnu.org>
7960 * configure.ac: Check if setenv and unsetenv are declared.
7961 * configure: Rebuild.
7962 * config.in: Rebuild.
7963 * system.h: Declare setenv and unsetenv if not declared.
7965 2015-09-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7967 * config/rs6000/rs6000.c (swap_web_entry): Update preceding
7968 commentary to simplify permute mask adjustment equation.
7969 (special_handling_values): Add SH_VPERM.
7970 (const_load_sequence_p): New function.
7971 (insn_is_swappable_p): Add logic to recognize an UNSPEC_VPERM with
7972 the mask loaded from the constant pool.
7973 (adjust_vperm): New function.
7974 (handle_special_swappables): Call adjust_vperm.
7975 (dump_swap_insn_table): Handle SH_VPERM.
7977 2015-09-10 H.J. Lu <hongjiu.lu@intel.com>
7979 * shrink-wrap.c (requires_stack_frame_p): Remove static.
7980 * shrink-wrap.h (requires_stack_frame_p): Put back.
7982 2015-09-10 Richard Sandiford <richard.sandiford@arm.com>
7984 * reload1.c (elimination_costs_in_insn): Locally turn
7985 -Wmaybe-uninitialized into a warning.
7987 2015-09-10 Segher Boessenkool <segher@kernel.crashing.org>
7989 * shrink-wrap.c (requires_stack_frame_p): Make static.
7990 (prepare_shrink_wrap): Likewise.
7991 (dup_block_and_redirect): Likewise.
7992 * shrink-wrap.h: Remove declarations of those functions.
7994 2015-09-10 Mark Wielaard <mjw@redhat.com>
7996 * doc/invoke.texi (Wnonnull): Also warns when comparing against NULL.
7998 2015-09-10 Oleg Endo <olegendo@gcc.gnu.org>
8001 * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add
8002 missing simplify_gen_subreg.
8004 2015-09-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8006 * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if
8007 the vector element is bigger than 64 bit.
8009 2015-09-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8011 * config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>")
8012 ("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS.
8014 2015-09-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8016 * config/s390/s390.c: Add V1TImode to constant pool modes.
8018 2015-09-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8021 * config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
8022 predicate. Set predicable_short_it attr to "no".
8024 2015-09-10 Jiong Wang <jiong.wang@arm.com>
8026 PR rtl-optimization/67421
8027 * expr.c (expand_expr_real_2): Cost instrcution sequences when doing
8028 left wide shift tranformation.
8030 2015-09-10 Claudiu Zissulescu <claziss@synopsys.com>
8032 * common/config/arc/arc-common.c: Remove references to A5.
8033 * config/arc/arc-opts.h: Likewise.
8034 * config/arc/arc.c, config/arc/arc.h, config/arc/arc.md: Likewise.
8035 * config/arc/arc.opt, config/arc/constraints.md: Likewise.
8036 * config/arc/t-arc-newlib: Likewise.
8038 2015-09-10 Claudiu Zissulescu <claziss@synopsys.com>
8040 * config/arc/arc.md (length): Fix attribute length for conditional
8041 executed instructions with long immediate.
8043 2015-09-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8045 * config/aarch64/aarch64.md (*and<mode>3nr_compare0): Use logics_imm
8046 type for second alternative.
8048 2015-09-10 Markus Trippelsdorf <markus@trippelsdorf.de>
8050 * doc/invoke.texi (Downloading GCC): Mention
8051 contrib/download_prerequisites script.
8053 2015-09-10 Jakub Jelinek <jakub@redhat.com>
8056 * gimplify.c (gimplify_omp_for): If inner stmt is not found
8057 for combined loop, assert seen_error () and return GS_ERROR.
8060 * gimplify.c (gimplify_omp_for): Don't call omp_add_variable
8061 if decl is already in outer->variables.
8064 * gimplify.c (gimplify_scan_omp_clauses): Instead of
8065 asserting that decl is not specified in octx->variables,
8066 break out of the loop if it is.
8069 * gimplify.c (gimplify_omp_for): For loop SIMD construct, if
8070 iterator is not explicitly determined, but is defined inside
8071 of the combined workshare region, handle it like if it has
8072 DECL_EXPR in OMP_FOR_PRE_BODY.
8074 2015-09-09 Nathan Sidwell <nathan@acm.org>
8076 * config/nvptx/nvptx.md (call_operation): Move bound out of loop.
8077 (*cmp<mode>): Add assembler spacing.
8078 (setcc_int<mode>, set_cc_float<mode>): Likewise.
8079 * config/nvptx/nvptx.c (nvptx_option_override): Override debug
8081 (write_func_decl_from_insn): Refactor argument loops & comma emission.
8082 (nvptx_expand_call): Likewise.
8083 (nvptx_output_call_insn): Likewise.
8084 (nvptx_reorg_subreg): Add spacing.
8086 2015-09-09 Marek Polacek <polacek@redhat.com>
8089 * tree-ssa-uninit.c (pred_equal_p): Only call invert_tree_comparison
8092 2015-09-09 Paolo Carlini <paolo.carlini@oracle.com>
8095 * doc/invoke.texi ([Wsubobject-linkage]): Document.
8097 2015-09-09 Tom de Vries <tom@codesourcery.com>
8099 * params-list.h: Add missing copyright notice.
8101 2015-09-09 Nathan Sidwell <nathan@acm.org>
8103 * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>): Use
8104 sel_truesi, not andsi.
8106 2015-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8108 * config/arm/arm.md (*subsi3_compare0): Rename to...
8109 (subsi3_compare0): ... This.
8110 (modsi3): New define_expand.
8111 * config/arm/arm.c (arm_new_rtx_costs, MOD case): Handle case
8112 when operand is power of 2.
8114 2015-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8116 * config/aarch64/aarch64.md (mod<mode>3): New define_expand.
8117 (*neg<mode>2_compare0): Rename to...
8118 (neg<mode>2_compare0): ... This.
8119 * config/aarch64/aarch64.c (aarch64_rtx_costs, MOD case):
8120 Move check for speed inside the if-then-elses. Reflect
8121 CSNEG sequence in MOD by power of 2 case.
8123 2015-09-09 Alan Modra <amodra@gmail.com>
8126 * config/rs6000/rs6000.c (rs6000_secondary_reload_gpr): Find
8127 reload replacement for PRE_MODIFY address reg.
8129 2015-09-09 Sebastian Pop <s.pop@samsung.com>
8131 PR tree-optimization/53852
8132 * config.in: Regenerate.
8133 * configure: Regenerate.
8134 * configure.ac (HAVE_ISL_CTX_MAX_OPERATIONS): Detect.
8135 * graphite-optimize-isl.c (optimize_isl): Stop computation when
8136 PARAM_MAX_ISL_OPERATIONS is reached.
8137 * params.def (PARAM_MAX_ISL_OPERATIONS): Add.
8138 * graphite-dependences.c (extend_schedule): Remove gcc_asserts on
8139 result equal to isl_stat_ok as the status now can be isl_error_quota.
8140 (subtract_commutative_associative_deps): Same.
8141 (compute_deps): Same.
8143 2015-09-08 Aditya Kumar <hiraditya@msn.com>
8144 Sebastian Pop <s.pop@samsung.com>
8146 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
8147 Return the parameter if it was saved in corresponding
8148 parameter_rename_map of the region.
8149 (copy_def): Copy def from sese region to the newly created region.
8150 (copy_internal_parameters): Copy all the internal parameters defined
8151 within a region to the newly created region.
8152 (graphite_regenerate_ast_isl): Copy parameters to the new region before
8153 translating isl to gimple.
8154 * graphite-scop-detection.c (graphite_can_represent_loop): Bail out if
8155 the loop-nest does not have any data-references.
8156 (build_graphite_scops): Create a scop only when there is at least one
8158 (contains_only_close_phi_nodes): Deleted.
8159 (print_graphite_scop_statistics): Deleted
8160 (print_graphite_statistics): Deleted
8161 (limit_scops): Deleted.
8162 (build_scops): Removed call to limit_scops.
8163 * sese.c (new_sese): Construct.
8164 (free_sese): Destruct.
8165 (sese_add_exit_phis_edge): update_stmt after exit phi edge has been
8167 (set_rename): Pass sese region so that parameters inside the region can
8168 be added to its parameter_rename_map.
8169 (rename_uses): Pass sese region.
8170 (graphite_copy_stmts_from_block): Do not copy parameters that have been
8171 generated in the header of the scop. For each SSA_NAME in the
8172 parameter_rename_map rename its usage.
8173 (invariant_in_sese_p_rec): Return false if tree t is defined outside
8175 (scalar_evolution_in_region): If the tree t is invariant just return t.
8176 * sese.h: Added a parameter renamne map (parameter_rename_map_t) to
8177 struct sese to keep track of all the parameters which need renaming.
8178 * tree-data-ref.c (loop_nest_has_data_refs): Check if a loop nest has
8180 * tree-data-ref.h: Declaration of loop_nest_has_data_refs.
8182 2015-09-08 Tom de Vries <tom@codesourcery.com>
8184 * Makefile.in (generated_files): Add params.list.
8185 (params.list, s-params.list): Add rule.
8186 * params.h (enum compiler_param): Include params-list.h. Move define
8187 DEFPARAM, include params.def and undef DEFPARAM ...
8188 * params-list.h: ... here. New file.
8190 2015-09-08 David Malcolm <dmalcolm@redhat.com>
8192 * pretty-print.h (printer_fn): Fix typo in comment.
8194 2015-09-07 Jeff Law <law@redhat.com>
8196 * tree-ssa-scopedtables.h (class const_and_copies): Fix comment typo.
8198 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8200 * doc/sourcebuild.texi (arm_neon_fp16): Correct cross-reference.
8201 (arm_neon_fp16_ok): Document adding of -mfp16-format=ieee flag.
8202 (arm_neon_fp16_hw): New.
8204 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8206 * fold-const.c (native_interpret_real): Fix HFmode for bigendian where
8207 UNITS_PER_WORD >= 4.
8209 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8211 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_unpacks_lo_<mode>,
8212 aarch64_simd_vec_unpacks_hi_<mode>): New insn.
8213 (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf): Delete insn.
8214 (vec_unpacks_lo_<mode>, vec_unpacks_hi_<mode>): New expand.
8215 (aarch64_float_extend_lo_v2df): Rename to...
8216 (aarch64_float_extend_lo_<Vwide>): this, using VDF and so adding V4SF.
8218 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi): Add v8hf.
8219 (float_extend_lo): Add v4sf.
8221 * config/aarch64/arm_neon.h (vcvt_f32_f16, vcvt_high_f32_f16): New.
8222 * config/aarch64/iterators.md (VQ_HSF): New iterator.
8223 (VWIDE, Vwtype, Vhalftype): Add V8HF, V4SF.
8224 (Vwide): New mode_attr.
8226 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8228 * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>,
8229 aarch64_dup_lane<mode>, aarch64_dup_lane_<vswap_width_name><mode>,
8230 aarch64_simd_vec_set<mode>, vec_set<mode>, vec_perm_const<mode>,
8231 vec_init<mode>, *aarch64_simd_ld1r<mode>, vec_extract<mode>): Add
8232 V4HF and V8HF variants to iterator.
8234 * config/aarch64/aarch64.c (aarch64_evpc_dup): Add V4HF and V8HF cases.
8236 * config/aarch64/iterators.md (VDQF_F16): New.
8237 (VSWAP_WIDTH, vswap_width_name): Add V4HF and V8HF cases.
8239 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8241 * config/aarch64/arm_neon.h (vreinterpret_p8_f16, vreinterpret_p16_f16,
8242 vreinterpret_f16_f64, vreinterpret_f16_s8, vreinterpret_f16_s16,
8243 vreinterpret_f16_s32, vreinterpret_f16_s64, vreinterpret_f16_f32,
8244 vreinterpret_f16_u8, vreinterpret_f16_u16, vreinterpret_f16_u32,
8245 vreinterpret_f16_u64, vreinterpret_f16_p8, vreinterpret_f16_p16,
8246 vreinterpretq_f16_f64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
8247 vreinterpretq_f16_s32, vreinterpretq_f16_s64, vreinterpretq_f16_f32,
8248 vreinterpretq_f16_u8, vreinterpretq_f16_u16, vreinterpretq_f16_u32,
8249 vreinterpretq_f16_u64, vreinterpretq_f16_p8, vreinterpretq_f16_p16,
8250 vreinterpret_f32_f16, vreinterpret_f64_f16, vreinterpret_s64_f16,
8251 vreinterpret_u64_f16, vreinterpretq_u64_f16, vreinterpret_s8_f16,
8252 vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
8253 vreinterpret_u16_f16, vreinterpret_u32_f16, vreinterpretq_p8_f16,
8254 vreinterpretq_p16_f16, vreinterpretq_f32_f16, vreinterpretq_f64_f16,
8255 vreinterpretq_s64_f16, vreinterpretq_s8_f16, vreinterpretq_s16_f16,
8256 vreinterpretq_s32_f16, vreinterpretq_u8_f16, vreinterpretq_u16_f16,
8257 vreinterpretq_u32_f16, vget_low_f16, vget_high_f16, vld1_dup_f16,
8258 vld1q_dup_f16): New.
8260 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8262 * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_v2sf):
8263 Reparameterize to...
8264 (aarch64_float_truncate_lo_<mode>): ...this, for both V2SF and V4HF.
8265 (aarch64_float_truncate_hi_v4sf): Reparameterize to...
8266 (aarch64_float_truncate_hi_<Vdbl>): ...this, for both V4SF and V8HF.
8268 * config/aarch64/aarch64-simd-builtins.def (float_truncate_hi_): Add
8270 (float_truncate_lo_): Use BUILTIN_VDF iterator.
8272 * config/aarch64/arm_neon.h (vcvt_f16_f32, vcvt_high_f16_f32): New.
8274 * config/aarch64/iterators.md (VDF, Vdtype): New.
8275 (VWIDE, Vmwtype): Add cases for V4HF and V2SF.
8277 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8279 * config/aarch64/aarch64.c (aarch64_split_simd_combine): Add V4HFmode.
8280 * config/aarch64/aarch64-builtins.c (VAR13, VAR14): New.
8281 (aarch64_scalar_builtin_types, aarch64_init_simd_builtin_scalar_types):
8282 Add __builtin_aarch64_simd_hf.
8283 * config/aarch64/arm_neon.h (float16x4x2_t, float16x8x2_t,
8284 float16x4x3_t, float16x8x3_t, float16x4x4_t, float16x8x4_t,
8285 vcombine_f16, vst2_lane_f16, vst2q_lane_f16, vst3_lane_f16,
8286 vst3q_lane_f16, vst4_lane_f16, vst4q_lane_f16, vld2_f16, vld2q_f16,
8287 vld3_f16, vld3q_f16, vld4_f16, vld4q_f16, vld2_dup_f16, vld2q_dup_f16,
8288 vld3_dup_f16, vld3q_dup_f16, vld4_dup_f16, vld4q_dup_f16,
8289 vld2_lane_f16, vld2q_lane_f16, vld3_lane_f16, vld3q_lane_f16,
8290 vld4_lane_f16, vld4q_lane_f16, vst2_f16, vst2q_f16, vst3_f16,
8291 vst3q_f16, vst4_f16, vst4q_f16, vcreate_f16): New.
8293 * config/aarch64/iterators.md (VALLDIF, Vtype, Vetype, Vbtype,
8294 V_cmp_result, v_cmp_result): Add cases for V4HF and V8HF.
8295 (VDC, Vdbl): Add V4HF.
8297 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8299 * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p): Support
8300 V4HFmode and V8HFmode.
8301 (aarch64_split_simd_move): Add case for V8HFmode.
8302 * config/aarch64/aarch64-builtins.c (v4hf_UP, v8hf_UP): Define.
8303 (aarch64_simd_builtin_std_type): Handle HFmode.
8304 (aarch64_init_simd_builtin_types): Include Float16x4_t and Float16x8_t.
8306 * config/aarch64/aarch64-simd.md (mov<mode>, aarch64_get_lane<mode>,
8307 aarch64_ld1<VALL:mode>, aarch64_st1<VALL:mode): Use VALL_F16 iterator.
8308 (aarch64_be_ld1<mode>, aarch64_be_st1<mode>): Use VALLDI_F16 iterator.
8310 * config/aarch64/aarch64-simd-builtin-types.def: Add Float16x4_t,
8313 * config/aarch64/aarch64-simd-builtins.def (ld1, st1): Use VALL_F16.
8314 * config/aarch64/arm_neon.h (float16x4_t, float16x8_t, float16_t):
8316 (vget_lane_f16, vgetq_lane_f16, vset_lane_f16, vsetq_lane_f16,
8317 vld1_f16, vld1q_f16, vst1_f16, vst1q_f16, vst1_lane_f16,
8318 vst1q_lane_f16): New.
8319 * config/aarch64/iterators.md (VD, VQ, VQ_NO2E): Add vectors of HFmode.
8320 (VALLDI_F16, VALL_F16): New.
8321 (Vmtype, VEL, VCONQ, VHALF, V_TWO_ELEM, V_THREE_ELEM, V_FOUR_ELEM, q):
8322 Add cases for V4HF and V8HF.
8323 (VDBL, VRL2, VRL3, VRL4): Add V4HF case.
8325 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8327 * config/arm/arm-builtins.c (VAR11, VAR12): New.
8328 * config/arm/arm_neon_builtins.def (vcombine, vld2_dup, vld3_dup,
8329 vld4_dup): Add v4hf variant.
8330 (vget_high, vget_low): Add v8hf variant.
8331 (vld1, vst1, vst1_lane, vld2, vld2_lane, vst2, vst2_lane, vld3,
8332 vld3_lane, vst3, vst3_lane, vld4, vld4_lane, vst4, vst4_lane): Add
8333 v4hf and v8hf variants.
8335 * config/arm/iterators.md (VD_LANE, VD_RE, VQ2, VQ_HS): New.
8337 (V_DOUBLE): Add case for V4HF.
8339 (V_HALF): Add case for V8HF.
8340 (VDQX): Add V4HF, V8HF.
8341 (V_elem, V_two_elem, V_three_elem, V_four_elem, V_cmp_result,
8342 V_uf_sclr, V_sz_elem, V_mode_nunits, q): Add cases for V4HF & V8HF.
8344 * config/arm/neon.md (vec_set<mode>internal, vec_extract<mode>,
8345 neon_vget_lane<mode>_sext_internal, neon_vget_lane<mode>_zext_internal,
8346 vec_load_lanesoi<mode>, neon_vld2<mode>, vec_store_lanesoi<mode>,
8347 neon_vst2<mode>, vec_load_lanesci<mode>, neon_vld3<mode>,
8348 neon_vld3qa<mode>, neon_vld3qb<mode>, vec_store_lanesci<mode>,
8349 neon_vst3<mode>, neon_vst3qa<mode>, neon_vst3qb<mode>,
8350 vec_load_lanesxi<mode>, neon_vld4<mode>, neon_vld4qa<mode>,
8351 neon_vld4qb<mode>, vec_store_lanesxi<mode>, neon_vst4<mode>,
8352 neon_vst4qa<mode>, neon_vst4qb<mode>): Change VQ iterator to VQ2.
8354 (neon_vcreate, neon_vreinterpretv8qi<mode>,
8355 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
8356 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>):
8357 Change VDX to VD_RE.
8359 (neon_vld2_lane<mode>, neon_vst2_lane<mode>, neon_vld3_lane<mode>,
8360 neon_vst3_lane<mode>, neon_vld4_lane<mode>, neon_vst4_lane<mode>):
8361 Change VD iterator to VD_LANE, and VMQ iterator to VQ_HS.
8363 * config/arm/arm_neon.h (float16x4x2_t, float16x8x2_t, float16x4x3_t,
8364 float16x8x3_t, float16x4x4_t, float16x8x4_t, vcombine_f16,
8365 vget_high_f16, vget_low_f16, vld1_f16, vld1q_f16, vst1_f16, vst1q_f16,
8366 vst1_lane_f16, vst1q_lane_f16, vld2_f16, vld2q_f16, vld2_lane_f16,
8367 vld2q_lane_f16, vld2_dup_f16, vst2_f16, vst2q_f16, vst2_lane_f16,
8368 vst2q_lane_f16, vld3_f16, vld3q_f16, vld3_lane_f16, vld3q_lane_f16,
8369 vld3_dup_f16, vst3_f16, vst3q_f16, vst3_lane_f16, vst3q_lane_f16,
8370 vld4_f16, vld4q_f16, vld4_lane_f16, vld4q_lane_f16, vld4_dup_f16,
8371 vst4_f16, vst4q_f16, vst4_lane_f16, vst4q_lane_f16): New.
8373 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8375 * config/arm/arm_neon.h (vgetq_lane_f16, vsetq_lane_f16, vld1q_lane_f16,
8376 vld1q_dup_f16, vreinterpretq_p8_f16, vreinterpretq_p16_f16,
8377 vreinterpretq_f16_p8, vreinterpretq_f16_p16, vreinterpretq_f16_f32,
8378 vreinterpretq_f16_p64, vreinterpretq_f16_p128, vreinterpretq_f16_s64,
8379 vreinterpretq_f16_u64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
8380 vreinterpretq_f16_s32, vreinterpretq_f16_u8, vreinterpretq_f16_u16,
8381 vreinterpretq_f16_u32, vreinterpretq_f32_f16, vreinterpretq_p64_f16,
8382 vreinterpretq_p128_f16, vreinterpretq_s64_f16, vreinterpretq_u64_f16,
8383 vreinterpretq_s8_f16, vreinterpretq_s16_f16, vreinterpretq_s32_f16,
8384 vreinterpretq_u8_f16, vreinterpretq_u16_f16, vreinterpretq_u32_f16):
8387 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8389 * config/arm/arm.h (VALID_NEON_QREG_MODE): Add V8HFmode.
8391 * config/arm/arm.c (arm_vector_mode_supported_p): Support V8HFmode.
8393 * config/arm/arm-builtins.c (v8hf_UP): New.
8394 (arm_init_simd_builtin_types): Initialise Float16x8_t.
8396 * config/arm/arm-simd-builtin-types.def (Float16x8_t): New.
8398 * config/arm/arm_neon.h (float16x8_t): New typedef.
8400 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8402 * config/arm/arm_neon.h (float16_t, vget_lane_f16, vset_lane_f16,
8403 vcreate_f16, vld1_lane_f16, vld1_dup_f16, vreinterpret_p8_f16,
8404 vreinterpret_p16_f16, vreinterpret_f16_p8, vreinterpret_f16_p16,
8405 vreinterpret_f16_f32, vreinterpret_f16_p64, vreinterpret_f16_s64,
8406 vreinterpret_f16_u64, vreinterpret_f16_s8, vreinterpret_f16_s16,
8407 vreinterpret_f16_s32, vreinterpret_f16_u8, vreinterpret_f16_u16,
8408 vreinterpret_f16_u32, vreinterpret_f32_f16, vreinterpret_p64_f16,
8409 vreinterpret_s64_f16, vreinterpret_u64_f16, vreinterpret_s8_f16,
8410 vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
8411 vreinterpret_u16_f16, vreinterpret_u32_f16): New.
8413 2015-09-07 Ilya Verbin <ilya.verbin@intel.com>
8415 * config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all
8416 non-alphanumeric characters in the symbol name.
8418 2015-09-07 Marek Polacek <polacek@redhat.com>
8421 * gimplify.c (gimplify_asm_expr): Don't allow MODIFY_EXPR as
8424 2015-09-07 Marek Polacek <polacek@redhat.com>
8426 * system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning.
8428 2015-09-04 Paolo Bonzini <bonzini@gnu.org>
8430 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Do
8433 2015-09-04 Jakub Jelinek <jakub@redhat.com>
8436 * tree-ssa-live.c: Include cfgloop.h.
8437 (remove_unused_locals): Clear loop->simduid if simduid is about
8438 to be removed from cfun->local_decls.
8440 2015-09-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
8443 * config/avr/avr.c (avr_eval_addr_attrib): Look for io_low
8446 2015-09-04 Tom de Vries <tom@codesourcery.com>
8448 * doc/invoke.texi (@item -ftrapv, @item -fwrapv): Document interaction.
8450 2015-09-04 Jeff Law <law@redhat.com>
8452 * tree-ssa-scopedtables.c (const_and_copies::const_and_copies): Remove
8453 unnecessary constructor. It's now trivial and implemented inside...
8454 * tree-ssa-scopedtables.h (const_and_copies): Implement trivial
8455 constructor. Add comments to various methods. Remove unused
8457 * tree-ssa-dom.c (pass_dominator::execute): Corresponding changes.
8458 * tree-vrp.c (identify_jump_threads): Likewise.
8459 * tree-ssa-threadedge.c (thread_through_normal_block): Fix minor
8461 (thread_across_edge): Similarly.
8462 (record_temporary_equivalences_from_stmts_at_dest): Remove unused
8463 arguments in constructor call.
8465 2015-09-04 Jonas Hahnfeld <Hahnfeld@itc.rwth-aachen.de>
8467 * config/i386/intelmic-mkoffload.c (prepare_target_image): Fix if the
8468 temp path contains a '-'.
8470 2015-09-04 Andrey Turetskiy <andrey.turetskiy@intel.com>
8471 Petr Murzin <petr.murzin@intel.com>
8472 Kirill Yukhin <kirill.yukhin@intel.com>
8474 * config/i386/i386-builtin-types.def
8475 (VOID_PFLOAT_HI_V8DI_V16SF_INT): New.
8476 (VOID_PDOUBLE_QI_V16SI_V8DF_INT): Ditto.
8477 (VOID_PINT_HI_V8DI_V16SI_INT): Ditto.
8478 (VOID_PLONGLONG_QI_V16SI_V8DI_INT): Ditto.
8479 * config/i386/i386.c
8480 (ix86_builtins): Add IX86_BUILTIN_SCATTERALTSIV8DF,
8481 IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
8482 IX86_BUILTIN_SCATTERALTDIV16SI.
8483 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_scatteraltsiv8df,
8484 __builtin_ia32_scatteraltdiv8sf, __builtin_ia32_scatteraltsiv8di,
8485 __builtin_ia32_scatteraltdiv8si.
8486 (ix86_expand_builtin): Handle IX86_BUILTIN_SCATTERALTSIV8DF,
8487 IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
8488 IX86_BUILTIN_SCATTERALTDIV16SI.
8489 (ix86_vectorize_builtin_scatter): New.
8490 (TARGET_VECTORIZE_BUILTIN_SCATTER): Define as
8491 ix86_vectorize_builtin_scatter.
8493 2015-09-04 Andrey Turetskiy <andrey.turetskiy@intel.com>
8494 Petr Murzin <petr.murzin@intel.com>
8495 Kirill Yukhin <kirill.yukhin@intel.com>
8497 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_SCATTER): New.
8498 * doc/tm.texi: Regenerate.
8499 * target.def: Add scatter builtin.
8500 * tree-vectorizer.h: Rename gather_p to gather_scatter_p and use it
8501 for loads/stores in case of gather/scatter accordingly.
8502 (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
8503 STMT_VINFO_GATHER_P(S).
8504 (vect_check_gather): Rename to ...
8505 (vect_check_gather_scatter): this.
8506 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Use
8507 STMT_VINFO_GATHER_SCATTER_P instead of STMT_VINFO_SCATTER_P.
8508 (vect_check_gather_scatter): Use it instead of vect_check_gather.
8509 (vect_analyze_data_refs): Add gatherscatter enum and maybe_scatter
8510 variable and new checkings for it accordingly.
8512 (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
8513 STMT_VINFO_GATHER_P(S).
8514 (vect_check_gather_scatter): Use it instead of vect_check_gather.
8515 (vectorizable_store): Add checkings for STMT_VINFO_GATHER_SCATTER_P.
8517 2015-09-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
8519 * config/rs6000/altivec.md (altivec_vperm_v8hiv16qi): New
8521 (mulv16qi3): New define_expand.
8523 2015-09-03 Martin Sebor <msebor@redhat.com>
8526 * doc/extend.texi (Other Builtins): Document when the address
8527 of a built-in function can be taken.
8529 2015-09-03 Richard Biener <rguenther@suse.de>
8531 * dwarf2out.c (flush_limbo_die_list): Split out from ...
8532 (dwarf2out_early_finish): ... here.
8533 (dwarf2out_finish): Do not call dwarf2out_early_finish but
8534 flush_limbo_die_list. Assert we have no deferred asm names.
8536 2015-09-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8538 * optabs.c (expand_binop): Don't create a broadcast vector with a
8539 source element wider than the inner mode.
8541 2015-09-03 Richard Biener <rguenther@suse.de>
8543 * varasm.c (output_constant): Use fold_convert instead of
8546 2015-09-03 Tom de Vries <tom@codesourcery.com>
8548 PR tree-optimization/65637
8549 * omp-low.c (expand_omp_for_static_chunk): Handle case that
8550 fin_bb has 2 predecessors.
8552 2015-09-03 Tom de Vries <tom@codesourcery.com>
8554 PR tree-optimization/65637
8555 * omp-low.c (find_phi_with_arg_on_edge): New function.
8556 (expand_omp_for_static_chunk): Fix inner loop phi.
8558 2015-09-03 Tom de Vries <tom@codesourcery.com>
8560 PR tree-optimization/65637
8561 * omp-low.c (expand_omp_for_static_chunk): Fix gcc_assert for the case
8564 2015-09-03 Tom de Vries <tom@codesourcery.com>
8566 * omp-low.c (expand_omp_for_static_chunk): Handle simple latch bb.
8568 2015-09-03 Tom de Vries <tom@codesourcery.com>
8570 * doc/invoke.texi (parloops-chunk-size): Add item.
8571 * params.def (PARAM_PARLOOPS_CHUNK_SIZE): Add DEFPARAM.
8572 * tree-parloops.c: Include params.h.
8573 (create_parallel_loop): Set chunk-size of schedule of omp-for loop, if
8574 param parloops-chunk-size is used.
8576 2015-09-03 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
8579 * fold-const.c (fold_binary_loc) : Move
8580 Transform (x >> c) << c into x & (-1<<c) or
8581 transform (x << c) >> c into x & ((unsigned)-1 >> c) for unsigned
8582 types using simplify and match.
8583 * match.pd (lshift (rshift @0 INTEGER_CST@1) @1) : New simplifier.
8584 (rshift (lshift @0 INTEGER_CST@1) @1) : New Simplifier
8586 2015-09-03 Richard Biener <rguenther@suse.de>
8589 * tree-ssa-structalias.c (ctor_for_analysis): New function.
8590 (create_variable_info_for_1): Use ctor_for_analysis instead
8592 (create_variable_info_for): Likewise.
8594 2015-09-02 Charles Baylis <charles.baylis@linaro.org>
8597 * cgraphunit.c (cgraph_node::create_wrapper): Set can_throw_external
8598 in new callgraph edge.
8600 2015-09-02 Christophe Lyon <christophe.lyon@linaro.org>
8605 * config/aarch64/aarch64-simd.md
8606 (aarch64_ld<VSTRUCT:nregs><VQ:mode>): Call
8607 gen_aarch64_simd_ld<VSTRUCT:nregs><VQ:mode>.
8608 (aarch64_st<VSTRUCT:nregs><VQ:mode>): Call
8609 gen_aarch64_simd_st<VSTRUCT:nregs><VQ:mode>.
8611 2015-09-02 Alan Modra <amodra@gmail.com>
8613 * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Don't define.
8614 * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Likewise.
8615 (LINK_SPEC, SUBTARGET_EXTRA_SPECS): Delete link_target.
8617 2015-09-02 Alan Modra <amodra@gmail.com>
8620 * config/rs6000/predicates.md (current_file_function_operand): Don't
8621 return true for weak symbols.
8622 * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Likewise.
8624 2015-09-01 Matthew Fortune <matthew.fortune@imgtec.com>
8625 Andrew Bennett <andrew.bennett@imgtec.com>
8627 * config/mips/mips-opts.h (mips_cb_setting): New enum.
8628 * config/mips/mips-protos.h: Add definitions for
8629 mips_output_jump and mips_output_equal_conditional_branch
8630 * gcc/config/mips/mips.c (MIPS_JR): Change to support the
8632 (mips_emit_compare): Add support for the MIPS R6 conditional
8634 (mips_process_sync_loop): Likewise.
8635 (mips_output_order_conditional_branch): Likewise.
8636 (mips16_build_call_stub): Change MIPS_CALL to
8638 (mips_print_operand_punctuation): Update 's' case to only
8639 apply to micromips r2.
8640 (mips_adjust_insn_length): Add support for forbidden slot
8642 (mips_avoid_hazard): Likewise.
8643 (mips_reorg_process_insns): Likewise.
8644 (mips_output_jump): New function.
8645 (mips_output_equal_conditional_branch): Likewise.
8646 (mips_output_conditional_branch): Use jrc/bc if compact
8647 branch support is enabled. Ensure the forbidden slots
8648 between the two branch instructions is filled with a nop.
8649 (mips_option_override): Add support to process the compact
8650 branch option and set the correct defaults. Prevent
8651 non-explict relocs being using for MIPS R6.
8652 (mips_trampoline_init): Add compact branch support.
8653 (mips_mult_zero_zero_cost): Allow zero initialisation of
8654 accumulators with TARGET_DSP.
8655 * gcc/config/mips/mips.h (TARGET_CB_NEVER): New define.
8656 (TARGET_CB_MAYBE): New define.
8657 (TARGET_CB_ALWAYS): New define.
8658 (ISA_HAS_DELAY_SLOTS): New define.
8659 (ISA_HAS_COMPACT_BRANCHES): New define.
8660 (ISA_HAS_JRC): New define.
8661 (MIPS_BRANCH_C): New define.
8662 (MIPS_CALL): Removed.
8663 (MICROMIPS_J): Removed.
8664 * config/mips/mips.md (compact_form): New attr.
8665 (hazard): Add support for forbidden slots.
8666 (define_delay): Add support for compact branches.
8667 (*branch_order<mode>): Likewise.
8668 (*branch_order<mode>_inverted): Likewise.
8669 (*branch_equality<mode>): Likewise.
8670 (*branch_equality<mode>_inverted): Likewise.
8671 (*jump_absolute): Likewise.
8672 (*jump_pic): Likewise.
8673 (indirect_jump): Use mips_output_jump to produce assembly output.
8674 (tablejump_<mode>"): Likewise.
8675 (*<optab>"): Likewise.
8676 (<optab>_internal): Likewise.
8677 (sibcall_internal): Likewise.
8678 (sibcall_value_internal): Likewise.
8679 (sibcall_value_multiple_internal): Likewise.
8680 (call_internal): Likewise.
8681 (call_split): Likewise.
8682 (call_internal_direct): Likewise.
8683 (call_direct_split): Likewise.
8684 (call_value_internal): Likewise.
8685 (call_value_split): Likewise.
8686 (call_value_internal_direct): Likewise.
8687 (call_value_direct_split): Likewise.
8688 (call_value_multiple_internal): Likewise.
8689 (call_value_multiple_split): Likewise.
8690 (mips_get_fcsr_mips16_<mode>): Likewise.
8691 (mips_set_fcsr_mips16_<mode>): Likewise.
8692 (tls_get_tp_mips16_<mode>): Likewise.
8693 * config/mips/mips.opt: Add -mcompact-branches option.
8694 * config/mips/predicates.md (order_operator): Ensure the
8695 conditional compact branches are only used if the ISA them.
8696 * doc/invoke.texi: Document -mcompact-branches option.
8698 2015-09-01 Vladimir Makarov <vmakarov@redhat.com>
8701 * lra-lives.c (process_bb_lives): Process move pseudos with the
8702 same value for copies and preferences
8703 * lra-constraints.c (match_reload): Create match reload pseudo
8704 with the same value from single dying input pseudo.
8706 2015-09-01 Ilya Enkovich <enkovich.gnu@gmail.com>
8709 * tree-chkp.c (chkp_find_bound_slots_1): Add NULL check.
8711 2015-09-01 Aldy Hernandez <aldyh@redhat.com>
8713 * trans-mem.c: Add contributed-by.
8714 * trans-mem.h: Same.
8716 2015-09-01 Richard Biener <rguenther@suse.de>
8718 * expr.c (expand_expr_real_1): For expanding TERed defs
8719 set the current location to that of the def if not UNKNOWN.
8721 2015-09-01 David Sherwood <david.sherwood@arm.com>
8723 * genmodes.c: Add CONST_MODE_UNIT_SIZE modifier.
8725 2015-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8727 * ifcvt.c (struct noce_if_info): Add then_simple, else_simple,
8728 then_cost, else_cost fields. Change branch_cost field to unsigned int.
8729 (end_ifcvt_sequence): Call set_used_flags on each insn in the sequence.
8731 (noce_simple_bbs): New function.
8732 (noce_try_move): Bail if basic blocks are not simple.
8733 (noce_try_store_flag): Likewise.
8734 (noce_try_store_flag_constants): Likewise.
8735 (noce_try_addcc): Likewise.
8736 (noce_try_store_flag_mask): Likewise.
8737 (noce_try_cmove): Likewise.
8738 (noce_try_minmax): Likewise.
8739 (noce_try_abs): Likewise.
8740 (noce_try_sign_mask): Likewise.
8741 (noce_try_bitop): Likewise.
8742 (bbs_ok_for_cmove_arith): New function.
8743 (noce_emit_all_but_last): Likewise.
8744 (noce_emit_insn): Likewise.
8745 (noce_emit_bb): Likewise.
8746 (noce_try_cmove_arith): Handle non-simple basic blocks.
8747 (insn_valid_noce_process_p): New function.
8748 (contains_mem_rtx_p): Likewise.
8749 (bb_valid_for_noce_process_p): Likewise.
8750 (noce_process_if_block): Allow non-simple basic blocks
8753 2015-08-31 Alan Lawrence <alan.lawrence@arm.com>
8755 * tree-ssa-dom.c (record_equivalences_from_phis,
8756 record_equivalences_from_stmt, optimize_stmt): Use dom_valueize.
8757 (lookup_avail_expr): Likewise, and remove comment and unused temp.
8759 2015-09-01 Nick Clifton <nickc@redhat.com>
8761 * config/msp430/msp430.opt (mcpu): Fix typo.
8763 2015-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8765 * config/aarch64/aarch64.c (aarch64_set_current_function):
8766 Re-layout any vector parameters have non-simd layout.
8767 * config/aarch64/aarch64-builtins.c (aarch64_relayout_simd_param):
8769 (aarch64_simd_expand_args): Delete call to the above.
8771 2015-08-31 Mike Frysinger <vapier@gentoo.org>
8773 * doc/invoke.texi (asan-stack): Add space before option.
8775 2015-08-31 Marc Glisse <marc.glisse@inria.fr>
8777 * tree.h (zerop): New function.
8778 * tree.c (zerop): Likewise.
8779 (element_precision): Handle expressions.
8780 * match.pd (define_predicates): Add zerop.
8781 (x <= +Inf): Fix comment.
8782 (abs (x) == 0, A & C == C, A & C != 0): Converted from ...
8783 * fold-const.c (fold_binary_loc): ... here. Remove.
8785 2015-08-31 Richard Biener <rguenther@suse.de>
8788 * genmatch.c (dt_node::gen_kids): Also treat matches as barrier.
8790 2015-08-31 Marc Glisse <marc.glisse@inria.fr>
8792 * match.pd (SIN, COS, TAN, COSH): Reorder for consistency.
8793 (CEXPI): New operator list.
8794 (real (conj (x)), imag (conj (x)), real (x +- y), real (cexpi (x)),
8795 imag (cexpi (x)), conj (conj (x)), conj (complex (x, y))):
8797 * fold-const.c (fold_unary_loc, fold_binary_loc): ... here. Remove.
8799 2015-08-31 Tom de Vries <tom@codesourcery.com>
8801 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt)
8802 (find_uses_to_rename_bb, find_uses_to_rename): Add and handle use_flags
8804 (find_uses_to_rename_def, find_uses_to_rename_in_loop): New function.
8805 (rewrite_into_loop_closed_ssa_1): New function, factored out of ...
8806 (rewrite_into_loop_closed_ssa): ... here.
8807 (replace_uses_in_dominated_bbs): Remove function.
8808 (rewrite_virtuals_into_loop_closed_ssa): Reimplement using
8809 rewrite_into_loop_closed_ssa_1.
8811 2015-08-31 Michael Matz <matz@suse.de>
8813 * cfganal.c (pre_and_rev_post_order_compute_fn): Correctly
8814 enter entry and exit blocks for reverse post order.
8816 2015-08-31 Richard Biener <rguenther@suse.de>
8818 * lto-streamer.h (lto_location_cache::cached_location::sysp): Add.
8819 (lto_location_cache::current_sysp): Likewise.
8820 (output_block::current_sysp): Likewise.
8821 * lto-streamer-in.c (lto_location_cache::cmp_loc): Compare sysp.
8822 (lto_location_cache::apply_location_cache): Properly record
8823 system header locations.
8824 (lto_location_cache::input_location): Input whether a file
8826 * lto-streamer-out.c (lto_output_location): Stream whether a file
8829 2015-08-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8832 * gcc.c (env_manager::xput): Replace strndup by xstrndup.
8834 2015-08-31 Tom de Vries <tom@codesourcery.com>
8836 * tree-ssa-loop-manip.c (find_uses_to_rename_use)
8837 (find_uses_to_rename_stmt, find_uses_to_rename_bb, find_uses_to_rename):
8838 Improve function header comments.
8840 2015-08-30 Michael Collison <michael.collison@linaro.org>
8843 * doc.md.texi: Rename [su]sum_widen to widen_[su]sum to reflect correct
8846 2015-08-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8848 * config/rs6000/rs6000.c (swap_web_entry): Enlarge
8849 special_handling bitfield.
8850 (special_handling_values): Add SH_XXPERMDI and SH_CONCAT.
8851 (rtx_is_swappable_p): Add handling for vec_select/vec_concat form
8852 that represents a general xxpermdi.
8853 (insn_is_swappable_p): Add handling for vec_concat of two
8854 doublewords, which maps to a specific xxpermdi.
8855 (adjust_xxpermdi): New function.
8856 (adjust_concat): Likewise.
8857 (handle_special_swappables): Call adjust_xxpermdi and
8859 (dump_swap_insn_table): Handle SH_XXPERMDI and SH_CONCAT.
8861 2015-08-30 Rich Felker <dalias@libc.org>
8863 * config.gcc (supported_defaults): Handle sh[123456ble]*-*-*
8864 case instead of sh[123456ble]-*-*.
8866 2015-08-29 Anatoly Sokolov <aesok@post.ru>
8868 * ira.c (print_unform_and_important_classes,
8869 print_translated_classes): Remove reg_class_names static array.
8870 (print_unform_and_important_classes): Rename to ...
8871 (print_uniform_and_important_classes): ... this.
8872 (ira_debug_allocno_classes): Update accordingly.
8874 2015-08-29 Tom de Vries <tom@codesourcery.com>
8876 PR tree-optimization/46193
8877 * omp-low.c (omp_reduction_init): Handle pointer type for min or max
8880 2015-08-28 Jeff Law <law@redhat.com>
8883 * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
8884 unable to find X NE 0 in the tables, return X as the simplified
8886 (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
8887 in VISISTED_BBS, then return failure. Else add nodes from NEXT_PATH
8889 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
8890 after removing the control flow statement and unnecessary edges.
8892 2015-08-28 Alan Lawrence <alan.lawrence@arm.com>
8895 2015-08-27 Alan Lawrence <alan.lawrence@arm.com>
8897 PR tree-optimization/67283
8898 * tree-sra.c (type_consists_of_records_p): Rename to...
8899 (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
8901 (completely_scalarize_record): Rename to...
8902 (completely_scalarize): ...this, add ARRAY_TYPE case, move some
8904 (scalarize_elem): New.
8906 2015-08-28 Jiong Wang <jiong.wang@arm.com>
8908 * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Rename
8909 SYMBOL_SMALL_GOTTPREL to SYMBOL_SMALL_TLSIE.
8910 (aarch64_symbol_type): Likewise.
8911 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
8913 (aarch64_expand_mov_immediate): Likewise.
8914 (aarch64_print_operand): Likewise.
8915 (aarch64_classify_tls_symbol): Likewise.
8917 2015-08-28 Richard Biener <rguenther@suse.de>
8919 * cgraphunit.c (symbol_table::compile): Move early debug generation
8921 (symbol_table::finalize_compilation_unit): ... back here and
8922 add a !seen_error () guard.
8924 2015-08-27 Sebastian Pop <s.pop@samsung.com>
8926 * toplev.c (process_options): Do not use flag_loop_block,
8927 flag_loop_interchange, and flag_loop_strip_mine. Add check for
8928 flag_loop_optimize_isl.
8930 2015-08-27 Sebastian Pop <s.pop@samsung.com>
8932 * Makefile.in (OBJS): Remove graphite-blocking.o and
8933 graphite-interchange.o.
8934 * common.opt (floop-strip-mine, floop-interchange, floop-block):
8935 Alias of floop-nest-optimize.
8936 * doc/invoke.texi (floop-strip-mine, floop-interchange, floop-block):
8937 Document as alias of -floop-nest-optimize.
8938 * graphite-blocking.c: Remove.
8939 * graphite-interchange.c: Remove.
8940 * graphite-optimize-isl.c: Include dumpfile.h.
8941 (getScheduleForBand): Add dump for tiled loops. Use
8942 PARAM_LOOP_BLOCK_TILE_SIZE instead of hard coded constant.
8943 * graphite-poly.c (scop_max_loop_depth): Remove.
8944 (print_scattering_function_1): Remove.
8945 (print_scattering_function): Remove.
8946 (print_scattering_functions): Remove.
8947 (debug_scattering_function): Remove.
8948 (debug_scattering_functions): Remove.
8949 (apply_poly_transforms): Remove use of flag_loop_block,
8950 flag_loop_strip_mine, and flag_loop_interchange.
8951 (new_poly_bb): Remove use of PBB_TRANSFORMED, PBB_SAVED, and
8953 (print_pdr_access_layout): Remove.
8954 (print_pdr): Print ISL representation.
8955 (new_scop): Remove use of SCOP_ORIGINAL_SCHEDULE,
8956 SCOP_TRANSFORMED_SCHEDULE, and SCOP_SAVED_SCHEDULE.
8958 (openscop_print_pbb_domain): Remove.
8959 (print_pbb): Remove call to print_scattering_function.
8960 (openscop_print_scop_context): Remove.
8961 (print_scop_context): Do not print matrices anymore.
8962 (print_scop): Do not print SCOP_ORIGINAL_SCHEDULE and
8963 SCOP_TRANSFORMED_SCHEDULE.
8964 (print_isl_set): Add printing of a new line.
8965 (print_isl_map): Same.
8966 (print_isl_aff): Same.
8967 (print_isl_constraint): Same.
8968 (loop_to_lst): Remove.
8969 (scop_to_lst): Remove.
8970 (lst_indent_to): Remove.
8971 (print_lst): Remove.
8972 (debug_lst): Remove.
8973 (dot_lst_1): Remove.
8975 (reverse_loop_at_level): Remove.
8976 (reverse_loop_for_pbbs): Remove.
8977 * graphite-poly.h (pdr_dim_iter_domain): Remove.
8978 (pdr_nb_params): Remove.
8979 (pdr_alias_set_dim): Remove.
8980 (pdr_subscript_dim): Remove.
8981 (pdr_iterator_dim): Remove.
8982 (pdr_parameter_dim): Remove.
8983 (same_pdr_p): Remove.
8984 (struct poly_scattering): Remove.
8985 (struct poly_bb): Remove _original, _transformed, _saved.
8986 (PBB_DOMAIN, PBB_ORIGINAL, PBB_ORIGINAL_SCATTERING): Remove.
8987 (PBB_TRANSFORMED, PBB_TRANSFORMED_SCATTERING, PBB_SAVED): Remove.
8988 (PBB_NB_LOCAL_VARIABLES): Remove.
8989 (PBB_NB_SCATTERING_TRANSFORM): Remove.
8990 (schedule_to_scattering): Remove.
8991 (number_of_write_pdrs): Remove.
8992 (pbb_dim_iter_domain): Remove.
8993 (pbb_nb_params): Remove.
8994 (pbb_nb_scattering_orig): Remove.
8995 (pbb_nb_scattering_transform): Remove.
8996 (pbb_nb_dynamic_scattering_transform): Remove.
8997 (pbb_nb_local_vars): Remove.
8998 (pbb_iterator_dim): Remove.
8999 (pbb_parameter_dim): Remove.
9000 (psco_scattering_dim): Remove.
9001 (psct_scattering_dim): Remove.
9002 (psct_local_var_dim): Remove.
9003 (psco_iterator_dim): Remove.
9004 (psct_iterator_dim): Remove.
9005 (psco_parameter_dim): Remove.
9006 (psct_parameter_dim): Remove.
9007 (psct_dynamic_dim): Remove.
9008 (psct_static_dim): Remove.
9009 (psct_add_local_variable): Remove.
9010 (new_lst_loop): Remove.
9011 (new_lst_stmt): Remove.
9014 (lst_add_loop_under_loop): Remove.
9015 (lst_depth): Remove.
9016 (lst_dewey_number): Remove.
9017 (lst_dewey_number_at_depth): Remove.
9020 (lst_find_pbb): Remove.
9021 (find_lst_loop): Remove.
9022 (lst_find_first_pbb): Remove.
9023 (lst_empty_p): Remove.
9024 (lst_find_last_pbb): Remove.
9025 (lst_contains_p): Remove.
9026 (lst_contains_pbb): Remove.
9027 (lst_create_nest): Remove.
9028 (lst_remove_from_sequence): Remove.
9029 (lst_remove_loop_and_inline_stmts_in_loop_father): Remove.
9030 (lst_niter_for_loop): Remove.
9031 (pbb_update_scattering): Remove.
9032 (lst_update_scattering_under): Remove.
9033 (lst_update_scattering): Remove.
9034 (lst_insert_in_sequence): Remove.
9035 (lst_replace): Remove.
9036 (lst_substitute_3): Remove.
9037 (lst_distribute_lst): Remove.
9038 (lst_remove_all_before_including_pbb): Remove.
9039 (lst_remove_all_before_excluding_pbb): Remove.
9040 (struct scop): Remove original_schedule, transformed_schedule, and
9042 (SCOP_ORIGINAL_SCHEDULE, SCOP_TRANSFORMED_SCHEDULE): Remove.
9043 (SCOP_SAVED_SCHEDULE): Remove.
9044 (poly_scattering_new): Remove.
9045 (poly_scattering_free): Remove.
9046 (poly_scattering_copy): Remove.
9047 (store_scattering_pbb): Remove.
9048 (store_lst_schedule): Remove.
9049 (restore_lst_schedule): Remove.
9050 (store_scattering): Remove.
9051 (restore_scattering_pbb): Remove.
9052 (restore_scattering): Remove.
9053 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
9054 Remove scattering_dimensions. Do not use pbb_dim_iter_domain:
9055 compute the scattering polyhedron dimension from the dimension of
9057 (build_scop_scattering): Update call to
9058 build_pbb_scattering_polyhedrons.
9059 (build_poly_scop): Remove call to scop_to_lst.
9060 * graphite.c (graphite_transform_loops): Add call to print_scop.
9061 (gate_graphite_transforms): Remove use of flag_loop_block,
9062 flag_loop_interchange, and flag_loop_strip_mine.
9064 2015-08-27 Sebastian Pop <s.pop@samsung.com>
9066 * common.opt (floop-unroll-and-jam): Make alias of floop-nest-optimize.
9067 * doc/invoke.texi (-floop-unroll-and-jam): Document as alias of
9068 -floop-nest-optimize.
9069 * graphite-isl-ast-to-gimple.c (generate_luj_sepclass_opt): Remove.
9070 (generate_luj_sepclass): Remove.
9071 (generate_luj_options): Remove.
9072 (set_options): Remove opt_luj.
9073 (scop_to_isl_ast): Remove opt_luj.
9074 * graphite-optimize-isl.c (getScheduleForBand): Remove check for
9075 flag_loop_unroll_jam.
9076 (getPrevectorMap_full): Remove.
9077 (getScheduleForBandList): Remove map_sepcl.
9078 (getScheduleMap): Same.
9079 (apply_schedule_map_to_scop): Remove sepcl.
9080 (optimize_isl): Same.
9081 * graphite-poly.c (apply_poly_transforms): Remove check for
9082 flag_loop_unroll_jam.
9083 (new_poly_bb): Remove map_sepclass.
9084 * graphite-poly.h (struct poly_bb): Same.
9085 * graphite.c (gate_graphite_transforms): Remove flag_loop_unroll_jam.
9086 * params.def (PARAM_LOOP_UNROLL_JAM_SIZE)
9087 (PARAM_LOOP_UNROLL_JAM_DEPTH): Remove.
9088 * toplev.c (process_options): Remove flag_loop_unroll_jam.
9090 2015-08-27 Uros Bizjak <ubizjak@gmail.com>
9093 * config/i386/i386.md (*add<mode>3_cc): Remove insn pattern.
9095 (UNSPEC_ADD_CARRY): Remove.
9096 (addqi3_cconly_overflow): New expander.
9097 (*add<dwi>3_doubleword): Split to add<mode>3_cconly_overflow.
9098 Adjust for changed add<mode>3_carry.
9099 (*neg<dwi>2_doubleword): Adjust for changed add<mode>3_carry.
9100 (*sub<dwi>3_doubleword): Adjust for changed sub<mode>3_carry.
9101 (<plusminus_insn><mode>3_carry): Remove expander.
9102 (*<plusminus_insn><mode>3_carry): Split insn pattern to
9103 add<mode>3_carry and sub<mode>3_carry.
9104 (plusminus_carry_mnemonic): Remove code attribute.
9105 (add<mode>3_carry): Canonicalize insn pattern.
9106 (*addsi3_carry_zext): Ditto.
9107 (sub<mode>3_carry): Ditto.
9108 (*subsi3_carry_zext): Ditto.
9109 (adcx<mode>3): Remove insn pattern.
9110 (addcarry<mode>): New insn pattern.
9111 (subborrow<mode>): Ditto.
9112 * config/i386/i386.c (ix86_expand_strlensi_unroll_1): Use
9113 gen_addqi3_cconly_overflow instead of gen_addqi3_cc.
9114 (ix86_expand_builtin) <case IX86_BUILTIN_SBB32,
9115 case IX86_BUILTIN_SBB64, case IX86_BUILTIN_ADDCARRY32,
9116 case IX86_BUILTIN_ADDCARRY64>: Use CODE_FOR_subborrowsi,
9117 CODE_FOR_subborrowdi, CODE_FOR_addcarrysi and CODE_FOR_addcarrydi.
9118 Rewrite expander to not clobber carry flag chains.
9120 2015-08-27 Pat Haugen <pthaugen@us.ibm.com>
9122 * config/rs6000/vector.md (vec_shr_<mode>): Fix to do a shift
9123 instead of a rotate.
9125 2015-08-27 Marek Polacek <polacek@redhat.com>
9128 * tree-ssa-dce.c (remove_dead_stmt): Also schedule fixup if removing
9129 an entry into an irreducible region.
9131 2015-08-27 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
9133 * configure: Regenerate.
9135 2015-08-27 Alan Lawrence <alan.lawrence@arm.com>
9137 PR tree-optimization/67283
9138 * tree-sra.c (type_consists_of_records_p): Rename to...
9139 (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
9141 (completely_scalarize_record): Rename to...
9142 (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
9143 (scalarize_elem): New.
9145 2015-08-27 Alan Lawrence <alan.lawrence@arm.com>
9147 * tree-sra.c (completely_scalarize_var): Rename to...
9148 (create_total_scalarization_access): ... Here. Drop call to
9149 completely_scalarize_record.
9151 (analyze_all_variable_accesses): Replace completely_scalarize_var
9152 with create_total_scalarization_access and completely_scalarize_record.
9154 2015-08-27 Alan Modra <amodra@gmail.com>
9157 * config/rs6000/rs6000.md (ior<mode>_mask): Use constraint "0"
9160 2015-08-27 Richard Biener <rguenther@suse.de>
9162 * passes.c (rest_of_decl_compilation): Guard early_global_decl
9163 call with !seen_error ().
9164 * cgraphunit.c (symbol_table::finalize_compilation_unit): Move
9165 early debug generation and finish...
9166 (symbol_table::compile): ... here to put it after a !seen_error ()
9169 2015-08-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9171 * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit on
9174 2015-08-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9175 Andre Vieira <andre.simoesdiasvieira@arm.com>
9177 * config/aarch64/aarch64.md (*condjump): Handle functions > 1 MiB.
9178 (*cb<optab><mode>1): Likewise.
9179 (*tb<optab><mode>1): Likewise.
9180 (*cb<optab><mode>1): Likewise.
9181 * config/aarch64/iterators.md (inv_cb): New code attribute.
9183 * config/aarch64/aarch64.c (aarch64_gen_far_branch): New.
9184 * config/aarch64/aarch64-protos.h (aarch64_gen_far_branch): New.
9186 2015-08-27 Richard Biener <rguenther@suse.de>
9188 * ipa.c (cgraph_build_static_cdtor_1): Set DECL_IGNORED_P.
9190 2015-08-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
9192 * config/s390/s390.c (s390_emit_prologue): Add emit_barrier() after
9195 2015-08-26 Michael Meissner <meissner@linux.vnet.ibm.com>
9197 * config/rs6000/rs6000-protos.h (rs6000_expand_float128_convert):
9200 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Fix a
9202 (rs6000_cannot_change_mode_class): Add support for IEEE 128-bit
9203 floating point in VSX registers.
9204 (rs6000_output_move_128bit): Always print out the set insn if we
9205 can't generate an appropriate 128-bit move.
9206 (rs6000_generate_compare): Add support for IEEE 128-bit floating
9207 point in VSX registers comparisons.
9208 (rs6000_expand_float128_convert): Likewise.
9210 * config/rs6000/predicates.md (int_reg_operand_not_pseudo): New
9211 predicate for only GPR hard registers.
9213 * config/rs6000/rs6000.md (FP): Add IEEE 128-bit floating point
9214 modes to iterators. Add new iterators for moving 128-bit values in
9215 scalar FPR registers and VSX registers.
9216 (FMOVE128): Likewise.
9217 (FMOVE128_FPR): Likewise.
9218 (FMOVE128_GPR): Likewise.
9219 (FMOVE128_VSX): Likewise.
9220 (FLOAT128_SFDFTF): New iterators for IEEE 128-bit floating point
9225 (RELOAD): Add IEEE 128-bit floating point modes.
9226 (signbittf2): Convert TF insns to add support for new IEEE 128-bit
9227 floating point in VSX registers modes.
9228 (signbit<mode>2, IBM128 iterator): Likewise.
9229 (mov<mode>_64bit_dm, FMOVE128_FPR iterator): Likewise.
9230 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
9232 (neg<mode>2, TFIFKF iterator): Likewise.
9233 (negtf2_internal): Likewise.
9235 (abs<mode>2, TFIFKF iterator): Likewise.
9236 (ieee_128bit_negative_zero): New IEEE 128-bit floating point in
9237 VSX insn support for negate, absolute value, and negative absolute
9239 (ieee_128bit_vsx_neg<mode>2): Likewise.
9240 (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
9241 (ieee_128bit_vsx_abs<mode>2): Likewise.
9242 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
9243 (ieee_128bit_vsx_nabs<mode>2): Likewise.
9244 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
9245 (FP128_64): Update pack/unpack 128-bit insns for IEEE 128-bit
9246 floating point in VSX registers.
9247 (unpack<mode>_dm): Likewise.
9248 (unpack<mode>_nodm): Likewise.
9249 (pack<mode>): Likewise.
9250 (unpackv1ti): Likewise.
9251 (unpack<mode>, FMOVE128_VSX iterator): Likewise.
9252 (packv1ti): Likewise.
9253 (pack<mode>, FMOVE128_VSX iterator): Likewise.
9254 (extenddftf2): Add support for IEEE 128-bit floating point in VSX
9256 (extenddftf2_internal): Likewise.
9257 (trunctfdf2): Likewise.
9258 (trunctfdf2_internal2): Likewise.
9259 (fix_trunc_helper): Likewise.
9260 (fix_trunctfdi2"): Likewise.
9261 (floatditf2): Likewise.
9262 (floatuns<mode>tf2): Likewise.
9263 (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
9264 (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
9265 (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
9266 (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
9267 (float<SDI:mode><IFKF:mode>2): Likewise.
9268 (floatuns<SDI:mode><IFKF:mode>2): Likewise.
9270 2015-08-26 Renlin Li <renlin.li@arm.com>
9272 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode><ALLX:mode>4): New.
9274 2015-08-26 Marcus Shawcroft <marcus.shawcroft@arm.com>
9275 Jiong Wang <jiong.wang@arm.com>
9277 * config/aarch64/aarch64.md (UNSPEC_GOTTINYTLS): New UNSPEC.
9278 (tlsie_tiny_<mode>): New define_insn.
9279 (tlsie_tiny_sidi): Likewise.
9280 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
9282 (aarch64_symbol_context): New comment for SYMBOL_TINY_TLSIE.
9283 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
9285 (aarch64_expand_mov_immediate): Likewise.
9286 (aarch64_print_operand): Likewise.
9287 (arch64_classify_tls_symbol): Likewise.
9289 2015-08-26 Matthew Wahab <matthew.wahab@arm.com>
9291 * config/arm/arm-arches.def: Replace single value flags with
9292 an initializer built from ARM_FSET_MAKE_CPU1.
9293 * config/arm/arm-cores.def: Likewise.
9294 * config/arm/arm.c: (all_cores): Remove ARM_FSET_MAKE_CPU1
9295 derivation from the ARM_CORE macro definition, use the given value
9297 (all_architectures): Remove ARM_FSET_MAKE_CPU1 derivation from the
9298 ARM_ARCH macro definition, use the given value instead.
9300 2015-08-26 Matthew Wahab <matthew.wahab@arm.com>
9302 * config/arm/arm-builtins.c (def_mbuiltin): Test all flags in a
9304 (struct builtin_description): Replace field mask with field
9306 (IWMMXT_BUILTIN): Use ARM_FSET macros for feature flags.
9307 (IWMMXT2_BUILTIN): Likewise.
9308 (IWMMXT2_BUILTIN2): Likewise.
9309 (FP_BUILTIN): Likewise.
9310 (CRC32_BUILTIN): Likewise.
9311 (CRYPTO_BUILTIN): Likewise.
9312 (iwmmx_mbuiltin): Likewise.
9313 (iwmmx2_mbuiltin): Likewise.
9314 (arm_init_iwmmxt_builtins): Likewise. Also, update for change to
9315 struct builtin_description.
9317 2015-08-26 Matthew Wahab <matthew.wahab@arm.com>
9319 * config/arm/arm-builtins.c (def_mbuiltin): Use ARM_FSET macro.
9320 (struct builtin_description): Change type of mask to unsigned
9322 * config/arm/arm-protos.h (insn_flags): Declare as type
9324 (tune_flags): Likewise.
9325 * config/arm/arm.c (feature_count): New.
9326 (insn_flags): Define as type arm_feature_set.
9327 (tune_flags): Likewise.
9328 (struct processors): Define field flags as type arm_feature_set.
9329 (all_cores): Update for change to struct processors.
9330 (all_architectures): Likewise.
9331 (arm_option_check_internal): Use arm_feature_set and ARM_FSET
9333 (arm_option_override_internal): Likewise.
9334 (arm_option_override): Likewise.
9336 2015-08-26 Marcus Shawcroft <marcus.shawcroft@arm.com>
9337 Jiong Wang <jiong.wang@arm.com>
9339 * config/aarch64/aarch64.c (initialize_aarch64_tls_size): Set default
9340 tls size for tiny, small, large memory model.
9341 (aarch64_load_symref_appropriately): Support new symbol types.
9342 (aarch64_expand_mov_immediate): Likewise.
9343 (aarch64_print_operand): Likewise.
9344 (aarch64_classify_tls_symbol): Likewise.
9345 * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Likewise.
9346 (aarch64_symbol_type): Likewise.
9347 * config/aarch64/aarch64.md (tlsle): Deleted.
9348 (tlsle12_<mode>): New define_insn.
9349 (tlsle24_<mode>): Likewise.
9350 (tlsle32_<mode>): Likewise.
9351 (tlsle48_<mode>): Likewise.
9352 * doc/sourcebuild.texi (AArch64-specific attributes): Document
9355 2015-08-26 Matthew Wahab <matthew.wahab@arm.com>
9357 * config/arm/arm-protos.h (FL_NONE): New.
9359 (arm_feature_set): New.
9360 (ARM_FSET_MAKE): New.
9361 (ARM_FSET_MAKE_CPU1): New.
9362 (ARM_FSET_MAKE_CPU2): New.
9363 (ARM_FSET_CPU1): New.
9364 (ARM_FSET_CPU2): New.
9365 (ARM_FSET_EMPTY): New.
9366 (ARM_FSET_ANY): New.
9367 (ARM_FSET_HAS_CPU1): New.
9368 (ARM_FSET_HAS_CPU2): New.
9369 (ARM_FSET_HAS_CPU): New.
9370 (ARM_FSET_ADD_CPU1): New.
9371 (ARM_FSET_ADD_CPU2): New.
9372 (ARM_FSET_DEL_CPU1): New.
9373 (ARM_FSET_DEL_CPU2): New.
9374 (ARM_FSET_UNION): New.
9375 (ARM_FSET_INTER): New.
9376 (ARM_FSET_XOR): New.
9377 (ARM_FSET_EXCLUDE): New.
9378 (AFM_FSET_IS_EMPTY): New.
9379 (ARM_FSET_CPU_SUBSET): New.
9381 2015-08-26 Jiong Wang <jiong.wang@arm.com>
9383 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
9384 SYMBOL_TLSLE to SYMBOL_TLSLE24.
9385 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
9387 (aarch64_expand_mov_immediate): Likewise.
9388 (aarch64_print_operand): Likewise.
9389 (aarch64_classify_symbol): Likewise.
9391 2015-08-26 Jiong Wang <jiong.wang@arm.com>
9393 * config/aarch64/aarch64.opt (mtls-size): New entry.
9394 * config/aarch64/aarch64.c (initialize_aarch64_tls_size): New function.
9395 (aarch64_override_options_internal): Call initialize_aarch64_tls_size.
9396 * doc/invoke.texi (AArch64 Options): Document -mtls-size.
9398 2015-08-26 Matthew Wahab <matthew.wahab@arm.com>
9400 * gcc/config/arm/arm-cores.def: Add FL_FOR_ARCH flag for each
9401 ARM_CORE entry. Fix some white-space.
9402 * gcc/config/arm/arm.c: Remove FL_FOR_ARCH derivation from
9403 ARM_CORE definition.
9405 2015-08-26 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
9407 * fold-const.c (fold_binary_loc) : Move Optimize
9408 root(x)*root(y) as root(x*y) to match.pd.
9409 Move Optimize expN(x)*expN(y) as expN(x+y) to match.pd.
9410 Move Optimize pow(x,y)*pow(x,z) as pow(x,y+z) to match.pd.
9411 Move Optimize a/root(b/c) into a*root(c/b) to match.pd.
9412 Move Optimize x/expN(y) into x*expN(-y) to match.pd.
9413 * match.pd (mult (root:s @0) (root:s @1)): New simplifier.
9414 (mult (POW:s @0 @1) (POW:s @0 @2)) : New simplifier.
9415 (mult (exps:s @0) (exps:s @1)) : New simplifier.
9416 (rdiv @0 (root:s (rdiv:s @1 @2))) : New simplifier.
9417 (rdiv @0 (exps:s @1)) : New simplifier.
9419 2015-08-25 Joseph Myers <joseph@codesourcery.com>
9421 * gcc.c (driver::finalize): Only assign to extra_specs if
9424 2015-08-25 Marek Polacek <polacek@redhat.com>
9427 * varasm.c (declare_weak): Return after giving an error.
9429 2015-08-25 David Malcolm <dmalcolm@redhat.com>
9431 * gcc-main.c (main): Add params to driver ctor.
9432 * gcc.c (class env_manager): New.
9434 (env_manager::init): New.
9435 (env_manager::get): New.
9436 (env_manager::xput): New.
9437 (env_manager::restore): New.
9438 Poison getenv and putenv.
9439 (DEFAULT_TARGET_SYSTEM_ROOT): New.
9440 (target_system_root): Update initialization to use
9441 DEFAULT_TARGET_SYSTEM_ROOT.
9442 (struct spec_list): Add field "default_ptr".
9443 (INIT_STATIC_SPEC): Initialize new field "default_ptr".
9444 (init_spec): Likewise.
9445 (set_spec): Clear field "default_ptr".
9446 (read_specs): Free "spec" and "buffer".
9447 (xputenv): Reimplement in terms of env_manager.
9448 (process_command): Replace ::getenv calls with calls to the
9449 env_manager singleton.
9450 (process_brace_body): Free string in three places.
9451 (driver::driver): New.
9452 (driver::~driver): New.
9453 (used_arg): Convert from a function to...
9454 (class used_arg_t): ...this class, and...
9455 (used_arg): ...this new global instance.
9456 (used_arg_t::finalize): New function.
9457 (getenv_spec_function): Add "const" to local "value". Replace
9458 ::getenv call with call to the env_manager singleton.
9459 (path_prefix_reset): New function.
9460 (driver::finalize): New function.
9461 * gcc.h (driver::driver): New.
9462 (driver::~driver): New.
9463 (driver::finalize): New.
9465 2015-08-25 Nathan Sidwell <nathan@acm.org>
9467 * optabs.c (emit_indirect_jump): Don't try an emit a jump if the
9468 target doesn't have one.
9470 2015-08-25 Segher Boessenkool <segher@kernel.crashing.org>
9473 * config/rs6000/rs6000.md (*ior<mode>_mask): Use a match_scratch.
9475 2015-08-25 Segher Boessenkool <segher@kernel.crashing.org>
9478 * config/rs6000/rs6000.md (*and<mode>3_imm_dot_shifted): Change to
9479 a define_insn, remove second alternative.
9481 2015-08-25 Thomas Schwinge <thomas@codesourcery.com>
9482 Joseph Myers <joseph@codesourcery.com>
9484 * gcc.c (struct switchstr): Expand comment.
9486 2015-08-25 Nathan Sidwell <nathan@acm.org>
9488 * config/nvptx/nvptx.c (nvptx_write_function_decl): Reformat.
9489 (nvptx_reorg_subreg): Pass insn pattern to asm_operands.
9491 2015-08-25 Richard Biener <rguenther@suse.de>
9494 * genmatch.c (expr::gen_transform): Verify the result of
9495 builtin_decl_implicit.
9496 (dt_simplify::gen_1): Likewise.
9498 2015-08-25 Thomas Preud'homme <thomas.preudhomme@arm.com>
9500 * config/arm/constraints.md: Also list Cs and US ARM-specific
9501 constraints as used.
9503 2015-08-24 Kaz Kojima <kkojima@gcc.gnu.org>
9506 * config/sh/sh.c (sh_asm_output_addr_const_extra): Handle
9508 (nonpic_symbol_mentioned_p): Likewise.
9509 (sh_delegitimize_address): Likewise.
9510 (sh_function_ok_for_sibcall): Take into account weak symbols.
9511 (sh_expand_sym_label2reg): New.
9512 * config/sh/sh-protos.h (sh_expand_sym_label2reg): Declare.
9513 * config/sh/sh.md (UNSPEC_PCREL): New enum.
9514 (call_pcrel): Use sh_expand_sym_label2reg.
9515 (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
9516 (symPCREL_label2reg) New expand.
9518 2015-08-24 Aditya Kumar <aditya.k7@samsung.com>
9520 * graphite-poly.c: Change type of region from void* to sese.
9521 * graphite-poly.h (struct scop): Changing the type of scop::region
9522 from void* to sese. Change accessor macro accordingly.
9523 * graphite-sese-to-poly.c (extract_affine_chrec): Use accessor macro.
9525 2015-08-24 Aditya Kumar <aditya.k7@samsung.com>
9527 * graphite-scop-detection.c (stmt_simple_for_scop_p):
9528 Constrain only on INTEGER_TYPE.
9530 2015-08-24 Michael Meissner <meissner@linux.vnet.ibm.com>
9533 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
9534 -mefficient-unaligned-vsx on ISA 2.7.
9536 * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
9537 option to a masked option.
9539 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rework
9540 logic for -mefficient-unaligned-vsx so that it is set via an arch
9541 ISA option, instead of being set if -mtune=power8 is set. Move
9542 -mefficient-unaligned-vsx and -mallow-movmisalign handling to be
9543 near other default option handling.
9545 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
9547 * genflags.c (gen_macro): Delete.
9548 (gen_proto): Don't create GEN.*CALL.* macros.
9549 * gensupport.h (get_file_location): Declare.
9550 * gensupport.c (rtx_locs): New variable.
9551 (read_md_rtx): Record rtx locations.
9552 (get_file_location): New function.
9553 * target-insns.def (call, call_pop, call_value, call_value_pop)
9554 (sibcall, sibcall_value): New patterns.
9555 * gentarget-def.c (parse_argument): New function.
9556 (def_target_insn): Use it. Handle optional operands. Raise an
9557 error if an .md pattern has the wrong number of operands for the
9558 pattern name. Remove the names of unused operands from the prototype.
9559 * builtins.c (expand_builtin_apply): Use targetm functions
9560 instead of HAVE_call_value and GEN_CALL_VALUE.
9561 * calls.c (emit_call_1): Likewise. Remove support for sibcall_pop
9562 and sibcall_value_pop.
9563 * config/aarch64/aarch64.md (untyped_call): Use gen_call instead
9565 * config/alpha/alpha.md (untyped_call): Likewise.
9566 * config/iq2000/iq2000.md (untyped_call): Likewise.
9567 * config/m68k/m68k.md (untyped_call): Likewise.
9568 * config/mips/mips.md (untyped_call): Likewise.
9569 * config/pa/pa.md (untyped_call): Likewise.
9570 * config/rs6000/rs6000.md (untyped_call): Likewise.
9571 * config/sparc/sparc.md (untyped_call): Likewise.
9572 * config/tilegx/tilegx.md (untyped_call): Likewise.
9573 * config/tilepro/tilepro.md (untyped_call): Likewise.
9574 * config/visium/visium.md (untyped_call): Likewise.
9575 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Use
9576 gen_call_value instead of GEN_CALL_VALUE.
9577 * config/arm/arm.md (untyped_call): Likewise.
9578 * config/cr16/cr16.c (cr16_function_arg): Remove reference to
9581 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
9583 * ifcvt.c (HAVE_incscc, HAVE_decscc, HAVE_cbranchcc4): Delete.
9584 (have_cbranchcc4): New variable.
9585 (cc_in_cond, noce_emit_cmove, noce_get_alt_condition)
9586 (noce_get_condition): Use it instead of HAVE_cbranchcc4.
9587 (if_convert): Initialize have_cbranchcc4.
9589 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
9591 * builtins.c (expand_cmpstrn): Rename to...
9592 (expand_cmpstrn_or_cmpmem): ...this.
9593 (expand_builtin_strcmp, expand_builtin_strncmp): Update accordingly.
9594 (expand_builtin_memcmp): Use optabs instead of HAVE_cmpmem/gen_cmpmem.
9595 Remove mode argument.
9596 (expand_builtin): Update accordingly.
9598 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
9600 * builtins.c (expand_cmpstr, expand_cmpstrn): New functions.
9601 (expand_builtin_strcmp, expand_builtin_strncmp): Use them. Remove
9602 references to HAVE_cmpstr{,n}si and CODE_FOR_cmpstr{,n}si.
9603 * config/m32c/blkmov.md (cmpstrsi): Fix predicates of operands 1 and 2.
9604 Add predicates for operands 0 and 3.
9605 * config/rx/rx.md (cmpstrnsi): Remove force_operand for the length
9607 * config/sh/sh.md (cmpstrnsi): Change the length predicate from
9608 immediate_operand to nonmemory_operand.
9610 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
9612 * df-scan.c (df_insn_info_init_fields): New function, split out
9614 (df_insn_create_insn_record): ...here.
9615 (df_insn_info_free_fields): New function, split out from...
9616 (df_insn_info_delete): ...here.
9617 (df_insn_rescan): Use the new functions instead of freeing and
9618 reallocating the df_insn_info.
9620 2015-08-24 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
9622 * doc/install.texi (Binaries): Remove links no longer valid.
9624 2015-08-24 Nathan Sidwell <nathan@codesourcery.com>
9626 * config/nvptx/mkoffload.c (process): Replace
9627 GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver.
9629 2015-08-24 H.J. Lu <hongjiu.lu@intel.com>
9632 * config/i386/i386.c (iamcu_cost): Set MOVE_RATIO cost to 9.
9634 2015-08-24 Renlin Li <renlin.li@arm.com>
9636 * config/arm/arm-protos.h (arm_valid_symbolic_address_p): Declare.
9637 * config/arm/arm.c (arm_valid_symbolic_address_p): Define.
9638 * config/arm/arm.md (arm_movt): Use arm_valid_symbolic_address_p.
9639 * config/arm/constraints.md ("j"): Add check for high code.
9641 2015-08-24 Tom de Vries <tom@codesourcery.com>
9643 PR tree-optimization/65468
9644 * omp-low.c (expand_omp_for_static_chunk): Remove inner loop if
9647 2015-08-24 Nathan Sidwell <nathan@acm.org>
9649 * config/nvptx/nvptx.c (walk_args_for_param): Revert previous
9650 change to nvptx_type_from_mode call. Use arg_promotion for both
9651 split and non-split args.
9653 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
9655 * target-insns.def (movstr): New pattern.
9656 * builtins.c (HAVE_movstr, CODE_FOR_movstr): Delete.
9657 (expand_movstr): Use targetm rather than HAVE_movstr/
9660 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
9662 * config/microblaze/microblaze.c (microblaze_classify_unspec): Fix
9665 2015-08-24 Andrew Pinski <apinski@cavium.com>
9667 * config/aarch64/aarch64-tuning-flags.def: Remove all index to
9668 AARCH64_EXTRA_TUNING_OPTION.
9669 * config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index):
9671 (aarch64_extra_tuning_flags): Base the shifted value on the index
9672 instead of the argument to AARCH64_EXTRA_TUNING_OPTION.
9673 * config/aarch64/aarch64.c: Remove the last argument to
9674 AARCH64_EXTRA_TUNING_OPTION.
9676 2015-08-23 Nathan Sidwell <nathan@acm.org>
9678 * config/nvptx/nvptx.c (walk_args_for_param): Promote arg reg
9680 (nvptx_declare_function_name): Insert formatting tabs for
9683 2015-08-23 Tom de Vries <tom@codesourcery.com>
9685 * omp-low.c (expand_omp_taskreg): If in ssa, set rhs of parcopy stmt to
9686 parm_decl, rather than generating a dummy default def in cfun.
9687 * tree-cfg.c (replace_ssa_name): Assume no default defs. Make sure
9688 ssa_name from cfun and child_fn do not share a stmt as def stmt.
9689 (move_stmt_op): Handle PARM_DECl.
9690 (gather_ssa_name_hash_map_from): New function.
9691 (move_sese_region_to_fn): Add default defs for function params, and add
9692 them to vars_map. Release copied ssa names.
9693 * tree-cfg.h (gather_ssa_name_hash_map_from): Declare.
9695 2015-08-23 Tom de Vries <tom@codesourcery.com>
9697 * doc/sourcebuild.texi: Rename vect_no_int_max with
9698 vect_no_int_min_max. Update description.
9700 2015-08-22 Andrew Pinski <apinski@cavium.com>
9702 * aarch64-fusion-pairs.def: Remove all index to AARCH64_FUSION_PAIR.
9703 * config/aarch64/aarch64-protos.h
9704 (aarch64_fusion_pairs_index): New enum.
9705 (aarch64_fusion_pairs): Base the shifted value on the index instead
9706 Rewrite AARCH64_FUSE_ALL to be based on the end index.
9707 of the argument to AARCH64_FUSION_PAIR.
9708 * config/aarch64/aarch64.c: Remove the last argument to
9709 AARCH64_FUSION_PAIR.
9711 2015-08-22 Mikhail Maltsev <maltsevm@gmail.com>
9713 * dominance.c (new_zero_array): Define.
9714 (dom_info): Redefine as class with proper encapsulation.
9715 (dom_info::m_n_basic_blocks, m_reverse, m_start_block, m_end_block):
9717 (dom_info::dom_info, ~dom_info): Define. Use new/delete for memory
9718 allocations/deallocations. Pass function as parameter (instead of
9720 (dom_info::get_idom): Define accessor method.
9721 (dom_info::calc_dfs_tree_nonrec, calc_dfs_tree, compress, eval,
9722 link_roots, calc_idoms): Redefine as class members. Do not use cfun.
9723 (calculate_dominance_info): Adjust to use dom_info class.
9724 (verify_dominators): Likewise.
9726 2015-08-21 Alexandre Oliva <aoliva@redhat.com>
9728 * print-rtl.c (print_rtx): Check the correct range for
9729 flag_dump_unnumbered_links to behave as documented.
9731 PR rtl-optimization/67227
9732 PR rtl-optimization/64164
9733 * alias.c (memrefs_conflict_p): Handle VALUEs in PLUS better.
9734 (nonoverlapping_memrefs_p): Test offsets and sizes when given
9735 identical gimple_reg exprs.
9737 2015-08-21 Nathan Sidwell <nathan@acm.org>
9739 * config/nvptx/nvptx.md (allocate_stack): Emit sorry during
9741 * config/nvptx/nvptx.c (nvptx_declare_function_name): Look at
9742 crtl->stack_alignment_needed to determine alignment.
9743 (nvptx_get_drap_rtx): New.
9744 (TARGET_GET_DRAP_RTX): Override.
9745 * config/nvptx/nvptx.h (MAX_STACK_ALIGNMENT): Set.
9747 2015-08-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
9749 * config.build: Remove case for m68000-hp-hpux* | m68k-hp-hpux*.
9751 2015-08-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
9753 * configure.ac: Remove uwin* cases.
9754 * config.build: Remove cases for i370-*-opened*, i370-*-mvs*,
9755 i[34567]86-*-sco3.2v5*, i[34567]86-sequent-ptx4*,
9756 i[34567]86-sequent-sysv4*, i[34567]86-*-sysv4*,
9757 i[34567]86-*-udk*, i[34567]86-*-uwin*, i386-*-vsta.
9758 * config.host: Remove cases for i370-*-opened*, i370-*-mvs*,
9759 i[34567]86-*-uwin*, powerpc-*-beos*.
9761 2015-08-21 Richard Sandiford <richard.sandiford@arm.com>
9763 * gencodes.c (gencodes): Print the comma for the preceding
9764 enum value rather than the current one. Use aliased enum values
9765 rather than #defines for compiled-out patterns.
9766 (main): Update accordingly. Replace LAST_INSN_CODE with
9768 * lra.c (insn_code_data): Update accordingly.
9769 (finish_insn_code_data_once, get_static_insn_data): Likewise.
9770 * recog.h (target_recog): Likewise.
9771 (preprocess_insn_constraints): Change parameter to unsigned int.
9772 * recog.c (preprocess_insn_constraints): Likewise.
9773 (recog_init): Replace LAST_INSN_CODE with NUM_INSN_CODES.
9774 * tree-vect-stmts.c (vectorizable_operation): Simplify.
9776 2015-08-21 Markus Trippelsdorf <markus@trippelsdorf.de>
9778 PR rtl-optimization/61657
9779 * loop-iv.c (iv_number_of_iterations): Declare up and down as
9780 unsigned. Remove superflous uint64_t cast.
9782 2014-08-21 Felix Yang <felix.yang@huawei.com>
9783 Jiji Jiang <jiangjiji@huawei.com>
9785 * value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL
9786 argument and get builtin function code directly from CALL.
9787 (gimple_stringop_fixed_value): Modified accordingly.
9788 (gimple_stringops_transform, gimple_stringops_values_to_profile):
9789 Modified accordingly and only accept BUILT_IN_NORMAL string operations.
9791 2015-08-21 Dominik Vogt <vogt@linux.vnet.ibm.com>
9793 * config/s390/s390-builtins.def: Fix value range of vec_load_bndry.
9795 2015-08-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
9797 * fold-const.c (fold_binary_loc) : Move sqrt(x)*sqrt(x) as x
9799 Move Optimize pow(x,y)*pow(z,y) as pow(x*z,y)to match.pd.
9800 Move Optimize tan(x)*cos(x) as sin(x) to match.pd.
9801 Move Optimize x*pow(x,c) as pow(x,c+1) to match.pd.
9802 Move Optimize pow(x,c)*x as pow(x,c+1) to match.pd.
9803 Move Optimize sin(x)/cos(x) as tan(x) to match.pd.
9804 Move Optimize cos(x)/sin(x) as 1.0/tan(x) to match.pd.
9805 Move Optimize sin(x)/tan(x) as cos(x) to match.pd.
9806 Move Optimize tan(x)/sin(x) as 1.0/cos(x) to match.pd.
9807 Move Optimize pow(x,c)/x as pow(x,c-1) to match.pd.
9808 Move Optimize x/pow(y,z) into x*pow(y,-z) to match.pd.
9810 * match.pd (SIN ) : New Operator.
9811 (TAN) : New Operator.
9812 (mult (SQRT@1 @0) @1) : New simplifier.
9813 (mult (POW:s @0 @1) (POW:s @2 @1)) : New simplifier.
9814 (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
9815 (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
9816 (rdiv (SIN:s @0) (COS:s @0)) : New simplifier.
9817 (rdiv (COS:s @0) (SIN:s @0)) : New simplifier.
9818 (rdiv (SIN:s @0) (TAN:s @0)) : New simplifier.
9819 (rdiv (TAN:s @0) (SIN:s @0)) : New simplifier.
9820 (rdiv (POW:s @0 REAL_CST@1) @0) : New simplifier.
9821 (rdiv @0 (SQRT:s (rdiv:s @1 @2))) : New simplifier.
9822 (rdiv @0 (POW:s @1 @2)) : New simplifier.
9824 2015-08-21 Bin Cheng <bin.cheng@arm.com>
9826 * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break
9827 loop if EXPR is simplified to const value.
9829 2015-08-21 Yury Gribov <y.gribov@samsung.com>
9831 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
9832 BUILT_IN_UBSAN_HANDLE_NONNULL_ARG): Fix builtin types.
9834 2015-08-21 Richard Biener <rguenther@suse.de>
9837 * gimple-fold.c (replace_stmt_with_simplification): Assert
9838 seq is empty when replacing a call with itself but different
9840 * gimple-match-head.c (maybe_push_res_to_seq): When pushing
9841 a call require that it is const.
9843 2015-08-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9845 * defaults.h (CONSTANT_ALIGNMENT): New macro definition.
9846 * builtins.c (get_object_alignment_2): Adjust.
9847 * varasm.c (align_variable): Likewise.
9848 (get_variable_align): Likewise.
9849 (build_constant_desc): Likewise.
9850 (force_const_mem): Likewise.
9851 * doc/tm.texi.in: Likewise.
9852 * doc/tm.texi: Regenerate.
9854 2015-08-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9856 * genconfig.c (main): Always define HAVE_cc0.
9857 * recog.c (rest_of_handle_peephole2): Adjust.
9859 2015-08-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9861 * reorg.c (relax_delay_slots): Don't use #if to check value of
9864 2015-08-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9866 * genconfig.c (main): Always define HAVE_CONDITIONAL_EXECUTION.
9867 * targhooks.c (default_have_conditional_execution): Adjust.
9869 2015-08-20 Richard Sandiford <richard.sandiford@arm.com>
9871 * rtl.h (rtvec_all_equal_p): Declare.
9872 (const_vec_duplicate_p, unwrap_const_vec_duplicate): New functions.
9873 * rtl.c (rtvec_all_equal_p): New function.
9874 * expmed.c (expand_mult): Use unwrap_const_vec_duplicate.
9875 * config/aarch64/aarch64.c (aarch64_vect_float_const_representable_p)
9876 (aarch64_simd_dup_constant): Use const_vec_duplicate_p.
9877 * config/arm/arm.c (neon_vdup_constant): Likewise.
9878 * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Likewise.
9879 * config/tilegx/constraints.md (W, Y): Likewise.
9880 * config/tilepro/constraints.md (W, Y): Likewise.
9881 * config/spu/spu.c (spu_legitimate_constant_p): Likewise.
9882 (classify_immediate): Use unwrap_const_vec_duplicate.
9883 * config/tilepro/predicates.md (reg_or_v4s8bit_operand): Likewise.
9884 (reg_or_v2s8bit_operand): Likewise.
9885 * config/tilegx/predicates.md (reg_or_v8s8bit_operand): Likewise.
9886 (reg_or_v4s8bit_operand): Likewise.
9888 2015-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9890 * config/rs6000/altivec.h (vec_pmsum_be): New #define.
9891 (vec_shasigma_be): New #define.
9892 * config/rs6000/rs6000-builtin.def (VPMSUMB): New BU_P8V_AV2_2.
9893 (VPMSUMH): Likewise.
9894 (VPMSUMW): Likewise.
9895 (VPMSUMD): Likewise.
9896 (VPMSUM): New BU_P8V_OVERLOAD_2.
9897 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): New
9898 entries for VEC_MADD and VEC_VPMSUM.
9900 2015-08-20 Georg-Johann Lay <avr@gjlay.de>
9902 * config/avr/avr.c (avr_insert_attributes): In diagnostic essage:
9903 Multiply argument avr_n_flash by 64 to match unit of "KiB".
9904 (avr_pgm_check_var_decl): Same.
9906 2015-08-20 Alan Lawrence <alan.lawrence@arm.com>
9908 * config/arm/arm-builtins.c (arm_init_simd_builtin_types): Move
9909 initialization of HFmode scalar type (float16_t) to...
9910 (arm_init_fp16_builtins): ... Here. Combine with __fp16 initialization
9913 (arm_init_builtins): Call arm_init_fp16_builtins earlier and always.
9915 * config/arm/arm_neon.h (vcvt_f16_f32, vcvt_f32_f16): Condition on
9916 having an -mfp16-format.
9918 2015-08-20 Richard Sandiford <richard.sandiford@arm.com>
9920 * config/i386/predicates.md (vector_all_ones_operand): Use
9921 CONSTM1_RTX to simplify definition.
9923 2015-08-20 Richard Biener <rguenther@suse.de>
9925 * toplev.c (compile_file): Remove loop calling late_global_decl
9927 * varpool.c (varpool_node::assemble_decl): Call late_global_decl
9928 on decls we assembled.
9930 2015-08-20 James Greenhalgh <james.greenhalgh@arm.com>
9932 * common/config/aarch64/aarch64-common.c
9933 (AARCH64_CPU_NAME_LENGTH): Delete.
9934 (aarch64_option_extension): New.
9935 (all_extensions): Likewise.
9936 (processor_name_to_arch): Likewise.
9937 (arch_to_arch_name): Likewise.
9939 (all_architectures): Likewise.
9940 (aarch64_get_extension_string_for_isa_flags): Likewise.
9941 (aarch64_rewrite_selected_cpu): Change to rewrite CPU names to
9943 * config/aarch64/aarch64-protos.h
9944 (aarch64_get_extension_string_for_isa_flags): New.
9945 * config/aarch64/aarch64.c (aarch64_print_extension): Delete.
9946 (aarch64_option_print): Get the string to print from
9947 aarch64_get_extension_string_for_isa_flags.
9948 (aarch64_declare_function_name): Likewise.
9949 * config/aarch64/aarch64.h (BIG_LITTLE_SPEC): Rename to...
9950 (MCPU_TO_MARCH_SPEC): This.
9951 (ASM_CPU_SPEC): Use it.
9952 (BIG_LITTLE_SPEC_FUNCTIONS): Rename to...
9953 (MCPU_TO_MARCH_SPEC_FUNCTIONS): ...This.
9954 (EXTRA_SPEC_FUNCTIONS): Use it.
9956 2015-08-20 Simon Dardis <simon.dardis@imgtec.com>
9958 * config/mips/mips.c (mips_expand_block_move): Enable inline memcpy
9959 expansion when !ISA_HAS_LWL_LWR.
9960 (mips_block_move_straight): Update the size of elements copied to
9961 account for alignment when !ISA_HAS_LWL_LWR.
9962 * config/mips/mips.h (MIPS_MIN_MOVE_MEM_ALIGN): New macro.
9964 2015-08-19 Jiong Wang <jiong.wang@arm.com>
9966 * expr.c (expand_expr_real_2): Check gimple statement during
9969 2015-08-19 Magnus Granberg <zorry@gentoo.org>
9971 * common.opt (fstack-protector): Initialize to -1.
9972 (fstack-protector-all): Likewise.
9973 (fstack-protector-strong): Likewise.
9974 (fstack-protector-explicit): Likewise.
9975 * configure.ac: Add --enable-default-ssp.
9976 * defaults.h (DEFAULT_FLAG_SSP): New. Default SSP to strong.
9977 * opts.c (finish_options): Update opts->x_flag_stack_protect if it is
9979 * doc/install.texi: Document --enable-default-ssp.
9980 * config.in: Regenerated.
9981 * configure: Likewise.
9983 2015-08-19 Alexandre Oliva <aoliva@redhat.com>
9985 PR rtl-optimization/64164
9986 * cfgexpand.c (parm_maybe_byref_p): Renamed to...
9987 (parm_in_stack_slot_p): ... this. Disregard mode, what
9988 matters is whether the parm will live in a pseudo or a stack
9990 (expand_one_ssa_partition): Deal with params without a default
9991 def. Disregard mode.
9992 * cfgexpand.h: Renamed function declaration.
9993 * tree-ssa-coalesce.c: Adjust.
9994 * function.c (split_complex_args): Allocate stack slot for
9995 unassigned parms before splitting.
9996 (parm_in_unassigned_mem_p): New. Use it instead of
9997 parm_maybe_byref_p throughout this file.
9998 (assign_parm_setup_block): Use it. Accept pseudos in the
9999 expand-assigned rtl.
10000 (assign_parm_setup_reg): Drop BLKmode requirement.
10001 (assign_parm_setup_stack): Allocate and fill in the address of
10002 unassigned MEM parms.
10004 2015-08-19 David Sherwood <david.sherwood@arm.com>
10006 * genmodes.c (emit_mode_unit_size_inline): New function.
10007 (emit_mode_unit_precision_inline): New function.
10008 (emit_insn_modes_h): Emit new #define. Emit new functions.
10009 (emit_mode_unit_size): New function.
10010 (emit_mode_unit_precision): New function.
10011 (emit_mode_adjustments): Add mode_unit_size adjustments.
10012 (emit_insn_modes_c): Emit new arrays.
10013 * machmode.h (GET_MODE_UNIT_SIZE, GET_MODE_UNIT_PRECISION): Update to
10014 use new inline methods.
10016 2015-08-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10018 * config/aarch64/aarch64.c (bit_count): Delete prototype
10020 (aarch64_print_operand): Use popcount_hwi instead of the above.
10022 2015-08-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10024 * config/aarch64/aarch64-option-extensions.def: Delete obsolete
10027 2015-08-19 Marek Polacek <polacek@redhat.com>
10029 PR middle-end/67133
10030 * gimple-ssa-isolate-paths.c
10031 (insert_trap_and_remove_trailing_statements): Rename to ...
10032 (insert_trap): ... this. Don't remove trailing statements; split
10034 (find_explicit_erroneous_behaviour): Don't remove all outgoing edges.
10036 2015-08-19 Mikael Morin <mikael@gcc.gnu.org>
10039 * hwint.h (sext_hwi): Switch to unsigned for the left shift, and
10040 conditionalize the whole on __GNUC__. Add fallback code
10041 depending neither on undefined nor implementation-defined behaviour.
10043 2015-08-19 Jiong Wang <jiong.wang@arm.com>
10045 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Replace
10046 whitespaces with tab.
10048 2015-08-19 Florian Weimer <fweimer@redhat.com>
10050 * prj.adb (For_Every_Project_Imported_Context.Recursive_Check_Context):
10051 Move Name_Id_Set instantiation to the Prj package, to avoid trampolines.
10052 * prj-proc.adb (Process.Process_Expression_Variable_Decl):
10053 Move Name_Ids instantiation to the Prj.Proc package, to avoid
10056 2015-08-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10058 * config/arm/arm.c (bounds_check): Use %wd print format
10059 for HOST_WIDE_INT arguments.
10061 2015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org>
10063 * bb-reorder.c, cfgloop.h, collect2.c, combine.c, dse.c,
10064 dwarf2cfi.c, gcse-common.h, genopinit.c, ggc-page.c, machmode.h,
10065 mcf.c, modulo-sched.c, omp-low.c, read-rtl.c, sched-rgn.c,
10066 signop.h, tree-call-cdce.c, tree-dfa.c, tree-diagnostic.c,
10067 tree-inline.h, tree-scalar-evolution.c, tree-ssa-address.c,
10068 tree-ssa-loop-niter.c, tree-ssa-loop.h, tree-ssa-pre.c,
10069 tree-ssa-reassoc.c, tree-ssa-sccvn.h, tree-ssa-structalias.c,
10070 tree-ssa-uninit.c, tree-ssa.h, tree-vect-loop-manip.c,
10071 tree-vectorizer.h, tree-vrp.c, var-tracking.c: Remove useless
10074 2015-08-18 trevor Saunders <tbsaunde@tbsaunde.org>
10076 * bt-load.c, cgraph.h, dwarf2out.c, dwarf2out.h, final.c,
10077 function.c, graphite-scop-detection.c, haifa-sched.c,
10078 ipa-devirt.c, ipa-split.c, recog.c, ree.c, stmt.c,
10079 tree-data-ref.c, tree-ssa-dom.c, tree-ssa-loop-ivopts.c,
10080 varasm.c: Remove typedefs of structs.
10082 2015-08-18 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
10084 * config/rs6000/altivec.h (vec_adde): New define.
10085 (vec_addec): Likewise.
10086 (vec_double): Likewise.
10087 (vec_bperm): Likewise.
10088 (vec_gb): Likewise.
10089 * config/rs6000/rs6000-builtin.def (ADDE): New
10090 BU_ALTIVEC_OVERLOAD_3.
10092 (DOUBLE): New BU_VSX_OVERLOAD_1.
10093 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add new
10094 entries for ALTIVEC_BUILTIN_VEC_ADDC, ALTIVEC_BUILTIN_VEC_ADDE,
10095 ALTIVEC_BUILTIN_VEC_ADDEC, ALTIVEC_BUILTIN_VEC_ANDC,
10096 VSX_BUILTIN_VEC_DOUBLE, ALTIVEC_BUILTIN_VEC_MERGEH,
10097 ALTIVEC_BUILTIN_VEC_MERGEL, ALTIVEC_BUILTIN_VEC_NOR,
10098 ALTIVEC_BUILTIN_VEC_OR, ALTIVEC_BUILTIN_VEC_XOR,
10099 ALTIVEC_BUILTIN_VEC_PERM, ALTIVEC_BUILTIN_VEC_SEL,
10100 P8V_BUILTIN_VEC_EQV, P8V_BUILTIN_VEC_NAND, P8V_BUILTIN_VEC_ORC,
10101 and P8V_BUILTIN_VEC_VBPERMQ.
10103 2015-08-18 Jason Merrill <jason@redhat.com>
10105 * print-tree.c (print_node): Handle TREE_BINFO.
10107 2015-08-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
10109 PR middle-end/36757
10110 * builtins.c (expand_builtin_signbit): Add asserts to make sure
10111 we can expand BUILT_IN_SIGNBIT inline.
10112 * builtins.def (BUILT_IN_SIGNBIT): Make type-generic.
10113 * doc/extend.texi: Document the type-generic __builtin_signbit.
10115 2015-08-18 Richard Sandiford <richard.sandiford@arm.com>
10117 PR rtl-optimization/67218
10118 * simplify-rtx.c (exact_int_to_float_conversion_p): New function.
10119 (simplify_unary_operation_1): Use it.
10121 2015-08-18 Marek Polacek <polacek@redhat.com>
10123 PR middle-end/67222
10124 * gimple-low.c (lower_stmt): Don't lower BUILT_IN_POSIX_MEMALIGN
10125 if the call isn't valid.
10126 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check builtins using
10127 gimple_call_builtin_p.
10128 (call_may_clobber_ref_p_1): Likewise.
10129 (stmt_kills_ref_p): Likewise.
10131 2015-08-18 Robert Suchanek <robert.suchanek@imgtec.com>
10133 * config/mips/mips-protos.h (mips_hard_regno_rename_ok): New prototype.
10134 * config/mips/mips.c (mips_hard_regno_rename_ok): New function.
10135 (mips_hard_regno_scratch_ok): Likewise.
10136 (TARGET_HARD_REGNO_SCRATCH_OK): Define macro.
10137 * config/mips/mips.h (HARD_REGNO_RENAME_OK): New.
10139 2015-08-18 Bin Cheng <bin.cheng@arm.com>
10141 * tree-ssa-loop-niter.c (refine_value_range_using_guard): New.
10142 (determine_value_range): Call refine_value_range_using_guard for
10143 each loop initial condition to improve value range.
10145 2015-08-17 Aldy Hernandez <aldyh@redhat.com>
10147 * config/i386/i386.c: Remove include of fibheap.h.
10149 2015-08-17 Richard Biener <rguenther@suse.de>
10151 PR tree-optimization/67221
10152 * tree-ssa-sccvn.c (visit_phi): Keep all-TOP args TOP.
10153 (sccvn_dom_walker::before_dom_children): Mark backedges of
10154 non-executable blocks as not executable.
10156 2015-08-17 David Sherwood <david.sherwood@arm.com>
10158 * config/arm/arm.c (neon_element_bits): Replace call to
10159 GET_MODE_BITSIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_BITSIZE (m).
10160 * config/arm/neon.md (neon_vget_lane<mode>): Likewise.
10161 (neon_vget_laneu<mode>, neon_vset_lane<mode>): Likewise
10162 (neon_vdup_lane<mode>): Likewise.
10163 * config/i386/i386.c (ix86_expand_int_vcond): Likewise.
10164 (ix86_expand_multi_arg_builtin, ix86_expand_reduc): Likewise.
10165 (expand_vec_perm_palignr, ix86_expand_sse2_abs): Likewise.
10166 * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
10167 * config/spu/spu.c (arith_immediate_p): Likewise.
10168 * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
10169 * expr.c (expand_expr_real_2): Likewise.
10170 * optabs.c (shift_amt_for_vec_perm_mask): Likewise.
10171 * simplify-rtx.c (simplify_immed_subreg): Likewise.
10172 * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
10173 * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Likewise.
10175 * fold-const.c (fold_binary_loc): Replace call to
10176 GET_MODE_PRECISION (GET_MODE_INNER (m)) with
10177 GET_MODE_UNIT_PRECISION (m).
10179 2015-08-17 Mike Stump <mikestump@comcast.net>
10181 * config/arm/arm.c (arm_block_move_unaligned_straight):
10182 Emit normal move instead of unaligned load when source or destination
10183 are appropriately aligned.
10185 2015-08-17 Richard Biener <rguenther@suse.de>
10186 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
10188 PR middle-end/16107
10189 * match.pd (div (coss (op @0) : New simplifier.
10191 2015-08-14 Alexandre Oliva <aoliva@redhat.com>
10193 PR rtl-optimization/64164
10195 PR middle-end/66983
10196 PR rtl-optimization/67000
10197 PR middle-end/67034
10198 PR middle-end/67035
10199 * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
10200 * tree-ssa-copyrename.c: Removed.
10201 * opts.c (default_options_table): Drop -ftree-copyrename. Add
10202 -ftree-coalesce-vars.
10203 * passes.def: Drop all occurrences of pass_rename_ssa_copies.
10204 * common.opt (ftree-copyrename): Ignore.
10205 (ftree-coalesce-inlined-vars): Likewise.
10206 * doc/invoke.texi: Remove the ignored options above.
10207 * gimple-expr.h (gimple_can_coalesce_p): Move declaration
10208 * tree-ssa-coalesce.h: ... here.
10209 * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
10210 headers required by it.
10211 * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
10212 across variables when flag_tree_coalesce_vars. Check register
10213 use and promoted modes to allow coalescing. Do not coalesce
10214 maybe-byref parms with SSA_NAMEs of other variables, or
10215 anonymous SSA_NAMEs. Moved to tree-ssa-coalesce.c.
10216 * tree-ssa-live.c (struct tree_int_map_hasher): Move along
10217 with its member functions to tree-ssa-coalesce.c.
10218 (var_map_base_init): Likewise. Renamed to
10219 compute_samebase_partition_bases.
10220 (partition_view_normal): Drop want_bases parameter.
10221 (partition_view_bitmap): Likewise.
10222 * tree-ssa-live.h: Adjust declarations.
10223 * tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
10224 (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
10225 default defs at the entry point.
10226 (dump_part_var_map): New.
10227 (compute_optimized_partition_bases): New, called by...
10228 (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
10229 of compute_samebase_partition_bases. Adjust.
10230 * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
10231 * cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
10232 (ssa_default_def_partition): New.
10233 (get_rtl_for_parm_ssa_default_def): New.
10234 (align_local_variable, add_stack_var): Support anonymous SSA
10236 (defer_stack_allocation): Likewise. Declare earlier.
10237 (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
10238 vars. Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
10239 Do no record deferred-allocation marker in
10240 SA.partition_to_pseudo.
10241 (expand_stack_vars): Adjust check for the marker in it.
10242 (expand_one_stack_var_at): Handle anonymous SSA_NAMEs. Drop
10243 redundant MEM attr setting.
10244 (expand_one_stack_var_1): Handle anonymous SSA_NAMEs. Renamed
10246 (expand_one_stack_var): ... this. New wrapper to check and
10247 skip already expanded SSA partitions.
10248 (record_alignment_for_reg_var): New, factored out of...
10249 (expand_one_var): ... this.
10250 (expand_one_ssa_partition): New.
10251 (adjust_one_expanded_partition_var): New.
10252 (expand_one_register_var): Check and skip already expanded SSA
10254 (expand_used_vars): Don't create DECLs for anonymous SSA
10255 names. Expand all SSA partitions, then adjust all SSA names.
10256 (pass::execute): Replace the loops that set
10257 SA.partition_to_pseudo from partition leaders and cleared
10258 DECL_RTL for multi-location variables, and that which used to
10259 rename vars and set attrs, with one that clears DECL_RTL and
10260 checks that PARMs and RESULTs default_defs match DECL_RTL.
10261 * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
10262 * emit-rtl.c: Include stor-layout.h.
10263 (set_reg_attrs_for_parm): Handle NULL decl.
10264 (set_reg_attrs_for_decl_rtl): Take mode from expression if
10266 * stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
10267 rather than its possibly-NULL DECL.
10268 * explow.c (promote_ssa_mode): New.
10269 * explow.h (promote_ssa_mode): Declare.
10270 * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
10271 (read_complex_part): Export.
10272 * expr.h (read_complex_part): Declare.
10273 * cfgexpand.h (parm_maybe_byref_p): Declare.
10274 * function.c: Include cfgexpand.h.
10275 (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
10276 (use_register_for_parm_decl): Wrapper for the above to
10277 special-case the result_ptr.
10278 (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
10279 (split_complex_args): Take assign_parm_data_all argument.
10280 Pass it to rtl_for_parm. Set up rtl and context for split
10281 args. Reset complex parm before fetching its default decl
10283 (assign_parms_unsplit_complex): Use the default-def complex
10284 parm rtl if it matches the components.
10285 (assign_parms_augmented_arg_list): Adjust.
10286 (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
10287 multiple locations. Recognize split complex args.
10288 (assign_parm_adjust_stack_rtl): Add all and parm arguments,
10289 for rtl_for_parm. For SSA-assigned parms, zero stack_parm.
10290 (assign_parm_setup_block): Prefer SSA-assigned location, and
10291 fill in its address if the memory location of a maybe-byref
10292 parm was not assigned by cfgexpand.
10293 (assign_parm_setup_reg): Likewise. Adjust its mode as
10294 needed. Use entry_parm for equiv if stack_parm is NULL. Make
10295 sure passed_pointer parms don't need conversion. Copy address
10296 or value as needed.
10297 (assign_parm_setup_stack): Prefer SSA-assigned location.
10298 (assign_parms): Maybe reset DECL_RTL of params. Adjust stack
10299 rtl before testing for pointer bounds. Special-case result_ptr.
10300 (expand_function_start): Maybe reset DECL_RTL of result.
10301 Prefer SSA-assigned location for result and static chain.
10302 Factor out DECL_RESULT and SET_DECL_RTL. Convert static chain
10303 to Pmode if needed, from H.J. Lu <hongjiu.lu@intel.com>.
10304 * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
10305 anonymous SSA names. Use promote_ssa_mode.
10306 (get_temp_reg): Likewise.
10307 (remove_ssa_form): Adjust.
10308 * stor-layout.c (layout_decl): Don't set mem attributes of
10310 * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
10311 and get its reg_usage for reg invalidation.
10312 (compute_bb_dataflow): Pass it insn.
10313 (emit_notes_in_bb): Likewise.
10315 2015-08-14 Marek Polacek <polacek@redhat.com>
10317 * tree-core.h (tree_base): Fix typo.
10319 2015-08-14 Marek Polacek <polacek@redhat.com>
10321 PR middle-end/67133
10322 * gimple.c (infer_nonnull_range_by_attribute): Check that the
10323 nonnull argument position is not outside function arguments.
10325 2015-08-14 Matthew Wahab <matthew.wahab@arm.com>
10328 * config/aarch64/atomics.md (atomic_<optab><mode>): Replace
10329 'lconst_atomic' with 'const_atomic'.
10330 (atomic_fetch_<optab><mode>): Likewise.
10331 (atomic_<optab>_fetch<mode>): Likewise.
10332 * config/aarch64/iterators.md (lconst-atomic): Move below
10334 (const_atomic): New.
10336 2015-08-14 Thomas Schwinge <thomas@codesourcery.com>
10337 Bernd Schmidt <bernds@codesourcery.com>
10339 * config/nvptx/nvptx.c (nvptx_option_override): Don't override
10341 * config/nvptx/nvptx.h (DWARF2_LINENO_DEBUGGING_INFO): Define.
10342 (DWARF2_DEBUGGING_INFO): Don't define.
10343 * debug.h (dwarf2_lineno_debug_hooks): Declare.
10344 * toplev.c (process_options): Add a case for it.
10345 * dwarf2out.c (dwarf2_lineno_debug_hooks): New variable.
10346 (dwarf2out_init): Skip most initializations if
10347 DWARF2_LINENO_DEBUGGING_INFO, but set cur_line_info_table in that
10349 * defaults.h (PREFERRED_DEBUGGING_TYPE): Also use DWARF2_DEBUG if
10350 DWARF2_LINENO_DEBUGGING_INFO.
10351 * opts.c (set_debug_level): Likewise.
10353 2015-08-14 James Greenhalgh <james.greenhalgh@arm.com>
10355 * config/arm/types.md (is_neon_type): Add missing types.
10357 2015-08-14 Yuri Rumyantsev <ysrumyan@gmail.com>
10359 * config/i386/driver-i386.c (host_detect_local_cpu): Add support
10361 * config/i386/i386.c (PTA_SKYLAKE): New macros.
10362 (processor_alias_table): Add skylake description.
10363 (enum processor_model): Add skylake processor.
10364 (arch_names_table): Add skylake record.
10365 * doc/invoke.texi: Add skylake item.
10367 2015-08-13 Andrew MacLeod <amacleod@redhat.com>
10369 * ira-int.h: Include recog.h.
10370 * ira-build.c: Don't include recog.h.
10371 * ira-color.c: Likewise.
10372 * ira-conflicts.c: Likewise.
10373 * ira-costs.c: Likewise.
10374 * ira-emit.c: Likewise.
10375 * ira-lives.c: Likewise.
10377 * sched-deps.c: Likewise.
10378 * sel-sched.c: Likewise.
10379 * target-globals.c: Likewise.
10381 2015-08-13 Richard Sandiford <richard.sandiford@arm.com>
10384 * reload1.c (elimination_costs_in_insn): Make it obvious to the
10385 compiler that the n_dups and n_operands loop bounds are invariant.
10387 2015-08-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10389 * ifcvt.c (noce_try_store_flag_constants): Handle PLUS-immediate
10390 expressions in A and B.
10392 2015-08-13 Richard Biener <rguenther@suse.de>
10394 * tree.c (nonnull_arg_p): Move from ...
10395 * tree-vrp.c (nonnull_arg_p): ... here.
10396 * tree.h (nonnull_arg_p): Declare.
10397 * tree-ssa-sccvn.c (init_scc_vn): Perform all lattice init
10398 here, register ptr != 0 for nonnull_arg_p pointer arguments.
10399 Properly initialize static chain and by-reference result pointer.
10400 (run_scc_vn): Adjust.
10402 2015-08-13 Robert Suchanek <robert.suchanek@imgtec.com>
10404 * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Enable load/store pairs for
10407 2015-08-13 Matthew Wahab <matthew.wahab@arm.com>
10409 * config/aarch64/aarch64-protos.h
10410 (aarch64_gen_atomic_cas): Declare.
10411 * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):
10412 Choose appropriate instruction pattern for the target.
10413 (aarch64_gen_atomic_cas): New.
10414 * config/aarch64/atomics.md (UNSPECV_ATOMIC_CAS): New.
10415 (atomic_compare_and_swap<mode>_1): Rename to
10416 aarch64_compare_and_swap<mode>. Fix some indentation.
10417 (aarch64_compare_and_swap<mode>_lse): New.
10418 (aarch64_atomic_cas<mode>): New.
10420 2015-08-13 Matthew Wahab <matthew.wahab@arm.com>
10422 * config/aarch64/aarch64.h (AARCH64_ISA_LSE): New.
10425 2015-08-13 Richard Biener <rguenther@suse.de>
10427 PR tree-optimization/67191
10428 * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Remove
10429 assert we value-numbered last stmts operand because it can validly
10430 trigger for unreachable code.
10432 2015-08-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10434 PR rtl-optimization/67103
10435 * ifcvt.c (noce_try_store_flag_constants): Move
10436 x = (-(test != 0) & (b - a)) + a transformation to...
10437 (noce_try_cmove): ... Here. Try it if normal conditional
10440 2015-08-13 Robert Suchanek <robert.suchanek@imgtec.com>
10442 * config/mips/mips.c (mips_rtx_cost_data): Remove costs for W32 and W64
10444 * config/mips/mips.md (processor): Remove w32 and w64.
10446 2015-08-13 Richard Biener <rguenther@suse.de>
10448 PR tree-optimization/66502
10449 PR tree-optimization/67167
10450 * tree-ssa-sccvn.c (vn_phi_compute_hash): Do not include
10451 backedge arguments.
10452 (vn_phi_lookup): Adjust.
10453 (vn_phi_insert): Likewise.
10454 (visit_phi): Prefer to value-number to another PHI node
10455 over value-numbering to a PHI argument.
10456 (init_scc_vn): Mark DFS back edges.
10458 2015-08-13 Richard Biener <rguenther@suse.de>
10460 * gimple.h (gcall::code_): New constant static member.
10461 (gcond::code_): Likewise.
10462 * gimple.c (gcall::code_): Define.
10463 (gcond::code_): Likewise.
10464 (is_a_helper <const gcond *>): Add.
10465 (gimple_call_lhs): Use GIMPLE_CHECK2 in the gimple overload
10466 and forward to a new gcall overload with less checking and a
10467 cheaper way to access the operand.
10468 (gimple_call_lhs_ptr): Likewise.
10469 (gimple_call_set_lhs): Likewise.
10470 (gimple_call_internal_p): Likewise.
10471 (gimple_call_with_bounds_p): Likewise.
10472 (gimple_call_set_with_bounds): Likewise.
10473 (gimple_call_internal_fn): Likewise.
10474 (gimple_call_set_ctrl_altering): Likewise.
10475 (gimple_call_ctrl_altering_p): Likewise.
10476 (gimple_call_fntype): Likewise.
10477 (gimple_call_fn): Likewise.
10478 (gimple_call_fn_ptr): Likewise.
10479 (gimple_call_set_fndecl): Likewise.
10480 (gimple_call_fndecl): Likewise.
10481 (gimple_call_chain): Likewise.
10482 (gimple_call_num_args): Likewise.
10483 (gimple_call_arg): Likewise.
10484 (gimple_call_arg_ptr): Likewise.
10485 (gimple_call_set_arg): Likewise.
10486 (gimple_call_noreturn_p): Likewise.
10487 (gimple_cond_code): Likewise.
10488 (gimple_cond_lhs): Likewise.
10489 (gimple_cond_rhs): Likewise.
10490 (gimple_has_lhs): Reduce checking.
10492 2015-08-13 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
10494 PR middle-end/25529
10495 * match.pd (div (mult @0 @1) @1) : New simplifier.
10497 2015-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
10500 * config/rs6000/predicates.md (easy_vector_constant_vsldoi): New
10501 predicate to allow construction of vector constants using the
10502 VSLDOI vector shift instruction.
10504 * config/rs6000/rs6000-protos.h (vspltis_shifted): Add
10507 * config/rs6000/rs6000.c (vspltis_shifted): New function to return
10508 the number of bytes to be shifted left and filled in with either
10509 all zero or all one bits.
10510 (gen_easy_altivec_constant): Call vsplitis_shifted if no other
10512 (output_vec_const_move): On power8, generate XXLORC to generate
10513 a vector constant with all 1's. Do a split if we need to use a
10514 VSLDOI instruction.
10516 * config/rs6000/rs6000.h (EASY_VECTOR_MSB): Use mode mask to
10517 properly test for the MSB.
10519 * config/rs6000/altivec.md (VSLDOI splitter): Add splitter for
10520 vector constants that can be created with VSLDOI.
10522 2015-08-11 Trevor Saunders <tbsaunde@tbsaunde.org>
10525 * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
10526 gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
10527 ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
10528 omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
10529 tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
10530 tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
10531 tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
10532 tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
10533 vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
10535 2015-08-12 Max Filippov <jcmvbkbc@gmail.com>
10537 * config/xtensa/constraints.md (define_constraint "Y"): New
10539 * config/xtensa/elf.h (ASM_SPEC): Add m(no-)auto-litpools.
10540 * config/xtensa/linux.h (ASM_SPEC): Likewise.
10541 * config/xtensa/predicates.md (move_operand): Match constants
10542 and symbols in the presence of TARGET_AUTO_LITPOOLS.
10543 * config/xtensa/xtensa.c (xtensa_valid_move): Don't allow
10544 immediate references to TLS data.
10545 (xtensa_emit_move_sequence): Don't force constants to memory in
10546 the presence of TARGET_AUTO_LITPOOLS.
10547 (print_operand): Add 'y' format, same as default, but capable of
10548 printing SF mode constants as well.
10549 * config/xtensa/xtensa.md (movsi_internal, movhi_internal)
10550 (movsf_internal): Add movi pattern that loads literal.
10551 (movsf, movdf): Don't force constants to memory in the presence
10552 of TARGET_AUTO_LITPOOLS.
10553 (movdf_internal): Add 'Y' constraint.
10554 * config/xtensa/xtensa.opt (mauto-litpools): New option.
10555 * doc/invoke.text (Xtensa options): Document -mauto-litpools.
10557 2015-08-12 Matthew Wahab <matthew.wahab@arm.com>
10559 * config/arm/arm-fpus.def: Replace booleans with feature flags.
10561 * config/arm/arm.c (ARM_FPU): Update macro.
10562 * config/arm/arm.h (TARGET_NEON_FP16): Update feature test.
10563 (TARGET_FP16): Likewise.
10564 (TARGET_CRYPTO): Likewise.
10565 (TARGET_NEON): Likewise.
10566 (struct arm_fpu_desc): Remove fields neon, fp16 and crypto. Add
10569 2015-08-12 Tom de Vries <tom@codesourcery.com>
10573 * doc/install.texi: Remove --with_host_libstdcxx item. Update
10574 --with-stage1-libs, --with-boot-ldflags and --with-boot-libs items
10575 accordingly. Mention default for --with-stage1-ldflags.
10577 2015-08-12 Matthew Wahab <matthew.wahab@arm.com>
10579 * config/arm/arm.h (arm_fpu_feature_set): New.
10580 (ARM_FPU_FSET_HAS): New.
10581 (FPU_FL_NONE): New.
10582 (FPU_FL_NEON): New.
10583 (FPU_FL_FP16): New.
10584 (FPU_FL_CRYPTO): New.
10586 2015-08-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10588 * config/aarch64/aarch64.c (initialize_aarch64_code_model): Break
10589 after -mcmodel=large -fPIC sorry.
10591 2015-08-12 Richard Biener <rguenther@suse.de>
10593 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Also canonicalize
10594 comparison operand order and commutative ternary op operand order.
10595 (sccvn_dom_walker::cond_stack): New state to track temporary
10597 (sccvn_dom_walker::after_dom_children): Remove tempoary expressions
10599 (sccvn_dom_walker::record_cond): Add a single temporary conditional
10601 (sccvn_dom_walker::record_conds): Add a temporary conditional
10602 expressions and all related expressions also true/false.
10603 (sccvn_dom_walker::before_dom_children): Record temporary
10604 expressions based on the controlling condition of a single
10605 predecessor. When trying to simplify a conditional statement
10606 lookup expressions we might have inserted earlier.
10608 2015-08-12 Yvan Roux <yvan.roux@linaro.org>
10611 * config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking
10612 to ARM core registers.
10614 2015-08-12 Nathan Sidwell <nathan@acm.org>
10616 * tree-vrp.c (simplify_min_or_max_using_ranges): New.
10617 (simplify_stmt_using_ranges): Simplify MIN and MAX exprs.
10619 2015-08-12 Simon Dardis <simon.dardis@imgtec.com>
10621 * config/mips/mips.c (mips_store_data_bypass_p): Bring code into
10622 line with comments.
10623 * config/mips/sb1.md: Update usage of mips_store_data_bypass_p.
10625 2015-08-12 Richard Biener <rguenther@suse.de>
10627 * gimple.h (remove_pointer): New trait.
10628 (GIMPLE_CHECK2): New inline template function.
10629 (gassign::code_): New constant static member.
10630 (is_a_helper<const gassign *>): Add.
10631 (gimple_assign_lhs): Use GIMPLE_CHECK2 in the gimple overload
10632 and forward to a new gassign overload with less checking and a
10633 cheaper way to access the operand.
10634 (gimple_assign_lhs_ptr): Likewise.
10635 (gimple_assign_set_lhs): Likewise.
10636 (gimple_assign_rhs1, gimple_assign_rhs1_ptr, gimple_assign_set_rhs1):
10638 (gimple_assign_rhs2, gimple_assign_rhs2_ptr, gimple_assign_set_rhs2):
10640 (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3):
10642 (gimple_assign_rhs_code): Likewise.
10643 * gimple.c (gassign::code_): Define.
10645 2015-08-12 Richard Biener <rguenther@suse.de>
10647 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
10648 Eliminate edges marked as not executable by SCCVN.
10649 * tree-ssa-sccvn.c: Include gimple-iterator.h.
10650 (cond_dom_walker): Rename to sccvn_dom_walker.
10651 (sccvn_dom_walker::before_dom_children): Value-number defs
10653 (run_scc_vn): Remove loop value-numbering all SSA names.
10654 Drop not visited SSA names to varying.
10656 2015-08-11 Trevor Saunders <tbsaunde@tbsaunde.org>
10658 * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
10659 gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
10660 ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
10661 omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
10662 tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
10663 tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
10664 tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
10665 tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
10666 vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
10668 2015-08-11 Uros Bizjak <ubizjak@gmail.com>
10671 * config/i386/i386.c (get_builtin_code_for_version): Add P_PCLMUL
10672 to enum feature_priority and feature_list.
10673 (fold_builtin_cpu): Add F_PCLMUL to enum processor_features
10674 and isa_names_table.
10676 2015-08-11 Yuri Rumyantsev <ysrumyan@gmail.com>
10678 * tree-vect-stmts.c (vectorizable_shift): Add missed test on
10679 vect_induction_def.
10681 2015-08-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
10685 * diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
10686 account when deciding what was the command-line status.
10688 2015-08-11 Nathan Sidwell <nathan@acm.org>
10690 * tree-vrp.c (simplify_abs_using_ranges): Simplify.
10692 * tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if
10693 we're not the only contributor to target phi.
10695 2015-08-11 Jiong Wang <jiong.wang@arm.com>
10697 * config/aarch64/aarch64.h (REG_CLASS_NAMES): Add the missing ',' after
10700 2015-08-11 Tom de Vries <tom@codesourcery.com>
10702 * tree-cfg.c (move_sese_region_to_fn): Add todo comment.
10704 2015-08-10 H.J. Lu <hongjiu.lu@intel.com>
10706 * config/i386/i386.c (processor_alias_table): Replace CPU_KNL
10708 * config/i386/i386.md (cpu): Remove knl.
10710 2015-08-10 Thomas Schwinge <thomas@codesourcery.com>
10713 PR middle-end/66332
10714 * builtins.c (expand_builtin_acc_on_device) [ACCEL_COMPILER]: Emit
10715 open-coded sequence.
10716 * omp-low.c (oacc_process_reduction_data): Remove handline of
10717 GOMP_DEVICE_HOST_NONSHM.
10719 * lto-streamer-in.c (lto_input_mode_table): Adjust to
10720 GET_MODE_INNER changes.
10722 2015-08-10 Thomas Schwinge <thomas@codesourcery.com>
10723 Ilya Verbin <ilya.verbin@intel.com>
10725 * lto-streamer-in.c (lto_input_mode_table): Correctly advance iterator.
10727 2015-08-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
10729 * doc/options.texi (EnabledBy): Document that the argument must be
10731 * doc/invoke.texi (Wnull-dereference): Move after Wnonnull.
10732 Not enabled by -Wall.
10733 * optc-gen.awk: Give nicer error messages. Detect if the argument
10734 of EnabledBy is not a Common option.
10735 * common.opt (Wnull-dereference): Not enabled by -Wall.
10736 * opt-functions.awk (lang_enabled_by): Nicer error messages.
10738 2015-08-09 H.J. Lu <hongjiu.lu@intel.com>
10740 * config/i386/driver-i386.c (host_detect_local_cpu): Treat
10741 model == 0x4f as Broadwell.
10743 2015-08-08 Segher Boessenkool <segher@kernel.crashing.org>
10745 PR rtl-optimization/67028
10746 * combine.c (simplify_comparison): Fix comment. Rearrange code.
10747 Add test to see if a const_int fits in the new mode.
10749 2015-08-07 DJ Delorie <dj@redhat.com>
10751 * config/rx/rx.c (rx_mode_dependent_address_p): Remove unneeded asserts.
10753 2015-08-07 H.J. Lu <hongjiu.lu@intel.com>
10755 PR rtl-optimization/67029
10756 * ira-color.c: Include "recog.h" before including "ira-int.h".
10757 * target-globals.c: Likewise.
10758 * ira-lives.c (ira_implicitly_set_insn_hard_regs): Add an
10759 adds an alternative_mask argument and use it instead of
10760 preferred_alternatives.
10761 * ira.h (ira_implicitly_set_insn_hard_regs): Moved to ...
10762 * ira-int.h (ira_implicitly_set_insn_hard_regs): Here.
10763 * sched-deps.c: Include "ira-int.h" after including "ira.h".
10764 (sched_analyze_insn): Update call to
10765 ira_implicitly_set_insn_hard_regs.
10766 * sel-sched.c: Include "ira-int.h" after including "ira.h".
10767 (implicit_clobber_conflict_p): Update call to
10768 ira_implicitly_set_insn_hard_regs.
10770 2015-08-06 Uros Bizjak <ubizjak@gmail.com>
10772 * Makefile.in (.INTERMEDIATE): Add gpl.pod.
10774 2015-08-07 Kaz Kojima <kkojima@gcc.gnu.org>
10777 * config/sh/sh.c (sh_recog_treg_set_expr): Return false when
10778 currently_expanding_to_rtl is set.
10780 2015-08-06 Yaakov Selkowitz <yselkowi@redhat.com>
10782 * configure.ac: Define LIBICONV_DEP with in-tree libiconv.
10783 * configure: Regenerate.
10785 2015-08-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10786 Jiong Wang <jiong.wang@arm.com>
10788 * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
10789 * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
10790 (REG_CLASS_NAMES): Likewise.
10791 (REG_CLASS_CONTENTS): Likewise.
10792 * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
10793 (aarch64_register_move_cost): Likewise.
10794 (aarch64_load_symref_appropriately): Invoke the new added pattern if
10796 * config/aarch64/constraints.md (Uc0): New constraint.
10798 2015-08-06 Jiong Wang <jiong.wang@arm.com>
10800 * config/aarch64/constraints.md (Usf): Add the test of
10801 aarch64_is_noplt_call_p.
10803 2015-08-06 Jiong Wang <jiong.wang@arm.com>
10805 * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New
10807 * config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function.
10808 * config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios.
10809 (call_symbol): Likewise.
10811 2015-08-06 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
10813 * tree-vect-patterns.c (vect_recog_mult_pattern): New function
10814 for vectorizing multiplication patterns.
10815 * tree-vectorizer.h: Adjust the number of patterns.
10817 2015-08-06 Uros Bizjak <ubizjak@gmail.com>
10819 * config/i386/sse.md (*vec_concatv2df): Declare added
10820 alternatives as sselog type.
10822 2015-08-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10824 * config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for
10827 2015-08-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10829 * config/s390/s390.c (s390_expand_tbegin): Expand either
10830 tbegin_1_z13 or tbegin_1 depending on VX flag.
10831 * config/s390/s390.md ("tbegin_1_z13"): New expander.
10833 2015-08-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10835 * config/s390/s390.opt: Clarify description for -mzvector
10836 * doc/invoke.texi: Add documentation for -mhtm, -mvx, and
10839 2015-08-06 Richard Biener <rguenther@suse.de>
10841 * gimple.h (gimple_call_set_fn): Access op member directly.
10842 (gimple_call_chain_ptr): Likewise.
10843 (gimple_call_set_chain): Likewise.
10844 (gimple_cond_lhs_ptr): Likewise.
10845 (gimple_cond_set_lhs): Likewise.
10846 (gimple_cond_rhs_ptr): Likewise.
10847 (gimple_cond_set_rhs): Likewise.
10848 (gimple_cond_true_label): Likewise.
10849 (gimple_cond_set_true_label): Likewise.
10850 (gimple_cond_set_false_label): Likewise.
10851 (gimple_cond_false_label): Likewise.
10852 (gimple_label_label): Likewise.
10853 (gimple_label_set_label): Likewise.
10854 (gimple_goto_set_dest): Likewise.
10855 (gimple_asm_input_op): Likewise.
10856 (gimple_asm_input_op_ptr): Likewise.
10857 (gimple_asm_set_input_op): Likewise.
10858 (gimple_asm_output_op): Likewise.
10859 (gimple_asm_output_op_ptr): Likewise.
10860 (gimple_asm_set_output_op): Likewise.
10861 (gimple_asm_clobber_op): Likewise.
10862 (gimple_asm_set_clobber_op): Likewise.
10863 (gimple_asm_label_op): Likewise.
10864 (gimple_asm_set_label_op): Likewise.
10865 (gimple_switch_index): Likewise.
10866 (gimple_switch_index_ptr): Likewise.
10867 (gimple_return_retval_ptr): Likewise.
10868 (gimple_return_retval): Likewise.
10869 (gimple_return_set_retval): Likewise.
10870 (gimple_switch_set_index): Likewise. Remove superfluous GIMPLE_CHECK.
10871 (gimple_switch_label): Likewise.
10872 (gimple_switch_set_label): Likewise.
10874 2015-08-06 Richard Biener <rguenther@suse.de>
10876 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify
10877 bool comparison canonicalization and restrict to integers.
10879 2015-08-05 Andrew MacLeod <amacleod@redhat.com>
10881 * coretypes.h (enum symbol_visibility): Relocate here.
10882 * flag-types.h (enum symbol_visibility): Remove.
10883 * tree-core.h (enum symbol_visibility): Remove.
10885 2015-08-05 Lynn Boger <laboger@linux.vnet.ibm.com>
10888 * gcc/config/rs6000/rs6000.c (rs6000_emit_prologue): Check
10889 for no_split_stack function attribute along with
10891 (rs6000_expand_split_stack_prologue): Likewise.
10893 2015-08-05 Manuel López-Ibáñez <manu@gcc.gnu.org>
10894 Jeff Law <law@redhat.com>
10897 * doc/invoke.texi (Wnull-dereference): New.
10898 * tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
10899 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
10900 Warn for potential NULL dereferences.
10901 (find_explicit_erroneous_behaviour): Warn for NULL dereferences.
10902 * ubsan.c (instrument_nonnull_arg): Call
10903 infer_nonnull_range_by_attribute.
10904 (instrument_nonnull_return): Likewise.
10905 * common.opt (Wnull-dereference); New.
10906 * gimple.c (infer_nonnull_range): Remove bool arguments.
10907 (infer_nonnull_range_by_dereference): New.
10908 (infer_nonnull_range_by_attribute): New.
10909 * gimple.h: Update declarations.
10911 2015-08-05 Richard Sandiford <richard.sandiford@arm.com>
10913 * gensupport.c (sequence_num): Replace with...
10914 (insn_sequence_num, split_sequence_num, peephole2_sequence_num):
10915 ...these new variables.
10916 (init_rtx_reader_args_cb): Update accordingly.
10917 (get_num_code_insns): Likewise.
10918 (read_md_rtx): Rework to use a while loop and get_c_test.
10919 Use the new counters. Remove redundant DEFINE_SUBST case.
10920 * genoutput.c (gen_split): Delete.
10921 (main): Don't call it.
10923 2015-08-05 Richard Sandiford <richard.sandiford@arm.com>
10925 * gensupport.h (get_c_test): Declare.
10926 * gensupport.c (get_c_test): New function.
10927 * genconditions.c (main): Use it.
10928 * genrecog.c (validate_pattern): Likewise.
10929 (match_pattern_1): Likewise. Remove c_test argument.
10930 (match_pattern): Update accordingly and remove c_test argument.
10931 (main): Update accordingly.
10933 2015-08-05 Richard Sandiford <richard.sandiford@arm.com>
10935 * gensupport.h (get_num_insn_codes): Declare.
10936 * gensupport.c (get_num_insn_codes): New function.
10937 * genattrtab.c (optimize_attrs): Rename max_insn_code to
10939 (main): Likewise. Use get_num_insn_codes.
10940 * gencodes.c (main): Remove "last" and use get_num_insn_codes.
10942 2015-08-05 Richard Sandiford <richard.sandiford@arm.com>
10944 PR middle-end/66311
10945 * wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
10946 is zero- rather than sign-extended.
10948 2015-08-05 Richard Sandiford <richard.sandiford@arm.com>
10950 * target-insns.def (can_extend): Delete.
10952 2015-08-05 Richard Biener <rguenther@suse.de>
10954 PR tree-optimization/67121
10955 * tree-if-conv.c (combine_blocks): Clear range-info produced
10956 by stmts no longer executed conditionally.
10958 2015-08-05 Nick Clifton <nickc@redhat.com>
10960 * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
10961 to allow identical far pointers to remain.
10963 2015-08-05 Richard Biener <rguenther@suse.de>
10965 PR middle-end/67120
10966 * match.pd: Compare address bases with == if they are decls
10967 or SSA names, not operand_equal_p. Otherwise fail.
10969 2015-08-05 Richard Biener <rguenther@suse.de>
10971 PR tree-optimization/67055
10972 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
10975 * g++.dg/torture/pr67055.C: New testcase.
10977 2015-08-05 Kirill Yukhin <kirill.yukhin@intel.com>
10979 * config/i386/i386.md (define_attr "isa"): Addd avx512vl and
10981 (define_attr "enabled"): Handle avx521vl and noavx512vl.
10982 * config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
10983 AVX-512 alternative out of SSE.
10984 (define_insn "*vec_concatv2df"): Ditto.
10986 2015-08-05 Kirill Yukhin <kirill.yukhin@intel.com>
10988 * config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
10989 CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
10990 CODE_FOR_avx_ptestv4di.
10991 * config/i386/sse.md (define_mode_iterator V_AVX): New.
10992 (define_mode_attr sse4_1): Extend to other 128/256-bit modes.
10993 (define_insn "avx_ptest256"): Merge this ...
10994 (define_insn "sse4_1_ptest"): And this ...
10995 (define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.
10997 2015-08-05 Richard Biener <rguenther@suse.de>
10999 PR tree-optimization/67109
11000 * tree-vect-data-refs.c (vect_analyze_group_access_1): Check
11001 against too big groups. Print whether this is a load or store
11002 group. Rename from ...
11003 (vect_analyze_group_access): ... this which is now a wrapper
11004 dissolving an invalid group.
11005 (vect_analyze_data_ref_accesses): Print whether this is a load
11008 2015-08-05 Richard Biener <rguenther@suse.de>
11010 PR middle-end/67107
11011 * match.pd: Guard const_binop result checking against NULL_TREE
11014 2015-08-05 Kugan Vivekanandarajah <kuganv@linaro.org>
11016 * cse.c (cse_insn): Restoring old behaviour for src_eqv
11017 when dest and value in the REG_EQUAL are same and dest
11018 is STRICT_LOW_PART.
11020 2015-08-04 Anatoly Sokolov <aesok@post.ru>
11022 * config/moxie/moxie.h (PRINT_OPERAND,
11023 PRINT_OPERAND_ADDRESS): Remove macros.
11024 * config/moxie/moxie-protos.h (moxie_print_operand,
11025 moxie_print_operand_address): Remove declaration.
11026 * config/moxie/moxie.c (TARGET_PRINT_OPERAND,
11027 TARGET_PRINT_OPERAND_ADDRESS): Define.
11028 (moxie_print_operand, moxie_print_operand_address): Make static.
11030 2015-08-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
11033 * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
11034 (aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.
11036 2015-08-04 Richard Biener <rguenther@suse.de>
11038 * genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
11040 (dt_operand::gen_gimple_expr): Adjust.
11042 2015-08-04 Richard Biener <rguenther@suse.de>
11044 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
11045 bool compares on RHS.
11046 * match.pd: Add X ==/!= !X is false/true pattern.
11048 2015-08-04 Pawel Kupidura <pawel.kupidura@arm.com>
11050 * config/aarch64/aarch64.c: Change inner loop statement cost
11051 to be consistent with other targets.
11053 2015-08-04 Christophe Lyon <christophe.lyon@linaro.org>
11055 * config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
11058 2015-08-04 Nathan Sidwell <nathan@codesourcery.com>
11060 * config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
11061 (machine_function): Remove pseudos field.
11063 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11065 * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
11066 Exit early and use target_option_current_node if processing current
11069 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11071 * doc/extend.texi (AArch64 Function Attributes): New node.
11072 (AArch64 Pragmas): Likewise.
11074 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11076 * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
11077 Initialize simd builtins if TARGET_SIMD.
11078 * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
11079 Make sure that the builtins are initialized only once no matter how
11080 many times the function is called.
11081 (aarch64_init_builtins): Unconditionally initialize crc builtins.
11082 (aarch64_relayout_simd_param): New function.
11083 (aarch64_simd_expand_args): Use above during argument expansion.
11084 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
11085 simd builtins if TARGET_SIMD.
11086 * config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
11088 (aarch64_relayout_simd_types): Likewise.
11090 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11092 * config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
11093 * config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
11094 (TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
11095 * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
11097 (aarch64_reset_previous_fndecl): New function.
11098 (aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
11100 * config/aarch64/aarch64-c.c: New file.
11101 * config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
11102 Push and pop options at beginning and end. Remove ifdef
11103 __ARM_FEATURE_CRC32.
11104 * config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
11105 Add pragma +nothing+simd and +nothing+crypto where appropriate.
11106 * config/aarch64/t-aarch64 (aarch64-c.o): New rule.
11107 * config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
11109 (aarch64_register_pragmas): Likewise.
11110 (aarch64_reset_previous_fndecl): Likewise.
11111 (aarch64_process_target_attr): Likewise.
11112 (aarch64_override_options_internal): Likewise.
11114 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11116 * config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
11118 (aarch64_can_inline_p): Likewise.
11119 (TARGET_CAN_INLINE_P): Define.
11121 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11123 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
11124 Remove static. Handle OPT_mgeneral_regs_only,
11125 OPT_mfix_cortex_a53_835769, OPT_mstrict_align,
11126 OPT_momit_leaf_frame_pointer.
11127 * config/aarch64/aarch64.c: Include opts.h and diagnostic.h
11128 (aarch64_attr_opt_type): New enum.
11129 (aarch64_attribute_info): New struct.
11130 (aarch64_handle_attr_arch): New function.
11131 (aarch64_handle_attr_cpu): Likewise.
11132 (aarch64_handle_attr_tune): Likewise.
11133 (aarch64_handle_attr_isa_flags): Likewise.
11134 (aarch64_attributes): New table.
11135 (aarch64_process_one_target_attr): New function.
11136 (num_occurences_in_str): Likewise.
11137 (aarch64_process_target_attr): Likewise.
11138 (aarch64_option_valid_attribute_p): Likewise.
11139 (TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
11140 * config/aarch64/aarch64-protos.h: Include input.h
11141 (aarch64_handle_option): Declare prototype.
11143 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11145 * config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
11146 * config/aarch64/aarch64.c: Include target-globals.h
11147 (aarch64_previous_fndecl): New variable.
11148 (aarch64_set_current_function): New function.
11149 (TARGET_SET_CURRENT_FUNCTION): Define.
11151 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11153 * config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
11154 (explicit_arch): Likewise.
11155 (x_aarch64_isa_flags): Likewise.
11156 (mgeneral-regs-only): Mark as Save.
11157 (mfix-cortex-a53-835769): Likewise.
11158 (mcmodel=): Likewise.
11159 (mstrict-align): Likewise.
11160 (momit-leaf-frame-pointer): Likewise.
11161 (mtls-dialect): Likewise.
11162 (master=): Likewise.
11163 * config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
11164 (aarch64_isa_flags): Remove extern declaration.
11165 * config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
11166 to indicate success or failure.
11167 (aarch64_validate_march): Likewise.
11168 (aarch64_validate_mtune): Likewise.
11169 (aarch64_isa_flags): Delete.
11170 (aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
11171 instead of aarch64_isa_flags.
11172 (aarch64_get_tune_cpu): New function.
11173 (aarch64_get_arch): Likewise.
11174 (aarch64_override_options): Use above and set up explicit_tune_core
11176 (aarch64_print_extension): Move earlier in file. Add isa_flags
11177 argument and use that instead of the global aarch64_isa_flags.
11178 (aarch64_option_save): New function.
11179 (aarch64_option_restore): Likewise.
11180 (aarch64_option_print): Likewise.
11181 (aarch64_declare_function_name): Likewise.
11182 (aarch64_start_file): Delete.
11183 (TARGET_ASM_FILE_START): Do not define.
11184 (TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
11185 * config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
11188 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11190 * config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
11191 flag_omit_leaf_frame_pointer to 2.
11193 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11195 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
11197 (TARGET_FIX_ERR_A53_835769): New macro.
11198 * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
11199 handling of opts->x_aarch64_fix_a53_err835769.
11200 (aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather
11201 than aarch64_fix_a53_err835769.
11202 * config/aarch64/aarch64-elf-raw.h: Update for above changes.
11203 * config/aarch64/aarch64-linux.h: Likewise.
11205 2015-08-04 Uros Bizjak <ubizjak@gmail.com>
11207 * config/i386/i386.c (ix86_expand_int_movcc): Check result of
11208 ix86_expand_int_movcc as boolean.
11210 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11212 * config/aarch64/aarch64.opt (aarch64_arch_string): Delete.
11213 (aarch64_cpu_string): Likewise.
11214 (aarch64_tune_string): Likewise.
11215 * config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum.
11216 (aarch64_parse_extension): Return aarch64_parse_opt_result.
11217 Add extra argument to put result into.
11218 (aarch64_parse_arch): Likewise. Do not set selected_cpu.
11219 (aarch64_parse_cpu): Add arguments to put results into. Return
11220 aarch64_parse_opt_result.
11221 (aarch64_parse_tune): Likewise.
11222 (aarch64_override_options_after_change_1): New function.
11223 (aarch64_override_options_internal): New function.
11224 (aarch64_validate_mcpu): Likewise.
11225 (aarch64_validate_march): Likewise.
11226 (aarch64_validate_mtune): Likewise.
11227 (aarch64_override_options): Update to reflect above changes.
11228 Move some logic into aarch64_override_options_internal.
11229 Initialize target_option_default_node and target_option_current_node.
11230 (aarch64_override_options_after_change): Move logic into
11231 aarch64_override_options_after_change_1 and call it with global_options.
11232 (initialize_aarch64_code_model): Take a gcc_options pointer and use the
11233 flag values from that.
11235 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11237 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
11238 __ARM_ARCH_8A directly rather than with cpp_define_formatted.
11239 * config/aarch64/aarch64.c (struct processor): Add arch field.
11240 (all_architectures): Handle above, move above all_cores.
11241 (all_cores): Handle above.
11242 (aarch64_parse_arch): Handle above changes.
11243 * config/aarch64/aarch64-arches.def (armv8-a): Extend according to
11244 above. Update comments.
11245 (armv8.1-a): Likewise.
11246 * config/aarch64/aarch64-cores.def: Update according to above.
11247 * config/aarch64/aarch64-opts.h (aarch64_arch): New enum.
11248 * config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to
11249 aarch64_arch_driver_info.
11251 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11253 * config/aarch64/aarch64.c (struct processor): Add ident field.
11254 Rename core sched_core.
11255 (all_cores): Handle above changes.
11256 (all_architectures): Likewise.
11257 (aarch64_parse_arch): Likewise.
11258 (aarch64_override_options): Likewise.
11260 2015-08-04 Richard Biener <rguenther@suse.de>
11262 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
11263 dispatching to fold_binary for GIMPLE_BINARY_RHS and for
11264 comparisons embedded in [VEC_]COND_EXPRs.
11266 2015-08-03 Abe Skolnik <a.skolnik@samsung.com>
11268 * tree-if-conv.c: Fix various typos in comments.
11269 * tree-vect-stmts.c: Likewise.
11271 2015-08-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
11273 PR tree-optimization/67043
11274 * loop-invariant.c (move_invariant_reg): Recompute luids in loop
11275 preheader after hoisting invariant in it.
11276 (find_defs): Force recomputation of all luids.
11278 2015-08-03 Peter Bergner <bergner@vnet.ibm.com>
11280 * config/rs6000/htm.md (tabort.): Restrict the source operand to
11281 using a base register.
11283 2015-08-03 David Malcolm <dmalcolm@redhat.com>
11285 * main.c (main): Pass in NULL for toplev's external_timer.
11286 * timevar.c: Include coretypes.h.
11287 (class timer::named_items): New.
11288 (timer::named_items::named_items): New.
11289 (timer::named_items::~named_items): New.
11290 (timer::named_items::push): New.
11291 (timer::named_items::pop): New.
11292 (timer::named_items::print): New.
11293 (timer::timer): Initialize field "m_jit_client_items".
11294 (timer::~timer): New.
11295 (timer::push): Move bulk of implementation to...
11296 (timer::push_internal): ...here. New function.
11297 (timer::pop): Move bulk of implementation to...
11298 (timer::pop_internal): ...here. New function.
11299 (timer::push_client_item): New.
11300 (timer::pop_client_item): New.
11301 (timer::print_row): New function, taken from timer::print.
11302 (timer::print): Print "GCC items" header if we also have client
11303 items. Move row-printing to timer::print_row. Print any client
11305 (timer::get_topmost_item_name): New method.
11306 * timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
11307 (TV_JIT_CLIENT_CODE): New.
11308 * timevar.h (timer::push_client_item): New declaration.
11309 (timer::pop_client_item): New declaration.
11310 (timer::get_topmost_item_name): New method.
11311 (timer::push_internal): New declaration.
11312 (timer::pop_internal): New declaration.
11313 (timer::print_row): New declaration.
11314 (timer::named_items): New declaration.
11315 (timer::m_jit_client_items): New field.
11316 (timer): Add friend class named_items.
11317 (auto_timevar::auto_timevar): Add timer param.
11318 (auto_timevar::~auto_timevar): Use field "m_timer".
11319 (auto_timevar::m_timer): New field.
11320 * toplev.c (initialize_rtl): Add g_timer as param when
11321 constructing auto_timevar instance.
11322 (toplev::toplev): Add "external_timer" param, and use it to
11323 initialize the "g_timer" global if non-NULL.
11324 (toplev::~toplev): If this created "g_timer", delete it.
11325 * toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
11326 with "external_timer" timer *.
11328 2015-08-03 Alexander Basov <coohpt@gmail.com>
11330 PR middle-end/64744
11331 PR middle-end/48470
11332 PR middle-end/43404
11333 * cfgexpand.c (expand_one_var): Add check if stack is going to
11334 be used in naked function.
11335 * expr.c (expand_expr_addr_expr_1): Remove excess checking
11336 whether expression should not reside in MEM.
11337 * function.c (use_register_for_decl): Do not use registers for
11338 non-register things (volatile, float, BLKMode) in naked functions.
11340 2015-08-03 John David Anglin <danglin@gcc.gnu.org>
11343 * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
11344 Adjust splits to match new pattern.
11346 2015-08-03 Michael Meissner <meissner@linux.vnet.ibm.com>
11348 * config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
11351 (mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
11352 point in VSX registers.
11354 * config/rs6000/constraints.md (wb constraint): Document unused
11356 (we constraint): Likewise.
11357 (wo constraint): Likewise.
11358 (wp constraint): New constraint for IEEE 128-bit floating point in
11360 (wq constraint): Likewise.
11362 * config/rs6000/predicates.md (easy_fp_constant): Add support for
11363 IEEE 128-bit floating point in VSX registers.
11364 (easy_scalar_constant): Likewise.
11366 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
11367 constraints (wp, wq) for IEEE 128-bit floating point in VSX
11369 (rs6000_init_hard_regno_mode_ok): Likewise.
11371 * config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
11372 floating point in VSX registers.
11375 (VSX_M2): Likewise.
11381 (vsx_le_permute_<mode>): Add support to properly swap bytes for
11382 IEEE 128-bit floating point in VSX registers on little endian.
11383 (vsx_le_undo_permute_<mode>): Likewise.
11384 (vsx_le_perm_load_<mode>): Likewise.
11385 (vsx_le_perm_store_<mode>): Likewise.
11386 (splitters for IEEE 128-bit fp moves): Likewise.
11388 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
11391 * config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
11392 floating point in VSX registers.
11395 * doc/md.text (Machine Constraints): Document wp and wq
11396 constraints on PowerPC.
11398 2015-08-03 Jeff Law <law@redhat.com>
11400 PR middle-end/66314
11401 PR gcov-profile/66899
11402 * tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly
11403 iterate over the jump threading paths when an element in the
11404 jump threading paths array is eliminated.
11406 2015-08-03 Segher Boessenkool <segher@kernel.crashing.org>
11408 * Makefile.in (OBJS): Put gimple-match.o and generic-match.o first.
11410 2015-08-03 Patrick Palka <ppalka@gcc.gnu.org>
11412 * tree-ssa-uninit.c (find_uninit_use): Declare and pass to
11413 is_use_properly_guarded the variable def_preds. Free its
11414 contents before returning.
11415 (prune_uninit_phi_opnds_in_unrealizable_paths): Same.
11416 (is_use_properly_guarded): Replace local variable def_preds with
11417 a parameter. Adjust accordingly. Only update *def_preds if it's
11420 2015-08-03 Richard Biener <rguenther@suse.de>
11422 * genmatch.c (simplify::for_subst_vec): New member.
11423 (binary_ok): New helper for for lowering.
11424 (lower_for): Delay substituting operators into result expressions
11425 if we can merge the results eventually again.
11426 (capture_info::walk_result): Adjust for user_id appearing as
11427 result expression operator.
11428 (expr::gen_transform): Likewise.
11429 (dt_simplify::gen_1): Likewise.
11430 (dt_simplify::gen): Pass not substituted operators to tail
11431 functions or initialize local variable with it.
11432 (decision_tree::gen): Adjust function signature.
11433 * match.pd: Fix tests against global code and add default
11434 cases to switch stmts.
11436 2015-08-03 Richard Biener <rguenther@suse.de>
11438 * genmatch.c (dt_simplify::gen): Create captures array
11439 with an initializer.
11441 2015-08-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11443 * configure.ac: Set aliasing_flags to -fno-strict-aliasing if
11444 the host compiler is affected by placement new aliasing bug.
11445 * configure: Regenerate.
11446 * Makefile.in (ALIASING_FLAGS): New variable.
11447 (ALL_CXXFLAGS): Add $(ALIASING_FLAGS).
11449 2015-08-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
11452 * config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
11453 (negmulsf3_vfp): Likewise.
11454 (muldf3negdf_vfp): Disable for -frounding-math.
11455 (mulsf3negsf_vfp): Likewise.
11456 * config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
11457 fix MULT cost with -frounding-math.
11459 2015-08-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11461 * ifcvt.c (noce_try_store_flag_constants): Make logic of the case
11462 when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more
11463 explicit. Prefer to add the flag whenever possible.
11464 (noce_process_if_block): Try noce_try_store_flag_constants before
11467 2015-08-03 Richard Biener <rguenther@suse.de>
11469 * genmatch.c (struct sinfo, struct sinfo_hashmap_traits, sinfo_map_t):
11470 New hash-map to record equivalent transforms.
11471 (dt_node::analyze): Populate the equivalent transforms hash-map.
11472 (dt_simplify::info): Add reference to hash-map entry.
11473 (dt_simplify::gen): If we have split out a function for the
11474 transform, generate a call to it.
11475 (sinfo_hashmap_traits::hash): New function.
11476 (compare_op): New helper function for ...
11477 (sinfo_hashmap_traits::equal_keys): ... this new function.
11478 (decision_tree::gen): Split out common equivalent transforms
11481 2015-08-03 Richard Biener <rguenther@suse.de>
11483 * gimple-fold.c (fold_gimple_assign): Remove folding of
11484 the comparison in COND_EXPRs.
11486 2015-08-03 Richard Biener <rguenther@suse.de>
11488 * gimple-match-head.c (gimple_simplify): For [VEC_]COND_EXPRs
11489 on the rhs of assignments first simplify the embedded
11492 2015-08-03 Richard Biener <rguenther@suse.de>
11494 PR tree-optimization/66917
11495 * tree-vectorizer.h (struct dataref_aux): Add base_element_aligned
11497 (DR_VECT_AUX): New macro.
11498 (set_dr_misalignment): Adjust.
11499 (dr_misalignment): Likewise.
11500 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
11501 Compute whether the base is at least element aligned.
11502 * tree-vect-stmts.c (ensure_base_align): Adjust.
11503 (vectorizable_store): If the base is not element aligned
11504 preserve alignment of the original access if misalignment is unknown.
11505 (vectorizable_load): Likewise.
11507 2015-08-02 Martin Sebor <msebor@redhat.com>
11509 * c-family/c.opt (-Wframe-address): New warning option.
11510 * doc/invoke.texi (Wframe-address): Document it.
11511 * doc/extend.texi (__builtin_frame_address, __builtin_return_address):
11512 Clarify possible effects of calling the functions with non-zero
11513 arguments and mention -Wframe-address.
11514 * builtins.c (expand_builtin_frame_address): Handle -Wframe-address.
11516 2015-08-01 Michael Collison <michael.collison@linaro.org
11517 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11519 * gcc/config/arm/arm.md (*arm_smin_cmp): New pattern.
11520 (*arm_umin_cmp): Likewise.
11522 2015-08-01 Caroline Tice <cmtice@google.com>
11525 * vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New
11527 (vtbl_find_mangled_name): New function.
11528 (vtbl_register_mangled_name): New function.
11529 (vtbl_map_get_node): If DECL_ASSEMBLER_NAME is "<anon>", look up
11530 mangled name in mangled name vectors.
11531 (find_or_create_vtbl_map_node): Ditto.
11532 (var_is_used_for_virtual_call_p): Add recursion_depth parameter;
11533 update recursion_depth on function entry; pass it to every recursive
11534 call; automatically exit if depth > 25 (give up looking at that point).
11535 (verify_bb_vtables): Initialize recursion_depth and pass it to
11536 var_is_used_for_virtual_call_p.
11537 * vtable-verify.h (vtbl_mangbled_name_types, vtbl_mangled_name_ids): New
11538 global variable decls.
11539 (vtbl_register_mangled_name): New extern function decl.
11541 2015-08-01 Tom de Vries <tom@codesourcery.com>
11543 * tree.c (operation_can_overflow, operation_no_trapping_overflow): New
11545 * tree.h (operation_can_overflow, operation_no_trapping_overflow):
11547 * tree-vect-loop.c (vect_is_simple_reduction_1): Use
11548 operation_no_trapping_overflow. Allow non-overflow operations.
11549 * graphite-sese-to-poly.c (is_reduction_operation_p): Allow non-overflow
11552 2015-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
11555 * config/sh/sh.md (GOTaddr2picreg): Fix typo.
11557 2015-07-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11559 * config/arm/arm.md (*if_neg_move): Convert to insn_and_split.
11560 Enable for TARGET_32BIT.
11561 (*if_move_neg): Likewise.
11563 2015-07-31 Nick Clifton <nickc@redhat.com>
11565 * config/m32r/m32r.c (m32r_attribute_identifier): New function.
11566 Returns true for __model__.
11567 (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
11569 2015-07-31 Alan Modra <amodra@gmail.com>
11572 * config/rs6000/rs6000.c (machine_function): Add split_stack_argp_used.
11573 (rs6000_emit_prologue): Set it.
11574 (rs6000_set_up_by_prologue): Specify r12 when split_stack_argp_used.
11576 2015-07-31 Richard Biener <rguenther@suse.de>
11578 * fold-const.c (fold_binary_loc): Remove X ^ C1 == C2
11579 -> X == (C1 ^ C2) which is already implemented in match.pd.
11580 Remove redundant dispatching to fold_relational_const.
11581 Move unordered self and NaN compares ...
11582 * match.pd: ... as patterns here. Remove some stray captures
11585 2015-07-31 Petr Murzin <petr.murzin@intel.com>
11587 * config/i386/i386.c
11588 (bdesc_special_args): Convert mask type from signed to unsigned for
11590 (ix86_expand_args_builtin): Do not handle UINT_FTYPE_V2DF,
11591 UINT64_FTYPE_V2DF, UINT64_FTYPE_V4SF, V16QI_FTYPE_V8DI,
11592 V16HI_FTYPE_V16SI, V16SI_FTYPE_V16SI, V16SF_FTYPE_FLOAT,
11593 V8HI_FTYPE_V8DI, V8UHI_FTYPE_V8UHI, V8SI_FTYPE_V8DI, V8SF_FTYPE_V8DF,
11594 V8DI_FTYPE_INT64, V8DI_FTYPE_V4DI, V8DI_FTYPE_V8DI, V8DF_FTYPE_DOUBLE,
11595 V8DF_FTYPE_V8SI, V16SI_FTYPE_V16SI_V16SI, V16SF_FTYPE_V16SF_V16SI,
11596 V8DI_FTYPE_V8DI_V8DI, V8DF_FTYPE_V8DF_V8DI, V4SI_FTYPE_V4SF_V4SF,
11597 V4SF_FTYPE_V4SF_UINT64, V2UDI_FTYPE_V4USI_V4USI, V2DI_FTYPE_V2DF_V2DF,
11598 V2DF_FTYPE_V2DF_UINT64, V4UDI_FTYPE_V8USI_V8USI, QI_FTYPE_V8DI_V8DI,
11599 HI_FTYPE_V16SI_V16SI, HI_FTYPE_HI_INT, V16SF_FTYPE_V16SF_V16SF_V16SF,
11600 V16SF_FTYPE_V16SF_V16SI_V16SF, V16SF_FTYPE_V16SI_V16SF_HI,
11601 V16SF_FTYPE_V16SI_V16SF_V16SF, V16SI_FTYPE_V16SF_V16SI_HI,
11602 V8DI_FTYPE_V8SF_V8DI_QI, V8SF_FTYPE_V8DI_V8SF_QI, V8DI_FTYPE_PV4DI,
11603 V8DF_FTYPE_V8DI_V8DF_QI, V16SI_FTYPE_V16SI_V16SI_V16SI,
11604 V2DI_FTYPE_V2DI_V2DI_V2DI, V8DI_FTYPE_V8DF_V8DI_QI, V8DF_FTYPE_PV4DF,
11605 V8SI_FTYPE_V8SI_V8SI_V8SI, V8DF_FTYPE_V8DF_V8DF_V8DF, UINT_FTYPE_V4SF,
11606 V8DF_FTYPE_V8DF_V8DI_V8DF, V8DF_FTYPE_V8DI_V8DF_V8DF,
11607 V8DF_FTYPE_V8SF_V8DF_QI, V8DI_FTYPE_V8DI_V8DI_V8DI, V16SF_FTYPE_PV4SF,
11608 V8SF_FTYPE_V8DF_V8SF_QI, V8SI_FTYPE_V8DF_V8SI_QI, V16SI_FTYPE_PV4SI,
11609 V2DF_FTYPE_V2DF_V4SF_V2DF_QI, V4SF_FTYPE_V4SF_V2DF_V4SF_QI,
11610 V8DI_FTYPE_V8DI_SI_V8DI_V8DI, QI_FTYPE_V8DF_V8DF_INT_QI,
11611 HI_FTYPE_V16SF_V16SF_INT_HI, V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI,
11612 VOID_FTYPE_PDOUBLE_V2DF_QI, VOID_FTYPE_PFLOAT_V4SF_QI,
11613 V2DF_FTYPE_PCDOUBLE_V2DF_QI, V4SF_FTYPE_PCFLOAT_V4SF_QI.
11614 * config/i386/i386-builtin-types.def
11615 (V16QI_FTYPE_V16SI): Remove.
11616 (V8DF_FTYPE_V8SI): Ditto.
11617 (V8HI_FTYPE_V8DI): Ditto.
11618 (V8SI_FTYPE_V8DI): Ditto.
11619 (V8SF_FTYPE_V8DF): Ditto.
11620 (V8SF_FTYPE_V8DF_V8SF_QI): Ditto.
11621 (V16HI_FTYPE_V16SI): Ditto.
11622 (V16SF_FTYPE_V16HI): Ditto.
11623 (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
11624 (V16SF_FTYPE_V16SI): Ditto.
11625 (V4DI_FTYPE_V4DI): Ditto.
11626 (V16SI_FTYPE_V16SF): Ditto.
11627 (V16SF_FTYPE_FLOAT): Ditto.
11628 (V8DF_FTYPE_DOUBLE): Ditto.
11629 (V8DI_FTYPE_INT64): Ditto.
11630 (V8DI_FTYPE_V4DI): Ditto.
11631 (V16QI_FTYPE_V8DI): Ditto.
11632 (UINT_FTYPE_V4SF): Ditto.
11633 (UINT64_FTYPE_V4SF): Ditto.
11634 (UINT_FTYPE_V2DF): Ditto.
11635 (UINT64_FTYPE_V2DF): Ditto.
11636 (V16SI_FTYPE_V16SI): Ditto.
11637 (V8DI_FTYPE_V8DI): Ditto.
11638 (V16SI_FTYPE_PV4SI): Ditto.
11639 (V16SF_FTYPE_PV4SF): Ditto.
11640 (V8DI_FTYPE_PV2DI): Ditto.
11641 (V8DF_FTYPE_PV2DF): Ditto.
11642 (V4DI_FTYPE_PV2DI): Ditto.
11643 (V4DF_FTYPE_PV2DF): Ditto.
11644 (V16SI_FTYPE_PV2SI): Ditto.
11645 (V16SF_FTYPE_PV2SF): Ditto.
11646 (V8DI_FTYPE_PV4DI): Ditto.
11647 (V8DF_FTYPE_PV4DF): Ditto.
11648 (V8SF_FTYPE_FLOAT): Ditto.
11649 (V4SF_FTYPE_FLOAT): Ditto.
11650 (V4DF_FTYPE_DOUBLE): Ditto.
11651 (V8SF_FTYPE_PV4SF): Ditto.
11652 (V8SI_FTYPE_PV4SI): Ditto.
11653 (V4SI_FTYPE_PV2SI): Ditto.
11654 (V8SF_FTYPE_PV2SF): Ditto.
11655 (V8SI_FTYPE_PV2SI): Ditto.
11656 (V16SF_FTYPE_PV8SF): Ditto.
11657 (V16SI_FTYPE_PV8SI): Ditto.
11658 (V8DI_FTYPE_V8SF): Ditto.
11659 (V4DI_FTYPE_V4SF): Ditto.
11660 (V2DI_FTYPE_V4SF): Ditto.
11661 (V64QI_FTYPE_QI): Ditto.
11662 (V32HI_FTYPE_HI): Ditto.
11663 (V8UHI_FTYPE_V8UHI): Ditto.
11664 (V16UHI_FTYPE_V16UHI): Ditto.
11665 (V32UHI_FTYPE_V32UHI): Ditto.
11666 (V2UDI_FTYPE_V2UDI): Ditto.
11667 (V4UDI_FTYPE_V4UDI): Ditto.
11668 (V8UDI_FTYPE_V8UDI): Ditto.
11669 (V4USI_FTYPE_V4USI): Ditto.
11670 (V8USI_FTYPE_V8USI): Ditto.
11671 (V16USI_FTYPE_V16USI): Ditto.
11672 (V2DF_FTYPE_V2DF_UINT64): Ditto.
11673 (V2DI_FTYPE_V2DF_V2DF): Ditto.
11674 (V2UDI_FTYPE_V4USI_V4USI): Ditto.
11675 (V8DF_FTYPE_V8DF_V8DI): Ditto.
11676 (V4SF_FTYPE_V4SF_UINT64): Ditto.
11677 (V4SI_FTYPE_V4SF_V4SF): Ditto.
11678 (V16SF_FTYPE_V16SF_V16SI): Ditto.
11679 (V64QI_FTYPE_V32HI_V32HI): Ditto.
11680 (V32HI_FTYPE_V16SI_V16SI): Ditto.
11681 (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
11682 (V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI): Ditto.
11683 (V32HI_FTYPE_V64QI_V64QI): Ditto.
11684 (V32HI_FTYPE_V32HI_V32HI): Ditto.
11685 (V16HI_FTYPE_V16HI_V16HI_INT_V16HI_HI): Ditto.
11686 (V16SI_FTYPE_V16SI_V4SI): Ditto.
11687 (V16SI_FTYPE_V16SI_V16SI): Ditto.
11688 (V16SI_FTYPE_V32HI_V32HI): Ditto.
11689 (V16SI_FTYPE_V16SI_SI): Ditto.
11690 (V8DI_FTYPE_V8DI_V8DI): Ditto.
11691 (V4UDI_FTYPE_V8USI_V8USI): Ditto.
11692 (V8DI_FTYPE_V16SI_V16SI): Ditto.
11693 (V8DI_FTYPE_V8DI_V2DI): Ditto.
11694 (QI_FTYPE_QI): Ditto.
11695 (SI_FTYPE_SI): Ditto.
11696 (DI_FTYPE_DI): Ditto.
11697 (QI_FTYPE_QI_QI): Ditto.
11698 (QI_FTYPE_QI_INT): Ditto.
11699 (HI_FTYPE_HI_INT): Ditto.
11700 (SI_FTYPE_SI_INT): Ditto.
11701 (DI_FTYPE_DI_INT): Ditto.
11702 (HI_FTYPE_V16QI_V16QI): Ditto.
11703 (SI_FTYPE_V32QI_V32QI): Ditto.
11704 (DI_FTYPE_V64QI_V64QI): Ditto.
11705 (QI_FTYPE_V8HI_V8HI): Ditto.
11706 (HI_FTYPE_V16HI_V16HI): Ditto.
11707 (SI_FTYPE_V32HI_V32HI): Ditto.
11708 (QI_FTYPE_V4SI_V4SI): Ditto.
11709 (QI_FTYPE_V8SI_V8SI): Ditto.
11710 (QI_FTYPE_V2DI_V2DI): Ditto.
11711 (QI_FTYPE_V4DI_V4DI): Ditto.
11712 (QI_FTYPE_V8DI_V8DI): Ditto.
11713 (HI_FTYPE_V16SI_V16SI): Ditto.
11714 (HI_FTYPE_V16SI_V16SI_INT_HI): Ditto.
11715 (QI_FTYPE_V8DF_V8DF_INT_QI): Ditto.
11716 (HI_FTYPE_V16SF_V16SF_INT_HI): Ditto.
11717 (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
11718 (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
11719 (V8DF_FTYPE_V8DF_V8DF_V8DF): Ditto.
11720 (V16SF_FTYPE_V16SF_V16SF_V16SF): Ditto.
11721 (V8DF_FTYPE_V8SF_V8DF_QI): Ditto.
11722 (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
11723 (V8DF_FTYPE_V8DI_V8DF_V8DF): Ditto.
11724 (V2DF_FTYPE_V2DF_V4SF_V2DF_QI): Ditto.
11725 (V16SF_FTYPE_V16SI_V16SF_HI): Ditto.
11726 (V16SF_FTYPE_V16SI_V16SF_V16SF): Ditto.
11727 (V8SI_FTYPE_V8DF_V8SI_QI): Ditto.
11728 (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
11729 (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
11730 (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
11731 (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
11732 (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
11733 (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
11734 (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
11735 (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
11736 (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
11737 (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
11738 (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
11739 (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
11740 (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
11741 (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
11742 (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
11743 (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
11744 (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
11745 (VOID_FTYPE_PDOUBLE_V2DF_QI): Ditto.
11746 (VOID_FTYPE_PFLOAT_V4SF_QI): Ditto.
11747 (V16SI_FTYPE_V16SF_V16SI_HI): Ditto.
11748 (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
11749 (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
11750 (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
11751 (V2DF_FTYPE_V2DF_V2DF_V2DI): Ditto.
11752 (V4SF_FTYPE_V4SF_V4SF_V4SI): Ditto.
11753 (V2UDI_FTYPE_V2UDI_V2UDI_V2UDI): Ditto.
11754 (V4USI_FTYPE_V4USI_V4USI_V4USI): Ditto.
11755 (V8UHI_FTYPE_V8UHI_V8UHI_V8UHI): Ditto.
11756 (V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): Ditto.
11757 (V4DF_FTYPE_V4DF_V4DF_V4DI): Ditto.
11758 (V8SF_FTYPE_V8SF_V8SF_V8SI): Ditto.
11759 (V8DI_FTYPE_V8DI_V8DI_V8DI): Ditto.
11760 (V16SI_FTYPE_V16SI_V16SI_V16SI): Ditto.
11761 (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
11762 (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
11763 (V8DF_FTYPE_V8DF_V8DI_V8DF): Ditto.
11764 (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
11765 (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
11766 (V16SF_FTYPE_V16SF_V16SI_V16SF): Ditto.
11767 (V8DI_FTYPE_V8DI_SI_V8DI_V8DI): Ditto.
11768 (PVOID_FTYPE_PVOID_PVOID_ULONG): Ditto.
11769 (V4SF_FTYPE_V2DF_V4SF_QI): Convert mask type from signed to unsigned.
11770 (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
11771 (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
11772 (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
11773 (V16SI_FTYPE_V16SI_V16SI_HI): Ditto.
11774 (V8DI_FTYPE_V8DI_V8DI_QI): Ditto.
11775 (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
11776 (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
11777 (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
11778 (V4DF_FTYPE_V8DF_INT_V4DF_QI): Ditto.
11779 (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
11780 (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
11781 (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
11782 (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
11783 (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
11784 (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
11785 (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
11786 (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
11787 (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
11788 (V4SF_FTYPE_V16SF_INT_V4SF_QI): Ditto.
11789 (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
11790 (V8DF_FTYPE_V8DF_V4DF_INT_V8DF_QI): Ditto.
11791 (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI): Ditto.
11792 (V8DF_FTYPE_V8DF_INT_V8DF_QI): Ditto.
11793 (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
11794 (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
11795 (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI): Ditto.
11796 (V16SF_FTYPE_V16SF_INT_V16SF_HI): Ditto.
11797 (V16SI_FTYPE_V16SI_V4SI_INT_V16SI_HI): Ditto.
11798 (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
11799 (V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI): Ditto.
11800 (V16SF_FTYPE_V16SF_V4SF_INT_V16SF_HI): Ditto.
11801 (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
11802 (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
11803 (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
11804 (V16HI_FTYPE_V16SF_INT_V16HI_HI): Ditto.
11805 (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
11806 (V4SI_FTYPE_V16SI_INT_V4SI_QI): Ditto.
11807 (V16SI_FTYPE_V16SI_V16SI_INT_V16SI_HI): Ditto.
11808 (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
11809 (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
11810 (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
11811 (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
11812 (V16SI_FTYPE_V16SI_V4SI_V16SI_HI): Ditto.
11813 (V16SI_FTYPE_V16SI_INT_V16SI_HI): Ditto.
11814 (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_QI): Ditto.
11815 (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
11816 (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
11817 (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
11818 (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
11819 (V8DI_FTYPE_V8DI_V4DI_INT_V8DI_QI): Ditto.
11820 (V4DI_FTYPE_V8DI_INT_V4DI_QI): Ditto.
11821 (V8DI_FTYPE_V8DI_V2DI_V8DI_QI): Ditto.
11822 (V8DI_FTYPE_V8DI_INT_V8DI_QI): Ditto.
11823 (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
11824 (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
11825 (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
11826 (HI_FTYPE_HI): Ditto.
11827 (HI_FTYPE_V16QI): Ditto.
11828 (SI_FTYPE_V32QI): Ditto.
11829 (DI_FTYPE_V64QI): Ditto.
11830 (QI_FTYPE_V8HI): Ditto.
11831 (HI_FTYPE_V16HI): Ditto.
11832 (SI_FTYPE_V32HI): Ditto.
11833 (QI_FTYPE_V4SI): Ditto.
11834 (QI_FTYPE_V8SI): Ditto.
11835 (HI_FTYPE_V16SI): Ditto.
11836 (QI_FTYPE_V2DI): Ditto.
11837 (QI_FTYPE_V4DI): Ditto.
11838 (QI_FTYPE_V8DI): Ditto.
11839 (V16QI_FTYPE_HI): Ditto.
11840 (V32QI_FTYPE_SI): Ditto.
11841 (V64QI_FTYPE_DI): Ditto.
11842 (V8HI_FTYPE_QI): Ditto.
11843 (V16HI_FTYPE_HI): Ditto.
11844 (V32HI_FTYPE_SI): Ditto.
11845 (V4SI_FTYPE_QI): Ditto.
11846 (V4SI_FTYPE_HI): Ditto.
11847 (V8SI_FTYPE_QI): Ditto.
11848 (V8SI_FTYPE_HI): Ditto.
11849 (V2DI_FTYPE_QI): Ditto.
11850 (V4DI_FTYPE_QI): Ditto.
11851 (HI_FTYPE_HI_HI): Ditto.
11852 (SI_FTYPE_SI_SI): Ditto.
11853 (DI_FTYPE_DI_DI): Ditto.
11854 (HI_FTYPE_V16QI_V16QI_HI): Ditto.
11855 (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
11856 (SI_FTYPE_V32QI_V32QI_SI): Ditto.
11857 (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
11858 (DI_FTYPE_V64QI_V64QI_DI): Ditto.
11859 (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
11860 (QI_FTYPE_V8HI_V8HI_QI): Ditto.
11861 (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
11862 (HI_FTYPE_V16HI_V16HI_HI): Ditto.
11863 (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
11864 (SI_FTYPE_V32HI_V32HI_SI): Ditto.
11865 (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
11866 (QI_FTYPE_V4SI_V4SI_QI): Ditto.
11867 (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
11868 (QI_FTYPE_V8SI_V8SI_QI): Ditto.
11869 (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
11870 (QI_FTYPE_V2DI_V2DI_QI): Ditto.
11871 (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
11872 (QI_FTYPE_V4DI_V4DI_QI): Ditto.
11873 (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
11874 (QI_FTYPE_V8DI_V8DI_QI): Ditto.
11875 (HI_FTYPE_V16SI_V16SI_HI): Ditto.
11876 (QI_FTYPE_V8DI_V8DI_INT): Ditto.
11877 (QI_FTYPE_V8DI_V8DI_INT_QI): Ditto.
11878 (HI_FTYPE_V16SI_V16SI_INT): Ditto.
11879 (HI_FTYPE_V16SI_V16SI_INT _HI): Ditto.
11880 (QI_FTYPE_V8DF_V8DF_INT): Ditto.
11881 (QI_FTYPE_V8DF_V8DF_INT_QI_INT): Ditto.
11882 (HI_FTYPE_V16SF_V16SF_INT): Ditto.
11883 (HI_FTYPE_V16SF_V16SF_INT_HI_INT): Ditto.
11884 (QI_FTYPE_V2DF_V2DF_INT): Ditto.
11885 (QI_FTYPE_V2DF_V2DF_INT_QI): Ditto.
11886 (QI_FTYPE_V2DF_V2DF_INT_QI_INT): Ditto.
11887 (QI_FTYPE_V4SF_V4SF_INT): Ditto.
11888 (QI_FTYPE_V4SF_V4SF_INT_QI): Ditto.
11889 (QI_FTYPE_V4SF_V4SF_INT_QI_INT): Ditto.
11890 (V16SI_FTYPE_HI): Ditto.
11891 (V8DI_FTYPE_QI): Ditto.
11892 (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
11893 (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
11894 (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
11895 (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
11896 (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
11897 (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
11898 (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
11899 (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
11900 (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
11901 (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
11902 (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
11903 (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
11904 (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
11905 (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
11906 (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
11907 (V8DF_FTYPE_V8DF_V8DF_QI): Ditto.
11908 (V8DF_FTYPE_V8SI_V8DF_QI): Ditto.
11909 (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
11910 (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
11911 (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
11912 (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
11913 (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
11914 (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
11915 (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
11916 (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
11917 (V8DI_FTYPE_V8SI_V8DI_QI): Ditto.
11918 (V8DI_FTYPE_V8HI_V8DI_QI): Ditto.
11919 (V8DI_FTYPE_V16QI_V8DI_QI): Ditto.
11920 (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
11921 (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
11922 (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
11923 (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
11924 (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
11925 (V8DI_FTYPE_V8DI_V8DI_V8DI_QI): Ditto.
11926 (V8DF_FTYPE_V8DI_V8DF_V8DF_QI): Ditto.
11927 (V8DF_FTYPE_V8DF_V8DI_V8DF_QI): Ditto.
11928 (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
11929 (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
11930 (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
11931 (V8DF_FTYPE_V8DF_V8DF_V8DF_QI): Ditto.
11932 (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
11933 (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
11934 (V16SI_FTYPE_V16SI_V16SI_V16SI_HI): Ditto.
11935 (V2DF_FTYPE_V2DF_V2DF_V2DF_QI): Ditto.
11936 (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
11937 (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
11938 (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
11939 (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
11940 (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
11941 (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
11942 (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
11943 (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
11944 (V16SF_FTYPE_V16SF_V16SF_HI): Ditto.
11945 (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
11946 (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
11947 (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
11948 (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
11949 (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
11950 (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
11951 (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
11952 (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
11953 (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
11954 (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
11955 (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
11956 (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
11957 (V16SF_FTYPE_V16SF_V16SF_V16SF_HI): Ditto.
11958 (V16SF_FTYPE_V16SI_V16SF_V16SF_HI): Ditto.
11959 (V16SF_FTYPE_V16SF_V16SI_V16SF_HI): Ditto.
11960 (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
11961 (V16SF_FTYPE_V4SF_V16SF_HI): Ditto.
11962 (V8DF_FTYPE_V4DF_V8DF_QI): Ditto.
11963 (V8DF_FTYPE_V2DF_V8DF_QI): Ditto.
11964 (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
11965 (V16SI_FTYPE_V4SI_V16SI_HI): Ditto.
11966 (V16SI_FTYPE_SI_V16SI_HI): Ditto.
11967 (V16SI_FTYPE_V16HI_V16SI_HI): Ditto.
11968 (V16SI_FTYPE_V16QI_V16SI_HI): Ditto.
11969 (V8DI_FTYPE_V4DI_V8DI_QI): Ditto.
11970 (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
11971 (V8DI_FTYPE_V2DI_V8DI_QI): Ditto.
11972 (V8DI_FTYPE_DI_V8DI_QI): Ditto.
11973 (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
11974 (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
11975 (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
11976 (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
11977 (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
11978 (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
11979 (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
11980 (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
11981 (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
11982 (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
11983 (V8SI_FTYPE_SI_V8SI_QI): Ditto.
11984 (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
11985 (V4SI_FTYPE_SI_V4SI_QI): Ditto.
11986 (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
11987 (V4DI_FTYPE_DI_V4DI_QI): Ditto.
11988 (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
11989 (V2DI_FTYPE_DI_V2DI_QI): Ditto.
11990 (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
11991 (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
11992 (V64QI_FTYPE_QI_V64QI_DI): Ditto.
11993 (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
11994 (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
11995 (V32QI_FTYPE_QI_V32QI_SI): Ditto.
11996 (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
11997 (V16QI_FTYPE_QI_V16QI_HI): Ditto.
11998 (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
11999 (V32HI_FTYPE_HI_V32HI_SI): Ditto.
12000 (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
12001 (V16HI_FTYPE_HI_V16HI_HI): Ditto.
12002 (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
12003 (V8HI_FTYPE_HI_V8HI_QI): Ditto.
12004 (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
12005 (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
12006 (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
12007 (V16SF_FTYPE_PCV16SF_V16SF_HI): Ditto.
12008 (V8DF_FTYPE_PCV8DF_V8DF_QI): Ditto.
12009 (V16SI_FTYPE_PCV16SI_V16SI_HI): Ditto.
12010 (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
12011 (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
12012 (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
12013 (V8DI_FTYPE_PCV8DI_V8DI_QI): Ditto.
12014 (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
12015 (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
12016 (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
12017 (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
12018 (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
12019 (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
12020 (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
12021 (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
12022 (V16HI_FTYPE_V16SI_V16HI_HI): Ditto.
12023 (V8SI_FTYPE_V8DI_V8SI_QI): Ditto.
12024 (V8HI_FTYPE_V8DI_V8HI_QI): Ditto.
12025 (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
12026 (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
12027 (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
12028 (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
12029 (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
12030 (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
12031 (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
12032 (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
12033 (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
12034 (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
12035 (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
12036 (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
12037 (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
12038 (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
12039 (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
12040 (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
12041 (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
12042 (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
12043 (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
12044 (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
12045 (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
12046 (VOID_FTYPE_PV8DF_V8DF_QI): Ditto.
12047 (VOID_FTYPE_PV8SI_V8DI_QI): Ditto.
12048 (VOID_FTYPE_PV8HI_V8DI_QI): Ditto.
12049 (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
12050 (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
12051 (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
12052 (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
12053 (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
12054 (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
12055 (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
12056 (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
12057 (VOID_FTYPE_PV16SF_V16SF_HI): Ditto.
12058 (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
12059 (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
12060 (VOID_FTYPE_PV8DI_V8DI_QI): Ditto.
12061 (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
12062 (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
12063 (VOID_FTYPE_PV16SI_V16SI_HI): Ditto.
12064 (VOID_FTYPE_PV16HI_V16SI_HI): Ditto.
12065 (VOID_FTYPE_PV16QI_V16SI_HI): Ditto.
12066 (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
12067 (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
12068 (VOID_FTYPE_PV16QI_V8DI_QI): Ditto.
12069 (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
12070 (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
12071 (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
12072 (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
12073 (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
12074 (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
12075 (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
12076 (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
12077 (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
12078 (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
12079 (V8DI_FTYPE_V8DI_V8DI_V8DI_INT_QI): Ditto.
12080 (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
12081 (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
12082 (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
12083 (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
12084 (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
12085 (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
12086 (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
12087 (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
12088 (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
12089 (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
12090 (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
12091 (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
12092 (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
12093 (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
12094 (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
12095 (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
12096 (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
12097 (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
12098 (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
12099 (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
12100 (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
12101 (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
12102 (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
12103 (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
12104 (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
12105 (V16SI_FTYPE_V16SI_V16SI_V16SI_INT_HI): Ditto.
12106 (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
12107 (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
12108 (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
12109 (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
12110 (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
12111 (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
12112 (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
12113 (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
12114 (QI_FTYPE_V8DF_INT_QI): Ditto.
12115 (QI_FTYPE_V4DF_INT_QI): Ditto.
12116 (QI_FTYPE_V2DF_INT_QI): Ditto.
12117 (HI_FTYPE_V16SF_INT_HI): Ditto.
12118 (QI_FTYPE_V8SF_INT_QI): Ditto.
12119 (QI_FTYPE_V4SF_INT_QI): Ditto.
12120 (V8DF_FTYPE_V8DF_V8DF_V8DF_QI_INT): Ditto.
12122 2015-07-31 Richard Biener <rguenther@suse.de>
12124 * gimple-fold.c (fold_gimple_assign): Remove folding of
12127 2015-07-31 Tom de Vries <tom@codesourcery.com>
12129 PR tree-optimization/66846
12130 * omp-low.c (expand_omp_taskreg) [ENABLE_CHECKING]: Call
12131 verify_loop_structure for child_cfun if !LOOPS_NEED_FIXUP.
12132 (expand_omp_target) [ENABLE_CHECKING]: Same.
12133 (execute_expand_omp) [ENABLE_CHECKING]: Call verify_loop_structure for
12134 cfun if !LOOPS_NEED_FIXUP.
12135 (expand_omp_for_static_nochunk): Handle simple latch bb. Handle case
12136 that omp_for already has its own loop struct.
12137 * tree-parloops.c (create_phi_for_local_result)
12138 (create_call_for_reduction): Handle simple latch bb.
12139 (create_parallel_loop): Add simple latch bb to preserve
12140 LOOPS_HAVE_SIMPLE_LATCHES. Record new exit. Handle simple latch bb.
12141 (gen_parallel_loop): Remove call to cancel_loop_tree.
12142 (parallelize_loops): Skip loops that are inner loops of parallelized
12144 (pass_parallelize_loops::execute) [ENABLE_CHECKING]: Call
12145 verify_loop_structure.
12147 2015-07-30 Anatoly Sokolov <aesok@post.ru>
12149 * config/v850/v850.h (LIBCALL_VALUE): Remove macros.
12150 * config/v850/v850.md (RV_REGNUM): New constants.
12151 * config/v850/v850.c (v850_libcall_value): New functions.
12152 (v850_function_value_regno_p, v850_function_value): Use RV_REGNUM.
12153 (TARGET_LIBCALL_VALUE): Define.
12155 2015-07-30 Anatoly Sokolov <aesok@post.ru>
12157 * rtl.h (lowpart_subreg): Move in file.
12158 * loop-iv.c (lowpart_subreg): Move to...
12159 * simplify-rtx.c (lowpart_subreg): ...here.
12160 (simplify_binary_operation_1): Use lowpart_subreg instead of
12161 simplify_gen_subreg.
12162 * expr.c (expand_expr_real_2): Ditto.
12163 * emit-rtl.c (gen_lowpart_common): Ditto.
12164 * combine.c (gen_lowpart_for_combine): Ditto.
12165 * cfgexpand.c (convert_debug_memory_address, expand_debug_expr,
12166 expand_debug_source_expr): Ditto.
12168 2015-07-30 Richard Sandiford <richard.sandiford@arm.com>
12170 * builtins.c (HAVE_atomic_clear, gen_atomic_clear): Delete.
12171 (expand_builtin_atomic_clear): Remove support for atomic_clear
12174 2015-07-30 Richard Biener <rguenther@suse.de>
12176 * gimple-fold.c (fold_gimple_assign): Only fold !tcc_comparison
12177 binaries. Move X == 0, X == 1, X != 0, and X != 1 canonicalization ...
12178 (fold_stmt_1): ... here and work on GIMPLE directly. Remove
12179 redundant operand canonicalization.
12181 2015-07-30 David Sherwood <david.sherwood@arm.com>
12183 * config/aarch64/aarch64-simd.md (aarch64_ext<mode>): Replace call to
12184 GET_MODE_SIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_SIZE (m).
12185 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Likewise.
12186 * config/arm/arm.c (neon_valid_immediate): Likewise.
12187 * config/i386/i386.c (classify_argument, ix86_expand_int_vcond)
12188 (expand_vec_perm_blend, expand_vec_perm_pshufb): Likewise.
12189 (expand_vec_perm_pshufb2, expand_vec_perm_vpshufb2_vpermq): Likewise.
12190 (expand_vec_perm_vpshufb2_vpermq): Likewise.
12191 (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise.
12192 (expand_vec_perm_vpshufb4_vpermq2): Likewise.
12193 * config/i386/sse.md
12194 (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Likewise.
12195 (*ssse3_palignr<mode>_perm): Likewise.
12196 * config/rs6000/rs6000.c (rs6000_complex_function_value): Likewise.
12197 * config/spu/spu.c (arith_immediate_p): Likewise.
12198 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
12199 (simplify_binary_operation_1, simplify_ternary_operation): Likewise.
12201 2015-07-30 Richard Biener <rguenther@suse.de>
12203 * genmatch.c (decision_tree::gen_gimple): Merge with ...
12204 (decision_tree::gen_generic): ... this into ...
12205 (decision_tree::gen): ... this.
12206 (main): Adjust callers.
12208 2015-07-30 Richard Biener <rguenther@suse.de>
12210 * genmatch.c (verbose): New global.
12211 (warning_at): Add overload with source_location.
12212 (capture_info::capture_info): Add bool whether generating gimple
12213 or generic. Add gimple member.
12214 (capture_info::cinfo): Add capture member.
12215 (capture_info::walk_match): Record capture. Warn on
12216 non-captured leafs.
12217 (capture_info::walk_c_expr): Add more fragments captures cannot
12218 escape through. Warn on escaped captures.
12219 (dt_simplify::gen_1): Warn on operands we force to have no
12221 (main): Initialize verbose.
12222 * match.pd: Add integer_nonzerop and HONOR_NANS predicates.
12224 2015-07-30 Richard Biener <rguenther@suse.de>
12226 PR middle-end/67053
12227 * match.pd: Allow both operands to independently have conversion
12228 when simplifying compares of addresses.
12230 2015-07-29 Segher Boessenkool <segher@kernel.crashing.org>
12234 * config/rs6000/rs6000.md (and<mode>3): Put a CONST_INT_P check
12235 around those cases that need one.
12237 2015-07-29 Aditya Kumar <hiraditya@msn.com>
12239 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Default to 3.
12241 2015-07-29 H.J. Lu <hongjiu.lu@intel.com>
12243 * config/i386/iamcu.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE):
12244 New. Copied from config/i386/gnu-user.h.
12245 (ASM_COMMENT_START): Likewise.
12246 (DBX_REGISTER_NUMBER): Likewise.
12248 2015-07-29 Richard Biener <rguenther@suse.de>
12250 * gimple-fold.c (fold_gimple_cond): Remove.
12251 (fold_stmt_1): Do not call it.
12253 2015-07-29 Alan Lawrence <alan.lawrence@arm.com>
12255 * config/aarch64/aarch64-builtins.c (aarch64_fp16_type_node): New.
12256 (aarch64_init_builtins): Make aarch64_fp16_type_node, use for __fp16.
12258 * config/aarch64/aarch64-modes.def: Add HFmode.
12260 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
12261 __ARM_FP16_FORMAT_IEEE and __ARM_FP16_ARGS. Set bit 1 of __ARM_FP.
12263 * config/aarch64/aarch64.c (aarch64_init_libfuncs,
12264 aarch64_promoted_type): New.
12266 (aarch64_float_const_representable_p): Disable HFmode.
12267 (aarch64_mangle_type): Mangle half-precision floats to "Dh".
12268 (TARGET_PROMOTED_TYPE): Define to aarch64_promoted_type.
12269 (TARGET_INIT_LIBFUNCS): Define to aarch64_init_libfuncs.
12271 * config/aarch64/aarch64.md (mov<mode>): Include HFmode using GPF_F16.
12272 (movhf_aarch64, extendhfsf2, extendhfdf2, truncsfhf2, truncdfhf2): New.
12274 * config/aarch64/iterators.md (GPF_F16): New.
12276 2015-07-29 Richard Biener <rguenther@suse.de>
12278 * match.pd: Merge address comparison patterns and make them
12279 handle some more cases.
12281 2015-07-29 Richard Biener <rguenther@suse.de>
12283 * genmatch.c (c_expr::gen_transform): Error on unknown captures.
12284 (parser::parse_capture): Add bool argument on whether to reject
12286 (parser::parse_expr): Adjust.
12287 (parser::parse_op): Likewise.
12288 (parser::parse_pattern): Likewise.
12290 2015-07-29 Richard Biener <rguenther@suse.de>
12292 * gimple-fold.c (has_use_on_stmt): New function.
12293 (replace_stmt_with_simplification): Use it to allow
12294 abnormals originally referenced in the stmt.
12295 (fold_stmt_1): Canonicalize operand order.
12297 2015-07-28 David Sherwood <david.sherwood@arm.com>
12299 * config/arm/arm.c (neon_element_bits, neon_valid_immediate): Call
12300 GET_MODE_INNER unconditionally.
12301 * config/spu/spu.c (arith_immediate_p): Likewise.
12302 * config/i386/i386.c (ix86_build_signbit_mask): Likewise.
12303 * expmed.c (synth_mult): Remove check for VOIDmode result from
12305 (expand_mult_const): Likewise.
12306 * fold-const.c (fold_binary_loc): Replace call to element_precision
12307 with call to GET_MODE_PRECISION.
12308 * genmodes.c (emit_mode_inner_inline): Replace void_mode->name with
12310 (emit_mode_inner): Likewise.
12311 * lto-streamer-out.c (lto_write_mode_table): Update GET_MODE_INNER
12313 * machmode.h (GET_MODE_UNIT_SIZE): Simplify.
12314 (GET_MODE_UNIT_PRECISION): Likewise.
12315 * rtlanal.c (subreg_get_info): Call GET_MODE_INNER unconditionally.
12316 * simplify-rtx.c (simplify_immed_subreg): Likewise.
12317 * stor-layout.c (bitwise_type_for_mode): Update assert.
12318 (element_precision): Remove.
12320 2015-07-28 Richard Sandiford <richard.sandiford@arm.com>
12322 * target-insns.def (reload_load_address): New targetm instruction
12324 * reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface.
12326 2015-07-28 Richard Sandiford <richard.sandiford@arm.com>
12328 * target-insns.def (atomic_test_and_set): New targetm instruction
12330 * optabs.c (maybe_emit_atomic_test_and_set): Use it instead of
12331 HAVE_*/gen_* interface.
12333 2015-07-28 Richard Sandiford <richard.sandiford@arm.com>
12335 * target-insns.def (can_extend, ptr_extend): New targetm instruction
12337 * optabs.c (can_extend_p): Use them instead of HAVE_*/gen_* interface.
12338 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
12339 * emit-rtl.c (set_reg_attrs_from_value): Likewise.
12340 * rtlanal.c (nonzero_bits1): Likewise.
12341 (num_sign_bit_copies1): Likewise.
12343 2015-07-28 Richard Sandiford <richard.sandiford@arm.com>
12345 * target-insns.def (eh_return): New targetm instruction pattern.
12346 * except.c (expand_eh_return): Use it instead of HAVE_*/gen_*
12348 * function.c (thread_prologue_and_epilogue_insns): Remove
12349 preprocessor condition.
12351 2015-07-28 Richard Sandiford <richard.sandiford@arm.com>
12353 * target-insns.def (indirect_jump): New targetm instruction pattern.
12354 * optabs.c (emit_indirect_jump): Use it instead of HAVE_*/gen_*
12357 2015-07-28 Richard Sandiford <richard.sandiford@arm.com>
12359 * config/fr30/fr30.md (indirect_jump): Use pmode_register_operand
12360 instead of nonimmediate_operand. Remove C condiition.
12362 2015-07-28 Richard Biener <rguenther@suse.de>
12364 * match.pd: Add more simplification of address comparisons.
12366 2015-07-28 Richard Biener <rguenther@suse.de>
12368 * match.pd: Re-order two cases in comparison with max/min
12369 value simplification to make it apply for bools.
12371 2015-07-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12373 * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p):
12374 Handle simple SIGN_EXTEND or ZERO_EXTEND.
12375 (aarch64_rtx_costs): Properly strip extend or extract before
12376 passing down to rtx costs again.
12378 2015-07-28 Nick Clifton <nickc@redhat.com>
12380 * config/rl78/rl78.c (rl78_addsi3_internal): New function.
12381 Optimizes the case where -mes0 is active and a constant symbolic
12383 * config/rl78/rl78-protos.h: Prototype the new function.
12384 * config/rl78/rl78.md (addsi3_internal_real): Call new function.
12386 2015-07-28 Tom de Vries <tom@codesourcery.com>
12388 * tree-parloops.c (reduc_stmt_res): New function.
12389 (initialize_reductions, add_field_for_reduction)
12390 (create_phi_for_local_result, create_loads_for_reductions)
12391 (create_stores_for_reduction, build_new_reduction): Handle case that
12392 reduc_stmt is a phi.
12393 (gather_scalar_reductions): Allow double_reduc reductions.
12395 2015-07-28 Richard Biener <rguenther@suse.de>
12397 * fold-const.c (fold_comparison): Remove equality folding
12398 of decl addresses ...
12399 * match.pd: ... here and merge with existing pattern.
12401 2015-07-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
12403 PR tree-optimization/66828
12404 * tree-ssa-math-opts.c (perform_symbolic_merge): Change type of inc
12405 from int64_t to uint64_t.
12407 2015-07-28 Dominik Vogt <vogt@linux.vnet.ibm.com>
12409 * opts-common.c (read_cmdline_option): List DriverOnly enum values
12410 as valid only in the error message of the driver, not in the
12411 messages of the language compilers.
12413 2015-07-27 Tom de Vries <tom@codesourcery.com>
12415 * tree-parloops.c (gather_scalar_reductions): Simplify function
12418 2015-07-27 Marek Polacek <polacek@redhat.com>
12420 * ipa-devirt.c (types_same_for_odr): Fix typo.
12422 2015-07-27 Jason Merrill <jason@redhat.com>
12425 * dwarf2out.c (gen_inlined_subroutine_die): Check
12426 cgraph_function_possibly_inlined_p.
12428 2015-07-27 Wilco Dijkstra <wdijkstr@arm.com>
12430 * gcc/config/aarch64/aarch64.md (aarch64_lshr_sisd_or_int_<mode>3):
12431 Place integer variant first.
12432 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
12434 2015-07-27 Alan Lawrence <alan.lawrence@arm.com>
12437 * config/arm/arm-builtins.c (enum arm_builtins):
12438 Add ARM_BUILTIN_NEON_BASE and ARM_BUILTIN_NEON_LANE_CHECK.
12439 (ARM_BUILTIN_NEON_BASE): Rename macro to....
12440 (ARM_BUILTIN_NEON_PATTERN_START): ...this.
12441 (arm_init_neon_builtins): Register __builtin_arm_lane_check.
12442 (arm_expand_neon_builtin): Handle ARM_BUILTIN_NEON_LANE_CHECK.
12444 2015-07-27 Alan Lawrence <alan.lawrence@arm.com>
12447 * config/arm/arm-builtins.c (enum arm_type_qualifiers):
12448 Add qualifier_lane_index.
12449 (arm_binop_imm_qualifiers, BINOP_IMM_QUALIFIERS): New.
12450 (arm_getlane_qualifiers): Use qualifier_lane_index.
12451 (arm_lanemac_qualifiers): Rename to...
12452 (arm_mac_n_qualifiers): ...this.
12453 (LANEMAC_QUALIFIERS): Rename to...
12454 (MAC_N_QUALIFIERS): ...this.
12455 (arm_mac_lane_qualifiers, MAC_LANE_QUALIFIERS): New.
12456 (arm_setlane_qualifiers): Use qualifier_lane_index.
12457 (arm_ternop_imm_qualifiers, TERNOP_IMM_QUALIFIERS): New.
12458 (enum builtin_arg): Add NEON_ARG_LANE_INDEX.
12459 (arm_expand_neon_args): Handle NEON_ARG_LANE_INDEX.
12460 (arm_expand_neon_builtin): Handle qualifier_lane_index.
12462 * config/arm/arm-protos.h (neon_lane_bounds): Add const_tree parameter.
12463 * config/arm/arm.c (bounds_check): Likewise, improve error message.
12464 (neon_lane_bounds, neon_const_bounds): Add arguments to bounds_check.
12465 * config/arm/arm_neon_builtins.def (vshrs_n, vshru_n, vrshrs_n,
12466 vrshru_n, vshrn_n, vrshrn_n, vqshrns_n, vqshrnu_n, vqrshrns_n,
12467 vqrshrnu_n, vqshrun_n, vqrshrun_n, vshl_n, vqshl_s_n, vqshl_u_n,
12468 vqshlu_n, vshlls_n, vshllu_n): Change qualifiers to BINOP_IMM.
12469 (vsras_n, vsrau_n, vrsras_n, vrsrau_n, vsri_n, vsli_n): Change
12470 qualifiers to TERNOP_IMM.
12471 (vdup_lane): Change qualifiers to GETLANE.
12472 (vmla_lane, vmlals_lane, vmlalu_lane, vqdmlal_lane, vmls_lane,
12473 vmlsls_lane, vmlslu_lane, vqdmlsl_lane): Change qualifiers to MAC_LANE.
12474 (vmla_n, vmlals_n, vmlalu_n, vqdmlal_n, vmls_n, vmlsls_n, vmlslu_n,
12475 vqdmlsl_n): Change qualifiers to MAC_N.
12477 * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_laneu<mode>,
12478 neon_vget_lanedi, neon_vget_lanev2di, neon_vset_lane<mode>,
12479 neon_vset_lanedi, neon_vdup_lane<mode>, neon_vdup_lanedi,
12480 neon_vdup_lanev2di, neon_vmul_lane<mode>, neon_vmul_lane<mode>,
12481 neon_vmull<sup>_lane<mode>, neon_vqdmull_lane<mode>,
12482 neon_vq<r>dmulh_lane<mode>, neon_vq<r>dmulh_lane<mode>,
12483 neon_vmla_lane<mode>, neon_vmla_lane<mode>, neon_vmlal<sup>_lane<mode>,
12484 neon_vqdmlal_lane<mode>, neon_vmls_lane<mode>, neon_vmls_lane<mode>,
12485 neon_vmlsl<sup>_lane<mode>, neon_vqdmlsl_lane<mode>):
12486 Remove call to neon_lane_bounds.
12488 2015-07-27 Wilco Dijkstra <wdijkstr@arm.com>
12490 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
12491 Place integer variant first.
12493 2015-07-27 Matthew Wahab <matthew.wahab@arm.com>
12495 * config/arm/arm-arches.def: Add "armv6kz". Replace 6ZK with 6KZ
12496 and FL_FOR_ARCH6ZK with FL_FOR_ARCH6KZ.
12497 * config/arm/arm-c.c (arm_cpu_builtins): Emit "__ARM_ARCH_6ZK__"
12498 for armv6kz targets.
12499 * config/arm/arm-cores.def: Replace 6ZK with 6KZ.
12500 * config/arm/arm-protos.h (FL_ARCH6KZ): New.
12501 (FL_FOR_ARCH6ZK): Remove.
12502 (FL_FOR_ARCH6KZ): New.
12503 (arm_arch6zk): New declaration.
12504 * config/arm/arm-tables.opt: Regenerate.
12505 * config/arm/arm.c (arm_arch6kz): New.
12506 (arm_option_override): Set arm_arch6kz.
12507 * config/arm/arm.h (BASE_ARCH_6ZK): Rename to BASE_ARCH_6KZ.
12508 * config/arm/driver-arm.c: Add comment to "armv6zk" entry.
12509 * doc/invoke.texi: Replace "armv6zk" with "armv6kz".
12511 2015-07-27 Marek Polacek <polacek@redhat.com>
12515 * doc/invoke.texi: Document -Wtautological-compare.
12517 2015-07-27 Richard Biener <rguenther@suse.de>
12519 * genmatch.c (decision_tree::gen_gimple): Split out large
12520 subtrees into separate functions.
12521 (decision_tree::gen_generic): Likewise.
12523 2015-07-26 Uros Bizjak <ubizjak@gmail.com>
12525 * config/alpha/alpha.c: Use SUBREG_P predicate.
12526 * config/alpha/predicates.md: Ditto.
12528 2015-07-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
12530 * config.host (s390*-*-*): Include driver-native.c only when
12531 building with s390* as host *and* target.
12533 2015-07-25 Oleg Endo <olegendo@gcc.gnu.org>
12536 * config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
12537 T bit register modified_between_p check.
12539 2015-07-25 Uros Bizjak <ubizjak@gmail.com>
12541 * config/i386/i386.c: Use SUBREG_P predicate.
12542 * config/i386/i386.md: Ditto.
12543 * config/i386/sse.md: Ditto.
12544 * config/i386/predicates.md: Ditto.
12546 2015-07-25 Uros Bizjak <ubizjak@gmail.com>
12549 * config/i386/i386.h (ADJUST_INSN_LENGTH): Use NONDEBUG_INSN_P (INSN)
12550 predicate and INSN_CODE (INSN) >= 0 to check for valid instruction.
12552 2015-07-25 Sebastian Pop <s.pop@samsung.com>
12554 * Makefile.in: Remove use of TREEBROWSER.
12555 * config.in: Regenerated.
12556 * configure: Regenerated.
12557 * configure.ac: Remove definition of TREEBROWSER.
12558 * tree-browser.c: Removed.
12559 * tree-browser.def: Removed.
12561 2015-07-25 Sebastian Pop <s.pop@samsung.com>
12563 * graphite-scop-detection.c: Include gimple-pretty-print.h.
12564 (stmt_simple_for_scop_p): Print when a stmt is not handled in
12566 (scopdet_basic_block_info): Print when a loop or bb cannot be
12567 represented in Graphite.
12569 2015-07-25 Uros Bizjak <ubizjak@gmail.com>
12572 * config/i386/i386.c (ix86_expand_set_or_movmem): Emit main loop
12573 execution guard when min_size is less than size_needed.
12575 2015-07-25 Sebastian Pop <s.pop@samsung.com>
12577 * doc/install.texi: Document supported versions of ISL.
12579 2015-07-25 Jeff Law <law@redhat.com>
12583 * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
12584 unable to find X NE 0 in the tables, return X as the simplified
12586 (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
12587 in VISISTED_BBS, then return failure. Else add nodes from NEXT_PATH
12588 to VISISTED_BBS. */
12589 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
12590 after removing the control flow statement and unnecessary edges.
12592 2015-07-25 David Edelsohn <dje.gcc@gmail.com>
12595 2015-07-23 Alexandre Oliva <aoliva@redhat.com>
12597 PR rtl-optimization/64164
12598 * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
12599 * tree-ssa-copyrename.c: Removed.
12600 * opts.c (default_options_table): Drop -ftree-copyrename. Add
12601 -ftree-coalesce-vars.
12602 * passes.def: Drop all occurrences of pass_rename_ssa_copies.
12603 * common.opt (ftree-copyrename): Ignore.
12604 (ftree-coalesce-inlined-vars): Likewise.
12605 * doc/invoke.texi: Remove the ignored options above.
12606 * gimple-expr.h (gimple_can_coalesce_p): Move declaration
12607 * tree-ssa-coalesce.h: ... here.
12608 * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
12609 headers required by it.
12610 * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
12611 across variables when flag_tree_coalesce_vars. Check register
12612 use and promoted modes to allow coalescing. Moved to
12613 tree-ssa-coalesce.c.
12614 * tree-ssa-live.c (struct tree_int_map_hasher): Move along
12615 with its member functions to tree-ssa-coalesce.c.
12616 (var_map_base_init): Likewise. Renamed to
12617 compute_samebase_partition_bases.
12618 (partition_view_normal): Drop want_bases parameter.
12619 (partition_view_bitmap): Likewise.
12620 * tree-ssa-live.h: Adjust declarations.
12621 * tree-ssa-coalesce.c: Include explow.h.
12622 (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
12623 default defs at the entry point.
12624 (dump_part_var_map): New.
12625 (compute_optimized_partition_bases): New, called by...
12626 (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
12627 of compute_samebase_partition_bases. Adjust.
12628 * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
12629 * cfgexpand.c (leader_merge): New.
12630 (get_rtl_for_parm_ssa_default_def): New.
12631 (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
12632 vars. Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
12633 (expand_one_stack_var_at): Handle anonymous SSA_NAMEs. Drop
12634 redundant MEM attr setting.
12635 (expand_one_stack_var_1): Handle anonymous SSA_NAMEs. Renamed
12637 (expand_one_stack_var): ... this. New wrapper to check and
12638 skip already expanded SSA partitions.
12639 (record_alignment_for_reg_var): New, factored out of...
12640 (expand_one_var): ... this.
12641 (expand_one_ssa_partition): New.
12642 (adjust_one_expanded_partition_var): New.
12643 (expand_one_register_var): Check and skip already expanded SSA
12645 (expand_used_vars): Don't create DECLs for anonymous SSA
12646 names. Expand all SSA partitions, then adjust all SSA names.
12647 (pass::execute): Replace the loops that set
12648 SA.partition_to_pseudo from partition leaders and cleared
12649 DECL_RTL for multi-location variables, and that which used to
12650 rename vars and set attrs, with one that clears DECL_RTL and
12651 checks that PARMs and RESULTs default_defs match DECL_RTL.
12652 * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
12653 * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
12654 * explow.c (promote_ssa_mode): New.
12655 * explow.h (promote_ssa_mode): Declare.
12656 * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
12657 * function.c: Include cfgexpand.h.
12658 (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
12659 (use_register_for_parm_decl): Wrapper for the above to
12660 special-case the result_ptr.
12661 (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
12662 (split_complex_args): Take assign_parm_data_all argument.
12663 Pass it to rtl_for_parm. Set up rtl and context for split
12665 (assign_parms_augmented_arg_list): Adjust.
12666 (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
12667 multiple locations. Recognize split complex args.
12668 (assign_parm_adjust_stack_rtl): Add all and parm arguments,
12669 for rtl_for_parm. For SSA-assigned parms, zero stack_parm.
12670 (assign_parm_setup_block): Prefer SSA-assigned location.
12671 (assign_parm_setup_reg): Likewise. Use entry_parm for equiv
12672 if stack_parm is NULL.
12673 (assign_parm_setup_stack): Prefer SSA-assigned location.
12674 (assign_parms): Maybe reset DECL_RTL of params. Adjust stack
12675 rtl before testing for pointer bounds. Special-case result_ptr.
12676 (expand_function_start): Maybe reset DECL_RTL of result.
12677 Prefer SSA-assigned location for result and static chain.
12678 Factor out DECL_RESULT and SET_DECL_RTL.
12679 * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
12680 anonymous SSA names. Use promote_ssa_mode.
12681 (get_temp_reg): Likewise.
12682 (remove_ssa_form): Adjust.
12683 * stor-layout.c (layout_decl): Don't set mem attributes of
12685 * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
12686 and get its reg_usage for reg invalidation.
12687 (compute_bb_dataflow): Pass it insn.
12688 (emit_notes_in_bb): Likewise.
12690 2015-07-25 Uros Bizjak <ubizjak@gmail.com>
12692 * config/i386/i386.c (ix86_va_start): Remove
12693 unneeded !TARGET_64BIT check.
12694 (ix86_gimplify_va_arg): Ditto.
12696 2015-07-24 Tom de Vries <tom@codesourcery.com>
12698 * graphite-sese-to-poly.c (build_poly_scop): Always call
12699 rewrite_commutative_reductions_out_of_ssa.
12701 2015-07-24 Tom de Vries <tom@codesourcery.com>
12703 * graphite-sese-to-poly.c (is_reduction_operation_p): Limit
12704 flag_associative_math to FLOAT_TYPE_P. Honour
12705 TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.
12707 2015-07-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
12710 * toplev.c (check_global_declaration): Use DECL_SOURCE_LOCATION
12711 and "%qD" in warning_at instead of "%q+D" in warning.
12713 2015-07-24 Uros Bizjak <ubizjak@gmail.com>
12715 * config/i386/i386.c (ix86_call_abi_override): Call ix86_function_abi.
12716 (ix86_function_abi): Cleanup.
12718 2015-07-24 Michael Darling <darlingm@gmail.com>
12721 * acinclude.m4: Reflects renaming of configure.in to configure.ac
12722 * configure: Likewise
12723 * configure.ac: Likewise
12724 * doc/install.texi: Likewise
12725 * doc/tm.texi: Likewise
12726 * doc/tm.texi.in: Likewise
12728 2015-07-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12730 * alias.c (nonoverlapping_memrefs_p): Use std::swap instead of
12731 manually swapping values.
12732 * cse.c (fold_rtx): Likewise.
12733 * lra-eliminations.c (form_sum): Likewise.
12735 2015-07-24 Uros Bizjak <ubizjak@gmail.com>
12738 * config/i386/i386.h (ADJUST_INSN_LENGTH): New define.
12739 * config/i386/i386.md (maybe_prefix_bnd): New attribute.
12740 (*jcc_1, *jcc_2, jump, simple_return_internal)
12741 (simple_return_pop_internal): Set attribute maybe_prefix_bnd.
12742 Set length_nobnd attribute instead of length attribute.
12743 (indirect_jump, *tablejump_1): Set attribute maybe_prefix_bnd.
12744 (length_nobnd): Remove attribute.
12745 (length): Remove length_nobnd processing.
12747 2015-07-24 Nathan Sidwell <nathan@codesourcery.com>
12749 * gimplify.c (omp_default_clause): New function. Reorganize flow
12750 for clarity. Broken out of ...
12751 (omp_notice_variable): ... here.
12753 2015-07-24 Gary Funck <gary@intrepid.com>
12755 PR middle-end/66984
12756 * fold-const.c (fold_binary_loc): Call fold_convert on arguments to
12757 fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.
12759 2015-07-24 Tom de Vries <tom@codesourcery.com>
12761 * tree-parloops.c (gen_parallel_loop): Add debug print for alternative
12762 exit-first loop transform.
12764 2015-07-24 Cesar Philippidis <cesar@codesourcery.com>
12767 * tree-cfg.c (struct replace_decls_d): New struct.
12768 (replace_block_vars_by_duplicates_1): New function.
12769 (replace_block_vars_by_duplicates): Use it to replace the decls
12770 in the value exprs by duplicates.
12772 2015-07-24 Szabolcs Nagy <szabolcs.nagy@arm.com>
12774 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
12775 -shared, -symbolic, -rdynamic.
12777 2015-07-24 Szabolcs Nagy <szabolcs.nagy@arm.com>
12780 * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
12781 -dynamic-linker within %{!static %{!shared, and -rdynamic within
12784 2015-07-24 Ilya Enkovich <enkovich.gnu@gmail.com>
12787 * ipa-inline-analysis.c (estimate_calls_size_and_time): Check
12788 edge summary is available.
12790 2015-07-24 Richard Biener <rguenther@suse.de>
12792 * genmatch.c (struct dt_node): Add statistic fields.
12793 (dt_node::analyze): New method.
12794 (decision_tree::gen_gimple): Call analyze on the root node
12795 and print statistics to stderr.
12796 (decision_tree::gen_generic): Likewise.
12798 2015-07-24 Richard Biener <rguenther@suse.de>
12800 * fold-const.c (fold_binary_loc): Move simplifying of comparisons
12801 against the highest or lowest possible integer ...
12802 * match.pd: ... as patterns here.
12804 2015-07-24 Richard Biener <rguenther@suse.de>
12806 * genmatch.c (struct capture_info): Add same_as field.
12807 (capture_info::capture_info): Initialize same_as.
12808 (capture_info::walk_match): Compute same_as.
12809 (capture_info::walk_result): Compute stuff for the leader.
12810 (capture_info::walk_c_expr): Likewise.
12811 (dt_simplify::gen_1): Only look at leaders when deciding
12812 to force no side-effects or emit side-effects of omitted operands.
12814 2015-07-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12816 * config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
12817 reg note to the GPR -> FPR save instructions.
12819 2015-07-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12821 * config/s390/s390.c (s390_rtx_costs): Make risbg patterns
12823 (s390_expand_insv): Don't generate risbg pattern for constant zero
12825 * config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
12826 ("*insv<mode>_z10_appendbitsleft"): New pattern definitions. New
12829 2015-07-24 Dominik Vogt <vogt@linux.vnet.ibm.com>
12831 * config/s390/s390.c (s390_reorg): Clean up handling of processors
12834 (s390_issue_rate): Likewise.
12835 (s390_sched_reorder): Likewise.
12836 (s390_sched_variable_issue): Likewise.
12837 (s390_loop_unroll_adjust): Likewise.
12838 (s390_option_override): Likewise.
12840 2015-07-24 Dominik Vogt <vogt@linux.vnet.ibm.com>
12842 * config/s390/driver-native.c (s390_host_detect_local_cpu): Handle
12843 processor capabilities with -march=native.
12844 * config/s390/s390.h (MARCH_MTUNE_NATIVE_SPECS): Likewise.
12845 (DRIVER_SELF_SPECS): Likewise. Join specs for 31 and 64 bit.
12846 (S390_TARGET_BITS_STRING): Macro to simplify specs.
12848 2015-07-24 Dominik Vogt <vogt@linux.vnet.ibm.com>
12850 * config/s390/s390.c (s390_issue_rate): Handle
12851 PROCESSOR_2094_Z9_EC.
12852 (s390_option_override): Likewise.
12853 (s390_adjust_priority): Likewise.
12855 2015-07-24 Dominik Vogt <vogt@linux.vnet.ibm.com>
12857 * config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS
12858 when cross compiling.
12860 2015-07-24 Richard Biener <rguenther@suse.de>
12862 * fold-const.c (maybe_canonicalize_comparison_1): Move
12863 A code CST canonicalization ...
12864 * match.pd: ... to a pattern here.
12866 2015-07-24 Jiong Wang <jiong.wang@arm.com>
12869 2015-07-22 Jiong Wang <jiong.wang@arm.com>
12871 * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
12872 (HONOR_REG_ALLOC_ORDER): Define.
12874 2015-07-24 Richard Biener <rguenther@suse.de>
12876 * genmatch.c (add_operator): Allow SSA_NAME as predicate.
12877 * fold-const.c (fold_comparison): Move parameter does not
12878 alias &local simplification ...
12879 * match.pd: ... as a pattern here.
12881 2015-07-24 Richard Biener <rguenther@suse.de>
12883 * gimple-fold.c (replace_stmt_with_simplification): Special-case
12884 valueizing call operands.
12885 * gimple-match-head.c (maybe_push_res_to_seq): Take
12886 number of call arguments from ops array.
12887 (do_valueize): New function.
12888 (gimple_simplify): Return true if valueization changed
12889 any operand even if the result didn't simplify further.
12891 2015-07-24 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
12893 PR middle-end/25530
12894 * match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.
12896 2015-07-24 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
12898 PR middle-end/25529
12899 * match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.
12901 2015-07-23 Kugan Vivekanandarajah <kuganv@linaro.org>
12903 * config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
12906 2015-07-23 Kugan Vivekanandarajah <kuganv@linaro.org>
12908 * cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
12911 2015-07-23 Uros Bizjak <ubizjak@gmail.com>
12913 * config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
12914 from ix86_build_builtin_va_list_abi. Handle only 64bit non-MS_ABI
12916 (ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
12917 ms_va_list_type_node initialization.
12919 2015-07-23 Jeff Law <law@redhat.com>
12922 * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
12923 unable to find X NE 0 in the tables, return X as the simplified
12925 (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
12926 in VISISTED_BBS, then return failure. Else add nodes from NEXT_PATH
12927 to VISISTED_BBS. */
12928 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
12929 after removing the control flow statement and unnecessary edges.
12931 2015-07-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
12933 * tree-pass.h (get_current_pass_name): Removed.
12935 2015-07-23 Alexandre Oliva <aoliva@redhat.com>
12937 PR rtl-optimization/64164
12938 * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
12939 * tree-ssa-copyrename.c: Removed.
12940 * opts.c (default_options_table): Drop -ftree-copyrename. Add
12941 -ftree-coalesce-vars.
12942 * passes.def: Drop all occurrences of pass_rename_ssa_copies.
12943 * common.opt (ftree-copyrename): Ignore.
12944 (ftree-coalesce-inlined-vars): Likewise.
12945 * doc/invoke.texi: Remove the ignored options above.
12946 * gimple-expr.h (gimple_can_coalesce_p): Move declaration
12947 * tree-ssa-coalesce.h: ... here.
12948 * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
12949 headers required by it.
12950 * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
12951 across variables when flag_tree_coalesce_vars. Check register
12952 use and promoted modes to allow coalescing. Moved to
12953 tree-ssa-coalesce.c.
12954 * tree-ssa-live.c (struct tree_int_map_hasher): Move along
12955 with its member functions to tree-ssa-coalesce.c.
12956 (var_map_base_init): Likewise. Renamed to
12957 compute_samebase_partition_bases.
12958 (partition_view_normal): Drop want_bases parameter.
12959 (partition_view_bitmap): Likewise.
12960 * tree-ssa-live.h: Adjust declarations.
12961 * tree-ssa-coalesce.c: Include explow.h.
12962 (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
12963 default defs at the entry point.
12964 (dump_part_var_map): New.
12965 (compute_optimized_partition_bases): New, called by...
12966 (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
12967 of compute_samebase_partition_bases. Adjust.
12968 * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
12969 * cfgexpand.c (leader_merge): New.
12970 (get_rtl_for_parm_ssa_default_def): New.
12971 (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
12972 vars. Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
12973 (expand_one_stack_var_at): Handle anonymous SSA_NAMEs. Drop
12974 redundant MEM attr setting.
12975 (expand_one_stack_var_1): Handle anonymous SSA_NAMEs. Renamed
12977 (expand_one_stack_var): ... this. New wrapper to check and
12978 skip already expanded SSA partitions.
12979 (record_alignment_for_reg_var): New, factored out of...
12980 (expand_one_var): ... this.
12981 (expand_one_ssa_partition): New.
12982 (adjust_one_expanded_partition_var): New.
12983 (expand_one_register_var): Check and skip already expanded SSA
12985 (expand_used_vars): Don't create DECLs for anonymous SSA
12986 names. Expand all SSA partitions, then adjust all SSA names.
12987 (pass::execute): Replace the loops that set
12988 SA.partition_to_pseudo from partition leaders and cleared
12989 DECL_RTL for multi-location variables, and that which used to
12990 rename vars and set attrs, with one that clears DECL_RTL and
12991 checks that PARMs and RESULTs default_defs match DECL_RTL.
12992 * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
12993 * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
12994 * explow.c (promote_ssa_mode): New.
12995 * explow.h (promote_ssa_mode): Declare.
12996 * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
12997 * function.c: Include cfgexpand.h.
12998 (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
12999 (use_register_for_parm_decl): Wrapper for the above to
13000 special-case the result_ptr.
13001 (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
13002 (split_complex_args): Take assign_parm_data_all argument.
13003 Pass it to rtl_for_parm. Set up rtl and context for split
13005 (assign_parms_augmented_arg_list): Adjust.
13006 (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
13007 multiple locations. Recognize split complex args.
13008 (assign_parm_adjust_stack_rtl): Add all and parm arguments,
13009 for rtl_for_parm. For SSA-assigned parms, zero stack_parm.
13010 (assign_parm_setup_block): Prefer SSA-assigned location.
13011 (assign_parm_setup_reg): Likewise. Use entry_parm for equiv
13012 if stack_parm is NULL.
13013 (assign_parm_setup_stack): Prefer SSA-assigned location.
13014 (assign_parms): Maybe reset DECL_RTL of params. Adjust stack
13015 rtl before testing for pointer bounds. Special-case result_ptr.
13016 (expand_function_start): Maybe reset DECL_RTL of result.
13017 Prefer SSA-assigned location for result and static chain.
13018 Factor out DECL_RESULT and SET_DECL_RTL.
13019 * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
13020 anonymous SSA names. Use promote_ssa_mode.
13021 (get_temp_reg): Likewise.
13022 (remove_ssa_form): Adjust.
13023 * stor-layout.c (layout_decl): Don't set mem attributes of
13025 * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
13026 and get its reg_usage for reg invalidation.
13027 (compute_bb_dataflow): Pass it insn.
13028 (emit_notes_in_bb): Likewise.
13030 2015-07-23 Segher Boessenkool <segher@kernel.crashing.org>
13033 * config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
13035 * config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
13036 (rs6000_emit_2insn_and): Handle dot forms.
13037 * config/rs6000/rs6000.md (and<mode>3): Adjust.
13038 (*and<mode>3_2insn): Remove TODO. Adjust. Add "type" attr.
13039 (*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.
13041 2015-07-23 Richard Biener <rguenther@suse.de>
13043 * generic-match-head.c: Include cgraph.h.
13044 * gimple-match-head.c: Likewise.
13045 * tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
13047 * fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
13048 * match.pd: ...to a pattern here. Add &A ==/!= 0 simplification
13051 2015-07-23 Richard Biener <rguenther@suse.de>
13053 * gimple-fold.c (fold_gimple_cond): Do not require folding
13054 results to pass valid_gimple_rhs_p.
13055 * tree-cfg.h (fold_cond_expr_cond): Remove.
13056 * tree-cfg.c (fold_cond_expr_cond): Likewise.
13057 (make_edges): Do not call it.
13058 * tree-inline.c (tree_function_versioning): Likewise.
13060 2015-07-23 Tom de Vries <tom@codesourcery.com>
13062 * tree-parloops.c (gather_scalar_reductions): Add arg to call to
13063 vect_force_simple_reduction.
13064 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
13065 (vect_is_simple_reduction_1): Add and handle
13066 need_wrapping_integral_overflow parameter.
13067 (vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
13068 need_wrapping_integral_overflow parameter.
13069 (vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
13070 * tree-vectorizer.h (vect_force_simple_reduction): Add parameter to
13073 2015-07-23 Yuri Rumyantsev <ysrumyan@gmail.com>
13075 PR tree-optimization/66926,66951
13076 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Delete
13077 INNER_LOOP and fix up condition for renaming virtual operands.
13079 2015-07-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13081 * combine.c (try_combine): Use std::swap instead of manually
13084 2015-07-23 Prachi Godbole <prachi.godbole@imgtec.com>
13086 * config/mips/i6400.md: New file.
13087 * config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
13088 (mips64r6): Likewise.
13090 * config/mips/mips-tables.opt: Regenerate.
13091 * config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
13092 (mips_issue_rate): Add support for i6400.
13093 (mips_multipass_dfa_lookahead): Likewise.
13094 * config/mips/mips.h (TUNE_I6400): Define.
13095 * config/mips/mips.md: Include i6400.md.
13096 (processor): Add i6400.
13097 * doc/invoke.texi (-march=@var{arch}): Add i6400.
13099 2015-07-23 Richard Biener <rguenther@suse.de>
13101 PR middle-end/66916
13102 * match.pd: Guard widen and sign-change comparison simplification
13105 2015-07-23 Richard Biener <rguenther@suse.de>
13107 PR tree-optimization/66945
13108 * tree-ssa-propagate.c (substitute_and_fold_dom_walker
13109 ::before_dom_children): Force the propagators idea of
13110 non-executable edges to materialize, not what the folder
13113 2015-07-23 Richard Biener <rguenther@suse.de>
13115 * gimple.h (gimple_cond_make_false): Use 0 != 0.
13116 (gimple_cond_make_true): Use 1 != 0.
13118 2015-07-22 DJ Delorie <dj@redhat.com>
13120 * config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
13123 * config/msp430/msp430.md (ashlhi3): Optimize shifts of subregs.
13124 (ashrhi3): Likewise.
13125 (lshrhi3): Likewise.
13126 (movhi): Take advantage of zero-extend to load small constants.
13127 (movpsi): Likewise.
13128 (and<mode>3): Likewise.
13129 (zero_extendqihi2): Likewise.
13130 (zero_extendqisi2): New.
13131 * config/msp430/constraints.md (N,O): New.
13132 * config/msp430/msp430.h (WORD_REGISTER_OPERATIONS): Define.
13134 2015-07-22 Uros Bizjak <ubizjak@gmail.com>
13137 * config/i386/i386.c (get_builtin_code_for_version): Add P_AES
13138 to enum feature_priority and feature_list.
13139 (fold_builtin_cpu): Add F_AES to enum processor_features
13140 and isa_names_table.
13142 2015-07-22 Ilya Enkovich <enkovich.gnu@gmail.com>
13145 * config/i386/linux-common.h (MPX_SPEC): Use linker option
13146 for 64bit target only.
13148 2015-07-22 Bernd Schmidt <bernds@codesourcery.com>
13150 * config/nvptx/nvptx.c: Expand some comments.
13152 2015-07-22 James Greenhalgh <james.greenhalgh@arm.com>
13154 * config/arm/cortex-a53 (cortex_53_advsimd): Rename to...
13155 (cortex_a53_advsimd): ...This.
13157 2015-07-22 Richard Biener <rguenther@suse.de>
13159 * genmatch.c (expr::gen_transform): Clarify error message
13160 and display location.
13162 2015-07-22 Richard Biener <rguenther@suse.de>
13164 * genmatch.c (struct operand): Add location member.
13165 (predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
13167 (struct simplify): Remove match_location and result_location
13169 (elsehwere): Adjust.
13171 2015-07-22 Prachi Godbole <prachi.godbole@imgtec.com>
13173 * config/mips/m5100.md: New file.
13174 * config/mips/mips-cpus.def (m5100, m5101): Define.
13175 * config/mips/mips-tables.opt: Regenerate.
13176 * config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
13177 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
13178 -march=m5101 to -mips32r5.
13179 (MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
13180 (MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
13182 * config/mips/mips.md: Include m5100.md.
13183 (processor): Add m5100.
13184 * doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
13186 2015-07-22 Robert Suchanek <robert.suchanek@imgtec.com>
13188 * config/mips/mips-cpus.def (interaptiv): Define.
13189 * config/mips/mips-tables.opt: Regenerate.
13190 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
13192 (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
13193 * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
13195 2015-07-22 Jiong Wang <jiong.wang@arm.com>
13198 * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
13199 (HONOR_REG_ALLOC_ORDER): Define.
13201 2015-07-22 Richard Biener <rguenther@suse.de>
13203 PR tree-optimization/66952
13204 * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
13205 blocks we end up executing unconditionally reset all SSA
13206 info such as range and alignment.
13207 * tree-ssanames.h (reset_flow_sensitive_info): Declare.
13208 * tree-ssanames.c (reset_flow_sensitive_info): New function.
13210 2015-07-22 Charles Baylis <charles.baylis@linaro.org>
13212 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
13215 2015-07-22 Richard Biener <rguenther@suse.de>
13217 * genmatch.c (parser::parse_result): Properly handle
13218 match with result operands and conditions.
13220 2015-07-22 Charles Baylis <charles.baylis@linaro.org>
13223 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
13224 Add qualifier_struct_load_store_lane_index.
13225 (aarch64_types_loadstruct_lane_qualifiers): Use
13226 qualifier_struct_load_store_lane_index for lane index argument for
13228 (aarch64_types_storestruct_lane_qualifiers): Ditto.
13229 (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
13230 (aarch64_simd_expand_args): Add new argument describing mode of
13231 builtin. Check lane bounds for arguments with
13232 SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
13233 (aarch64_simd_expand_builtin): Emit error for incorrect lane indices
13234 if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
13235 (aarch64_simd_expand_builtin): Handle arguments with
13236 qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
13237 aarch64_simd_expand_args.
13238 * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
13239 vst[234]_lane with BUILTIN_VALLDIF.
13240 * config/aarch64/aarch64-simd.md:
13241 (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
13242 endianness reversal on lane index.
13243 (aarch64_vec_load_lanesci_lane<mode>): Ditto.
13244 (aarch64_vec_load_lanesxi_lane<mode>): Ditto.
13245 (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
13246 (vec_store_lanesci_lane<mode>): Ditto.
13247 (vec_store_lanesxi_lane<mode>): Ditto.
13248 (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
13249 reversal of lane index.
13250 (aarch64_ld3_lane<mode>): Ditto.
13251 (aarch64_ld4_lane<mode>): Ditto.
13252 (aarch64_st2_lane<mode>): Ditto.
13253 (aarch64_st3_lane<mode>): Ditto.
13254 (aarch64_st4_lane<mode>): Ditto.
13255 * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
13256 to qmode. Add new mode parameter. Update uses.
13257 (__LD3_LANE_FUNC): Ditto.
13258 (__LD4_LANE_FUNC): Ditto.
13259 (__ST2_LANE_FUNC): Ditto.
13260 (__ST3_LANE_FUNC): Ditto.
13261 (__ST4_LANE_FUNC): Ditto.
13263 2015-07-22 Jonathan Wakely <jwakely@redhat.com>
13265 * doc/invoke.texi (Language Independent Options): Rename node to
13266 Diagnostic Message Formatting Options.
13268 2015-07-21 Vladimir Makarov <vmakarov@redhat.com>
13271 * lra-remat.c (operand_to_remat): Prevent using insns with input
13272 subregs processed separately by IRA.
13274 2015-07-21 Andrew MacLeod <amacleod@redhat.com>
13276 * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
13278 (single_imm_use): Check for iterator node.
13279 (num_imm_uses): Likewise.
13280 * tree-ssa-operands.c (has_zero_uses_1): Delete.
13281 (single_imm_use_1): Check for iterator node.
13283 2015-07-21 Mike Frysinger <vapier@gentoo.org>
13284 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
13286 * configure.ac: Add check for new options in isl-0.15.
13287 * config.in, configure: Rebuilt.
13288 * graphite-blocking.c: Include <isl/constraint.h>
13289 * graphite-interchange.c, graphite-poly.c: Likewise.
13290 * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
13291 * graphite.c: Likewise.
13292 * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
13294 * graphite-dependences.c: Include <isl/constraint.h>.
13295 (max_number_of_out_dimensions): Returns isl_stat.
13296 (extend_schedule_1): Likewise
13297 (extend_schedule): Corresponding changes.
13298 * graphite-optimize-isl.c: Include <isl/constraint.h> and
13300 (getSingleMap): Change return type of isl_stat.
13301 (optimize_isl): Conditionally use
13302 isl_options_set_schedule_serialize_sccs.
13303 * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
13304 if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
13306 2015-07-21 Georg-Johann Lay <avr@gjlay.de>
13309 * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
13310 (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
13312 2015-07-21 Richard Biener <rguenther@suse.de>
13314 PR tree-optimization/66948
13315 * genmatch.c (capture_info::walk_match): Also recurse to
13316 captures. Properly compute expr state from captures of
13318 * match.pd: Add single-use guards to
13319 (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
13321 2015-07-21 Nathan Sidwell <nathan@codesourcery.com>
13323 * config/nvptx/mkoffload.c (process): Add static destructor call.
13325 2015-07-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13327 PR middle-end/66915
13328 * match.pd (A - B -> A + (-B)): Don't allow folding
13329 when type if a fixed-point type.
13331 2015-07-20 DJ Delorie <dj@redhat.com>
13333 * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
13334 (iorqi3_real): Likewise for set1.
13336 2015-07-20 Uros Bizjak <ubizjak@gmail.com>
13338 * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
13341 2015-07-20 Aditya Kumar <hiraditya@msn.com>
13343 * graphite-isl-ast-to-gimple.c:
13344 Refactor so that each function can access 'region'. This will help
13345 maintain a parameter rename_map within a region.
13347 2015-07-20 Segher Boessenkool <segher@kernel.crashing.org>
13349 * config/rs6000/rs6000.md (*lt0_disi): New.
13351 2015-07-20 Segher Boessenkool <segher@kernel.crashing.org>
13354 * config/rs6000/constraints.md ("S", "T", "t"): Delete. Update
13355 "available letters" comment.
13356 * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
13357 mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
13358 and_2rld_operand): Delete.
13359 (and_operand): Adjust.
13360 (rotate_mask_operator): New.
13361 * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
13362 includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
13363 includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
13364 extract_ME): Delete.
13365 (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
13366 rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
13367 rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
13368 rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
13369 rs6000_emit_2insn_and): New.
13370 * config/rs6000/rs6000.c (num_insns_constant): Adjust.
13371 (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
13372 includes_rldic_lshift_p, includes_rldicr_lshift_p,
13373 insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
13374 (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
13375 rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
13376 s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
13377 rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
13378 rs6000_emit_2insn_and): New.
13379 (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
13380 (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
13382 <NOT>: Don't fall through to next case.
13383 <AND>: Handle the various rotate-and-mask cases directly.
13384 <IOR>: Always cost as one insn.
13385 * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
13386 (and<mode>3): Adjust expander for the new patterns.
13387 (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
13388 and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
13389 (*and<mode>3_imm_dot_shifted): New.
13390 (*and<mode>3_mask): Delete, rewrite as ...
13391 (and<mode>3_mask): ... New.
13392 (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
13393 (andsi3_internal0_nomc): Delete.
13394 (*andsi3_internal6): Delete.
13395 (*and<mode>3_2insn): New.
13396 (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
13397 *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
13398 *insvsi_internal6, insvdi_internal, *insvdi_internal2,
13399 *insvdi_internal3): Delete.
13400 (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
13401 *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
13402 *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
13403 *ior<mode>_mask): New.
13404 (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
13405 *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
13406 *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
13407 *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
13409 (ashr<mode>3): Delete expander.
13410 (*ashr<mode>3): Rename to ...
13411 (ashr<mode>3): ... This.
13412 (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
13413 (*rotldi3_internal4, *rotldi3_internal5 and split,
13414 *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
13415 and split, *ashldi3_internal6 and split, *ashldi3_internal7,
13416 ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
13417 (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
13418 (splitter for loading a mask): Adjust.
13419 * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
13421 2015-07-20 Marek Polacek <polacek@redhat.com>
13423 * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
13424 output_add_clobbers, output_added_clobbers_hard_reg_p,
13425 gen_rtx_scratch): Remove declarations.
13427 2015-07-20 Marek Polacek <polacek@redhat.com>
13430 * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
13432 2015-07-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13434 * simplify-rtx.c (simplify_unary_operation_1, NEG case):
13435 (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
13437 2015-07-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13439 * combine.c (combine_simplify_rtx): Move simplification step
13440 before various transformations/substitutions.
13442 2015-07-20 Mikhail Maltsev <maltsevm@gmail.com>
13444 * wide-int.h (struct binary_traits): Fix partial specialization syntax.
13445 (struct int_traits): Likewise.
13447 2015-07-18 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13449 * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
13450 function to vmsdbgout_function_decl.
13452 2015-07-18 Uros Bizjak <ubizjak@gmail.com>
13455 * config/i386/i386.c (ix86_expand_pextr): Reject extractions
13456 from misaligned positions.
13457 (ix86_expand_pinsr): Reject insertions to misaligned positions.
13459 2015-07-18 Sebastian Pop <s.pop@samsung.com>
13461 PR middle-end/46851
13462 PR middle-end/60340
13463 * Makefile.in: Removed omega.o.
13464 * common.opt: Document flag fcheck-data-deps as deprecated.
13465 * doc/invoke.texi: Remove documentation for fcheck-data-deps and
13466 its associated params: omega-max-vars, omega-max-geqs,
13467 omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
13468 omega-max-keys, omega-eliminate-redundant-constraints.
13469 * doc/loop.texi: Remove all the section on Omega.
13470 * graphite-blocking.c: Include missing params.h: it used to be
13471 included through tree-data-ref.h and omega.h.
13472 * graphite-isl-ast-to-gimple.c: Same.
13473 * graphite-optimize-isl.c: Same.
13474 * graphite-sese-to-poly.c: Same.
13475 * graphite.c: Same.
13478 * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
13479 PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
13480 PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
13481 PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
13482 * passes.def: Remove pass_check_data_deps.
13483 * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
13484 (dump_conflict_function): Same.
13485 (dump_subscript): Same.
13486 (print_direction_vector): Same.
13487 (print_dir_vectors): Same.
13488 (print_lambda_vector): Same.
13489 (print_dist_vectors): Same.
13490 (dump_data_dependence_relation): Same.
13491 (dump_data_dependence_relations): Same.
13492 (dump_dist_dir_vectors): Same.
13494 (init_omega_eq_with_af): Removed.
13495 (omega_extract_distance_vectors): Removed.
13496 (omega_setup_subscript): Removed.
13497 (init_omega_for_ddr_1): Removed.
13498 (init_omega_for_ddr): Removed.
13499 (ddr_consistent_p): Removed.
13500 (compute_affine_dependence): Do not use omega to check data
13502 (compute_data_dependences_for_bb): Removed.
13503 (analyze_all_data_dependences): Removed.
13504 (tree_check_data_deps): Removed.
13505 * tree-data-ref.h: Do not include omega.h.
13506 (compute_data_dependences_for_bb): Removed.
13507 (tree_check_data_deps): Removed.
13508 * tree-ssa-loop.c (pass_check_data_deps): Removed.
13509 (make_pass_check_data_deps): Removed.
13510 * tree-ssa-phiopt.c: Include params.h.
13511 * tree-vect-data-refs.c: Same.
13512 * tree-vect-slp.c: Same.
13514 2015-07-18 Uros Bizjak <ubizjak@gmail.com>
13516 * config/i386/i386.md (pushsf splitter): Pass curr_insn to
13517 find_constant_src. FAIL if find_constant_src returns NULL_RTX.
13518 (mem->fpreg splitters): Ditto.
13519 (general_operand->nonimmediate_operand splitter): Use explicit modes.
13520 Disable DFmode for TARGET_64BIT.
13522 2015-07-17 H.J. Lu <hongjiu.lu@intel.com>
13525 * config/i386/i386.c (ix86_expand_prologue): Replicate static
13526 chain on the stack.
13528 2015-07-17 Nathan Sidwell <nathan@codesourcery.com>
13530 * config/nvptx/mkoffload.c (process): Constify host data.
13531 * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
13532 Constify host data.
13533 (generate_host_descr_file): Likewise.
13535 2015-07-17 Aditya Kumar <aditya.k7@samsung.com>
13536 Sebastian Pop <s.pop@samsung.com>
13538 PR middle-end/61929
13539 * graphite-dependences.c (add_pdr_constraints): Renamed
13540 pdr->extent to pdr->subscript_sizes.
13541 * graphite-interchange.c (build_linearized_memory_access): Add
13542 back all gcc_assert's that the "isl_int to isl_val conversion"
13543 patch has removed. Refactored.
13544 (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
13545 * graphite-poly.c (new_poly_dr): Same.
13546 (free_poly_dr): Same.
13547 * graphite-poly.h (struct poly_dr): Same.
13548 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
13549 all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
13550 * graphite-scop-detection.h: Fix space.
13551 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
13552 back all gcc_assert's removed by a previous patch.
13553 (wrap): Remove the_isl_ctx global variable that the same patch has
13555 (build_loop_iteration_domains): Same.
13556 (add_param_constraints): Same.
13557 (pdr_add_data_dimensions): Same. Refactored.
13558 (build_poly_dr): Renamed extent to subscript_sizes.
13560 2015-07-17 Marek Polacek <polacek@redhat.com>
13562 * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
13563 * match.pd: ... here.
13565 2015-07-17 Nathan Sidwell <nathan@codesourcery.com>
13567 * config/nvptx/mkoffload.c (process): Constify target data.
13568 * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
13569 Constify target data.
13570 (generate_target_offloadend_file): Likewise.
13572 2015-07-17 Yuri Rumyantsev <ysrumyan@gmail.com>
13574 * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
13575 to allow renaming of PHI arguments on edges incoming from outer
13576 loop header, add corresponding check before start PHI iterator.
13577 (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
13578 variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
13579 with true force_vectorize. Set-up dominator for outer loop too.
13580 Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
13581 (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
13582 was marked with force_vectorize and has restricted cfg.
13583 (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
13585 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
13586 do peeling for outer loops.
13588 2015-07-17 Yvan Roux <yvan.roux@linaro.org>
13589 Matthias Klose <doko@ubuntu.com>
13591 * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
13592 build-sysroot, sysroot from the `Miscenalleous configure options' to
13593 the `Directories' section and strip trailing `/' from with_sysroot.
13594 (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
13595 * configure: Regenerated.
13597 2015-07-17 Uros Bizjak <ubizjak@gmail.com>
13600 * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
13601 (TARGET_HARD_DF_REGS): Ditto.
13602 (TARGET_HARD_XF_REGS): Ditto.
13603 * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
13604 Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
13605 (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
13606 alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
13607 (*movsf_internal): Add alternatives 16 and 17. Enable
13608 alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
13610 2015-07-17 Uros Bizjak <ubizjak@gmail.com>
13612 PR rtl-optimization/66891
13613 * calls.c (expand_call): Wrap precompute_register_parameters with
13614 NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
13616 2015-07-16 Nathan Sidwell <nathan@codesourcery.com>
13618 * config/nvptx/mkoffload.c (process): Constify mapping variables.
13619 Define target data struct and initialize it.
13621 2015-07-16 Vladimir Makarov <vmakarov@redhat.com>
13623 PR rtl-optimization/66626
13624 * ira.h (emit-rtl.h): Include.
13625 (non_spilled_static_chain_regno_p): New.
13626 * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
13627 unless it is non spilled static chain pseudo.
13628 (assign_hard_rego): Spill memory profitable allocno unless it is
13629 non spilled static chain pseudo.
13630 (allocno_spill_priority_compare): Put non spilled static chain
13631 pseudo at the end of sorted array.
13632 (improve_allocation): Do nothing if we have static chain and
13634 (allocno__priority_compare_func): Put non spilled static chain
13635 pseudo at the beginning of sorted array.
13636 (move_spill_restore): Ignore non spilled static chain pseudo.
13637 * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
13638 to non spilled static chain pseudo.
13639 * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
13640 pseudo at the beginning of sorted array.
13641 (spill_for): Spill non spilled static chain pseudo last.
13642 * lra-constraints.c (lra_constraints): Remove static chain pseudo
13643 check for equivalence.
13645 2015-07-16 Martin Liska <mliska@suse.cz>
13648 * ipa-prop.c (update_jump_functions_after_inlining): Create properly
13649 dst_ctx if it does not exist.
13651 2015-07-16 Martin Liska <mliska@suse.cz>
13653 * hash-set.h (remove): New function.
13654 (iterator): New iteration class for hash_set.
13656 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
13658 * genattrtab.c (make_canonical): Add a file_location parameter.
13659 Use fatal_at rather than fatal.
13660 (get_attr_value): Likewise. Update call to make_canonical.
13661 (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
13662 (make_internal_attr): Update calls accordingly.
13664 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
13666 * read-md.h (message_with_line, error_with_line): Delete.
13667 * read-md.c (message_with_line, error_with_line): Delete.
13668 * gensupport.h: Include read-md.h.
13669 (md_rtx_info): New structure.
13670 (read_md_rtx): Use it. Return a bool success value.
13671 * gensupport.c (read_md_rtx): Likewise.
13672 * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
13673 (main): Update after interface changes.
13674 * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
13675 (main): Update after interface changes.
13676 * genattrtab.c (insn_code_number): Delete.
13677 (optimize_attrs): Add a max_insn_code parameter and use it instead
13678 of insn_code_number.
13679 (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
13680 Use *_at rather than *_with_line functions.
13681 (gen_insn): Likewise.
13682 (gen_delay): Likewise.
13683 (gen_insn_reserv): Likewise.
13684 (gen_bypass): Take an md_rtx_info rather than an rtx.
13685 (main): Update after interface changes. Use a local max_insn_code
13686 variable instead of insn_code_number.
13687 * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
13688 an rtx. Use fatal_at rather than fatal.
13689 (gen_query_cpu_unit, gen_bypass, gen_excl_set)
13690 (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
13691 (gen_absence_set, gen_final_absence_set, gen_automaton)
13692 (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
13693 (main): Update after interface changes.
13694 * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
13696 (main): Update after interface changes.
13697 * genconditions.c (main): Use new read_md_rtx interface.
13698 * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
13699 (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
13700 (main): Update after interface changes.
13701 * genemit.c (insn_code_number, insn_index_number): Delete.
13702 (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
13703 Use fatal_at rather than fatal.
13704 (gen_expand): Take an md_rtx_info rather than an rtx. Use fatal_at
13706 (gen_split): Likewise.
13707 (main): Update after interface changes.
13708 * genextract.c (line_no): Delete.
13709 (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
13710 Update call to walk_rtx.
13711 (VEC_safe_set_locstr): Add an md_rtx_info argument. Use message_at
13712 rather than message_with_line.
13713 (walk_rtx): Add an md_rtx_info argument. Update call to
13714 VEC_safe_set_locstr.
13715 (main): Update after interface changes.
13716 * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
13717 and lineno. Use error_at rather than separate message_with_line
13718 calls and have_error assignments.
13719 (main): Update after interface changes.
13720 * genmddump.c (main): Use new read_md_rtx interface.
13721 * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
13722 (main): Update after interface changes.
13723 * genoutput.c (next_code_number): Delete.
13724 (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
13725 (gen_peephole, gen_expand, gen_split): Likewise.
13726 (note_constraint): Likewise. Use *_at rather than *_with_line
13728 (main): Update after interface changes.
13729 * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
13731 (main): Update after interface changes.
13732 * genpreds.c (process_define_predicate): Take an md_rtx_info rather
13733 than an rtx and lineno.
13734 (process_define_constraint): Likewise.
13735 (process_define_register_constraint): Likewise.
13736 (main): Update after interface changes.
13737 * genrecog.c (next_insn_code, pattern_lineno): Delete.
13738 (validate_pattern): Replace top-level rtx with an md_rtx_info.
13739 Use *_at rather than *_with_line functions.
13740 (match_pattern_2): Likewise.
13741 (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
13742 (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
13743 Use *_at rather than *_with_line functions.
13744 * gentarget-def.c (add_insn): New function.
13745 (main): Use it. Use new read_md_rtx interface.
13747 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
13749 * gensupport.h (compute_test_codes): Take a file_location rather
13750 than a line number.
13751 * gensupport.c (compute_test_codes): Likewise. Use *_at functions
13752 rather than *_with_line functions.
13753 (process_define_predicate): Update call to compute_test_codes.
13754 * genpreds.c (validate_exp): Take a file_location rather than a
13755 line number. Use *_at functions rather than *_with_line functions.
13756 (process_define_predicate): Update call to validate_exp.
13757 (constraint_data): Replace lineno field with a file_location.
13758 (add_constraint): Take a file_location rather than a line number.
13759 Use *_at functions rather than *_with_line functions. Fix error
13760 message for address constraints. Update after changes to
13761 validate_exp, constraint_data and compute_test_codes.
13762 (process_define_constraint): Update accordingly.
13763 (process_define_register_constraint): Likewise.
13765 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
13767 * genoutput.c (data): Use a file_location to record the source
13770 (idata, idata_end): Remove initialization.
13771 (constraint_data): Replace lineno with a file_location.
13772 (output_insn_data): Update after changes to data.
13773 (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
13774 (scan_operands): Likewise, using *_at rather than *_with_line
13776 (process_template): Likewise.
13777 (validate_insn_alternatives): Likewise.
13778 (validate_insn_operands): Likewise.
13779 (validate_optab_operands): Likewise.
13780 (init_insn_for_nothing): Initialize idata and idata_end.
13781 (note_constraint): Update after changes to constraint_data,
13782 using at rather than with_line functions.
13783 (mdep_constraint_len): Take a file_location rather than a
13784 line number. Use at rather than with_line functions.
13786 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
13788 * read-md.h (fatal_at): Declare.
13789 * read-md.c (fatal_at): New function.
13790 * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
13791 to record the source position.
13792 (check_attr_test): Take a file_location instead of a line number.
13793 Use fatal_at instead of fatal.
13794 (check_attr_value): Update after above changes, using "at"
13795 rather than "with_line" reporting functions.
13796 (convert_set_attr_alternative): Likewise.
13797 (gen_attr): Likewise.
13798 (check_defs): Likewise. Don't assign to read_md_filename.
13799 (gen_insn): Update initialization after above changes.
13800 (gen_delay): Likewise.
13801 (write_insn_cases): Print the filename for a define_peephole.
13802 (gen_insn_reserv): Take a line number as argument and update
13803 the call to check_attr_test.
13804 (main): Pass a line number to gen_insn_reserv.
13806 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
13808 * read-md.h (file_location): New structure.
13809 (directive_handler_t): Take a file_location rather than a line number.
13810 (message_at, error_at): Declare.
13811 (read_skip_construct): Delete.
13812 * read-md.c (message_with_line_1): Replace with...
13813 (message_at_1): ...this new function.
13814 (message_at, error_at): New functions.
13815 (message_with_line, error_with_line): Update to use message_at_1.
13816 (handle_enum): Take a file_location rather than a line number
13817 and use error_at for error reporting.
13818 (handle_include): Likewise.
13819 (read_skip_construct): Likewise. Make static.
13820 (handle_file): Update after above changes. Pass a file_location
13821 rather than a line number to handle_directive.
13822 * gensupport.c (queue_elem): Replace separate filename and lineno
13823 with a file_location.
13824 (queue_pattern): Replace filename and lineno arguments with a
13825 file_location. Update after change to queue_elem.
13826 (process_define_predicate): Replace lineno argument with a
13827 file_location and use error_at for error reporting. Update
13828 after above changes.
13829 (process_rtx): Likewise.
13830 (subst_pattern_match): Likewise.
13831 (get_alternatives_number): Likewise.
13832 (alter_predicate_for_insn): Likewise.
13833 (rtx_handle_directive): Likewise.
13834 (is_predicable): Update after above changes, using error_at rather
13835 than error_with_line.
13836 (has_subst_attribute): Likewise.
13837 (identify_predicable_attribute): Likewise.
13838 (alter_attrs_for_subst_insn): Likewise.
13839 (process_one_cond_exec): Likewise.
13840 (process_substs_on_one_elem): Likewise.
13841 (process_define_subst): Likewise.
13842 (check_define_attr_duplicates): Likewise.
13843 (read_md_rtx): Update after change to queue_elem.
13845 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
13847 * genoutput.c (next_index_number): Delete.
13848 (data): Remove index_number.
13849 (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
13850 (main): Remove manipulation of next_index_number.
13852 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
13854 * genattrtab.c (check_attr_value): Remove handling of null attrs.
13855 (make_canonical): Likewise.
13857 2015-07-16 Eric Botcazou <ebotcazou@adacore.com>
13859 * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
13860 instead of adjust_address_nv.
13861 (restore_stack_nonlocal): Likewise.
13862 (nonlocal_goto): Likewise.
13864 2015-07-16 Tom de Vries <tom@codesourcery.com>
13866 * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
13867 not have a corresponding loop header phi.
13869 2015-07-16 Tom de Vries <tom@codesourcery.com>
13871 * tree-parloops.c (create_loads_for_reductions): Handle case that
13872 reduction is unused.
13874 2015-07-16 Richard Biener <rguenther@suse.de>
13876 PR tree-optimization/66894
13877 * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
13878 about deriving NE_EXPR from truncated values.
13880 2015-07-16 Martin Liska <mliska@suse.cz>
13883 (object_allocator): Add new class.
13884 (pool_allocator::initialize): Use the underlying class.
13885 (pool_allocator::allocate): Likewise.
13886 (pool_allocator::remove): Likewise.
13887 (operator new): A new generic allocator.
13888 * asan.c (struct asan_mem_ref): Remove unused members.
13889 (asan_mem_ref_new): Replace new operator with
13890 object_allocator::allocate.
13891 (free_mem_ref_resources): Change deallocation.
13892 * cfg.c (initialize_original_copy_tables): Replace pool_allocator
13893 with object_allocator.
13894 * config/sh/sh.c (add_constant): Replace new operator with
13895 object_allocator::allocate.
13896 (sh_reorg): Change call to a release method.
13897 * cselib.c (struct elt_list): Remove unused members.
13898 (new_elt_list): Replace new operator with
13899 object_allocator::allocate.
13900 (new_elt_loc_list): Likewise.
13901 (new_cselib_val): Likewise.
13902 (unchain_one_elt_list): Change delete operator with remove method.
13903 (unchain_one_elt_loc_list): Likewise.
13904 (unchain_one_value): Likewise.
13905 (cselib_finish): Release newly added static allocators.
13906 * cselib.h (struct cselib_val): Remove unused members.
13907 (struct elt_loc_list): Likewise.
13908 * df-problems.c (df_chain_alloc): Replace pool_allocator with
13910 * df-scan.c (struct df_scan_problem_data): Likewise.
13911 (df_scan_alloc): Likewise.
13912 * df.h (struct dataflow): Likewise.
13913 * dse.c (struct read_info_type): Likewise.
13914 (struct insn_info_type): Likewise.
13915 (struct dse_bb_info_type): Likewise.
13916 (struct group_info): Likewise.
13917 (struct deferred_change): Likewise.
13918 (get_group_info): Likewise.
13919 (delete_dead_store_insn): Likewise.
13920 (free_read_records): Likewise.
13921 (replace_read): Likewise.
13922 (check_mem_read_rtx): Likewise.
13923 (scan_insn): Likewise.
13924 (dse_step1): Likewise.
13925 (dse_step7): Likewise.
13926 * et-forest.c (struct et_occ): Remove unused members.
13927 (et_new_occ): Use allocate instead of new operator.
13928 (et_new_tree): Likewise.
13929 (et_free_tree): Call release method explicitly.
13930 (et_free_tree_force): Likewise.
13931 (et_free_pools): Likewise.
13932 (et_split): Use remove instead of delete operator.
13933 * et-forest.h (struct et_node): Remove unused members.
13934 * ipa-cp.c: Change pool_allocator to object_allocator.
13935 * ipa-inline-analysis.c: Likewise.
13936 * ipa-profile.c: Likewise.
13937 * ipa-prop.c: Likewise.
13938 * ipa-prop.h: Likewise.
13939 * ira-build.c (initiate_cost_vectors): Cast return value.
13940 (ira_allocate_cost_vector): Likewise.
13941 * ira-color.c (struct update_cost_record): Remove unused members.
13942 * lra-int.h (struct lra_live_range): Likewise.
13943 (struct lra_copy): Likewise.
13944 (struct lra_insn_reg): Likewise.
13945 * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
13946 * lra.c (new_insn_reg): Replace new operator with allocate method.
13947 (free_insn_regs): Same for operator delete.
13948 (finish_insn_regs): Release new static allocator.
13949 (finish_insn_recog_data): Likewise.
13950 (lra_free_copies): Replace delete operator with remove method.
13951 (lra_create_copy): Replace operator new with allocate method.
13952 (invalidate_insn_data_regno_info): Same for remove method.
13953 * regcprop.c (struct queued_debug_insn_change): Remove unused members.
13954 (free_debug_insn_changes): Replace delete operator with remove method.
13955 (replace_oldest_value_reg): Replace operator new with allocate method.
13956 (pass_cprop_hardreg::execute): Release new static variable.
13957 * sched-deps.c (sched_deps_init): Change pool_allocator to
13959 * sel-sched-ir.c: Likewise.
13960 * sel-sched-ir.h: Likewise.
13961 * stmt.c (expand_case): Likewise.
13962 (expand_sjlj_dispatch_table): Likewise.
13963 * tree-sra.c (struct access): Remove unused members.
13964 (struct assign_link): Likewise.
13965 (sra_deinitialize): Release newly added static pools.
13966 (create_access_1):Replace operator new with allocate method.
13967 (build_accesses_from_assign): Likewise.
13968 (create_artificial_child_access): Likewise.
13969 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
13970 pool_allocator to object_allocator.
13971 * tree-ssa-pre.c: Likewise.
13972 * tree-ssa-reassoc.c: Likewise.
13973 * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
13974 * tree-ssa-strlen.c: Likewise.
13975 * tree-ssa-structalias.c: Likewise.
13976 * var-tracking.c (onepart_pool_allocate): New function.
13977 (unshare_variable): Use the newly added function.
13978 (variable_merge_over_cur): Likewise.
13979 (variable_from_dropped): Likewise.
13980 (variable_was_changed): Likewise.
13981 (set_slot_part): Likewise.
13982 (emit_notes_for_differences_1): Likewise.
13983 (vt_finalize): Release newly added static pools.
13985 2015-07-16 Martin Jambor <mjambor@suse.cz>
13987 * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status. Adjust
13988 all uses. Fix two typos in its general comment.
13989 (func_body_info): Rename to ipa_func_body_info. Adjust all uses.
13991 2015-07-16 Ilya Enkovich <enkovich.gnu@gmail.com>
13993 * config/i386/linux-common.h (LINK_MPX): New.
13994 (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
13995 * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
13996 indicating '-z bndplt' support by linker.
13997 * configure: Regenerate.
13998 * config.in: Regenerate.
14000 2015-07-16 Richard Biener <rguenther@suse.de>
14002 * fold-const.c (fold_widened_comparison): Remove.
14003 (fold_sign_changed_comparison): Likewise.
14004 (fold_comparison): Move widened and sign-changed comparison
14006 * match.pd: ... to patterns here.
14007 * generic-match-head.c: Include target.h.
14008 * gimple-match-head.c: Likewise.
14010 2015-07-16 Richard Biener <rguenther@suse.de>
14012 * tree-ssa-dom.c (dom_valueize): New function.
14013 (record_temporary_equivalences): Also record equivalences
14014 for dominating stmts that have uses of equivalences we are
14017 2015-07-16 Bin Cheng <bin.cheng@arm.com>
14019 * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
14020 add_autoinc_candidates.
14021 (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
14022 (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
14023 (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
14024 (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
14026 (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
14027 (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
14028 Remove parameter struct iv*. Call add_autoinc_candidates here.
14029 (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
14030 (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
14032 (find_iv_candidates): Call new functions.
14034 2015-07-16 Sandra Loosemore <sandra@codesourcery.com>
14036 * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
14037 uninitialized-variable warning.
14039 2015-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
14042 * config/sh/sh.md (movdi): Split simple reg move to two movsi
14043 when the destination is R0.
14045 2015-07-16 Uros Bizjak <ubizjak@gmail.com>
14048 * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
14049 * config/i386/i386.c (ix86_expand_pextr): New function.
14050 (ix86_expand_pinsr): Handle V1TI and TI modes. Call ix86_expand_pextr
14051 for non-lowpart subregs.
14052 * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
14053 (insv<mode>): Use SWI248 mode iterator.
14054 (insv<mode>_1): Ditto.
14056 2015-07-15 Aditya Kumar <aditya.k7@samsung.com>
14057 Sebastian Pop <s.pop@samsung.com>
14059 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
14060 iterator to use_stmt.
14062 2015-07-15 Aditya Kumar <aditya.k7@samsung.com>
14063 Sebastian Pop <s.pop@samsung.com>
14065 * graphite-scop-detection.c (build_scops_1): Discard scops for
14068 2015-07-15 Aditya Kumar <aditya.k7@samsung.com>
14069 Sebastian Pop <s.pop@samsung.com>
14071 * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
14072 case of a return statement in scop.
14074 2015-07-15 Aditya Kumar <aditya.k7@samsung.com>
14075 Sebastian Pop <s.pop@samsung.com>
14077 * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
14078 INTEGER_TYPE parameters.
14079 (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
14080 VECTOR_CST in scan_tree_for_params.
14081 (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
14083 2015-07-15 Andrew MacLeod <amacleod@redhat.com>
14085 * gimple-pretty-print.h: Don't include pretty-print.h.
14086 * tree-streamer.h: Don't include lto-streamer.h.
14087 * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
14088 * gimple-streamer-in.c: Remove redundant includes.
14089 * gimple-streamer-out.c: Likewise.
14090 * ipa-devirt.c: Likewise.
14091 * ipa-icf.c: Likewise.
14092 * ipa-inline-analysis.c: Likewise.
14093 * ipa-polymorphic-call.c: Likewise.
14094 * ipa-profile.c: Likewise.
14095 * ipa-prop.c: Likewise.
14096 * ipa-pure-const.c: Likewise.
14097 * lto-cgraph.c: Likewise.
14098 * lto-streamer-in.c: Likewise.
14099 * lto-streamer-out.c: Likewise.
14100 * lto-streamer.c: Likewise.
14101 * tree-streamer-in.c: Likewise.
14102 * tree-streamer-out.c: Likewise.
14103 * tree-streamer.c: Likewise.
14105 2015-07-15 Andrew MacLeod <amacleod@redhat.com>
14107 * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
14109 * opts.c: Remove multiline #include comment.
14111 2015-07-15 Nathan Sidwell <nathan@codesourcery.com>
14113 * config/nvptx/mkoffload.c (process): Add C++ protection to
14116 2015-07-14 Michael Meissner <meissner@linux.vnet.ibm.com>
14119 * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
14120 null before IEEE 128-bit floating point support patch.
14122 2015-07-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14124 * simplify-rtx.c (simplify_ternary_operation): Add simplification
14125 for (!c) != {0,...,0} ? a : b for vector modes.
14127 2015-07-15 Paolo Bonzini <bonzini@gnu.org>
14128 Martin Jambor <mjambor@suse.cz>
14130 * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
14131 struct func_body_info* instead of struct ipa_node_params*, expecting
14132 fbi->info to be filled in. Replace throughout. Adjust call to
14133 ipa_load_from_parm_agg.
14134 (set_cond_stmt_execution_predicate): Accept struct func_body_info*
14135 instead of struct ipa_node_params*. Adjust calls to other functions
14136 so that they pass either fbi or fbi->info.
14137 (set_switch_stmt_execution_predicate): Likewise.
14138 (will_be_nonconstant_predicate): Likewise.
14139 (compute_bb_predicates): Likewise.
14140 (estimate_function_body_sizes): Move asserts earlier. Fill in
14141 struct func_body_info, replace parms_info with fbi.info. Adjust
14142 calls to functions that now accept struct func_body_info.
14143 * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
14144 (struct func_body_info): Likewise.
14145 (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
14146 remove static. Adjust callers.
14147 (ipa_load_from_parm_agg): Remove.
14148 * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
14149 (func_body_info): Likewise.
14150 (ipa_load_from_parm_agg): Adjust prototype.
14152 2015-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14154 * gensupport.c (rtx_handle_directive): Adjust.
14155 * read-rtl.c (apply_iterators): Take vector to add rtxs to
14156 instead of expr list rtx.
14157 (add_define_attr_for_define_subst): Likewise.
14158 (add_define_subst_attr): Likewise.
14159 (read_subst_mapping): Likewise.
14160 (read_rtx): Likewise.
14161 * rtl.h (read_rtx): Adjust.
14163 2015-07-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14165 * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
14167 2015-07-15 Uros Bizjak <ubizjak@gmail.com>
14170 * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
14171 (*tls_local_dynamic_base_64_<mode>): Ditto.
14172 (*tls_local_dynamic_base_64_largepic): Ditto.
14173 (tls_global_dynamic_64_<mode>): Update expander pattern.
14174 (tls_local_dynamic_base_64_<mode>): Ditto.
14176 2015-07-15 Richard Biener <rguenther@suse.de>
14178 * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
14179 and bool_var == 1 -> bool_var simplifications ...
14180 * match.pd: ... to patterns here. Factor out negate_expr_p
14181 cases from the A - B -> A + (-B) patterns as negate_expr_p
14182 predicate and add a -(A + B) -> (-B) - A pattern.
14184 2015-07-15 Robert Suchanek <robert.suchanek@imgtec.com>
14186 * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
14188 2015-07-15 Matthew Fortune <matthew.fortune@imgtec.com>
14189 Robert Suchanek <robert.suchanek@imgtec.com>
14191 * config/mips/mips.c (mips_int_mask): New enum.
14192 (mips_shadow_set): Likewise.
14193 (int_mask): New variable.
14194 (use_shadow_register_set_p): Change type to enum mips_shadow_set.
14195 (machine_function): Add int_mask and use_shadow_register_set.
14196 (mips_attribute_table): Add attribute handlers for interrupt and
14197 use_shadow_register_set.
14198 (mips_interrupt_mask): New static function.
14199 (mips_handle_interrupt_attr): Likewise.
14200 (mips_handle_use_shadow_register_set_attr): Likewise.
14201 (mips_use_shadow_register_set): Change return type to enum
14202 mips_shadow_set. Add argument handling for use_shadow_register_set
14204 (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
14205 compare with mips_shadow_set enum.
14206 (mips_compute_frame_info): Add interrupt mask and
14207 use_shadow_register_set to per-function information structure.
14208 Add a stack slot for EPC unconditionally.
14209 (mips_expand_prologue): Compare use_shadow_register_set value
14210 with mips_shadow_set enum. Save EPC always in K1, clobber only K1 for
14211 masked interrupt register but in EIC mode use K0 and save Cause in K0.
14212 EPC saved and restored unconditionally. Use PMODE_INSN macro when
14213 copying the stack pointer from the shadow register set.
14214 * config/mips/mips.h (SR_IM0): New define.
14215 * config/mips/mips.md (mips_rdpgpr): Rename to...
14216 (mips_rdpgpr_<mode>): ...this. Use the Pmode iterator.
14217 * doc/extend.texi (Declaring Attributes of Functions): Document
14218 optional arguments for interrupt and use_shadow_register_set
14221 2015-07-15 Robert Suchanek <robert.suchanek@imgtec.com>
14223 * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
14224 interrupt attribute.
14225 (mips_expand_prologue): Disable the floating point unit in an ISR.
14226 * config/mips/mips.h (SR_COP1): New define.
14228 2015-07-15 Richard Biener <rguenther@suse.de>
14230 * genmatch.c (parser::peek, parser::peek_ident): Add argument
14231 to tell how many tokens to peek ahead (default 1).
14232 (parser::eat_token, parser::eat_ident): Return token consumed.
14233 (parser::parse_result): Parse new switch statement.
14234 * match.pd: Use case statements where appropriate.
14236 2015-07-15 Uros Bizjak <ubizjak@gmail.com>
14238 PR rtl-optimization/58066
14239 * calls.c (expand_call): Precompute register parameters before stack
14240 alignment is performed.
14242 2015-07-15 Uros Bizjak <ubizjak@gmail.com>
14244 PR rtl-optimization/66838
14245 * postreload.c (reload_cse_move2add): Also process
14246 CALL_INSN_FUNCTION_USAGE when resetting information of
14247 call-clobbered registers.
14249 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
14250 Cesar Philippidis <cesar@codesourcery.com>
14251 Chung-Lin Tang <cltang@codesourcery.com>
14253 * config/nios2/constraints.md (U, v): New constraints.
14254 * config/nios2/predicates.md (rdprs_dcache_operand): New.
14255 (ldstex_memory_operand): New.
14256 * config/nios2/sync.md: New file.
14257 * config/nios2/nios2.md (unspecv): Add new builtin function
14259 (rdprs, flushd, flushda, wrpie, eni): New patterns.
14260 (top-level): Include sync.md.
14261 * config/nios2/nios2.c (N2_FTYPES): Add function types for
14263 (N2_BUILTINS): Add arch field setting, add new builtins.
14264 (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
14266 (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
14267 Also handle ldex/stex/ldsex/stsex builtins.
14268 (nios2_expand_rdprs_builtin): New function.
14269 (nios2_expand_cache_builtin): New function.
14270 (nios2_expand_wrpie_builtin): New function.
14271 (nios2_expand_eni_builtin): New function.
14272 (nios2_expand_builtin): Add arch field handling and new builtin
14274 * doc/extend.texi (Altera Nios II Built-in Functions): Document
14276 * doc/md.texi (Machine Constraints): Document U and v constraints.
14278 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
14279 Cesar Philippidis <cesar@codesourcery.com>
14280 Chung-Lin Tang <cltang@codesourcery.com>
14282 * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
14283 * config/nios2/nios2.c (struct GTY (()) machine_function): Add
14284 callee_save_reg_size and uses_anonymous_args fields.
14285 (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
14286 (nios2_create_cfa_notes): New function.
14287 (nios2_adjust_stack): New function for adjusting stack.
14288 (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
14289 Use nios2_adjust_stack.
14290 (nios2_expand_epilogue): Likewise.
14291 (nios2_expand_return): New function.
14292 (nios2_can_use_return_insn): Update for CDX pop.n usage.
14293 (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
14294 If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
14295 * config/nios2/nios2.md (return): Use nios2_expand_return.
14297 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
14298 Cesar Philippidis <cesar@codesourcery.com>
14299 Chung-Lin Tang <cltang@codesourcery.com>
14301 * config/nios2/predicates.md (pop_operation): New.
14302 (ldwm_operation, stwm_operation): New.
14303 (nios2_hard_register_operand): New.
14304 * config/nios2/nios2-protos.h (pop_operation_p): Declare.
14305 (ldstwm_operation_p): Declare.
14306 (gen_ldstwm_peep): Declare.
14307 * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
14308 (base_reg_adjustment_p): New.
14309 (pop_operation_p): New.
14310 (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
14311 (nios2_ldstwm_regset_p): New.
14312 (ldstwm_operation_p): New.
14314 (nios2_ldst_parallel): New.
14315 (struct ldswm_operand): Declare.
14316 (compare_ldstwm_operands): New.
14317 (can_use_cdx_ldstw): New.
14318 (gen_ldstwm_peep): New.
14319 * config/nios2/nios2-ldstwm.sml: New.
14320 * config/nios2/nios2.md: Include ldstwm.md.
14321 * config/nios2/ldstwm.md: Generated.
14323 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
14324 Cesar Philippidis <cesar@codesourcery.com>
14325 Chung-Lin Tang <cltang@codesourcery.com>
14327 * config/nios2/nios2.h (LABEL_ALIGN): Define.
14328 (REG_ALLOC_ORDER): Define.
14329 (ADJUST_REG_ALLOC_ORDER): Define.
14330 (HONOR_REG_ALLOC_ORDER): Define.
14331 (CDX_REG_P): Define.
14332 (ANDCLEAR_INT): Define.
14333 * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
14334 (nios2_label_align): Declare.
14335 (nios2_cdx_narrow_form_p): Declare.
14336 (nios2_adjust_reg_alloc_order): Declare.
14337 * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
14339 (nios2_large_unspec_reloc_p): New function, split from...
14340 (nios2_legitimate_pic_operand_p): ...here.
14341 (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
14342 (nios2_print_operand_punct_valid_p): New.
14343 (nios2_print_operand): Add %., %!, %x, %y, %A. Remove %U.
14344 (split_mem_address): New.
14345 (split_alu_insn): New.
14347 (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
14348 (enum nios2_add_insn_kind): New.
14349 (nios2_add_insn_names, nios2_add_insn_narrow): New.
14350 (nios2_add_insn_classify): New.
14351 (nios2_add_insn_asm): New.
14352 (nios2_cdx_narrow_form_p): New.
14353 (label_align, min_labelno, max_labelno): New.
14354 (nios2_reorg): New.
14355 (nios2_label_align): New.
14356 (nios2_adjust_reg_alloc_order): New.
14357 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
14358 (TARGET_MACHINE_DEPENDENT_REORG): Define.
14359 * config/nios2/constraints.md (P): New constraint.
14360 * config/nios2/predicates.md (const_and_operand): New.
14361 (and_operand): New.
14362 (stack_memory_operand): New.
14363 * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
14364 (length): Update to use nios2_cdx_narrow_form_p().
14365 (type): Add new insn type values.
14366 (control, alu, st, ld, shift): Update insn reservations with
14367 new insn type values.
14368 (*high, *lo_sum): Define new insn patterns for constant generation.
14369 (movqi_internal, movhi_internal, movsi_internal): Reduce
14370 alternatives, update asm template to handle CDX variants, update
14372 (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
14373 template, update type attributes.
14374 (extendhisi2, extendqi<mode>2): Likewise.
14375 (addsi3): Change to use function for asm string.
14376 (subsi3): Add CDX notation to asm template, update type attributes.
14377 (negsi3, one_cmplsi3): Likewise.
14378 (andsi3): New pattern, specialized from logical patterns.
14379 (<code>si3): Remove and case, combine alternatives, update asm
14381 (<shift_op>si3): Add CDX notation, update type attributes.
14382 (rotrsi3): Update type attribute.
14383 (*merge, extzv, insv): New insn patterns.
14384 (return): Change to define_expand.
14385 (simple_return): Add CDX notation, update type attributes.
14386 (indirect_jump): Add CDX notation.
14387 (jump): Update asm cases, update length attribute expression.
14388 (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
14389 (nios2_cbranch): Update asm cases and length attribute expression
14390 to handle CDX variants.
14391 (nios2_cmp<code>): Update asm template.
14392 (nop): Add CDX notation, update type attributes.
14393 (trap): Add CDX notation.
14394 (ctrapsi4): Update asm cases and length attribute expression to
14395 handle CDX variant.
14396 * doc/md.texi (Machine Constraints): Document P constraint.
14398 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
14399 Cesar Philippidis <cesar@codesourcery.com>
14400 Chung-Lin Tang <cltang@codesourcery.com>
14402 * config/nios2/nios2.h (SMALL_INT12): New macro.
14403 * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
14404 (nios2_valid_addr_expr_p): Use it.
14405 (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
14406 with implicit "io" instructions on R2.
14407 * config/nios2/constraints.md (w): New constraint.
14408 * config/nios2/predicates.md (ldstio_memory_operand): New.
14409 * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
14410 operand predicate and constraint.
14411 (ld<bh>io_signed, st<bhw>io>): Likewise.
14412 * doc/md.texi (Machine Constraints): Document w constraint.
14414 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
14415 Cesar Philippidis <cesar@codesourcery.com>
14416 Chung-Lin Tang <cltang@codesourcery.com>
14418 * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
14419 * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
14420 Nios II architecture level.
14421 * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
14422 (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
14423 (OPTION_DEFAULT_SPECS): Define.
14424 (ASM_SPEC): Add -march= spec strings.
14425 * config/nios2/nios2.c (nios2_option_override): Check for
14426 conflicts involving new options.
14427 * config.gcc (nios2*-*-*): Support --with-arch=.
14428 * doc/invoke.texi (Option Summary, Nios II Options): Document
14429 -march=, -mbmx, and -mcdx.
14431 2015-07-14 Vladimir Makarov <vmakarov@redhat.com>
14433 PR rtl-optimization/66626
14434 * lra-constraints.c (lra_constraints): Prevent equivalence
14435 substitution for static chain pseudo in functions with nonlocal
14438 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
14440 * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
14441 (nios2_emit_stack_limit_check): Add size parameter. Handle
14442 -fstack-limit-symbol as well as -fstack-limit-register.
14443 (nios2_expand_prologue): Emit only a single stack limit check,
14444 even if multiple stack adjustments are required.
14445 (nios2_option_override): Diagnose unsupported combination of -fpic
14446 and -stack-limit-symbol.
14448 2015-07-14 H.J. Lu <hongjiu.lu@intel.com>
14450 * Makefile.in (top_srcdir): New.
14451 * configure.ac: Use AM_ZLIB.
14452 * configure: Regeneated.
14454 2015-07-14 Matthias Klose <doko@ubuntu.com>
14457 * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
14459 2015-07-14 Richard Biener <rguenther@suse.de>
14461 PR tree-optimization/66863
14462 * tree-vrp.c (register_edge_assert_for_2): Properly restrict
14463 what we record for conversion use stmt lhs inequalities.
14465 2015-07-14 Richard Biener <rguenther@suse.de>
14467 * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
14468 (decision_tree::gen_gimple): Likewise.
14470 2015-07-14 Tom de Vries <tom@codesourcery.com>
14472 * gcc.c (greater_than_spec_func): Declare forward.
14473 (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
14474 -ftree-parallelize-loops={0,1}.
14475 (static_spec_functions): Add greater_than_spec_func function with name
14477 (greater_than_spec_func): New function.
14479 2015-07-14 Richard Biener <rguenther@suse.de>
14481 * tree-ssa-dom.c (record_temporary_equivalences): Merge
14482 wideing type conversion case from record_equivalences_from_incoming_edge
14483 and use record_equality to record equivalences.
14484 (record_equivalences_from_incoming_edge): Call
14485 record_temporary_equivalences.
14487 2015-07-14 Richard Biener <rguenther@suse.de>
14489 * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
14490 (struct if_expr): New.
14491 (struct with_expr): Likewise.
14492 (is_a_helper): Add helpers for if_expr and with_expr.
14493 (struct simplify): Add simplify_kind enum and member. Remove
14495 (simplify::simplify): Adjust.
14496 (lower_commutative): Adjust.
14497 (lower_opt_convert): Likewise.
14498 (lower_cond): Likewise.
14499 (replace_id): Handle with_expr and if_expr.
14500 (lower_for): Adjust.
14501 (dt_simplify::gen_1): New recursive worker, split out from ...
14502 (dt_simplify::gen): ... here. Deal with if and with expansion
14504 (capture_info::capture_info): Take context argument
14505 (capture_info::walk_result): Only analyze specific result.
14506 (parser::parse_result): New function.
14507 (parser::parse_simplify): Adjust to parse ifs with then end
14509 (parser::parse_if): Simplify.
14510 (parser::parse_pattern): Pass down simplify kind.
14511 * match.pd: Convert if structure to new syntax.
14513 2015-07-13 Marek Polacek <polacek@redhat.com>
14515 * rtl.c (rtx_equal_p_cb): Fix typo.
14517 2015-07-13 Andrew MacLeod <amacleod@redhat.com>
14519 * omega.h: Don't include config.h, don't include params.h again if
14520 omega.h has already been included.
14521 * graphite-poly.h: Include sese.h.
14522 * graphite.c: Don't include sese.h, remove needless includes and
14523 minimize includes outside #ifdef HAVE_isl block.
14524 * graphite-blocking.c: Don't include sese.h, remove needless includes,
14525 and wrap entire file in #ifdef HAVE_isl
14526 * graphite-dependences.c: Likewise.
14527 * graphite-interchange.c: Likewise.
14528 * graphite-isl-ast-to-gimple.c: Likewise.
14529 * graphite-optimize-isl.c: Likewise.
14530 * graphite-poly.c: Likewise.
14531 * graphite-scop-detection.c: Likewise.
14532 * graphite-sese-to-poly.c: Likewise.
14534 2015-07-13 Tom de Vries <tom@codesourcery.com>
14536 * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
14538 2015-07-13 Renlin Li <renlin.li@arm.com>
14541 * simplify-rtx.c (simplify_const_relational_operation): Add
14542 side_effects_p checks.
14544 2015-07-12 Aldy Hernandez <aldyh@redhat.com>
14546 * bitmap.h: Fix double word typos.
14547 * builtins.c: Same.
14549 * cfgloopmanip.c: Same.
14552 * cgraphclones.c: Same.
14554 * config/aarch64/aarch64-protos.h: Same.
14555 * config/aarch64/aarch64.c: Same.
14556 * config/aarch64/aarch64.md: Same.
14557 * config/arm/arm.md: Same.
14558 * config/arm/arm1020e.md: Same.
14559 * config/arm/arm1026ejs.md: Same.
14560 * config/arm/arm926ejs.md: Same.
14561 * config/arm/fa526.md: Same.
14562 * config/arm/fa606te.md: Same.
14563 * config/arm/fa626te.md: Same.
14564 * config/arm/fa726te.md: Same.
14565 * config/arm/fmp626.md: Same.
14566 * config/darwin.c: Same.
14567 * config/epiphany/epiphany.c: Same.
14568 * config/frv/frv.c: Same.
14569 * config/ft32/ft32.c: Same.
14570 * config/gnu-user.h: Same.
14571 * config/h8300/constraints.md: Same.
14572 * config/i386/i386.c: Same.
14573 * config/i386/i386.md: Same.
14574 * config/iq2000/iq2000.md: Same.
14575 * config/mips/mips.c: Same.
14576 * config/mmix/mmix.md: Same.
14577 * config/moxie/moxie.c: Same.
14578 * config/nds32/nds32.md: Same.
14579 * config/pa/pa.h: Same.
14580 * config/rs6000/aix.h: Same.
14581 * config/rs6000/rs6000.h: Same.
14582 * config/sh/sh.c: Same.
14583 * config/tilegx/tilegx.md: Same.
14584 * config/tilepro/gen-mul-tables.cc: Same.
14587 * doc/invoke.texi: Same.
14589 * dwarf2out.c: Same.
14592 * genmatch.c: Same.
14593 * gimplify.c: Same.
14594 * hash-table.h: Same.
14595 * internal-fn.c: Same.
14597 * ipa-devirt.c: Same.
14600 * ipa-profile.c: Same.
14601 * ipa-prop.c: Same.
14602 * ipa-prop.h: Same.
14605 * reg-stack.c: Same.
14606 * regcprop.c: Same.
14611 * tree-inline.c: Same.
14612 * tree-sra.c: Same.
14613 * tree-ssa-dom.c: Same.
14614 * tree-ssa-loop-ivopts.c: Same.
14615 * tree-ssa-structalias.c: Same.
14616 * tree-ssa-tail-merge.c: Same.
14617 * tree-ssa-ter.c: Same.
14618 * tree-ssa-threadupdate.c: Same.
14619 * tree-ssa-uninit.c: Same.
14620 * tree-ssanames.c: Same.
14621 * tree-vect-loop-manip.c: Same.
14622 * tree-vrp.c: Same.
14624 * valtrack.c: Same.
14627 2015-07-12 Kugan Vivekanandarajah <kuganv@linaro.org>
14629 PR middle-end/66726
14630 * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
14631 tree_ssa_phiopt_worker): Call it.
14633 2015-07-12 Kugan Vivekanandarajah <kuganv@linaro.org>
14635 * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
14636 * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
14639 2015-07-11 Marek Polacek <polacek@redhat.com>
14641 PR middle-end/66353
14642 * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
14643 * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
14644 (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
14645 rather than bb_has_abnormal_call_pred.
14646 * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
14647 (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
14648 rather than bb_has_abnormal_call_pred.
14650 2015-07-10 Anatoly Sokolov <aesok@post.ru>
14652 * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
14653 REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
14654 RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
14655 * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
14656 v850_legitimate_address_p): New functions.
14657 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
14659 2015-07-10 H.J. Lu <hongjiu.lu@intel.com>
14662 * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
14663 indirect sibcall with register arguments if register available
14664 for argument passing.
14665 (init_cumulative_args): Set cfun->machine->arg_reg_available
14666 to (cum->nregs > 0) or to true if function has a variable
14668 (function_arg_advance_32): Set cfun->machine->arg_reg_available
14669 to false if cum->nregs <= 0.
14670 * config/i386/i386.h (machine_function): Add arg_reg_available.
14672 2015-07-10 Uros Bizjak <ubizjak@gmail.com>
14674 * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
14675 and gen_higpart instead of gen_rtx_SUBREG.
14676 * config/i386/i386.md
14677 (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
14678 (read-modify peephole2): Use gen_lowpart instead of
14679 gen_rtx_SUBREG for operand 5.
14681 2015-07-10 Andrew MacLeod <amacleod@redhat.com>
14683 * config/tilepro/gen-mul-tables.cc (main): Change include list for
14685 * config/tilepro/mul-tables.c: Regenerate.
14686 * config/tilegx/mul-tables.c: Regenerate.
14688 2015-07-10 Richard Biener <rguenther@suse.de>
14690 * fold-const.c (distribute_bit_expr): Remove.
14691 (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
14692 to (A & C1) | (B & C2), distributing (A & B) | (A & C)
14693 to A & (B | C) and simplifying A << C1 << C2 to ...
14694 * match.pd: ... patterns here.
14696 2015-07-10 Jiong Wang <jiong.wang@arm.com>
14698 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
14699 Mark mem as READONLY and NOTRAP for PIC symbol.
14701 2015-07-10 Andrew MacLeod <amacleod@redhat.com>
14703 * gimple-predict.h: New file.
14704 (gimple_predict_predictor, gimple_predict_set_predictor,
14705 gimple_predict_outcome, gimple_predict_set_outcome,
14706 gimple_build_predict): Relocate here.
14707 * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
14708 gimple_predict_outcome, gimple_predict_set_outcome): Move to
14710 * gimple.c (gimple_build_predict): Move to gimple-predict.h
14711 * basic-block.h: Don't include cfghooks.h.
14712 * backend.h: Don't include predict.h.
14713 * cfghooks.h: Include predict.h.
14714 * gimple-pretty-print.c: Include gimple-predict.h.
14715 * gimplify.c: Likwise.
14716 * predict.c: Adjust includes.
14717 * tree-inline.c: Likewise.
14718 * asan.c: Likewise.
14719 * auto-inc-dec.c: Likewise.
14720 * auto-profile.c: Likewise.
14721 * bb-reorder.c: Likewise.
14722 * builtins.c: Likewise.
14723 * caller-save.c: Likewise.
14724 * calls.c: Likewise.
14725 * cfganal.c: Likewise.
14726 * cfgbuild.c: Likewise.
14728 * cfgcleanup.c: Likewise.
14729 * cfgexpand.c: Likewise.
14730 * cfghooks.c: Likewise.
14731 * cfgloopanal.c: Likewise.
14732 * cfgloop.c: Likewise.
14733 * cfgloopmanip.c: Likewise.
14734 * cfgrtl.c: Likewise.
14735 * cgraph.c: Likewise.
14736 * cgraphunit.c: Likewise.
14737 * combine.c: Likewise.
14738 * cprop.c: Likewise.
14741 * dojump.c: Likewise.
14743 * except.c: Likewise.
14744 * expmed.c: Likewise.
14745 * expr.c: Likewise.
14746 * final.c: Likewise.
14747 * fold-const.c: Likewise.
14748 * function.c: Likewise.
14749 * fwprop.c: Likewise.
14750 * gcc-plugin.h: Likewise.
14751 * gcse.c: Likewise.
14752 * genattrtab.c: Likewise.
14753 * genemit.c: Likewise.
14754 * gengtype.c: Likewise.
14755 * genopinit.c: Likewise.
14756 * genoutput.c: Likewise.
14757 * genpreds.c: Likewise.
14758 * genrecog.c: Likewise.
14759 * gimple-fold.c: Likewise.
14760 * gimple-iterator.c: Likewise.
14761 * gimple-ssa-isolate-paths.c: Likewise.
14762 * gimple-ssa-strength-reduction.c: Likewise.
14763 * graph.c: Likewise.
14764 * graphite-blocking.c: Likewise.
14765 * graphite.c: Likewise.
14766 * graphite-dependences.c: Likewise.
14767 * graphite-interchange.c: Likewise.
14768 * graphite-isl-ast-to-gimple.c: Likewise.
14769 * graphite-optimize-isl.c: Likewise.
14770 * graphite-poly.c: Likewise.
14771 * graphite-scop-detection.c: Likewise.
14772 * graphite-sese-to-poly.c: Likewise.
14773 * haifa-sched.c: Likewise.
14774 * ifcvt.c: Likewise.
14775 * internal-fn.c: Likewise.
14776 * ipa-cp.c: Likewise.
14777 * ipa-profile.c: Likewise.
14778 * ipa-split.c: Likewise.
14779 * ipa-utils.c: Likewise.
14780 * ira-build.c: Likewise.
14781 * ira-color.c: Likewise.
14782 * ira-conflicts.c: Likewise.
14783 * ira-costs.c: Likewise.
14784 * ira-emit.c: Likewise.
14785 * ira-lives.c: Likewise.
14786 * jump.c: Likewise.
14787 * loop-doloop.c: Likewise.
14788 * loop-init.c: Likewise.
14789 * loop-invariant.c: Likewise.
14790 * loop-unroll.c: Likewise.
14791 * lower-subreg.c: Likewise.
14792 * lra-assigns.c: Likewise.
14794 * lra-coalesce.c: Likewise.
14795 * lra-constraints.c: Likewise.
14796 * lra-lives.c: Likewise.
14797 * lto-cgraph.c: Likewise.
14798 * lto-streamer-in.c: Likewise.
14799 * mode-switching.c: Likewise.
14800 * modulo-sched.c: Likewise.
14801 * omp-low.c: Likewise.
14802 * optabs.c: Likewise.
14803 * passes.c: Likewise.
14804 * postreload.c: Likewise.
14805 * postreload-gcse.c: Likewise.
14806 * profile.c: Likewise.
14807 * recog.c: Likewise.
14808 * regstat.c: Likewise.
14809 * reload1.c: Likewise.
14810 * reorg.c: Likewise.
14811 * rtlanal.c: Likewise.
14812 * sched-ebb.c: Likewise.
14813 * sel-sched-ir.c: Likewise.
14814 * sese.c: Likewise.
14815 * shrink-wrap.c: Likewise.
14816 * simplify-rtx.c: Likewise.
14817 * stmt.c: Likewise.
14818 * store-motion.c: Likewise.
14819 * tracer.c: Likewise.
14820 * trans-mem.c: Likewise.
14821 * tree-call-cdce.c: Likewise.
14822 * tree-cfg.c: Likewise.
14823 * tree-cfgcleanup.c: Likewise.
14824 * tree-chkp.c: Likewise.
14825 * tree-complex.c: Likewise.
14826 * tree-eh.c: Likewise.
14827 * tree-if-conv.c: Likewise.
14828 * tree-loop-distribution.c: Likewise.
14829 * tree-outof-ssa.c: Likewise.
14830 * tree-parloops.c: Likewise.
14831 * tree-predcom.c: Likewise.
14832 * tree-pretty-print.c: Likewise.
14833 * tree-profile.c: Likewise.
14834 * tree-sra.c: Likewise.
14835 * tree-ssa.c: Likewise.
14836 * tree-ssa-coalesce.c: Likewise.
14837 * tree-ssa-dce.c: Likewise.
14838 * tree-ssa-dom.c: Likewise.
14839 * tree-ssa-forwprop.c: Likewise.
14840 * tree-ssa-ifcombine.c: Likewise.
14841 * tree-ssa-loop-ch.c: Likewise.
14842 * tree-ssa-loop-im.c: Likewise.
14843 * tree-ssa-loop-ivcanon.c: Likewise.
14844 * tree-ssa-loop-ivopts.c: Likewise.
14845 * tree-ssa-loop-manip.c: Likewise.
14846 * tree-ssa-loop-prefetch.c: Likewise.
14847 * tree-ssa-loop-unswitch.c: Likewise.
14848 * tree-ssa-math-opts.c: Likewise.
14849 * tree-ssa-phiopt.c: Likewise.
14850 * tree-ssa-pre.c: Likewise.
14851 * tree-ssa-reassoc.c: Likewise.
14852 * tree-ssa-sink.c: Likewise.
14853 * tree-ssa-tail-merge.c: Likewise.
14854 * tree-ssa-threadedge.c: Likewise.
14855 * tree-ssa-threadupdate.c: Likewise.
14856 * tree-switch-conversion.c: Likewise.
14857 * tree-tailcall.c: Likewise.
14858 * tree-vect-data-refs.c: Likewise.
14859 * tree-vect-loop.c: Likewise.
14860 * tree-vect-loop-manip.c: Likewise.
14861 * tree-vectorizer.c: Likewise.
14862 * tree-vrp.c: Likewise.
14863 * ubsan.c: Likewise.
14864 * value-prof.c: Likewise.
14865 * varasm.c: Likewise.
14866 * var-tracking.c: Likewise.
14867 * config/aarch64/aarch64-builtins.c: Likewise.
14868 * config/aarch64/aarch64.c: Likewise.
14869 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
14870 * config/alpha/alpha.c: Likewise.
14871 * config/arc/arc.c: Likewise.
14872 * config/arm/arm.c: Likewise.
14873 * config/avr/avr.c: Likewise.
14874 * config/bfin/bfin.c: Likewise.
14875 * config/c6x/c6x.c: Likewise.
14876 * config/cr16/cr16.c: Likewise.
14877 * config/cris/cris.c: Likewise.
14878 * config/darwin.c: Likewise.
14879 * config/darwin-c.c: Likewise.
14880 * config/epiphany/epiphany.c: Likewise.
14881 * config/epiphany/mode-switch-use.c: Likewise.
14882 * config/epiphany/resolve-sw-modes.c: Likewise.
14883 * config/fr30/fr30.c: Likewise.
14884 * config/frv/frv.c: Likewise.
14885 * config/ft32/ft32.c: Likewise.
14886 * config/h8300/h8300.c: Likewise.
14887 * config/i386/i386.c: Likewise.
14888 * config/i386/winnt.c: Likewise.
14889 * config/ia64/ia64.c: Likewise.
14890 * config/iq2000/iq2000.c: Likewise.
14891 * config/lm32/lm32.c: Likewise.
14892 * config/m32c/m32c.c: Likewise.
14893 * config/m32r/m32r.c: Likewise.
14894 * config/m68k/m68k.c: Likewise.
14895 * config/mcore/mcore.c: Likewise.
14896 * config/mep/mep.c: Likewise.
14897 * config/microblaze/microblaze.c: Likewise.
14898 * config/mips/mips.c: Likewise.
14899 * config/mmix/mmix.c: Likewise.
14900 * config/mn10300/mn10300.c: Likewise.
14901 * config/moxie/moxie.c: Likewise.
14902 * config/msp430/msp430.c: Likewise.
14903 * config/nds32/nds32.c: Likewise.
14904 * config/nds32/nds32-cost.c: Likewise.
14905 * config/nds32/nds32-fp-as-gp.c: Likewise.
14906 * config/nds32/nds32-intrinsic.c: Likewise.
14907 * config/nds32/nds32-isr.c: Likewise.
14908 * config/nds32/nds32-md-auxiliary.c: Likewise.
14909 * config/nds32/nds32-memory-manipulation.c: Likewise.
14910 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
14911 * config/nds32/nds32-predicates.c: Likewise.
14912 * config/nios2/nios2.c: Likewise.
14913 * config/nvptx/nvptx.c: Likewise.
14914 * config/pa/pa.c: Likewise.
14915 * config/pdp11/pdp11.c: Likewise.
14916 * config/rl78/rl78.c: Likewise.
14917 * config/rs6000/rs6000.c: Likewise.
14918 * config/rx/rx.c: Likewise.
14919 * config/s390/s390.c: Likewise.
14920 * config/sh/sh.c: Likewise.
14921 * config/sh/sh-mem.cc: Likewise.
14922 * config/sh/sh_optimize_sett_clrt.cc: Likewise.
14923 * config/sh/sh_treg_combine.cc: Likewise.
14924 * config/sparc/sparc.c: Likewise.
14925 * config/spu/spu.c: Likewise.
14926 * config/stormy16/stormy16.c: Likewise.
14927 * config/tilegx/tilegx.c: Likewise.
14928 * config/tilepro/tilepro.c: Likewise.
14929 * config/v850/v850.c: Likewise.
14930 * config/vax/vax.c: Likewise.
14931 * config/visium/visium.c: Likewise.
14932 * config/xtensa/xtensa.c: Likewise.
14934 2015-07-10 Richard Biener <rguenther@suse.de>
14936 * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
14937 (decision_tree::gen_gimple): Likewise.
14938 (decision_tree::gen_generic): Likewise.
14940 2015-07-10 Uros Bizjak <ubizjak@gmail.com>
14943 * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
14944 sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
14946 2015-07-10 Jakub Jelinek <jakub@redhat.com>
14948 PR middle-end/66820
14949 * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
14950 or ORT_TASK contexts.
14951 * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
14954 2015-07-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14956 * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
14959 2015-07-10 Tom de Vries <tom@codesourcery.com>
14961 * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
14962 insert nit + 1 bound.
14964 2015-07-10 Richard Biener <rguenther@suse.de>
14966 * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
14967 Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
14968 (if_convertible_loop_p_1): For this always compute bb predicates.
14969 (if_convertible_loop_p): And free them.
14971 2015-07-10 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
14973 * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
14976 2015-07-10 Richard Biener <rguenther@suse.de>
14978 PR tree-optimization/66823
14979 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
14980 inverted predicate.
14982 2015-07-09 Steve Ellcey <sellcey@imgtec.com>
14984 * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
14985 to handle mips[32|64]r3 and mips[32|64]r5.
14987 2015-07-09 Jakub Jelinek <jakub@redhat.com>
14989 PR middle-end/66633
14990 * tree-nested.c (get_static_chain): Or in a flag into
14991 info->static_chain_added.
14992 (get_frame_field, get_nonlocal_debug_decl): Likewise.
14993 (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
14994 2015-07-01 changes.
14995 (convert_tramp_reference_stmt): If a frame_decl or chain_decl
14996 is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
14999 PR tree-optimization/66718
15000 * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
15002 (vect_simd_lane_linear): New function.
15003 (vectorizable_simd_clone_call): Support using linear arguments for
15004 addresses of arrays elements indexed by GOMP_SIMD_LANE result.
15006 2015-07-09 H.J. Lu <hongjiu.lu@intel.com>
15009 * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
15011 2015-07-09 Michael Meissner <meissner@linux.vnet.ibm.com>
15013 * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
15014 Use machine mode, not enum machine_mode in the prototype.
15016 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
15017 classify 128-bit floating point support.
15018 (FLOAT128_IBM_P): Likewise.
15019 (FLOAT128_VECTOR_P): Likewise.
15020 (FLOAT128_2REG_P): Likewise.
15021 (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
15022 (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
15023 (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
15024 (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
15026 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
15027 tests against TFmode/TDmode, since those modes do not use VSX
15029 (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
15031 (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
15032 tests against TFmode, etc.
15033 (invalid_e500_subreg): Add tests against IFmode/KFmode.
15034 (reg_offset_addressing_ok_p): Likewise.
15035 (rs6000_legitimate_offset_address_p): Likewise.
15036 (rs6000_legitimize_address): Likewise.
15037 (rs6000_legitimize_reload_address): Likewise.
15038 (rs6000_legitimate_address_p): Clean up tests against TFmode and
15039 TDmode to use the new helper macros, which will include IFmode and
15041 (rs6000_emit_move): Likewise.
15042 (rs6000_darwin64_record_arg_recurse): Likewise.
15043 (print_operand): Likewise.
15044 (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
15045 that uses a single vector register as a vector and not as a
15046 floating point register in terms of the calling sequence.
15047 (rs6000_discover_homogeneous_aggregate): Likewise.
15048 (rs6000_return_in_memory): Likewise.
15049 (init_cumulative_args): Likewise.
15050 (rs6000_function_arg_boundary): Likewise.
15051 (rs6000_function_arg_advance_1): Likewise.
15052 (rs6000_function_arg): Likewise.
15053 (rs6000_pass_by_reference): Likewise.
15054 (rs6000_gimplify_va_arg): Likewise.
15055 (rs6000_secondary_reload_memory): Use machine_mode not enum
15057 (rs6000_split_multireg_move): Use new helper macros.
15058 (spe_func_has_64bit_regs_p): Likewise.
15059 (rs6000_output_function_epilogue): Add IFmode/KFmode support.
15060 (output_toc): Use new helper macros.
15061 (rs6000_register_move_cost): Likewise.
15062 (rs6000_function_value): Add IEEE 128-bit floating point calling
15064 (rs6000_libcall_value): Likewise.
15065 (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
15066 floating point support.
15067 (rs6000_vector_mode_supported_p): Likewise.
15069 2015-07-09 Vladimir Makarov <vmakarov@redhat.com>
15071 PR rtl-optimization/66782
15072 * lra-int.h (struct lra_insn_recog_data): Add comment about
15073 clobbered hard regs for arg_hard_regs.
15074 * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
15075 * lra-lives.c (process_bb_lives): Process clobbered hard regs.
15076 Add condition for processing used hard regs.
15077 * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
15078 Process clobbered hard regs.
15080 2015-07-09 Michael Matz <matz@suse.de>
15082 * genmatch.c (fprintf_indent): New function.
15083 (operand::gen_transform): Add indent parameter.
15084 (expr::gen_transform, c_expr::gen_transform,
15085 capture::gen_transform): Ditto and use fprintf_indent.
15086 (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
15087 (dt_operand::gen, dt_operand::gen_predicate,
15088 dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
15089 dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
15090 (decision_tree::gen_gimple): Adjust calls and indent generated
15092 (decision_tree::gen_generic): Ditto.
15093 (write_predicate): Ditto.
15095 2015-07-08 Uros Bizjak <ubizjak@gmail.com>
15098 * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
15099 * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
15100 (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
15101 {GENERAL,SSE,MMX}_REG_P where appropriate.
15103 2015-07-09 Andrew MacLeod <amacleod@redhat.com>
15105 * lto-streamer.h: Don't include target.h and alloc-pool.h.
15106 * builtins.c: Adjust includes.
15107 * gimple.c: Likewise.
15108 * ipa-icf.c: Likewise.
15109 * lto-opts.c: Likewise.
15110 * ipa-reference.c: Likewise.
15111 * lto-section-out.c: Likewise.
15112 * lto-streamer-in.c: Likewise.
15113 * lto-streamer-out.c: Likewise.
15114 * opts-global.c: Likewise.
15115 * symtab.c: Likewise.
15116 * tree-chkp.c: Likewise.
15117 * tree-ssa-live.c: Likewise.
15118 * tree-streamer-in.c: Likewise.
15119 * tree-streamer-out.c: Likewise.
15120 * config/darwin.c: Likewise.
15121 * config/i386/winnt.c: Likewise.
15123 2015-07-09 Richard Biener <rguenther@suse.de>
15125 * genmatch.c (struct expr): Add force_single_use flag.
15126 (expr::expr): Add copy constructor.
15127 (capture_info::walk_match): Gather force_single_use captures.
15128 (expr::gen_transform): Use possibly NULLified sequence.
15129 (dt_simplify::gen): Apply single-use restrictions by NULLifying
15130 seq if any constrained expr is not single-use.
15131 (parser::parse_expr): Refactor to allow multiple flags. Handle
15132 's' flag to force an expression have a single-use if the pattern
15133 simplifies to more than one statement.
15134 * match.pd: Convert most single_use conditionals to :s flags.
15136 2015-07-09 H.J. Lu <hongjiu.lu@intel.com>
15138 * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
15139 (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
15140 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
15142 2015-07-09 Andrew MacLeod <amacleod@redhat.com>
15144 * flags.h: Don't include flag-types.h or options.h.
15145 * opts-common.c: Adjust includes.
15146 * opts-global.c: Likewise.
15147 * common/config/epiphany/epiphany-common.c: Likewise.
15149 2015-07-09 H.J. Lu <hongjiu.lu@intel.com>
15152 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
15155 2015-07-09 H.J. Lu <hongjiu.lu@intel.com>
15158 * config/i386/i386.c (ix86_return_in_memory): Return true
15159 if int_size_in_bytes returns negative for IA MCU.
15161 2015-07-09 Marek Polacek <polacek@redhat.com>
15163 PR tree-optimization/66718
15164 * Makefile.in (OBJS): Add gimple-laddress.o.
15165 * passes.def: Schedule pass_laddress.
15166 * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
15167 * tree-pass.h (make_pass_laddress): Declare.
15168 * gimple-laddress.c: New file.
15170 2015-07-09 Richard Biener <rguenther@suse.de>
15172 * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
15174 2015-07-09 Richard Biener <rguenther@suse.de>
15176 PR tree-optimization/66807
15177 * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
15179 2015-07-08 Kito Cheng <kito.cheng@gmail.com>
15181 * function.c (stack_protect_epilogue): Use if rather than switch for
15182 check targetm.have_stack_protect_test.
15184 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15186 * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
15187 * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
15188 * config/arc/arc.h: Likewise.
15189 * config/arm/arm.h: Likewise.
15190 * config/bfin/bfin.h: Likewise.
15191 * config/epiphany/epiphany.h: Likewise.
15192 * config/frv/frv.h: Likewise.
15193 * config/ia64/ia64.h: Likewise.
15194 * config/iq2000/iq2000.h: Likewise.
15195 * config/lm32/lm32.h: Likewise.
15196 * config/m32r/m32r.h: Likewise.
15197 * config/mcore/mcore.h: Likewise.
15198 * config/mep/mep.h: Likewise.
15199 * config/microblaze/microblaze.h: Likewise.
15200 * config/mips/mips.h: Likewise.
15201 * config/mmix/mmix.h: Likewise.
15202 * config/mn10300/mn10300.h: Likewise.
15203 * config/nds32/nds32.h: Likewise.
15204 * config/nios2/nios2.h: Likewise.
15205 * config/pa/pa.h: Likewise.
15206 * config/rl78/rl78.h: Likewise.
15207 * config/sh/sh.h: Likewise.
15208 * config/sparc/sparc.h: Likewise.
15209 * config/stormy16/stormy16.h: Likewise.
15210 * config/tilegx/tilegx.h: Likewise.
15211 * config/tilepro/tilepro.h: Likewise.
15212 * config/v850/v850.h: Likewise.
15213 * config/xtensa/xtensa.h: Likewise.
15214 * doc/tm.texi: Regenerate.
15215 * doc/tm.texi.in: Adjust.
15216 * combine.c (simplify_set): Likewise.
15217 (simplify_comparison): Likewise.
15218 * expr.c (store_constructor): Likewise.
15219 * internal-fn.c (expand_arith_overflow): Likewise.
15220 * reload.c (push_reload): Likewise.
15221 (find_reloads): Likewise.
15222 (find_reloads_subreg_address): Likewise.
15223 * reload1.c (eliminate_regs_1): Likewise.
15224 * rtlanal.c (nonzero_bits1): Likewise.
15225 (num_sign_bit_copies1): Likewise.
15226 * simplify-rtx.c (simplify_truncation): Likewise.
15228 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15230 * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
15231 of AUTO_INC_DEC with the preprocessor.
15232 * combine.c (combine_instructions): Likewise.
15233 (can_combine_p): Likewise.
15234 (try_combine): Likewise.
15235 * emit-rtl.c (try_split): Likewise.
15236 * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
15237 * lower-subreg.c (resolve_simple_move): Likewise.
15238 * lra.c (update_inc_notes): Likewise.
15239 * recog.c (asm_operand_ok): Likewise.
15240 (constrain_operands): Likewise.
15241 * regrename.c (scan_rtx_address): Likewise.
15242 * reload.c (update_auto_inc_notes): Likewise.
15243 (reg_inc_found_and_valid_p): Likewise.
15244 * reload1.c (reload): Likewise.
15245 (emit_input_reload_insns): Likewise.
15246 (delete_output_reload): Likewise.
15247 * sched-deps.c (init_insn_reg_pressure_info): Likewise.
15248 * valtrack.c (cleanup_auto_inc_dec): Likewise.
15250 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15252 * rtl.h: Always define AUTO_INC_DEC.
15253 * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
15254 * combine.c (combine_instructions): Likewise.
15255 (can_combine_p): Likewise.
15256 (try_combine): Likewise.
15257 * emit-rtl.c (try_split): Likewise.
15258 * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
15259 * lower-subreg.c (resolve_simple_move): Likewise.
15260 * lra.c (update_inc_notes): Likewise.
15261 * recog.c (asm_operand_ok): Likewise.
15262 (constrain_operands): Likewise.
15263 * regrename.c (scan_rtx_address): Likewise.
15264 * reload.c (update_auto_inc_notes): Likewise.
15265 (find_equiv_reg): Likewise.
15266 * reload1.c (reload): Likewise.
15267 (reload_as_needed): Likewise.
15268 (choose_reload_regs): Likewise.
15269 (emit_input_reload_insns): Likewise.
15270 (delete_output_reload): Likewise.
15271 * sched-deps.c (init_insn_reg_pressure_info): Likewise.
15272 * valtrack.c (cleanup_auto_inc_dec): Likewise.
15274 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15276 * combine.c (can_combine_def_p): Don't check the value of
15277 HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
15278 (combinable_i3pat): Likewise.
15279 (mark_used_regs_combine): Likewise.
15280 * regrename.c (rename_chains): Likewise.
15281 * reload.c (find_reloads_address): Likewise.
15282 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
15284 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15286 * combine.c (update_rsp_from_reg_equal): Don't check if
15287 SHORT_IMMEDIATES_SIGN_EXTEND is defined.
15288 (reg_nonzero_bits_for_combine): Likewise.
15289 * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
15291 * config/frv/frv.h: Likewise.
15292 * config/lm32/lm32.h: Likewise.
15293 * config/mep/mep.h: Likewise.
15294 * config/mips/mips.h: Likewise.
15295 * config/rs6000/rs6000.h: Likewise.
15296 * config/sh/sh.h: Likewise.
15297 * config/tilegx/tilegx.h (enum reg_class): Likewise.
15298 * config/tilepro/tilepro.h: Likewise.
15299 * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
15300 * doc/tm.texi: Regenerate.
15301 * doc/tm.texi.in: Adjust.
15302 * rtlanal.c (nonzero_bits1): Likewise.
15304 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15306 * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
15307 with the preprocessor.
15308 (combine_instructions): Likewise.
15309 (try_combine): Likewise.
15311 (distribute_notes): Likewise.
15313 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15315 * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
15317 (simplify_set): Likewise.
15318 * cse.c (cse_insn): Likewise.
15319 * fold-const.c (fold_single_bit_test): Likewise.
15320 (fold_unary_loc): Likewise.
15321 * postreload.c (reload_cse_simplify_set): Likewise.
15322 (reload_cse_simplify_operands): Likewise.
15324 2015-07-08 Jiong Wang <jiong.wang@arm.com>
15326 * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
15327 (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
15329 2015-07-08 H.J. Lu <hongjiu.lu@intel.com>
15332 * config/i386/x86intrin.h: Include <adxintrin.h> even if
15333 __iamcu__ is defined.
15335 2015-07-08 Uros Bizjak <ubizjak@gmail.com>
15337 * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
15339 2015-07-08 Iain Sandoe <iain@codesourcery.com>
15342 * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
15343 names from preservation.
15345 2015-07-08 H.J. Lu <hongjiu.lu@intel.com>
15348 * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
15350 (function_arg_advance_32): Don't pass vectors in registers for
15352 (function_arg_32): Likewise.
15353 (ix86_return_in_memory): Don't return vectors in registers for
15356 2015-07-08 Vladimir Makarov <vmakarov@redhat.com>
15358 PR middle-end/66334
15359 * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
15360 hard regno live at the start of BB with incoming abnormal edges.
15361 * lra-lives.c (process_bb_lives): Ditto.
15363 2015-07-08 Thomas Schwinge <thomas@codesourcery.com>
15366 * config/nvptx/mkoffload.c (main): Create an offload image only in
15367 64-bit configurations.
15369 2015-07-08 Martin Liska <mliska@suse.cz>
15372 * tree-sra.c (create_access_1): Call ctor without brackets.
15373 (create_artificial_child_access): Likewise.
15375 2015-07-08 Richard Biener <rguenther@suse.de>
15377 PR tree-optimization/66793
15378 * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
15379 Properly split the block after stmts ending it.
15381 2015-07-08 Richard Biener <rguenther@suse.de>
15383 PR tree-optimization/66794
15384 * passes.c (execute_function_todo): Assert that post-dominators
15386 * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
15387 Free post-dominators.
15389 2015-07-08 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15391 * config/s390/s390.c (s390_init_frame_layout): Replace assertion
15394 2015-07-08 Uros Bizjak <ubizjak@gmail.com>
15396 * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
15397 more than or equal 8 and less than 32 when optimizing for size.
15399 2015-07-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15401 * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
15402 COSTS_N_INSNS (1) and increment it appropriately throughout the
15405 2015-07-08 Richard Biener <rguenther@suse.de>
15407 * fold-const.c (fold_widened_comparison): Fix inverted comparison.
15409 2015-07-08 Alan Modra <amodra@gmail.com>
15411 * target.def (rtx_costs): Remove "code" param, add "mode".
15412 * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
15413 (set_src_cost, get_full_set_src_cost): Likewise. Move later in file.
15414 (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
15415 * rtlanal.c (rtx_cost): Add "mode" parameter. Update targetm.rtx_costs
15416 call. Track mode when given in rtx.
15417 (get_full_rtx_cost): Add "mode" parameter. Update rtx_cost calls.
15418 (default_address_cost): Pass Pmode to rtx_cost.
15419 (insn_rtx_cost): Pass dest mode of set to set_src_cost.
15420 * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
15422 * cse.c (COST, COST_IN): Add MODE param. Update all uses.
15423 (notreg_cost): Add mode param. Use it.
15424 * gcse.c (want_to_gcse_p): Delete forward declaration. Add
15425 mode param and pass to set_src_cost. Update all calls.
15426 (hash_scan_set): Formatting.
15427 * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
15428 (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
15430 * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
15431 init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
15432 emit_store_flag): Update set_src_cost and rtx_cost calls.
15433 * auto-inc-dec.c (attempt_change): Likewise.
15434 * calls.c (precompute_register_parameters): Likewise.
15435 * combine.c (expand_compound_operation, make_extraction,
15436 force_to_mode, distribute_and_simplify_rtx): Likewise.
15437 * dojump.c (prefer_and_bit_test): Likewise.
15438 * dse.c (find_shift_sequence): Likewise.
15439 * expr.c (compress_float_constant): Likewise.
15440 * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
15441 * ifcvt.c (noce_try_sign_mask): Likewise.
15442 * loop-doloop.c (doloop_optimize): Likewise.
15443 * loop-invariant.c (create_new_invariant): Likewise.
15444 * lower-subreg.c (shift_cost, compute_costs): Likewise.
15445 * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
15446 lshift_cheap_p): Likewise.
15447 * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
15448 try_replace_in_use, reload_cse_move2add): Likewise.
15449 * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
15451 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
15452 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
15453 * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
15454 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
15455 * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
15456 add "mode" param. Use "mode: in place of GET_MODE (x). Pass mode
15458 * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
15459 * config/arc/arc.c (arc_rtx_costs): Likewise.
15460 * config/arm/arm.c (arm_rtx_costs): Likewise.
15461 * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
15462 * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
15463 * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
15464 * config/cris/cris.c (cris_rtx_costs): Likewise.
15465 * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
15466 * config/frv/frv.c (frv_rtx_costs): Likewise.
15467 * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
15468 * config/i386/i386.c (ix86_rtx_costs): Likewise.
15469 * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
15470 * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
15471 * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
15472 * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
15473 * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
15474 * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
15475 * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
15476 * config/mep/mep.c (mep_rtx_cost): Likewise.
15477 * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
15478 * config/mips/mips.c (mips_rtx_costs): Likewise.
15479 * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
15480 * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
15481 * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
15482 * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
15483 * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
15484 * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
15485 * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
15486 * config/pa/pa.c (hppa_rtx_costs): Likewise.
15487 * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
15488 * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
15489 * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
15490 * config/s390/s390.c (s390_rtx_costs): Likewise.
15491 * config/sh/sh.c (sh_rtx_costs): Likewise.
15492 * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
15493 * config/spu/spu.c (spu_rtx_costs): Likewise.
15494 * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
15495 * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
15496 * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
15497 * config/v850/v850.c (v850_rtx_costs): Likewise.
15498 * config/vax/vax.c (vax_rtx_costs): Likewise.
15499 * config/visium/visium.c (visium_rtx_costs): Likewise.
15500 * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
15501 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
15502 "code" param, and pass as outer_code to first rtx_cost call. Pass
15503 mode to rtx_cost calls.
15504 (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
15506 (aarch64_rtx_costs_wrapper): Update.
15507 * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
15508 arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
15510 * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
15511 and rtx_cost calls.
15512 (avr_operand_rtx_cost): Similarly.
15513 (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
15514 for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
15515 * config/mips/mips.c (mips_stack_address_p): Comment typo.
15516 (mips_binary_cost): Update rtx_cost and set_src_cost calls.
15517 (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
15518 * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
15520 (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
15521 * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
15522 * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
15523 * doc/tm.texi: Regenerate.
15525 2015-07-07 Andrew MacLeod <amacleod@redhat.com>
15527 * tree-core.h: Include symtab.h.
15528 * rtl.h: Include hard-reg-set.h but not flags.h.
15529 (HARD_CONST): Remove condition compilation involving HARD_CONST since
15530 hard-reg-set.h is always included.
15531 * regs.h: Don't include hard-reg-set.h or rtl.h.
15532 * cfg.h: Include dominance.h.
15533 * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
15534 * backend.h: New. Aggregate commonly used backend header files.
15535 * gimple-ssa.h: Don't include tree-hasher.h.
15536 * ssa.h: New. Aggregate commonly used SSA header files.
15537 * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
15538 * sel-sched-ir.h: Flatten includes.
15539 * lra-int.h: Flatten completely.
15540 * sel-sched-dump.h: Flatten includes.
15541 * ira-int.h: Flatten includes.
15542 * gimple-streamer.h: Remove all includes.
15543 * cfgloop.h: Remove all #includes except cfgloopmanip.h.
15544 * resource.h: Flatten hard-reg-set.h and df.h.
15545 * sched-int.h: Flatten insn-arrt.h and df.h.
15546 * valtrack.h: flatten bitmap.h, df.h, and rtl.h
15547 * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
15548 * genattrtab.c (write_header): Adjust generated includes.
15549 * genautomata.c (main): Likewise.
15550 * genconditions.c (write-header): Likewise.
15551 * genemit.c (main): Likewise.
15552 * gengtype.c (open_base_files): Likewise.
15553 * genopinit.c (main): Likewise.
15554 * genoutput.c (output_prologue): Likewise.
15555 * genpeep.c (main): Likewise.
15556 * genpreds.c (write_insn_preds_c): Likewise.
15557 * genrecog.c (write_header): Likewise.
15558 * alias.c: Adjust includes.
15559 * asan.c: Likewise.
15560 * attribs.c: Likewise.
15561 * auto-inc-dec.c: Likewise.
15562 * auto-profile.c: Likewise.
15563 * bb-reorder.c: Likewise.
15564 * bt-load.c: Likewise.
15565 * builtins.c: Likewise.
15566 * caller-save.c: Likewise.
15567 * calls.c: Likewise.
15568 * ccmp.c: Likewise.
15570 * cfganal.c: Likewise.
15571 * cfgbuild.c: Likewise.
15572 * cfgcleanup.c: Likewise.
15573 * cfgexpand.c: Likewise.
15574 * cfghooks.c: Likewise.
15575 * cfgloop.c: Likewise.
15576 * cfgloopanal.c: Likewise.
15577 * cfgloopmanip.c: Likewise.
15578 * cfgrtl.c: Likewise.
15579 * cgraph.c: Likewise.
15580 * cgraphbuild.c: Likewise.
15581 * cgraphclones.c: Likewise.
15582 * cgraphunit.c: Likewise.
15583 * cilk-common.c: Likewise.
15584 * combine-stack-adj.c: Likewise.
15585 * combine.c: Likewise.
15586 * compare-elim.c: Likewise.
15587 * convert.c: Likewise.
15588 * coverage.c: Likewise.
15589 * cppbuiltin.c: Likewise.
15590 * cprop.c: Likewise.
15592 * cselib.c: Likewise.
15593 * data-streamer-in.c: Likewise.
15594 * data-streamer-out.c: Likewise.
15595 * data-streamer.c: Likewise.
15596 * dbxout.c: Likewise.
15599 * debug.c: Likewise.
15600 * df-core.c: Likewise.
15601 * df-problems.c: Likewise.
15602 * df-scan.c: Likewise.
15604 * dojump.c: Likewise.
15605 * dominance.c: Likewise.
15606 * domwalk.c: Likewise.
15607 * double-int.c: Likewise.
15609 * dumpfile.c: Likewise.
15610 * dwarf2asm.c: Likewise.
15611 * dwarf2cfi.c: Likewise.
15612 * dwarf2out.c: Likewise.
15613 * emit-rtl.c: Likewise.
15614 * et-forest.c: Likewise.
15615 * except.c: Likewise.
15616 * explow.c: Likewise.
15617 * expmed.c: Likewise.
15618 * expr.c: Likewise.
15619 * final.c: Likewise.
15620 * fixed-value.c: Likewise.
15621 * fold-const.c: Likewise.
15622 * function.c: Likewise.
15623 * fwprop.c: Likewise.
15624 * gcc-plugin.h: Likewise.
15625 * gcse-common.c: Likewise.
15626 * gcse.c: Likewise.
15627 * generic-match-head.c: Likewise.
15628 * ggc-page.c: Likewise.
15629 * gimple-builder.c: Likewise.
15630 * gimple-expr.c: Likewise.
15631 * gimple-fold.c: Likewise.
15632 * gimple-iterator.c: Likewise.
15633 * gimple-low.c: Likewise.
15634 * gimple-match-head.c: Likewise.
15635 * gimple-pretty-print.c: Likewise.
15636 * gimple-ssa-isolate-paths.c: Likewise.
15637 * gimple-ssa-strength-reduction.c: Likewise.
15638 * gimple-streamer-in.c: Likewise.
15639 * gimple-streamer-out.c: Likewise.
15640 * gimple-walk.c: Likewise.
15641 * gimple.c: Likewise.
15642 * gimplify-me.c: Likewise.
15643 * gimplify.c: Likewise.
15644 * godump.c: Likewise.
15645 * graph.c: Likewise.
15646 * graphite-blocking.c: Likewise.
15647 * graphite-dependences.c: Likewise.
15648 * graphite-interchange.c: Likewise.
15649 * graphite-isl-ast-to-gimple.c: Likewise.
15650 * graphite-optimize-isl.c: Likewise.
15651 * graphite-poly.c: Likewise.
15652 * graphite-scop-detection.c: Likewise.
15653 * graphite-sese-to-poly.c: Likewise.
15654 * graphite.c: Likewise.
15655 * haifa-sched.c: Likewise.
15656 * hw-doloop.c: Likewise.
15657 * ifcvt.c: Likewise.
15658 * init-regs.c: Likewise.
15659 * internal-fn.c: Likewise.
15660 * ipa-chkp.c: Likewise.
15661 * ipa-comdats.c: Likewise.
15662 * ipa-cp.c: Likewise.
15663 * ipa-devirt.c: Likewise.
15664 * ipa-icf-gimple.c: Likewise.
15665 * ipa-icf.c: Likewise.
15666 * ipa-inline-analysis.c: Likewise.
15667 * ipa-inline-transform.c: Likewise.
15668 * ipa-inline.c: Likewise.
15669 * ipa-polymorphic-call.c: Likewise.
15670 * ipa-profile.c: Likewise.
15671 * ipa-prop.c: Likewise.
15672 * ipa-pure-const.c: Likewise.
15673 * ipa-ref.c: Likewise.
15674 * ipa-reference.c: Likewise.
15675 * ipa-split.c: Likewise.
15676 * ipa-utils.c: Likewise.
15677 * ipa-visibility.c: Likewise.
15679 * ira-build.c: Likewise.
15680 * ira-color.c: Likewise.
15681 * ira-conflicts.c: Likewise.
15682 * ira-costs.c: Likewise.
15683 * ira-emit.c: Likewise.
15684 * ira-lives.c: Likewise.
15686 * jump.c: Likewise.
15687 * langhooks.c: Likewise.
15689 * loop-doloop.c: Likewise.
15690 * loop-init.c: Likewise.
15691 * loop-invariant.c: Likewise.
15692 * loop-iv.c: Likewise.
15693 * loop-unroll.c: Likewise.
15694 * lower-subreg.c: Likewise.
15695 * lra-assigns.c: Likewise.
15696 * lra-coalesce.c: Likewise.
15697 * lra-constraints.c: Likewise.
15698 * lra-eliminations.c: Likewise.
15699 * lra-lives.c: Likewise.
15700 * lra-remat.c: Likewise.
15701 * lra-spills.c: Likewise.
15703 * lto-cgraph.c: Likewise.
15704 * lto-compress.c: Likewise.
15705 * lto-opts.c: Likewise.
15706 * lto-section-in.c: Likewise.
15707 * lto-section-out.c: Likewise.
15708 * lto-streamer-in.c: Likewise.
15709 * lto-streamer-out.c: Likewise.
15710 * lto-streamer.c: Likewise.
15712 * mode-switching.c: Likewise.
15713 * modulo-sched.c: Likewise.
15714 * omega.c: Likewise.
15715 * omp-low.c: Likewise.
15716 * optabs.c: Likewise.
15717 * opts-global.c: Likewise.
15718 * passes.c: Likewise.
15719 * plugin.c: Likewise.
15720 * postreload-gcse.c: Likewise.
15721 * postreload.c: Likewise.
15722 * predict.c: Likewise.
15723 * print-rtl.c: Likewise.
15724 * print-tree.c: Likewise.
15725 * profile.c: Likewise.
15726 * real.c: Likewise.
15727 * realmpfr.c: Likewise.
15728 * recog.c: Likewise.
15730 * reg-stack.c: Likewise.
15731 * regcprop.c: Likewise.
15732 * reginfo.c: Likewise.
15733 * regrename.c: Likewise.
15734 * regstat.c: Likewise.
15735 * reload.c: Likewise.
15736 * reload1.c: Likewise.
15737 * reorg.c: Likewise.
15738 * resource.c: Likewise.
15739 * rtl-chkp.c: Likewise.
15740 * rtlanal.c: Likewise.
15741 * rtlhooks.c: Likewise.
15742 * sanopt.c: Likewise.
15743 * sched-deps.c: Likewise.
15744 * sched-ebb.c: Likewise.
15745 * sched-rgn.c: Likewise.
15746 * sched-vis.c: Likewise.
15747 * sdbout.c: Likewise.
15748 * sel-sched-dump.c: Likewise.
15749 * sel-sched-ir.c: Likewise.
15750 * sel-sched.c: Likewise.
15751 * sese.c: Likewise.
15752 * shrink-wrap.c: Likewise.
15753 * simplify-rtx.c: Likewise.
15754 * stack-ptr-mod.c: Likewise.
15755 * stmt.c: Likewise.
15756 * stor-layout.c: Likewise.
15757 * store-motion.c: Likewise.
15758 * stringpool.c: Likewise.
15759 * symtab.c: Likewise.
15760 * target-globals.c: Likewise.
15761 * targhooks.c: Likewise.
15762 * toplev.c: Likewise.
15763 * tracer.c: Likewise.
15764 * trans-mem.c: Likewise.
15765 * tree-affine.c: Likewise.
15766 * tree-browser.c: Likewise.
15767 * tree-call-cdce.c: Likewise.
15768 * tree-cfg.c: Likewise.
15769 * tree-cfgcleanup.c: Likewise.
15770 * tree-chkp-opt.c: Likewise.
15771 * tree-chkp.c: Likewise.
15772 * tree-chrec.c: Likewise.
15773 * tree-complex.c: Likewise.
15774 * tree-data-ref.c: Likewise.
15775 * tree-dfa.c: Likewise.
15776 * tree-diagnostic.c: Likewise.
15777 * tree-dump.c: Likewise.
15778 * tree-eh.c: Likewise.
15779 * tree-emutls.c: Likewise.
15780 * tree-if-conv.c: Likewise.
15781 * tree-inline.c: Likewise.
15782 * tree-into-ssa.c: Likewise.
15783 * tree-iterator.c: Likewise.
15784 * tree-loop-distribution.c: Likewise.
15785 * tree-nested.c: Likewise.
15786 * tree-nrv.c: Likewise.
15787 * tree-object-size.c: Likewise.
15788 * tree-outof-ssa.c: Likewise.
15789 * tree-parloops.c: Likewise.
15790 * tree-phinodes.c: Likewise.
15791 * tree-predcom.c: Likewise.
15792 * tree-pretty-print.c: Likewise.
15793 * tree-profile.c: Likewise.
15794 * tree-scalar-evolution.c: Likewise.
15795 * tree-sra.c: Likewise.
15796 * tree-ssa-address.c: Likewise.
15797 * tree-ssa-alias.c: Likewise.
15798 * tree-ssa-ccp.c: Likewise.
15799 * tree-ssa-coalesce.c: Likewise.
15800 * tree-ssa-copy.c: Likewise.
15801 * tree-ssa-copyrename.c: Likewise.
15802 * tree-ssa-dce.c: Likewise.
15803 * tree-ssa-dom.c: Likewise.
15804 * tree-ssa-dse.c: Likewise.
15805 * tree-ssa-forwprop.c: Likewise.
15806 * tree-ssa-ifcombine.c: Likewise.
15807 * tree-ssa-live.c: Likewise.
15808 * tree-ssa-loop-ch.c: Likewise.
15809 * tree-ssa-loop-im.c: Likewise.
15810 * tree-ssa-loop-ivcanon.c: Likewise.
15811 * tree-ssa-loop-ivopts.c: Likewise.
15812 * tree-ssa-loop-manip.c: Likewise.
15813 * tree-ssa-loop-niter.c: Likewise.
15814 * tree-ssa-loop-prefetch.c: Likewise.
15815 * tree-ssa-loop-unswitch.c: Likewise.
15816 * tree-ssa-loop.c: Likewise.
15817 * tree-ssa-math-opts.c: Likewise.
15818 * tree-ssa-operands.c: Likewise.
15819 * tree-ssa-phiopt.c: Likewise.
15820 * tree-ssa-phiprop.c: Likewise.
15821 * tree-ssa-pre.c: Likewise.
15822 * tree-ssa-propagate.c: Likewise.
15823 * tree-ssa-reassoc.c: Likewise.
15824 * tree-ssa-sccvn.c: Likewise.
15825 * tree-ssa-scopedtables.c: Likewise.
15826 * tree-ssa-sink.c: Likewise.
15827 * tree-ssa-strlen.c: Likewise.
15828 * tree-ssa-structalias.c: Likewise.
15829 * tree-ssa-tail-merge.c: Likewise.
15830 * tree-ssa-ter.c: Likewise.
15831 * tree-ssa-threadedge.c: Likewise.
15832 * tree-ssa-threadupdate.c: Likewise.
15833 * tree-ssa-uncprop.c: Likewise.
15834 * tree-ssa-uninit.c: Likewise.
15835 * tree-ssa.c: Likewise.
15836 * tree-ssanames.c: Likewise.
15837 * tree-stdarg.c: Likewise.
15838 * tree-streamer-in.c: Likewise.
15839 * tree-streamer-out.c: Likewise.
15840 * tree-streamer.c: Likewise.
15841 * tree-switch-conversion.c: Likewise.
15842 * tree-tailcall.c: Likewise.
15843 * tree-vect-data-refs.c: Likewise.
15844 * tree-vect-generic.c: Likewise.
15845 * tree-vect-loop-manip.c: Likewise.
15846 * tree-vect-loop.c: Likewise.
15847 * tree-vect-patterns.c: Likewise.
15848 * tree-vect-slp.c: Likewise.
15849 * tree-vect-stmts.c: Likewise.
15850 * tree-vectorizer.c: Likewise.
15851 * tree-vrp.c: Likewise.
15852 * tree.c: Likewise.
15853 * tsan.c: Likewise.
15854 * ubsan.c: Likewise.
15855 * valtrack.c: Likewise.
15856 * value-prof.c: Likewise.
15857 * var-tracking.c: Likewise.
15858 * varasm.c: Likewise.
15859 * varpool.c: Likewise.
15860 * vmsdbgout.c: Likewise.
15861 * vtable-verify.c: Likewise.
15863 * wide-int.cc: Likewise.
15864 * xcoffout.c: Likewise.
15865 * config/aarch64/aarch64-builtins.c: Likewise.
15866 * config/aarch64/aarch64.c: Likewise.
15867 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
15868 * config/alpha/alpha.c: Likewise.
15869 * config/arc/arc.c: Likewise.
15870 * config/arm/aarch-common.c: Likewise.
15871 * config/arm/arm-builtins.c: Likewise.
15872 * config/arm/arm-c.c: Likewise.
15873 * config/arm/arm.c: Likewise.
15874 * config/avr/avr-c.c: Likewise.
15875 * config/avr/avr-log.c: Likewise.
15876 * config/avr/avr.c: Likewise.
15877 * config/bfin/bfin.c: Likewise.
15878 * config/c6x/c6x.c: Likewise.
15879 * config/cr16/cr16.c: Likewise.
15880 * config/cris/cris.c: Likewise.
15881 * config/darwin-c.c: Likewise.
15882 * config/darwin.c: Likewise.
15883 * config/epiphany/epiphany.c: Likewise.
15884 * config/epiphany/mode-switch-use.c: Likewise.
15885 * config/epiphany/resolve-sw-modes.c: Likewise.
15886 * config/fr30/fr30.c: Likewise.
15887 * config/frv/frv.c: Likewise.
15888 * config/ft32/ft32.c: Likewise.
15889 * config/h8300/h8300.c: Likewise.
15890 * config/i386/i386-c.c: Likewise.
15891 * config/i386/i386.c: Likewise.
15892 * config/i386/msformat-c.c: Likewise.
15893 * config/i386/winnt-cxx.c: Likewise.
15894 * config/i386/winnt-stubs.c: Likewise.
15895 * config/i386/winnt.c: Likewise.
15896 * config/ia64/ia64-c.c: Likewise.
15897 * config/ia64/ia64.c: Likewise.
15898 * config/iq2000/iq2000.c: Likewise.
15899 * config/lm32/lm32.c: Likewise.
15900 * config/m32c/m32c-pragma.c: Likewise.
15901 * config/m32c/m32c.c: Likewise.
15902 * config/m32r/m32r.c: Likewise.
15903 * config/m68k/m68k.c: Likewise.
15904 * config/mcore/mcore.c: Likewise.
15905 * config/mep/mep-pragma.c: Likewise.
15906 * config/mep/mep.c: Likewise.
15907 * config/microblaze/microblaze-c.c: Likewise.
15908 * config/microblaze/microblaze.c: Likewise.
15909 * config/mips/mips.c: Likewise.
15910 * config/mmix/mmix.c: Likewise.
15911 * config/mn10300/mn10300.c: Likewise.
15912 * config/moxie/moxie.c: Likewise.
15913 * config/msp430/msp430-c.c: Likewise.
15914 * config/msp430/msp430.c: Likewise.
15915 * config/nds32/nds32-cost.c: Likewise.
15916 * config/nds32/nds32-fp-as-gp.c: Likewise.
15917 * config/nds32/nds32-intrinsic.c: Likewise.
15918 * config/nds32/nds32-isr.c: Likewise.
15919 * config/nds32/nds32-md-auxiliary.c: Likewise.
15920 * config/nds32/nds32-memory-manipulation.c: Likewise.
15921 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
15922 * config/nds32/nds32-predicates.c: Likewise.
15923 * config/nds32/nds32.c: Likewise.
15924 * config/nios2/nios2.c: Likewise.
15925 * config/nvptx/nvptx.c: Likewise.
15926 * config/pa/pa.c: Likewise.
15927 * config/pdp11/pdp11.c: Likewise.
15928 * config/rl78/rl78-c.c: Likewise.
15929 * config/rl78/rl78.c: Likewise.
15930 * config/rs6000/rs6000-c.c: Likewise.
15931 * config/rs6000/rs6000.c: Likewise.
15932 * config/rx/rx.c: Likewise.
15933 * config/s390/s390-c.c: Likewise.
15934 * config/s390/s390.c: Likewise.
15935 * config/sh/sh-c.c: Likewise.
15936 * config/sh/sh-mem.cc: Likewise.
15937 * config/sh/sh.c: Likewise.
15938 * config/sh/sh_optimize_sett_clrt.cc: Likewise.
15939 * config/sh/sh_treg_combine.cc: Likewise.
15940 * config/sol2-c.c: Likewise.
15941 * config/sol2-cxx.c: Likewise.
15942 * config/sol2-stubs.c: Likewise.
15943 * config/sol2.c: Likewise.
15944 * config/sparc/sparc-c.c: Likewise.
15945 * config/sparc/sparc.c: Likewise.
15946 * config/spu/spu-c.c: Likewise.
15947 * config/spu/spu.c: Likewise.
15948 * config/stormy16/stormy16.c: Likewise.
15949 * config/tilegx/mul-tables.c: Likewise.
15950 * config/tilegx/tilegx-c.c: Likewise.
15951 * config/tilegx/tilegx.c: Likewise.
15952 * config/tilepro/mul-tables.c: Likewise.
15953 * config/tilepro/tilepro-c.c: Likewise.
15954 * config/tilepro/tilepro.c: Likewise.
15955 * config/v850/v850-c.c: Likewise.
15956 * config/v850/v850.c: Likewise.
15957 * config/vax/vax.c: Likewise.
15958 * config/visium/visium.c: Likewise.
15959 * config/vms/vms-c.c: Likewise.
15960 * config/vms/vms.c: Likewise.
15961 * config/vxworks.c: Likewise.
15962 * config/xtensa/xtensa.c: Likewise.
15964 2015-07-07 Uros Bizjak <ubizjak@gmail.com>
15966 * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
15967 Remove operand constraints. Change operand 2 predicate to
15968 nonmemory operand. Limit const_int values to mode bitsize. Only
15969 allow const_int values less than 32 when optimizing for size.
15970 (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
15971 Remove operand constraints.
15972 (*bt<mode>): Use SImode for const_int values less than 32.
15973 (regmode): Remove mode attribute.
15975 2015-07-07 Anatoly Sokolov <aesok@post.ru>
15977 * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
15978 * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
15979 moxie_legitimate_address_p): New functions.
15980 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
15982 2015-07-07 Tom de Vries <tom@codesourcery.com>
15984 PR tree-optimization/66642
15985 * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
15986 header comment. Rename split_edge variable to edge_at_split. Split
15987 exit edge to create new loop exit bb. Insert loop exit phis in new
15990 2015-07-07 Tom de Vries <tom@codesourcery.com>
15992 * tree-cfg.c (get_virtual_phi): New function.
15993 * tree-cfg.h (get_virtual_phi): Declare.
15994 * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
15995 (rewrite_virtuals_into_loop_closed_ssa): New function.
15996 * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
15998 * tree-parloops.c (replace_uses_in_bbs_by): Remove.
15999 (transform_to_exit_first_loop_alt): Use
16000 rewrite_virtuals_into_loop_closed_ssa.
16002 2015-07-07 Richard Biener <rguenther@suse.de>
16004 * fold-const.c (fold_binary_loc): Move
16005 (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
16006 * match.pd: ... here.
16007 Add (X * C1) % C2 -> 0 simplification pattern derived from
16010 2015-07-07 Kaz Kojima <kkojima@gcc.gnu.org>
16013 * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
16014 change for target/65249.
16016 2015-07-07 Paulo Matos <pmatos@broadcom.com>
16018 * symtab.c (address_matters_1): Fix typo in comment above.
16019 (can_increase_alignment_p): Likewise.
16021 2015-07-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16023 * function.c (free_after_compilation): Clear PROP_cfg in
16024 f->curr_properties.
16026 2015-07-07 Richard Biener <rguenther@suse.de>
16028 * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
16030 (add_control_edge): Remove excessive vertical space in dumping.
16031 (process_ssa_edge_worklist): Simulate at most one statement and
16032 return whether we did. Do not simulate PHIs if they are in a
16033 BB not yet simulated.
16034 (ssa_propagate): Adjust to always drain the BB worklist whenever
16035 a BB is available there, likewise the VARYING edges list before
16036 the interesting edge list.
16038 2015-07-07 Christian Bruel <christian.bruel@st.com>
16041 * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
16043 2015-07-07 Richard Biener <rguenther@suse.de>
16045 PR middle-end/66739
16046 * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
16049 2015-07-06 Uros Bizjak <ubizjak@gmail.com>
16051 * config/i386/i386.md (insv<mode>): Rename from insv. Use SWI48
16052 modes for operands 0 and 3. Use SImode for operands 2 and 3.
16053 Copy operand 0 to a temporary if !ext_register_operand. Remove
16054 ancient extract_bit_field workaround.
16055 (insv<mode>_1): Rename from mov<mode>_insv_1.
16056 (*insvqi): Rename from *movqi_insv_2.
16057 * config/i386/i386.c (emit_i386_cw_initialization): Update calls
16058 for renamed insvsi_1.
16059 (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
16061 2015-07-06 Nathan Sidwell <nathan@codesourcery.com>
16063 * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars. Fix
16064 call to nvptx_reorg_subreg.
16066 2015-07-06 Jim Wilson <jim.wilson@linaro.org>
16068 * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
16069 * graphite-dependencies.c, graphite-interchange.c,
16070 graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
16071 graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
16074 2015-07-06 Marc Glisse <marc.glisse@inria.fr>
16076 * match.pd: Remove element_mode inside HONOR_*.
16077 (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
16078 (~X | X -> -1, ~X ^ X -> -1): Merge.
16079 * tree.c (build_each_one_cst): New function.
16080 * tree.h (build_each_one_cst): Likewise.
16082 2015-07-06 H.J. Lu <hongjiu.lu@intel.com>
16084 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16087 2015-07-06 Steve Ellcey <sellcey@imgtec.com>
16089 * config.gcc <mips*-*-*>: Add fused-madd.opt.
16090 * config/mips/mips.opt (mfused-madd): Remove.
16091 * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
16092 * config/mips/mips.h (TARGET_MIPS8000): New.
16093 (ISA_HAS_FP_MADD4_MSUB4): Remove.
16094 (ISA_HAS_FP_MADDF_MSUBF): Remove.
16095 (ISA_HAS_FP_MADD3_MSUB3): Remove.
16096 (ISA_HAS_NMADD4_NMSUB4): Remove.
16097 (ISA_HAS_NMADD3_NMSUB3): Remove.
16098 (ISA_HAS_FUSED_MADD4): New.
16099 (ISA_HAS_UNFUSED_MADD4): New.
16100 (ISA_HAS_FUSED_MADDF): New.
16101 (ISA_HAS_FUSED_MADD3): New.
16102 * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
16103 (*fma<mode>4_madd3) New.
16104 (*fma<mode>4_madd4) New.
16105 (*fma<mode>4_maddf) New.
16107 (*fms<mode>4_msub3) New.
16108 (*fms<mode>4_msub4) New.
16110 (*fnma<mode>4_nmadd3) New.
16111 (*fnma<mode>4_nmadd4) New.
16113 (*fnms<mode>4_nmsub3) New.
16114 (*fnms<mode>4_nmsub4) New.
16115 (*madd4<mode>) Modify to be unfused only.
16116 (*msub4<mode>) Modify to be unfused only.
16117 (*nmadd4<mode>) Modify to be unfused only.
16118 (*nmsub4<mode>) Modify to be unfused only.
16119 (*madd3<mode>) Remove.
16120 (*msub3<mode>) Remove.
16121 (*nmadd3<mode>) Remove.
16122 (*nmsub3<mode>) Remove.
16123 (*nmadd3<mode>_fastmath) Remove.
16124 (*nmsub3<mode>_fastmath) Remove.
16125 (*nmadd4<mode>_fastmath) Update condition.
16126 (*nmsub4<mode>_fastmath) Update condition.
16128 2015-07-06 Alan Lawrence <alan.lawrence@arm.com>
16131 * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
16132 alignment attribute, exploring one level down for records and arrays.
16134 2015-07-06 Uros Bizjak <ubizjak@gmail.com>
16136 * config/i386/i386.md (extv<mode>): Rename from extv. Use SWI24
16137 modes for operands 0 and 1. Use SImode for operands 2 and 3.
16138 Copy operand 1 to a temporary if !ext_register_operand. Remove
16139 ancient extract_bit_field workaround.
16140 (*extv<mode>): Rename from *mov<mode>_extv_1.
16141 (*extvqi): Rename from *movqi_extv_1.
16142 (extzv<mode>): Rename from extzv. Use SWI248 modes for
16143 operands 0 and 1. Use SImode for operands 2 and 3. Copy operand 1
16144 to a temporary if !ext_register_operand. Remove ancient
16145 extract_bit_field workaround.
16146 (*extzv<mode>): Rename from *mov<mode>_extzv_1.
16147 (*extzvqi): Rename from *movqi_extzv_2.
16148 (*testqi_ext_3): Remove modes from const_int_operand predicated
16149 operands. Add "n" constraint.
16150 (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
16151 operand. Add "J" constraint.
16152 (*btsq, *btrq, *btcq peephole2s): Remove mode from
16153 const_0_to_63 predicated operand.
16154 (regmode): New insn attribute.
16155 (*bt<mode>): Use SImode for operand 1. Change operand 1 predicate
16156 to nonmemory_operand. Use regmode insn attribute.
16157 (*jcc_bt<mode>_1): Convert operand 2 to SImode.
16158 (*jcc_bt<mode>_mask): Remove mode from operand 3.
16159 (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
16160 (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
16161 operands. Use "N" constraint instead of "n".
16163 2015-07-06 Alan Lawrence <alan.lawrence@arm.com>
16165 * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
16167 2015-07-06 H.J. Lu <hongjiu.lu@intel.com>
16170 * config/i386/i386.c (iamcu_cost): New.
16171 (m_IAMCU): Likewise.
16172 (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
16173 (processor_target_table): Add an entry for "iamcu".
16174 (processor_alias_table): Likewise.
16175 (ix86_issue_rate): Handle PROCESSOR_IAMCU.
16176 (ix86_adjust_cost): Likewise.
16177 (ia32_multipass_dfa_lookahead): Likewise.
16178 * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
16179 * config/i386/x86-tune.def: Updated for m_IAMCU.
16181 2015-07-06 Richard Biener <rguenther@suse.de>
16183 PR tree-optimization/66772
16184 * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
16185 values are available in the PHI node BB when there are
16186 still unexecutable edges.
16188 2015-07-06 Richard Biener <rguenther@suse.de>
16190 PR tree-optimization/66767
16191 * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
16192 Make sure to build the alignment test on a SSA name without
16193 final alignment info valid only if the alignment test
16196 2015-07-06 Bernd Schmidt <bernds@codesourcery.com>
16199 * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
16200 loop start when inserting LSETUP.
16202 2015-07-06 H.J. Lu <hongjiu.lu@intel.com>
16205 * config/i386/i386.c (ix86_option_override_internal): Allow
16206 -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
16208 2015-07-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16210 * read-md.c (decimal_string): Rename to ...
16211 (md_decimal_string): ... this.
16212 (handle_enum): Reflect this.
16214 2015-07-06 Szabolcs Nagy <szabolcs.nagy@arm.com>
16217 * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
16219 2015-07-06 Richard Biener <rguenther@suse.de>
16221 PR middle-end/66759
16222 * match.pd: Add missing constraint of y to REAL_CST in
16223 REAL_CST - x CMP y to y - CST CMP x simplification.
16225 2015-07-06 Eric Botcazou <ebotcazou@adacore.com>
16227 PR tree-optimization/66757
16228 * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
16230 2015-07-05 Chung-Lin Tang <cltang@codesourcery.com>
16231 Sandra Loosemore <sandra@codesourcery.com>
16233 * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
16234 Delete extern declaration.
16235 (gprel_constant_p): Add extern declaration.
16236 * config/nios2/constraints.md ("S"): Use gprel_constant_p
16237 instead of nios2_symbol_ref_in_small_data_p.
16238 * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
16239 (nios2_symbol_ref_in_small_data_p): Make static.
16240 (gprel_constant_p): Make non-static.
16242 2015-07-05 Gerald Pfeifer <gerald@pfeifer.com>
16244 * doc/fragments.texi (Target Fragment): Convert debian.org
16246 * doc/install.texi (Configuration): Ditto.
16248 2015-07-05 Jakub Jelinek <jakub@redhat.com>
16250 PR tree-optimization/66718
16251 * tree-vect-stmts.c (vectorizable_call): Replace uses of
16252 GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
16254 PR tree-optimization/66718
16255 * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
16256 vectorizable_load, vectorizable_condition): Move vectype,
16257 nunits, ncopies computation after checking what kind of statement
16260 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16262 * target-insns.def (extv, extzv, insv): New targetm instruction
16264 * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
16266 * recog.c (simplify_while_replacing): Likewise.
16268 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16270 * target-insns.def (doloop_begin, doloop_end): New targetm
16271 instruction patterns.
16272 * loop-init.c: Include target.h.
16273 (pass_loop2::gate): Use the new targetm patterns instead of
16274 HAVE_*/gen_* interface.
16275 (pass_rtl_doloop::gate): Likewise.
16276 (pass_rtl_doloop::execute): Remove preprocessor condition.
16277 * hw-doloop.c: Build unconditionally.
16278 * loop-doloop.c: Likewise.
16279 (doloop_optimize): Use the new targetm patterns instead of
16280 HAVE_*/gen_* interface.
16281 (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
16282 * modulo-sched.c (doloop_register_get): Likewise.
16284 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16286 * target-insns.def (clear_cache): New targetm instruction pattern.
16287 * builtins.c (expand_builtin___clear_cache): Use it instead of
16288 HAVE_*/gen_* interface.
16290 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16292 * target-insns.def (allocate_stack, check_stack, probe_stack)
16293 (probe_stack_address, split_stack_prologue, split_stack_space_check):
16294 New targetm instruction patterns.
16295 * explow.c (allocate_dynamic_stack_space): Use them instead of
16296 HAVE_*/gen_* interface.
16297 (emit_stack_probe): Likewise.
16298 (probe_stack_range): Likewise.
16299 * function.c (thread_prologue_and_epilogue_insns): Likewise.
16301 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16303 * target-insns.def (stack_protect_set, stack_protect_test): New
16304 targetm instruction patterns.
16305 * cfgexpand.c (stack_protect_prologue): Use them instead of
16306 HAVE_*/gen_* interface.
16307 * function.c (stack_protect_epilogue): Likewise.
16309 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16311 * expr.h (gen_move_insn_uncast): Delete.
16312 * expr.c (gen_move_insn_uncast): Delete.
16314 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16316 * target-insns.def (restore_stack_block, restore_stack_function)
16317 (restore_stack_nonlocal, save_stack_block, save_stack_function)
16318 (save_stack_nonlocal): New targetm instruction patterns.
16319 * builtins.c (expand_builtin_apply): Use them instead of
16320 HAVE_*/gen_* interface.
16321 * explow.c (emit_stack_save, emit_stack_restore): Likewise.
16323 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16325 * target-insns.def (trap): New targetm instruction pattern.
16326 * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
16328 * explow.c (allocate_dynamic_stack_space): Likewise.
16329 * ifcvt.c (find_if_header): Likewise.
16331 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16333 * target-insns.def (prefetch): New targetm instruction pattern.
16334 * tree-ssa-loop-prefetch.c: Include targeth.
16335 (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
16336 of HAVE_*/gen_* interface.
16337 * builtins.c (expand_builtin_prefetch): Likewise.
16338 * toplev.c (process_options): Likewise.
16340 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16342 * target-insns.def (untyped_call, untyped_return): New targetm
16343 instruction patterns.
16344 * builtins.c (expand_builtin_apply): Use them instead of
16345 HAVE_*/gen_* interface.
16346 (result_vector): Define unconditionally.
16348 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16350 * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
16351 (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
16352 (nonlocal_goto_receiver): New targetm instruction patterns.
16353 * builtins.c (expand_builtin_setjmp_setup): Use them instead
16354 of HAVE_*/gen_* interface.
16355 (expand_builtin_setjmp_receiver): Likewise.
16356 (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
16357 * except.c (expand_dw2_landing_pad_for_region): Likewise.
16359 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16361 * target.def: Add code_for_* hooks.
16362 * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
16363 * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
16364 * target-insns.def (casesi, tablejump): New targetm instruction
16366 * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
16367 (do_tablejump): Likewise.
16368 * stmt.c (expand_switch_as_decision_tree_p): Likewise.
16369 (expand_sjlj_dispatch_table): Likewise.
16370 * targhooks.c (default_case_values_threshold): Likewise.
16372 2015-07-04 Sandra Loosemore <sandra@codesourcery.com>
16374 * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
16375 Use rtx_insn * instead of rtx.
16376 (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
16377 (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
16378 (nios2_call_tls_get_addr): Likewise.
16379 (nios2_emit_expensive_div): Likewise.
16380 (nios2_emit_move_sequence): Change return type to bool.
16381 * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
16382 Change return type to bool.
16384 2015-07-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
16387 * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
16389 2015-07-04 John David Anglin <danglin@gcc.gnu.org>
16392 * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
16393 of register_operand. Remove constraint.
16395 2015-07-04 Marc Glisse <marc.glisse@inria.fr>
16397 * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
16398 the first argument.
16400 2015-07-03 Paolo Carlini <paolo.carlini@oracle.com>
16402 * attribs.c (decl_attributes): Guard inform with the return value
16403 of the preceding warning.
16405 2015-07-03 James Greenhalgh <james.greenhalgh@arm.com>
16407 * doc/invoke.texi (moverride): Move to correct section.
16409 2015-07-03 Richard Biener <rguenther@suse.de>
16411 * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
16413 (dt_operand::gen_gimple_expr): After valueizing operands
16414 re-canonicalize operand order for commutative tree codes.
16416 2015-07-03 H.J. Lu <hongjiu.lu@intel.com>
16419 * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
16421 (__crc32w): Likewise.
16422 (__crc32d): Likewise.
16423 (__rdpmc): Likewise.
16424 (__rdtscp): Likewise.
16425 (_rdpmc): Likewise.
16426 (_rdtscp): Likewise.
16427 * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
16430 2015-07-03 Richard Biener <rguenther@suse.de>
16432 * fold-const.c (fold_mathfn_compare): Remove.
16433 (fold_inf_compare): Likewise.
16434 (fold_comparison): Move floating point comparison simplifications...
16435 * match.pd: ... to patterns here. Introduce simple_comparisons
16436 operator list and use it for patterns formerly in fold_comparison.
16438 2015-07-03 James Greenhalgh <james.greenhalgh@arm.com>
16440 PR tree-optimization/66119
16441 * toplev.c (process_options): Don't set up default values for
16442 the sra_max_scalarization_size_{speed,size} parameters.
16443 * tree-sra (analyze_all_variable_accesses): If no values
16444 have been set for the sra_max_scalarization_size_{speed,size}
16445 parameters, call get_move_ratio to get target defaults.
16447 2015-07-03 Richard Biener <rguenther@suse.de>
16449 * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
16450 * match.pd: ... here.
16452 2015-07-03 Gerald Pfeifer <gerald@pfeifer.com>
16455 * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
16456 is not actually the default on FreeBSD.
16458 2015-07-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16460 * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
16462 (CMPGE_8HI): Likewise.
16463 (CMPGE_4SI): Likewise.
16464 (CMPGE_2DI): Likewise.
16465 (CMPGE_U16QI): Likewise.
16466 (CMPGE_U8HI): Likewise.
16467 (CMPGE_U4SI): Likewise.
16468 (CMPGE_U2DI): Likewise.
16469 (CMPLE_16QI): Likewise.
16470 (CMPLE_8HI): Likewise.
16471 (CMPLE_4SI): Likewise.
16472 (CMPLE_2DI): Likewise.
16473 (CMPLE_U16QI): Likewise.
16474 (CMPLE_U8HI): Likewise.
16475 (CMPLE_U4SI): Likewise.
16476 (CMPLE_U2DI): Likewise.
16477 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
16478 overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
16479 ALTIVEC_BUILTIN_VEC_CMPLE.
16480 * config/rs6000/vector.md (vector_ge<mode>): Restrict to
16481 floating-point vector modes.
16482 (vector_nlt<mode>): New define_expand.
16483 (vector_nltu<mode>): Likewise.
16484 (vector_ngt<mode>): Likewise.
16485 (vector_ngtu<mode>): Likewise.
16487 2015-07-02 Segher Boessenkool <segher@kernel.crashing.org>
16489 PR rtl-optimization/66706
16490 * combine.c (make_compound_operation): If an AND of SUBREG of
16491 LSHIFTRT does not simplify, see if just the AND of SUBREG does.
16493 2015-07-02 Alan Lawrence <alan.lawrence@arm.com>
16495 * tree-pass.h (make_pass_ch_vect): New.
16496 * passes.def: Add pass_ch_vect just before pass_if_conversion.
16498 * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
16499 pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
16500 make_pass_ch_vect): New.
16501 (pass_ch): Extend ch_base.
16503 (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
16504 (ch_base::copy_headers): ...here.
16506 2015-07-02 Richard Biener <rguenther@suse.de>
16508 * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
16509 * fold-const.c (get_pointer_modulus_and_residue): Remove.
16510 (fold_binary_loc): Implement (T)ptr & CST in terms of
16511 get_pointer_alignment_1.
16512 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
16513 Make sure to build the alignment test on a SSA name without
16514 final alignment info valid only after the prologue.
16516 2015-07-02 Hans-Peter Nilsson <hp@axis.com>
16518 * config/cris/cris.md ("epilogue"): Remove condition.
16519 ("prologue"): Ditto.
16521 2015-07-02 Richard Biener <rguenther@suse.de>
16523 * tree-ssa-dom.c (build_and_record_new_cond): Add optional
16524 parameter to record a condition that is false.
16525 (record_conditions): When recording an extra NE_EXPR that is
16526 true also record a EQ_EXPR that is false.
16528 2015-07-02 Bin Cheng <bin.cheng@arm.com>
16530 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
16531 (tree_ssa_iv_optimize_init): Initialize iv_obstack.
16532 (alloc_iv): New parameter. Allocate struct iv using obstack_alloc.
16533 (set_iv, find_interesting_uses_address, add_candidate_1): New
16534 argument to alloc_iv.
16535 (find_interesting_uses_op, find_interesting_uses_cond): Don't
16536 duplicate struct iv.
16537 (free_loop_data): Don't free struct iv explicitly.
16538 (tree_ssa_iv_optimize_finalize): Free iv_obstack.
16540 2015-07-01 DJ Delorie <dj@redhat.com>
16542 * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
16544 (SUPPORTS_DISCRIMINATOR): Define.
16546 2015-07-01 Richard Sandiford <richard.sandiford@arm.com>
16549 * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
16550 there are no CALLs in the same pattern.
16552 2015-07-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
16554 PR rtl-optimization/61047
16555 * rtlanal.c (get_initial_register_offset): New function.
16556 (rtx_addr_can_trap_p_1): Check offsets of stack references.
16558 2015-07-01 Richard Biener <rguenther@suse.de>
16560 * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
16561 X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
16562 ~X CMP C -> X CMP' ~C to ...
16563 * match.pd: ... patterns here.
16565 2015-07-01 Nick Clifton <nickc@redhat.com>
16567 * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
16568 a 16-bit value into a 20-bit memory slot.
16570 2015-07-01 Jiong Wang <jiong.wang@arm.com>
16572 * doc/sourcebuild.texi (AArch64-specific attributes): Document
16573 "aarch64_tiny", "aarch64_small", "aarch64_large",
16574 "aarch64_little_endian", "aarch64_big_endian".
16576 2015-07-01 Jiong Wang <jiong.wang@arm.com>
16578 * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
16579 Document "aarch64_small_fpic".
16581 2015-07-01 Jiong Wang <jiong.wang@arm.com>
16583 * configure.ac: Add check for aarch64 assembler -fpic relocation
16585 * configure: Regenerate.
16586 * config.in: Regenerate.
16587 * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
16588 to -fPIC if not support of -fpic relocation modifier in assembler.
16590 2015-07-01 Richard Sandiford <richard.sandiford@arm.com>
16593 * rtl.c (classify_insn): Handle returns in PARALLELs.
16595 2015-07-01 Eric Botcazou <ebotcazou@adacore.com>
16597 PR middle-end/66633
16598 * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
16599 to true if the function is nested and if not optimizing.
16600 (convert_local_omp_clauses): Initialize need_frame to true if the
16601 function contains nested functions and if not optimizing.
16603 2015-07-01 Richard Biener <rguenther@suse.de>
16605 * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
16606 (X & Y) ^ Y -> ~X & Y transforms to ...
16607 * match.pd: ... here.
16609 2015-07-01 Richard Biener <rguenther@suse.de>
16611 * genmatch.c (expr::gen_transform): Shortcut re-simplifying
16612 of converts to avoid uninteresting noise from the conversion
16613 simplifying patterns.
16615 2015-06-30 Sandra Loosemore <sandra@codesourcery.com>
16617 * config/c6x/c6x.c (try_rename_operands): Do not depend on
16618 gcc_assert evaluating its argument for side-effect.
16620 2015-06-30 Kaz Kojima <kkojima@gcc.gnu.org>
16623 * config/sh/sh.md (casesi_worker_1): Set length to 8 when
16626 2015-06-30 Eric Botcazou <ebotcazou@adacore.com>
16628 * lto-streamer-out.c (class DFS): Adjust hash_scc method.
16629 (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
16630 (hash_scc): Add this_ref_p and ref_p parameters and pass them
16631 to the inner DFS walk.
16633 2015-06-30 Richard Sandiford <richard.sandiford@arm.com>
16635 * target-insns.def (jump): New targetm instruction pattern.
16636 * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
16637 instead of gen_jump.
16638 (fix_up_crossing_landing_pad): Likewise.
16639 (add_labels_and_missing_jumps): Likewise.
16640 (fix_crossing_conditional_branches): Likewise.
16641 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
16642 (force_nonfallthru_and_redirect): Likewise.
16643 * cse.c (cse_insn): Likewise.
16644 * expmed.c (expand_divmod): Likewise.
16645 * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
16646 * haifa-sched.c (init_before_recovery): Likewise.
16647 (sched_create_recovery_edges): Likewise.
16648 * ifcvt.c (find_cond_trap): Likewise.
16649 * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
16650 (expand_float, expand_fix): Likewise.
16651 * stmt.c (emit_jump): Likewise.
16653 2015-06-30 Richard Sandiford <richard.sandiford@arm.com>
16655 * defaults.h (HAVE_load_multiple, gen_load_multiple)
16656 (HAVE_store_multiple, gen_store_multiple): Delete.
16657 * target-insns.def (load_multiple, store_multiple): New targetm
16658 instruction patterns.
16659 * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
16660 of HAVE_*/gen_* interface.
16662 2015-06-30 Richard Sandiford <richard.sandiford@arm.com>
16664 * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
16665 (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
16666 (gen_mem_signal_fence): Delete.
16667 * target-insns.def (mem_signal_fence, mem_thread_fence)
16668 (memory_barrier): New targetm instruction patterns.
16669 * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
16671 (expand_mem_signal_fence): Likewise.
16673 2015-06-30 Richard Sandiford <richard.sandiford@arm.com>
16675 * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
16676 * target-insns.def (epilogue, prologue, sibcall_prologue): New
16677 targetm instruction patterns.
16678 * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
16680 * calls.c (expand_call): Likewise.
16681 * cfgrtl.c (cfg_layout_finalize): Likewise.
16682 * df-scan.c (df_get_entry_block_def_set): Likewise.
16683 (df_get_exit_block_use_set): Likewise.
16684 * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
16685 * final.c (final_start_function): Likewise.
16686 * function.c (thread_prologue_and_epilogue_insns): Likewise.
16687 (reposition_prologue_and_epilogue_notes): Likewise.
16688 * reorg.c (find_end_label): Likewise.
16689 * toplev.c (process_options): Likewise.
16691 2015-06-30 David Malcolm <dmalcolm@redhat.com>
16693 * typed-splay-tree.h: New file.
16695 2015-06-30 Vladimir Makarov <vmakarov@redhat.com>
16698 * lra-int.h (lra_substitute_pseudo): Add a parameter.
16699 (lra_substitute_pseudo_within_insn): Ditto.
16700 * lra.c (lra_substitute_pseudo): Add a parameter. Simplify subreg
16702 (lra_substitute_pseudo_within_insn): Add a parameter. Transfer it
16703 to lra_substitute_pseudo.
16704 * lra-lives.c (process_bb_lives): Add an argument to
16705 lra_substitute_pseudo_within_insn call.
16706 * lra-constraints.c (inherit_reload_reg, split_reg): Add an
16707 argument to lra_substitute_pseudo and
16708 lra_substitute_pseudo_within_insn calls.
16709 (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
16711 2015-06-30 H.J. Lu <hongjiu.lu@intel.com>
16713 * configure: Regenerated.
16715 2015-06-30 H.J. Lu <hongjiu.lu@intel.com>
16717 * config.gcc: Support i[34567]86-*-elfiamcu target.
16718 * config/i386/iamcu.h: New.
16719 * config/i386/i386.opt: Add -miamcu.
16720 * doc/invoke.texi: Document -miamcu.
16721 * common/config/i386/i386-common.c (ix86_handle_option): Turn
16722 off x87/MMX/SSE/AVX codegen for -miamcu.
16723 * config/i386/i386-c.c (ix86_target_macros_internal): Define
16724 __iamcu/__iamcu__ for -miamcu.
16725 * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
16726 to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
16727 (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
16728 * config/i386/i386.c (ix86_option_override_internal): Ignore and
16729 warn -mregparm for Intel MCU. Turn on -mregparm=3 for Intel
16730 MCU by default. Default long double to 64-bit for Intel MCU.
16731 Turn on -freg-struct-return for Intel MCU. Issue an error when
16732 -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
16734 (function_arg_advance_32): Pass value whose size is no larger
16735 than 8 bytes in registers for Intel MCU.
16736 (function_arg_32): Likewise.
16737 (ix86_return_in_memory): Return value whose size is no larger
16738 than 8 bytes in registers for Intel MCU.
16739 (iamcu_alignment): New function.
16740 (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
16742 (ix86_local_alignment): Don't increase alignment for Intel MCU.
16743 (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
16746 2015-06-30 Marek Polacek <polacek@redhat.com>
16748 * match.pd (X - (X / Y) * Y): Use convert1 and convert2. Convert
16749 both operands of the resulting expression.
16751 * match.pd (~x | x): Don't use tree_nop_conversion_p. Build
16752 the final expression with the operand's type and then convert
16753 it to the type of the expression.
16755 2015-06-30 Richard Biener <rguenther@suse.de>
16757 * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
16758 ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
16759 (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
16760 * match.pd: ... to patterns here.
16762 2015-06-30 Richard Biener <rguenther@suse.de>
16764 PR tree-optimization/66704
16765 * tree-vect-data-refs.c (vect_setup_realignment): Use
16766 make_ssa_name for non-SSA name source.
16768 2015-06-30 Jakub Jelinek <jakub@redhat.com>
16770 PR middle-end/66702
16771 * omp-low.c (simd_clone_adjust): Handle addressable linear
16772 or uniform parameters or non-gimple type uniform parameters.
16774 2015-06-30 Richard Biener <rguenther@suse.de>
16776 * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
16777 ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
16778 ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
16779 * match.pd: ... here.
16780 Add a few cases of A - B -> A + (-B) when B "easily" negates.
16781 Move (x & y) | x -> x and friends before
16782 (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
16784 2015-06-30 Eric Botcazou <ebotcazou@adacore.com>
16786 * config/sparc/leon.md (leon_load): Enable for all LEON variants if
16787 -mfix-ut699 is not specified.
16788 (leon3_load): Rename into...
16789 (ut699_load): ...this. Enable for all LEON variants if -mfix-ut699
16792 2015-06-30 Marek Polacek <polacek@redhat.com>
16794 * fold-const.c (fold_binary_loc): Move ~X | X folding ...
16795 * match.pd: ... here.
16797 2015-06-30 Richard Biener <rguenther@suse.de>
16799 * target-insns.def (canonicalize_funcptr_for_compare): Add.
16800 * fold-const.c (build_range_check): Replace uses of
16801 HAVE_canonicalize_funcptr_for_compare.
16802 (fold_widened_comparison): Likewise.
16803 (fold_sign_changed_comparison): Likewise.
16804 * dojump.c: Include "target.h".
16805 (do_compare_and_jump): Replace uses of
16806 HAVE_canonicalize_funcptr_for_compare and
16807 gen_canonicalize_funcptr_for_compare.
16808 * expr.c (do_store_flag): Likewise.
16810 2015-06-30 Tom de Vries <tom@codesourcery.com>
16812 PR tree-optimization/66652
16813 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
16814 max_loop_iterations to determine if nit + 1 overflows.
16816 2015-06-30 Richard Biener <rguenther@suse.de>
16818 * tree-vrp.c (register_edge_assert_for_2): Also register
16819 asserts for dominating conversion results.
16821 2015-06-30 Bin Cheng <bin.cheng@arm.com>
16823 * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
16824 field in struct iv.
16826 2015-06-29 Jack Howarth <howarth.at.gcc@gmail.com>
16829 * configure.ac: Fix filds and fildq test for 64-bit.
16830 * configure: Regenerated.
16832 2015-06-29 Nathan Sidwell <nathan@codesourcery.com>
16834 * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
16835 (nvptx_reorg): Here. Keep the non-subreg pieces.
16837 2015-06-29 H.J. Lu <hongjiu.lu@intel.com>
16839 * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
16840 PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
16842 2015-06-29 Uros Bizjak <ubizjak@gmail.com>
16844 * config/i386/i386.md (*jcc_1): Use %! in asm template.
16845 Set attribute "length_nobnd" instead of "length".
16848 (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
16850 2015-06-29 Sandra Loosemore <sandra@codesourcery.com>
16852 * config/nios2/nios2.c (nios2_delegitimize_address): Make
16853 assert less restrictive.
16855 2015-06-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
16858 * cgraphunit.c (cgraph_node::finalize_function): Do not call
16859 do_warn_unused_parameter.
16860 * function.c (do_warn_unused_parameter): Move from here.
16861 * function.h (do_warn_unused_parameter): Do not declare.
16863 2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
16866 * gcc.target/arm/armv-sync-comp-swap.c: New.
16867 * gcc.target/arm/armv-sync-op-acquire.c: New.
16868 * gcc.target/arm/armv-sync-op-full.c: New.
16869 * gcc.target/arm/armv-sync-op-release.c: New.
16871 2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
16874 * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
16875 initial acquire barrier with final barrier.
16877 2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
16880 * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
16881 initial acquire barrier with final barrier.
16883 2015-06-29 Richard Henderson <rth@redhat.com>
16885 * config/i386/constraints.md (Bf): New constraint.
16886 * config/i386/i386-c.c (ix86_target_macros): Define
16887 __GCC_ASM_FLAG_OUTPUTS__.
16888 * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
16890 * doc/extend.texi (FlagOutputOperands): Document them.
16892 2015-06-29 Jiong Wang <jiong.wang@arm.com>
16894 * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
16895 * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
16897 (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
16898 * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
16899 SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
16900 (aarch64_symbol_context): Ditto.
16901 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
16902 and use new pattern name.
16903 (aarch64_expand_mov_immediate): Ditto.
16904 (aarch64_print_operand): Ditto.
16905 (aarch64_classify_tls_symbol): Ditto.
16907 2015-06-29 Marek Polacek <polacek@redhat.com>
16908 Marc Glisse <marc.glisse@inria.fr>
16910 * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
16911 * match.pd: ... pattern here.
16913 2015-06-29 Tom de Vries <tom@codesourcery.com>
16915 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
16916 function structure.
16918 2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
16920 * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
16921 feature description, split out the native option, add a link to
16922 the feature documentation, rearrange and slightly rewrite text.
16923 (Aarch64 options, -mcpu): Likewise.
16924 (Aarch64 options, Feature Modifiers): Add an anchor. Mention
16925 +rdma implies Adv. SIMD.
16927 2015-06-29 Marek Polacek <polacek@redhat.com>
16930 * function.c (stack_protect_epilogue): Remove a cast to int.
16931 * doc/invoke.texi: Update -Wswitch-bool description.
16933 2015-06-29 Richard Biener <rguenther@suse.de>
16935 * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
16936 * fold-const.c (fold_binary_loc): Move &A - &B simplification
16937 via ptr_difference_const ...
16938 * match.pd: ... here.
16939 When matching (X ^ Y) == Y also match with swapped operands.
16941 2015-06-29 Richard Biener <rguenther@suse.de>
16943 * lto-streamer.h (LTO_major_version): Bump to 5.
16945 2015-06-29 Richard Biener <rguenther@suse.de>
16947 PR tree-optimization/66677
16948 * tree-vect-stmts.c (vect_transform_stmt): Make assert about
16949 STMT_VINFO_VEC_STMT clobbering less strict.
16951 2015-06-29 Kugan Vivekanandarajah <kuganv@linaro.org>
16953 PR middle-end/64130
16954 * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
16955 division, compute max and min when value ranges for dividend and
16956 divisor are available.
16958 2015-06-28 Chung-Lin Tang <cltang@codesourcery.com>
16959 Sandra Loosemore <sandra@codesourcery.com>
16961 * regrename.h (regrename_do_replace): Change to return bool.
16962 * regrename.c (rename_chains): Check return value of
16963 regname_do_replace.
16964 (regrename_do_replace): Re-validate the modified insns and
16965 return bool status.
16966 * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
16967 Update to match rename_chains changes.
16968 * config/c6x/c6x.c (try_rename_operands): Assert that
16969 regrename_do_replace returns true.
16971 2015-06-28 Uros Bizjak <ubizjak@gmail.com>
16973 * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
16974 operand 2 here. Use copy_addr_to_reg to copy non-index
16975 register operand 2 to a temporary.
16976 (<mode>_stx): Ditto for operand 1.
16977 (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
16978 * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
16979 (ix86_store_bounds): Ditto.
16981 2015-06-27 Patrick Palka <ppalka@gcc.gnu.org>
16983 * print-tree.c (print_node) [TREE_VEC]: Print its length.
16985 2015-06-26 Andrew MacLeod <amacleod@redhat.com>
16987 * gimple.c (gimple_call_set_fndecl): Remove.
16988 * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
16989 build1_loc directly instead of build_fold_addr_expr_loc.
16991 2015-06-26 Richard Sandiford <richard.sandiford@arm.com>
16993 * hash-map.h (hash_map::traverse): Use the definition of the
16994 Key typedef rather than the typedef itself.
16996 2015-06-26 Martin Jambor <mjambor@suse.cz>
16999 * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
17000 NULL instead of calling dump_enabled_p.
17002 2015-06-26 James Greenhalgh <james.greenhalgh@arm.com>
17004 * config/aarch64/aarch64.opt: (override): New.
17005 * doc/invoke.texi (override): Document.
17006 * config/aarch64/aarch64.c (aarch64_flag_desc): New
17007 (aarch64_fusible_pairs): Likewise.
17008 (aarch64_tuning_flags): Likewise.
17009 (aarch64_tuning_override_function): Likewise.
17010 (aarch64_tuning_override_functions): Likewise.
17011 (aarch64_parse_one_option_token): Likewise.
17012 (aarch64_parse_boolean_options): Likewise.
17013 (aarch64_parse_fuse_string): Likewise.
17014 (aarch64_parse_tune_string): Likewise.
17015 (aarch64_parse_one_override_token): Likewise.
17016 (aarch64_parse_override_string): Likewise.
17017 (aarch64_override_options): Parse the -override string if it
17020 2015-06-26 James Greenhalgh <james.greenhalgh@arm.com>
17022 * config/aarch64/aarch64-protos.h (tune_params): Remove
17023 const from members.
17024 (aarch64_tune_params): Remove const, change to no longer be
17026 * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
17027 change to no longer be a pointer, initialize to generic_tunings.
17028 (aarch64_min_divisions_for_recip_mul): Change dereference of
17029 aarch64_tune_params to member access.
17030 (aarch64_reassociation_width): Likewise.
17031 (aarch64_rtx_mult_cost): Likewise.
17032 (aarch64_address_cost): Likewise.
17033 (aarch64_branch_cost): Likewise.
17034 (aarch64_rtx_costs): Likewise.
17035 (aarch64_register_move_cost): Likewise.
17036 (aarch64_memory_move_cost): Likewise.
17037 (aarch64_sched_issue_rate): Likewise.
17038 (aarch64_builtin_vectorization_cost): Likewise.
17039 (aarch64_override_options): Take a copy of the selected tuning
17040 struct in to aarch64_tune_params, rather than just setting
17041 a pointer, change dereferences of aarch64_tune_params to member
17043 (aarch64_override_options_after_change): Change dereferences of
17044 aarch64_tune_params to member access.
17045 (aarch64_macro_fusion_p): Likewise.
17046 (aarch_macro_fusion_pair_p): Likewise.
17047 * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
17049 2015-06-26 James Greenhalgh <james.greenhalgh@arm.com>
17051 * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
17052 (aarch64_tune_flags): Likewise.
17053 (AARCH64_TUNE_FMA_STEERING): Likewise.
17054 * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
17055 to AARCH64_FL_USE_FMA_STEERING_PASS.
17056 (cortex-a57.cortex-a53): Likewise.
17057 (cortex-a72): Use cortexa72_tunings.
17058 (cortex-a72.cortex-a53): Likewise.
17059 (exynos-m1): Likewise.
17060 * config/aarch64/aarch64-protos.h (tune_params): Add
17061 a field: extra_tuning_flags.
17062 * config/aarch64/aarch64-tuning-flags.def: New.
17063 * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
17064 (aarch64_extra_tuning_flags): Likewise.
17065 (aarch64_tune_params): Declare here.
17066 * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
17067 (cortexa53_tunings): Likewise.
17068 (cortexa57_tunings): Likewise.
17069 (thunderx_tunings): Likewise.
17070 (xgene1_tunings): Likewise.
17071 (cortexa72_tunings): New.
17072 * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
17073 (gate): Check against aarch64_tune_params.
17074 * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
17077 2015-06-26 James Greenhalgh <james.greenhalgh@arm.com>
17079 * config/aarch64/aarch64-fusion-pairs.def: New.
17080 * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
17081 * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
17082 aarch64_fusion_pairs.
17083 (AARCH64_FUSE_MOV_MOVK): Likewise.
17084 (AARCH64_FUSE_ADRP_ADD): Likewise.
17085 (AARCH64_FUSE_MOVK_MOVK): Likewise.
17086 (AARCH64_FUSE_ADRP_LDR): Likewise.
17087 (AARCH64_FUSE_CMP_BRANCH): Likewise.
17089 2015-06-26 Jiong Wang <jiong.wang@arm.com>
17091 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
17092 SYMBOL_SMALL_GOT_28K.
17093 * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
17094 relocation modifiers.
17095 (unspec): New enum "UNSPEC_GOTMALLPIC28K.
17096 (ldr_got_small_28k_<mode>): New.
17097 (ldr_got_small_28k_sidi): New.
17098 * config/aarch64/iterators.md (got_modifier): New mode iterator.
17099 * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
17100 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
17101 SYMBOL_SMALL_GOT_28K.
17102 (aarch64_rtx_costs): Add costs for new instruction sequences.
17103 (initialize_aarch64_code_model): Initialize new model.
17104 (aarch64_classify_symbol): Recognize new model and new symbol classification.
17105 (aarch64_asm_preferred_eh_data_format): Support new model.
17106 (aarch64_load_symref_appropriately): Generate new instruction
17107 sequences for -fpic.
17108 (TARGET_USE_PSEUDO_PIC_REG): New definition.
17109 (aarch64_use_pseudo_pic_reg): New function.
17111 2015-06-26 Jiong Wang <jiong.wang@arm.com>
17113 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
17114 SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
17115 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
17116 (aarch64_expand_mov_immediate): Ditto.
17117 (aarch64_print_operand): Ditto.
17118 (aarch64_classify_symbol): Ditto.
17120 2015-06-26 Nathan Sidwell <nathan@codesourcery.com>
17122 * config/nvptx/nvptx.md (call_operation): Remove unused variables.
17124 2015-06-26 Bin Cheng <bin.cheng@arm.com>
17127 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
17128 assertion failed. Remove assertion itself.
17130 2015-06-26 Richard Biener <rguenther@suse.de>
17132 * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
17133 and -A CMP CST -> A CMP -CST which is redundant with a pattern
17135 Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
17136 (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
17137 (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
17138 * match.pd: ... patterns here.
17140 2015-06-26 Marek Polacek <polacek@redhat.com>
17142 * match.pd ((x | y) & ~(x & y) -> x ^ y,
17143 (x | y) & (~x ^ y) -> x & y): New patterns.
17145 2015-06-26 Richard Sandiford <richard.sandiford@arm.com>
17147 * rtl.h (emit): Add an optional boolean parameter to control
17148 whether barriers are emitted.
17149 * emit-rtl.c (emit): Likewise.
17150 * gensupport.c (get_emit_function): Return null rather than "emit".
17151 * genemit.c (gen_emit_seq): Handle the null return value.
17152 Don't emit barriers after the final instruction in the sequence.
17153 * gentarget-def.c (main): Don't emit barriers after the instruction.
17155 2015-06-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17157 * config/arm/arm.c (arm_output_multireg_pop): Fix use of
17158 TARGET_UNIFIED_ASM.
17160 2015-06-26 Richard Biener <rguenther@suse.de>
17162 * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
17164 2015-06-26 Richard Biener <rguenther@suse.de>
17166 * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
17167 irrespective on whether the inner operation has a single use
17168 of both off are constant.
17170 2015-06-26 Uros Bizjak <ubizjak@gmail.com>
17171 Segher Boessenkool <segher@kernel.crashing.org>
17174 * config/i386/i386.md (various splitters): Use shallow_copy_rtx
17175 before doing PUT_MODE or PUT_CODE on operands to avoid
17176 in-place RTX modification.
17178 2015-06-25 H.J. Lu <hongjiu.lu@intel.com>
17180 * gentarget-def.c (def_target_insn): Cast return of strtol to
17183 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
17185 * gimple.h (gimple_call_set_fn): Move inline function.
17186 * gimple.c (gimple_call_set_fn): Relocate here.
17188 2015-06-25 Oleg Endo <olegendo@gcc.gnu.org>
17192 * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
17193 the replacement insn will work.
17195 2015-06-25 H.J. Lu <hongjiu.lu@intel.com>
17197 * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
17200 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
17202 * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
17203 * cgraph.h: Include ipa-ref.h and plugin-api.h.
17204 (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
17205 (symtab_node::address_can_be_compared_p): Move function.
17206 * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
17208 * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
17209 * auto-profile.c: Likewise.
17210 * bb-reorder.c: Likewise.
17211 * builtins.c: Likewise.
17212 * calls.c: Likewise.
17213 * cfgexpand.c: Likewise.
17214 * cgraphbuild.c: Likewise.
17215 * cgraphclones.c: Likewise.
17216 * cgraphunit.c: Likewise.
17217 * combine.c: Likewise.
17218 * coverage.c: Likewise.
17219 * data-streamer-in.c: Likewise.
17220 * data-streamer-out.c: Likewise.
17221 * data-streamer.c: Likewise.
17222 * dbxout.c: Likewise.
17223 * dwarf2out.c: Likewise.
17224 * except.c: Likewise.
17225 * expr.c: Likewise.
17226 * final.c: Likewise.
17227 * fold-const.c: Likewise.
17228 * ggc-page.c: Likewise.
17229 * gimple-fold.c: Likewise.
17230 * gimple-iterator.c: Likewise.
17231 * gimple-pretty-print.c: Likewise.
17232 * gimple-streamer-in.c: Likewise.
17233 * gimple-streamer-out.c: Likewise.
17234 * gimple.c: Likewise.
17235 * gimplify.c: Likewise.
17236 * ipa-chkp.c: Likewise.
17237 * ipa-comdats.c: Likewise.
17238 * ipa-cp.c: Likewise.
17239 * ipa-devirt.c: Likewise.
17240 * ipa-icf-gimple.c: Likewise.
17241 * ipa-icf.c: Likewise.
17242 * ipa-inline-analysis.c: Likewise.
17243 * ipa-inline-transform.c: Likewise.
17244 * ipa-inline.c: Likewise.
17245 * ipa-polymorphic-call.c: Likewise.
17246 * ipa-profile.c: Likewise.
17247 * ipa-prop.c: Likewise.
17248 * ipa-pure-const.c: Likewise.
17249 * ipa-ref.c: Likewise.
17250 * ipa-reference.c: Likewise.
17251 * ipa-split.c: Likewise.
17252 * ipa-utils.c: Likewise.
17253 * ipa-visibility.c: Likewise.
17255 * langhooks.c: Likewise.
17256 * lto-cgraph.c: Likewise.
17257 * lto-compress.c: Likewise.
17258 * lto-opts.c: Likewise.
17259 * lto-section-in.c: Likewise.
17260 * lto-section-out.c: Likewise.
17261 * lto-streamer-in.c: Likewise.
17262 * lto-streamer-out.c: Likewise.
17263 * lto-streamer.c: Likewise.
17264 * omp-low.c: Likewise.
17265 * opts-global.c: Likewise.
17266 * passes.c: Likewise.
17267 * predict.c: Likewise.
17268 * print-tree.c: Likewise.
17269 * profile.c: Likewise.
17271 * sanopt.c: Likewise.
17272 * stor-layout.c: Likewise.
17273 * symtab.c: Likewise.
17274 * toplev.c: Likewise.
17275 * trans-mem.c: Likewise.
17276 * tree-cfg.c: Likewise.
17277 * tree-chkp.c: Likewise.
17278 * tree-eh.c: Likewise.
17279 * tree-emutls.c: Likewise.
17280 * tree-inline.c: Likewise.
17281 * tree-nested.c: Likewise.
17282 * tree-parloops.c: Likewise.
17283 * tree-pretty-print.c: Likewise.
17284 * tree-profile.c: Likewise.
17285 * tree-sra.c: Likewise.
17286 * tree-ssa-alias.c: Likewise.
17287 * tree-ssa-live.c: Likewise.
17288 * tree-ssa-loop-ivcanon.c: Likewise.
17289 * tree-ssa-loop-ivopts.c: Likewise.
17290 * tree-ssa-pre.c: Likewise.
17291 * tree-ssa-sccvn.c: Likewise.
17292 * tree-ssa-strlen.c: Likewise.
17293 * tree-ssa-structalias.c: Likewise.
17294 * tree-streamer-in.c: Likewise.
17295 * tree-streamer-out.c: Likewise.
17296 * tree-streamer.c: Likewise.
17297 * tree-switch-conversion.c: Likewise.
17298 * tree-tailcall.c: Likewise.
17299 * tree-vect-data-refs.c: Likewise.
17300 * tree-vect-stmts.c: Likewise.
17301 * tree-vectorizer.c: Likewise.
17302 * tree.c: Likewise.
17303 * tsan.c: Likewise.
17304 * ubsan.c: Likewise.
17305 * value-prof.c: Likewise.
17306 * varasm.c: Likewise.
17307 * varpool.c: Likewise.
17308 * config/arm/arm.c: Likewise.
17309 * config/bfin/bfin.c: Likewise.
17310 * config/c6x/c6x.c: Likewise.
17311 * config/cris/cris.c: Likewise.
17312 * config/darwin-c.c: Likewise.
17313 * config/darwin.c: Likewise.
17314 * config/i386/i386.c: Likewise.
17315 * config/i386/winnt.c: Likewise.
17316 * config/microblaze/microblaze.c: Likewise.
17317 * config/mips/mips.c: Likewise.
17318 * config/rs6000/rs6000.c: Likewise.
17319 * config/rx/rx.c: Likewise.
17320 * config/s390/s390.c: Likewise.
17321 * config/tilegx/mul-tables.c: Likewise.
17323 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17325 * config/aarch64/aarch64.c, config/alpha/alpha.c,
17326 config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
17327 config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
17328 config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
17329 config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
17330 config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
17331 config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
17332 config/microblaze/microblaze.c, config/mips/mips.c,
17333 config/mmix/mmix.c, config/mn10300/mn10300.c,
17334 config/moxie/moxie.c, config/msp430/msp430.c,
17335 config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
17336 config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
17337 config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
17338 config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
17339 config/stormy16/stormy16.c, config/tilegx/tilegx.c,
17340 config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
17341 config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
17342 target-def.h include.
17343 * config/ft32/ft32.c: Likewise. Fix misapplied hunk.
17345 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17347 * Makefile.in (TARGET_DEF): Add target-insns.def.
17348 (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
17349 (build/gentarget-def.o): New rule.
17350 (genprogrtl): Add target-def.
17351 * target-insns.def, gentarget-def.c: New files.
17352 * target.def: Add targetm.have_* and targetm.gen_* hooks,
17353 based on the contents of target-insns.def.
17354 * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
17355 (HAVE_return, gen_return): Delete.
17356 * target-def.h: Include insn-target-def.h.
17357 * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
17358 instead of direct calls. Rely on them to do the appropriate assertions.
17359 * function.c (gen_return_pattern): Likewise. Return an rtx_insn *.
17360 (convert_jumps_to_returns): Use targetm interface instead of
17362 (thread_prologue_and_epilogue_insns): Likewise.
17363 * reorg.c (find_end_label, dbr_schedule): Likewise.
17364 * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
17365 * shrink-wrap.c (convert_to_simple_return): Likewise.
17366 (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
17368 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17370 * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
17371 config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
17372 config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
17373 config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
17374 config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
17375 config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
17376 config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
17377 config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
17378 config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
17379 config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
17380 config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
17381 config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
17382 config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
17383 config/stormy16/stormy16.c, config/tilegx/tilegx.c,
17384 config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
17385 config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
17388 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17390 * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
17391 (unbounded_int_hashmap_traits::key_type): Likewise.
17392 * hash-map.h (hash_map): Get the key type from the traits.
17393 * hash-traits.h (default_hash_traits): By default, inherit from the
17394 template parameter.
17395 * alias.c (alias_set_traits): Delete.
17396 (alias_set_entry_d::children): Use alias_set_hash as the first
17397 template parameter.
17398 (record_alias_subset): Update accordingly.
17399 * except.c (tree_hash_traits): Delete.
17400 (type_to_runtime_map): Use tree_hash as the first template parameter.
17401 (init_eh): Update accordingly.
17402 * genmatch.c (capture_id_map_hasher): Delete.
17403 (cid_map_t): Use nofree_string_hash as first template parameter.
17404 * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
17405 * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
17406 Use symbol_compare_hash as the first template parameter in
17407 subdivide_hash_map.
17408 * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
17409 (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
17410 template parameter.
17411 * passes.c (pass_registry_hasher): Delete.
17412 (name_to_pass_map): Use nofree_string_hash as the first template
17414 (register_pass_name): Update accordingly.
17415 * sanopt.c (sanopt_tree_map_traits): Delete.
17416 (sanopt_tree_triplet_map_traits): Delete.
17417 (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
17418 template parameter.
17419 (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
17420 the first template parameter.
17421 * sese.c (rename_map_hasher): Delete.
17422 (rename_map_type): Use tree_ssa_name_hash as the first template
17424 * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
17425 (function_summary::m_map): Use map_hash as the first template
17427 (function_summary::release): Update accordingly.
17428 * tree-if-conv.c (phi_args_hash_traits): Delete.
17429 (predicate_scalar_phi): Use tree_operand_hash as the first template
17430 parameter to phi_arg_map.
17431 * tree-inline.h (dependence_hasher): Delete.
17432 (copy_body_data::dependence_map): Use dependence_hash as the first
17433 template parameter.
17434 * tree-inline.c (remap_dependence_clique): Update accordingly.
17435 * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
17436 (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
17438 (addr_stridxptr): Update accordingly.
17439 * value-prof.c (profile_id_traits): Delete.
17440 (cgraph_node_map): Use profile_id_hash as the first template
17442 (init_node_map): Update accordingly.
17443 * config/alpha/alpha.c (string_traits): Delete.
17444 (machine_function::links): Use nofree_string_hash as the first
17445 template parameter.
17446 (alpha_use_linkage, alpha_write_linkage): Update accordingly.
17447 * config/m32c/m32c.c (pragma_traits): Delete.
17448 (pragma_htab): Use nofree_string_hash as the first template parameter.
17449 (m32c_note_pragma_address): Update accordingly.
17450 * config/mep/mep.c (pragma_traits): Delete.
17451 (pragma_htab): Use nofree_string_hash as the first template parameter.
17452 (mep_note_pragma_flag): Update accordingly.
17453 * config/mips/mips.c (mips16_flip_traits): Delete.
17454 (mflip_mips16_htab): Use nofree_string_hash as the first template
17456 (mflip_mips16_use_mips16_p): Update accordingly.
17457 (local_alias_traits): Delete.
17458 (mips16_local_aliases): Use nofree_string_hash as the first template
17460 (mips16_local_alias): Update accordingly.
17462 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17464 * hash-map-traits.h (default_hashmap_traits): Delete.
17466 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17468 * hash-map-traits.h (unbounded_hashmap_traits): New class.
17469 (unbounded_int_hashmap_traits): Likewise.
17470 * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
17472 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17474 * ipa-icf.h (symbol_compare_hash): New class.
17475 (symbol_compare_hashmap_traits): Use it.
17476 * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
17477 (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
17478 (mem_alloc_description::reverse_mem_map_t): Remove redundant
17479 default_hashmap_traits.
17480 * sanopt.c (sanopt_tree_triplet_hash): New class.
17481 (sanopt_tree_triplet_map_traits): Use it.
17483 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17485 * gengtype-parse.c (require_template_declaration): Allow '+' in
17486 template parameters. Consolidate cases.
17487 * hash-traits.h (int_hash): New class.
17488 * alias.c (alias_set_hash): New structure.
17489 (alias_set_traits): Use it.
17490 * symbol-summary.h (function_summary::map_hash): New class.
17491 (function_summary::summary_hashmap_traits): Use it.
17492 * tree-inline.h (dependence_hash): New class.
17493 (dependence_hasher): Use it.
17494 * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
17495 * value-prof.c (profile_id_hash): New class.
17496 (profile_id_traits): Use it.
17498 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17500 * config/mips/mips.c (mips16_flip_traits): Use it.
17501 (local_alias_traits, mips16_local_aliases): Convert from a map of
17502 rtxes to a map of symbol names.
17503 (mips16_local_alias): Update accordingly.
17505 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17507 * hash-traits.h (string_hash, nofree_string_hash): New classes.
17508 * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
17509 * passes.c (pass_registry_hasher): Likewise.
17510 * config/alpha/alpha.c (string_traits): Likewise.
17511 * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
17512 * config/m32c/m32c.c (pragma_traits): Likewise.
17513 * config/mep/mep.c (pragma_traits): Likewise.
17515 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17517 * tree-hash-traits.h (tree_hash): New class.
17518 * except.c: Include tree-hash-traits.h.
17519 (tree_hash_traits): Use tree_hash.
17521 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17523 * tree-hash-traits.h (tree_ssa_name_hasher): New class.
17524 * sese.c: Include tree-hash-traits.h.
17525 (rename_map_hasher): Use tree_ssa_name_hasher.
17527 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17529 * tree-hash-traits.h (tree_decl_hash): New class.
17530 * tree-ssa-strlen.c: Include tree-hash-traits.h.
17531 (stridxlist_hash_traits): Use tree_decl_hash.
17533 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17535 * tree-hash-traits.h: New file.
17536 (tree_operand_hash): New class.
17537 * sanopt.c: Include tree-hash-traits.h.
17538 (sanopt_tree_map_traits): Use tree_operand_hash.
17539 * tree-if-conv.c: Include tree-hash-traits.h.
17540 (phi_args_hash_traits): Use tree_operand_hash.
17541 * tree-ssa-uncprop.c: Include tree-hash-traits.h.
17542 (val_ssa_equiv_hash_traits): Use tree_operand_hash.
17544 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17546 * hash-map-traits.h: Include hash-traits.h.
17547 (simple_hashmap_traits): New class.
17548 * mem-stats.h (hash_map): Change the default traits to
17549 simple_hashmap_traits<default_hash_traits<Key> >.
17551 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17553 * hash-table.h: Update comments.
17555 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17557 * hash-traits.h (default_hash_traits): New structure.
17558 * hash-set.h (default_hashset_traits): Delete.
17559 (hash_set): Use default_hash_traits<Key> instead of
17560 default_hashset_traits. Delete hash_entry type and use Key directly.
17561 * ipa-devirt.c (pair_traits): Delete.
17562 (default_hash_traits <type_pair>): Override.
17563 (odr_subtypes_equivalent_p): Remove pair_types template parameter.
17564 (odr_types_equivalent_p, add_type_duplicate): Likewise.
17566 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17568 * hash-traits.h (typed_noop_remove): Don't require a pointer type.
17570 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17572 * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
17573 (has_is_empty, is_empty_helper): Delete.
17574 (has_mark_deleted, mark_deleted_helper): Delete.
17575 (has_mark_empty, mark_empty_helper): Delete.
17576 (hash_table::is_deleted): Call the Descriptor unconditionally.
17577 (hash_table::is_empty): Likewise.
17578 (hash_table::mark_deleted): Likewise.
17579 (hash_table::mark_empty): Likewise.
17581 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17583 * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash. Remove
17584 redundant typedefs and members.
17585 * coverage.c (counts_entry): Inherit from pointer_hash. Remove
17586 redundant typedefs.
17587 * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
17588 * ipa-devirt.c (odr_name_hasher): Likewise.
17589 (polymorphic_call_target_hasher): Likewise.
17590 * ira-costs.c (cost_classes_hasher): Likewise.
17591 * statistics.c (stats_counter_hasher): Likewise.
17592 * trans-mem.c (log_entry_hasher): Likewise.
17593 * tree-ssa-dom.c (expr_elt_hasher): Likewise.
17594 * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
17595 * tree-ssa-tail-merge.c (same_succ_def): Likewise.
17596 * var-tracking.c (variable_hasher): Likewise.
17597 * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
17598 Remove redundant typedefs and members.
17600 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17602 * hash-traits.h (ggc_cache_hasher): Rename to...
17603 (ggc_cache_remove): ...this and remove typedefs.
17604 (ggc_cache_ptr_hash): New class.
17605 * hash-table.h: Update commentary.
17606 * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
17607 rather than ggc_cache_hasher.
17608 (const_wide_int_hasher, reg_attr_hasher): Likewise.
17609 (const_double_hasher, const_fixed_hasher): Likewise.
17610 * function.c (insn_cache_hasher): Likewise.
17611 * trans-mem.c (tm_wrapper_hasher): Likewise.
17612 * tree.h (tree_decl_map_cache_hasher): Likewise.
17613 * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
17614 (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
17615 * ubsan.c (tree_type_map_cache_hasher): Likewise.
17616 * varasm.c (tm_clone_hasher): Likewise.
17617 * config/i386/i386.c (dllimport_hasher): Likewise.
17618 * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
17619 (tree_hasher): Likewise.
17621 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17623 * hash-traits.h (ggc_hasher): Rename to...
17624 (ggc_remover): ...this and remove typedefs.
17625 (ggc_cache_hasher): Update accordingly. Add typedefs.
17626 (ggc_ptr_hash): New class.
17627 * hash-table.h: Update comment.
17628 * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
17630 * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
17631 (tree_descriptor_hasher): Likewise.
17632 * cgraph.c (function_version_hasher): Likewise.
17633 * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
17634 (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
17635 (dw_loc_list_hasher, addr_hasher): Likewise.
17636 * function.h (used_type_hasher): Likewise.
17637 * function.c (temp_address_hasher): Likewise.
17638 * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
17639 * libfuncs.h (libfunc_hasher): Likewise.
17640 * lto-streamer.h (decl_state_hasher): Likewise.
17641 * optabs.c (libfunc_decl_hasher): Likewise.
17642 * tree-scalar-evolution.c (scev_info_hasher): Likewise.
17643 * varasm.c (section_hasher, object_block_hasher): Likewise.
17644 (const_rtx_desc_hasher): Likewise.
17645 * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
17646 * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
17648 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17650 * hash-traits.h (free_ptr_hash): New class.
17651 * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
17652 rather than typed_free_remove. Remove redudant typedefs.
17653 (external_ref_hasher): Likewise.
17654 * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
17655 (ehspec_hasher): Likewise.
17656 * ggc-common.c (saving_hasher): Likewise.
17657 * gimplify.c (gimplify_hasher): Likewise.
17658 * haifa-sched.c (delay_i2_hasher): Likewise.
17659 * loop-invariant.c (invariant_expr_hasher): Likewise.
17660 * loop-iv.c (biv_entry_hasher): Likewise.
17661 * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
17662 * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
17663 * tree-cfg.c (locus_discrim_hasher): Likewise.
17664 * tree-eh.c (finally_tree_hasher): Likewise.
17665 * tree-into-ssa.c (var_info_hasher): Likewise.
17666 * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
17667 * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
17668 * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
17669 * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
17670 * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
17671 * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
17672 (shared_bitmap_hasher): Likewise.
17673 * tree-ssa-threadupdate.c (redirection_data): Likewise.
17674 * tree-vectorizer.h (peel_info_hasher): Likewise.
17675 * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
17676 * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
17678 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17680 * hash-table.h: Update comments.
17681 * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
17682 (nofree_ptr_hash): New class.
17683 * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
17684 than typed_noop_remove. Remove redudant typedefs.
17685 * attribs.c (attribute_hasher): Likewise.
17686 * cfg.c (bb_copy_hasher): Likewise.
17687 * cselib.c (cselib_hasher): Likewise.
17688 * dse.c (invariant_group_base_hasher): Likewise.
17689 * dwarf2cfi.c (trace_info_hasher): Likewise.
17690 * dwarf2out.c (macinfo_entry_hasher): Likewise.
17691 (comdat_type_hasher, loc_list_hasher): Likewise.
17692 * gcse.c (pre_ldst_expr_hasher): Likewise.
17693 * genmatch.c (id_base): Likewise.
17694 * genrecog.c (test_pattern_hasher): Likewise.
17695 * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
17696 * haifa-sched.c (delay_i1_hasher): Likewise.
17697 * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
17698 * ipa-icf.h (congruence_class_group_hash): Likewise.
17699 * ipa-profile.c (histogram_hash): Likewise.
17700 * ira-color.c (allocno_hard_regs_hasher): Likewise.
17701 * lto-streamer.h (string_slot_hasher): Likewise.
17702 * lto-streamer.c (tree_entry_hasher): Likewise.
17703 * plugin.c (event_hasher): Likewise.
17704 * postreload-gcse.c (expr_hasher): Likewise.
17705 * store-motion.c (st_expr_hasher): Likewise.
17706 * tree-sra.c (uid_decl_hasher): Likewise.
17707 * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
17708 (ssa_name_var_hash): Likewise.
17709 * tree-ssa-live.c (tree_int_map_hasher): Likewise.
17710 * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
17711 * tree-ssa-pre.c (pre_expr_d): Likewise.
17712 * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
17713 * vtable-verify.h (registration_hasher): Likewise.
17714 * vtable-verify.c (vtbl_map_hasher): Likewise.
17715 * config/arm/arm.c (libcall_hasher): Likewise.
17716 * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
17717 * config/ia64/ia64.c (bundle_state_hasher): Likewise.
17718 * config/sol2.c (comdat_entry_hasher): Likewise.
17719 * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
17720 (print_fold_checksum, fold_checksum_tree): Likewise.
17721 (debug_fold_checksum, fold_build1_stat_loc): Likewise.
17722 (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
17723 (fold_build_call_array_loc): Likewise.
17724 * tree-ssa-ccp.c (gimple_htab): Likewise.
17725 * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
17726 rather than pointer_type.
17728 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17730 * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
17731 (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
17733 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17735 * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
17736 (ggc_hasher::ggc_mx): Likewise.
17737 (ggc_cache_hasher): Inherit from ggc_hasher. Remove definitions
17738 that duplicate ggc_hasher ones.
17740 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17742 * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
17743 (gt_cleare_cache): Check here for deleted and empty entries.
17744 Replace handle_cache_entry with a call to keep_cache_entry.
17745 * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
17746 (ggc_cache_hasher::keep_cache_entry): New function.
17747 * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
17748 (tm_wrapper_hasher::keep_cache_entry): New function.
17749 * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
17750 (tree_vec_map_cache_hasher::keep_cache_entry): New function.
17751 * tree.c (type_cache_hasher::handle_cache_entry): Delete.
17752 (type_cache_hasher::keep_cache_entry): New function.
17753 (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
17754 (tree_vec_map_cache_hasher::keep_cache_entry): New function.
17755 * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
17756 (tree_type_map_cache_hasher::keep_cache_entry): New function.
17757 * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
17758 (tm_clone_hasher::keep_cache_entry): New function.
17759 * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
17760 (dllimport_hasher::keep_cache_entry): New function.
17762 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17764 * hash-table.h: Include hash-traits.h.
17765 (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
17766 (ggc_cache_hasher): Move to...
17767 * hash-traits.h: ...this new file.
17769 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
17771 * tree-core.h (struct tree_optimization_option): Make opts a pointer to
17772 struct cl_optimization.
17773 * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
17774 * tree.c (make_node_stat): Allocate cl_optimization struct.
17775 (copy_node_stat): Allocate and copy cl_optimization struct.
17777 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
17779 * function.h (struct incoming_args): Move struct.
17780 (pass_by_reference, reference_callee_copied): Remove prototypes.
17781 * emit-rtl.h (struct incoming_args): Relocate struct here.
17782 * calls.h (pass_by_reference, reference_callee_copied): Relocate
17784 * function.c (pass_by_reference, reference_callee_copied): Move.
17785 * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
17786 * cfgloop.h: Don't include tm.h or hard-reg-set.h.
17787 * ipa-chkp.c: Include calls.h.
17789 2015-06-25 Andrew Macleod <amacleod@redhat.com>
17791 * alias.h (alias_set_type): Move typedef.
17792 * coretypes.h (alias_set_type): Relocate typedef here.
17793 * rtl.h: Don't include alias.h.
17795 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
17797 * cgraph.h (cgraph_rtl_info): Move to rtl.h
17798 (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
17800 * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
17801 * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
17803 * calls.c: Include hard-reg-set.h before rtl.h.
17806 2015-06-25 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
17807 Vladimir Makarov <vmakarov@redhat.com>
17809 * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
17812 2015-06-25 Richard Biener <rguenther@suse.de>
17814 * fold-const.c (fold_binary_loc): Move simplification of
17815 (X <<>> C1) & C2 ...
17816 * match.pd: ... here.
17818 2015-06-25 Eric Botcazou <ebotcazou@adacore.com>
17820 * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
17822 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17824 * match.pd: Add patterns for vec_conds between 1 and 0.
17826 2015-06-25 Richard Biener <rguenther@suse.de>
17828 * tree-vect-stmts.c (vectorizable_conversion): Do not set
17829 STMT_VINFO_VEC_STMT for SLP.
17830 (vectorizable_store): Likewise.
17831 (vectorizable_load): Likewise.
17832 (vect_transform_stmt): Catch SLP vectorization clobbering
17833 STMT_VINFO_VEC_STMT.
17835 2015-06-25 Richard Biener <rguenther@suse.de>
17837 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
17839 (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
17840 cleanup resulting dead code and parameters.
17841 (vect_transform_slp_perm_load): Adjust.
17843 2015-06-25 Nick Clifton <nickc@redhat.com>
17845 * config/bfin/bfin.c (bfin_expand_prologue): Set
17846 current_function_static_stack_size if flag_stack_usage_info is set.
17847 * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
17848 * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
17849 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
17850 * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
17852 2015-06-25 Tom de Vries <tom@codesourcery.com>
17854 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
17855 comment that the generated IV is unsigned.
17857 2015-06-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17860 * config/arm/arm.c (arm_dbx_register_number): Return
17861 DWARF_FRAME_REGISTERS by default.
17863 2015-06-25 Tom de Vries <tom@codesourcery.com>
17865 * dominance.c (calculate_dominance_info): Fix verify_dominators call
17866 argument. Call verify_dominator when reusing dominator info.
17868 2015-06-24 Kaz Kojima <kkojima@gcc.gnu.org>
17871 * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
17872 an additional element of the unspec vector. Modify indices
17874 (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
17875 * config/sh/sh.c (prepare_move_operands): Pass incremented
17876 const_int to gen_GOTaddr2picreg.
17877 (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
17879 2015-06-24 Alan Lawrence <alan.lawrence@arm.com>
17881 * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
17882 Condition on TARGET_FLOAT.
17884 2015-06-24 Alan Lawrence <alan.lawrence@arm.com>
17886 * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
17889 2015-06-24 Alan Lawrence <alan.lawrence@arm.com>
17891 * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
17893 * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
17894 aarch64_err_no_fpadvsimd.
17896 * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
17897 (aarch64_layout_arg, aarch64_init_cumulative_args): Use
17898 aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
17899 (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
17900 Turn error into assert, test TARGET_FLOAT.
17901 (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
17904 2015-06-24 Aldy Hernandez <aldyh@redhat.com>
17907 * dwarf2out.c (gen_formal_parameter_die): Remove assert.
17909 2015-06-24 Ilya Enkovich <enkovich.gnu@gmail.com>
17911 * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
17913 2015-06-24 Renlin Li <renlin.li@arm.com>
17915 * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
17916 __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
17918 2015-06-24 Richard Biener <rguenther@suse.de>
17920 * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
17922 (lower_opt_convert): Support lowering of conditional view_convert.
17923 (parser::parse_operation): Likewise.
17924 (parser::parse_for): Likewise.
17926 2015-06-24 Renlin Li <renlin.li@arm.com>
17928 * varasm.c (emit_local): Use unsigned int for align variable.
17930 2015-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17933 * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
17934 for negative numbers.
17936 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17938 PR rtl-optimization/66306
17939 * reload.c (find_reloads): Swap the match_dup info for
17940 commutative operands.
17942 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17944 * config/s390/vx-builtins.md
17945 ("vec_scatter_element<mode>_<non_vec_int>")
17946 ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
17947 attribute with bhfgq.
17949 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17951 * config/s390/s390-builtins.def: Fix vpopct instruction comments.
17953 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17955 * config/s390/s390-builtin-types.def: Add flag to indicate the
17956 options under which the function type is needed.
17957 * config/s390/s390-builtins.def: Add flag to indicate the options
17958 under which the builtin is enabled.
17959 * config/s390/s390-builtins.h: Add flags parameter to macro
17961 (bflags_for_builtin): New function.
17962 (flags_for_builtin): Renamed to ...
17963 (opflags_for_builtin): ... this.
17964 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
17965 flags_for_builtin to bflags_for_builtin and
17966 flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
17967 * config/s390/s390.c: Add initialization of bflags_builtin and
17968 opflags_builtin arrays.
17969 Remove code for flags_builtin.
17970 (s390_init_builtins): Only create builtin function types if one of
17971 their flags is active.
17972 Only create builtins if all of their flags are active.
17973 (s390_expand_builtin): Rename flags_for_builtin to
17974 opflags_for_builtin.
17976 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17978 * config/s390/vecintrin.h: Remove internal builtins.
17980 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17982 * config/s390/s390.c (s390_secondary_reload): Fix check for
17983 GENERAL_REGS register class.
17985 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17987 * config/s390/s390.c (s390_support_vector_misalignment): Call
17988 default implementation for !TARGET_VX.
17990 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17992 * config/s390/s390.c (s390_legitimate_constant_p): Add
17995 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17997 * config/s390/s390.c (s390_vector_abi): New variable definition.
17998 (s390_check_type_for_vector_abi): New function.
17999 (TARGET_ASM_FILE_END): New macro definition.
18000 (s390_asm_file_end): New function.
18001 (s390_function_arg): Call s390_check_type_for_vector_abi.
18002 (s390_gimplify_va_arg): Likewise.
18003 * configure: Regenerate.
18004 * configure.ac: Check for .gnu_attribute Binutils feature.
18006 2015-06-23 Chen Gang <gang.chen.5i5j@gmail.com>
18009 * config/bfin/bfin.c (hwloop_optimize): Initialize
18010 JUMP_LABEL for newly created jump.
18012 2015-06-23 Tristan Gingold <gingold@adacore.com>
18014 * collect-utils.c (collect_wait): Unlink the response file here
18016 (do_wait): ...here.
18017 (utils_cleanup): ...and here.
18019 2015-06-23 Richard Sandiford <richard.sandiford@arm.com>
18021 * df-scan.c: Don't include target-def.h.
18022 * targhooks.c: Likewise.
18023 * config/arm/arm-c.c: Likewise.
18024 * config/i386/i386-c.c: Likewise.
18025 * config/nds32/nds32-cost.c: Likewise.
18026 * config/nds32/nds32-fp-as-gp.c: Likewise.
18027 * config/nds32/nds32-intrinsic.c: Likewise.
18028 * config/nds32/nds32-isr.c: Likewise.
18029 * config/nds32/nds32-md-auxiliary.c: Likewise.
18030 * config/nds32/nds32-memory-manipulation.c: Likewise.
18031 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
18032 * config/nds32/nds32-predicates.c: Likewise.
18034 2015-06-23 Richard Biener <rguenther@suse.de>
18036 PR tree-optimization/66636
18037 * tree-vect-stmts.c (vectorizable_store): Properly compute the
18038 def type for further defs for strided stores.
18040 2015-06-23 Nathan Sidwell <nathan@codesourcery.com>
18042 * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
18043 conditional selects.
18044 (setcc_int<mode>, setcc_float<mode>): Reformat.
18046 2015-06-23 Marek Polacek <polacek@redhat.com>
18048 * match.pd ((x + y) - (x | y) -> x & y,
18049 (x + y) - (x & y) -> x | y): New patterns.
18051 2015-06-23 Ludovic Courtès <ludo@gnu.org>
18054 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
18055 '-dynamic-linker' within %{!shared: ...}.
18057 2015-06-23 Uros Bizjak <ubizjak@gmail.com>
18060 * config/i386/predicates.md (addsub_vm_operator): New predicate.
18061 (addsub_vs_operator): Ditto.
18062 (addsub_vs_parallel): Ditto.
18063 * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
18064 (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
18065 Put minus RTX before plus and adjust vec_merge selector.
18066 (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
18067 (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
18068 (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
18069 (addsub vec_merge splitters): New combiner splitters.
18070 (addsub vec_select/vec_concat splitters): Ditto.
18072 2015-06-23 Bin Cheng <bin.cheng@arm.com>
18074 PR tree-optimization/66449
18075 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
18076 POINTER_PLUS_EXPR for pointers.
18078 2015-06-23 Alan Modra <amodra@gmail.com>
18080 * rtlanal.c (commutative_operand_precedence): Correct comments.
18081 * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
18082 declaration. Return an int. Distinguish REG,REG return from
18084 (struct simplify_plus_minus_op_data): Make local to function.
18085 (simplify_plus_minus): Don't set canonicalized if merely sorting
18086 registers. Avoid packing ops if nothing changes. White space fixes.
18088 2015-06-22 Pierre-Marie de Rodat <derodat@adacore.com>
18090 * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
18091 -fdump-ada-spec is passed but not if -fsyntax-only is.
18093 2015-06-22 Vladimir Makarov <vmakarov@redhat.com>
18096 * lra-lives.c (process_bb_lives): Check insn copying the same
18097 reload pseudo and don't create a copy for it.
18099 2015-06-22 Tom de Vries <tom@codesourcery.com>
18101 * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
18104 2015-06-22 Tom de Vries <tom@codesourcery.com>
18106 * builtins.def (DEF_GOMP_BUILTIN): Test
18107 'flag_tree_parallelize_loops > 1' instead of
18108 'flag_tree_parallelize_loops'. Test flag_cilkplus.
18110 2015-06-22 Tom de Vries <tom@codesourcery.com>
18112 * dominance.c (calculate_dominance_info): Verify dominators if
18115 2015-06-22 Marek Polacek <polacek@redhat.com>
18117 * match.pd ((x ^ y) ^ (x | y) -> x & y,
18118 (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
18119 (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
18120 (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
18122 2015-06-22 Uros Bizjak <ubizjak@gmail.com>
18125 * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
18126 cost of embedded comparison.
18128 2015-06-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18131 * config/rs6000/predicates.md (altivec_register_operand): Permit
18132 virtual stack registers.
18133 (vsx_register_operand): Likewise.
18134 (vfloat_operand): Likewise.
18135 (vint_operand): Likewise.
18136 (vlogical_operand): Likewise.
18138 2015-06-22 Richard Biener <rguenther@suse.de>
18140 * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
18141 and single_scalar_iteration_cost members.
18142 (LOOP_VINFO_SCALAR_ITERATION_COST): New.
18143 (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
18144 (vect_get_single_scalar_iteration_cost): Remove.
18145 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
18146 Use LOOP_VINFO_SCALAR_ITERATION_COST.
18147 * tree-vect-loop.c (destroy_loop_vec_info): Free
18149 (vect_get_single_scalar_iteration_cost): Compute result into
18150 LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
18151 LOOP_VINFO_SCALAR_ITERATION_COST. Make static.
18152 (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
18153 (vect_estimate_min_profitable_iters): Use them.
18155 2015-06-22 Christian Bruel <christian.bruel@st.com>
18158 * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
18159 (TARGET_INSERT_ATTRIBUTES): Define.
18160 (thumb_flipper): New var.
18161 * config/arm/arm.opt (-mflip-thumb): New switch.
18163 2015-06-22 Jan Hubicka <hubicka@ucw.cz>
18164 Martin Liska <mliska@suse.cz>
18167 * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
18168 construction of arg_types.
18169 (sem_function::sem_function): Likewise.
18170 (sem_function::~sem_function): Remove destruction of arg_types.
18171 (sem_function::compatible_parm_types_p): New function.
18172 (sem_function::equals_wpa): Reorg matching of return values
18173 and parameter types.
18174 (sem_function::equals_private): Reorg mathcing of argument types.
18175 (sem_function::parse_tree_args): Remove.
18176 * ipa-icf.h (init_wpa): Do not call it.
18177 (parse_tree_args): Remove.
18178 (compatible_parm_types_p): Declare.
18179 (result_type): Remove.
18180 (arg_types): Remove.
18182 2015-06-22 Jan Hubicka <hubicka@ucw.cz>
18185 * ipa-polymorphic-call.c
18186 (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
18187 initializing alias oracle; fix formating; set base_alias_set if it
18190 2015-06-22 Mikhail Maltsev <maltsevm@gmail.com>
18192 * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
18193 (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
18194 (find_inc): Likewise.
18195 * combine.c (combine_simplify_rtx): Use std::swap instead of manually
18197 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
18198 * df-scan.c (df_swap_refs): Remove.
18199 (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
18200 * dominance.c (link_roots): Use std::swap instead of manually swapping.
18201 * expr.c (expand_expr_real_2, do_store_flag): Likewise.
18202 * fold-const.c (fold_relational_const): Likewise.
18203 * genattrtab.c (simplify_test_exp): Likewise.
18204 * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
18205 gimple_simplify): Likewise.
18206 * ifcvt.c (noce_try_abs, find_if_header): Likewise.
18207 * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
18208 * ipa-devirt.c (add_type_duplicate): Likewise.
18209 * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
18210 * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
18211 * lra.c (lra_create_copy): Likewise.
18212 * lto-streamer-out.c (DFS::DFS): Likewise.
18213 * modulo-sched.c (get_sched_window): Likewise.
18214 * omega.c (omega_pretty_print_problem): Likewise.
18215 * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
18216 * reload1.c (reloads_unique_chain_p): Likewise.
18217 * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
18218 (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
18220 * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
18222 * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
18223 predicate_mem_writes): Likewise.
18224 * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
18225 * tree-predcom.c (combine_chains): Likewise.
18226 * tree-ssa-alias.c (nonoverlapping_component_refs_p,
18227 refs_may_alias_p_1): Likewise.
18228 * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
18229 * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
18230 * tree-ssa-loop-niter.c (refine_bounds_using_guard,
18231 number_of_iterations_cond): Likewise.
18232 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
18233 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
18234 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
18235 * tree-vect-stmts.c (supportable_widening_operation): Likewise.
18236 * tree-vrp.c (extract_range_from_binary_expr_1,
18237 extract_range_from_unary_expr_1): Likewise.
18239 2015-06-20 Marek Polacek <polacek@redhat.com>
18241 * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
18243 2015-06-19 Kaz Kojima <kkojima@gcc.gnu.org>
18246 * config/sh/sh.c (prepare_move_operands): Replace subreg
18247 index term with R0 for base and index addressing.
18249 2015-06-19 Jim Wilson <jim.wilson@linaro.org>
18251 * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
18253 (movsf_aarch64): Change condition from register_operand to
18254 aarch64_reg_or_fp_zero for op1. Change type for alternative 6 to
18255 load1. Change type for alternative 7 to store1.
18256 (movdf_aarch64): Likewise.
18258 2015-06-19 James Greenhalgh <james.greenhalgh@arm.com>
18260 * config/vax/vax.md: Adjust sign/zero extend patterns to
18261 handle SUBREGs in operands[1].
18263 2015-06-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18265 * config/i386/i386.c (ix86_function_versions): Use std::swap instead
18266 of manually swapping.
18267 (expand_vec_perm_interleave2): Likewise.
18269 2015-06-19 Ilya Enkovich <enkovich.gnu@gmail.com>
18271 * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
18272 reuse bounds created for abnormal ssa names.
18274 2015-06-19 Jakub Jelinek <jakub@redhat.com>
18276 * config/nvptx/nvptx.md (allocate_stack): Rename to...
18277 (allocate_stack_<mode>): ... this, and add :P on both
18278 match_operand and unspec.
18279 (allocate_stack): New expander.
18281 2015-06-19 Christian Bruel <christian.bruel@st.com>
18285 * config/arm/arm.c (arm_set_current_function): Handle
18286 explicit default options.
18288 2015-06-18 Uros Bizjak <ubizjak@gmail.com>
18290 * config/i386/i386.md (*movsicc_noc_zext): New insn.
18291 (zero-extended cmove with mem peephole2): New pattern.
18292 (cmove with mem peephole2): Merge patterns.
18294 2015-06-18 Segher Boessenkool <segher@kernel.crashing.org>
18296 * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
18298 2015-06-18 Steve Ellcey <sellcey@imgtec.com>
18300 * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
18301 * config/mips/mips.md (*madd4<mode>): Ditto.
18302 (*nmadd3<mode>) Ditto.
18303 (*nmadd4<mode>_fastmath): Ditto.
18304 (*nmadd3<mode>_fastmath): Ditto.
18305 (*nmsub4<mode>): Ditto.
18306 (*nmsub3<mode>): Ditto.
18307 (*nmsub4<mode>_fastmath): Ditto.
18308 (*nmsub3<mode>_fastmath): Ditto.
18310 2015-06-18 Michael Matz <matz@suse.de>
18312 PR middle-end/66253
18313 * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
18314 grouped strided stores.
18315 (vectorizable_load): Don't use the DR from first_stmt in
18316 the non-SLP grouped strided case.
18318 2015-06-18 Ilya Enkovich <enkovich.gnu@gmail.com>
18321 * function.c (assign_bounds): Add arguments assign_regs,
18322 assign_special, assign_bt.
18323 (assign_parms): For vararg functions handle bounds in BT
18324 and special slots after incoming vararg bounds.
18326 2015-06-18 Ilya Enkovich <enkovich.gnu@gmail.com>
18328 PR middle-end/66568
18329 * cfgexpand.c (expand_return): Handle missing bounds.
18330 (expand_gimple_stmt_1): Likewise.
18331 * tree-chkp.c (chkp_expand_zero_bounds): New.
18332 * tree-chkp.h (chkp_expand_zero_bounds): New.
18334 2015-06-18 Ilya Enkovich <enkovich.gnu@gmail.com>
18336 PR middle-end/66567
18337 * ipa-chkp.c (chkp_maybe_create_clone): Require
18338 functions to be instrumentable.
18339 * tree-chkp.c (chkp_replace_function_pointer): Use
18340 chkp_instrumentable_p instead of attribute check.
18342 2015-06-18 Richard Biener <rguenther@suse.de>
18344 PR tree-optimization/66510
18345 * tree-vect-stmts.c (vectorizable_load): Properly compute the
18346 number of vector loads for SLP permuted loads.
18347 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
18348 check the stride for loop vectorization.
18349 (vect_enhance_data_refs_alignment): Deal with SLP adjusted
18350 vectorization factor.
18351 (vect_analyze_group_access): If the group size is not a power
18352 of two require a epilogue loop.
18353 * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
18354 compute and optimizing and alias test pruning after final
18355 vectorization factor computation.
18356 * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
18358 (vect_transform_slp_perm_load): Properly compute the original
18359 number of vector load stmts.
18361 2015-06-18 Uros Bizjak <ubizjak@gmail.com>
18363 * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
18364 "unlikely character , in @var" warning.
18366 2015-06-17 Uros Bizjak <ubizjak@gmail.com>
18368 * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
18369 (ix86_function_arg_advance): Ditto.
18370 (ix86_pass_by_reference): Ditto. Rewrite MS_ABI part.
18372 2015-06-17 Andrew MacLeod <amacleod@redhat.com>
18374 * function.h (struct rtl_data): Remove struct and accessor macros.
18375 * emit-rtl.h (struct rtl_data): Relocate to here.
18376 * Makefile.in (GTFILES): Add emit-rtl.h.
18377 * df-core.c: Include emit-rtl.h.
18378 * genattrtab.c: Likewise.
18379 * genconditions.c: Likewise.
18380 * genpreds.c: Likewise.
18381 * genrecog.c: Likewise.
18382 * regcprop.c: Likewise.
18383 * resource.c: Likewise.
18384 * sched-rgn.c: Likewise.
18385 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
18386 * config/i386/winnt.c: Likewise.
18388 2015-06-17 Jakub Jelinek <jakub@redhat.com>
18390 PR middle-end/66429
18391 * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
18392 instead of DECL_STRUCT_FUNCTION (child_fn). Or in has_simduid_loops
18393 and has_force_vectorize_loops flags from cfun into
18395 (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
18396 if simduid is non-NULL.
18397 * tree-pass.h (make_pass_simduid_cleanup): New prototype.
18398 * passes.def (pass_simduid_cleanup): Add new pass after loop
18400 * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
18401 indirection from htab argument's type.
18402 (shrink_simd_arrays): New function.
18403 (vectorize_loops): Use it. Adjust adjust_simduid_builtins caller.
18404 Don't call adjust_simduid_builtins if there are no loops.
18405 (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
18406 (pass_simduid_cleanup::execute): New method.
18407 (make_pass_simduid_cleanup): New function.
18409 2017-06-17 Andrew MacLeod <amacleod@redhat.com>
18411 * tree-core.h (tree_target_option): Make opts field a pointer to a
18412 cl_target_option instead of an instance of the struct.
18413 * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
18415 * tree.c (make_node_stat ): Allocate a cl_target_option struct for
18416 TARGET_OPTION_NODE.
18417 (copy_node_stat): Allocate and copy struct cl_target_option.
18419 2015-06-17 Andrew MacLeod <amacleod@redhat.com>
18421 * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
18422 Remove conditional exposure of prototypes.
18423 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
18424 * tree.c (anon_aggrname_format, anon_aggrname_p): New. Replace macro
18425 definitions in tree.h with functions.
18426 * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
18428 * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
18430 2015-06-17 Segher Boessenkool <segher@kernel.crashing.org>
18432 * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
18433 (*cmp<mode>_signed): ... this.
18434 (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
18435 (*cmp<mode>_unsigned): ... this. Remove %b.
18437 2015-06-17 Andrew MacLeod <amacleod@redhat.com>
18439 * coretypes.h: Include input.h and as-a.h.
18440 * rtl.h: Include input.h and as-a.h for generator files.
18441 * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
18442 * vec.c: Don't include diagnostic-core.h.
18443 * alias.c: Do not include input.h, line-map.h or is-a.h.
18444 * asan.c: Likewise.
18445 * attribs.c: Likewise.
18446 * auto-inc-dec.c: Likewise.
18447 * auto-profile.c: Likewise.
18448 * bb-reorder.c: Likewise.
18449 * bt-load.c: Likewise.
18450 * builtins.c: Likewise.
18451 * caller-save.c: Likewise.
18452 * calls.c: Likewise.
18453 * ccmp.c: Likewise.
18455 * cfganal.c: Likewise.
18456 * cfgbuild.c: Likewise.
18457 * cfgcleanup.c: Likewise.
18458 * cfgexpand.c: Likewise.
18459 * cfghooks.c: Likewise.
18460 * cfgloop.c: Likewise.
18461 * cfgloop.h: Likewise.
18462 * cfgloopanal.c: Likewise.
18463 * cfgloopmanip.c: Likewise.
18464 * cfgrtl.c: Likewise.
18465 * cgraph.c: Likewise.
18466 * cgraphbuild.c: Likewise.
18467 * cgraphclones.c: Likewise.
18468 * cgraphunit.c: Likewise.
18469 * cilk-common.c: Likewise.
18470 * combine-stack-adj.c: Likewise.
18471 * combine.c: Likewise.
18472 * compare-elim.c: Likewise.
18473 * convert.c: Likewise.
18474 * coverage.c: Likewise.
18475 * cppbuiltin.c: Likewise.
18476 * cprop.c: Likewise.
18478 * cselib.c: Likewise.
18479 * data-streamer-in.c: Likewise.
18480 * data-streamer-out.c: Likewise.
18481 * data-streamer.c: Likewise.
18482 * dbxout.c: Likewise.
18485 * debug.c: Likewise.
18486 * df-core.c: Likewise.
18487 * df-problems.c: Likewise.
18488 * df-scan.c: Likewise.
18491 * diagnostic-core.h: Likewise.
18492 * diagnostic.c: Likewise.
18493 * dojump.c: Likewise.
18494 * dominance.c: Likewise.
18495 * domwalk.c: Likewise.
18496 * double-int.c: Likewise.
18498 * dumpfile.c: Likewise.
18499 * dumpfile.h: Likewise.
18500 * dwarf2asm.c: Likewise.
18501 * dwarf2cfi.c: Likewise.
18502 * dwarf2out.c: Likewise.
18503 * emit-rtl.c: Likewise.
18504 * et-forest.c: Likewise.
18505 * except.c: Likewise.
18506 * explow.c: Likewise.
18507 * expmed.c: Likewise.
18508 * expr.c: Likewise.
18509 * final.c: Likewise.
18510 * fixed-value.c: Likewise.
18511 * fold-const.c: Likewise.
18512 * function.c: Likewise.
18513 * fwprop.c: Likewise.
18514 * gcc-plugin.h: Likewise.
18515 * gcse.c: Likewise.
18516 * generic-match-head.c: Likewise.
18517 * ggc-page.c: Likewise.
18518 * gimple-builder.c: Likewise.
18519 * gimple-expr.c: Likewise.
18520 * gimple-fold.c: Likewise.
18521 * gimple-iterator.c: Likewise.
18522 * gimple-low.c: Likewise.
18523 * gimple-match-head.c: Likewise.
18524 * gimple-pretty-print.c: Likewise.
18525 * gimple-ssa-isolate-paths.c: Likewise.
18526 * gimple-ssa-strength-reduction.c: Likewise.
18527 * gimple-streamer-in.c: Likewise.
18528 * gimple-streamer-out.c: Likewise.
18529 * gimple-streamer.h: Likewise.
18530 * gimple-walk.c: Likewise.
18531 * gimple.c: Likewise.
18532 * gimplify-me.c: Likewise.
18533 * gimplify.c: Likewise.
18534 * godump.c: Likewise.
18535 * graph.c: Likewise.
18536 * graphite-blocking.c: Likewise.
18537 * graphite-dependences.c: Likewise.
18538 * graphite-interchange.c: Likewise.
18539 * graphite-isl-ast-to-gimple.c: Likewise.
18540 * graphite-optimize-isl.c: Likewise.
18541 * graphite-poly.c: Likewise.
18542 * graphite-scop-detection.c: Likewise.
18543 * graphite-sese-to-poly.c: Likewise.
18544 * graphite.c: Likewise.
18545 * haifa-sched.c: Likewise.
18546 * hw-doloop.c: Likewise.
18547 * ifcvt.c: Likewise.
18548 * init-regs.c: Likewise.
18549 * input.c: Likewise.
18550 * internal-fn.c: Likewise.
18551 * ipa-chkp.c: Likewise.
18552 * ipa-comdats.c: Likewise.
18553 * ipa-cp.c: Likewise.
18554 * ipa-devirt.c: Likewise.
18555 * ipa-icf-gimple.c: Likewise.
18556 * ipa-icf.c: Likewise.
18557 * ipa-inline-analysis.c: Likewise.
18558 * ipa-inline-transform.c: Likewise.
18559 * ipa-inline.c: Likewise.
18560 * ipa-polymorphic-call.c: Likewise.
18561 * ipa-profile.c: Likewise.
18562 * ipa-prop.c: Likewise.
18563 * ipa-pure-const.c: Likewise.
18564 * ipa-ref.c: Likewise.
18565 * ipa-reference.c: Likewise.
18566 * ipa-split.c: Likewise.
18567 * ipa-utils.c: Likewise.
18568 * ipa-visibility.c: Likewise.
18570 * ira-build.c: Likewise.
18571 * ira-color.c: Likewise.
18572 * ira-conflicts.c: Likewise.
18573 * ira-costs.c: Likewise.
18574 * ira-emit.c: Likewise.
18575 * ira-lives.c: Likewise.
18577 * jump.c: Likewise.
18578 * langhooks.c: Likewise.
18580 * loop-doloop.c: Likewise.
18581 * loop-init.c: Likewise.
18582 * loop-invariant.c: Likewise.
18583 * loop-iv.c: Likewise.
18584 * loop-unroll.c: Likewise.
18585 * lower-subreg.c: Likewise.
18586 * lra-assigns.c: Likewise.
18587 * lra-coalesce.c: Likewise.
18588 * lra-constraints.c: Likewise.
18589 * lra-eliminations.c: Likewise.
18590 * lra-lives.c: Likewise.
18591 * lra-remat.c: Likewise.
18592 * lra-spills.c: Likewise.
18594 * lto-cgraph.c: Likewise.
18595 * lto-compress.c: Likewise.
18596 * lto-opts.c: Likewise.
18597 * lto-section-in.c: Likewise.
18598 * lto-section-out.c: Likewise.
18599 * lto-streamer-in.c: Likewise.
18600 * lto-streamer-out.c: Likewise.
18601 * lto-streamer.c: Likewise.
18603 * mode-switching.c: Likewise.
18604 * modulo-sched.c: Likewise.
18605 * omega.c: Likewise.
18606 * omp-low.c: Likewise.
18607 * optabs.c: Likewise.
18608 * opts-global.c: Likewise.
18609 * opts.h: Likewise.
18610 * passes.c: Likewise.
18611 * plugin.c: Likewise.
18612 * postreload-gcse.c: Likewise.
18613 * postreload.c: Likewise.
18614 * predict.c: Likewise.
18615 * pretty-print.h: Likewise.
18616 * print-rtl.c: Likewise.
18617 * print-tree.c: Likewise.
18618 * profile.c: Likewise.
18619 * real.c: Likewise.
18620 * realmpfr.c: Likewise.
18621 * recog.c: Likewise.
18623 * reg-stack.c: Likewise.
18624 * regcprop.c: Likewise.
18625 * reginfo.c: Likewise.
18626 * regrename.c: Likewise.
18627 * regstat.c: Likewise.
18628 * reload.c: Likewise.
18629 * reload1.c: Likewise.
18630 * reorg.c: Likewise.
18631 * resource.c: Likewise.
18632 * rtl-chkp.c: Likewise.
18633 * rtl-error.c: Likewise.
18634 * rtlanal.c: Likewise.
18635 * rtlhooks.c: Likewise.
18636 * sanopt.c: Likewise.
18637 * sched-deps.c: Likewise.
18638 * sched-ebb.c: Likewise.
18639 * sched-rgn.c: Likewise.
18640 * sched-vis.c: Likewise.
18641 * sdbout.c: Likewise.
18642 * sel-sched-dump.c: Likewise.
18643 * sel-sched-ir.c: Likewise.
18644 * sel-sched.c: Likewise.
18645 * sese.c: Likewise.
18646 * shrink-wrap.c: Likewise.
18647 * simplify-rtx.c: Likewise.
18648 * stack-ptr-mod.c: Likewise.
18649 * statistics.c: Likewise.
18650 * stmt.c: Likewise.
18651 * stor-layout.c: Likewise.
18652 * store-motion.c: Likewise.
18653 * streamer-hooks.c: Likewise.
18654 * stringpool.c: Likewise.
18655 * symtab.c: Likewise.
18656 * target-globals.c: Likewise.
18657 * targhooks.c: Likewise.
18658 * toplev.c: Likewise.
18659 * tracer.c: Likewise.
18660 * trans-mem.c: Likewise.
18661 * tree-affine.c: Likewise.
18662 * tree-browser.c: Likewise.
18663 * tree-call-cdce.c: Likewise.
18664 * tree-cfg.c: Likewise.
18665 * tree-cfgcleanup.c: Likewise.
18666 * tree-chkp-opt.c: Likewise.
18667 * tree-chkp.c: Likewise.
18668 * tree-chrec.c: Likewise.
18669 * tree-complex.c: Likewise.
18670 * tree-data-ref.c: Likewise.
18671 * tree-dfa.c: Likewise.
18672 * tree-diagnostic.c: Likewise.
18673 * tree-dump.c: Likewise.
18674 * tree-eh.c: Likewise.
18675 * tree-emutls.c: Likewise.
18676 * tree-if-conv.c: Likewise.
18677 * tree-inline.c: Likewise.
18678 * tree-into-ssa.c: Likewise.
18679 * tree-iterator.c: Likewise.
18680 * tree-loop-distribution.c: Likewise.
18681 * tree-nested.c: Likewise.
18682 * tree-nrv.c: Likewise.
18683 * tree-object-size.c: Likewise.
18684 * tree-outof-ssa.c: Likewise.
18685 * tree-parloops.c: Likewise.
18686 * tree-phinodes.c: Likewise.
18687 * tree-predcom.c: Likewise.
18688 * tree-pretty-print.c: Likewise.
18689 * tree-profile.c: Likewise.
18690 * tree-scalar-evolution.c: Likewise.
18691 * tree-sra.c: Likewise.
18692 * tree-ssa-address.c: Likewise.
18693 * tree-ssa-alias.c: Likewise.
18694 * tree-ssa-ccp.c: Likewise.
18695 * tree-ssa-coalesce.c: Likewise.
18696 * tree-ssa-copy.c: Likewise.
18697 * tree-ssa-copyrename.c: Likewise.
18698 * tree-ssa-dce.c: Likewise.
18699 * tree-ssa-dom.c: Likewise.
18700 * tree-ssa-dse.c: Likewise.
18701 * tree-ssa-forwprop.c: Likewise.
18702 * tree-ssa-ifcombine.c: Likewise.
18703 * tree-ssa-live.c: Likewise.
18704 * tree-ssa-loop-ch.c: Likewise.
18705 * tree-ssa-loop-im.c: Likewise.
18706 * tree-ssa-loop-ivcanon.c: Likewise.
18707 * tree-ssa-loop-ivopts.c: Likewise.
18708 * tree-ssa-loop-manip.c: Likewise.
18709 * tree-ssa-loop-niter.c: Likewise.
18710 * tree-ssa-loop-prefetch.c: Likewise.
18711 * tree-ssa-loop-unswitch.c: Likewise.
18712 * tree-ssa-loop.c: Likewise.
18713 * tree-ssa-math-opts.c: Likewise.
18714 * tree-ssa-operands.c: Likewise.
18715 * tree-ssa-phiopt.c: Likewise.
18716 * tree-ssa-phiprop.c: Likewise.
18717 * tree-ssa-pre.c: Likewise.
18718 * tree-ssa-propagate.c: Likewise.
18719 * tree-ssa-reassoc.c: Likewise.
18720 * tree-ssa-sccvn.c: Likewise.
18721 * tree-ssa-scopedtables.c: Likewise.
18722 * tree-ssa-sink.c: Likewise.
18723 * tree-ssa-strlen.c: Likewise.
18724 * tree-ssa-structalias.c: Likewise.
18725 * tree-ssa-tail-merge.c: Likewise.
18726 * tree-ssa-ter.c: Likewise.
18727 * tree-ssa-threadedge.c: Likewise.
18728 * tree-ssa-threadupdate.c: Likewise.
18729 * tree-ssa-uncprop.c: Likewise.
18730 * tree-ssa-uninit.c: Likewise.
18731 * tree-ssa.c: Likewise.
18732 * tree-ssanames.c: Likewise.
18733 * tree-stdarg.c: Likewise.
18734 * tree-streamer-in.c: Likewise.
18735 * tree-streamer-out.c: Likewise.
18736 * tree-streamer.c: Likewise.
18737 * tree-switch-conversion.c: Likewise.
18738 * tree-tailcall.c: Likewise.
18739 * tree-vect-data-refs.c: Likewise.
18740 * tree-vect-generic.c: Likewise.
18741 * tree-vect-loop-manip.c: Likewise.
18742 * tree-vect-loop.c: Likewise.
18743 * tree-vect-patterns.c: Likewise.
18744 * tree-vect-slp.c: Likewise.
18745 * tree-vect-stmts.c: Likewise.
18746 * tree-vectorizer.c: Likewise.
18747 * tree-vrp.c: Likewise.
18748 * tree.c: Likewise.
18749 * tsan.c: Likewise.
18750 * ubsan.c: Likewise.
18751 * valtrack.c: Likewise.
18752 * value-prof.c: Likewise.
18753 * var-tracking.c: Likewise.
18754 * varasm.c: Likewise.
18755 * varpool.c: Likewise.
18756 * vmsdbgout.c: Likewise.
18757 * vtable-verify.c: Likewise.
18759 * wide-int.cc: Likewise.
18760 * xcoffout.c: Likewise.
18761 * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
18762 * common/common-targhooks.c: Likewise.
18763 * config/aarch64/aarch64-builtins.c: Likewise.
18764 * config/aarch64/aarch64.c: Likewise.
18765 * config/alpha/alpha.c: Likewise.
18766 * config/arc/arc.c: Likewise.
18767 * config/arm/aarch-common.c: Likewise.
18768 * config/arm/arm-builtins.c: Likewise.
18769 * config/arm/arm-c.c: Likewise.
18770 * config/arm/arm.c: Likewise.
18771 * config/avr/avr-c.c: Likewise.
18772 * config/avr/avr-log.c: Likewise.
18773 * config/avr/avr.c: Likewise.
18774 * config/bfin/bfin.c: Likewise.
18775 * config/c6x/c6x.c: Likewise.
18776 * config/cr16/cr16.c: Likewise.
18777 * config/cris/cris.c: Likewise.
18778 * config/darwin-c.c: Likewise.
18779 * config/darwin.c: Likewise.
18780 * config/default-c.c: Likewise.
18781 * config/epiphany/epiphany.c: Likewise.
18782 * config/epiphany/mode-switch-use.c: Likewise.
18783 * config/epiphany/resolve-sw-modes.c: Likewise.
18784 * config/fr30/fr30.c: Likewise.
18785 * config/frv/frv.c: Likewise.
18786 * config/ft32/ft32.c: Likewise.
18787 * config/glibc-c.c: Likewise.
18788 * config/h8300/h8300.c: Likewise.
18789 * config/i386/i386-c.c: Likewise.
18790 * config/i386/i386.c: Likewise.
18791 * config/i386/msformat-c.c: Likewise.
18792 * config/i386/winnt-cxx.c: Likewise.
18793 * config/i386/winnt-stubs.c: Likewise.
18794 * config/i386/winnt.c: Likewise.
18795 * config/ia64/ia64-c.c: Likewise.
18796 * config/ia64/ia64.c: Likewise.
18797 * config/iq2000/iq2000.c: Likewise.
18798 * config/lm32/lm32.c: Likewise.
18799 * config/m32c/m32c-pragma.c: Likewise.
18800 * config/m32c/m32c.c: Likewise.
18801 * config/m32r/m32r.c: Likewise.
18802 * config/m68k/m68k.c: Likewise.
18803 * config/mcore/mcore.c: Likewise.
18804 * config/mep/mep-pragma.c: Likewise.
18805 * config/mep/mep.c: Likewise.
18806 * config/microblaze/microblaze-c.c: Likewise.
18807 * config/microblaze/microblaze.c: Likewise.
18808 * config/mips/mips.c: Likewise.
18809 * config/mmix/mmix.c: Likewise.
18810 * config/mn10300/mn10300.c: Likewise.
18811 * config/moxie/moxie.c: Likewise.
18812 * config/msp430/msp430-c.c: Likewise.
18813 * config/msp430/msp430.c: Likewise.
18814 * config/nds32/nds32-cost.c: Likewise.
18815 * config/nds32/nds32-fp-as-gp.c: Likewise.
18816 * config/nds32/nds32-intrinsic.c: Likewise.
18817 * config/nds32/nds32-isr.c: Likewise.
18818 * config/nds32/nds32-md-auxiliary.c: Likewise.
18819 * config/nds32/nds32-memory-manipulation.c: Likewise.
18820 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
18821 * config/nds32/nds32-predicates.c: Likewise.
18822 * config/nds32/nds32.c: Likewise.
18823 * config/nios2/nios2.c: Likewise.
18824 * config/nvptx/nvptx.c: Likewise.
18825 * config/pa/pa.c: Likewise.
18826 * config/pdp11/pdp11.c: Likewise.
18827 * config/rl78/rl78-c.c: Likewise.
18828 * config/rl78/rl78.c: Likewise.
18829 * config/rs6000/rs6000-c.c: Likewise.
18830 * config/rs6000/rs6000.c: Likewise.
18831 * config/rx/rx.c: Likewise.
18832 * config/s390/s390-c.c: Likewise.
18833 * config/s390/s390.c: Likewise.
18834 * config/sh/sh-c.c: Likewise.
18835 * config/sh/sh-mem.cc: Likewise.
18836 * config/sh/sh.c: Likewise.
18837 * config/sh/sh_optimize_sett_clrt.cc: Likewise.
18838 * config/sh/sh_treg_combine.cc: Likewise.
18839 * config/sol2-c.c: Likewise.
18840 * config/sol2-cxx.c: Likewise.
18841 * config/sol2-stubs.c: Likewise.
18842 * config/sol2.c: Likewise.
18843 * config/sparc/sparc-c.c: Likewise.
18844 * config/sparc/sparc.c: Likewise.
18845 * config/spu/spu-c.c: Likewise.
18846 * config/spu/spu.c: Likewise.
18847 * config/stormy16/stormy16.c: Likewise.
18848 * config/tilegx/mul-tables.c: Likewise.
18849 * config/tilegx/tilegx-c.c: Likewise.
18850 * config/tilegx/tilegx.c: Likewise.
18851 * config/tilepro/mul-tables.c: Likewise.
18852 * config/tilepro/tilepro-c.c: Likewise.
18853 * config/tilepro/tilepro.c: Likewise.
18854 * config/v850/v850-c.c: Likewise.
18855 * config/v850/v850.c: Likewise.
18856 * config/vax/vax.c: Likewise.
18857 * config/visium/visium.c: Likewise.
18858 * config/vms/vms-c.c: Likewise.
18859 * config/vms/vms.c: Likewise.
18860 * config/vxworks.c: Likewise.
18861 * config/winnt-c.c: Likewise.
18862 * config/xtensa/xtensa.c: Likewise.
18864 2015-06-17 Robert Suchanek <robert.suchanek@imgtec.com>
18866 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
18868 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
18870 2015-06-17 Richard Biener <rguenther@suse.de>
18872 PR tree-optimization/66251
18873 * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
18874 stmts for SLP strided stores.
18877 2015-05-22 Richard Biener <rguenther@suse.de>
18879 PR tree-optimization/66251
18880 * tree-vect-stmts.c (vectorizable_conversion): Properly
18881 set STMT_VINFO_VEC_STMT even for the SLP case.
18883 2015-05-26 Michael Matz <matz@suse.de>
18885 PR middle-end/66251
18886 * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
18887 STMT_VINFO_VEC_STMT, also with SLP.
18889 2015-06-16 Uros Bizjak <ubizjak@gmail.com>
18892 * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
18893 (*avx_addsubv4df3_1s): Ditto.
18894 (*sse3_addsubv2df3_1): Ditto.
18895 (*sse3_addsubv2df3_1s): Ditto.
18896 (*avx_addsubv8sf3_1): Ditto.
18897 (*avx_addsubv8sf3_1s): Ditto.
18898 (*sse3_addsubv4sf3_1): Ditto.
18899 (*sse3_addsubv4sf3_1s): Ditto.
18901 2015-06-16 Steve Ellcey <sellcey@imgtec.com>
18903 * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
18904 (SYSROOT_SUFFIX_SPEC): Update.
18905 (SYSROOT_HEADERS_SUFFIX_SPEC): New.
18906 (STARTFILE_PREFIX_SPEC): Update.
18907 * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
18908 (MULTILIB_REQUIRED): New.
18909 (MULTILIB_OSDIRNAMES): New.
18910 * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
18911 (MULTILIB_REQUIRED): New.
18912 (MULTILIB_OSDIRNAMES): New.
18914 2015-06-16 Matthew Wahab <matthew.wahab@arm.com>
18916 * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
18917 * config/aarch64/aarch64-options-extensions.def: Update "fP",
18918 "simd" and "crypto". Add "lse", "pan", "lor" and "rdma".
18919 * gcc/config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
18920 (AARCH64_FL_PAN): New.
18921 (AARCH64_FL_LOR): New.
18922 (AARCH64_FL_RDMA): New.
18923 (AARCH64_FL_FOR_ARCH8_1): New.
18924 * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
18925 -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
18927 2015-06-16 Martin Liska <mliska@suse.cz>
18929 * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
18930 * hash-table.c (void dump_hash_table_loc_statistics): Add missing
18933 2015-06-16 Richard Biener <rguenther@suse.de>
18935 * tree-vect-stmts.c (vectorizable_store): Adjust.
18936 (vectorizable_load): Likewise.
18937 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
18939 (vect_create_data_ref_ptr): Likewise.
18940 (bump_vector_ptr): Adjust.
18942 2015-06-16 Richard Biener <rguenther@suse.de>
18944 * tree-vect-stmts.c (vectorizable_load): Properly start loads
18945 with the first element if this is grouped loads.
18947 2015-06-16 James Greenhalgh <james.greenhalgh@arm.com>
18949 * config/arm/arm-protos.h (struct tune_params): Rename
18950 log_op_non_sc to log_op_non_short_circuit, and rename enum
18951 values to expand SC to SHORT_CIRCUIT.
18952 * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
18953 to LOG_OP_NON_SHORT_CIRCUIT.
18954 (arm_fastmul_tune):Likewise
18955 (arm_strongarm_tune): Likewise.
18956 (arm_xscale_tune): Likewise.
18957 (arm_9e_tune): Likewise.
18958 (arm_marvell_pj4_tune): Likewise.
18959 (arm_v6t2_tune): Likewise.
18960 (arm_cortex_tune): Likewise.
18961 (arm_cortex_a8_tune): Likewise.
18962 (arm_cortex_a7_tune): Likewise.
18963 (arm_cortex_a15_tune): Likewise.
18964 (arm_cortex_a53_tune): Likewise.
18965 (arm_cortex_a57_tune): Likewise.
18966 (arm_xgene1_tune): Likewise.
18967 (arm_cortex_a5_tune): Likewise.
18968 (arm_cortex_a9_tune): Likewise.
18969 (arm_cortex_a12_tune): Likewise.
18970 (arm_v7m_tune): Likewise.
18971 (arm_cortex_m7_tune): Likewise.
18972 (arm_v6m_tune): Likewise.
18973 (arm_fa726te_tune): Likewise.
18975 2015-06-15 David Edelsohn <dje.gcc@gmail.com>
18977 * altivec.md: Delete UNSPEC_VMLADDUHM.
18978 (mulv4si3_p8): New pattern.
18979 (mulv4si3): Use it for POWER8.
18980 (mulv8hi3): Use vmladduhm with zero addend.
18981 (altivec_vmladduhm): Descriptive RTL.
18983 2015-06-15 Jim Wilson <jim.wilson@linaro.org>
18985 * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
18986 to use neon_move instead of mov_imm.
18987 (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
18988 (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
18990 * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
18991 aarch64_float_const_zero_rtx_p check before TFmode check.
18992 * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
18994 (movtf_aarch64): Separate ?rY alternative into two. Adjust assembly
18995 code and attributes to match. Change condition from register_operand
18996 to aarch64_reg_or_fp_zero for op1. Change type for ldp from
18997 neon_load1_2reg to load2. Change type for stp from neon_store1_2reg
19000 2015-06-15 Aldy Hernandez <aldyh@redhat.com>
19003 * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
19004 there is no parent.
19006 2015-06-14 Shiva Chen <shiva0217@gmail.com>
19008 * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
19009 HOST_WIDE_INT parameter.
19011 2015-06-14 Jan Hubicka <hubicka@ucw.cz>
19014 * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
19015 * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
19017 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
19019 2015-06-14 Richard Sandiford <richard.sandiford@arm.com>
19021 * rtl.h (classify_insn): Declare.
19022 * emit-rtl.c (classify_insn): Move to...
19023 * rtl.c: ...here and add generator support.
19024 * gensupport.h (get_emit_function, needs_barrier_p): Declare.
19025 * gensupport.c (get_emit_function, needs_barrier_p): New functions.
19026 * genemit.c (gen_emit_seq): New function.
19027 (gen_expand, gen_split): Use it.
19029 2015-06-13 Patrick Palka <ppalka@gcc.gnu.org>
19031 * tree.c (make_vector_stat): Fix comment to state that the
19032 function returns a VECTOR_CST.
19034 2015-06-13 Richard Sandiford <richard.sandiford@arm.com>
19036 * gensupport.h (add_implicit_parallel): Declare.
19037 * genrecog.c (add_implicit_parallel): Move to...
19038 * gensupport.c (add_implicit_parallel): ...here.
19039 (process_one_cond_exec): Use it.
19040 * genemit.c (gen_insn): Likewise.
19042 2015-06-13 Iain Sandoe <iain@codesourcery.com>
19045 * passes.c (rest_of_decl_compilation): Do not register globals for
19046 early debug if they are declared in built-ins.
19048 2015-06-12 Aldy Hernandez <aldyh@redhat.com>
19050 * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
19052 2015-06-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19054 * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
19056 (noce_try_cmove_arith): Likewise.
19057 (noce_get_alt_condition): Likewise.
19059 2015-06-12 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
19061 * common/config/i386/i386-common.c
19062 (OPTION_MASK_ISA_MWAITX_SET): New.
19063 (ix86_handle_option): Handle mwaitx.
19064 * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
19065 (x86_64-*-*): Likewise.
19066 * config/i386/mwaitxintrin.h: New header.
19067 * config/i386/cpuid.h (bit_MWAITX): Define.
19068 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
19070 * config/i386/i386.opt (mwaitx): New.
19071 * config/i386/i386-builtin-types.def
19072 (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
19073 * config/i386/i386-c.c: Define __MWAITX__ if needed.
19074 * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
19076 (ix86_option_override_internal): Handle new option.
19077 (processor_alias_table): Added PTA_MWAITX.
19078 (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
19079 (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
19080 (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
19081 IX86_BUILTIN_MONITORX built-ins.
19082 * config/i386/i386.h (TARGET_MWAITX): New.
19083 * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
19085 (mwaitx): New pattern.
19086 (monitorx_<mode>): New pattern.
19087 * config/i386/x86intrin.h: Include mwaitxintrin.h.
19088 * doc/extend.texi: Document monitorx and mwaitx builtins.
19089 * doc/invoke.texi: Document -mmwaitx option.
19091 2015-06-12 Uros Bizjak <ubizjak@gmail.com>
19093 * emit-rtl.c (need_atomic_barrier_p): Mask model with
19094 MEMMODEL_BASE_MASK. Remove MEMMODEL_SYNC_* cases.
19096 2015-06-11 David Edelsohn <dje.gcc@gmail.com>
19098 * dbxout.c (xcoff_debug_hooks): Provide a function for
19099 register_main_translation_unit hook.
19101 2015-06-11 David Edelsohn <dje.gcc@gmail.com>
19103 * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
19104 variants cases from switch.
19105 (rs6000_post_atomic_barrier): Same.
19106 (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
19107 (rs6000_expand_atomic_exchange): Same.
19108 (rs6000_expand_atomic_op): Same.
19109 * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
19110 SYNC variants cases from switch.
19111 (atomic_load): Same.
19112 (atomic_store): Same.
19114 2015-06-11 John David Anglin <danglin@gcc.gnu.org>
19116 * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
19117 CONST_INT for goto.
19119 2015-06-11 Aldy Hernandez <aldyh@redhat.com>
19122 * dwarf2out.c (check_die): Check for common duplicate attributes.
19123 (add_location_or_const_value_attribute): Do not add duplicate
19125 (gen_formal_parameter_die): Do not add DW_AT_artificial the second
19127 (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
19128 (gen_type_die_with_usage): Call check_die.
19129 (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
19131 2015-06-11 Jason Merrill <jason@redhat.com>
19133 * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
19136 2015-06-11 Marek Polacek <polacek@redhat.com>
19138 * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
19140 2015-06-11 Eric Botcazou <ebotcazou@adacore.com>
19143 * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
19144 * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
19145 (*addx_extend_sp32): Fix pasto.
19146 (*subx_extend): Rename into...
19147 (*subx_extend_sp32): ...this.
19148 (*adddi3_extend_sp32): Add earlyclobber.
19149 (*subdi3_insn_sp32): Likewise.
19150 (*subdi3_extend_sp32): Likewise.
19151 (*and_not_di_sp32): Likewise.
19152 (*or_not_di_sp32): Likewise.
19153 (*xor_not_di_sp32): Likewise.
19154 (*negdi2_sp32): Likewise.
19155 (*one_cmpldi2_sp32): Likewise.
19157 2015-06-11 Pierre-Marie de Rodat <derodat@adacore.com>
19159 * debug.h (struct gcc_debug_hooks): Add a
19160 register_main_translation_unit hook.
19161 * debug.c (do_nothing_debug_hooks): Provide a function for this
19163 * dbxout.c (dbx_debug_hooks): Likewise.
19164 * sdbout.c (sdb_debug_hooks): Likewise.
19165 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
19166 * dwarf2out.c (main_translation_unit): New global variable.
19167 (dwarf2out_register_main_translation_unit): New function
19168 implementing the new hook.
19169 (dwarf2_debug_hooks): Assign
19170 dwarf2out_register_main_translation_unit to this new hook.
19171 (dwarf2out_init): Associate any main translation unit to
19174 2015-06-11 Marek Polacek <polacek@redhat.com>
19176 * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
19178 2015-06-11 Marek Polacek <polacek@redhat.com>
19180 * match.pd: Use single_use throughout.
19182 2015-06-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19184 * config/arm/arm.c (arm_option_params_internal): When optimising
19185 for speed set max_insns_skipped when arm_restrict_it.
19187 2015-06-11 Christian Bruel <christian.bruel@st.com>
19190 * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
19192 (arm_cpu_builtins): New function.
19193 (arm_pragma_target_parse): Call arm_cpu_builtins.
19194 * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
19195 (arm_register_target_pragmas): Likewise.
19196 * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
19197 Call arm_register_target_pragmas.
19198 * config/arm/arm-c.c (arm_register_target_pragmas): New function.
19199 (arm_pragma_target_parse): Likewise.
19201 2015-06-10 Kaz Kojima <kkojima@gcc.gnu.org>
19203 * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
19204 of the second operand.
19206 2015-06-10 Uros Bizjak <ubizjak@gmail.com>
19209 * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
19210 to prepare mask operand for AVX512 modes.
19212 2015-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
19215 * doc/md.texi (Machine Constraints): Document that on the PowerPC
19216 if you use a constraint that targets a VSX register, you must use
19217 %x<n> in the template.
19219 2015-06-10 Max Filippov <jcmvbkbc@gmail.com>
19221 * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
19222 * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
19223 (define_insn "trap"): New definition.
19225 2015-06-10 Richard Biener <rguenther@suse.de>
19227 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
19229 (vect_supported_load_permutation_p): ... here. Handle
19230 supportable permutations in reductions.
19231 * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
19232 for vectorizing strided group loads.
19234 2015-06-10 Jakub Jelinek <jakub@redhat.com>
19237 * config/i386/i386.c (ix86_split_long_move): For collisions
19238 involving direct tls segment refs, move the UNSPEC_TP possibly
19239 wrapped in ZERO_EXTEND out of the address for lea, to each of
19242 2015-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19244 * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
19245 dmb sy. Adjust tabs.
19247 2015-06-10 Tom de Vries <tom@codesourcery.com>
19249 * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
19251 2015-06-10 Martin Liska <mliska@suse.cz>
19254 * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
19255 all enum values in mem_alloc_origin.
19256 * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
19258 * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
19259 * bitmap.c (bitmap_register): Likewise.
19260 (dump_bitmap_statistics): Likewise.
19261 * ggc-common.c (dump_ggc_loc_statistics): Likewise.
19262 (ggc_record_overhead): Likewise.
19263 * hash-map.h: Likewise.
19264 * hash-set.h: Likewise.
19265 * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
19266 * hash-table.h: Likewise.
19267 * vec.c (vec_prefix::register_overhead): Likewise.
19268 (vec_prefix::release_overhead): Likewise.
19269 (dump_vec_loc_statistics): Likewise.
19271 2015-06-09 Christian Bruel <christian.bruel@st.com>
19274 * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
19275 * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
19276 (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
19277 * config/arm/arm.h (SWITCHABLE_TARGET): Define.
19278 * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
19279 (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
19280 (arm_valid_target_attribute_p): Likewise.
19281 (arm_set_current_function, arm_can_inline_p): Likewise.
19282 (arm_valid_target_attribute_rec): Likewise.
19283 (arm_previous_fndecl): New variable.
19284 (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
19285 (TARGET_CAN_INLINE_P): Define.
19286 (arm_asm_trampoline_template): Emit mode.
19287 (arm_file_start): Don't set unified syntax.
19288 (arm_declare_function_name): Set unified syntax and mode.
19289 (arm_option_override): Init target_option_default_node.
19290 and target_option_current_node.
19291 * config/arm/arm.md (*call_value_symbol): Set mode when possible.
19292 (*call_symbol): Likewise.
19293 * doc/extend.texi: Document ARM/Thumb target attribute.
19294 * doc/invoke.texi: Likewise.
19296 2015-06-09 Alexandre Oliva <aoliva@redhat.com>
19299 2015-06-09 Alexandre Oliva <aoliva@redhat.com>
19300 PR rtl-optimization/64164
19301 * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
19302 * tree-ssa-copyrename.c: Removed.
19303 * opts.c (default_options_table): Drop -ftree-copyrename. Add
19304 -ftree-coalesce-vars.
19305 * passes.def: Drop all occurrences of pass_rename_ssa_copies.
19306 * common.opt (ftree-copyrename): Ignore.
19307 (ftree-coalesce-inlined-vars): Likewise.
19308 * doc/invoke.texi: Remove the ignored options above.
19309 * gimple-expr.h (gimple_can_coalesce_p): Move declaration
19310 * tree-ssa-coalesce.h: ... here.
19311 * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
19312 headers required by it.
19313 * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
19314 across variables when flag_tree_coalesce_vars. Check register
19315 use and promoted modes to allow coalescing. Moved to
19316 tree-ssa-coalesce.c.
19317 * tree-ssa-live.c (struct tree_int_map_hasher): Move along
19318 with its member functions to tree-ssa-coalesce.c.
19319 (var_map_base_init): Likewise. Renamed to
19320 compute_samebase_partition_bases.
19321 (partition_view_normal): Drop want_bases parameter.
19322 (partition_view_bitmap): Likewise.
19323 * tree-ssa-live.h: Adjust declarations.
19324 * tree-ssa-coalesce.c: Include explow.h.
19325 (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
19326 default defs at the entry point.
19327 (dump_part_var_map): New.
19328 (compute_optimized_partition_bases): New, called by...
19329 (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
19330 of compute_samebase_partition_bases. Adjust.
19331 * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
19332 * cfgexpand.c (leader_merge): New.
19333 (get_rtl_for_parm_ssa_default_def): New.
19334 (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
19335 vars. Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
19336 (expand_one_stack_var_at): Handle anonymous SSA_NAMEs. Drop
19337 redundant MEM attr setting.
19338 (expand_one_stack_var_1): Handle anonymous SSA_NAMEs. Renamed
19340 (expand_one_stack_var): ... this. New wrapper to check and
19341 skip already expanded SSA partitions.
19342 (record_alignment_for_reg_var): New, factored out of...
19343 (expand_one_var): ... this.
19344 (expand_one_ssa_partition): New.
19345 (adjust_one_expanded_partition_var): New.
19346 (expand_one_register_var): Check and skip already expanded SSA
19348 (expand_used_vars): Don't create DECLs for anonymous SSA
19349 names. Expand all SSA partitions, then adjust all SSA names.
19350 (pass::execute): Replace the loops that set
19351 SA.partition_to_pseudo from partition leaders and cleared
19352 DECL_RTL for multi-location variables, and that which used to
19353 rename vars and set attrs, with one that clears DECL_RTL and
19354 checks that PARMs and RESULTs default_defs match DECL_RTL.
19355 * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
19356 * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
19357 * explow.c (promote_ssa_mode): New.
19358 * explow.h (promote_ssa_mode): Declare.
19359 * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
19360 * function.c: Include cfgexpand.h.
19361 (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
19362 (use_register_for_parm_decl): Wrapper for the above to
19363 special-case the result_ptr.
19364 (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
19365 (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
19366 multiple locations.
19367 (assign_parm_adjust_stack_rtl): Add all and parm arguments,
19368 for rtl_for_parm. For SSA-assigned parms, zero stack_parm.
19369 (assign_parm_setup_block): Prefer SSA-assigned location.
19370 (assign_parm_setup_reg): Likewise. Use entry_parm for equiv
19371 if stack_parm is NULL.
19372 (assign_parm_setup_stack): Prefer SSA-assigned location.
19373 (assign_parms): Maybe reset DECL_RTL of params. Adjust stack
19374 rtl before testing for pointer bounds. Special-case result_ptr.
19375 (expand_function_start): Maybe reset DECL_RTL of result.
19376 Prefer SSA-assigned location for result and static chain.
19377 Factor out DECL_RESULT and SET_DECL_RTL.
19378 * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
19379 anonymous SSA names. Use promote_ssa_mode.
19380 (get_temp_reg): Likewise.
19381 (remove_ssa_form): Adjust.
19382 * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
19383 and get its reg_usage for reg invalidation.
19384 (compute_bb_dataflow): Pass it insn.
19385 (emit_notes_in_bb): Likewise.
19386 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
19387 fail assert on conversion between unsigned types.
19389 2015-06-09 Tom de Vries <tom@codesourcery.com>
19391 PR tree-optimization/65460
19392 * omp-low.c (expand_omp_target): Set parallelized_function on
19393 cgraph_node for child_fn.
19395 2015-06-09 Tom de Vries <tom@codesourcery.com>
19397 * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
19398 parallelized_function before add_new_function.
19400 2015-06-09 Andrew MacLeod <amacleod@redhat.com>
19402 * gcc-plugin.h: Move decls to plugin.h and include it.
19403 * plugin.h: Relocate decls from gcc-plugin.h
19404 * ggc-page.c: Include required header files.
19405 * passes.c: Likewise.
19406 * cgraphunit.c: Likewise.
19408 2015-06-09 Tom de Vries <tom@codesourcery.com>
19410 * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
19412 2015-06-09 Jason Merrill <jason@redhat.com>
19415 * toplev.c (check_global_declaration): Don't warn about a clone.
19417 2015-06-09 Marek Polacek <polacek@redhat.com>
19419 PR tree-optimization/66299
19420 * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
19421 ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
19424 2015-06-09 Richard Biener <rguenther@suse.de>
19426 * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
19427 (vect_analyze_slp_instance): Instead do not falsely drop
19430 2015-06-09 Richard Biener <rguenther@suse.de>
19432 PR middle-end/66423
19433 * match.pd: Handle A % (unsigned)(1 << B).
19435 2015-06-09 Aldy Hernandez <aldyh@redhat.com>
19437 * varasm.c (output_object_block_htab): Remove.
19438 (output_object_block_compare): New.
19439 (output_object_blocks): Sort named object_blocks before outputting
19442 2015-06-09 Richard Biener <rguenther@suse.de>
19444 PR tree-optimization/66419
19445 * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
19446 consider GROUP_GAP when detecting a perfect subchain.
19448 2015-06-09 Nick Clifton <nickc@redhat.com>
19450 * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
19451 place read only data in the .frodata section.
19453 2015-06-09 Shiva Chen <shiva0217@gmail.com>
19455 * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
19456 (atomic_store<mode>): Likewise.
19458 2015-06-09 Richard Biener <rguenther@suse.de>
19460 * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
19462 2015-06-09 Richard Biener <rguenther@suse.de>
19464 PR middle-end/66413
19465 * tree-inline.c (insert_init_debug_bind): Unshare value.
19467 2015-06-09 Richard Biener <rguenther@suse.de>
19469 PR tree-optimization/66396
19470 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
19471 Rename virtual operands.
19473 2015-06-09 Tom de Vries <tom@codesourcery.com>
19475 * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
19476 always return false.
19478 2015-06-09 Alexandre Oliva <aoliva@redhat.com>
19480 PR rtl-optimization/64164
19481 * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
19482 * tree-ssa-copyrename.c: Removed.
19483 * opts.c (default_options_table): Drop -ftree-copyrename. Add
19484 -ftree-coalesce-vars.
19485 * passes.def: Drop all occurrences of pass_rename_ssa_copies.
19486 * common.opt (ftree-copyrename): Ignore.
19487 (ftree-coalesce-inlined-vars): Likewise.
19488 * doc/invoke.texi: Remove the ignored options above.
19489 * gimple-expr.h (gimple_can_coalesce_p): Move declaration
19490 * tree-ssa-coalesce.h: ... here.
19491 * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
19492 headers required by it.
19493 * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
19494 across variables when flag_tree_coalesce_vars. Check register
19495 use and promoted modes to allow coalescing. Moved to
19496 tree-ssa-coalesce.c.
19497 * tree-ssa-live.c (struct tree_int_map_hasher): Move along
19498 with its member functions to tree-ssa-coalesce.c.
19499 (var_map_base_init): Likewise. Renamed to
19500 compute_samebase_partition_bases.
19501 (partition_view_normal): Drop want_bases parameter.
19502 (partition_view_bitmap): Likewise.
19503 * tree-ssa-live.h: Adjust declarations.
19504 * tree-ssa-coalesce.c: Include explow.h.
19505 (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
19506 default defs at the entry point.
19507 (dump_part_var_map): New.
19508 (compute_optimized_partition_bases): New, called by...
19509 (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
19510 of compute_samebase_partition_bases. Adjust.
19511 * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
19512 * cfgexpand.c (leader_merge): New.
19513 (get_rtl_for_parm_ssa_default_def): New.
19514 (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
19515 vars. Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
19516 (expand_one_stack_var_at): Handle anonymous SSA_NAMEs. Drop
19517 redundant MEM attr setting.
19518 (expand_one_stack_var_1): Handle anonymous SSA_NAMEs. Renamed
19520 (expand_one_stack_var): ... this. New wrapper to check and
19521 skip already expanded SSA partitions.
19522 (record_alignment_for_reg_var): New, factored out of...
19523 (expand_one_var): ... this.
19524 (expand_one_ssa_partition): New.
19525 (adjust_one_expanded_partition_var): New.
19526 (expand_one_register_var): Check and skip already expanded SSA
19528 (expand_used_vars): Don't create DECLs for anonymous SSA
19529 names. Expand all SSA partitions, then adjust all SSA names.
19530 (pass::execute): Replace the loops that set
19531 SA.partition_to_pseudo from partition leaders and cleared
19532 DECL_RTL for multi-location variables, and that which used to
19533 rename vars and set attrs, with one that clears DECL_RTL and
19534 checks that PARMs and RESULTs default_defs match DECL_RTL.
19535 * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
19536 * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
19537 * explow.c (promote_ssa_mode): New.
19538 * explow.h (promote_ssa_mode): Declare.
19539 * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
19540 * function.c: Include cfgexpand.h.
19541 (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
19542 (use_register_for_parm_decl): Wrapper for the above to
19543 special-case the result_ptr.
19544 (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
19545 (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
19546 multiple locations.
19547 (assign_parm_adjust_stack_rtl): Add all and parm arguments,
19548 for rtl_for_parm. For SSA-assigned parms, zero stack_parm.
19549 (assign_parm_setup_block): Prefer SSA-assigned location.
19550 (assign_parm_setup_reg): Likewise. Use entry_parm for equiv
19551 if stack_parm is NULL.
19552 (assign_parm_setup_stack): Prefer SSA-assigned location.
19553 (assign_parms): Maybe reset DECL_RTL of params. Adjust stack
19554 rtl before testing for pointer bounds. Special-case result_ptr.
19555 (expand_function_start): Maybe reset DECL_RTL of result.
19556 Prefer SSA-assigned location for result and static chain.
19557 Factor out DECL_RESULT and SET_DECL_RTL.
19558 * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
19559 anonymous SSA names. Use promote_ssa_mode.
19560 (get_temp_reg): Likewise.
19561 (remove_ssa_form): Adjust.
19562 * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
19563 and get its reg_usage for reg invalidation.
19564 (compute_bb_dataflow): Pass it insn.
19565 (emit_notes_in_bb): Likewise.
19566 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
19567 fail assert on conversion between unsigned types.
19569 2015-06-09 Alexandre Oliva <aoliva@redhat.com>
19572 * tree-inline.c (reset_debug_binding): New.
19573 (reset_debug_bindings): Likewise.
19574 (expand_call_inline): Call it.
19576 2015-06-08 Jan Hubicka <hubicka@ucw.cz>
19578 * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
19581 2015-06-08 Jan Hubicka <hubicka@ucw.cz>
19583 * lto-streamer-out.c (lto_output_location): Stream
19584 reserved locations correctly.
19585 * lto-streamer-in.c (lto_output_location): Likewise.
19587 2015-06-08 Andrew MacLeod <amacleod@redhat.com>
19589 * coretypes.h: Include hash-table.h and hash-set.h for host files.
19590 * ggc.h: Don't include statistics.h>
19591 * hash-map.h: Remove all includes.
19592 * hash-set.h: Likewise.
19593 * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
19594 the include list. Remove <new>.
19595 * inchash.h: Remove all includes.
19596 * mem-stats.h: Likewise.
19597 * vec.h: No special processing for generators or ggc.
19598 * alias.c : Adjust include files.
19599 * alloc-pool.c : Likewise.
19600 * alloc-pool.h : Likewise.
19601 * asan.c : Likewise.
19602 * attribs.c : Likewise.
19603 * auto-inc-dec.c : Likewise.
19604 * auto-profile.c : Likewise.
19605 * bb-reorder.c : Likewise.
19606 * bitmap.c : Likewise.
19607 * bitmap.h : Likewise.
19608 * bt-load.c : Likewise.
19609 * builtins.c : Likewise.
19610 * caller-save.c : Likewise.
19611 * calls.c : Likewise.
19612 * ccmp.c : Likewise.
19613 * cfg.c : Likewise.
19614 * cfganal.c : Likewise.
19615 * cfgbuild.c : Likewise.
19616 * cfgcleanup.c : Likewise.
19617 * cfgexpand.c : Likewise.
19618 * cfghooks.c : Likewise.
19619 * cfgloop.c : Likewise.
19620 * cfgloop.h : Likewise.
19621 * cfgloopanal.c : Likewise.
19622 * cfgloopmanip.c : Likewise.
19623 * cfgrtl.c : Likewise.
19624 * cgraph.c : Likewise.
19625 * cgraphbuild.c : Likewise.
19626 * cgraphclones.c : Likewise.
19627 * cgraphunit.c : Likewise.
19628 * cilk-common.c : Likewise.
19629 * combine-stack-adj.c : Likewise.
19630 * combine.c : Likewise.
19631 * compare-elim.c : Likewise.
19632 * context.c : Likewise.
19633 * convert.c : Likewise.
19634 * coverage.c : Likewise.
19635 * cppbuiltin.c : Likewise.
19636 * cprop.c : Likewise.
19637 * cse.c : Likewise.
19638 * cselib.c : Likewise.
19639 * data-streamer-in.c : Likewise.
19640 * data-streamer-out.c : Likewise.
19641 * data-streamer.c : Likewise.
19642 * data-streamer.h : Likewise.
19643 * dbxout.c : Likewise.
19644 * dce.c : Likewise.
19645 * ddg.c : Likewise.
19646 * debug.c : Likewise.
19647 * df-core.c : Likewise.
19648 * df-problems.c : Likewise.
19649 * df-scan.c : Likewise.
19651 * dfp.c : Likewise.
19652 * dojump.c : Likewise.
19653 * dominance.c : Likewise.
19654 * domwalk.c : Likewise.
19655 * double-int.c : Likewise.
19656 * dse.c : Likewise.
19657 * dumpfile.c : Likewise.
19658 * dwarf2asm.c : Likewise.
19659 * dwarf2cfi.c : Likewise.
19660 * dwarf2out.c : Likewise.
19661 * emit-rtl.c : Likewise.
19662 * et-forest.c : Likewise.
19663 * except.c : Likewise.
19664 * except.h : Likewise.
19665 * explow.c : Likewise.
19666 * expmed.c : Likewise.
19667 * expr.c : Likewise.
19668 * final.c : Likewise.
19669 * fixed-value.c : Likewise.
19670 * fold-const.c : Likewise.
19671 * function.c : Likewise.
19672 * fwprop.c : Likewise.
19673 * gcc-plugin.h : Likewise.
19674 * gcc.c : Likewise.
19675 * gcse-common.c : Likewise.
19676 * gcse.c : Likewise.
19677 * genattrtab.c : Likewise.
19678 * genautomata.c : Likewise.
19679 * genconditions.c : Likewise.
19680 * genemit.c : Likewise.
19681 * generic-match-head.c : Likewise.
19682 * genextract.c : Likewise.
19683 * gengtype-state.c : Likewise.
19684 * gengtype.c : Likewise.
19685 * genhooks.c : Likewise.
19686 * genmatch.c : Likewise.
19687 * genmodes.c : Likewise.
19688 * genrecog.c : Likewise.
19689 * gensupport.c : Likewise.
19690 * ggc-common.c : Likewise.
19691 * ggc-internal.h : Likewise.
19692 * ggc-none.c : Likewise.
19693 * ggc-page.c : Likewise.
19694 * gimple-builder.c : Likewise.
19695 * gimple-expr.c : Likewise.
19696 * gimple-fold.c : Likewise.
19697 * gimple-iterator.c : Likewise.
19698 * gimple-low.c : Likewise.
19699 * gimple-match-head.c : Likewise.
19700 * gimple-pretty-print.c : Likewise.
19701 * gimple-ssa-isolate-paths.c : Likewise.
19702 * gimple-ssa-strength-reduction.c : Likewise.
19703 * gimple-ssa.h : Likewise.
19704 * gimple-streamer-in.c : Likewise.
19705 * gimple-streamer-out.c : Likewise.
19706 * gimple-streamer.h : Likewise.
19707 * gimple-walk.c : Likewise.
19708 * gimple.c : Likewise.
19709 * gimplify-me.c : Likewise.
19710 * gimplify.c : Likewise.
19711 * godump.c : Likewise.
19712 * graph.c : Likewise.
19713 * graphds.c : Likewise.
19714 * graphite-blocking.c : Likewise.
19715 * graphite-dependences.c : Likewise.
19716 * graphite-interchange.c : Likewise.
19717 * graphite-isl-ast-to-gimple.c : Likewise.
19718 * graphite-optimize-isl.c : Likewise.
19719 * graphite-poly.c : Likewise.
19720 * graphite-scop-detection.c : Likewise.
19721 * graphite-sese-to-poly.c : Likewise.
19722 * graphite.c : Likewise.
19723 * haifa-sched.c : Likewise.
19724 * hard-reg-set.h : Likewise.
19725 * hw-doloop.c : Likewise.
19726 * ifcvt.c : Likewise.
19727 * inchash.c : Likewise.
19728 * incpath.c : Likewise.
19729 * init-regs.c : Likewise.
19730 * input.c : Likewise.
19731 * internal-fn.c : Likewise.
19732 * ipa-chkp.c : Likewise.
19733 * ipa-comdats.c : Likewise.
19734 * ipa-cp.c : Likewise.
19735 * ipa-devirt.c : Likewise.
19736 * ipa-icf-gimple.c : Likewise.
19737 * ipa-icf.c : Likewise.
19738 * ipa-inline-analysis.c : Likewise.
19739 * ipa-inline-transform.c : Likewise.
19740 * ipa-inline.c : Likewise.
19741 * ipa-polymorphic-call.c : Likewise.
19742 * ipa-profile.c : Likewise.
19743 * ipa-prop.c : Likewise.
19744 * ipa-pure-const.c : Likewise.
19745 * ipa-ref.c : Likewise.
19746 * ipa-reference.c : Likewise.
19747 * ipa-split.c : Likewise.
19748 * ipa-utils.c : Likewise.
19749 * ipa-visibility.c : Likewise.
19750 * ipa.c : Likewise.
19751 * ira-build.c : Likewise.
19752 * ira-color.c : Likewise.
19753 * ira-conflicts.c : Likewise.
19754 * ira-costs.c : Likewise.
19755 * ira-emit.c : Likewise.
19756 * ira-lives.c : Likewise.
19757 * ira.c : Likewise.
19758 * jump.c : Likewise.
19759 * langhooks.c : Likewise.
19760 * lcm.c : Likewise.
19761 * libfuncs.h : Likewise.
19762 * lists.c : Likewise.
19763 * loop-doloop.c : Likewise.
19764 * loop-init.c : Likewise.
19765 * loop-invariant.c : Likewise.
19766 * loop-iv.c : Likewise.
19767 * loop-unroll.c : Likewise.
19768 * lower-subreg.c : Likewise.
19769 * lra-assigns.c : Likewise.
19770 * lra-coalesce.c : Likewise.
19771 * lra-constraints.c : Likewise.
19772 * lra-eliminations.c : Likewise.
19773 * lra-lives.c : Likewise.
19774 * lra-remat.c : Likewise.
19775 * lra-spills.c : Likewise.
19776 * lra.c : Likewise.
19777 * lto-cgraph.c : Likewise.
19778 * lto-compress.c : Likewise.
19779 * lto-opts.c : Likewise.
19780 * lto-section-in.c : Likewise.
19781 * lto-section-out.c : Likewise.
19782 * lto-streamer-in.c : Likewise.
19783 * lto-streamer-out.c : Likewise.
19784 * lto-streamer.c : Likewise.
19785 * lto-streamer.h : Likewise.
19786 * mcf.c : Likewise.
19787 * mode-switching.c : Likewise.
19788 * modulo-sched.c : Likewise.
19789 * omega.c : Likewise.
19790 * omp-low.c : Likewise.
19791 * optabs.c : Likewise.
19792 * opts-global.c : Likewise.
19793 * opts.h : Likewise.
19794 * passes.c : Likewise.
19795 * plugin.c : Likewise.
19796 * postreload-gcse.c : Likewise.
19797 * postreload.c : Likewise.
19798 * predict.c : Likewise.
19799 * print-rtl.c : Likewise.
19800 * print-tree.c : Likewise.
19801 * profile.c : Likewise.
19802 * read-md.c : Likewise.
19803 * read-md.h : Likewise.
19804 * read-rtl.c : Likewise.
19805 * real.c : Likewise.
19806 * realmpfr.c : Likewise.
19807 * recog.c : Likewise.
19808 * ree.c : Likewise.
19809 * reg-stack.c : Likewise.
19810 * regcprop.c : Likewise.
19811 * reginfo.c : Likewise.
19812 * regrename.c : Likewise.
19813 * regstat.c : Likewise.
19814 * reload.c : Likewise.
19815 * reload1.c : Likewise.
19816 * reorg.c : Likewise.
19817 * resource.c : Likewise.
19818 * rtl-chkp.c : Likewise.
19819 * rtl.c : Likewise.
19820 * rtl.h : Likewise.
19821 * rtlanal.c : Likewise.
19822 * rtlhash.c : Likewise.
19823 * rtlhash.h : Likewise.
19824 * rtlhooks.c : Likewise.
19825 * sanopt.c : Likewise.
19826 * sched-deps.c : Likewise.
19827 * sched-ebb.c : Likewise.
19828 * sched-rgn.c : Likewise.
19829 * sched-vis.c : Likewise.
19830 * sdbout.c : Likewise.
19831 * sel-sched-dump.c : Likewise.
19832 * sel-sched-ir.c : Likewise.
19833 * sel-sched-ir.h : Likewise.
19834 * sel-sched.c : Likewise.
19835 * sese.c : Likewise.
19836 * shrink-wrap.c : Likewise.
19837 * shrink-wrap.h : Likewise.
19838 * simplify-rtx.c : Likewise.
19839 * stack-ptr-mod.c : Likewise.
19840 * statistics.c : Likewise.
19841 * stmt.c : Likewise.
19842 * stor-layout.c : Likewise.
19843 * store-motion.c : Likewise.
19844 * stringpool.c : Likewise.
19845 * symtab.c : Likewise.
19846 * target-globals.c : Likewise.
19847 * targhooks.c : Likewise.
19848 * tlink.c : Likewise.
19849 * toplev.c : Likewise.
19850 * tracer.c : Likewise.
19851 * trans-mem.c : Likewise.
19852 * tree-affine.c : Likewise.
19853 * tree-affine.h : Likewise.
19854 * tree-browser.c : Likewise.
19855 * tree-call-cdce.c : Likewise.
19856 * tree-cfg.c : Likewise.
19857 * tree-cfgcleanup.c : Likewise.
19858 * tree-chkp-opt.c : Likewise.
19859 * tree-chkp.c : Likewise.
19860 * tree-chrec.c : Likewise.
19861 * tree-complex.c : Likewise.
19862 * tree-data-ref.c : Likewise.
19863 * tree-dfa.c : Likewise.
19864 * tree-diagnostic.c : Likewise.
19865 * tree-dump.c : Likewise.
19866 * tree-eh.c : Likewise.
19867 * tree-eh.h : Likewise.
19868 * tree-emutls.c : Likewise.
19869 * tree-hasher.h : Likewise.
19870 * tree-if-conv.c : Likewise.
19871 * tree-inline.c : Likewise.
19872 * tree-inline.h : Likewise.
19873 * tree-into-ssa.c : Likewise.
19874 * tree-iterator.c : Likewise.
19875 * tree-loop-distribution.c : Likewise.
19876 * tree-nested.c : Likewise.
19877 * tree-nrv.c : Likewise.
19878 * tree-object-size.c : Likewise.
19879 * tree-outof-ssa.c : Likewise.
19880 * tree-parloops.c : Likewise.
19881 * tree-phinodes.c : Likewise.
19882 * tree-predcom.c : Likewise.
19883 * tree-pretty-print.c : Likewise.
19884 * tree-profile.c : Likewise.
19885 * tree-scalar-evolution.c : Likewise.
19886 * tree-sra.c : Likewise.
19887 * tree-ssa-address.c : Likewise.
19888 * tree-ssa-alias.c : Likewise.
19889 * tree-ssa-ccp.c : Likewise.
19890 * tree-ssa-coalesce.c : Likewise.
19891 * tree-ssa-copy.c : Likewise.
19892 * tree-ssa-copyrename.c : Likewise.
19893 * tree-ssa-dce.c : Likewise.
19894 * tree-ssa-dom.c : Likewise.
19895 * tree-ssa-dse.c : Likewise.
19896 * tree-ssa-forwprop.c : Likewise.
19897 * tree-ssa-ifcombine.c : Likewise.
19898 * tree-ssa-live.c : Likewise.
19899 * tree-ssa-loop-ch.c : Likewise.
19900 * tree-ssa-loop-im.c : Likewise.
19901 * tree-ssa-loop-ivcanon.c : Likewise.
19902 * tree-ssa-loop-ivopts.c : Likewise.
19903 * tree-ssa-loop-manip.c : Likewise.
19904 * tree-ssa-loop-niter.c : Likewise.
19905 * tree-ssa-loop-prefetch.c : Likewise.
19906 * tree-ssa-loop-unswitch.c : Likewise.
19907 * tree-ssa-loop.c : Likewise.
19908 * tree-ssa-math-opts.c : Likewise.
19909 * tree-ssa-operands.c : Likewise.
19910 * tree-ssa-phiopt.c : Likewise.
19911 * tree-ssa-phiprop.c : Likewise.
19912 * tree-ssa-pre.c : Likewise.
19913 * tree-ssa-propagate.c : Likewise.
19914 * tree-ssa-reassoc.c : Likewise.
19915 * tree-ssa-sccvn.c : Likewise.
19916 * tree-ssa-scopedtables.c : Likewise.
19917 * tree-ssa-sink.c : Likewise.
19918 * tree-ssa-strlen.c : Likewise.
19919 * tree-ssa-structalias.c : Likewise.
19920 * tree-ssa-tail-merge.c : Likewise.
19921 * tree-ssa-ter.c : Likewise.
19922 * tree-ssa-threadedge.c : Likewise.
19923 * tree-ssa-threadupdate.c : Likewise.
19924 * tree-ssa-uncprop.c : Likewise.
19925 * tree-ssa-uninit.c : Likewise.
19926 * tree-ssa.c : Likewise.
19927 * tree-ssanames.c : Likewise.
19928 * tree-stdarg.c : Likewise.
19929 * tree-streamer-in.c : Likewise.
19930 * tree-streamer-out.c : Likewise.
19931 * tree-streamer.c : Likewise.
19932 * tree-streamer.h : Likewise.
19933 * tree-switch-conversion.c : Likewise.
19934 * tree-tailcall.c : Likewise.
19935 * tree-vect-data-refs.c : Likewise.
19936 * tree-vect-generic.c : Likewise.
19937 * tree-vect-loop-manip.c : Likewise.
19938 * tree-vect-loop.c : Likewise.
19939 * tree-vect-patterns.c : Likewise.
19940 * tree-vect-slp.c : Likewise.
19941 * tree-vect-stmts.c : Likewise.
19942 * tree-vectorizer.c : Likewise.
19943 * tree-vectorizer.h : Likewise.
19944 * tree-vrp.c : Likewise.
19945 * tree.c : Likewise.
19946 * tsan.c : Likewise.
19947 * ubsan.c : Likewise.
19948 * valtrack.c : Likewise.
19949 * valtrack.h : Likewise.
19950 * value-prof.c : Likewise.
19951 * var-tracking.c : Likewise.
19952 * varasm.c : Likewise.
19953 * varpool.c : Likewise.
19955 * vmsdbgout.c : Likewise.
19956 * vtable-verify.c : Likewise.
19957 * vtable-verify.h : Likewise.
19958 * web.c : Likewise.
19959 * wide-int.cc : Likewise.
19960 * xcoffout.c : Likewise.
19961 * config/aarch64/aarch64-builtins.c : Likewise.
19962 * config/aarch64/aarch64.c : Likewise.
19963 * config/aarch64/cortex-a57-fma-steering.c : Likewise.
19964 * config/alpha/alpha.c : Likewise.
19965 * config/arc/arc.c : Likewise.
19966 * config/arm/aarch-common.c : Likewise.
19967 * config/arm/arm-builtins.c : Likewise.
19968 * config/arm/arm-c.c : Likewise.
19969 * config/arm/arm.c : Likewise.
19970 * config/avr/avr-c.c : Likewise.
19971 * config/avr/avr-log.c : Likewise.
19972 * config/avr/avr.c : Likewise.
19973 * config/bfin/bfin.c : Likewise.
19974 * config/c6x/c6x.c : Likewise.
19975 * config/cr16/cr16.c : Likewise.
19976 * config/cris/cris.c : Likewise.
19977 * config/darwin-c.c : Likewise.
19978 * config/darwin.c : Likewise.
19979 * config/default-c.c : Likewise.
19980 * config/epiphany/epiphany.c : Likewise.
19981 * config/epiphany/mode-switch-use.c : Likewise.
19982 * config/epiphany/resolve-sw-modes.c : Likewise.
19983 * config/fr30/fr30.c : Likewise.
19984 * config/frv/frv.c : Likewise.
19985 * config/ft32/ft32.c : Likewise.
19986 * config/glibc-c.c : Likewise.
19987 * config/h8300/h8300.c : Likewise.
19988 * config/i386/i386-c.c : Likewise.
19989 * config/i386/i386.c : Likewise.
19990 * config/i386/msformat-c.c : Likewise.
19991 * config/i386/winnt-cxx.c : Likewise.
19992 * config/i386/winnt-stubs.c : Likewise.
19993 * config/i386/winnt.c : Likewise.
19994 * config/ia64/ia64-c.c : Likewise.
19995 * config/ia64/ia64.c : Likewise.
19996 * config/iq2000/iq2000.c : Likewise.
19997 * config/lm32/lm32.c : Likewise.
19998 * config/m32c/m32c-pragma.c : Likewise.
19999 * config/m32c/m32c.c : Likewise.
20000 * config/m32r/m32r.c : Likewise.
20001 * config/m68k/m68k.c : Likewise.
20002 * config/mcore/mcore.c : Likewise.
20003 * config/mep/mep-pragma.c : Likewise.
20004 * config/mep/mep.c : Likewise.
20005 * config/microblaze/microblaze-c.c : Likewise.
20006 * config/microblaze/microblaze.c : Likewise.
20007 * config/mips/mips.c : Likewise.
20008 * config/mmix/mmix.c : Likewise.
20009 * config/mn10300/mn10300.c : Likewise.
20010 * config/moxie/moxie.c : Likewise.
20011 * config/msp430/msp430-c.c : Likewise.
20012 * config/msp430/msp430.c : Likewise.
20013 * config/nds32/nds32-cost.c : Likewise.
20014 * config/nds32/nds32-fp-as-gp.c : Likewise.
20015 * config/nds32/nds32-intrinsic.c : Likewise.
20016 * config/nds32/nds32-isr.c : Likewise.
20017 * config/nds32/nds32-md-auxiliary.c : Likewise.
20018 * config/nds32/nds32-memory-manipulation.c : Likewise.
20019 * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
20020 * config/nds32/nds32-predicates.c : Likewise.
20021 * config/nds32/nds32.c : Likewise.
20022 * config/nios2/nios2.c : Likewise.
20023 * config/nvptx/nvptx.c : Likewise.
20024 * config/pa/pa.c : Likewise.
20025 * config/pdp11/pdp11.c : Likewise.
20026 * config/rl78/rl78-c.c : Likewise.
20027 * config/rl78/rl78.c : Likewise.
20028 * config/rs6000/rs6000-c.c : Likewise.
20029 * config/rs6000/rs6000.c : Likewise.
20030 * config/rx/rx.c : Likewise.
20031 * config/s390/s390-c.c : Likewise.
20032 * config/s390/s390.c : Likewise.
20033 * config/sh/sh-c.c : Likewise.
20034 * config/sh/sh-mem.cc : Likewise.
20035 * config/sh/sh.c : Likewise.
20036 * config/sh/sh_optimize_sett_clrt.cc : Likewise.
20037 * config/sh/sh_treg_combine.cc : Likewise.
20038 * config/sol2-c.c : Likewise.
20039 * config/sol2-cxx.c : Likewise.
20040 * config/sol2-stubs.c : Likewise.
20041 * config/sol2.c : Likewise.
20042 * config/sparc/sparc-c.c : Likewise.
20043 * config/sparc/sparc.c : Likewise.
20044 * config/spu/spu-c.c : Likewise.
20045 * config/spu/spu.c : Likewise.
20046 * config/stormy16/stormy16.c : Likewise.
20047 * config/tilegx/mul-tables.c : Likewise.
20048 * config/tilegx/tilegx-c.c : Likewise.
20049 * config/tilegx/tilegx.c : Likewise.
20050 * config/tilepro/mul-tables.c : Likewise.
20051 * config/tilepro/tilepro-c.c : Likewise.
20052 * config/tilepro/tilepro.c : Likewise.
20053 * config/v850/v850-c.c : Likewise.
20054 * config/v850/v850.c : Likewise.
20055 * config/vax/vax.c : Likewise.
20056 * config/visium/visium.c : Likewise.
20057 * config/vms/vms-c.c : Likewise.
20058 * config/vms/vms.c : Likewise.
20059 * config/vxworks.c : Likewise.
20060 * config/winnt-c.c : Likewise.
20061 * config/xtensa/xtensa.c : Likewise.
20063 2015-06-08 Jan Hubicka <hubicka@ucw.cz>
20066 * ipa-utils.h (warn_types_mismatch): Update prototype.
20067 * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
20069 (type_mismatch_p): New function.
20070 (warn_types_mismatch): Reorg to work better on non-C++ types.
20071 (odr_types_equivalent_p): Add loc1/loc2 parameters.
20072 (add_type_duplicate): Update.
20074 2015-06-08 Tom de Vries <tom@codesourcery.com>
20076 PR rtl-optimization/66444
20077 * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
20080 2015-06-08 Richard Biener <rguenther@suse.de>
20082 PR tree-optimization/66422
20083 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
20084 block after inserted gcc_unreachable.
20086 2015-06-08 Nick Clifton <nickc@redhat.com>
20088 * config/rx/rx.c (rx_function_value): Do not promote vector types.
20089 (rx_promote_function_mode): Likewise.
20090 * config/rx/rx.h (LIBCALL_VALUE): Likewise.
20092 2015-06-08 Jakub Jelinek <jakub@redhat.com>
20094 * genattrtab.c (insn_alternatives): Change type from int *
20096 (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
20097 (get_attr_value): Change type of num_alt to uint64_t.
20098 (compute_alternative_mask): Change return type from
20099 int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
20100 (make_alternative_compare, mk_attr_alt): Change argument type
20101 from int to uint64_t.
20102 (simplify_test_exp): Change type of i from int to uint64_t.
20103 Shift ((uint64_t) 1) instead of 1 up.
20104 (main): Adjust oballocvec first argument from int to uint64_t.
20105 Shift ((uint64_t) 1) instead of 1 up.
20107 2015-06-08 Jan Kratochvil <jan.kratochvil@redhat.com>
20110 * gdbhooks.py: Import sys.
20111 (intptr): New function. Replace int(...) by intptr(...).
20113 2015-06-08 Richard Biener <rguenther@suse.de>
20115 * tree-vect-stmts.c (vectorizable_load): Compute the pointer
20116 adjustment for gaps at the end of a SLP load group properly.
20117 * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
20118 all permutations we can generate.
20119 (vect_transform_slp_perm_load): Use the correct group-size.
20121 2015-06-08 Marc Glisse <marc.glisse@inria.fr>
20123 * genmatch.c (expr::gen_transform): For conditions, guess the type
20124 from the second operand.
20126 2015-06-08 Tom de Vries <tom@codesourcery.com>
20128 PR tree-optimization/66442
20129 * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
20130 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
20131 if the loop latch is not a singleton. Use
20132 gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
20134 2015-06-08 Marek Polacek <polacek@redhat.com>
20137 * toplev.c (check_global_declaration): Don't warn about artificial
20140 2015-06-08 Tom de Vries <tom@codesourcery.com>
20142 PR tree-optimization/66436
20143 * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
20145 * gimplify.c: Add tree-dump.h include.
20146 (gimplify_function_tree): Dump function to gimple dump file.
20147 * stor-layout.c (finalize_size_functions): Don't dump function to gimple
20150 2015-06-08 Tom de Vries <tom@codesourcery.com>
20152 PR tree-optimization/66435
20153 * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
20156 2015-06-06 Jan Hubicka <hubicka@ucw.cz>
20158 * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
20159 of ptr_type_node to not be ptr_to_node.
20160 * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
20161 TREE_TYPE of pointers.
20162 * gimple-expr.c (useless_type_conversion): Reorder the check for
20163 function pointers and TYPE_CANONICAL.
20165 2015-06-06 John David Anglin <danglin@gcc.gnu.org>
20168 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
20169 defines. Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
20170 Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
20172 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
20173 Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
20174 _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
20175 _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
20176 and non iso if unix2003.
20178 2015-06-06 Aldy Hernandez <aldyh@redhat.com>
20180 * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
20182 2015-06-06 Richard Sandiford <richard.sandiford@arm.com>
20184 * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
20185 rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
20186 cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
20187 except.c, final.c, function.c, gcse-common.c, genemit.c,
20188 haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
20189 lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
20190 sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
20191 shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
20194 2015-06-06 Mikhail Maltsev <maltsevm@gmail.com>
20196 * combine.c (combine_split_insns): Remove cast.
20197 * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
20198 * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
20199 * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
20200 * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
20201 * genemit.c (gen_split): Change return type of generated functions to
20203 * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
20204 (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
20205 gen_peephole2_* functions.
20206 (print_subroutine, main): Likewise.
20207 * recog.c (peephole2_optimize): Remove cast.
20208 (peep2_next_insn): Promote return type to rtx_insn.
20209 * recog.h (peep2_next_insn): Fix prototype.
20210 * rtl.h (try_split, split_insns): Likewise.
20212 2015-06-06 DJ Delorie <dj@redhat.com>
20214 * config/msp430/msp430.c (msp430_asm_integer): Support addition
20215 and subtraction too.
20217 2015-06-05 Kaz Kojima <kkojima@gcc.gnu.org>
20220 * config/sh/constraints.md (Sid, Ssd): New memory constraints.
20221 * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
20222 instead of Snd. Disparage Sid/z alternative with '^'.
20224 2015-06-05 Aldy Hernandez <aldyh@redhat.com>
20226 * dwarf2out.c: Remove deferred_locations*.
20227 (dwarf2_debug_hooks): Add early_finish hook.
20228 Remove global_decl hook.
20229 Add early_global_decl and late_global_decl hook.
20230 New global early_dwarf.
20231 New structure set_early_dwarf.
20232 (output_die): Indicate whether a DIE was generated early
20233 when generating assembly with -dA.
20234 (struct limbo_die_struct): Document created_for field.
20235 Remove file_table_last_lookup.
20236 (remove_AT): Return TRUE if successful.
20237 (remove_child_TAG): Clear die_parent.
20238 (reparent_child): New function abstracted from...
20239 (splice_child_die): ...here.
20240 (new_die): ICE if a DIE ends up in limbo too late.
20242 (defer_location): Remove.
20243 (add_subscript_info): Reuse DW_TAG_subrange_type if available.
20244 (fill_variable_array_bounds): New.
20245 (decl_start_label): Call fill_variable_array_bounds.
20246 (gen_formal_parameter_die): Rewrite to reuse previously generated
20248 (gen_subprogram_die): Same.
20249 (gen_variable_die): Same.
20250 (gen_const_die): Same.
20251 (gen_label_die): Same.
20252 (gen_lexical_block_die): Same.
20253 (decl_will_get_specification_p): New.
20254 (local_function_static): New.
20255 (gen_struct_or_union_type_die): Fill in variable-length fields.
20256 (gen_typedef_die): Fill in variable-length typedefs.
20257 (gen_tagged_type_die): Gracefully return on error_mark_node.
20258 Handle re-entrancy.
20259 (gen_type_die_with_usage): Handle variable-length types.
20260 Remove duplicate code for ARRAY_TYPE case.
20261 (process_scope_var): Only process imported modules during early
20263 (dwarf2out_early_global_decl): New.
20264 (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
20265 (dwarf2out_type_decl): Set early_dwarf while calling
20267 (dwarf2out_decl): Verify that we did not recreate a previously
20269 Do not return on DECL_EXTERNALs in VAR_DECLs.
20270 Abstract some code to local_function_static.
20271 (lookup_filename): Remove use of file_table_last_lookup.
20272 Gracefully exit on missing file_name.
20273 (dwarf2out_finish): Verify limbo list.
20274 Remove deferred_locations_list use.
20275 Move deferred_asm_name and limbo flushing to...
20276 (dwarf2out_early_finish): ...here. New.
20277 (dwarf2out_c_finalize): Remove set of deferred_location_list,
20278 deferred_asm_name, and file_table_last_lookup.
20279 * cgraph.h (referred_to_p): Add default argument.
20280 * cgraphunit.c (referred_to_p): Add and handle include_self
20282 (analyze_functions): Add first_time argument.
20283 Call check_global_declaration for all symbols.
20284 Call late_global_decl for nodes for moribund nodes.
20285 (finalize_compilation_unit): Add new argument to
20287 Call early_global_decl for functions.
20288 Call early_finish debug hook.
20289 * dbxout.c (dbxout_early_global_decl): New.
20290 (dbxout_late_global_decl): New. Adapted from dbxout_global_decl.
20291 (dbx_debug_hooks): Add new hooks.
20292 (xcoff_debug_hooks): Same.
20293 * debug.c (do_nothing_debug_hooks): Add early_finish field.
20294 Add early and late debug hooks.
20295 Remove global_decl hook.
20296 * debug.h (struct gcc_debug_hooks): Add early_finish,
20297 early_global_decl, and late_global_decl fields.
20298 Remove global_decl field.
20299 Document gcc_debug_hooks.
20300 * gengtype.c (output_typename): Remove.
20301 * godump.c (go_early_global_decl): New.
20302 (go_late_global_decl): New.
20303 (go_global_decl): Remove.
20304 (dump_go_spec_init): Remove global_decl. Add
20305 {early,late}_global_decl.
20306 * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
20307 (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
20308 * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
20309 (write_global_declarations): Remove.
20310 (global_decl_processing): New.
20311 * langhooks.h (struct lang_hooks_for_decls): Remove
20312 final_write_globals field.
20313 Add post_compilation_parsing_cleanups field.
20314 * passes.c (rest_of_decl_compilation): Call early_global_decl.
20315 * sdbout.c: Add early and late_global_decl hooks. Remove
20316 sdbout_global_decl hook.
20317 Add early_finish field for sdb_debug_hooks.
20318 (sdbout_global_decl): Remove.
20319 (sdbout_early_global_decl): New.
20320 (sdbout_late_global_decl): New.
20321 * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
20322 * toplev.c (check_global_declaration): Rename from
20323 check_global_declaration_1.
20324 Adapt to use symtab infrastructure.
20325 (check_global_declarations): Remove.
20326 (emit_debug_global_declarations): Remove.
20327 (compile_file): Remove call to final_write_globals langhook.
20328 Run the actual compilation process.
20329 Perform any post compilation parser cleanups.
20330 Generate late debug info.
20331 * toplev.h (check_global_declaration): New.
20332 (check_global_declaration_1): Remove.
20333 (check_global_declarations): Remove.
20334 (write_global_declarations): Remove.
20335 (emit_debug_global_declarations): Remove.
20336 (global_decl_processing): New.
20337 * tree-core.h (struct tree_block): Add DIE field.
20338 * tree.h (BLOCK_DIE): New.
20339 * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
20341 (vmsdbgout_early_global_decl): New.
20342 (vmsdbgout_late_global_decl): New.
20343 Add early_finish debug hook field to vmsdbg_debug_hooks.
20344 Remove vmsdbgout_decl to vmsdbgout_function_decl.
20345 Add early and late_global_decl debug hooks.
20347 2015-06-05 Julian Brown <julian@codesourcery.com>
20348 Sandra Loosemore <sandra@codesourcery.com>
20350 * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
20351 * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
20352 to print-sysroot-suffix.sh script.
20354 2015-06-05 Tom de Vries <tom@codesourcery.com>
20356 merge from gomp4 branch:
20357 2015-05-28 Tom de Vries <tom@codesourcery.com>
20359 PR tree-optimization/65443
20360 * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
20361 (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
20362 (try_transform_to_exit_first_loop_alt): New function.
20363 (transform_to_exit_first_loop): Use
20364 try_transform_to_exit_first_loop_alt.
20366 2015-06-05 James Greenhalgh <james.greenhalgh@arm.com>
20368 * builtins.c (expand_builtin_atomic_compare_exchange): Call
20369 emit_cmp_and_jump_insns with the mode of target.
20371 2015-06-05 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
20373 * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
20375 2015-06-04 DJ Delorie <dj@redhat.com>
20377 * config/msp430/msp430.md (movsi_s): New. Special case for
20378 storing a 20-bit symbol into a 32-bit register.
20379 * config/msp430/msp430.c (msp430_subreg): Add support for it.
20380 * config/msp430/predicates.md (msp430_symbol_operand): New.
20382 2015-06-04 Sriraman Tallam <tmsriram@google.com>
20384 * c-family/c-common.c (noplt): New attribute.
20385 (handle_noplt_attribute): New handler.
20386 * calls.c (prepare_call_address): Check for noplt
20388 * config/i386/i386.c (ix86_expand_call): Check
20389 for noplt attribute.
20390 (ix86_nopic_noplt_attribute_p): New function.
20391 (ix86_output_call_insn): Output indirect call for non-pic
20393 * doc/extend.texi (noplt): Document new attribute.
20394 * doc/invoke.texi: Document new attribute.
20396 2015-06-04 Andrew MacLeod <amacleod@redhat.com>
20398 * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
20399 real.h, and fixed-value.h when included in host source files.
20400 * double-int.h: Remove redundant #includes listed above.
20401 * fixed-value.h: Likewise.
20402 * real.h: Likewise.
20403 * wide-int.h: Likewise.
20404 * inchash.h: Likewise.
20405 * rtl.h: Add some include files When included from a generator file.
20406 * target.h: Remove wide-int.h and insn-modes.h from the include list.
20407 * internal-fn.h: Don't include coretypes.h.
20408 * alias.c: Adjust includes for restructured coretypes.h.
20409 * asan.c: Likewise.
20410 * attribs.c: Likewise.
20411 * auto-inc-dec.c: Likewise.
20412 * auto-profile.c: Likewise.
20413 * bb-reorder.c: Likewise.
20414 * bt-load.c: Likewise.
20415 * builtins.c: Likewise.
20416 * caller-save.c: Likewise.
20417 * calls.c: Likewise.
20418 * ccmp.c: Likewise.
20420 * cfganal.c: Likewise.
20421 * cfgbuild.c: Likewise.
20422 * cfgcleanup.c: Likewise.
20423 * cfgexpand.c: Likewise.
20424 * cfghooks.c: Likewise.
20425 * cfgloop.c: Likewise.
20426 * cfgloop.h: Likewise.
20427 * cfgloopanal.c: Likewise.
20428 * cfgloopmanip.c: Likewise.
20429 * cfgrtl.c: Likewise.
20430 * cgraph.c: Likewise.
20431 * cgraphbuild.c: Likewise.
20432 * cgraphclones.c: Likewise.
20433 * cgraphunit.c: Likewise.
20434 * cilk-common.c: Likewise.
20435 * combine-stack-adj.c: Likewise.
20436 * combine.c: Likewise.
20437 * compare-elim.c: Likewise.
20438 * convert.c: Likewise.
20439 * coverage.c: Likewise.
20440 * cppbuiltin.c: Likewise.
20441 * cprop.c: Likewise.
20443 * cselib.c: Likewise.
20444 * data-streamer-in.c: Likewise.
20445 * data-streamer-out.c: Likewise.
20446 * data-streamer.c: Likewise.
20447 * dbxout.c: Likewise.
20450 * debug.c: Likewise.
20451 * df-core.c: Likewise.
20452 * df-problems.c: Likewise.
20453 * df-scan.c: Likewise.
20456 * dojump.c: Likewise.
20457 * dominance.c: Likewise.
20458 * domwalk.c: Likewise.
20459 * double-int.c: Likewise.
20461 * dumpfile.c: Likewise.
20462 * dwarf2asm.c: Likewise.
20463 * dwarf2cfi.c: Likewise.
20464 * dwarf2out.c: Likewise.
20465 * dwarf2out.h: Likewise.
20466 * emit-rtl.c: Likewise.
20467 * et-forest.c: Likewise.
20468 * except.c: Likewise.
20469 * explow.c: Likewise.
20470 * expmed.c: Likewise.
20471 * expr.c: Likewise.
20472 * final.c: Likewise.
20473 * fixed-value.c: Likewise.
20474 * fold-const.c: Likewise.
20475 * function.c: Likewise.
20476 * fwprop.c: Likewise.
20477 * gcc-plugin.h: Likewise.
20478 * gcse.c: Likewise.
20479 * generic-match-head.c: Likewise.
20480 * ggc-page.c: Likewise.
20481 * gimple-builder.c: Likewise.
20482 * gimple-expr.c: Likewise.
20483 * gimple-fold.c: Likewise.
20484 * gimple-iterator.c: Likewise.
20485 * gimple-low.c: Likewise.
20486 * gimple-match-head.c: Likewise.
20487 * gimple-pretty-print.c: Likewise.
20488 * gimple-ssa-isolate-paths.c: Likewise.
20489 * gimple-ssa-strength-reduction.c: Likewise.
20490 * gimple-streamer-in.c: Likewise.
20491 * gimple-streamer-out.c: Likewise.
20492 * gimple-streamer.h: Likewise.
20493 * gimple-walk.c: Likewise.
20494 * gimple.c: Likewise.
20495 * gimplify-me.c: Likewise.
20496 * gimplify.c: Likewise.
20497 * godump.c: Likewise.
20498 * graph.c: Likewise.
20499 * graphite-blocking.c: Likewise.
20500 * graphite-dependences.c: Likewise.
20501 * graphite-interchange.c: Likewise.
20502 * graphite-isl-ast-to-gimple.c: Likewise.
20503 * graphite-optimize-isl.c: Likewise.
20504 * graphite-poly.c: Likewise.
20505 * graphite-scop-detection.c: Likewise.
20506 * graphite-sese-to-poly.c: Likewise.
20507 * graphite.c: Likewise.
20508 * haifa-sched.c: Likewise.
20509 * hooks.h: Likewise.
20510 * hw-doloop.c: Likewise.
20511 * ifcvt.c: Likewise.
20512 * incpath.c: Likewise.
20513 * init-regs.c: Likewise.
20514 * internal-fn.c: Likewise.
20515 * ipa-chkp.c: Likewise.
20516 * ipa-comdats.c: Likewise.
20517 * ipa-cp.c: Likewise.
20518 * ipa-devirt.c: Likewise.
20519 * ipa-icf-gimple.c: Likewise.
20520 * ipa-icf.c: Likewise.
20521 * ipa-inline-analysis.c: Likewise.
20522 * ipa-inline-transform.c: Likewise.
20523 * ipa-inline.c: Likewise.
20524 * ipa-polymorphic-call.c: Likewise.
20525 * ipa-profile.c: Likewise.
20526 * ipa-prop.c: Likewise.
20527 * ipa-pure-const.c: Likewise.
20528 * ipa-ref.c: Likewise.
20529 * ipa-reference.c: Likewise.
20530 * ipa-split.c: Likewise.
20531 * ipa-utils.c: Likewise.
20532 * ipa-visibility.c: Likewise.
20534 * ira-build.c: Likewise.
20535 * ira-color.c: Likewise.
20536 * ira-conflicts.c: Likewise.
20537 * ira-costs.c: Likewise.
20538 * ira-emit.c: Likewise.
20539 * ira-lives.c: Likewise.
20541 * jump.c: Likewise.
20542 * langhooks.c: Likewise.
20544 * loop-doloop.c: Likewise.
20545 * loop-init.c: Likewise.
20546 * loop-invariant.c: Likewise.
20547 * loop-iv.c: Likewise.
20548 * loop-unroll.c: Likewise.
20549 * lower-subreg.c: Likewise.
20550 * lra-assigns.c: Likewise.
20551 * lra-coalesce.c: Likewise.
20552 * lra-constraints.c: Likewise.
20553 * lra-eliminations.c: Likewise.
20554 * lra-lives.c: Likewise.
20555 * lra-remat.c: Likewise.
20556 * lra-spills.c: Likewise.
20558 * lto-cgraph.c: Likewise.
20559 * lto-compress.c: Likewise.
20560 * lto-opts.c: Likewise.
20561 * lto-section-in.c: Likewise.
20562 * lto-section-out.c: Likewise.
20563 * lto-streamer-in.c: Likewise.
20564 * lto-streamer-out.c: Likewise.
20565 * lto-streamer.c: Likewise.
20567 * mode-switching.c: Likewise.
20568 * modulo-sched.c: Likewise.
20569 * omega.c: Likewise.
20570 * omp-low.c: Likewise.
20571 * optabs.c: Likewise.
20572 * opts-global.c: Likewise.
20573 * passes.c: Likewise.
20574 * plugin.c: Likewise.
20575 * postreload-gcse.c: Likewise.
20576 * postreload.c: Likewise.
20577 * predict.c: Likewise.
20578 * print-rtl.c: Likewise.
20579 * print-tree.c: Likewise.
20580 * profile.c: Likewise.
20581 * real.c: Likewise.
20582 * realmpfr.c: Likewise.
20583 * realmpfr.h: Likewise.
20584 * recog.c: Likewise.
20586 * reg-stack.c: Likewise.
20587 * regcprop.c: Likewise.
20588 * reginfo.c: Likewise.
20589 * regrename.c: Likewise.
20590 * regs.h: Likewise.
20591 * regstat.c: Likewise.
20592 * reload.c: Likewise.
20593 * reload1.c: Likewise.
20594 * reorg.c: Likewise.
20595 * resource.c: Likewise.
20596 * rtl-chkp.c: Likewise.
20597 * rtlanal.c: Likewise.
20598 * rtlhooks.c: Likewise.
20599 * sanopt.c: Likewise.
20600 * sched-deps.c: Likewise.
20601 * sched-ebb.c: Likewise.
20602 * sched-rgn.c: Likewise.
20603 * sched-vis.c: Likewise.
20604 * sdbout.c: Likewise.
20605 * sel-sched-dump.c: Likewise.
20606 * sel-sched-ir.c: Likewise.
20607 * sel-sched.c: Likewise.
20608 * sese.c: Likewise.
20609 * shrink-wrap.c: Likewise.
20610 * shrink-wrap.h: Likewise.
20611 * simplify-rtx.c: Likewise.
20612 * stack-ptr-mod.c: Likewise.
20613 * statistics.c: Likewise.
20614 * stmt.c: Likewise.
20615 * stor-layout.c: Likewise.
20616 * store-motion.c: Likewise.
20617 * stringpool.c: Likewise.
20618 * symtab.c: Likewise.
20619 * target-globals.c: Likewise.
20620 * targhooks.c: Likewise.
20621 * toplev.c: Likewise.
20622 * tracer.c: Likewise.
20623 * trans-mem.c: Likewise.
20624 * tree-affine.c: Likewise.
20625 * tree-affine.h: Likewise.
20626 * tree-browser.c: Likewise.
20627 * tree-call-cdce.c: Likewise.
20628 * tree-cfg.c: Likewise.
20629 * tree-cfgcleanup.c: Likewise.
20630 * tree-chkp-opt.c: Likewise.
20631 * tree-chkp.c: Likewise.
20632 * tree-chrec.c: Likewise.
20633 * tree-complex.c: Likewise.
20634 * tree-data-ref.c: Likewise.
20635 * tree-dfa.c: Likewise.
20636 * tree-diagnostic.c: Likewise.
20637 * tree-dump.c: Likewise.
20638 * tree-eh.c: Likewise.
20639 * tree-emutls.c: Likewise.
20640 * tree-if-conv.c: Likewise.
20641 * tree-inline.c: Likewise.
20642 * tree-into-ssa.c: Likewise.
20643 * tree-iterator.c: Likewise.
20644 * tree-loop-distribution.c: Likewise.
20645 * tree-nested.c: Likewise.
20646 * tree-nrv.c: Likewise.
20647 * tree-object-size.c: Likewise.
20648 * tree-outof-ssa.c: Likewise.
20649 * tree-parloops.c: Likewise.
20650 * tree-phinodes.c: Likewise.
20651 * tree-predcom.c: Likewise.
20652 * tree-pretty-print.c: Likewise.
20653 * tree-pretty-print.h: Likewise.
20654 * tree-profile.c: Likewise.
20655 * tree-scalar-evolution.c: Likewise.
20656 * tree-sra.c: Likewise.
20657 * tree-ssa-address.c: Likewise.
20658 * tree-ssa-alias.c: Likewise.
20659 * tree-ssa-ccp.c: Likewise.
20660 * tree-ssa-coalesce.c: Likewise.
20661 * tree-ssa-copy.c: Likewise.
20662 * tree-ssa-copyrename.c: Likewise.
20663 * tree-ssa-dce.c: Likewise.
20664 * tree-ssa-dom.c: Likewise.
20665 * tree-ssa-dse.c: Likewise.
20666 * tree-ssa-forwprop.c: Likewise.
20667 * tree-ssa-ifcombine.c: Likewise.
20668 * tree-ssa-live.c: Likewise.
20669 * tree-ssa-loop-ch.c: Likewise.
20670 * tree-ssa-loop-im.c: Likewise.
20671 * tree-ssa-loop-ivcanon.c: Likewise.
20672 * tree-ssa-loop-ivopts.c: Likewise.
20673 * tree-ssa-loop-manip.c: Likewise.
20674 * tree-ssa-loop-niter.c: Likewise.
20675 * tree-ssa-loop-prefetch.c: Likewise.
20676 * tree-ssa-loop-unswitch.c: Likewise.
20677 * tree-ssa-loop.c: Likewise.
20678 * tree-ssa-loop.h: Likewise.
20679 * tree-ssa-math-opts.c: Likewise.
20680 * tree-ssa-operands.c: Likewise.
20681 * tree-ssa-phiopt.c: Likewise.
20682 * tree-ssa-phiprop.c: Likewise.
20683 * tree-ssa-pre.c: Likewise.
20684 * tree-ssa-propagate.c: Likewise.
20685 * tree-ssa-reassoc.c: Likewise.
20686 * tree-ssa-sccvn.c: Likewise.
20687 * tree-ssa-scopedtables.c: Likewise.
20688 * tree-ssa-sink.c: Likewise.
20689 * tree-ssa-strlen.c: Likewise.
20690 * tree-ssa-structalias.c: Likewise.
20691 * tree-ssa-tail-merge.c: Likewise.
20692 * tree-ssa-ter.c: Likewise.
20693 * tree-ssa-threadedge.c: Likewise.
20694 * tree-ssa-threadupdate.c: Likewise.
20695 * tree-ssa-uncprop.c: Likewise.
20696 * tree-ssa-uninit.c: Likewise.
20697 * tree-ssa.c: Likewise.
20698 * tree-ssanames.c: Likewise.
20699 * tree-stdarg.c: Likewise.
20700 * tree-streamer-in.c: Likewise.
20701 * tree-streamer-out.c: Likewise.
20702 * tree-streamer.c: Likewise.
20703 * tree-switch-conversion.c: Likewise.
20704 * tree-tailcall.c: Likewise.
20705 * tree-vect-data-refs.c: Likewise.
20706 * tree-vect-generic.c: Likewise.
20707 * tree-vect-loop-manip.c: Likewise.
20708 * tree-vect-loop.c: Likewise.
20709 * tree-vect-patterns.c: Likewise.
20710 * tree-vect-slp.c: Likewise.
20711 * tree-vect-stmts.c: Likewise.
20712 * tree-vectorizer.c: Likewise.
20713 * tree-vrp.c: Likewise.
20714 * tree.c: Likewise.
20715 * tsan.c: Likewise.
20716 * ubsan.c: Likewise.
20717 * valtrack.c: Likewise.
20718 * value-prof.c: Likewise.
20719 * var-tracking.c: Likewise.
20720 * varasm.c: Likewise.
20721 * varpool.c: Likewise.
20722 * vmsdbgout.c: Likewise.
20723 * vtable-verify.c: Likewise.
20725 * wide-int-print.cc: Likewise.
20726 * wide-int-print.h: Likewise.
20727 * wide-int.cc: Likewise.
20728 * xcoffout.c: Likewise.
20729 * config/aarch64/aarch64-builtins.c: Likewise.
20730 * config/aarch64/aarch64.c: Likewise.
20731 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
20732 * config/alpha/alpha.c: Likewise.
20733 * config/arc/arc.c: Likewise.
20734 * config/arm/aarch-common.c: Likewise.
20735 * config/arm/arm-builtins.c: Likewise.
20736 * config/arm/arm-c.c: Likewise.
20737 * config/arm/arm.c: Likewise.
20738 * config/avr/avr-c.c: Likewise.
20739 * config/avr/avr-log.c: Likewise.
20740 * config/avr/avr.c: Likewise.
20741 * config/bfin/bfin.c: Likewise.
20742 * config/c6x/c6x.c: Likewise.
20743 * config/cr16/cr16.c: Likewise.
20744 * config/cris/cris.c: Likewise.
20745 * config/darwin-c.c: Likewise.
20746 * config/darwin.c: Likewise.
20747 * config/default-c.c: Likewise.
20748 * config/epiphany/epiphany.c: Likewise.
20749 * config/epiphany/mode-switch-use.c: Likewise.
20750 * config/epiphany/resolve-sw-modes.c: Likewise.
20751 * config/fr30/fr30.c: Likewise.
20752 * config/frv/frv.c: Likewise.
20753 * config/ft32/ft32.c: Likewise.
20754 * config/glibc-c.c: Likewise.
20755 * config/h8300/h8300.c: Likewise.
20756 * config/i386/i386-c.c: Likewise.
20757 * config/i386/i386.c: Likewise.
20758 * config/i386/msformat-c.c: Likewise.
20759 * config/i386/winnt-cxx.c: Likewise.
20760 * config/i386/winnt-stubs.c: Likewise.
20761 * config/i386/winnt.c: Likewise.
20762 * config/ia64/ia64-c.c: Likewise.
20763 * config/ia64/ia64.c: Likewise.
20764 * config/iq2000/iq2000.c: Likewise.
20765 * config/lm32/lm32.c: Likewise.
20766 * config/m32c/m32c-pragma.c: Likewise.
20767 * config/m32c/m32c.c: Likewise.
20768 * config/m32r/m32r.c: Likewise.
20769 * config/m68k/m68k.c: Likewise.
20770 * config/mcore/mcore.c: Likewise.
20771 * config/mep/mep-pragma.c: Likewise.
20772 * config/mep/mep.c: Likewise.
20773 * config/microblaze/microblaze-c.c: Likewise.
20774 * config/microblaze/microblaze.c: Likewise.
20775 * config/mips/mips.c: Likewise.
20776 * config/mmix/mmix.c: Likewise.
20777 * config/mn10300/mn10300.c: Likewise.
20778 * config/moxie/moxie.c: Likewise.
20779 * config/msp430/msp430-c.c: Likewise.
20780 * config/msp430/msp430.c: Likewise.
20781 * config/nds32/nds32-cost.c: Likewise.
20782 * config/nds32/nds32-fp-as-gp.c: Likewise.
20783 * config/nds32/nds32-intrinsic.c: Likewise.
20784 * config/nds32/nds32-isr.c: Likewise.
20785 * config/nds32/nds32-md-auxiliary.c: Likewise.
20786 * config/nds32/nds32-memory-manipulation.c: Likewise.
20787 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
20788 * config/nds32/nds32-predicates.c: Likewise.
20789 * config/nds32/nds32.c: Likewise.
20790 * config/nios2/nios2.c: Likewise.
20791 * config/nvptx/nvptx.c: Likewise.
20792 * config/pa/pa.c: Likewise.
20793 * config/pdp11/pdp11.c: Likewise.
20794 * config/rl78/rl78-c.c: Likewise.
20795 * config/rl78/rl78.c: Likewise.
20796 * config/rs6000/rs6000-c.c: Likewise.
20797 * config/rs6000/rs6000.c: Likewise.
20798 * config/rx/rx.c: Likewise.
20799 * config/s390/s390-c.c: Likewise.
20800 * config/s390/s390.c: Likewise.
20801 * config/sh/sh-c.c: Likewise.
20802 * config/sh/sh-mem.cc: Likewise.
20803 * config/sh/sh.c: Likewise.
20804 * config/sh/sh_optimize_sett_clrt.cc: Likewise.
20805 * config/sh/sh_treg_combine.cc: Likewise.
20806 * config/sol2-c.c: Likewise.
20807 * config/sol2-cxx.c: Likewise.
20808 * config/sol2-stubs.c: Likewise.
20809 * config/sol2.c: Likewise.
20810 * config/sparc/sparc-c.c: Likewise.
20811 * config/sparc/sparc.c: Likewise.
20812 * config/spu/spu-c.c: Likewise.
20813 * config/spu/spu.c: Likewise.
20814 * config/stormy16/stormy16.c: Likewise.
20815 * config/tilegx/mul-tables.c: Likewise.
20816 * config/tilegx/tilegx-c.c: Likewise.
20817 * config/tilegx/tilegx.c: Likewise.
20818 * config/tilepro/mul-tables.c: Likewise.
20819 * config/tilepro/tilepro-c.c: Likewise.
20820 * config/tilepro/tilepro.c: Likewise.
20821 * config/v850/v850-c.c: Likewise.
20822 * config/v850/v850.c: Likewise.
20823 * config/vax/vax.c: Likewise.
20824 * config/visium/visium.c: Likewise.
20825 * config/vms/vms-c.c: Likewise.
20826 * config/vms/vms.c: Likewise.
20827 * config/vxworks.c: Likewise.
20828 * config/winnt-c.c: Likewise.
20829 * config/xtensa/xtensa.c: Likewise.
20830 * common/config/bfin/bfin-common.c: Likewise.
20832 2015-06-04 Jan Hubicka <hubicka@ucw.cz>
20834 * tree.h (tree_code_for_canonical_type_merging): New function.
20835 * tree.c (gimple_canonical_types_compatible_p): Use
20836 tree_code_for_canonical_type_merging..
20838 2015-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20842 * doc/tm.texi: Regenerate.
20843 * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
20844 * target.def (TARGET_RELAXED_ORDERING): Likewise.
20845 * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
20846 * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
20847 * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
20848 * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
20849 * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
20850 * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
20851 * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
20853 2015-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20855 * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
20856 register fma steering pass.
20857 * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
20858 AARCH64_TUNE_FMA_STEERING.
20860 2015-06-03 Jan Hubicka <hubicka@ucw.cz>
20862 * tree.c (verify_type_variant): Verify that type and variant is
20864 (gimple_canonical_types_compatible_p): Look for main variants.
20866 2015-06-03 Michael Meissner <meissner@linux.vnet.ibm.com>
20868 * config.gcc (powerpc*-*-*): Add support for a new configure
20869 option --with-advance-toolchain=<xxx> which overrides using the
20870 default header files, libraries and dynamic linker.
20872 * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
20873 specs to support the configure --with-advance-toolchain=<xxx>
20875 (INCLUDE_EXTRA_SPEC): Likewise.
20876 (LINK_OS_EXTRA_SPEC32): Likewise.
20877 (LINK_OK_EXTRA_SPEC64): Likewise.
20878 (LINK_OS_NEW_DTAGS_SPEC): Likewise.
20879 (DYNAMIC_LINKER_PREFIX): Likewise.
20880 (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
20882 (GLIBC_DYNAMIC_LINKER32): Likewise.
20883 (GLIBC_DYNAMIC_LINKER64): Likewise.
20884 (LINK_OS_LINUX_SPEC32): Likewise.
20885 (LINK_OS_LINUX_SPEC64): Likewise.
20887 * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
20888 configuration option.
20890 2015-06-03 Uros Bizjak <ubizjak@gmail.com>
20893 * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
20894 to determine current function ABI.
20895 (ix86_function_value_regno_p): Ditto.
20897 2015-06-03 Martin Liska <mliska@suse.cz>
20899 * alloc-pool.h (struct pool_usage): Correct GNU coding style.
20900 * bitmap.h (struct bitmap_usage): Likewise.
20901 * ggc-common.c (struct ggc_usage): Likewise.
20902 * mem-stats.h (struct mem_location): Likewise.
20903 (struct mem_usage): Likewise.
20904 * vec.c (struct vec_usage): Likewise.
20906 2015-06-03 Benigno B. Junior <bbj@gentoo.org>
20908 * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
20911 2015-06-02 Andres Tiraboschi <andres.tiraboschi@tallertechnologies.com>
20913 * doc/plugins.texi (enum plugin_event): New event.
20914 * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
20915 and PLUGIN_FINISH_FUNCTION.
20916 * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
20917 (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
20919 2015-06-03 Richard Biener <rguenther@suse.de>
20921 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
20922 compute GROUP_GAP for the first element.
20923 * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
20926 2015-06-03 Nick Clifton <nickc@redhat.com>
20928 * config/rl78/rl78-real.md: Add peepholes to avoid a register
20929 copy when calling a function.
20930 * config/rl78/rl78.c (need_to_save): Do not push the frame
20931 pointer in an interrupt handler prologue if it is never used.
20933 2015-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20935 * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
20937 2015-06-03 Ilya Enkovich <ilya.enkovich@intel.com>
20939 * ipa-chkp.c (chkp_maybe_create_clone): Create alias
20940 reference when cloning alias node.
20942 2015-06-03 Martin Liska <mliska@suse.cz>
20944 * alloc-pool.h (struct pool_usage): Correct space padding.
20945 * ggc-page.c (ggc_print_statistics): Align columns in a report.
20946 * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
20947 * tree.c (dump_tree_statistics): Align columns in a report.
20949 2015-06-03 Martin Liska <mliska@suse.cz>
20951 * alloc-pool.c (allocate_pool_descriptor): Remove.
20952 (struct pool_output_info): Likewise.
20953 (print_alloc_pool_statistics): Likewise.
20954 (dump_alloc_pool_statistics): Likewise.
20955 * alloc-pool.h (struct pool_usage): New struct.
20956 (pool_allocator::initialize): Change usage of memory statistics
20957 to a new interface.
20958 (pool_allocator::release): Likewise.
20959 (pool_allocator::allocate): Likewise.
20960 (pool_allocator::remove): Likewise.
20961 * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
20962 for a pool allocator.
20963 * mem-stats.h (struct mem_location): Add new ctor.
20964 (struct mem_usage): Add counter for number of
20966 (mem_alloc_description::register_descriptor): New overload of
20967 * mem-stats.h (mem_location::to_string): New function.
20968 * bitmap.h (struct bitmap_usage): Use this new function.
20969 * ggc-common.c (struct ggc_usage): Likewise.
20972 2015-06-03 Richard Sandiford <richard.sandiford@arm.com>
20974 * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
20975 of GCC_INSN_FLAGS_H block.
20977 2015-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
20979 * explow.c (plus_constant): Update check after force_const_mem call
20980 to see if the value returned is not a NULL_RTX.
20982 2015-06-03 Ilya Enkovich <ilya.enkovich@intel.com>
20984 * ipa.c (symbol_table::remove_unreachable_nodes): Don't
20985 remove instumentation thunks calling reachable functions.
20986 * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
20987 * lto/lto-partition.c (privatize_symbol_name_1): New.
20988 (privatize_symbol_name): Privatize both decl and orig_decl
20989 names for instrumented functions.
20990 * cgraph.c (cgraph_node::verify_node): Add transparent
20991 alias chain check for instrumented node.
20993 2015-06-03 Marek Polacek <polacek@redhat.com>
20997 * tree.c (attribute_value_equal): Handle attribute format.
20998 (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
21000 2015-06-03 Richard Biener <rguenther@suse.de>
21002 PR tree-optimization/63916
21003 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
21004 Forward-propagate non-invariant addresses by splicing their
21005 reference ops if the result isn't going to be used by PRE.
21006 (vn_reference_lookup_3): Remove pointless assert.
21008 2015-06-03 Richard Biener <rguenther@suse.de>
21010 PR tree-optimization/66375
21011 * tree-scalar-evolution.c (follow_ssa_edge_binary): First
21012 add to the evolution before following SSA edges.
21014 2015-06-03 Bin Cheng <bin.cheng@arm.com>
21016 * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
21017 (dump_use, dump_cand, find_induction_variables): Pass new argument
21019 (record_use): Preserve the ssa name information in IV.
21021 2015-06-03 Richard Sandiford <richard.sandiford@arm.com>
21023 * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
21025 (add_mode_tests): Don't add mode tests if the predicate only
21026 accepts scalar constant integers. Otherwise, allow the mode
21027 of "op" to be VOIDmode if the predicate does accept such integers.
21029 2015-06-02 Jim Wilson <jim.wilson@linaro.org>
21032 * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
21033 !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
21034 (aarch64_secondary_reload): Likewise
21035 (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
21037 (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
21040 2015-06-03 Kugan Vivekanandarajah <kuganv@linaro.org>
21041 Zhenqiang Chen <zhenqiang.chen@linaro.org>
21044 * cprop.c (try_replace_reg): Check cost of constants before propagating.
21046 2015-06-02 Michael Meissner <meissner@linux.vnet.ibm.com>
21048 * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
21049 provide access to the IBM extended double floating point mode if
21050 long double is IEEE 128-bit floating point.
21051 (KFmode): Define KFmode to provide access to IEEE 128-bit floating
21052 point if long double is the IBM extended double type.
21054 * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
21055 enable adding IEEE 128-bit floating point support.
21056 (-mfloat128-software): Likewise.
21057 (-mfloat128-sw): Likewise.
21059 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
21060 128-bit floating point types to occupy any register if
21061 -mlong-double-64. Do not allow use of IFmode/KFmode unless
21062 -mfloat128-software is enabled.
21063 (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
21065 (rs6000_option_override_internal): Add -mfloat128-* support.
21066 (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
21068 * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
21069 and float128 type nodes.
21070 (ieee128_float_type_node): Likewise.
21071 (ibm128_float_type_node): Likewise.
21073 2015-06-02 Szabolcs Nagy <szabolcs.nagy@arm.com>
21076 * config/aarch64/geniterators.sh: Rewrite in awk.
21078 2015-06-02 Martin Liska <mliska@suse.cz>
21080 * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
21081 values to avoid -Wmaybe-uninitialized errors.
21083 2015-06-02 Richard Biener <rguenther@suse.de>
21086 * dwarf2out.c (lookup_context_die): New function.
21087 (resolve_addr): Avoid forcing a full DIE for the
21088 target of a DW_TAG_GNU_call_site during late compilation.
21089 Instead create a stub DIE without a type if we have a
21090 context DIE present.
21092 2015-06-02 Uros Bizjak <ubizjak@gmail.com>
21094 * df-scan.c (df_scan_start_dump): Add space between regno and regname.
21096 2015-06-02 Bin Cheng <bin.cheng@arm.com>
21098 PR tree-optimization/48052
21099 * cfgloop.h (struct control_iv): New.
21100 (struct loop): New field control_ivs.
21101 * tree-ssa-loop-niter.c : Include "stor-layout.h".
21102 (number_of_iterations_lt): Set no_overflow information.
21103 (number_of_iterations_exit): Init control iv in niter struct.
21104 (record_control_iv): New.
21105 (estimate_numbers_of_iterations_loop): Call record_control_iv.
21106 (loop_exits_before_overflow): New. Interface factored out of
21107 scev_probably_wraps_p.
21108 (scev_probably_wraps_p): Factor loop niter related code into
21109 loop_exits_before_overflow.
21110 (free_numbers_of_iterations_estimates_loop): Free control ivs.
21111 * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
21113 2015-06-02 Eric Botcazou <ebotcazou@adacore.com>
21115 * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
21116 the target doesn't belong to the current function.
21118 2015-06-02 Marek Polacek <polacek@redhat.com>
21120 PR middle-end/66345
21121 * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
21122 get_maxval_strlen does not produce an INTEGER_CST.
21124 2015-06-02 Richard Sandiford <richard.sandiford@arm.com>
21126 * config/arc/constraints.md: Use lower-case names in match_code.
21127 * config/mmix/constraints.md: Likewise.
21129 2015-06-02 Richard Biener <rguenther@suse.de>
21131 PR tree-optimization/65961
21132 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
21133 check and clarify dump message.
21134 (vect_build_slp_tree): If all children are built up from scalars
21135 build up the parent from scalars instead.
21136 * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
21138 2015-06-02 Jan Kratochvil <jan.kratochvil@redhat.com>
21141 * gdbhooks.py: Use int(...) instead of long(...). Use print(...)
21142 instead of print ... .
21144 2015-06-02 Alan Modra <amodra@gmail.com>
21146 * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
21149 2015-06-02 Bin Cheng <bin.cheng@arm.com>
21151 PR tree-optimization/52563
21152 PR tree-optimization/62173
21153 * tree-ssa-loop-ivopts.c (struct iv): New field. Reorder fields.
21154 (alloc_iv, set_iv): New parameter.
21155 (determine_biv_step): Delete.
21156 (find_bivs): Inline original determine_biv_step. Pass new
21157 argument to set_iv.
21158 (idx_find_step): Use no_overflow information for conversion.
21159 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
21160 resolve_mixers handle folded_casts.
21161 (instantiate_scev_name): Change bool parameter to bool pointer.
21162 (instantiate_scev_poly, instantiate_scev_binary): Ditto.
21163 (instantiate_array_ref, instantiate_scev_not): Ditto.
21164 (instantiate_scev_3, instantiate_scev_2): Ditto.
21165 (instantiate_scev_1, instantiate_scev_r): Ditto.
21166 (instantiate_scev_convert, ): Change parameter. Pass argument
21167 to chrec_convert_aggressive.
21168 (instantiate_scev): Change argument.
21169 (resolve_mixers): New parameter and set it.
21170 (scev_const_prop): New argument.
21171 * tree-scalar-evolution.h (resolve_mixers): New parameter.
21172 * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
21174 (chrec_convert): New parameter. Move definition below.
21175 (chrec_convert_aggressive): New parameter and set it. Call
21176 convert_affine_scev.
21177 * tree-chrec.h (chrec_convert): New parameter.
21178 (chrec_convert_aggressive): Ditto.
21180 2015-06-01 Eric Botcazou <ebotcazou@adacore.com>
21182 * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
21183 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
21184 the LHS of a no-return call if its type has variable size.
21185 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
21186 * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
21188 2015-06-01 Andreas Tobler <andreast@gcc.gnu.org>
21190 * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
21191 * config.in: Regenerate.
21193 2015-06-01 Yuri Rumyantsev <ysrumyan@gmail.com>
21195 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
21196 consecutive accesses within outer-loop with force_vectorize
21197 for references with zero step in inner-loop.
21199 2015-06-01 Vidya Praveen <vidyapraveen@arm.com>
21201 * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
21202 rather than from gcc/build directory.
21204 2015-06-01 Matthew Wahab <matthew.wahab@arm.com>
21207 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
21208 for __sync memory models, emit initial loads and final barriers as
21211 2015-06-01 Matthew Wahab <matthew.wahab@arm.com>
21214 * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
21215 (aarch64_split_atomic_op): Check for __sync memory models, emit
21216 appropriate initial loads and final barriers.
21218 2015-06-01 Vidya Praveen <vidyapraveen@arm.com>
21220 * Makefile.in: Fix gcov dependencies that should
21221 not point to a build folder.
21223 2015-06-01 Richard Biener <rguenther@suse.de>
21226 2015-05-29 Richard Biener <rguenther@suse.de>
21228 PR tree-optimization/66314
21229 * tree-ssa-threadupdate.c (create_block_for_threading): Add
21230 parameter that says which loop the new block belongs to.
21231 (ssa_create_duplicates): Blocks duplicated for the threaded
21232 path belong to the loop of the thread destination.
21234 2015-06-01 Martin Liska <mliska@suse.cz>
21236 * sched-deps.c: Include pool-alloc.h before
21237 cselib.h header file is included.
21239 2015-06-01 Richard Biener <rguenther@suse.de>
21241 * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
21244 2015-06-01 Martin Liska <mliska@suse.cz>
21246 * alloc-pool.h: Add ATTRIBUTE_UNUSED for
21247 a function local variable.
21249 2015-06-01 Martin Liska <mliska@suse.cz>
21251 * alloc-pool.c (create_alloc_pool): Remove.
21252 (empty_alloc_pool): Likewise.
21253 (free_alloc_pool): Likewise.
21254 (free_alloc_pool_if_empty): Likewise.
21255 (pool_alloc): Likewise.
21256 (pool_free): Likewise.
21257 * alloc-pool.h: Remove old declarations.
21259 2015-06-01 Martin Liska <mliska@suse.cz>
21261 * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
21262 (ira_create_object): Likewise.
21263 (ira_create_allocno): Likewise.
21264 (ira_create_live_range): Likewise.
21265 (copy_live_range): Likewise.
21266 (ira_finish_live_range): Likewise.
21267 (ira_free_allocno_costs): Likewise.
21268 (finish_allocno): Likewise.
21269 (finish_allocnos): Likewise.
21270 (initiate_prefs): Likewise.
21271 (ira_create_pref): Likewise.
21272 (finish_pref): Likewise.
21273 (finish_prefs): Likewise.
21274 (initiate_copies): Likewise.
21275 (ira_create_copy): Likewise.
21276 (finish_copy): Likewise.
21277 (finish_copies): Likewise.
21278 (finish_prefs): Likewise.
21280 2015-06-01 Martin Liska <mliska@suse.cz>
21282 * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
21283 (allocate_and_init_ipcp_value): Likewise.
21284 (ipcp_lattice::add_value): Likewise.
21285 (merge_agg_lats_step): Likewise.
21286 (ipcp_driver): Likewise.
21287 * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
21288 (ipa_free_all_structures_after_iinln): Likewise.
21289 * ipa-prop.h: Likewise.
21291 2015-06-01 Martin Liska <mliska@suse.cz>
21293 * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
21295 (set_hint_predicate): Likewise.
21296 (inline_summary_alloc): Likewise.
21297 (reset_inline_edge_summary): Likewise.
21298 (reset_inline_summary): Likewise.
21299 (set_cond_stmt_execution_predicate): Likewise.
21300 (set_switch_stmt_execution_predicate): Likewise.
21301 (compute_bb_predicates): Likewise.
21302 (estimate_function_body_sizes): Likewise.
21303 (inline_free_summary): Likewise.
21305 2015-06-01 Martin Liska <mliska@suse.cz>
21307 * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
21308 (ipa_edge_duplication_hook): Likewise.
21309 (ipa_free_all_structures_after_ipa_cp): Likewise.
21310 (ipa_free_all_structures_after_iinln): Likewise.
21312 2015-06-01 Martin Liska <mliska@suse.cz>
21314 * ipa-profile.c (account_time_size): Use new type-based pool allocator.
21315 (ipa_profile_generate_summary): Likewise.
21316 (ipa_profile_read_summary): Likewise.
21317 (ipa_profile): Likewise.
21319 2015-06-01 Martin Liska <mliska@suse.cz>
21321 * tree-ssa-structalias.c (new_var_info): Use new type-based
21323 (new_constraint): Likewise.
21324 (init_alias_vars): Likewise.
21325 (delete_points_to_sets): Likewise.
21327 2015-06-01 Martin Liska <mliska@suse.cz>
21329 * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
21330 (free_strinfo): Likewise.
21331 (pass_strlen::execute): Likewise.
21333 2015-06-01 Martin Liska <mliska@suse.cz>
21335 * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
21337 (vn_reference_insert_pieces): Likewise.
21338 (vn_phi_insert): Likewise.
21339 (visit_reference_op_call): Likewise.
21340 (copy_phi): Likewise.
21341 (copy_reference): Likewise.
21342 (process_scc): Likewise.
21343 (allocate_vn_table): Likewise.
21344 (free_vn_table): Likewise.
21346 2015-06-01 Martin Liska <mliska@suse.cz>
21348 * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
21350 (add_repeat_to_ops_vec): Likewise.
21351 (get_ops): Likewise.
21352 (maybe_optimize_range_tests): Likewise.
21353 (init_reassoc): Likewise.
21354 (fini_reassoc): Likewise.
21356 2015-06-01 Martin Liska <mliska@suse.cz>
21358 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
21360 (bitmap_set_new): Likewise.
21361 (get_or_alloc_expr_for_constant): Likewise.
21362 (get_or_alloc_expr_for): Likewise.
21363 (phi_translate_1): Likewise.
21364 (compute_avail): Likewise.
21365 (init_pre): Likewise.
21366 (fini_pre): Likewise.
21368 2015-06-01 Martin Liska <mliska@suse.cz>
21370 * sched-deps.c (create_dep_node): Use new type-based pool allocator.
21371 (delete_dep_node): Likewise.
21372 (create_deps_list): Likewise.
21373 (free_deps_list): Likewise.
21374 (sched_deps_init): Likewise.
21375 (sched_deps_finish): Likewise.
21377 2015-06-01 Martin Liska <mliska@suse.cz>
21379 * regcprop.c (free_debug_insn_changes): Use new type-based
21381 (replace_oldest_value_reg): Likewise.
21382 (pass_cprop_hardreg::execute): Likewise.
21384 2015-06-01 Martin Liska <mliska@suse.cz>
21386 * ira-build.c (initiate_cost_vectors): Use new type-based
21388 (ira_allocate_cost_vector): Likewise.
21389 (ira_free_cost_vector): Likewise.
21390 (finish_cost_vectors): Likewise.
21392 2015-06-01 Martin Liska <mliska@suse.cz>
21394 * sel-sched-ir.c (alloc_sched_pools): Use new type-based
21396 (free_sched_pools): Likewise.
21397 * sel-sched-ir.h (_list_alloc): Likewise.
21398 (_list_remove): Likewise.
21400 2015-06-01 Martin Liska <mliska@suse.cz>
21402 * stmt.c (add_case_node): Use new type-based pool allocator.
21403 (expand_case): Likewise.
21404 (expand_sjlj_dispatch_table): Likewise.
21406 2015-06-01 Martin Liska <mliska@suse.cz>
21408 * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
21409 (free_bb): Likewise.
21410 (pass_cse_reciprocals::execute): Likewise.
21412 2015-06-01 Martin Liska <mliska@suse.cz>
21414 * tree-sra.c (sra_initialize): Use new type-based pool allocator.
21415 (sra_deinitialize) Likewise.
21416 (create_access_1) Likewise.
21417 (build_accesses_from_assign) Likewise.
21418 (create_artificial_child_access) Likewise.
21420 2015-06-01 Martin Liska <mliska@suse.cz>
21422 * dse.c (get_group_info):Use new type-based pool allocator.
21423 (dse_step0) Likewise.
21424 (free_store_info) Likewise.
21425 (delete_dead_store_insn) Likewise.
21426 (free_read_records) Likewise.
21427 (record_store) Likewise.
21428 (replace_read) Likewise.
21429 (check_mem_read_rtx) Likewise.
21430 (scan_insn) Likewise.
21431 (dse_step1) Likewise.
21432 (dse_step7) Likewise.
21434 2015-06-01 Martin Liska <mliska@suse.cz>
21436 * df-scan.c (struct df_scan_problem_data):Use new type-based
21438 (df_scan_free_internal) Likewise.
21439 (df_scan_alloc) Likewise.
21440 (df_grow_reg_info) Likewise.
21441 (df_free_ref) Likewise.
21442 (df_insn_create_insn_record) Likewise.
21443 (df_mw_hardreg_chain_delete) Likewise.
21444 (df_insn_info_delete) Likewise.
21445 (df_free_collection_rec) Likewise.
21446 (df_mw_hardreg_chain_delete_eq_uses) Likewise.
21447 (df_sort_and_compress_mws) Likewise.
21448 (df_ref_create_structure) Likewise.
21449 (df_ref_record) Likewise.
21451 2015-06-01 Martin Liska <mliska@suse.cz>
21453 * df-problems.c (df_chain_create):Use new type-based pool allocator.
21454 (df_chain_unlink_1) Likewise.
21455 (df_chain_unlink) Likewise.
21456 (df_chain_remove_problem) Likewise.
21457 (df_chain_alloc) Likewise.
21458 (df_chain_free) Likewise.
21459 * df.h (struct dataflow) Likewise.
21461 2015-06-01 Martin Liska <mliska@suse.cz>
21463 * cselib.c (new_elt_list):Use new type-based pool allocator.
21464 (new_elt_loc_list) Likewise.
21465 (unchain_one_elt_list) Likewise.
21466 (unchain_one_elt_loc_list) Likewise.
21467 (unchain_one_value) Likewise.
21468 (new_cselib_val) Likewise.
21469 (cselib_init) Likewise.
21470 (cselib_finish) Likewise.
21472 2015-06-01 Martin Liska <mliska@suse.cz>
21474 * config/sh/sh.c (add_constant):Use new type-based pool allocator.
21475 (sh_reorg) Likewise.
21477 2015-06-01 Martin Liska <mliska@suse.cz>
21479 * cfg.c (initialize_original_copy_tables):Use new type-based
21481 (free_original_copy_tables) Likewise.
21482 (copy_original_table_clear) Likewise.
21483 (copy_original_table_set) Likewise.
21485 2015-06-01 Martin Liska <mliska@suse.cz>
21487 * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
21489 (asan_mem_ref_new) Likewise.
21490 (free_mem_ref_resources) Likewise.
21492 2015-06-01 Martin Liska <mliska@suse.cz>
21494 * var-tracking.c (variable_htab_free):Use new type-based
21496 (attrs_list_clear) Likewise.
21497 (attrs_list_insert) Likewise.
21498 (attrs_list_copy) Likewise.
21499 (shared_hash_unshare) Likewise.
21500 (shared_hash_destroy) Likewise.
21501 (unshare_variable) Likewise.
21502 (var_reg_delete_and_set) Likewise.
21503 (var_reg_delete) Likewise.
21504 (var_regno_delete) Likewise.
21505 (drop_overlapping_mem_locs) Likewise.
21506 (variable_union) Likewise.
21507 (insert_into_intersection) Likewise.
21508 (canonicalize_values_star) Likewise.
21509 (variable_merge_over_cur) Likewise.
21510 (dataflow_set_merge) Likewise.
21511 (remove_duplicate_values) Likewise.
21512 (variable_post_merge_new_vals) Likewise.
21513 (dataflow_set_preserve_mem_locs) Likewise.
21514 (dataflow_set_remove_mem_locs) Likewise.
21515 (variable_from_dropped) Likewise.
21516 (variable_was_changed) Likewise.
21517 (set_slot_part) Likewise.
21518 (clobber_slot_part) Likewise.
21519 (delete_slot_part) Likewise.
21520 (loc_exp_insert_dep) Likewise.
21521 (notify_dependents_of_changed_value) Likewise.
21522 (emit_notes_for_differences_1) Likewise.
21523 (vt_emit_notes) Likewise.
21524 (vt_initialize) Likewise.
21525 (vt_finalize) Likewise.
21527 2015-06-01 Martin Liska <mliska@suse.cz>
21529 * ira-color.c (init_update_cost_records):Use new type-based
21531 (get_update_cost_record) Likewise.
21532 (free_update_cost_record_list) Likewise.
21533 (finish_update_cost_records) Likewise.
21534 (initiate_cost_update) Likewise.
21536 2015-06-01 Martin Liska <mliska@suse.cz>
21538 * lra.c (init_insn_regs): Use new type-based pool allocator.
21539 (new_insn_reg) Likewise.
21540 (free_insn_reg) Likewise.
21541 (free_insn_regs) Likewise.
21542 (finish_insn_regs) Likewise.
21543 (init_insn_recog_data) Likewise.
21544 (init_reg_info) Likewise.
21545 (finish_reg_info) Likewise.
21546 (lra_free_copies) Likewise.
21547 (lra_create_copy) Likewise.
21548 (invalidate_insn_data_regno_info) Likewise.
21550 2015-06-01 Martin Liska <mliska@suse.cz>
21552 * lra-lives.c (free_live_range): Use new type-based pool allocator.
21553 (free_live_range_list) Likewise.
21554 (create_live_range) Likewise.
21555 (copy_live_range) Likewise.
21556 (lra_merge_live_ranges) Likewise.
21557 (remove_some_program_points_and_update_live_ranges) Likewise.
21558 (lra_live_ranges_init) Likewise.
21559 (lra_live_ranges_finish) Likewise.
21561 2015-06-01 Martin Liska <mliska@suse.cz>
21563 * et-forest.c (et_new_occ): Use new type-based pool allocator.
21564 (et_new_tree): Likewise.
21565 (et_free_tree): Likewise.
21566 (et_free_tree_force): Likewise.
21567 (et_free_pools): Likewise.
21568 (et_split): Likewise.
21570 2015-06-01 Martin Liska <mliska@suse.cz>
21572 * alloc-pool.c (struct alloc_pool_descriptor): Move definition
21574 * alloc-pool.h (pool_allocator::pool_allocator): New function.
21575 (pool_allocator::release): Likewise.
21576 (inline pool_allocator::release_if_empty): Likewise.
21577 (inline pool_allocator::~pool_allocator): Likewise.
21578 (pool_allocator::allocate): Likewise.
21579 (pool_allocator::remove): Likewise.
21581 2015-06-01 James Greenhalgh <james.greenhalgh@arm.com>
21583 * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
21586 2015-06-01 James Greenhalgh <james.greenhalgh@arm.com>
21588 * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops
21590 * gcc/config/arm/arm.c (arm_print_tune_info): Likewise.
21591 (arm_macro_fusion_p): Likewise.
21592 (arm_macro_fusion_pair_p): Likewise.
21594 2015-06-01 James Greenhalgh <james.greenhalgh@arm.com>
21596 * config/aarch64/aarch64-protos.h (tune_params): Rename
21597 fuseable_ops to fusible_ops.
21598 * config/aarch64/aarch64.c (generic_tunings): Rename
21599 fuseable_ops to fusible_ops.
21600 (cortexa53_tunings): Likewise.
21601 (cortexa57_tunings): Likewise.
21602 (thunderx_tunings): Likewise.
21603 (xgene1_tunings): Likewise.
21604 (aarch64_macro_fusion_p): Likewise.
21605 (aarch64_macro_fusion_pair_p): Likewise.
21607 2015-06-01 Dominik Vogt <vogt@linux.vnet.ibm.com>
21609 * config/s390/driver-native.c: New file.
21610 * config/s390/x-native: New file.
21611 * config.host: Add new files for s390.
21612 * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
21614 * config.gcc: Likewise.
21615 * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
21616 * config/s390/s390-opts.h (enum processor_type): Ditto.
21617 * config/s390/s390.c (s390_option_override): Catch unhandled
21620 2015-06-01 Ilya Enkovich <ilya.enkovich@intel.com>
21623 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
21624 redirection for instrumented calls.
21625 * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
21626 (append_compiler_options): Append -fcheck-pointer-bounds.
21627 * tree-chkp.h (chkp_copy_call_skip_bounds): New.
21628 (chkp_redirect_edge): New.
21629 * tree-chkp.c (chkp_copy_call_skip_bounds): New.
21630 (chkp_redirect_edge): New.
21632 2015-06-01 Richard Biener <rguenther@suse.de>
21634 PR tree-optimization/66280
21635 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
21638 2015-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21640 * config/aarch64/aarch64.md
21641 (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
21644 2015-06-01 Eric Botcazou <ebotcazou@adacore.com>
21646 * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
21647 Remove obsolete kludge.
21649 2015-06-01 Richard Biener <rguenther@suse.de>
21651 * tree-ssa-reassoc.c (get_rank): Simplify.
21653 2015-05-31 H.J. Lu <hongjiu.lu@intel.com>
21655 * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
21656 * configure: Regenerated.
21658 2015-05-31 Mikhail Maltsev <maltsevm@gmail.com>
21660 * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
21661 issue (add space between string literal and macro).
21662 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
21664 2015-05-30 Andreas Schwab <schwab@linux-m68k.org>
21666 * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
21667 implict or explicit -fPIE or -fpie.
21669 2015-05-30 Mike Frysinger <vapier@gentoo.org>
21671 * gcc/config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
21673 2015-05-28 DJ Delorie <dj@redhat.com>
21675 * expmed.c (extract_bit_field_1): Avoid clobbering a
21676 yet-to-be-used base/index register.
21678 2015-05-30 Jan Hubicka <hubicka@ucw.cz>
21680 * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
21681 (alias_stats): Add num_universal.
21682 (alias_set_subset_of): Special case pointers; be ready for NULL
21684 (alias_sets_conflict_p): Special case pointers; be ready for NULL
21686 (init_alias_set_entry): Break out from ...
21687 (record_alias_subset): ... here; propagate new fields;
21688 allocate children only when really needed.
21689 (get_alias_set): Do less generous pointer globbing.
21690 (dump_alias_stats_in_alias_c): Update statistics.
21692 2015-05-30 Alan Modra <amodra@gmail.com>
21694 * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
21695 correct block for use of r12.
21696 (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
21698 2015-05-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
21701 * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
21704 2015-05-29 Jakub Jelinek <jakub@redhat.com>
21706 PR tree-optimization/66142
21707 * tree-if-conv.c (if_convertible_phi_p): Don't give up on
21708 virtual phis that feed themselves.
21710 2015-05-29 Richard Biener <rguenther@suse.de>
21712 PR tree-optimization/66314
21713 * tree-ssa-threadupdate.c (create_block_for_threading): Add
21714 parameter that says which loop the new block belongs to.
21715 (ssa_create_duplicates): Blocks duplicated for the threaded
21716 path belong to the loop of the thread destination.
21718 2015-05-29 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
21720 * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
21721 to cleanup-saved-temps.
21722 * doc/sourcebuild.texi (Clean up generated test files): Expand
21724 (dg-keep-saved-temps): Document new proc.
21725 (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
21726 cleanup-saved-temps): Remove.
21728 2015-05-28 Andreas Tobler <andreast@gcc.gnu.org>
21730 * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
21731 gcc_AC_CHECK_DECLS.
21732 * configure: Regenerate.
21734 2015-05-28 Mike Frysinger <vapier@gentoo.org>
21736 * config/nios2/linux.h (CPP_SPEC): Define.
21738 2015-05-28 Mike Frysinger <vapier@gentoo.org>
21740 * config/microblaze/linux.h (CPP_SPEC): Define.
21742 2015-05-28 Mike Frysinger <vapier@gentoo.org>
21744 * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
21745 -pthread is specified.
21747 2015-05-28 Richard Biener <rguenther@suse.de>
21749 * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
21750 (vect_fixup_scalar_cycles_with_patterns): Likewise.
21751 (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
21752 after pattern recog.
21753 (vect_create_epilog_for_reduction): Properly handle reductions
21755 (vectorizable_reduction): Likewise.
21756 * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
21758 (vect_get_constant_vectors): Create the correct number of
21759 initial values for reductions.
21760 (vect_schedule_slp_instance): Handle reduction chains that are
21761 type changing properly.
21762 * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
21764 2015-05-28 Richard Biener <rguenther@suse.de>
21766 PR tree-optimization/66142
21767 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
21768 values better in memcpy destination handling. Handle non-aliasing
21771 2015-05-28 Lawrence Velázquez <vq@larryv.me>
21774 * config/darwin-c.c (version_components): New global enum.
21775 (parse_version, version_as_legacy_macro)
21776 (version_as_modern_macro, macosx_version_as_macro): New functions.
21777 (version_as_macro): Remove.
21778 (darwin_cpp_builtins): Use new function.
21780 2015-05-28 H.J. Lu <hongjiu.lu@intel.com>
21782 * builtins.c (expand_builtin_acc_on_device): Mark parameters
21783 with ATTRIBUTE_UNUSED.
21785 2015-05-28 Julian Brown <julian@codesourcery.com>
21789 * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
21790 sequence for !ACCEL_COMPILER.
21792 2015-05-28 Nick Clifton <nickc@redhat.com>
21794 * config/rx/rx.c (push_regs): New function. Extracts code from...
21795 (rx_expand_prologue): ... here. Use push_regs to push even small
21796 spans of registers.
21797 (pop_regs): New function.
21798 (rx_expand_epilogue): Use pop_regs to pop even small spans of
21801 2015-05-28 Richard Biener <rguenther@suse.de>
21803 * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
21805 (SLP_INSTANCE_BODY_COST_VEC): Remove.
21806 (vect_update_slp_costs_according_to_vf): Likewise.
21807 (vect_slp_analyze_operations): Update prototype.
21808 * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
21809 vect_update_slp_costs_according_to_vf, adjust.
21810 * tree-vect-slp.c (vect_free_slp_instance): Adjust.
21811 (vect_analyze_slp_cost_1): Likewise.
21812 (vect_analyze_slp_cost): Likewise. Properly deal with
21813 widening reduction ops. Commit body costs.
21814 (vect_analyze_slp_instance): Adjust. Do not analyze SLP
21815 cost for loops from here.
21816 (vect_slp_analyze_operations): But do it from here when
21817 the vectorization factor is known and stmts are analyzed.
21818 (vect_bb_vectorization_profitable_p): Simplify.
21819 (vect_slp_analyze_bb_1): Do not compute SLP cost here.
21820 (vect_update_slp_costs_according_to_vf): Remove.
21822 2015-05-27 Magnus Granberg <zorry@gentoo.org>
21823 H.J. Lu <hongjiu.lu@intel.com>
21825 * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
21826 (BUILD_CFLAGS): Likewise.
21827 (BUILD_CXXFLAGS): Likewise.
21828 (LINKER): Add @NO_PIE_FLAG@.
21829 (BUILD_LDFLAGS): Likewise.
21830 (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
21831 --enable-default-pie.
21832 * common.opt (fPIE): Initialize to -1.
21834 (no-pie): New option.
21835 (pie): Replace "Negative(shared)" with "Negative(no-pie)".
21836 * configure.ac: Add --enable-default-pie.
21837 (NO_PIE_CFLAGS): New. Check if -fno-PIE works. AC_SUBST.
21838 (NO_PIE_FLAG): New. Check if -no-pie works. AC_SUBST.
21839 * defaults.h (DEFAULT_FLAG_PIE): New. Default PIE to -fPIE.
21840 * gcc.c (NO_PIE_SPEC): New.
21841 (PIE_SPEC): Likewise.
21842 (NO_FPIE1_SPEC): Likewise.
21843 (FPIE1_SPEC): Likewise.
21844 (NO_FPIE2_SPEC): Likewise.
21845 (FPIE2_SPEC): Likewise.
21846 (NO_FPIE2_SPEC): Likewise.
21847 (FPIE_SPEC): Likewise.
21848 (NO_FPIE_SPEC): Likewise.
21849 (NO_FPIC1_SPEC): Likewise.
21850 (FPIC1_SPEC): Likewise.
21851 (NO_FPIC2_SPEC): Likewise.
21852 (FPIC2_SPEC): Likewise.
21853 (NO_FPIC2_SPEC): Likewise.
21854 (FPIC_SPEC): Likewise.
21855 (NO_FPIC_SPEC): Likewise.
21856 (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
21857 (FPIE1_OR_FPIC1_SPEC): Likewise.
21858 (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
21859 (FPIE2_OR_FPIC2_SPEC): Likewise.
21860 (NO_FPIE_AND_FPIC_SPEC): Likewise.
21861 (FPIE_OR_FPIC_SPEC): Likewise.
21862 (LD_PIE_SPEC): Likewise.
21863 (LINK_PIE_SPEC): Handle -no-pie. Use PIE_SPEC and LD_PIE_SPEC.
21864 * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
21865 * config/darwin.h (PIE_SPEC): Renamed to ...
21866 (DARWIN_PIE_SPEC): This.
21867 (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
21868 * config/darwin9.h (PIE_SPEC): Renamed to ...
21869 (DARWIN_PIE_SPEC): This.
21870 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
21871 PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
21872 * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
21873 FPIE2_OR_FPIC2_SPEC.
21874 * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
21875 * config/m68k/openbsd.h (ASM_SPEC): Likewise.
21876 * gcc/config/sol2.h (ASM_PIC_SPEC): Likewise.
21877 * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
21878 * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
21879 * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
21880 * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
21881 * config/m32r/m32r.h (ASM_SPEC): Likewise.
21882 * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
21883 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
21884 * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
21885 * config/sparc/freebsd.h (ASM_SPEC): Likewise.
21886 * config/sparc/linux.h (ASM_SPEC): Likewise.
21887 * config/sparc/linux64.h (ASM_SPEC): Likewise.
21888 * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
21889 * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
21890 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21891 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
21892 * config/sparc/sparc.h (ASM_SPEC): Likewise.
21893 * config/sparc/sysv4.h (ASM_SPEC): Likewise.
21894 * config/sparc/vxworks.h (ASM_SPEC): Likewise.
21895 * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
21896 FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
21897 * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
21898 * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
21899 NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
21900 (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
21901 * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
21902 * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
21903 * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
21904 * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
21905 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21906 * config/vax/linux.h (ASM_SPEC): Likewise.
21907 * doc/install.texi: Document --enable-default-pie.
21908 * doc/invoke.texi: Document -no-pie.
21909 * config.in: Regenerated.
21910 * configure: Likewise.
21912 2015-05-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
21914 PR rtl-optimization/66168
21915 * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
21916 can_move_invariant_reg.
21918 2015-05-27 John David Anglin <danglin@gcc.gnu.org>
21921 * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
21922 REG_EQUAL note when doing insert.
21924 * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
21925 instead of "%d" for 'o' operand.
21927 2015-05-27 Nathan Sidwell <nathan@acm.org>
21930 * tree.c (build_pointer_type_for_mode): Canonical type does not
21931 inherit can_alias_all.
21932 (build_reference_type_for_mode): Likewise.
21934 2015-05-27 Eric Botcazou <ebotcazou@adacore.com>
21936 * expr.h (array_at_struct_end_p): Move to...
21937 (array_ref_element_size): Likewise.
21938 (component_ref_field_offset): Likewise.
21939 * tree.h (array_ref_element_size): ...here.
21940 (array_at_struct_end_p): Likewise.
21941 (component_ref_field_offset): Likewise.
21942 * expr.c (array_ref_element_size): Move to...
21943 (array_ref_low_bound): Likewise.
21944 (array_at_struct_end_p): Likewise.
21945 (array_ref_up_bound): Likewise.
21946 (component_ref_field_offset): Likewise.
21947 * tree.c (array_ref_element_size): ...here.
21948 (array_ref_low_bound): Likewise.
21949 (array_ref_up_bound): Likewise.
21950 (array_at_struct_end_p): Likewise.
21951 (component_ref_field_offset): Likewise.
21953 2015-05-27 Gregor Richards <gregor.richards@uwaterloo.ca>
21954 Szabolcs Nagy <szabolcs.nagy@arm.com>
21956 * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
21958 2015-05-27 Jason Merrill <jason@redhat.com>
21961 * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
21962 ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
21963 ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
21965 2015-05-22 Aditya Kumar <hiraditya@msn.com>
21967 * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
21970 * statistics.c (statistics_fini_pass): Print pass name.
21972 2015-05-27 Richard Biener <rguenther@suse.de>
21974 PR tree-optimization/66272
21976 2014-08-15 Richard Biener <rguenther@suse.de>
21978 PR tree-optimization/62031
21979 * tree-data-ref.c (dr_analyze_indices): Do not set
21980 DR_UNCONSTRAINED_BASE.
21981 (dr_may_alias_p): All indirect accesses have to go the
21982 formerly DR_UNCONSTRAINED_BASE path.
21983 * tree-data-ref.h (struct indices): Remove
21984 unconstrained_base member.
21985 (DR_UNCONSTRAINED_BASE): Remove.
21987 2015-05-27 Aldy Hernandez <aldyh@redhat.com>
21989 * dwarf2out.c: Remove block_map.
21990 (gen_call_site_die): Replace block_map use with BLOCK_DIE.
21991 (gen_lexical_block_die): Same.
21992 (dwarf2out_function_decl): Remove block_map use.
21993 (dwarf2out_c_finalize): Same.
21994 * tree-core.h (struct tree_block): Add die field.
21995 * tree.h (BLOCK_DIE): New.
21997 2015-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22000 * expr.c (memory_load_overlap): New function.
22001 (emit_push_insn): When pushing partial args to the stack would
22002 clobber the register part load the overlapping part into a pseudo
22003 and put it into the hard reg after pushing. Change return type
22004 to bool. Add bool argument.
22005 * expr.h (emit_push_insn): Change return type to bool.
22007 * calls.c (expand_call): Cancel sibcall optimization when encountering
22008 partial argument on targets with ARGS_GROW_DOWNWARD and
22009 !STACK_GROWS_DOWNWARD.
22010 (emit_library_call_value_1): Update callsite of emit_push_insn.
22011 (store_one_arg): Likewise.
22013 2015-05-27 Gregor Richards <gregor.richards@uwaterloo.ca>
22015 * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
22017 2015-05-27 Martin Liska <mliska@suse.cz>
22019 * Makefile.in: Add additional dependencies related to memory report
22021 * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
22022 * bitmap.c (struct bitmap_descriptor_d): Remove.
22023 (struct loc): Likewise.
22024 (struct bitmap_desc_hasher): Likewise.
22025 (bitmap_desc_hasher::hash): Likewise.
22026 (bitmap_desc_hasher::equal): Likewise.
22027 (get_bitmap_descriptor): Likewise.
22028 (bitmap_register): User new memory descriptor API.
22029 (register_overhead): Likewise.
22030 (bitmap_find_bit): Register nsearches and search_iter statistics.
22031 (struct bitmap_output_info): Remove.
22032 (print_statistics): Likewise.
22033 (dump_bitmap_statistics): Use new memory descriptor.
22034 * bitmap.h (struct bitmap_usage): New class.
22035 * genmatch.c: Extend header file inclusion.
22036 * genpreds.c: Likewise.
22037 * ggc-common.c (struct ggc_usage): New class.
22038 (struct ggc_loc_desc_hasher): Remove.
22039 (ggc_loc_desc_hasher::hash): Likewise.
22040 (ggc_loc_desc_hasher::equal): Likewise.
22041 (struct ggc_ptr_hash_entry): Likewise.
22042 (struct ptr_hash_hasher): Likewise.
22043 (ptr_hash_hasher::hash): Likewise.
22044 (ptr_hash_hasher::equal): Likewise.
22045 (make_loc_descriptor): Likewise.
22046 (ggc_prune_ptr): Likewise.
22047 (dump_ggc_loc_statistics): Use new memory descriptor.
22048 (ggc_record_overhead): Likewise.
22049 (ggc_free_overhead): Likewise.
22050 (final_cmp_statistic): Remove.
22051 (cmp_statistic): Likewise.
22052 (ggc_add_statistics): Liekwise.
22053 (ggc_prune_overhead_list): Likewise.
22054 * hash-map-traits.h: New file.
22055 * hash-map.h (struct default_hashmap_traits): Move the traits to a
22056 separate header file.
22057 * hash-set.h: Pass memory statistics info to ctor.
22058 * hash-table.c (void dump_hash_table_loc_statistics): New function.
22059 * hash-table.h (hash_table::hash_table): Add new ctor arguments.
22060 (hash_table::~hash_table): Register memory release operation.
22061 (hash_table::alloc_entries): Handle memory allocation operation.
22062 (hash_table::expand): Likewise.
22063 * inchash.c (iterative_hash_hashval_t): Move implementation to header
22065 (iterative_hash_host_wide_int): Likewise.
22066 * inchash.h (class hash): Likewise.
22067 * mem-stats-traits.h: New file.
22068 * mem-stats.h: New file.
22069 (mem_location): Add new class.
22070 (mem_usage): Likewise.
22071 (mem_alloc_description): Likewise.
22072 * sese.c: Add new header file inclusision.
22073 * toplev.c (dump_memory_report): Add report for hash_table, hash_map
22075 * tree-sra.c: Add new header file inclusision.
22076 * vec.c (struct vec_descriptor): Remove.
22077 (hash_descriptor): Likewise.
22078 (struct vec_usage): Likewise.
22079 (struct ptr_hash_entry): Likewise.
22080 (hash_ptr): Likewise.
22081 (eq_ptr): Likewise.
22082 (vec_prefix::register_overhead): Use new memory descriptor API.
22083 (vec_prefix::release_overhead): Likewise.
22084 (add_statistics): Remove.
22085 (dump_vec_loc_statistics): Use new memory descriptor API.
22086 * vec.h (struct vec_prefix): Likewise.
22087 (va_heap::reserve): Likewise.
22088 (va_heap::release): Likewise.
22089 * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
22091 2015-05-27 Richard Biener <rguenther@suse.de>
22093 * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
22094 earlier and remove ??? comment.
22095 (vect_analyze_stmt): If we are analyzing a pure SLP stmt
22096 and got called from loop analysis bail out. Always pass the SLP
22097 node to the vectorizable_* functions.
22098 * tree-vect-loop.c (vect_analyze_loop_operations): Remove
22099 the premature SLP check here.
22100 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
22101 detected SLP stmts.
22102 (vect_detect_hybrid_slp_1): Likewise.
22104 2015-05-26 Jeff Law <law@redhat.com>
22106 * combine.c (find_split_point): Verify that the shift count is a
22107 constant when choosing (plus (ashift ...)) as a split point.
22109 * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
22110 No functional changes.
22112 2015-05-26 Jan Hubicka <hubicka@ucw.cz>
22114 * ipa-polymorphic-call.c
22115 (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
22116 case when call target is already known.
22118 2015-05-26 Oleg Endo <olegendo@gcc.gnu.org>
22121 * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
22122 take into account the case that operands[1] and operands[2]
22123 are the same register.
22125 2015-05-26 Michael Matz <matz@suse.de>
22127 PR middle-end/66251
22129 * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
22131 (vect_create_vectorized_demotion_stmts): Always set
22132 STMT_VINFO_VEC_STMT, also with SLP.
22133 (vectorizable_store): Handle strided group stores.
22135 2015-05-26 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
22138 * config/aarch64/aarch64.md
22139 (*adds_shift_imm_<mode>): New pattern.
22140 (*subs_shift_imm_<mode>): Likewise.
22141 (*adds_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
22142 (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
22143 (*add_uxt<mode>_shift2): Likewise.
22144 (*add_uxtsi_shift2_uxtw): Likewise.
22145 (*sub_uxt<mode>_shift2): Likewise.
22146 (*sub_uxtsi_shift2_uxtw): Likewise.
22148 2015-05-26 David Edelsohn <dje.gcc@gmail.com>
22150 * config/rs6000/constraints.md (Y, U): Use match_test.
22152 2015-05-26 Christian Bruel <christian.bruel@st.com>
22155 * config/arm/arm.c (arm_option_check_internal)
22156 (arm_option_params_internal): Check opts->target_flags to set macros.
22157 (TREE_TARGET_ARM, TREE_TARGET_THUMB)
22158 (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
22159 (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
22160 (builtin_define): Replaced with def_or_undef_macro.
22161 * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
22162 TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
22163 (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
22164 (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
22165 (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
22166 (TARGET_ARM_FEATURE_LDREX_P)
22167 (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
22168 * config/arm/arm-c.c (def_or_undef_macro): New function.
22169 (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
22171 2015-05-26 Christian Bruel <christian.bruel@st.com>
22173 * c-common.h (builtin_define_with_int_value)
22174 (builtin_define_type_sizeof): Declare.
22175 * c-cppbuiltin.c (builtin_define_with_int_value)
22176 (builtin_define_type_sizeof): Externalize.
22177 (builtin_define_std): Cleanup declaration.
22178 * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
22179 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
22180 * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
22181 (builtin_define, builtin_assert): New macros.
22183 2015-05-26 Richard Biener <rguenther@suse.de>
22185 PR tree-optimization/66142
22186 * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
22187 MEM_REFs for the same base address.
22189 2015-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22192 * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
22194 2015-05-26 Jason Merrill <jason@redhat.com>
22196 * configure.ac: Set CXXFLAGS for ISL test.
22197 * configure: Regenerate.
22199 * configure.ac: Use C++ for all tests. Use AC_CHECK_DECLS for
22200 strstr and basename.
22201 * configure: Regenerate.
22203 2015-05-26 Richard Biener <rguenther@suse.de>
22205 * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
22206 X % C -> X & (C - 1) for C being a power-of two to ...
22207 * match.pd: ... patterns.
22209 2015-05-26 Marc Glisse <marc.glisse@inria.fr>
22211 * match.pd (swapped_tcc_comparison): New operator list.
22212 (-A CMP -B): New simplification.
22213 * fold-const.c (fold_comparison): Remove corresponding code.
22215 2015-05-26 Richard Sandiford <richard.sandiford@arm.com>
22217 * caller-save.c (init_caller_save): Base temporary register numbers
22218 on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
22219 * cfgloopanal.c (init_set_costs): Likewise.
22220 * dojump.c (prefer_and_bit_test): Likewise.
22221 * expr.c (init_expr_target): Likewise.
22222 * ira.c (setup_prohibited_mode_move_regs): Likewise.
22223 * lower-subreg.c (init_lower_subreg): Likewise.
22224 * postreload.c (reload_cse_regs_1): Likewise.
22226 2015-05-26 Richard Sandiford <richard.sandiford@arm.com>
22228 * gensupport.h (compute_test_codes): Declare.
22229 * gensupport.c (compute_predicate_codes): Rename to...
22230 (compute_test_codes): ...this. Generalize error message.
22231 (process_define_predicate): Update accordingly.
22232 * genpreds.c (compute_maybe_allows): Delete.
22233 (add_constraint): Use compute_test_codes to determine whether
22234 something can accept a SUBREG, REG or MEM.
22236 2015-05-26 Torvald Riegel <triegel@redhat.com>
22238 * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
22239 'memory model' to align with C++11; fix description of memory orders;
22242 2015-05-26 Richard Biener <rguenther@suse.de>
22244 * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
22245 (vect_analyze_loop_operations): ... here. Remove slp parameter,
22246 detect whether we apply SLP. Remove call to
22247 vect_update_slp_costs_according_to_vf.
22248 (vect_analyze_loop_2): Call vect_update_vf_for_slp and
22249 vect_update_slp_costs_according_to_vf from here. Dispatch
22250 to vect_slp_analyze_operations to analyze SLP stmts.
22251 * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
22252 unused bb_vec_info parameter, adjust assert.
22253 (vect_slp_analyze_operations): Pass in the slp instance tree
22254 instead of bb_vec_info.
22255 (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
22256 * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
22258 2015-05-25 Alexander Monakov <amonakov@ispras.ru>
22260 * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
22261 Q_REGS. Expand comment.
22262 (REG_CLASS_NAMES): Ditto.
22263 (REG_CLASS_CONTENTS): Ditto.
22265 2015-05-25 Uros Bizjak <ubizjak@gmail.com>
22268 * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
22269 when LEGACY_INT_REGNO_P is processed.
22271 2015-05-25 Alexander Monakov <amonakov@ispras.ru>
22273 * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
22275 2015-05-25 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
22277 * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
22278 register if not marked dead/unused, before return.
22280 2015-05-24 Jan Hubicka <hubicka@ucw.cz>
22283 * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
22284 is set; check for assembler name at LTO time.
22285 (type_in_anonymous_namespace): Remove hacks, check that all
22286 anonymous types are called "<anon>"
22287 (odr_type_p): Simplify; add check for "<anon>"
22288 (odr_subtypes_equivalent): Add odr_type_p check.
22289 * tree.c (need_assembler_name_p): Even anonymous namespace needs
22292 2015-05-24 Jan Hubicka <hubicka@ucw.cz>
22294 * ipa-utils.h (method_class_type): Remove.
22295 * cgraphunit.c (walk_polymorphic_call_targets): Use
22296 TYPE_METHOD_BASETYPE.
22297 * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
22298 on main variants only.
22299 (method_class_type): Remove.
22300 (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
22301 (build_type_inheritance_graph): Likewise.
22302 * ipa-icf.c (sem_function::equals_wpa): Likewise.
22303 * pa-polymorphic-call.c (decl_maybe_in_construction_p,
22304 check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
22306 2015-05-24 Jan Hubicka <hubicka@ucw.cz>
22308 * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
22309 is_typedef_decl, typedef_variant_p): Constify.
22310 * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
22311 is_typedef_decl, typedef_variant_p): Constify.
22313 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22315 * defaults.h (gen_tablejump): New function.
22316 (HAVE_tablejump): Add default value.
22318 * stmt.c: Likewise.
22320 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22322 * defaults.h (gen_store_multiple): New function.
22323 (HAVE_store_multiple): Add default value.
22324 * expr.c (move_block_from_reg): Adjust.
22326 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22328 * defaults.h (gen_load_multiple): New function.
22329 (HAVE_load_multiple): Add default value.
22330 * expr.c (move_block_to_reg): Adjust.
22332 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22334 * defaults.h (gen_mem_signal_fence): New function.
22335 (HAVE_mem_signal_fence): Add default value.
22336 * optabs.c: Adjust.
22338 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22340 * defaults.h (gen_memory_barrier): New function.
22341 (HAVE_memory_barrier): Add default value.
22342 * optabs.c: Adjust.
22344 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22346 * defaults.h (gen_mem_thread_fence): New function.
22347 (HAVE_mem_thread_fence): Add default definition.
22348 * optabs.c: Adjust.
22350 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22352 * combine.c (find_split_point): Check the value of HAVE_lo_sum
22353 instead of if it is defined.
22354 (combine_simplify_rtx): Likewise.
22355 * lra-constraints.c (process_address_1): Likewise.
22356 * config/darwin.c: Adjust.
22357 * genconfig.c (main): Always define HAVE_lo_sum.
22359 2015-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
22361 * genmatch.c (parser::parse_operation): Reject expanding
22362 operator-list inside 'for'.
22364 2015-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
22366 * genmatch.c (parser::parse_for): Reject iterator if used as
22369 2015-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
22371 * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
22372 after end of id-list.
22374 2015-05-22 Jan Hubicka <hubicka@ucw.cz>
22376 * tree.c (gimple_canonical_types_compatible_p): Sanity check that
22377 we do not try to compute canonical type for type that does not need
22379 (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
22381 * tree.h (type_with_alias_set_p): New.
22383 2015-05-22 Jan Hubicka <hubicka@ucw.cz>
22385 * tree.c (gimple_canonical_types_compatible_p): Do not compare
22386 function attributes.
22387 (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
22389 2015-05-22 Jim Wilson <jim.wilson@linaro.org>
22391 * Makefile.in (check_gcc_parallelize): Delete.
22392 (lang_checks_parallelized): Update comment.
22394 2015-05-22 Mikhail Maltsev <maltsevm@gmail.com>
22396 PR rtl-optimization/66237
22397 * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
22398 location of an "as_a" cast.
22400 2015-05-22 Jeff Law <law@redhat.com>
22402 * config/pa/pa.md (non-canonical shift-add insns): Remove.
22403 (peepholes with non-canonical RTL sources): Remove.
22404 (peepholes for indexed stores of FP regs in integer modes): Match and
22405 generate canonical RTL.
22407 2015-05-22 Marc Glisse <marc.glisse@inria.fr>
22409 PR tree-optimization/63387
22410 * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
22411 ((x ord x) & (y ord y) -> (x ord y),
22412 (x ord x) & (x ord y) -> (x ord y)): New simplifications.
22413 * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
22414 vectors like scalars.
22416 2015-05-22 Marc Glisse <marc.glisse@inria.fr>
22418 * convert.c (convert_to_integer, convert_to_vector): Include the
22419 types in the error message.
22421 2015-05-22 Marc Glisse <marc.glisse@inria.fr>
22423 * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
22426 2015-05-22 Jeff Law <law@redhat.com>
22428 * config/pa/pa.md (integer_indexed_store splitters): Use
22429 mem_shadd_operand. Use ASHIFT rather than MULT in the resulting
22430 insns -- adjusting the constant 2nd operand accordingly.
22432 * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
22433 (plus (ashift X log2) Y) if it is a split point.
22435 * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
22436 out of hppa_legitimize_address to handle both forms of a multiply
22438 (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
22439 Always generate the ASHIFT variant as the result is not directly
22440 used in a MEM. Update comments and refactor slightly to improve
22443 2015-05-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22446 * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
22447 aarch64_composite_type_p. Remove check for aarch64_composite_type_p.
22448 (aarch64_composite_type_p): Return false if given type and mode are
22449 for a short vector.
22451 2015-05-22 Richard Biener <rguenther@suse.de>
22453 * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
22455 * tree-vect-loop.c (vect_analyze_loop_operations): Look at
22456 patterns when determining whether SLP is pure.
22457 (vect_is_slp_reduction): Remove check for pattern stmts.
22458 (vect_is_simple_reduction_1): Remove dead code.
22459 * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
22460 (vect_get_and_check_slp_defs): Pass in the stmt number.
22461 Allow the first def in a reduction to be not a pattern stmt when
22462 the rest of the stmts def are patterns.
22463 (vect_build_slp_tree_1): Allow tcc_expression codes like
22464 SAD_EXPR and DOT_PROD_EXPR.
22465 (vect_build_slp_tree): Adjust.
22466 (vect_analyze_slp): Refactor and move BB vect error message ...
22467 (vect_slp_analyze_bb_1): ... here.
22469 2015-05-22 Aldy Hernandez <aldyh@redhat.com>
22471 * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
22472 for CSWTCH temporary.
22474 2015-05-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22476 * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
22477 (arm_unspec_cost): Allow UNSPEC_VOLATILE. Do not recurse inside
22480 2015-05-22 Richard Biener <rguenther@suse.de>
22482 PR tree-optimization/66251
22483 * tree-vect-stmts.c (vectorizable_conversion): Properly
22484 set STMT_VINFO_VEC_STMT even for the SLP case.
22486 2015-05-22 Marek Polacek <polacek@redhat.com>
22488 * doc/extend.texi: Use @pxref instead of @xref.
22490 2015-05-22 hiraditya <hiraditya@msn.com>
22492 * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
22495 2015-05-22 Richard Biener <rguenther@suse.de>
22497 PR tree-optimization/65701
22498 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
22499 Move peeling cost models into one place. Peel for alignment
22500 for single loads only if an aligned load is cheaper than
22503 2015-05-22 Marek Polacek <polacek@redhat.com>
22506 * doc/extend.texi (Enumerator Attributes): New section.
22507 Document syntax of enumerator attributes.
22509 2015-05-22 Richard Biener <rguenther@suse.de>
22511 * tree-vect-loop.c (get_reduction_op): New function.
22512 (vect_model_reduction_cost): Use it, add reduc_index parameter.
22513 Make ready for BB reductions.
22514 (vect_create_epilog_for_reduction): Use get_reduction_op.
22515 (vectorizable_reduction): Init reduc_index to a valid value.
22516 Adjust vect_model_reduction_cost call.
22517 * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
22518 operand for reduction defaults. Add SAD_EXPR support.
22519 Assert we have a neutral op for SLP reductions.
22520 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
22521 walking pattern stmt ops only recurse to SSA names.
22523 2015-05-22 Richard Biener <rguenther@suse.de>
22525 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
22526 assert with guard, remove check on detected reduction.
22527 (vect_recog_sad_pattern): Likewise.
22528 (vect_recog_widen_sum_pattern): Likewise.
22530 2015-05-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22532 * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
22533 __always_inline__ attribute.
22534 (vaesdq_u8): Likewise.
22535 (vaesmcq_u8): Likewise.
22536 (vaesimcq_u8): Likewise.
22537 (vsha1cq_u32): Likewise.
22538 (vsha1mq_u32): Likewise.
22539 (vsha1pq_u32): Likewise.
22540 (vsha1h_u32): Likewise.
22541 (vsha1su0q_u32): Likewise.
22542 (vsha1su1q_u32): Likewise.
22543 (vsha256hq_u32): Likewise.
22544 (vsha256h2q_u32): Likewise.
22545 (vsha256su0q_u32): Likewise.
22546 (vsha256su1q_u32): Likewise.
22547 (vmull_p64): Likewise.
22548 (vmull_high_p64): Likewise.
22550 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22552 * final.c (final_scan_insn): Don't check HAVE_peephole with the
22554 * output.h: Likewise.
22555 * genconfig.c (main): Alwways define HAVE_peephole.
22556 * genpeep.c: Don't emit checks of HAVE_peephole.
22558 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22560 * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
22561 check HAVE_conditional_move with the preprocessor.
22563 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22565 * genconfig.c (main): Always define HAVE_conditional_move.
22566 * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
22567 toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
22570 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22572 * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
22573 reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
22574 and FRAME_POINTER_REGNUM with the preprocessor.
22576 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22578 * defaults.h: Add default for STACK_PUSH_CODE.
22579 * expr.c: Don't redefine STACK_PUSH_CODE.
22580 * recog.c: Likewise.
22582 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22584 * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
22585 sched-deps.c: Use if instead of preprocessor checks with
22586 STACK_GROWS_DOWNWARD.
22588 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22590 * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
22592 * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
22593 * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
22594 * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
22595 * doc/tm.texi: Regenerate.
22597 2015-05-21 H.J. Lu <hongjiu.lu@intel.com>
22600 * config/i386/constraints.md (Bg): New constraint for GOT memory
22602 * config/i386/i386.md (*call_got_x32): New pattern.
22603 (*call_value_got_x32): Likewise.
22604 * config/i386/predicates.md (GOT_memory_operand): New predicate.
22606 2015-05-21 Jakub Jelinek <jakub@redhat.com>
22608 PR tree-optimization/66233
22609 * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
22612 2015-05-21 Jeff Law <law@redhat.com>
22614 * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
22615 than MULT for shadd sequences.
22617 2015-05-08 Jan Hubicka <hubicka@ucw.cz>
22619 * alias.c (alias_stats): New static var.
22620 (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
22621 (dump_alias_stats_in_alias_c): New function.
22622 * alias.h (dump_alias_stats_in_alias_c): Declare.
22623 * tree-ssa-alias.c (dump_alias_stats): Call it.
22625 2015-05-08 Michael Matz <matz@suse.de>
22627 * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
22629 (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
22630 (STMT_VINFO_STRIDED_P): ... this.
22631 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
22632 (vect_verify_datarefs_alignment): Likewise.
22633 (vect_enhance_data_refs_alignment): Likewise.
22634 (vect_analyze_data_ref_access): Likewise.
22635 (vect_analyze_data_refs): Accept strided stores.
22636 * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
22637 (vect_model_load_cost): Adjust for macro rename.
22638 (vectorizable_mask_load_store): Likewise.
22639 (vectorizable_load): Likewise.
22640 (vectorizable_store): Open code strided stores.
22642 2015-05-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22644 * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
22645 Document sqrt_insn.
22647 2015-05-21 Richard Biener <rguenther@suse.de>
22650 * match.pd: Guard pattern optimzing (int)(float)int
22651 conversions to apply only on GIMPLE.
22653 2015-05-21 Jeff Law <law@redhat.com>
22655 * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
22656 multiply-accumulate/shift-add insn generation.
22658 2015-05-21 Oleg Endo <olegendo@gcc.gnu.org>
22661 * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
22662 operands[1] are the same.
22664 2015-05-21 Ilya Enkovich <enkovich.gnu@gmail.com>
22666 PR middle-end/66221
22667 * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
22668 build_distinct_type_copy to copy bounds.
22670 2015-05-21 Thomas Schwinge <thomas@codesourcery.com>
22672 * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
22673 Change to unsigned int.
22675 2015-05-20 Jeff Law <law@redhat.com>
22677 * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
22678 (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
22679 (pa_shadd_constant_p): Allow constants for shadd insns rather
22680 than valid scaling constants for memory addresses.
22681 * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
22682 * config/pa/predicates.md (mem_shadd_operand): New predicate.
22683 * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
22684 (shift-add insns using ASHIFT): New patterns.
22686 2015-05-20 Mikhail Maltsev <maltsevm@gmail.com>
22688 * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
22690 (fix_up_fall_thru_edges): Likewise.
22691 (fix_crossing_conditional_branches): Likewise. Promote jump targets
22692 from to rtx_insn to rtx_code_label where feasible.
22693 * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
22694 gen_move_insn (returned type changed to rtx_insn).
22695 * builtins.c (expand_errno_check): Fix arguments of
22696 do_compare_rtx_and_jump (now expects rtx_code_label).
22697 (expand_builtin_acc_on_device): Likewise.
22698 * cfgcleanup.c (try_simplify_condjump): Add cast when calling
22699 invert_jump (now exprects rtx_jump_insn).
22700 * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
22701 (construct_init_block): Use rtx_code_label.
22702 * cfgrtl.c (block_label): Promote return type to rtx_code_label.
22703 (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
22704 calling redirect_jump.
22705 (patch_jump_insn): Likewise.
22706 (redirect_branch_edge): Likewise.
22707 (force_nonfallthru_and_redirect): Likewise.
22708 (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
22710 (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
22711 * cfgrtl.h: Promote return type of block_label to rtx_code_label.
22712 * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
22713 * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
22714 to store the value retured by gen_label_rtx.
22715 * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
22717 * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
22718 (split_branches): Fix calls of redirect_jump.
22719 * dojump.c (jumpifnot): Promote argument type from rtx to
22721 (jumpifnot_1): Likewise.
22722 (jumpif): Likewise.
22723 (jumpif_1): Likewise.
22724 (do_jump_1): Likewise.
22725 (do_jump): Likewise. Use rtx_code_label when feasible.
22726 (do_jump_by_parts_greater_rtx): Likewise.
22727 (do_jump_by_parts_zero_rtx): Likewise.
22728 (do_jump_by_parts_equality_rtx): Likewise.
22729 (do_compare_rtx_and_jump): Likewise.
22730 * dojump.h: Update function prototypes.
22731 * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
22733 * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
22735 (emit_label_before): Likewise.
22736 (emit_jump_insn_after_noloc): Likewise.
22737 (emit_jump_insn_after_setloc): Likewise.
22738 (emit_jump_insn_after): Likewise
22739 (emit_jump_insn_before_setloc): Likewise.
22740 (emit_jump_insn_before): Likewise.
22741 (emit_label_before): Promote return type to rtx_code_label.
22742 (emit_label): Likewise.
22743 * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
22744 * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
22746 (emit_stack_restore): Likewise.
22747 * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
22748 (do_cmp_and_jump): Likewise.
22749 * expr.c (expand_expr_real_2): Likewise. Promote some local variables
22750 from rtx to rtx_code_label.
22751 (gen_move_insn_uncast): New function.
22752 * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
22753 * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
22754 * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
22755 * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
22756 invert_jump_1 and redirect_jump_1.
22757 * internal-fn.c (expand_arith_overflow_result_store): Fix call of
22758 do_compare_rtx_and_jump.
22759 (expand_addsub_overflow): Likewise.
22760 (expand_neg_overflow): Likewise.
22761 (expand_mul_overflow): Likewise.
22762 * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
22763 return value of gen_move_insn.
22764 * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
22765 * loop-doloop.c (add_test): Use rtx_code_label.
22766 (doloop_modify): Likewise.
22767 (doloop_optimize): Likewise.
22768 * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
22769 * lra-constraints.c (emit_spill_move): Remove cast of value returned
22771 (inherit_reload_reg): Add cast when calling dump_insn_slim.
22772 (split_reg): Likewise.
22773 * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
22775 * optabs.c (expand_binop_directly): Remove casts of values returned by
22777 (expand_unop_direct): Likewise.
22778 (expand_abs): Likewise.
22779 (maybe_emit_unop_insn): Likewise.
22780 (maybe_gen_insn): Promote return type to rtx_insn.
22781 * optabs.h: Update prototype of maybe_gen_insn.
22782 * postreload-gcse.c (eliminate_partially_redundant_load): Remove
22784 * recog.c (struct peep2_insn_data): Promote type of insn field to
22786 (peep2_reinit_state): Use NULL instead of NULL_RTX.
22787 (peep2_attempt): Remove casts of insn in peep2_insn_data.
22788 (peep2_fill_buffer): Promote argument from rtx to rtx_insn
22789 * recog.h (struct insn_gen_fn): Promote return types of function
22790 pointers and operator ().from rtx to rtx_insn.
22791 * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
22792 (fill_eager_delay_slots): Likewise.
22793 (relax_delay_slots): Likewise.
22794 (make_return_insns): Likewise.
22795 (dbr_schedule): Likewise.
22796 (optimize_skips): Likewise.
22797 (reorg_redirect_jump): Likewise.
22798 (fill_slots_from_thread): Likewise.
22799 * reorg.h: Update prototypes.
22800 * resource.c (find_dead_or_set_registers): Use dyn_cast to
22801 rtx_jump_insn instead of check. Use it's jump_target method.
22802 * rtl.h (rtx_jump_insn::jump_label): Define new method.
22803 (rtx_jump_insn::jump_target): Define new method.
22804 (rtx_jump_insn::set_jump_target): Define new method.
22805 * rtlanal.c (tablejump_p): Promote type of one local variable.
22806 * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
22807 (sched_analyze_insn): Likewise.
22808 * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
22809 (print_insn): Likewise.
22810 * stmt.c (label_rtx): Promote return type to rtx_insn.
22811 (force_label_rtx): Likewise.
22812 (jump_target_rtx): Define new function.
22813 (expand_label): Use it, get rid of one cast.
22814 (expand_naked_return): Promote rtx to rtx_code_label.
22815 (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
22816 (expand_case): Use rtx_code_label instread of rtx where feasible.
22817 (expand_sjlj_dispatch_table): Likewise.
22818 (emit_case_nodes): Likewise.
22819 * stmt.h: Declare jump_target_rtx. Update prototypes. Fix comments.
22820 * store-motion.c (insert_store): Make use of new return type of
22821 gen_move_insn and remove a cast.
22822 (replace_store_insn): Likewise.
22824 2015-05-20 Max Filippov <jcmvbkbc@gmail.com>
22826 * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
22827 by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
22829 2015-05-20 Jeff Law <law@redhat.com>
22831 * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
22832 dispose of the jump thread path when the jump threading
22833 opportunity is cancelled.
22835 2015-05-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
22837 * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
22838 when printing the caret character.
22840 2015-05-20 Marek Polacek <polacek@redhat.com>
22842 * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
22844 2015-05-20 Marek Polacek <polacek@redhat.com>
22846 * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
22847 * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
22848 * gimple-fold.c (canonicalize_bool): Likewise.
22849 (same_bool_result_p): Likewise.
22850 * tree-if-conv.c (parse_predicate): Likewise.
22852 2015-05-20 Marek Polacek <polacek@redhat.com>
22854 * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
22855 * gimplify.c (gimplify_modify_expr_rhs): Likewise.
22857 2015-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22859 * config/aarch64/aarch64.c (aarch64_class_max_nregs):
22860 Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
22863 2015-05-20 Robert Suchanek <robert.suchanek@imgtec.com>
22865 * config/mips/mips.h (micromips_globals): Declare.
22867 2015-05-20 David Malcolm <dmalcolm@redhat.com>
22869 * timevar.def (TV_INITIALIZE_RTL): New.
22870 * toplev.c (initialize_rtl): Use an auto_timevar to account this
22871 function's time to TV_INITIALIZE_RTL.
22873 2015-05-20 Ilya Enkovich <enkovich.gnu@gmail.com>
22875 * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
22876 gimple_build_nop calls.
22877 (chkp_find_bounds_for_elem): Likewise.
22878 (chkp_get_zero_bounds): Likewise.
22879 (chkp_get_none_bounds): Likewise.
22880 (chkp_get_bounds_by_definition): Likewise.
22881 (chkp_generate_extern_var_bounds): Likewise.
22882 (chkp_get_bounds_for_decl_addr): Likewise.
22883 (chkp_get_bounds_for_string_cst): Likewise.
22885 2015-05-20 Bin Cheng <bin.cheng@arm.com>
22887 PR tree-optimization/65447
22888 * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
22889 (dump_use, dump_uses): Support to dump sub use.
22890 (record_use): New parameters to support sub use. Remove call to
22892 (record_sub_use, record_group_use): New functions.
22893 (compute_max_addr_offset, split_all_small_groups): New functions.
22894 (group_address_uses, rewrite_use_address): New functions.
22895 (strip_offset): New declaration.
22896 (find_interesting_uses_address): Call record_group_use.
22897 (add_candidate): New assertion.
22898 (infinite_cost_p): Move definition forward.
22899 (add_costs): Check INFTY cost and return immediately.
22900 (get_computation_cost_at): Clear setup cost and dependent bitmap
22902 (determine_use_iv_cost_address): Compute cost for sub uses.
22903 (rewrite_use_address_1): Rename from old rewrite_use_address.
22904 (free_loop_data): Free sub uses.
22905 (tree_ssa_iv_optimize_loop): Call group_address_uses.
22907 2015-05-20 Kugan Vivekanandarajah <kuganv@linaro.org>
22908 Jim Wilson <jim.wilson@linaro.org>
22910 * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
22911 new fields loadv and storev.
22912 * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
22913 Initialize loadv and storev.
22914 * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
22915 (cortexa53_extra_costs): Likewise.
22916 (cortexa57_extra_costs): Likewise.
22917 (xgene1_extra_costs): Likewise.
22918 * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
22921 2015-05-20 Kugan Vivekanandarajah <kuganv@linaro.org>
22923 * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
22925 (cortexa8_extra_costs): Likewise.
22926 (cortexa5_extra_costs): Likewise.
22927 (cortexa7_extra_costs): Likewise.
22928 (cortexa12_extra_costs): Likewise.
22929 (cortexa15_extra_costs): Likewise.
22930 (v7m_extra_costs): Likewise.
22932 2015-05-20 Jeff Law <law@redhat.com>
22934 * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
22935 instead of open-coded version. Also delete the jump thread created
22936 within this function.
22938 2015-05-20 Alan Modra <amodra@gmail.com>
22940 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
22941 stack adjusting insn. Formatting.
22942 (rs6000_emit_prologue): Track stack adjusting insn, and use of
22943 r12. If possible, emit first -fsplit-stack arg pointer insn
22944 before stack adjust. Don't use r12 to save cr if split-stack.
22946 2015-05-20 Alan Modra <amodra@gmail.com>
22948 * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
22950 (rs6000_supports_split_stack): New function.
22951 * gcc/config/rs6000/rs6000.c (machine_function): Add
22952 split_stack_arg_pointer.
22953 (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
22954 (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
22955 rather than virtual_incoming_args_rtx.
22956 (rs6000_va_start): Likewise.
22957 (split_stack_arg_pointer_used_p): New function.
22958 (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
22959 (morestack_ref): New var.
22960 (gen_add3_const, rs6000_expand_split_stack_prologue,
22961 rs6000_internal_arg_pointer, rs6000_live_on_entry,
22962 rs6000_split_stack_space_check): New functions.
22963 (rs6000_elf_file_end): Call file_end_indicate_split_stack.
22964 * gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
22965 (UNSPECV_SPLIT_STACK_RETURN): Define.
22966 (split_stack_prologue, load_split_stack_limit,
22967 load_split_stack_limit_di, load_split_stack_limit_si,
22968 split_stack_return, split_stack_space_check): New expands and insns.
22969 * gcc/config/rs6000/rs6000-protos.h
22970 (rs6000_expand_split_stack_prologue): Declare.
22971 (rs6000_split_stack_space_check): Declare.
22973 2015-05-20 Alan Modra <amodra@gmail.com>
22975 * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
22976 (direct_return): Test vrsave_size rather than vrsave_mask.
22977 (rs6000_emit_prologue): Likewise. Remove redundant altivec tests.
22978 (rs6000_emit_epilogue): Likewise.
22980 2015-05-20 Alan Modra <amodra@gmail.com>
22982 * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
22983 when not saving registers.
22984 (debug_stack_info): Adjust to omit printing unused offsets,
22986 (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
22989 2015-05-19 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22992 * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
22993 value_type to const char *.
22995 2015-05-19 Sandra Loosemore <sandra@codesourcery.com>
22997 * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
22998 to build a biarch toolchain again.
23000 2015-05-19 Jan Hubicka <hubicka@ucw.cz>
23002 * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
23003 or implicit declarations.
23004 (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
23006 (get_odr_type): Check type has linkage before adding bases.
23007 (register_odr_type): Check that type has linkage before adding it.
23008 (type_known_to_have_no_deriavations_p): Rename to ..
23009 (type_known_to_have_no_derivations_p): This one.
23010 * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
23011 (type_known_to_have_no_derivations_p): This one.
23012 * ipa-polymorphic-call.c
23013 (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
23016 2015-05-19 Eric Botcazou <ebotcazou@adacore.com>
23018 * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
23019 (layout_type): Use RECORD_OR_UNION_TYPE_P.
23021 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23023 * config/s390/s390.c (s390_vector_bool_type_p): New function.
23024 (s390_invalid_binary_op): New function.
23025 (TARGET_INVALID_BINARY_OP): Define macro.
23027 2015-05-19 David Sherwood <david.sherwood@arm.com>
23029 * loop-invariant.c (create_new_invariant): Don't calculate address cost
23030 if mode is not a scalar integer.
23031 (get_inv_cost): Increase computational cost for unused invariants.
23033 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23035 * config.gcc: Add vecintrin.h to extra_headers. Add s390-c.o to
23036 c_target_objs and cxx_target_objs. Add t-s390 to tmake_file.
23037 * config/s390/s390-builtin-types.def: New file.
23038 * config/s390/s390-builtins.def: New file.
23039 * config/s390/s390-builtins.h: New file.
23040 * config/s390/s390-c.c: New file.
23041 * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
23042 CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
23043 * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
23044 (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
23046 * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
23048 (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
23049 (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
23050 variable definitions.
23051 (s390_const_operand_ok): New function.
23052 (s390_expand_builtin): Rewrite.
23053 (s390_init_builtins): New function.
23054 (s390_handle_vectorbool_attribute): New function.
23055 (s390_attribute_table): Add s390_vector_bool attribute.
23056 (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
23057 (s390_branch_condition_mask): Generate masks for new modes.
23058 (s390_expand_vec_compare_cc): New function.
23059 (s390_mangle_type): Add mangling for vector bool types.
23060 (enum s390_builtin): Remove.
23061 (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
23063 * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
23064 s390_cpu_cpp_builtins.
23065 (REGISTER_TARGET_PRAGMAS): New macro.
23066 * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
23067 (insn_cmp mode attribute): Add new CC modes.
23068 (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
23069 (lcbb): New pattern definition.
23070 * config/s390/s390intrin.h: Include vecintrin.h.
23071 * config/s390/t-s390: New file.
23072 * config/s390/vecintrin.h: New file.
23073 * config/s390/vector.md: Include vx-builtins.md.
23074 * config/s390/vx-builtins.md: New file.S/390 zvector builtin
23077 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23079 * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
23081 * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
23082 (s390_select_ccmode): Likewise.
23083 (s390_canonicalize_comparison): Swap operands if necessary.
23084 (s390_expand_vec_compare_scalar): Expand DFmode compare using
23085 single element vector instructions.
23086 (s390_emit_compare): Call s390_expand_vec_compare_scalar.
23087 (s390_branch_condition_mask): Generate CC masks for the new modes.
23088 * config/s390/s390.md (v0, vf, vd): New mode attributes.
23089 (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
23090 (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
23091 (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
23092 (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
23093 (*extend<DSF:mode><BFP:mode>2): New insn definition.
23094 (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
23095 (extend<DSF:mode><BFP:mode>2): Turn into expander.
23096 (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
23097 (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
23098 (sqrt<mode>2): Add vector instruction.
23100 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23102 * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
23104 * config/s390/predicates.md (const0_operand, constm1_operand)
23105 (constable_operand): Accept vector operands.
23106 * config/s390/s390-modes.def: Add supported vector modes.
23107 * config/s390/s390-protos.h (s390_cannot_change_mode_class)
23108 (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
23109 (s390_bytemask_vector_p, s390_expand_vec_strlen)
23110 (s390_expand_vec_compare, s390_expand_vcond)
23111 (s390_expand_vec_init): Add prototypes.
23112 * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
23113 (s390_vector_mode_supported_p): New function.
23114 (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
23115 (s390_contiguous_bitmask_vector_p): New function.
23116 (s390_bytemask_vector_p): New function.
23117 (s390_split_ok_p): Vector regs don't work either.
23118 (regclass_map): Add VEC_REGS.
23119 (s390_legitimate_constant_p): Handle vector constants.
23120 (s390_cannot_force_const_mem): Handle CONST_VECTOR.
23121 (legitimate_reload_vector_constant_p): New function.
23122 (s390_preferred_reload_class): Handle CONST_VECTOR.
23123 (s390_reload_symref_address): Likewise.
23124 (s390_secondary_reload): Vector memory instructions only support
23125 short displacements. Rename reload*_nonoffmem* to reload*_la*.
23126 (s390_emit_ccraw_jump): New function.
23127 (s390_expand_vec_strlen): New function.
23128 (s390_expand_vec_compare): New function.
23129 (s390_expand_vcond): New function.
23130 (s390_expand_vec_init): New function.
23131 (s390_dwarf_frame_reg_mode): New function.
23132 (print_operand): Handle addresses with 'O' and 'R' constraints.
23133 (NR_C_MODES, constant_modes): Add vector modes.
23134 (s390_output_pool_entry): Handle vector constants.
23135 (s390_hard_regno_mode_ok): Handle vector registers.
23136 (s390_class_max_nregs): Likewise.
23137 (s390_cannot_change_mode_class): New function.
23138 (s390_invalid_arg_for_unprototyped_fn): New function.
23139 (s390_function_arg_vector): New function.
23140 (s390_function_arg_float): Remove size variable.
23141 (s390_pass_by_reference): Handle vector arguments.
23142 (s390_function_arg_advance): Likewise.
23143 (s390_function_arg): Likewise.
23144 (s390_return_in_memory): Vector values are returned in a VR if
23146 (s390_function_and_libcall_value): Handle vector arguments.
23147 (s390_gimplify_va_arg): Likewise.
23148 (s390_call_saved_register_used): Consider the arguments named.
23149 (s390_conditional_register_usage): Disable v16-v31 for non-vec
23151 (s390_preferred_simd_mode): New function.
23152 (s390_support_vector_misalignment): New function.
23153 (s390_vector_alignment): New function.
23154 (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
23155 (TARGET_VECTOR_MODE_SUPPORTED_P)
23156 (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
23157 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
23158 (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
23159 (TARGET_VECTOR_ALIGNMENT): Define target macro.
23160 * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
23161 (FIRST_PSEUDO_REGISTER): Increase value.
23162 (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
23163 (VECTOR_REG_P): Define macros.
23164 (FIXED_REGISTERS, CALL_USED_REGISTERS)
23165 (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
23166 (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
23167 (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
23168 Add vector registers.
23169 (CANNOT_CHANGE_MODE_CLASS): Call C function.
23170 (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
23171 (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
23173 (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
23174 (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
23175 * config/s390/s390.md (UNSPEC_VEC_*): New constants.
23176 (VR*_REGNUM): New constants.
23177 (ALL): New mode iterator.
23178 (INTALL): Remove mode iterator.
23180 (movti): Implement TImode moves for VRs.
23181 Disable TImode splitter for VR targets.
23182 Implement splitting TImode GPR<->VR moves.
23183 (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
23184 (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
23185 reload<mode>_la_in, reload<mode>_la_out.
23186 (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
23187 (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
23188 (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
23189 (mov<mode> SF SD): Prefer lder, lde for loading.
23190 Add lrl and strl instructions.
23191 Add vector instructions.
23192 (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
23193 Call s390_expand_vec_strlen on z13.
23194 (*cc_to_int): Change predicate to nonimmediate_operand.
23195 (addti3): Rename to *addti3. New expander.
23196 (subti3): Rename to *subti3. New expander.
23197 * config/s390/vector.md: New file.
23199 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23201 * common/config/s390/s390-common.c (processor_flags_table): Add
23203 * config.gcc: Add z13.
23204 * config/s390/s390-opts.h (enum processor_type): Add
23205 PROCESSOR_2964_Z13.
23206 * config/s390/s390.c (s390_adjust_priority): Check for
23207 PROCESSOR_2964_Z13.
23208 (s390_reorg): Likewise.
23209 (s390_sched_reorder): Likewise.
23210 (s390_sched_variable_issue): Likewise.
23211 (s390_loop_unroll_adjust): Likewise.
23212 (s390_option_override): Likewise. Default to -mvx when available.
23213 * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
23214 (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
23215 (TARGET_VX_ABI): Define macros.
23217 (TARGET_DEFAULT): Add MASK_OPT_VX.
23218 * config/s390/s390.md ("cpu" attribute): Add z13.
23219 ("cpu_facility" attribute): Add vec.
23220 * config/s390/s390.opt (processor_type): Add z13.
23221 (mvx): New options.
23222 * doc/invoke.texi: Add z13 option for -march.
23224 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23226 * config/s390/predicates.md (shift_count_or_setmem_operand): Add
23227 mode check to make sure that only scalar integer values are
23230 2015-05-19 Jan Hubicka <hubicka@ucw.cz>
23232 * tree.c (verify_type_variant): Fix #undef.
23233 (gimple_canonical_types_compatible_p): Move here from lto.c
23234 (verify_type): Verify TYPE_CANONICAL compatibility.
23235 * tree.h (gimple_canonical_types_compatible_p): Declare.
23237 2015-05-19 Jakub Jelinek <jakub@redhat.com>
23239 PR middle-end/66199
23240 * tree.h (OMP_TEAMS_COMBINED): Define.
23241 * gimplify.c (enum gimplify_omp_var_data): Add
23242 GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
23243 (enum omp_region_type): Add ORT_COMBINED_TEAMS.
23244 (omp_notice_variable): Accept both ORT_TEAMS
23245 and ORT_COMBINED_TEAMS. Don't recurse if
23246 GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
23247 GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
23249 (omp_no_lastprivate): New function.
23250 (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
23251 and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
23252 notice_outer and set appropriate bits, otherwise make
23253 sure default(none) combined constructs won't complain.
23254 (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
23255 outer special casing, for OMP_CLAUSE_LASTPRIVATE if
23256 omp_no_lastprivate either remove the clause or turn it
23257 into OMP_CLAUSE_PRIVATE.
23258 (gimplify_omp_for): Fix up handling of implicit
23259 lastprivate or linear iterators.
23260 (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
23261 ORT_COMBINED_TEAMS.
23262 * omp-low.c (lower_omp_for_lastprivate): For combined
23263 for simd use fd.loop.n2 from the for rather than simd.
23265 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
23267 * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
23268 instead of gen_rtx_raw_REG.
23269 (cris_expand_epilogue): Likewise.
23270 * config/microblaze/microblaze.c (microblaze_classify_address):
23272 * config/sparc/sparc.md: Likewise.
23274 2015-05-19 Uros Bizjak <ubizjak@gmail.com>
23276 * config/alpha/alpha.c (alpha_legitimize_reload_address)
23277 (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
23278 CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
23279 (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
23280 Use CASE_CONST_SCALAR_INT.
23281 (print_operand) <case 'M'>: Use mode_width_operand to check the
23282 value of the constant.
23283 * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
23284 * config/alpha/predicates.md (input_operand): Use general_operand
23285 instead of match_code as operand check.
23286 (symbolic_operand): Use match_code with subexpression digits.
23287 * config/alpha/constraints.md (Q): Ditto.
23289 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23291 * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
23293 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23295 * config/s390/s390.c (s390_secondary_reload): Fix check for
23296 load/store relative.
23298 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23300 * recog.h: Increase MAX_RECOG_ALTERNATIVES. Change type of
23301 alternative_mask to uint64_t.
23303 2015-05-19 Jakub Jelinek <jakub@redhat.com>
23305 PR tree-optimization/66187
23306 * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
23307 Pass TYPE_SIGN to tree_int_cst_min_precision. If
23308 !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
23310 2015-05-19 David Malcolm <dmalcolm@redhat.com>
23312 * diagnostic.c (diagnostic_report_current_module): Strengthen
23313 local "new_map" from const line_map * to
23314 const line_map_ordinary *.
23315 * genmatch.c (error_cb): Likewise for local "map".
23316 (output_line_directive): Likewise for local "map".
23317 * input.c (expand_location_1): Likewise for local "map".
23318 Pass NULL rather than &map to
23319 linemap_unwind_to_first_non_reserved_loc, since the value is never
23320 read from there, and the value written back not read from here.
23321 (is_location_from_builtin_token): Strengthen local "map" from
23322 const line_map * to const line_map_ordinary *.
23323 (dump_location_info): Strengthen locals "map" from
23324 line_map *, one to const line_map_ordinary *, the other
23325 to const line_map_macro *.
23326 * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
23327 const line_map * to const line_map_macro *.
23328 (maybe_unwind_expanded_macro_loc): Add a call to
23329 linemap_check_macro when writing to the "map" field of the
23331 Introduce local const line_map_ordinary * "ord_map", using it in
23332 place of "map" in the part of the function where we know we have
23333 an ordinary map. Strengthen local "m" from const line_map * to
23334 const line_map_ordinary *.
23336 2015-05-19 Nick Clifton <nickc@redhat.com>
23339 * config/msp430/msp430.md (zero_extendhisi2): Add support for
23340 separate source and destination registers.
23342 2015-05-19 Richard Biener <rguenther@suse.de>
23344 PR tree-optimization/66165
23345 * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
23346 for no load permutation.
23348 PR tree-optimization/66185
23349 * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
23350 when building the SLP node from scalars.
23352 2015-05-19 Eric Botcazou <ebotcazou@adacore.com>
23353 Tristan Gingold <gingold@adacore.com>
23355 * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
23356 * builtins.c (expand_builtin_update_setjmp_buf): Make global.
23357 (expand_stack_restore): Call record_new_stack_level.
23358 (expand_stack_save): Do not call do_pending_stack_adjust.
23359 * builtins.h (expand_builtin_update_setjmp_buf): Declare.
23360 * calls.c (expand_call): Call record_new_stack_level for alloca.
23361 * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
23362 wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
23363 (update_sjlj_context): New global function.
23364 * except.h (update_sjlj_context): Declare.
23365 * explow.c (record_new_stack_level): New global function.
23366 (allocate_dynamic_stack_space): Call record_new_stack_level.
23367 * explow.h (record_new_stack_level): Declare.
23368 * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
23369 * cfgrtl.c (duplicate_insn_chain): Likewise.
23371 2015-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23373 * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
23374 (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
23375 STACK_GROWS_DOWNWARD as normal if.
23376 (expand_call): Likewise.
23378 2015-05-19 Oleg Endo <olegendo@gcc.gnu.org>
23381 * config/sh/sh.md (*round_int_even): New insn_and_split and
23382 accompanying new unnamed split.
23384 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
23386 * bitmap.c (bitmap_set_range): Handle count==1 specially.
23387 (bitmap_clear_range): Likewise.
23388 * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
23389 bitmap_set_range unconditionally.
23390 * df-problems.c (df_simulate_one_insn_forwards): Likewise.
23391 * df-scan.c (df_mark_reg): Likewise.
23392 * haifa-sched.c (setup_ref_regs): Likewise.
23393 * sched-rgn.c (update_live_1): Likewise.
23395 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
23397 * regs.h (END_HARD_REGNO): Delete.
23398 (END_REGNO): Move to...
23400 * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
23401 * caller-save.c (mark_set_regs): Likewise.
23402 * combine.c (move_deaths, distribute_notes): Likewise.
23403 * cse.c (invalidate, invalidate_for_call): Likewise.
23404 * df-scan.c (df_ref_record): Likewise.
23405 * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
23406 (record_last_reg_set_info): Likewise.
23407 * reg-stack.c (convert_regs_exit): Likewise.
23408 * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
23409 * resource.c (update_live_status): Likewise.
23410 * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
23412 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
23414 * rtl.h (reg_info): Add an nregs field.
23415 (REG_NREGS): Use it.
23416 (SET_REGNO_RAW): Delete.
23417 (set_regno_raw): New function.
23418 * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
23419 (END_REGNO): Redefine in terms of REG_NREGS.
23420 * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
23422 * emit-rtl.c (set_mode_and_regno): Likewise.
23423 * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
23424 instead of SET_REGNO_RAW.
23426 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
23428 * rtl.h (PUT_MODE_RAW): New macro.
23429 (PUT_REG_NOTE_KIND): Use it.
23430 (set_mode_and_regno): Declare.
23431 (gen_raw_REG): Change regno to "unsigned int".
23432 (gen_rtx_REG): Change "unsigned" to "unsigned int".
23433 (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
23434 use set_mode_and_regno to change the mode of registers.
23435 * gengenrtl.c (gendef): Use PUT_MODE_RAW.
23436 * emit-rtl.c (set_mode_and_regno): New function.
23437 (gen_raw_REG): Change regno to unsigned int. Use set_mode_and_regno.
23438 * caller-save.c (reg_save_code): Use set_mode_and_regno.
23439 * expr.c (init_expr_target): Likewise.
23440 * ira.c (setup_prohibited_mode_move_regs): Likewise.
23441 * postreload.c (reload_cse_simplify_operands): Likewise.
23443 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
23445 * caller-save.c (init_caller_save): Use word_mode and
23446 FIRST_PSEUDO_REGISTER when creating temporary rtxes.
23447 * expr.c (init_expr_target): Likewise.
23448 * ira.c (setup_prohibited_mode_move_regs): Likewise.
23449 * postreload.c (reload_cse_regs_1): Likewise.
23451 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
23453 * rtl.def (REG): Change format to "r".
23454 * rtl.h (rtunion): Remove rt_reg.
23455 (reg_info): New structure.
23456 (rtx_def): Add reg field to main union.
23457 (X0REGATTR): Delete.
23458 (REG_CHECK): New macro.
23459 (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
23460 * rtl.c (rtx_format): Document "r".
23461 (rtx_code_size): Handle REG specially.
23462 * gengenrtl.c (special_format): Return true for formats
23464 * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
23465 Deal with REG_ATTRS after the field loop.
23466 * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
23467 * expmed.c (init_expmed): Call gen_raw_REG instead of
23469 * expr.c (init_expr_target): Likewise.
23470 * regcprop.c (maybe_mode_change): Likewise.
23471 * varasm.c (make_decl_rtl): Likewise.
23472 * final.c (leaf_renumber_regs_insn): Return early after
23474 * genemit.c (gen_exp): Handle 'r' fields.
23475 * genpeep.c (match_rtx): Likewise.
23476 * gensupport.c (subst_pattern_match): Likewise.
23477 (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
23478 (alter_constraints, subst_dup): Likewise.
23479 * read-rtl.c (read_rtx_code): Likewise.
23480 * print-rtl.c (print_rtx): Likewise.
23481 * genrecog.c (find_operand, find_matching_operand): Likewise.
23482 (validate_pattern, match_pattern_2): Likewise.
23483 (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
23484 (rtx_test::regno_field): New function.
23485 (operator ==, safe_to_hoist_p, transition_parameter_type)
23486 (parameter_type_string, print_parameter_value)
23487 (print_nonbool_test, print_test): Handle new enum values.
23488 * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
23489 * lra-constraints.c (operands_match_p): Likewise.
23491 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
23493 * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
23494 Change type of new_regno to unsigned int.
23495 * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
23496 new_regno to unsigned int.
23497 (df_ref_change_reg_with_loc): Remove old_regno parameter.
23498 Change type of new_regno to unsigned int. Use SET_REGNO_RAW.
23499 * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
23500 (SET_REGNO_RAW): Add space after ",".
23502 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
23504 * rtl.h (REG_NREGS): New macro
23505 * alias.c (record_set): Use it.
23506 * cfgcleanup.c (mark_effect): Likewise.
23507 * combine.c (likely_spilled_retval_1): Likewise.
23508 (likely_spilled_retval_p, can_change_dest_mode): Likewise.
23509 (move_deaths, distribute_notes): Likewise.
23510 * cselib.c (cselib_record_set): Likewise.
23511 * df-problems.c (df_simulate_one_insn_forwards): Likewise.
23512 * df-scan.c (df_mark_reg): Likewise.
23513 * dse.c (look_for_hardregs): Likewise.
23514 * dwarf2out.c (reg_loc_descriptor): Likewise.
23515 (multiple_reg_loc_descriptor): Likewise.
23516 * expr.c (write_complex_part, read_complex_part): Likewise.
23517 (emit_move_complex): Likewise.
23518 * haifa-sched.c (setup_ref_regs): Likewise.
23519 * ira-lives.c (mark_hard_reg_live): Likewise.
23520 * lra.c (lra_set_insn_recog_data): Likewise.
23521 * mode-switching.c (create_pre_exit): Likewise.
23522 * postreload.c (reload_combine_recognize_const_pattern): Likewise.
23523 (reload_combine_recognize_pattern): Likewise.
23524 (reload_combine_note_use, move2add_record_mode): Likewise.
23525 (reload_cse_move2add): Likewise.
23526 * reg-stack.c (subst_stack_regs_pat): Likewise.
23527 * regcprop.c (kill_value, copy_value): Likewise.
23528 (copyprop_hardreg_forward_1): Likewise.
23529 * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
23530 (build_def_use): Likewise.
23531 * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
23532 (deps_analyze_insn): Likewise.
23533 * sched-rgn.c (check_live_1, update_live_1): Likewise.
23534 * sel-sched.c (count_occurrences_equiv): Likewise.
23535 * valtrack.c (dead_debug_insert_temp): Likewise.
23537 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
23539 * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
23540 * dse.c (note_add_store): Likewise.
23541 * ira-lives.c (mark_hard_reg_dead): Likewise.
23542 * loop-invariant.c (mark_reg_store): Likewise.
23543 (mark_reg_death): Likewise.
23544 * postreload.c (reload_combine): Likewise.
23545 (reload_combine_note_store): Likewise.
23546 (reload_combine_note_use): Likewise.
23547 * recog.c (peep2_reg_dead_p): Likewise.
23549 2015-05-19 Alan Modra <amodra@gmail.com>
23551 * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
23552 hard registers numbered greater or equal to ARG_POINTER_REGNUM.
23553 (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
23555 * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
23556 Use altivec_register_operand. Make insn predicate TARGET_ALTIVEC.
23557 * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
23558 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
23560 2015-05-19 Sameera Deshpande <Sameera.Deshpande@imgtec.com>
23562 * config/mips/mips.md (JOIN_MODE): New mode iterator.
23563 (join2_load_Store<JOIN_MODE:mode>): New pattern.
23564 (join2_loadhi): Likewise.
23565 (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
23566 load-load and store-stores.
23567 * config/mips/mips.opt (mload-store-pairs): New option.
23568 (TARGET_LOAD_STORE_PAIRS): New macro.
23569 * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
23570 * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
23571 * config/mips/mips.c (mips_load_store_bonding_p): New function.
23573 2015-05-19 Mikhail Maltsev <maltsevm@gmail.com>
23575 * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
23577 * dojump.c (do_compare_rtx_and_jump): Likewise.
23578 * expmed.c (emit_store_flag_1): Likewise.
23579 * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
23580 * final.c (sprint_ul): Use std::reverse for reversing a string.
23581 * fold-const.c (extract_muldiv_1): Use std::swap.
23582 * genmodes.c (emit_mode_int_n): Likewise.
23583 * ifcvt.c (dead_or_predicable): Likewise.
23584 * ira-build.c (ira_merge_live_ranges): Likewise.
23585 (swap_allocno_copy_ends_if_necessary): Likewise.
23586 * ira.c (ira_setup_alts): Likewise.
23587 * loop-iv.c (iv_analyze_expr): Likewise.
23588 (implies_p): Likewise.
23589 (canon_condition): Likewise.
23590 * lra-constraints.c (swap_operands): Likewise.
23591 * lra-lives.c (lra_merge_live_ranges): Likewise.
23592 * omega.c (swap): Remove.
23594 (omega_unprotect_1): Use std::swap.
23595 (omega_solve_geq): Likewise.
23596 * optabs.c (expand_binop_directly): Likewise.
23597 (expand_binop): Likewise.
23598 (emit_conditional_move): Likewise.
23599 (emit_conditional_add): Likewise.
23600 * postreload.c (reload_cse_simplify_operands): Likewise.
23601 * reg-stack.c (emit_swap_insn): Likewise.
23602 (swap_to_top): Likewise.
23603 (compare_for_stack_reg): Likewise.
23604 (subst_asm_stack_regs): Likewise.
23605 * reload.c (find_reloads): Likewise.
23606 * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
23607 * sel-sched.c (invoke_reorder_hooks): Likewise.
23608 (create_block_for_bookkeeping): Likewise.
23609 * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
23610 (lambda_matrix_right_hermite): Use std::swap.
23611 * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
23612 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
23613 * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
23614 * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
23615 * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
23616 * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
23617 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
23618 * tree-vrp.c (compare_ranges): Likewise.
23619 * var-tracking.c (add_with_sets): Likewise.
23620 (vt_find_locations): Likewise.
23622 2015-05-18 Andreas Tobler <andreast@gcc.gnu.org>
23624 * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
23626 (FBSD_ENDFILE_SPEC): Likewise.
23627 * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
23628 config/freebsd-spec.h.
23629 (ENDFILE_SPEC): Likewise.
23631 2015-05-18 Uros Bizjak <ubizjak@gmail.com>
23632 Richard Henderson <rth@redhat.com>
23635 * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
23636 Check for a memory location that is not a reference (using an AND)
23637 to an unaligned location here.
23638 * config/alpha/predicates.md (normal_memory_operand): Remove.
23640 2015-05-18 Alex Velenko <Alex.Velenko@arm.com>
23642 * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
23643 (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
23645 2015-05-18 Robert Suchanek <robert.suchanek@imgtec.com>
23647 * config/mips/mips.c (micromips_globals): New variable.
23648 (mips_set_compression_mode): Save and reinitialize target-dependent
23649 state for microMIPS.
23651 2015-05-18 Martin Liska <mliska@suse.cz>
23653 * dbgcnt.def: Add new counter.
23654 * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
23656 2015-05-18 Martin Liska <mliska@suse.cz>
23658 * dbgcnt.def: Sort counters.
23659 * opts.c (common_handle_option): Do not compile if
23660 -fdbg-cnt-list is enabled.
23662 2015-05-18 Tom de Vries <tom@codesourcery.com>
23664 * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
23665 (gimplify_va_arg_expr): Remove do_deref handling. Remove adding of
23666 address operator to va_list operand.
23667 * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
23669 * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
23671 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
23672 * config/s390/s390.c (s390_gimplify_va_arg): Same.
23673 * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
23675 2015-05-18 Tom de Vries <tom@codesourcery.com>
23677 * tree-ssa-tail-merge.c: Fix whitespace.
23679 2015-05-17 Jim Wilson <jim.wilson@linaro.org>
23681 * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
23682 cortex-a17, and cortex-a17.cortex-a7.
23684 2015-05-17 Oleg Endo <olegendo@gcc.gnu.org>
23687 * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
23689 2015-05-17 Uros Bizjak <ubizjak@gmail.com>
23692 * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
23693 QImode inner modes for TARGET_AVX512BW. Force mask operand
23694 to a register for AVX512F modes.
23696 2015-05-16 Jan Hubicka <hubicka@ucw.cz>
23698 * toplev.c (emit_debug_global_declarations): Do not output debug info
23699 when doing slim LTO objects.
23701 2015-05-16 Jan Hubicka <hubicka@ucw.cz>
23703 * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
23704 odr_types_equivalent_p): Declare.
23705 (odr_type_p): Use gcc_checking_assert.
23706 (type_in_anonymous_namespace_p) Declare.
23707 (type_with_linkage_p): Declare.
23708 * common.opt (Wlto-type-mismatch): New warning.
23709 * ipa-devirt.c (compound_type_base): New function.
23710 (odr_or_derived_type_p): New function.
23711 (odr_types_equivalent_p): New function.
23712 (add_type_duplicate): Simplify.
23713 (type_with_linkage_p): Add hack to prevent false positives on C types
23714 (type_in_anonymous_namespace_p): Likewise.
23715 * tree.c (need_assembler_name_p): Use type_with_linkage.
23716 * tree.h (type_in_anonymous_namespace_p): Remove.
23717 * doc/invoke.texi (-Wlto-type-mismatch): Document
23719 2015-05-16 Jan Hubicka <hubicka@ucw.cz>
23721 * tree.c (verify_type_variant): Verify tree_base and type_common flags.
23722 (verify_type): Verify STRING_FLAG.
23724 2015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
23727 * tree-pretty-print.c (percent_K_format): Replace locus pointer
23728 with accessor function.
23729 * tree-diagnostic.c (diagnostic_report_current_function): Use
23730 diagnostic_location function.
23731 (maybe_unwind_expanded_macro_loc): Likewise.
23732 (virt_loc_aware_diagnostic_finalizer): Likewise.
23733 (default_tree_printer): Replace locus pointer with accessor function.
23734 * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
23735 (diagnostic_set_info_translated): Initialize second location.
23736 (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
23737 (diagnostic_show_locus): Handle two locations. Call
23738 diagnostic_print_caret_line.
23739 (diagnostic_print_caret_line): New.
23740 (default_diagnostic_starter): Use diagnostic_location function.
23741 (diagnostic_report_diagnostic): Use diagnostic_location function.
23742 (verbatim): Do not set text.locus.
23743 * diagnostic.h (struct diagnostic_info): Remove location field.
23744 (struct diagnostic_context): Make caret_chars an array of two.
23745 (diagnostic_location): New inline.
23746 (diagnostic_expand_location): Handle two locations.
23747 (diagnostic_same_line): New inline.
23748 (diagnostic_print_caret_line): Declare.
23749 (CARET_LINE_MARGIN): New constant.
23750 * pretty-print.c (pp_printf): Do not set text.locus.
23751 (pp_verbatim): Do not set text.locus.
23752 * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
23753 (struct text_info): Replace locus pointer with locations
23754 array. Add accessor functions.
23756 2015-05-16 Kugan Vivekanandarajah <kuganv@linaro.org>
23757 Zhenqiang Chen <zhenqiang.chen@linaro.org>
23760 * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
23761 * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
23762 large constants in register instead of splitting them.
23764 2015-05-16 Uros Bizjak <ubizjak@gmail.com>
23767 * config/alpha/alpha.c (get_aligned_mem): Also look for reload
23768 replacements in memory addresses.
23769 (get_unaligned_address): Ditto.
23771 2015-05-16 James Bowman <james.bowman@ftdichip.com>
23773 * config/ft32/*: New files for FT32 port.
23774 * doc/install.texi: Add FT32 information.
23775 * doc/invoke.texi: Add FT32 information.
23776 * doc/md.texi: Add FT32 information.
23777 * doc/contrib.texi: Self added.
23779 2015-05-15 Marc Glisse <marc.glisse@inria.fr>
23781 PR tree-optimization/64454
23782 * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
23783 (-1 - A -> ~A): Remove unnecessary condition.
23785 2015-05-15 Gregor Richards <gregor.richards@uwaterloo.ca>
23787 * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
23788 * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
23789 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
23791 2015-05-15 Ilya Enkovich <ilya.enkovich@intel.com>
23793 * ipa-chkp.h (chkp_wrap_function): New.
23794 * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
23795 (chkp_wrap_function_name): New.
23796 (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
23797 to get wrapper name.
23798 * lto-cgraph.c: Include ipa-chkp.h.
23799 (input_cgraph_1): Avoid alias chain for wrappers.
23801 2015-05-15 Ilya Enkovich <enkovich.gnu@gmail.com>
23803 PR middle-end/66134
23804 * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
23805 (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
23807 2015-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23809 * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
23810 (AARCH64_FL_SLOWMUL): Delete.
23811 (AARCH64_FL_CRC): Redefine to 1<<3.
23812 (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
23814 2015-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23816 * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
23819 2015-05-15 Uros Bizjak <ubizjak@gmail.com>
23821 * config/alpha/alpha.md (extendqidi2): Use general_operand
23822 instead of some_operand for operand[1] predicate.
23823 (extendhidi2): Ditto.
23824 (cbranchdi4): Use general_operand instead of some_operand
23825 for operand[1] and operands[2] predicates.
23826 (cstoredi4): Ditto.
23827 * config/alpha/predicates.md (some_operand): Remove unused predicate.
23828 (some_ni_operand): Ditto.
23830 2015-05-15 Uros Bizjak <ubizjak@gmail.com>
23832 * config/alpha/alpha.c (alpha_extract_integer): Do not handle
23833 CONST_WIDE_INT and CONST_DOUBLE. Assert CONST_INT_P (x).
23834 (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
23835 low part of the constant using alpha_emit_set_const_1.
23836 (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
23838 2015-05-14 Rohit Arul Raj <rohitrulraj@freescale.com>
23840 * varasm.c (output_constant_pool_1): Pass down alignment from
23841 constant pool entry's descriptor to output_constant_pool_2.
23842 (output_object_block): Add comment prior to call to
23843 output_constant_pool_1.
23845 2015-05-14 Vladimir Makarov <vmakarov@redhat.com>
23847 PR rtl-optimization/65862
23848 * target.def (ira_change_pseudo_allocno_class): New hook.
23849 * targhooks.c (default_ira_change_pseudo_allocno_class): Default
23851 * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
23852 * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
23854 * ira-costs.c (find_costs_and_classes): Call the hook and change
23855 classes when it is necessary.
23856 * doc/tm.texi: Update.
23858 2015-05-14 Alexander Monakov <amonakov@ispras.ru>
23860 * config/i386/i386.md (sibcall_memory): Check that register with
23861 callee address is not also used as one of the arguments, instead
23862 of checking that it is not live after the sibcall.
23863 (sibcall_pop_memory): Ditto.
23864 (sibcall_value_memory): Ditto.
23865 (sibcall_value_pop_memory): Ditto.
23867 2015-05-14 Marc Glisse <marc.glisse@inria.fr>
23869 * generic-match-head.c (types_match): Handle non-types.
23870 * gimple-match-head.c (types_match): Likewise.
23871 * match.pd: Remove unnecessary TREE_TYPE for types_match.
23873 2015-05-14 Wilco Dijkstra <wdijkstr@arm.com>
23875 * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
23876 (csneg3<mode>_insn): Enable expansion of pattern.
23878 2015-05-14 Nick Clifton <nickc@redhat.com>
23880 * config/rl78/rl78.c (rl78_select_section): Select the correct
23881 default section based upon the category of the decl.
23883 2015-05-13 Segher Boessenkool <segher@kernel.crashing.org>
23885 PR rtl-optimization/30967
23886 * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
23887 destination mode for the cost of scc patterns.
23889 2015-05-13 Uros Bizjak <ubizjak@gmail.com>
23891 * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
23892 using SWIM248 mode iterator.
23893 (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
23894 (*mulvhi4): mark operand[1] as commutative. Use nonimmediate_operand
23895 for operand[2] constraint.
23896 (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
23898 2015-05-13 Jakub Jelinek <jakub@redhat.com>
23900 PR middle-end/66133
23901 * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
23902 make sure it is never noreturn, even when the task body does not
23904 (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
23905 right before GIMPLE_OMP_RETURN.
23906 (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
23907 for GIMPLE_OMP_TASK. For GIMPLE_OMP_RETURN corresponding to
23908 GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
23910 2015-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23912 * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
23913 * tree-ssa-math-opts.c: Include params.h
23914 (pow_synth_sqrt_info): New struct.
23915 (representable_as_half_series_p): New function.
23916 (get_fn_chain): Likewise.
23917 (print_nested_fn): Likewise.
23918 (dump_fractional_sqrt_sequence): Likewise.
23919 (dump_integer_part): Likewise.
23920 (expand_pow_as_sqrts): Likewise.
23921 (gimple_expand_builtin_pow): Use above to attempt to expand
23922 pow as series of square roots. Removed now unused variables.
23924 2015-05-13 Uros Bizjak <ubizjak@gmail.com>
23926 * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
23927 (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
23928 Remove *p0 and *p1 arguments. Rewrite function.
23929 (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
23930 (alpha_split_const_mov): Update calls to alpha_extract_integer and
23931 alpha_emit_set_long_const.
23932 (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
23933 (alpha_output_mi_thunk_osf): Ditto.
23934 * config/alpha/alpha.md (movti): Do not check operands[1]
23937 2015-05-13 Richard Biener <rguenther@suse.de>
23939 PR tree-optimization/66129
23940 * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
23942 (vect_schedule_slp_instance): Fix typo.
23944 2015-05-13 David Malcolm <dmalcolm@redhat.com>
23946 * common.opt (fdump-internal-locations): New option.
23947 * input.c: Include diagnostic-core.h.
23948 (get_end_location): New function.
23949 (write_digit): New function.
23950 (write_digit_row): New function.
23951 (dump_location_range): New function.
23952 (dump_labelled_location_range): New function.
23953 (dump_location_info): New function.
23954 * input.h (dump_location_info): New prototype.
23955 * toplev.c (compile_file): Handle flag_dump_locations.
23957 2015-05-13 Eric Botcazou <ebotcazou@adacore.com>
23959 * gimple-expr.h (is_gimple_constant): Reorder.
23960 * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
23962 2015-05-13 Segher Boessenkool <segher@kernel.crashing.org>
23964 * combine.c (simplify_set): When generating a CC set, if the
23965 source already is in the correct mode, do not wrap it in a
23966 compare. Simplify the rest of that code.
23968 2015-05-13 Richard Biener <rguenther@suse.de>
23970 PR tree-optimization/66123
23971 * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
23974 2015-05-13 Richard Biener <rguenther@suse.de>
23976 PR middle-end/66110
23977 * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
23979 * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
23981 2015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
23983 * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
23984 * aclocal.m4: Regenerated with automake-1.11.6.
23986 2015-05-13 Tom de Vries <tom@codesourcery.com>
23988 PR tree-optimization/66010
23989 * gimplify.h (gimplify_va_arg_internal): Remove declaration.
23990 * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
23991 * tree-stdarg.c (expand_ifn_va_arg_1): ... here. Choose between lval
23992 and rval based on do_deref.
23994 2015-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
23997 * config/i386/i386.c (ix86_rtx_costs): We want to propagate
23998 link time constants into adress expressions and therefore set
24001 2015-05-13 Jakub Jelinek <jakub@redhat.com>
24004 * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
24005 Use SWI248 iterator instead of SWI.
24006 (*mulv<mode>4_1): Use SWI48 instead of SWI. Simplify output template.
24007 Use eq_attr "alternative" "0" instead of match_test in
24008 length_immediate attribute computation.
24009 (*mulvhi4, *mulvhi4_1): New define_insns.
24012 * internal-fn.c (get_min_precision): Use UNSIGNED instead of
24013 SIGNED to get precision of non-negative value.
24015 2015-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
24018 * function.c (diddle_return_value_1): Process bounds first.
24019 * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
24022 2015-05-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
24024 PR rtl-optimization/64616
24025 * loop-invariant.c (can_move_invariant_reg): New.
24026 (move_invariant_reg): Call above new function to decide whether
24027 instruction can just be moved, skipping creation of temporary
24030 2015-05-12 Jan Hubicka <hubicka@ucw.cz>
24032 PR target/pr66047.c
24033 * i386.c (ix86_function_sseregparm): Only return -1 if local function
24034 with implied regparm is called from -mno-sse function.
24035 (init_cumulative_args): Output error if ix86_function_sseregparm
24036 return -1 and SSE register would be needed.
24037 (function_arg_advance_32): Likewise.
24038 (function_arg_32): Likewise.
24039 * i386.h (ix86_args): Add decl field.
24041 2015-05-12 Jan Hubicka <hubicka@ucw.cz>
24044 * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
24045 inlines across optimization boundary.
24047 2015-05-12 Jason Merrill <jason@redhat.com>
24049 * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
24050 string literal and macro name.
24052 2015-05-12 Steve Ellcey <sellcey@imgtec.com>
24054 * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
24055 * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
24056 * config/mips/predicates.md (const_immlsa_operand): Remove log call.
24058 2015-05-12 David Malcolm <dmalcolm@redhat.com>
24060 * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
24061 (-Wmisleading-indentation): New option.
24062 * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
24064 2015-05-12 Uros Bizjak <ubizjak@gmail.com>
24066 * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
24067 * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
24068 (alpha_extract_integer): Ditto.
24069 (alpha_legitimate_constant_p): Ditto.
24070 (alpha_split_tmode_pair): Ditto.
24071 (alpha_preferred_reload_class): Add CONST_WIDE_INT.
24072 (alpha_expand_mov): Ditto.
24073 (print_operand): Remove handling of 'H' modifier.
24074 <case 'm'>: Remove CONST_DOUBLE handling.
24075 (summarize_insn): Handle CONST_WIDE_INT.
24076 * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
24078 (movti): Handle CONST_WIDE_INT.
24079 * config/alpha/constraints.md ('H'): Remove constraint definition.
24080 ('G'): Do not match MODE_FLOAT class.
24081 * config/alpha/predicates.md (const0_operand): Also match
24083 (non_add_const_operand): Ditto.
24084 (non_zero_const_operand): Ditto.
24085 (some_operand): Ditto.
24086 (input_operand): Ditto. Handle CONST_WIDE_INT.
24087 (and_operand): Do not match const_double.
24088 * config/alpha/sync.md (fetchop_constr): Remove H constraint.
24090 2015-05-12 Andrew MacLeod <amacleod@redhat.com>
24093 * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
24094 (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
24095 * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
24096 is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
24097 is_mm_seq_cst, is_mm_sync): New accessor functions.
24098 * builtins.c (expand_builtin_sync_operation,
24099 expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
24100 (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
24101 (get_memmodel, expand_builtin_atomic_compare_exchange,
24102 expand_builtin_atomic_load, expand_builtin_atomic_store,
24103 expand_builtin_atomic_clear): Use new accessor routines.
24104 (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
24105 * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
24106 (maybe_emit_sync_lock_test_and_set): Use new accessors and
24107 MEMMODEL_SYNC_ACQUIRE.
24108 (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
24109 (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
24110 expand_atomic_store): Use new accessors.
24111 * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
24112 * tsan.c (instrument_builtin_call): Update check for memory model beyond
24113 final enum to use MEMMODEL_LAST.
24114 * c-family/c-common.c: Use new accessor for memmodel_base.
24115 * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
24117 * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
24118 arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
24119 mem_thread_fence, *dmb): Likewise.
24120 * config/alpha/alpha.c (alpha_split_compare_and_swap,
24121 alpha_split_compare_and_swap_12): Likewise.
24122 * config/arm/arm.c (arm_expand_compare_and_swap,
24123 arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
24124 * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
24125 atomic_loaddi): Likewise.
24126 * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
24128 * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
24129 * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
24131 * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
24132 atomic_store<mode>, atomic_compare_and_swap<mode>,
24133 atomic_exchange<mode>): Use new accessors.
24134 * config/mips/mips.c (mips_process_sync_loop): Likewise.
24135 * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
24136 * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
24137 rs6000_post_atomic_barrier): Add new cases.
24138 (rs6000_expand_atomic_compare_and_swap): Use new accessors.
24139 * config/rs6000/sync.md (mem_thread_fence): Add new cases.
24140 (atomic_load<mode>): Add new cases and use new accessors.
24141 (store_quadpti): Add new cases.
24142 * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
24144 * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
24145 * doc/extend.texi: Update docs to indicate 16 bits are used for memory
24148 2015-05-12 Jan Hubicka <hubicka@ucw.cz>
24150 * ipa-devirt.c (type_with_linkage_p): New function.
24151 (type_in_anonymous_namespace_p): Move here from tree.c; assert that
24153 (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
24154 (can_be_name_hashed_p): Simplify.
24155 (hash_odr_name): Check that type has linkage before checking if it is
24157 (types_same_for_odr): Likewise.
24158 (odr_name_hasher::equal): Likewise.
24159 (odr_subtypes_equivalent_p): Likewise.
24160 (warn_types_mismatch): Likewise.
24161 (get_odr_type): Likewise.
24162 (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
24163 * ipa-utils.h (odr_type_p): Move offline.
24164 * tree.c (need_assembler_name_p): Fix handling of types
24166 (type_in_anonymous_namespace_p): Move to ipa-devirt.c
24168 2015-05-12 David Malcolm <dmalcolm@redhat.com>
24170 * timevar.c (timevar_enable): Delete in favor of...
24171 (g_timer): New global.
24172 (struct timevar_def): Move to timevar.h inside class timer.
24173 (struct timevar_stack_def): Likewise.
24174 (timevars): Delete global in favor of field "m_timevars" within
24175 class timer in timevar.h
24176 (stack): Likewise, in favor of field "m_stack".
24177 (unused_stack_instances): Likewise, in favor of field
24178 "m_unused_stack_instances".
24179 (start_time): Likewise, in favor of field "m_start_time".
24180 (get_time): Eliminate check for timevar_enable.
24181 (timer::timer): New function, built from part of timevar_init.
24182 (timevar_init): Rewrite idempotency test from using
24183 "timevar_enable" bool to using dynamic allocation of "g_timer".
24184 Move rest of implementation into timer's constructor.
24185 (timevar_push_1): Rename to...
24186 (timer::push): ...this, adding "m_" prefixes to variables that
24187 are now fields of timer.
24188 (timevar_pop_1): Likewise, rename to...
24189 (timer::pop): ...this, and add "m_" prefixes.
24190 (timevar_start): Replace test for "timevar_enable" with one for
24191 "g_timer", and move bulk of implementation to...
24192 (timer::start): ...here, adding "m_" prefixes.
24193 (timevar_stop): Likewise, from here...
24194 (timer::stop): ...to here.
24195 (timevar_cond_start): Likewise, from here...
24196 (timer::cond_start): ...to here.
24197 (timevar_cond_stop): Likewise, from here...
24198 (timer::cond_stop): ...to here.
24199 (validate_phases): Rename to...
24200 (timer::validate_phases): ...this, and add "m_" prefixes. Make
24201 locals "total" and "tv" const.
24202 (timevar_print): Rename to...
24203 (timer::print): ...this, and add "m_" prefixes. Make locals
24204 "total" and "tv" const. Eliminate test for timevar_enable.
24205 * timevar.h (timevar_enable): Eliminate.
24206 (g_timer): New declaration.
24207 (timevar_push_1): Eliminate.
24208 (timevar_pop_1): Eliminate.
24209 (timevar_print): Eliminate.
24210 (class timer): New class.
24211 (timevar_push): Rewrite to use g_timer.
24212 (timevar_pop): Likewise.
24213 * toplev.c (toplev::~toplev): Likewise.
24215 2015-05-12 Richard Earnshaw <rearnsha@arm.com>
24217 * arm-protos.h (arm_sched_autopref): Delete.
24218 (tune_params): Re-organize, use enums for flag values.
24219 (FUSE_OPS): New macro.
24220 * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
24221 (ARM_PREFETCH_BENEFICIAL): Likewise.
24222 (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
24223 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
24224 (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
24225 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
24226 (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
24227 (arm_cortex_a57_tune, arm_xgene1_tune, arm_cortex_a5_tune)
24228 (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
24229 (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
24231 (arm_option_override, thumb2_reorg, arm_print_tune_info)
24232 (aarch_macro_fusion_pair_p): Update uses of current_tune.
24233 * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
24235 2015-05-12 Sandra Loosemore <sandra@codesourcery.com>
24237 * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
24240 2015-05-12 Chung-Lin Tang <cltang@codesourcery.com>
24241 Sandra Loosemore <sandra@codesourcery.com>
24243 * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
24245 (REG_CLASS_NAMES): Add "IJMP_REGS".
24246 (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
24247 * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
24248 use new "c" register constraint.
24249 * config/nios2/constraint.md (c): New register constraint
24250 corresponding to IJMP_REGS.
24252 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
24254 * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
24255 *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
24256 define_splits): Delete, revamp, transmogrify into ...
24257 (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
24258 *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
24259 *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
24262 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
24264 * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
24265 gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
24267 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
24269 * config/rs6000/rs6000.md (extzv): FAIL for SImode.
24270 (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
24271 *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
24272 *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
24273 *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
24274 *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
24275 *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
24276 *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
24277 *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
24278 *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
24279 *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
24280 *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
24281 *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
24282 *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
24283 *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
24284 *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
24285 and 30 corresponding splitters): Delete.
24287 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
24289 * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
24292 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
24294 * combine.c (recog_for_combine_1): New function, factored out
24295 from recog_for_combine.
24296 (change_zero_ext): New function.
24297 (recog_for_combine): If recog fails, try again with the pattern
24298 modified by change_zero_ext; if that still fails, restore the
24301 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
24303 * combine.c (get_undo_marker): New function.
24304 (undo_to_marker): New function, largely factored out from ...
24305 (undo_all): ... this. Adjust.
24307 2015-05-12 Richard Biener <rguenther@suse.de>
24309 PR tree-optimization/66101
24310 * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
24311 fixup if we turn a loop exit edge to a fallthru edge.
24313 2015-05-12 Richard Biener <rguenther@suse.de>
24315 PR tree-optimization/37021
24316 * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
24317 (SLP_TREE_TWO_OPERATORS): New define.
24318 * tree-vect-slp.c (vect_create_new_slp_node): Initialize
24319 SLP_TREE_TWO_OPERATORS.
24320 (vect_build_slp_tree_1): Allow two mixing plus/minus in an
24322 (vect_build_slp_tree): Adjust.
24323 (vect_analyze_slp_cost_1): Likewise.
24324 (vect_schedule_slp_instance): Vectorize mixing plus/minus by
24325 emitting two vector stmts and mixing the results.
24327 2015-05-12 Dominik Vogt <vogt@linux.vnet.ibm.com>
24329 * call.c (print_z_candidates): Remove dead code.
24331 2015-05-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24333 * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
24334 and zEC12_simple_fp.
24335 * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
24338 2015-05-12 Tom de Vries <tom@codesourcery.com>
24340 PR tree-optimization/66010
24341 * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
24343 * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
24344 (gimplify_va_arg_internal): Remove loc parameter. Assert no array-typed
24345 va_lists are passed, and remove corresponding handling.
24346 (gimplify_va_arg_expr): Only take address of ap if necessary. Add
24347 do_deref argument to ifn_va_arg.
24348 * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
24351 2015-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24354 * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
24355 REG before taking its REGNO.
24357 2015-05-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
24359 * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
24360 rsp->sign_bit_copies and rsp->nonzero_bits into ...
24361 (update_rsp_from_reg_equal): This. Also use REG_EQUAL note on src if
24362 present to get more accurate information about the number of sign bit
24363 copies and non zero bits.
24365 2015-05-12 Richard Biener <rguenther@suse.de>
24367 * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
24368 do not allow unrolling.
24370 2015-05-11 Richard Henderson <rth@redhat.com>
24372 * config/i386/i386-modes.def (CCP): New.
24373 * config/i386/i386.c (put_condition_code): Handle it.
24374 (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
24376 2015-05-11 Richard Henderson <rth@redhat.com>
24378 * target.def (md_asm_clobbers): Replace with...
24379 (md_asm_adjust): this.
24380 * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
24381 (TARGET_MD_ASM_ADJUST): New.
24382 * tm.texi: Rebuild.
24383 * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
24384 * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
24385 * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
24387 * cfgexpand.c (check_operand_nalternatives): Accept vector of
24388 constraints instead of lists of outputs and inputs.
24389 (expand_asm_stmt): Save and restore input_location around the
24390 body of the function. Move asm data into vectors instead of
24391 building tree lists. Generate cleanup sequences as needed,
24392 rather than waiting til the end. Use new md_asm_adjust hook.
24394 * config/vxworks.c: Include vec.h before target.h.
24395 * gimple.c: Likewise.
24396 * incpath.c: Likewise.
24397 * mode-switching.c: Likewise.
24399 * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
24400 (cris_md_asm_adjust): this.
24401 (TARGET_MD_ASM_CLOBBERS): Remove.
24402 (TARGET_MD_ASM_ADJUST): New.
24403 * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
24404 (ix86_md_asm_adjust): this.
24405 (TARGET_MD_ASM_CLOBBERS): Remove.
24406 (TARGET_MD_ASM_ADJUST): New.
24407 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
24408 (mn10300_md_asm_adjust): this.
24409 (TARGET_MD_ASM_CLOBBERS): Remove.
24410 (TARGET_MD_ASM_ADJUST): New.
24411 * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
24412 (rs6000_md_asm_adjust): this.
24413 (TARGET_MD_ASM_CLOBBERS): Remove.
24414 (TARGET_MD_ASM_ADJUST): New.
24415 * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
24416 (visium_md_asm_adjust): this.
24417 (TARGET_MD_ASM_CLOBBERS): Remove.
24418 (TARGET_MD_ASM_ADJUST): New.
24420 2015-05-11 Richard Henderson <rth@redhat.com>
24422 * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
24423 if noutputs is zero.
24424 * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
24426 * cfgexpand.c (expand_asm_operands): Merge into...
24427 (expand_asm_stmt): ... here.
24429 * cfgexpand.c (expand_asm_operands): Don't call
24430 resolve_asm_operand_names.
24431 * stmt.c (resolve_asm_operand_names): Clarify block comment.
24433 2015-05-11 Jan Hubicka <hubicka@ucw.cz>
24435 * dwarf2out.c (gen_member_die): Sanity check that we access
24436 TYPE_MAIN_VARIANT for TYPE_METHODS.
24437 * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
24438 checking TYPE_METHODS.
24439 * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
24441 (build_distinct_type_copy): Clear TYPE_METHODS.
24442 (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
24443 (verify_type): Allow TYPE_METHODS to be error_mark_node.
24444 * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
24446 2015-05-11 Eric Botcazou <ebotcazou@adacore.com>
24448 * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
24449 (emit_pattern_before_setloc): Likewise.
24451 2015-05-11 Richard Sandiford <richard.sandiford@arm.com>
24453 * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
24454 for define_peephole2s.
24455 (get_peephole2_pattern): New function.
24456 (main): Use it. Call validate_pattern.
24458 2015-05-11 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
24460 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
24461 LAST_CALLEE_SAVED_REG instead of hard-coded register number.
24462 (Last callee saved reg is different for AVR_TINY architecture)
24464 2015-05-11 Uros Bizjak <ubizjak@gmail.com>
24466 * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
24467 when looking for memory references.
24469 2015-05-11 Alexander Monakov <amonakov@ispras.ru>
24472 * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
24473 via function pointers.
24475 2015-05-11 Alexander Monakov <amonakov@ispras.ru>
24477 * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
24478 indirect call by forcing address into a pseudo with -fno-plt.
24479 * common.opt (flag_plt): New option.
24480 * doc/invoke.texi (Code Generation Options): Add -fno-plt.
24481 ([-fno-plt]): Document.
24483 2015-05-11 Markus Trippelsdorf <markus@trippelsdorf.de>
24486 * config/rs6000/option-defaults.h: Add space between string literal
24489 2015-05-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
24491 * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
24492 accross ARM targets.
24494 2015-05-11 Christian Bruel <christian.bruel@st.com>
24496 * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
24497 * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
24499 2015-05-11 Richard Sandiford <richard.sandiford@arm.com>
24501 PR rtl-optimization/66076
24502 * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
24503 Don't grow the heap array if it is already big enough from a
24504 previous iteration.
24506 2015-05-11 Christian Bruel <christian.bruel@st.com>
24508 * config/arm/arm-protos.h (arm_declare_function_name): Declare.
24509 (is_called_in_ARM_mode): Remove.
24510 * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
24511 (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
24512 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
24513 arm_declare_function_name.
24515 2015-05-11 Christian Bruel <christian.bruel@st.com>
24517 * config/arm/arm.c (arm_option_override): Reoganized and split into :
24518 (arm_option_params_internal); New function.
24519 (arm_option_check_internal): New function.
24520 (arm_option_override_internal): New function.
24521 (thumb_code, thumb1_code): Remove.
24522 * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
24523 (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
24524 (thumb_code, thumb1_code): Remove.
24525 * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
24527 2015-05-11 Uros Bizjak <ubizjak@gmail.com>
24529 * config/alpha/alpha.c (alpha_emit_set_const_1)
24530 (alpha_emit_set_long_const, alpha_extract_integer)
24531 (alpha_legitimate_constant_p, alpha_split_const_mov)
24532 (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
24533 [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
24534 (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
24536 * config/alpha/predicates.md (mode_mask_operand): Do not match
24538 [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
24539 * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
24540 Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
24541 [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
24542 (*negtf_internal): Use gen_int_mode instead of immed_double_const.
24544 2015-05-11 Jakub Jelinek <jakub@redhat.com>
24547 * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
24548 default_binds_local_p_2.
24549 * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
24550 * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
24552 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
24554 * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
24556 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
24558 Patch by Richard Biener
24559 * coverage.c (coverage_obj_init): Delay building of type variant
24560 until the type is finished.
24562 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
24564 * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
24565 mismatch between C and C++ type; compoare correctly ARG_TYPES
24566 for non-prototypes and output correctly parameter index for METHOD_TYPE.
24567 (odr_types_equivalent_p): Fix wording of warning about attributes;
24568 it is OK to match prototype and non-prototype.
24570 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
24572 * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
24573 TYPE_ARG_TYPES list.
24574 (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
24575 * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
24577 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
24579 * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
24580 * tree.h (is_lang_specific): Constify.
24582 2015-05-09 Marc Glisse <marc.glisse@inria.fr>
24584 PR tree-optimization/64454
24585 * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
24588 2015-05-08 Jason Merrill <jason@redhat.com>
24590 * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
24591 config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
24592 config/darwin.h, config/darwin9.h, config/elfos.h,
24593 config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
24594 config/microblaze/microblaze.h, config/mips/mips.h,
24595 config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
24596 config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
24597 config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
24598 config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
24599 config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
24600 cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
24601 dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
24602 ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
24603 ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
24604 modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
24605 tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
24606 between string literal and macro name.
24608 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24610 * jump.c: Change argument types to rtx_insn *.
24613 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24615 * lra-constraints.c: Change argument type to rtx_insn *.
24617 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24619 * df-problems.c: Change argument type to rtx_insn *.
24621 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24623 * combine.c: Change argument type to rtx_insn *.
24625 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24628 * rtlanal.c: Change argument type to rtx_insn *.
24630 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24632 * sched-deps.c: Change argument types to rtx_insn *.
24633 * sched-int.h: Adjust.
24635 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24637 * dwarf2cfi.c: Change argument type to rtx_insn *.
24639 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24641 * ira.c (decrease_live_ranges_number): Changetype of local
24642 variable to rtx_insn *.
24643 * recog.c: Change argument types to rtx_insn *.
24646 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24648 * reorg.c: Change argument types to rtx_insn *.
24650 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24652 * ira-color.c: Change argument types to rtx_insn *.
24653 * lra-eliminations.c: Likewise.
24656 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24658 * gcse.c: Change argument types to rtx_insn *.
24660 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24662 * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
24664 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24666 * emit-rtl.c (emit_debug_insn_before): Change argument type to
24670 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24672 * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
24675 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24677 * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
24680 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24682 * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
24685 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24687 * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
24690 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24692 * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
24696 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24698 * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
24702 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24704 * except.c (can_nonlocal_goto): Change type of argument to
24708 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24710 * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
24713 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24715 * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
24716 * cfgrtl.c (can_delete_label_p): Adjust.
24719 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24721 * reorg.c (stop_search_p): Change argument to rtx_insn *.
24723 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24725 * except.c (make_reg_eh_region_note): Change argument to
24727 (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
24728 * except.h: Adjust.
24730 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24732 * mode-switching.c (commit_mode_sets): Change type of local
24733 variable from rtx to rtx_insn *.
24735 2015-05-08 Jim Wilson <jim.wilson@linaro.org>
24737 * doc/install.texi (--enable-languages): Add missing jit and lto info.
24738 Add ^ to grep command.
24739 * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
24740 arg to last gimple_simplify declaration. Add missing gimple_build
24741 declaration for built-in function case with four tree args.
24743 2015-05-08 Gregor Richards <gregor.richards@uwaterloo.ca>
24744 Szabolcs Nagy <szabolcs.nagy@arm.com>
24746 * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
24747 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
24748 (GNU_USER_DYNAMIC_LINKERN32): Update.
24750 2015-05-08 Richard Biener <rguenther@suse.de>
24752 PR tree-optimization/66036
24753 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
24754 Handle strided group loads.
24755 (vect_verify_datarefs_alignment): Likewise.
24756 (vect_enhance_data_refs_alignment): Likewise.
24757 (vect_analyze_group_access): Likewise.
24758 (vect_analyze_data_ref_access): Likewise.
24759 (vect_analyze_data_ref_accesses): Likewise.
24760 * tree-vect-stmts.c (vect_model_load_cost): Likewise.
24761 (vectorizable_load): Likewise.
24763 2015-05-08 Segher Boessenkool <segher@kernel.crashing.org>
24765 * config/rs6000/rs6000.md: Require operand inequality in one
24768 2015-05-08 Richard Sandiford <richard.sandiford@arm.com>
24769 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
24771 * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
24773 * config/rx/rx.md (movdi, movdf): Likewise.
24774 Likewise for define_peephole2s.
24776 2015-05-08 Alan Lawrence <alan.lawrence@arm.com>
24778 * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
24779 vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
24780 vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
24781 vtst_u64): Rewrite using gcc vector extensions.
24783 2015-05-08 Alan Lawrence <alan.lawrence@arm.com>
24785 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
24786 vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
24788 2015-05-08 Alan Lawrence <alan.lawrence@arm.com>
24790 * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
24792 2015-05-08 Szabolcs Nagy <szabolcs.nagy@arm.com>
24794 * config/glibc-stdint.h (OPTION_MUSL): Define.
24795 (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
24796 Change the definition based on OPTION_MUSL for 64 bit targets.
24797 * config/linux.h (OPTION_MUSL): Redefine.
24798 * config/alpha/linux.h (OPTION_MUSL): Redefine.
24799 * config/rs6000/linux.h (OPTION_MUSL): Redefine.
24800 * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
24802 2015-05-08 Gregor Richards <gregor.richards@uwaterloo.ca>
24803 Szabolcs Nagy <szabolcs.nagy@arm.com>
24805 * config.gcc (LIBC_MUSL): New tm_defines macro.
24806 * config/linux.h (OPTION_MUSL): Define.
24807 (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
24808 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
24809 (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
24810 (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
24811 (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
24812 * config/linux.opt (mmusl): New option.
24813 * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
24814 * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
24815 (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
24816 * configure: Regenerate.
24818 2015-05-08 H.J. Lu <hongjiu.lu@intel.com>
24819 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
24822 * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
24823 * config/i386/knetbsd-gnu64.h: New file.
24825 2015-05-08 Marek Polacek <polacek@redhat.com>
24828 * doc/invoke.texi: Document -Woverride-init-side-effects.
24830 2015-05-07 Marek Polacek <polacek@redhat.com>
24833 * doc/invoke.texi: Document -Wshift-negative-value.
24835 2015-05-06 Aditya Kumar <hiraditya@msn.com>
24837 * gcov-tool.c (do_merge): Refactore to remove int ret.
24838 * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
24839 !type == FUNC to type != FUNC.
24840 * reload.h (struct target_reload): Changee to type of
24841 x_spill_indirect_levels from bool to unsigned char.
24843 2015-05-07 Richard Sandiford <richard.sandiford@arm.com>
24845 * rtl.h (always_void_p): New function.
24846 * gengenrtl.c (always_void_p): Likewise.
24847 (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
24848 with code foo are always VOIDmode.
24849 * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
24850 * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
24851 compare-elim.c, config/aarch64/aarch64.c,
24852 config/aarch64/aarch64.md, config/alpha/alpha.c,
24853 config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
24854 config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
24855 config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
24856 config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
24857 config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
24858 config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
24859 config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
24860 config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
24861 config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
24862 config/ia64/vect.md, config/iq2000/iq2000.c,
24863 config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
24864 config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
24865 config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
24866 config/mep/mep.c, config/microblaze/microblaze.c,
24867 config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
24868 config/mn10300/mn10300.c, config/msp430/msp430.c,
24869 config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
24870 config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
24871 config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
24872 config/rs6000/altivec.md, config/rs6000/rs6000.c,
24873 config/rs6000/rs6000.md, config/rs6000/vector.md,
24874 config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
24875 config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
24876 config/sh/sh.md, config/sh/sh_treg_combine.cc,
24877 config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
24878 config/spu/spu.md, config/stormy16/stormy16.c,
24879 config/tilegx/tilegx.c, config/tilegx/tilegx.md,
24880 config/tilepro/tilepro.c, config/tilepro/tilepro.md,
24881 config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
24882 config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
24883 expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
24884 lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
24885 reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
24886 var-tracking.c: Update calls accordingly.
24888 2015-05-07 Segher Boessenkool <segher@kernel.crashing.org>
24891 PR middle-end/54303
24892 * varasm.c (function_mergeable_rodata_prefix): New function.
24893 (mergeable_string_section): Use it.
24894 (mergeable_constant_section): Use it.
24896 2015-05-07 Jeff Law <law@redhat.com>
24899 * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
24900 simplifier to narrow arithmetic.
24901 * generic-match-head.c: (types_match, single_use): New functions.
24902 * gimple-match-head.c: (types_match, single_use): New functions.
24904 2015-05-07 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
24906 * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
24909 2015-05-07 Richard Biener <rguenther@suse.de>
24911 PR tree-optimization/66002
24912 * passes.def: Schedule another pass_merge_phi after ifcombine, right
24915 2015-05-07 Marek Polacek <polacek@redhat.com>
24916 Martin Uecker <uecker@eecs.berkeley.edu>
24918 * doc/invoke.texi: Document -fsanitize=bounds-strict.
24919 * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
24920 into SANITIZE_NONDEFAULT.
24921 * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
24923 2015-05-07 Uros Bizjak <ubizjak@gmail.com>
24926 * config/alpha/alpha.c (alpha_override_options_after_change): New.
24927 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
24928 (alpha_override_options): Move align_loops, align_jumps and
24929 align_functions handling into alpha_override_options_after_change.
24931 2015-05-06 Sandra Loosemore <sandra@codesourcery.com>
24932 Chris Jones <chrisj@nvidia.com>
24933 Joshua Conner <jconner@nvidia.com>
24935 * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
24936 linking of crtfastmath.o.
24937 * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
24939 2015-05-06 Segher Boessenkool <segher@kernel.crashing.org>
24941 * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
24942 (cstore<mode>4_unsigned_imm): New expander.
24943 (cstore<mode>4): Remove empty constraint strings. Use the new
24946 2015-05-06 Yvan Roux <yvan.roux@linaro.org>
24949 * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
24952 2015-05-06 Szabolcs Nagy <szabolcs.nagy@arm.com>
24954 * config/aarch64/geniterators.sh: Use standard BRE in sed.
24956 2015-05-06 Alan Modra <amodra@gmail.com>
24959 * config/rs6000/rs6000.md (nop): Use an unspec pattern.
24960 (UNSPEC_NOP): Define.
24961 (reload_vsx_from_gpr<mode>): Add missing DONE.
24962 (reload_gpr_from_vsx<mode>): Likewise.
24963 * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
24964 (vsx_div_v2di, vsx_udiv_v2di): Likewise.
24966 2015-05-06 Christian Bruel <christian.bruel@st.com>
24969 * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
24970 align_jumps, align_functions into aarch64_override_options_after_change.
24972 2015-05-06 Richard Biener <rguenther@suse.de>
24974 * tree-vect-slp.c (vect_supported_load_permutation_p): Use
24975 vect_transform_slp_perm_load to check if we support a permutation
24976 for basic-block vectorization.
24978 2015-05-06 Nick Clifton <nickc@redhat.com>
24980 * config/rl78/rl78.c (need_to_save): Save register 22 if it is
24981 used, even if it is not being used as a frame pointer.
24983 2015-05-05 Jason Merrill <jason@redhat.com>
24985 * dwarf2out.c (gen_member_die): Don't emit anything for an
24986 anonymous class constructor.
24988 2015-05-05 David Malcolm <dmalcolm@redhat.com>
24990 * auto-profile.c (afdo_find_equiv_class): Fix indentation so
24991 that it reflects the block structure.
24992 (afdo_propagate_edge): Likewise.
24993 (afdo_calculate_branch_prob): Likewise.
24994 (afdo_annotate_cfg): Likewise.
24995 * cfgcleanup.c (equal_different_set_p): Likewise.
24996 (try_crossjump_to_edge): Likewise.
24997 * cgraph.c (cgraph_node::verify_node): Likewise.
24998 * cgraphunit.c (expand_all_functions): Likewise.
24999 * config/i386/i386.c (ix86_expand_copysign): Likewise.
25000 (exact_dependency_1): Likewise.
25001 * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
25002 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
25003 * gensupport.c (process_define_subst): Likewise.
25004 * lto-wrapper.c (merge_and_complain): Likewise.
25005 * tree-if-conv.c (if_convertible_bb_p): Likewise.
25006 * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
25007 * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
25008 * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
25009 * tree-vect-loop.c (vectorizable_reduction): Likewise.
25010 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
25011 * tree-vect-stmts.c (vectorizable_shift): Likewise.
25012 * tree-vrp.c (vrp_finalize): Likewise.
25013 * tree.c (variably_modified_type_p): Likewise.
25015 2015-05-05 Jack Howarth <howarth.at.gcc@gmail.com>
25017 * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
25018 on darwin12 and later.
25019 * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
25020 file to pass -rdynamic on darwin12 and later.
25021 * config/darwin.opt (rdynamic): Add.
25023 2015-05-05 Uros Bizjak <ubizjak@gmail.com>
25025 * doc/extend.texi (C Extensions): Update menu for moved Variable
25026 Attributes and Type Attributes sections.
25028 2015-05-05 Uros Bizjak <ubizjak@gmail.com>
25031 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
25032 if rep_8byte stringop strategy was specified for 32-bit target.
25034 2015-05-05 Ilya Tocar <ilya.tocar@intel.com>
25037 * config/i386/i386.md (vector convert to float spltiter): Check for
25038 xmm16+, when splitting scalar float conversion.
25039 * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
25041 2015-05-05 Nick Clifton <nickc@redhat.com>
25043 * config/msp430/msp430-opts.h (enum msp430_regions): New.
25044 * config/msp430/msp430.c (msp430_override_options): Complain if
25045 -mcode-region or -mdata-region is used on a non MSP430X.
25046 (msp430_section_attr): New function. Checks lower, upper and
25048 (msp430_attribute_table): Add lower, upper and either.
25049 (gen_prefix): New function. Generates a prefix for a section
25051 (msp430_select_section): New function - handles the choice of
25052 section for an object. Takes into account memory region
25053 attributes and options.
25054 (msp430_function_section): Use gen_prefix.
25055 (TARGET_SECTION_TYPE_FLAGS): Define.
25056 (msp430_section_type_flags): New function.
25057 (TARGET_ASM_UNIQUE_SECTION): Define.
25058 (msp430_unique_section): New function.
25059 (msp430_output_aligned_decl_common): New function.
25060 (msp430_do_not_relax_short_jumps): New function.
25061 * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
25063 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
25064 * config/msp430/msp430-protos.h
25065 (msp430_do_not_relax_short_jumps): New prototype.
25066 (msp430_output_aligned_decl_common): New prototype.
25067 * config/msp430/msp430.md (length): New attribute.
25068 (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
25069 then use a long code sequence for short jumps.
25070 * config/msp430/msp430.opt (mcode-region): New.
25071 (mdata-region): New.
25072 * doc/invoke.texi: Document new options.
25073 * doc/extend.texi: Document new attributes.
25075 2015-05-05 Matthew Wahab <matthew.wahab@arm.com>
25077 * gcc/config/aarch64-protos.h (struct cpu_branch_cost): New.
25078 (tune_params): Add field branch_costs.
25079 (aarch64_branch_cost): Declare.
25080 * gcc/config/aarch64.c (generic_branch_cost): New.
25081 (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
25082 (cortexa53_tunings): Likewise.
25083 (cortexa57_tunings): Likewise.
25084 (thunderx_tunings): Likewise.
25085 (xgene1_tunings): Likewise.
25086 (aarch64_branch_cost): Define.
25087 * gcc/config/aarch64/aarch64.h (BRANCH_COST): Redefine.
25089 2015-05-05 Uros Bizjak <ubizjak@gmail.com>
25091 * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
25092 and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
25093 * config/i386/i386.md: Ditto.
25094 * config/i386/winnt.c: Ditto.
25096 2015-05-05 Matthew Wahab <matthew.wahab@arm.com>
25098 * doc/extend.texi (__atomic Builtins): Move implementation details
25099 to the end of the description, rewrite opening paragraphs, state
25100 difference with __sync builtins, state C11/C++11 assumptions,
25101 weaken itemized descriptions, add explanation of memory model
25102 behaviour, expand description of compare-exchange, simplify text.
25104 2015-05-05 Renlin Li <renlin.li@arm.com>
25106 * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
25108 2015-05-05 Yvan Roux <yvan.roux@linaro.org>
25110 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
25111 (LINK_SPEC): Include CA53_ERR_843419_SPEC.
25112 * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
25113 (LINK_SPEC): Include CA53_ERR_843419_SPEC.
25114 * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
25115 * configure: Regenerate.
25116 * configure.ac: Add --enable-fix-cortex-a53-843419 option.
25117 * doc/install.texi (aarch64*-*-*): Document new
25118 --enable-fix-cortex-a53-843419 option.
25119 * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
25120 and -mno-fix-cortex-a53-843419 options.
25122 2015-05-05 Uros Bizjak <ubizjak@gmail.com>
25125 * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
25127 2015-05-04 Jan Hubicka <hubicka@ucw.cz>
25129 * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
25130 fix overactive TYPE_MIN_VALUE check and add FIXME for type
25131 compatibility problems.
25133 2015-05-04 Ajit Agarwal <ajitkum@xilinx.com>
25135 * config/microblaze/microblaze.md (cbranchsi4): Added immediate
25137 (cbranchsi4_reg): New.
25138 * config/microblaze/microblaze.c
25139 (microblaze_expand_conditional_branch_reg): New.
25140 * config/microblaze/microblaze-protos.h
25141 (microblaze_expand_conditional_branch_reg): New prototype.
25143 2015-05-04 Ajit Agarwal <ajitkum@xilinx.com>
25145 * config/microblaze/microblaze.md (peephole2): New.
25147 2015-05-04 Jeff Law <law@redhat.com>
25150 2015-05-04 Jeff Law <law@redhat.com>
25152 * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
25153 simplifier to narrow arithmetic.
25154 * generic-match-head.c: (types_match, single_use): New functions.
25155 * gimple-match-head.c: (types_match, single_use): New functions.
25157 2015-05-04 Kaz Kojima <kkojima@gcc.gnu.org>
25160 * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
25161 (split_branches): Likewise.
25163 2015-05-04 Sandra Loosemore <sandra@codesourcery.com>
25165 * common.opt (fdelete-null-pointer-checks): Init to -1.
25166 * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
25167 override flag_delete_null_pointer_checks default.
25168 * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
25169 behavior re address zero. Better document target-specific behavior.
25170 (-fisolate-errneous-paths-dereference): Mention relationship to
25171 -fdelete-null-pointer-checks.
25173 2015-05-04 Jakub Jelinek <jakub@redhat.com>
25175 PR tree-optimization/65984
25176 * ubsan.c: Include tree-cfg.h.
25177 (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
25178 stmt_could_throw_p test, rename can_throw variable to ends_bb.
25180 2015-05-04 Uros Bizjak <ubizjak@gmail.com>
25182 * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
25183 to CONST_DOUBLE_P predicate.
25184 (standard_sse_constant_p): Return 0 for !TARGET_SSE.
25185 (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
25186 allow only operands that satisfy standard_sse_constant_p predicate.
25187 * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
25188 to CONST_DOUBLE_P predicate.
25190 2015-05-04 Jeff Law <law@redhat.com>
25192 * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
25193 simplifier to narrow arithmetic.
25194 * generic-match-head.c: (types_match, single_use): New functions.
25195 * gimple-match-head.c: (types_match, single_use): New functions.
25197 2015-05-04 Andreas Tobler <andreast@gcc.gnu.org>
25199 * config/arm/arm.c: Restore bootstrap.
25201 2015-05-04 Uros Bizjak <ubizjak@gmail.com>
25203 * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
25204 * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
25205 as CONST_WIDE_INT, not CONST_DOUBLE.
25206 (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
25207 (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
25208 (ix86_find_base_term): Do not check for CONST_DOUBLE.
25209 (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
25210 (ix86_build_signbit_mask): Rewrite using wide ints.
25211 (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
25212 (ix86_rtx_costs): Handle CONST_WIDE_INT.
25213 (find_constant): Ditto.
25214 * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
25215 using gen_int_mode.
25216 * config/i386/predicates.md (x86_64_immediate_operand)
25217 <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
25218 (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
25219 <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
25220 (const0_operand): Also match const_wide_int.
25221 (constm1_operand): Ditto.
25222 (const1_operand): Ditto.
25224 2015-05-04 Richard Biener <rguenther@suse.de>
25226 PR tree-optimization/65965
25227 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
25228 store groups at gaps.
25230 2015-05-04 Richard Biener <rguenther@suse.de>
25232 PR tree-optimization/65935
25233 * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
25234 then make sure to apply that swapping to the IL.
25236 2015-05-04 Jakub Jelinek <jakub@redhat.com>
25238 * Makefile.in (PATCHLEVEL_c): New variable.
25239 (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
25240 expand the same way as if DEVPHASE_c was non-empty.
25242 2015-05-04 Kai Tietz <ktietz@redhat.com>
25245 * lto-wrapper.c (run_gcc): Open filename
25248 2015-05-03 Sandra Loosemore <sandra@codesourcery.com>
25250 * doc/extend.texi (Variable Attributes, Type Attributes): Move
25251 sections up in file, to immediately after the Function Attributes
25254 2015-05-02 Jan Hubicka <hubicka@ucw.cz>
25256 * tree.c (verify_type): Check various uses of TYPE_MINVAL.
25258 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25260 * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
25261 (insert_partition_copy_on_edge): Adjust.
25262 (insert_rtx_to_part_on_edge): Likewise.
25263 (insert_part_to_rtx_on_edge): Likewise.
25265 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25267 * function.c (set_return_jump_label): Change type of argument to
25269 * function.h (set_return_jump_label): Adjust.
25271 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25273 * reload.h (struct reg_equivs_t): Change type of init to
25275 * ira.c (fix_reg_equiv_init): Adjust.
25276 * reload1.c (eliminate_regs_1): Likewise.
25277 (init_eliminable_invariants): Likewise.
25279 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25281 * cselib.c (fp_setter_insn): Take a rtx_insn *.
25282 * cselib.h (fp_setter_insn): Adjust.
25284 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25286 * recog.c (struct validate_replace_src_data): Change type of
25287 insn field to rtx_insn *.
25288 (validate_replace_src_group): Change type of argument to rtx_insn *.
25289 * recog.h (validate_replace_src_group): Adjust.
25291 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25293 * haifa-sched.c: Change the type of some variables to rtx_insn *.
25294 * sched-deps.c: Likewise.
25295 * sched-int.h: Likewise.
25296 * sched-rgn.c: Likewise.
25297 * sel-sched.c: Likewise.
25299 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25302 * config/i386/i386.c: Change the type of some arguments to
25304 * config/arm/arm.c: Likewise.
25306 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25308 * lra-constraints.c: Change type of some arguments to rtx_insn *.
25310 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25312 * regcprop.c (kill_autoinc_value): Change type of argument to
25315 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25317 * genrecog.c (print_subroutine): Adjust.
25318 * recog.c (get_bool_attr_mask_uncached): Likewise.
25319 * recog.h (struct recog_data_d): Change the type of insn to
25322 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25324 * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
25326 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25328 * df-problems.c (df_set_note): Change type of argument to
25331 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25333 * builtins.c (expand_builtin_trap): Change type of local
25334 variable to rtx_insn *.
25335 (add_sched_insns_for_speculation): Likewise.
25336 (ix86_emit_save_regs): Likewise.
25337 (get_scratch_register_on_entry): Likewise.
25338 (ix86_emit_restore_reg_using_pop): Likewise.
25339 (ix86_emit_leave): Likewise.
25340 (ix86_emit_restore_regs_using_mov): Likewise.
25341 (ix86_expand_epilogue): Likewise.
25343 (rl78_alloc_physical_registers_umul): Likewise.
25344 * cselib.c (discard_useless_locs): Likewise.
25345 (cselib_invalidate_regno): Likewise.
25346 (cselib_invalidate_mem): Likewise.
25347 * function.c (expand_function_start): Likewise.
25348 (emit_use_return_register_into_block): Likewise.
25349 * gcse.c: Likewise.
25350 * haifa-sched.c (ok_for_early_queue_removal): Likewise.
25351 * ifcvt.c (noce_get_alt_condition): Likewise.
25352 * loop-doloop.c (doloop_condition_get): Likewise.
25353 * lra-constraints.c (inherit_in_ebb): Likewise.
25354 * modulo-sched.c (sms_schedule_by_order): Likewise.
25355 * recog.c (next_insn_tests_no_inequality): Likewise.
25356 * reorg.c (emit_delay_sequence): Likewise.
25357 (update_reg_dead_notes): Likewise.
25358 (fix_reg_dead_note): Likewise.
25359 (fill_slots_from_thread): Likewise.
25360 (delete_computation): Likewise.
25362 2015-05-01 Sandra Loosemore <sandra@codesourcery.com>
25364 * doc/extend.texi (Variable Attributes): Add menu and proper
25365 @nodes to subsections. Move Microsoft Windows attributes to
25366 their own subsection.
25367 (Type Attributes): Reorganize introduction to remove duplicate
25368 list of attributes. Add menu and proper @nodes to subsections.
25369 Alphabetize the main table of common attributes.
25371 2015-05-01 Rasmus Villemoes <rv@rasmusvillemoes.dk>
25373 * match.pd: New simplification patterns.
25374 (x + (x & 1)) -> ((x + 1) & ~1)
25375 (x & ~(x & y)) -> ((x & ~y))
25376 (x | ~(x | y)) -> ((x | ~y))
25378 2015-05-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25380 * target.def (attribute_table): Mention that struct attribute_spec
25381 is defined in tree-core.h rather than tree.h
25382 * doc/tm.texi: Regenerate.
25384 2015-05-01 Richard Sandiford <richard.sandiford@arm.com>
25386 * genrecog.c (test): Rename to rtx_test. Update rest of file
25389 2015-05-01 Andreas Schwab <schwab@linux-m68k.org>
25391 PR translation/65959
25392 * params.h (DEFPARAM): Rename msgid to nocmsgid.
25394 2015-05-01 Wilco Dijkstra <wdijkstr@arm.com>
25396 * gcc/config/aarch64/aarch64-protos.h (tune_params):
25397 Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
25398 * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
25399 Return value depending on target.
25400 (generic_tunings): Initialize new target settings.
25401 (cortexa53_tunings): Likewise.
25402 (cortexa57_tunings): Likewise.
25403 (thunderx_tunings): Likewise.
25404 (xgene1_tunings): Likewise.
25406 2015-05-01 Wilco Dijkstra <wdijkstr@arm.com>
25408 * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
25409 Make Cortex-A53 shift costs more accurate.
25411 2015-05-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25413 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
25416 2015-05-01 Wilco Dijkstra <wdijkstr@arm.com>
25418 * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
25419 Calculate cost of op0 and op1 in PLUS and MINUS cases.
25421 2015-05-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25423 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
25424 Add cost of op0 in the compare-with-fpzero case.
25426 2015-04-30 David Malcolm <dmalcolm@redhat.com>
25428 * builtins.c (fold_builtin_1): Remove spurious second
25430 * cgraph.h (symtab_node::get_availability): Likewise.
25431 * opts.c (common_handle_option): Remove spurious second semicolon.
25432 * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
25433 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
25435 2015-04-30 Caroline Tice <cmtice@google.com>
25437 PR gcov-profile/65929
25438 * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
25439 (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
25440 * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
25441 (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
25442 * doc/tm.texi: Regenerate.
25443 * final.c (final_scan_insn): Use ASM_DECLARE_COLD_FUNCTION_NAME
25444 instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
25445 * varasm.c (assemble_end_function): Use ASM_DECLARE_COLD_FUNCTION_SIZE
25446 instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
25448 2015-04-30 Marek Polacek <polacek@redhat.com>
25450 * varasm.c (handle_cache_entry): Fix logic.
25452 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25454 * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
25455 (*extrsi5_insn_uxtw_alt): Likewise.
25456 * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
25457 (aarch64_rtx_costs, IOR case): Use above to properly cost extr
25460 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25462 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
25465 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25467 * config/aarch64/aarch64.md
25468 (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
25469 (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
25470 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
25471 appropriately. Handle alternative EON form.
25473 2015-04-30 Renlin Li <renlin.li@arm.com>
25475 * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
25476 * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
25478 2015-04-30 Jan Hubicka <hubicka@ucw.cz>
25481 * ipa-inline.c (can_inline_edge_p): It is safe to inline across
25482 -fstrict-aliasing boundaries.
25484 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25486 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
25487 and [SU]MNEGL patterns.
25489 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25491 * config/aarch64/aarch64.c (aarch64_shift_p): New function.
25492 (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
25493 combined arithmetic-shift ops. Properly handle all shift and extend
25494 operations that can occur in combination with PLUS/MINUS.
25495 Rename maybe_fma to compound_p.
25496 (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
25497 arithmetic and shift operations.
25499 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25501 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
25502 rather than arith_shift cost when costing ADD/MINUS of an
25505 2015-04-30 Jan Hubicka <hubicka@ucw.cz>
25508 * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
25511 2015-04-30 Richard Sandiford <richard.sandiford@arm.com>
25513 * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
25514 are for the same position.
25516 2015-04-29 Aditya Kumar <hiraditya@hotmail.com>
25518 * tree-vectorizer.c (set_uid_loop_bbs): New. Factored out of
25520 (vectorize_loops): Use it.
25522 2015-04-29 Jan Hubicka <hubicka@ucw.cz>
25524 * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
25525 for aggregate types.
25526 (register_odr_type): Be ready for MAIN_VARIANT of ODR type
25527 type to be non_ODR.
25528 * tree.c (need_assembler_name_p): Compute mangled name for
25529 non-fundamental types and integer types.
25531 2015-04-29 Mikhail Maltsev <maltsevm@gmail.com>
25533 * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
25535 * expr.c (expand_expr_real_2): Likewise.
25537 2015-04-29 Jan Hubicka <hubicka@ucw.cz>
25539 * tree.c (build_common_builtin_nodes): Do not build
25540 __builtin_alloca_with_align as equivalent of library alloca.
25542 2015-04-29 Jan Hubicka <hubicka@ucw.cz>
25544 * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
25545 * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
25547 * tree.c: Include print-tree.h and ipa-utils.h
25548 (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
25549 (free_lang_data_in_cgraph): Call verify_type.
25550 (verify_type_variant): New function.
25551 (verify_type): New function.
25552 * tree.h (verify_type): Declare.
25554 2015-04-29 Steve Ellcey <sellcey@imgtec.com>
25556 * config/mips/mips-cpus.def: (mips4): Change default processor
25557 from PROCESSOR_R8000 to PROCESSOR_R10000.
25559 2015-04-29 Petar Jovanovic <petar.jovanovic@rt-rk.com>
25561 * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
25562 la/jalr instead of jal.
25564 2015-04-29 Uros Bizjak <ubizjak@gmail.com>
25567 * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
25568 (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
25569 (setcc+movzbl peephole2): Check also clobbered reg.
25570 (setcc+andl peephole2): Ditto.
25572 2015-04-29 Thomas Schwinge <thomas@codesourcery.com>
25575 * config/nvptx/mkoffload.c (target_ilp32): New variable.
25576 (main): Set it depending on "-foffload-abi=[...]".
25577 (compile_native, main): Use it to pass "-m32" or "-m64" to the
25580 2015-04-29 Alan Lawrence <alan.lawrence@arm.com>
25583 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
25584 vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
25585 Flip lane index back at assembly time for bigendian.
25587 2015-04-29 Thomas Schwinge <thomas@codesourcery.com>
25589 * tree.h (OMP_STANDALONE_CLAUSES): New macro.
25590 * gimplify.c (gimplify_omp_workshare): Use it.
25592 2015-04-29 Richard Sandiford <richard.sandiford@arm.com>
25594 * Makefile.in (build/genrecog.o): Depend on inchash.h.
25595 (build/genrecog$(build_exeext): Depend on build/hash-table.o and
25597 * genrecog.c: Rewrite most of the code except for the third page.
25599 2015-04-29 Richard Sandiford <richard.sandiford@arm.com>
25601 * inchash.h, inchash.c: Include bconfig.h for build objects.
25602 * Makefile.in (build/inchash.o): New rule.
25604 2015-04-29 Yvan Roux <yvan.roux@linaro.org>
25607 * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
25608 number in type attribute expression.
25610 2015-04-29 Richard Sandiford <richard.sandiford@arm.com>
25612 * loop-iv.c (canon_condition): Generalize to all types of integer
25615 2015-04-29 Bernhard Reuther-Fischer <aldot@gcc.gnu.org>
25617 * gimple-walk.c: Prune duplicate or unneeded includes.
25618 (walk_gimple_asm): Only call parse_input_constraint or
25619 parse_output_constraint if their findings are used.
25620 Honour parse_input_constraint and parse_output_constraint
25623 2015-04-29 Alan Lawrence <alan.lawrence@arm.com>
25625 * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
25627 2015-04-29 Tom de Vries <tom@codesourcery.com>
25629 PR tree-optimization/65893
25630 * passes.def (pass_all_optimizations): Move pass_stdarg to after
25633 2015-04-29 Richard Biener <rguenther@suse.de>
25635 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
25636 compute GROUP_SIZE for basic-block SLP.
25637 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
25638 take into account gaps.
25639 (vect_get_mask_element): Properly reject references to previous
25641 (vect_transform_slp_perm_load): Likewise.
25643 2015-04-29 Christian Bruel <christian.bruel@st.com>
25646 * config/i386/i386.c (ix86_default_align): New function.
25647 (ix86_override_options_after_change): Call ix86_default_align.
25648 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
25649 (ix86_override_options_after_change): New function.
25651 2015-04-28 Jeff Law <law@redhat.com>
25653 * tree-ssa-dom.c (record_equality); Fix comment typos.
25655 2015-04-28 Tom de Vries <tom@codesourcery.com>
25657 PR tree-optimization/65887
25658 * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
25660 2015-04-28 Sandra Loosemore <sandra@codesourcery.com>
25662 * doc/extend.texi (Declaring Attributes of Functions): Split into
25663 subsections by target. Alphabetize the table of common attributes.
25664 Rewrite some of the introductory text to reflect the new structure.
25665 Update some cross-references to point to the new subsections.
25666 (Attribute Syntax): Put paragraph about "__" naming here. Remove
25667 duplicate copies in the discussion of function, label, and type
25670 2015-04-28 Dominique d'Humieres <dominiq@lps.ens.fr>
25673 * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
25675 2015-04-28 Jason Merrill <jason@redhat.com>
25678 * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
25679 (finalize_type_size): Respect TYPE_USER_ALIGN.
25680 (layout_type) [ARRAY_TYPE]: Likewise.
25682 2015-04-28 Yvan Roux <yvan.roux@linaro.org>
25684 * config/arm/arm.md (*arm_movt): Fix type attribute.
25685 (*cmpsi_shiftsi): Likewise.
25686 (*cmpsi_shiftsi_swp): Likewise.
25687 (*movsicc_insn): Likewise.
25688 (*cond_move): Likewise.
25689 (*if_plus_move): Likewise.
25690 (*if_move_plus): Likewise.
25691 (*if_arith_move): Likewise.
25692 (*if_move_arith): Likewise.
25693 (*if_shift_move): Likewise.
25694 (*if_move_shift): Likewise.
25695 (*arm_movtas_ze): Likewise.
25696 * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
25697 redundancy and type attribute.
25698 (*thumb2_movsi_insn): Fix type attribute.
25699 (*thumb2_addsi_short): Likewise.
25700 (thumb2_addsi3_compare0): Likewise.
25701 (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
25702 attributes accordingly.
25704 2015-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
25707 * function.c (pad_to_arg_alignment): Add parentheses.
25709 2015-04-28 Uros Bizjak <ubizjak@gmail.com>
25711 * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
25712 libgcc/config/frv/elf-lib.h.
25714 2015-04-28 Tom de Vries <tom@codesourcery.com>
25716 * tree-call-cdce.c: Fix example in header comment.
25718 2015-04-28 Richard Biener <rguenther@suse.de>
25720 PR tree-optimization/62283
25721 * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
25722 fails fatally and we are vectorizing a basic-block simply
25723 cause the child to be constructed piecewise.
25724 (vect_analyze_slp_cost_1): Adjust.
25725 (vect_detect_hybrid_slp_stmts): Likewise.
25726 (vect_bb_slp_scalar_cost): Likewise.
25727 (vect_get_constant_vectors): For piecewise constructed
25728 constants place them after the last def.
25729 (vect_get_slp_defs): Adjust.
25730 * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
25731 externals for basic-block vectorization.
25733 2015-04-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
25736 * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
25738 * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
25739 * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
25740 (AARCH64_TUNE_FMA_STEERING): Likewise.
25741 * config/aarch64/aarch64-cores.def: Set
25742 AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
25743 FMUL/FMADD instructions.
25744 * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
25745 (aarch64_override_options): Include cortex-a57-fma-steering.h. Call
25746 aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
25747 * config/aarch64/cortex-a57-fma-steering.h: New file.
25748 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
25750 2015-04-28 Richard Sandiford <richard.sandiford@arm.com>
25752 * gensupport.c (std_preds): Add missing codes to address_operand entry.
25754 2015-04-28 Richard Biener <rguenther@suse.de>
25756 PR tree-optimization/65851
25757 * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
25758 changing CONSTANT to CONSTANT non-copy. Get new_val by reference.
25759 (ccp_lattice_meet): Remove stray argument. Use operand_equal_p
25760 rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
25761 (ccp_visit_phi_node): Adjust.
25762 (evaluate_stmt): For simplifications to SSA names return its
25763 lattice value if that isn't VARYING. Return immediately when
25764 simplified to a constant.
25765 (visit_assignment): Adjust.
25766 (ccp_visit_stmt): Likewise.
25768 2015-04-28 Tom de Vries <tom@codesourcery.com>
25770 PR tree-optimization/65818
25771 * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
25774 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25776 * calls.c (save_fixed_argument_area): Don't check
25777 ARGS_GROW_DOWNWARD with the preprocessor.
25778 (restore_fixed_argument_area): Likewise.
25779 (mem_overlaps_already_clobbered_arg_p): Likewise.
25780 (check_sibcall_argument_overlap): Likewise.
25781 (expand_call): Likewise.
25782 (emit_library_call_value_1): Likewise.
25783 (store_one_arg): Likewise.
25784 * function.c (assign_parms): Likewise.
25785 (locate_and_pad_parm): Likewise.
25786 (pad_to_arg_alignment): Likewise.
25787 * targhooks.c (std_gimplify_va_arg_expr): Likewise.
25789 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25791 * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
25792 * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
25793 * calls.c (save_fixed_argument_area): Don't chekc if
25794 ARGS_GROW_DOWNWARD is defined.
25795 (restore_fixed_argument_area): Likewise.
25796 (mem_overlaps_already_clobbered_arg_p): Likewise.
25797 (check_sibcall_argument_overlap): Likewise.
25798 (expand_call): Likewise.
25799 (emit_library_call_value_1): Likewise.
25800 (store_one_arg): Likewise.
25801 * function.c (assign_parms): Likewise.
25802 (locate_and_pad_parm): Likewise.
25803 (pad_to_arg_alignment): Likewise.
25804 * targhooks.c (std_gimplify_va_arg_expr): Likewise.
25806 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25808 * defaults.h (gen_epilogue): New function.
25809 * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
25811 * cfgrtl.c (cfg_layout_finalize): Likewise.
25812 * df-scan.c: Likewise.
25813 * function.c (thread_prologue_and_epilogue_insns): Likewise.
25814 (reposition_prologue_and_epilogue_notes): Likewise.
25815 * reorg.c (find_end_label): Likewise.
25816 * toplev.c: Likewise.
25818 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25820 * bb-reorder.c (HAVE_return): Don't check if its undefined.
25821 * defaults.h (gen_simple_return): New function.
25822 (gen_simple_return): Likewise.
25823 (HAVE_return): Add default definition to false.
25824 (HAVE_simple_return): Likewise.
25825 * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
25826 HAVE_return and HAVE_simple_return are defined.
25827 * function.c (gen_return_pattern): Likewise.
25828 (convert_jumps_to_returns): Likewise.
25829 (thread_prologue_and_epilogue_insns): Likewise.
25830 * reorg.c (find_end_label): Likewise.
25831 (dbr_schedule): Likewise.
25832 * shrink-wrap.c: Likewise.
25833 * shrink-wrap.h: Likewise.
25835 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25837 * defaults.h (EPILOGUE_USES): Add default definition of false.
25838 * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
25839 * resource.c (init_resource_info): Likewise.
25841 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25843 * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
25845 * dwarf2out.c (field_byte_offset): REmove check if
25846 PCC_BITFIELD_TYPE_MATTERS is defined.
25847 * stor-layout.c (layout_decl): Likewise.
25848 (update_alignment_for_field): Likewise.
25849 (place_field): Likewise.
25851 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25853 * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
25855 * regrename.c (check_new_reg_p): Remove check if
25856 HARD_REGNO_RENAME_OK is defined.
25857 * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
25859 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25861 * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
25862 * cse.c (fold_rtx): Likewise.
25863 * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
25864 * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
25865 * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
25866 * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
25867 * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
25868 * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
25869 * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
25870 * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
25871 * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
25872 * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
25874 * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
25875 * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
25876 * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
25877 * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
25878 * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
25879 * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
25880 * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
25881 * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
25882 * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
25883 * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
25884 * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
25885 * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
25886 * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
25887 * doc/tm.texi: Regenerate.
25888 * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
25889 either true or false.
25891 2015-04-27 Jeff Law <law@redhat.com>
25893 PR tree-optimization/65217
25894 * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
25895 of them has a single use, make sure it is the LHS of the implied
25898 2015-04-28 Alan Modra <amodra@gmail.com>
25901 * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
25902 (offsettable_ok_by_alignment): Use minimum of decl and toc
25903 pointer alignment. Replace dead code with assertion.
25904 (use_toc_relative_ref): Add mode arg. Return false in -mcmodel=medium
25905 case if size exceeds toc pointer alignment.
25906 (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
25907 (rs6000_emit_move): Likewise.
25908 * configure.ac: Add linker toc pointer alignment check.
25909 * configure: Regenerate.
25910 * config.in: Regenerate.
25912 2015-04-27 Yoshinori Sato <ysato@users.sourceforge.jp>
25914 * config.gcc: Add h8300-*-linux.
25915 * config/h8300/linux.h: New.
25916 * config/h8300/t-linux: New.
25917 * config/h8300/h8300.c (h8300_option_override): Normal mode
25918 is not supported for h8300-*-linux.
25919 (h8300_file_start): Target priority change.
25920 (get_shift_alg): Likewise.
25921 (h8300_shift_need_scratch_p): Likewise.
25922 * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
25923 * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
25925 2015-04-27 Caroline Tice <cmtice@google.com>
25927 * final.c (final_scan_insn): Output cold_function_name as function
25929 * varasm.c (cold_function_name): Make global.
25930 (assemble_start_function): Re-set cold_function_name.
25931 (assemble_end_function): Output cold partition size.
25932 * varasm.h (cold_function_name): Declare global.
25934 2015-04-27 Ilya Tocar <ilya.tocar@intel.com>
25936 * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
25937 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
25939 (*movxi_internal_avx512f): Ditto.
25940 (define_split): Check for xmm16+, when splitting scalar float_extend.
25941 (*extendsfdf2_mixed): Use "v" constraint.
25942 (define_split): Check for xmm16+, when splitting scalar float_truncate.
25943 (*truncdfsf_fast_sse): Use "v" constraint.
25944 (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
25945 (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
25946 (define_peephole2): Check for xmm16+, when converting scalar
25948 (define_peephole2): Check for xmm16+, when converting scalar
25950 (*fop_<mode>_comm_mixed): Use "v" constraint.
25951 (*fop_<mode>_comm_sse): Ditto.
25952 (*fop_<mode>_1_mixed): Ditto.
25953 (*sqrt<mode>2_sse): Ditto.
25954 (*ieee_s<ieee_maxmin><mode>3): Ditto.
25956 2015-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25958 * combine.c (simplify_if_then_else): Use std::swap instead
25959 of manually swapping.
25960 (known_cond): Likewise.
25961 (simplify_comparison): Likewise.
25963 2015-04-27 Peter Bergner <bergner@vnet.ibm.com>
25966 * config/rs6000/htm.md: Remove all define_expands.
25967 (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
25968 UNSPECV_HTM_TABORTWCI): Remove.
25969 (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
25970 (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
25971 trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
25972 (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
25973 (tabortdc_internal, tabortdci_internal, tabortwc_internal,
25974 tabortwci_internal): Remove define_insns.
25975 (tabort<wd>c, tabort<wd>ci): New define_insns.
25976 (tabort): Use gpc_reg_operand.
25977 (tcheck): Remove operand.
25978 (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
25979 * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
25981 * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
25982 (BU_HTM_SPR1): Rename to BU_HTM_V1. Remove use of RS6000_BTC_SPR.
25983 (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
25984 tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
25985 tsr, ttest): Pass in the RS6000_BTC_CR attribute.
25986 (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
25987 get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
25988 (tcheck): Remove builtin argument.
25989 * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
25991 (htm_expand_builtin): Fix usage of expandedp. Disallow usage of the
25992 tabortdc and tabortdci builtins when not in 64-bit mode.
25993 Modify code to handle the loss of the HTM define_expands.
25994 Emit code to copy the CR register to TARGET.
25995 (htm_init_builtins): Modify code to handle the loss of the HTM
25997 * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
25998 (RS6000_BTC_64BIT): Likewise.
25999 (RS6000_BTC_CR): New macro.
26000 * doc/extend.texi: Update documentation for htm builtins.
26002 2015-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26004 * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
26005 of manually swapping.
26006 (simplify_associative_operation): Likewise.
26007 (simplify_binary_operation): Likewise.
26008 (simplify_plus_minus): Likewise.
26009 (simplify_relational_operation): Likewise.
26010 (simplify_ternary_operation): Likewise.
26012 2015-04-27 Richard Sandiford <richard.sandiford@arm.com>
26014 * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
26015 (xs_hi_nonmemory_operand): Remove error.
26016 * config/stormy16/stormy16.md (movhi, movhi_internal): Use
26017 general_operand rather than xs_hi_general_operand.
26019 2015-04-27 Richard Biener <rguenther@suse.de>
26021 * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
26022 (record_equivalences_from_stmt): Valueize rhs.
26023 (record_equality): Canonicalize x and y order via
26024 tree_swap_operands_p. Do not swap operands for same loop depth.
26026 2015-04-27 Georg-Johann Lay <avr@gjlay.de>
26030 * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
26031 Add hint how to use own spec file.
26033 2015-04-27 Jakub Jelinek <jakub@redhat.com>
26035 PR tree-optimization/65875
26036 * tree-vrp.c (update_value_range): If in is_new case setting
26037 old_vr to VR_VARYING, also set new_vr to it. Remove
26038 old_vr->type == VR_VARYING test.
26039 (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
26040 SSA_PROP_INTERESTING if update_value_range returned true,
26041 but new range is VR_VARYING.
26043 2015-04-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
26045 * combine.c (sign_extend_short_imm): New.
26046 (set_nonzero_bits_and_sign_copies): Use above new function for sign
26047 extension of src short immediate.
26048 (reg_nonzero_bits_for_combine): Likewise for tem.
26050 2015-04-27 Eric Botcazou <ebotcazou@adacore.com>
26052 * stor-layout.c (self_referential_component_ref_p): New predicate.
26053 (copy_self_referential_tree_r): Use it.
26054 (self_referential_size): Punt for simple operations directly involving
26055 self-referential component references.
26056 * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
26058 2015-04-27 Eric Botcazou <ebotcazou@adacore.com>
26060 * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
26062 2015-04-27 Richard Sandiford <richard.sandiford@arm.com>
26064 * vec.h (vec): Make splice arguments const. Update definitions
26067 2015-04-27 Yvan Roux <yvan.roux@linaro.org>
26069 * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
26072 2015-04-26 Tom de Vries <tom@codesourcery.com>
26074 PR tree-optimization/65826
26075 * internal-fn.def: Mark VA_ARG with ECF_LEAF.
26077 2015-04-24 Steve Ellcey <sellcey@imgtec.com>
26079 * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
26080 (*madd3<mode>): Ditto.
26081 (*msub4<mode>): Ditto.
26082 (*msub3<mode>): Ditto.
26083 (*nmadd4<mode>): Ditto.
26084 (*nmadd3<mode>): Ditto.
26085 (*nmadd4<mode>_fastmath): Ditto.
26086 (*nmadd3<mode>_fastmath): Ditto.
26087 (*nmsub4<mode>): Ditto.
26088 (*nmsub3<mode>): Ditto.
26089 (*nmsub4<mode>_fastmath): Ditto.
26090 (*nmsub3<mode>_fastmath): Ditto.
26092 2015-04-24 Jason Merrill <jason@redhat.com>
26095 * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
26096 down when building TYPE_CANONICAL.
26097 (build_pointer_type_for_mode): Likewise.
26099 2015-04-24 Chen Gang <gang.chen.5i5j@gmail.com>
26101 * genrecog.c (validate_pattern): Check matching constraint refers
26102 to a lower numbered operand.
26104 2015-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
26107 * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
26108 save to independent variables use the Save attribute. This will
26109 allow these options to be modified with the #pragma/attribute
26111 (-mallow-movmisalign): Likewise.
26112 (-mallow-df-permute): Likewise.
26113 (-msched-groups): Likewise.
26114 (-malways-hint): Likewise.
26115 (-malign-branch-targets): Likewise.
26116 (-mvectorize-builtins): Likewise.
26117 (-msave-toc-indirect): Likewise.
26119 * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
26120 can be set via the #pragma/attribute target support.
26121 (rs6000_opt_vars): Likewise.
26122 (rs6000_inner_target_options): If VSX was set, also set
26123 -mno-avoid-indexed-addresses.
26125 2015-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26127 * config/arm/iterators.md (shiftable_ops): Rename to...
26128 (SHIFTABLE_OPS): ... This. Update use in comments.
26129 (ior_xor): Rename to...
26130 (IOR_XOR): ... This.
26131 (vqh_ops): Rename to...
26132 (VQH_OPS): ... This.
26133 (vqhs_ops): Rename to...
26134 (VQHS_OPS): ... This.
26135 (rshifts): Rename to...
26136 (RSHIFTS): ... This.
26137 (returns): Rename to...
26138 (RETURNS): ... This.
26139 * config/arm/arm.md: Update uses of the above.
26140 * config/arm/neon.md: Likewise.
26142 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26144 * config.host (case ${host}): Add aarch64*-*-linux case.
26145 * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
26146 fields to all the cores.
26147 * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
26148 Add MCPU_MTUNE_NATIVE_SPECS.
26149 * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
26150 field to all extensions.
26151 * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
26152 * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
26153 Adjust definition of AARCH64_OPT_EXTENSION.
26154 * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
26155 (MCPU_MTUNE_NATIVE_SPECS): Define.
26156 * config/aarch64/driver-aarch64.c: New file.
26157 * config/aarch64/x-arch64: New file.
26158 * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
26161 2015-04-24 Uros Bizjak <ubizjak@gmail.com>
26162 Wei Mi <wmi@google.com>
26164 * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
26165 * config/i386/i386.c (extract_base_offset_in_addr): New function.
26166 (ix86_operands_ok_for_move_multiple): Ditto.
26167 * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
26168 (movlpd/movhpd to movupd peephole2): Ditto.
26170 2015-04-24 Marek Polacek <polacek@redhat.com>
26173 * input.h (from_macro_expansion_at): Define.
26176 * doc/invoke.texi: Update description of -Wlogical-op.
26178 2015-04-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
26180 * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
26181 ternary operator in fprintf and harmonize spacing.
26183 2015-04-24 Uros Bizjak <ubizjak@gmail.com>
26185 * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
26186 Mark operand1 commutative.
26188 2015-04-24 Uros Bizjak <ubizjak@gmail.com>
26190 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
26191 input operands in memory.
26192 (*vec_concatv2si_sse4_1): Ditto.
26193 (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
26194 (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
26196 (vec_extract_hi_v32hi): Ditto.
26197 (vec_extract_hi_v64hi): Ditto.
26198 (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
26200 2015-04-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
26201 Steven Bosscher <steven@gcc.gnu.org>
26203 PR rtl-optimization/34503
26204 * cprop.c (cprop_reg_p): New.
26205 (hash_scan_set): Use above function to check if register can be
26207 (find_avail_set): Return up to two sets, one whose source is a
26208 register and one whose source is a constant. Sets are returned in an
26209 array passed as parameter rather than as a return value.
26210 (cprop_insn): Use a do while loop rather than a goto. Try each of the
26211 sets returned by find_avail_set, starting with the one whose source is
26212 a constant. Use cprop_reg_p to check if register can be propagated.
26213 (do_local_cprop): Use cprop_reg_p to check if register can be
26215 (implicit_set_cond_p): Likewise.
26217 2015-04-23 Jan Hubicka <hubicka@ucw.cz>
26219 * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
26220 (sem_function::equals): IGNORED_NODES parameter is now unused;
26221 update call of equals_private.
26222 (sem_function::equals_private): Do not call equals_wpa; skip
26223 gimple body matching if there is no body.
26224 (sem_function::init): Add logic to hash tthunk info.
26225 (sem_function::parse): Also parse thunks.
26226 * ipa-icf.h (equals_private): Update declaration.
26228 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26230 * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
26231 asterisk from name so this can be generated directly.
26232 (*altivec_stvx_<mode>_internal): Likewise.
26233 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
26234 that this is never called during or after reload/lra.
26235 (rs6000_frame_related): Remove split_reg
26236 argument and logic that references it.
26237 (emit_frame_save): Remove last parameter from call to
26238 rs6000_frame_related.
26239 (rs6000_emit_prologue): Remove last parameter from eight calls to
26240 rs6000_frame_related. Force generation of stvx instruction for
26241 Altivec register saves. Remove split_reg handling, which is no
26243 (rs6000_emit_epilogue): Force generation of lvx instruction for
26244 Altivec register restores.
26246 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26248 * config/rs6000/rs6000.opt (mcrypto): Change option description to
26249 match category changes in ISA 2.07B.
26251 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26253 * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
26255 (cmp_op, cmp_type): New code attributes.
26256 (NEON_VCMP, NEON_VACMP): New int iterators.
26257 (cmp_op_unsp): New int attribute.
26258 * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
26259 (neon_vceq<mode>): Delete.
26260 (neon_vc<cmp_op><mode>_insn): New pattern.
26261 (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
26262 (neon_vcgeu<mode>): Delete.
26263 (neon_vcle<mode>): Likewise.
26264 (neon_vclt<mode>: Likewise.
26265 (neon_vcage<mode>): Likewise.
26266 (neon_vcagt<mode>): Likewise.
26267 (neon_vca<cmp_op><mode>): New define_expand.
26268 (neon_vca<cmp_op><mode>_insn): New pattern.
26269 (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
26271 2015-04-23 Jan Hubicka <hubicka@ucw.cz>
26273 * tree.h (attribute_value_equal): Declare.
26274 * tree.c (attribute_value_equal): Export.
26276 2015-04-23 Jan Hubicka <hubicka@ucw.cz>
26278 * ipa-icf.c (sem_item::compare_attributes): New function.
26279 (sem_item::compare_referenced_symbol_properties): Compare variable
26281 (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
26282 (sem_function::param_used_p): New function.
26283 (sem_function::equals_wpa): Fix attribute comparsion; match
26284 parameter type codes; do not compare paremter flags when
26285 they are not used; compare edge flags; compare indirect calls.
26286 (sem_item::update_hash_by_addr_refs): Hash reference type.
26287 (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
26288 (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
26289 reference use type.
26290 (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
26291 * ipa-icf.h (compare_attributes, param_used_p): Declare.
26293 2015-04-23 Jan Hubicka <hubicka@ucw.cz>
26295 * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
26297 (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
26298 DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
26299 (sem_item::compare_referenced_symbol_properties): New.
26300 (sem_item::hash_referenced_symbol_properties): New.
26301 (sem_item::compare_cgraph_references): Rename to ...
26302 (sem_item::compare_symbol_references): ... this one; use
26303 compare_referenced_symbol_properties.
26304 (sem_function::equals_wpa): Do not compare
26305 DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
26306 DECL_IS_OPERATOR_NEW; compare pointer sizes.
26307 (sem_item::update_hash_by_addr_refs): Call
26308 hash_referenced_symbol_properties.
26309 (sem_item::update_hash_by_local_refs): Cleanup.
26310 (sem_function::merge): Do not mix up symbol properties.
26311 (sem_variable::equals_wpa): Use compare_symbol_references.
26312 * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
26313 (sem_item::hash_referenced_symbol_properties): New.
26314 (sem_item::compare_symbol_references): New.
26315 (sem_item::compare_cgraph_references): Remove.
26317 2015-04-23 Kwok Cheung Yeung <kcy@codesourcery.com>
26320 * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
26321 Emit size of local.
26323 2015-04-23 Nick Clifton <nickc@redhat.com>
26325 * config/rl78/rl78.c (rl78_preferred_reload_class): Add
26326 ATTRIBUTE_UNUSED to x parameter.
26327 * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
26329 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26331 * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
26332 TARGET_CRYPTO to TARGET_P8_VECTOR>
26333 (crypto_vpermxor_<mode>): Likewise.
26334 * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
26335 (BU_CRYPTO_3A): Likewise.
26336 (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
26337 (BU_CRYPTO_OVERLOAD_3A): New #define.
26338 (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
26339 (VPMSUMH): Likewise.
26340 (VPMSUMW): Likewise.
26341 (VPMSUMD): Likewise.
26342 (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
26343 (VPERMXOR_V4SI): Likewise.
26344 (VPERMXOR_V8HI): Likewise.
26345 (VPERMXOR_V16QI): Likewise.
26346 (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
26347 BU_CRYPTO_OVERLOAD_2A.
26348 (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
26349 BU_CRYPTO_OVERLOAD_3A.
26350 * config/rs6000/rs6000.opt (mcrypto): Change description of
26353 2015-04-23 Richard Biener <rguenther@suse.de>
26355 * passes.def: Remove copy propagation passes run directly after CCP.
26356 * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
26358 (ccp_visit_phi_node): Rework to handle first executable edge
26361 2015-04-23 Matthew Wahab <matthew.wahab@arm.com>
26363 * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
26364 (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
26365 (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
26366 * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
26367 (thumb_legimitimize_reload_address): Remove.
26368 * config/arm/arm-protos.h (arm_legimitimize_reload_address):
26370 (thumb_legimitimize_reload_address): Remove.
26372 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26374 * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
26376 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26378 * config/arm/arm.md (load_multiple): Reject operand 2 greater than
26380 (store_multiple): Likewise.
26382 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26384 * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
26385 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
26386 arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
26387 arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
26388 arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
26389 arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
26390 arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
26391 Specify issue_rate value.
26392 (arm_issue_rate): Look up issue rate from tuning structs. Remove
26393 large switch statement.
26394 (arm_marvell_pj4_tune): New struct.
26395 * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
26398 2015-04-23 Richard Biener <rguenther@suse.de>
26400 * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
26401 (vect_find_last_store_in_slp_instance): Rename to ...
26402 (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
26403 (vect_analyze_slp_cost_1): Use vector_load for constant defs
26404 and vec_construct for external defs when estimating prologue cost.
26405 (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
26406 Compute costs here only when vectorizing loops.
26407 (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
26408 have been determined.
26409 (vect_schedule_slp_instance): Simplify vectorized code placement
26410 and prepare for in-BB external defs.
26411 * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
26412 (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
26413 * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
26415 (vect_model_load_cost): Likewise.
26416 (vectorizable_store): Instead add it here.
26417 (vectorizable_load): Likewise.
26418 (vect_is_simple_use): Dump def type textually.
26420 2015-04-23 Richard Biener <rguenther@suse.de>
26422 * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
26423 * cfgloop.c (verify_loop_structure): Verify the root loop node.
26424 * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
26425 instead of get_eh_region_from_lp_number.
26426 * loop-init.c (fix_loop_structure): If we removed a loop, reset
26429 2015-04-23 Anton Blanchard <anton@samba.org>
26431 * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
26432 need for -mprofile-kernel to save LR to stack.
26434 2015-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26436 * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
26438 (insn_is_swappable_p): Return 1 for a convert from double to
26439 single precision when all of its uses are splats of BE element
26442 2015-04-23 Kugan Vivekanandarajah <kuganv@linaro.org>
26444 * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
26446 2015-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26449 * config/rs6000/rs6000.c (rs6000_option_override_internal): For
26450 VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
26451 TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
26453 (rs6000_builtin_mask_for_load): Return 0 for targets with
26454 efficient unaligned VSX accesses so that the vectorizer will use
26455 direct unaligned loads.
26456 (rs6000_builtin_support_vector_misalignment): Always return true
26457 for targets with efficient unaligned VSX accesses.
26458 (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
26459 stores on targets with efficient unaligned VSX accesses is almost
26460 always the same as the cost of an aligned load or store, so model
26462 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
26463 unaligned vectors if we have efficient unaligned VSX accesses.
26464 * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
26465 undocumented option.
26467 2015-04-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26470 2015-04-22 Gregor Richards <gregor.richards@uwaterloo.ca>
26472 * config.gcc (LIBC_MUSL): New tm_defines macro.
26473 * config/linux.h (OPTION_MUSL): Define.
26474 (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
26475 (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
26476 (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
26478 * config/linux.opt (mmusl): New option.
26479 * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
26480 (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
26482 * configure: Regenerate.
26484 2015-04-22 Gregor Richards <gregor.richards@uwaterloo.ca>
26486 * config.gcc (LIBC_MUSL): New tm_defines macro.
26487 * config/linux.h (OPTION_MUSL): Define.
26488 (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
26489 (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
26490 (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
26492 * config/linux.opt (mmusl): New option.
26493 * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
26494 (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
26496 * configure: Regenerate.
26498 2015-04-22 Yury Gribov <y.gribov@samsung.com>
26500 * doc/invoke.texi (-fsanitize-sections): Update description.
26501 * asan.c (set_sanitized_sections): Parse incoming arg.
26502 (section_sanitized_p): Support wildcards.
26504 2015-04-22 Tom de Vries <tom@codesourcery.com>
26506 PR tree-optimization/65823
26507 * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
26508 equality between ap_copy and ap.
26510 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
26513 * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
26515 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
26518 * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
26520 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
26523 * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
26524 remove already contained t-files.
26526 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
26528 * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
26529 Remove unneeded forward declarations.
26530 (suitable_for_tail_call_opt_p): Commentary typo fix.
26532 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
26534 * varasm.c (emit_bss): Remove redundant guard.
26536 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
26538 * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
26540 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
26542 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
26544 2015-04-22 Hale Wang <hale.wang@arm.com>
26545 Terry Guo <terry.guo@arm.com>
26547 PR rtl-optimization/64818
26548 * combine.c (can_combine_p): Don't combine user-specified
26549 register if it is in an asm input.
26551 2015-04-21 Jan Hubicka <hubicka@ucw.cz>
26554 * passes.def (early_optimizations): Add pass_dse.
26556 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26558 * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
26559 * reorg.c (redundant_insn): Remove ifdef
26560 INSN_REFERENCES_ARE_DELAYED.
26561 * resource.c (mark_referenced_resources): Likewise.
26563 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26565 * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
26566 * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
26567 * resource.c (mark_set_resources): Likewise.
26569 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26571 * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
26572 * cfgcleanup.c (flow_find_cross_jump): Likewise.
26573 (flow_find_head_matching_sequence): Likewise.
26574 (try_head_merge_bb): Likewise.
26575 * combine.c (can_combine_p): Likewise.
26576 (try_combine): Likewise.
26577 (distribute_notes): Likewise.
26578 * df-problems.c (can_move_insns_across): Likewise.
26579 * final.c (final): Likewise.
26580 * gcse.c (insert_insn_end_basic_block): Likewise.
26581 * ira.c (find_moveable_pseudos): Likewise.
26582 * reorg.c (try_merge_delay_insns): Likewise.
26583 (fill_simple_delay_slots): Likewise.
26584 (fill_slots_from_thread): Likewise.
26585 * sched-deps.c (sched_analyze_2): Likewise.
26587 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26589 * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
26590 PIC_OFFSET_TABLE_REGNUM.
26592 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26594 * alias.c (init_alias_target): Remove ifdef
26595 * HARD_FRAME_POINTER_IS_FRAME_POINTER.
26596 * df-scan.c (df_insn_refs_collect): Likewise.
26597 (df_get_regular_block_artificial_uses): Likewise.
26598 (df_get_eh_block_artificial_uses): Likewise.
26599 (df_get_entry_block_def_set): Likewise.
26600 (df_get_exit_block_use_set): Likewise.
26601 * emit-rtl.c (gen_rtx_REG): Likewise.
26602 * ira.c (ira_setup_eliminable_regset): Likewise.
26603 * reginfo.c (init_reg_sets_1): Likewise.
26604 * regrename.c (rename_chains): Likewise.
26605 * reload1.c (reload): Likewise.
26606 (eliminate_regs_in_insn): Likewise.
26607 * resource.c (mark_referenced_resources): Likewise.
26608 (init_resource_info): Likewise.
26610 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26612 * defaults.h (MASK_RETURN_ADDR): New definition.
26613 * except.c (expand_builtin_extract_return_addr): Remove ifdef
26616 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26618 * defaults.h (RETURN_ADDR_OFFSET): New definition.
26619 * except.c (expand_builtin_extract_return_addr): Remove ifdef
26620 RETURN_ADDR_OFFSET.
26621 (expand_builtin_frob_return_addr): Likewise.
26623 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26625 * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
26626 (try_redirect_by_replacing_jump): Likewise.
26627 (rtl_tidy_fallthru_edge): Likewise.
26628 * combine.c (insn_a_feeds_b): Likewise.
26629 (find_split_point): Likewise.
26630 (simplify_set): Likewise.
26631 * cprop.c (cprop_jump): Likewise.
26632 * cse.c (cse_extended_basic_block): Likewise.
26633 * df-problems.c (can_move_insns_across): Likewise.
26634 * function.c (emit_use_return_register_into_block): Likewise.
26635 * haifa-sched.c (sched_init): Likewise.
26636 * ira.c (find_moveable_pseudos): Likewise.
26637 * loop-invariant.c (find_invariant_insn): Likewise.
26638 * lra-constraints.c (curr_insn_transform): Likewise.
26639 * postreload.c (reload_combine_recognize_const_pattern):
26641 * reload.c (find_reloads): Likewise.
26642 * reorg.c (delete_scheduled_jump): Likewise.
26643 (steal_delay_list_from_target): Likewise.
26644 (steal_delay_list_from_fallthrough): Likewise.
26645 (redundant_insn): Likewise.
26646 (fill_simple_delay_slots): Likewise.
26647 (fill_slots_from_thread): Likewise.
26648 (delete_computation): Likewise.
26649 * sched-rgn.c (add_branch_dependences): Likewise.
26651 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26653 * genconfig.c (main): Always define HAVE_cc0.
26654 * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
26656 * cfgcleanup.c (flow_find_cross_jump): Likewise.
26657 (flow_find_head_matching_sequence): Likewise.
26658 (try_head_merge_bb): Likewise.
26659 * cfgrtl.c (rtl_merge_blocks): Likewise.
26660 (try_redirect_by_replacing_jump): Likewise.
26661 (rtl_tidy_fallthru_edge): Likewise.
26662 * combine.c (do_SUBST_MODE): Likewise.
26663 (insn_a_feeds_b): Likewise.
26664 (combine_instructions): Likewise.
26665 (can_combine_p): Likewise.
26666 (try_combine): Likewise.
26667 (find_split_point): Likewise.
26669 (simplify_set): Likewise.
26670 (distribute_notes): Likewise.
26671 * cprop.c (cprop_jump): Likewise.
26672 * cse.c (cse_extended_basic_block): Likewise.
26673 * df-problems.c (can_move_insns_across): Likewise.
26674 * final.c (final): Likewise.
26675 (final_scan_insn): Likewise.
26676 * function.c (emit_use_return_register_into_block): Likewise.
26677 * gcse.c (insert_insn_end_basic_block): Likewise.
26678 * haifa-sched.c (sched_init): Likewise.
26679 * ira.c (find_moveable_pseudos): Likewise.
26680 * loop-invariant.c (find_invariant_insn): Likewise.
26681 * lra-constraints.c (curr_insn_transform): Likewise.
26682 * optabs.c (prepare_cmp_insn): Likewise.
26683 * postreload.c (reload_combine_recognize_const_pattern):
26685 * reload.c (find_reloads): Likewise.
26686 (find_reloads_address_1): Likewise.
26687 * reorg.c (delete_scheduled_jump): Likewise.
26688 (steal_delay_list_from_target): Likewise.
26689 (steal_delay_list_from_fallthrough): Likewise.
26690 (try_merge_delay_insns): Likewise.
26691 (redundant_insn): Likewise.
26692 (fill_simple_delay_slots): Likewise.
26693 (fill_slots_from_thread): Likewise.
26694 (delete_computation): Likewise.
26695 (relax_delay_slots): Likewise.
26696 * sched-deps.c (sched_analyze_2): Likewise.
26697 * sched-rgn.c (add_branch_dependences): Likewise.
26699 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26701 * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
26702 that is trivially ded on non cc0 targets.
26703 (simplify_set): Likewise.
26704 (mark_used_regs_combine): Likewise.
26705 * cse.c (new_basic_block): Likewise.
26706 (fold_rtx): Likewise.
26707 (cse_insn): Likewise.
26708 (cse_extended_basic_block): Likewise.
26709 (set_live_p): Likewise.
26710 * rtlanal.c (canonicalize_condition): Likewise.
26711 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
26713 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26715 * conditions.h: Define macros even if HAVE_cc0 is undefined.
26716 * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
26717 * final.c: Likewise.
26718 * jump.c: Likewise.
26719 * recog.c: Likewise.
26720 * recog.h: Declare functions even when HAVE_cc0 is undefined.
26721 * sched-deps.c (sched_analyze_2): Always compile case for cc0.
26723 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26725 * defaults.h: New definition of EH_RETURN_DATA_REGNO.
26726 * except.c: Remove definition of EH_RETURN_DATA_REGNO.
26727 * builtins.c (expand_builtin): Remove check if
26728 EH_RETURN_DATA_REGNO is defined.
26729 * df-scan.c (df_bb_refs_collect): Likewise.
26730 (df_get_exit_block_use_set): Likewise.
26731 * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
26732 * ira-lives.c (process_bb_node_lives): Likewise.
26733 * lra-lives.c (process_bb_lives): Likewise.
26735 2015-04-21 Uros Bizjak <ubizjak@gmail.com>
26737 * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
26738 FIRST_PSEUDO_REG): New.
26739 * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
26740 (ARG_POINTER_REGNUM): Define to ARGP_REG.
26741 (FRAME_POINTER_REGNUM): Define to FRAME_REG.
26742 (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
26743 (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
26744 (FIRST_INT_REG): New.
26745 (LAST_INT_REG): New.
26746 (FIRST_*_REG): Define using *_REG.
26747 (LAST_*_REG): Ditto.
26748 (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
26749 (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
26750 (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
26752 2015-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26754 * expmed.c: (synth_mult): Only assume overlapping
26755 shift with previous steps in alg_sub_t_m2 case.
26757 2015-04-21 Richard Biener <rguenther@suse.de>
26759 PR tree-optimization/65650
26760 * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
26761 transitions involving copies.
26762 (set_lattice_value): Adjust for copy lattice state.
26763 (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
26764 if that doesn't dominate the merge point.
26765 (bit_value_unop): Adjust what we treat as varying mask.
26766 (bit_value_binop): Likewise.
26767 (bit_value_assume_aligned): Likewise.
26768 (evaluate_stmt): When we simplified to a SSA name record a copy
26769 instead of dropping to varying.
26770 (visit_assignment): Simplify.
26772 * gimple-match.h (gimple_simplify): Add another callback.
26773 * gimple-fold.c (fold_stmt_1): Adjust caller.
26774 (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
26775 for the 2nd callback.
26776 * gimple-match-head.c (gimple_simplify): Add a callback that is
26777 used to valueize the stmt operands and use it that way.
26779 2015-04-21 Richard Biener <rguenther@suse.de>
26781 PR tree-optimization/65788
26782 * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
26784 2015-04-21 Richard Biener <rguenther@suse.de>
26786 * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
26787 vec_construct cost by vec_stmt_cost.
26789 2015-04-21 Richard Biener <rguenther@suse.de>
26791 * cfghooks.h (create_basic_block): Replace with two overloads
26792 for RTL and GIMPLE.
26793 (split_block): Likewise.
26794 * cfghooks.c (split_block): Rename to ...
26795 (split_block_1): ... this.
26796 (split_block): Add two type-safe overloads for RTL and GIMPLE.
26797 (split_block_after_labels): Call split_block_1.
26798 (create_basic_block): Rename to ...
26799 (create_basic_block_1): ... this.
26800 (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
26801 (create_empty_bb): Call create_basic_block_1.
26802 * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
26803 split_block_after_labels.
26804 * omp-low.c (expand_parallel_call): Likewise.
26805 (expand_omp_target): Likewise.
26806 (simd_clone_adjust): Likewise.
26807 * tree-chkp.c (chkp_get_entry_block): Likewise.
26808 * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
26809 create_basic_block overload.
26810 (cgraph_node::expand_thunk): Likewise.
26811 * tree-cfg.c (make_blocks): Likewise.
26812 (handle_abnormal_edges): Likewise.
26813 * tree-inline.c (copy_bb): Likewise.
26815 2015-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26817 * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
26819 (*xor_one_cmplsidi3_ze): Likewise.
26821 2015-04-21 Thomas Preud'homme <thomas.preudhomme@arm.com>
26823 * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
26824 use df_remove_problem rather than manually removing problems, leaving
26825 holes in df->problems_in_order[].
26827 2015-04-21 Tom de Vries <tom@codesourcery.com>
26829 PR tree-optimization/65802
26830 * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
26832 2015-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26834 * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
26836 (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
26837 at '.'. Assert that there's enough space for everything.
26839 2015-04-21 Uros Bizjak <ubizjak@gmail.com>
26841 PR tree-optimization/64950
26843 2010-08-02 Uros Bizjak <ubizjak@gmail.com>
26846 * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
26849 2015-04-20 Shiva Chen <shiva0217@gmail.com>
26851 PR rtl-optimization/64916
26852 * cfgcleanup.c (values_equal_p): New function.
26853 (can_replace_by): Use it.
26855 2015-04-20 Paolo Carlini <paolo.carlini@oracle.com>
26858 * doc/invoke.texi ([-Wnarrowing]): Update.
26860 2015-04-20 Jeff Law <law@redhat.com>
26862 PR tree-optimization/65658
26863 * tree-ssa-threadupdate.c (redirection_block_p): Remove
26864 redundant test for GIMPLE_ASSIGN in last change.
26866 2015-04-20 Uros Bizjak <ubizjak@gmail.com>
26868 * config/i386/i386.c (set_pic_reg_ever_live): Remove.
26869 (legitimize_pic_address): Do not call set_pic_reg_ever_live.
26870 (legitimize_tls_address): Ditto.
26871 (ix86_expand_move): Ditto.
26872 (ix86_expand_binary_operator): Remove reload_in_progress checks.
26873 (ix86_expand_unary_operator): Ditto.
26874 * config/i386/predicates.md (index_register_operand): Ditto.
26876 2015-04-20 Selim Belbachir <selim.belbachir@fr.thalesgroup.com>
26878 * reorg.c (try_merge_delay_insns): Improve correctness checking
26879 for targets with multiple delay slots.
26881 2015-04-20 Jeff Law <law@redhat.com>
26883 PR tree-optimization/65658
26884 * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
26887 2015-04-20 Alan Lawrence <alan.lawrence@arm.com>
26889 * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
26890 * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
26893 2015-04-20 Jakub Jelinek <jakub@redhat.com>
26896 * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
26898 2015-04-20 Richard Biener <rguenther@suse.de>
26900 * gimple-fold.h (gimple_build): Remove optional valueize arguments.
26901 * gimple-fold.c (gimple_build_valueize): New function.
26902 (gimple_build): Always use gimple_build_valueize as valueize hook.
26904 2015-04-20 Alan Lawrence <alan.lawrence@arm.com>
26907 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
26908 and overwrite variable parts if <= 1/2 the elements are variable.
26910 2015-04-19 Vladimir Makarov <vmakarov@redhat.com>
26912 PR rtl-optimization/65805
26913 * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
26914 Don't use difference of offset and previous offset if
26915 update_sp_offset is non-zero.
26916 (eliminate_regs_in_insn): Ditto.
26917 * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
26918 lra_eliminate_regs_1 call.
26919 * lra-constraints.c (get_equiv_with_elimination): Ditto.
26921 2015-04-18 Trevor Saunders <tsaunders@mozilla.com>
26923 * hash-table.h: Remove version of hash_table that stored value_type *.
26924 * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
26925 config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
26926 config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
26927 dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
26928 gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
26929 hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
26930 ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
26931 loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
26932 reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
26933 tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
26934 tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
26935 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
26936 tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
26937 tree-ssa-structalias.c, tree-ssa-tail-merge.c,
26938 tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
26939 valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
26941 2015-04-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26942 Jakub Jelinek <jakub@redhat.com>
26945 * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
26946 subsequent SH_NONE operand does not overwrite an existing *special
26948 (adjust_extract): Handle case where a vec_extract operation is
26949 wrapped in a PARALLEL.
26951 2015-04-17 H.J. Lu <hongjiu.lu@intel.com>
26954 * config/i386/i386.c (ix86_binds_local_p): Define only if
26955 TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
26957 2015-04-17 Jeff Law <law@redhat.com>
26959 PR tree-optimization/47679
26960 * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
26961 * tree-ssa-scopedtables.c: New file.
26962 * tree-ssa-scopedtables.h: New file.
26963 * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
26964 (const_and_copies): Change name/type.
26965 (record_const_or_copy): Move into tree-ssa-scopedtables.c
26966 (record_const_or_copy_1): Similarly.
26967 (restore_vars_to_original_value): Similarly.
26968 (pass_dominator::execute): Create and destroy const_and_copies table.
26969 (thread_across_edge): Update passing of const_and_copies.
26970 (record_temporary_equivalence): Use method calls rather than
26971 manipulating const_and_copies directly.
26972 (record_equality, cprop_into_successor_phis): Similarly.
26973 (dom_opt_dom_walker::before_dom_children): Similarly.
26974 (dom_opt_dom_walker::after_dom_children): Similarly.
26975 (eliminate_redundant_computations): Similarly.
26976 * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
26977 (record_temporary_equivalence): Likewise.
26978 (invalidate_equivalences): Likewise.
26979 (record_temporary_equivalences_from_phis): Update due to type
26980 change of const_and_copies. Use method calls rather than
26981 manipulating the stack directly.
26982 (record_temporary_equivalences_from_stmts_at_dest): Likewise.
26983 (thread_through_normal_block, thread_across_edge): Likewise.
26984 (thread_across_edge): Likewise.
26985 * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
26986 * tree-vrp.c: Include tree-ssa-scopedtables.h. Change type
26988 (identify_jump_threads): Update due to type change of equiv_stack.
26989 (finalize_jump_threads): Delete the equiv_stack when complete.
26991 2015-04-17 Uros Bizjak <ubizjak@gmail.com>
26993 * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
26994 * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
26995 * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
26997 2015-04-17 Andreas Tobler <andreast@gcc.gnu.org>
27000 * config.gcc: Exit with a comment when we do not have a major version
27001 number for the FreeBSD target.
27003 2015-04-17 Jakub Jelinek <jakub@redhat.com>
27006 * genpreds.c (struct constraint_data): Add maybe_allows_reg and
27007 maybe_allows_mem bitfields.
27008 (maybe_allows_none_start, maybe_allows_none_end,
27009 maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
27010 maybe_allows_mem_end): New variables.
27011 (compute_maybe_allows): New function.
27012 (add_constraint): Use it to initialize maybe_allows_reg and
27013 maybe_allows_mem fields.
27014 (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
27015 is_address constraints such that those that allow neither mem nor
27016 reg come first, then those that only allow reg but not mem, then
27017 those that only allow mem but not reg, then the rest.
27018 (write_allows_reg_mem_function): New function.
27019 (write_tm_preds_h): Call it.
27020 * stmt.c (parse_output_constraint, parse_input_constraint): Use
27021 the generated insn_extra_constraint_allows_reg_mem function
27022 instead of always setting *allows_reg = true; *allows_mem = true;
27023 for unknown extra constraints.
27025 2015-04-17 H.J. Lu <hongjiu.lu@intel.com>
27028 * output.h (default_binds_local_p_3): New.
27029 * varasm.c (default_binds_local_p_3): Make it public. Take an
27030 argument to indicate if common symbol may be local. If common
27031 symbol may be local, treat non-external variable as defined
27033 (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
27034 (default_binds_local_p_1): Pass false to default_binds_local_p_3.
27035 * config/i386/i386.c (ix86_binds_local_p): New.
27036 (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
27037 ix86_binds_local_p.
27039 2015-04-17 Jakub Jelinek <jakub@redhat.com>
27042 * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
27043 trying mem_loc_descriptor on XEXP (rtl, 0).
27045 2015-04-17 Martin Liska <mliska@suse.cz>
27047 * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
27048 Release symbol_compare_collection.
27049 * ipa-reference.c: Add TODO that a vector should be released.
27051 2015-04-17 Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
27054 * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
27055 to new AVR-LibC file layout (bug #44574).
27056 (*avrlibc_devicelib): Same.
27057 * config/avr/avr-mcus.def: Adjust comments.
27058 * config/avr/avr.opt (nodevicelib): Adjust help.
27060 2015-04-17 Alan Lawrence <alan.lawrence@arm.com>
27062 * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
27064 2015-04-17 Patrick Palka <ppalka@gcc.gnu.org>
27067 * gimplify.c (gimplify_init_constructor): Always emit a
27068 side-effecting constructor.
27070 2015-04-17 Tom de Vries <tom@codesourcery.com>
27072 PR tree-optimization/64950
27073 * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
27074 in cfun->curr_properties.
27075 (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
27076 if we generate an IFN_VA_ARG.
27077 * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
27078 function if PROP_gimple_lva is not set in src function.
27080 2015-04-17 Tom de Vries <tom@codesourcery.com>
27081 Michael Matz <matz@suse.de>
27083 PR tree-optimization/64950
27084 * gimple-iterator.c (update_modified_stmts): Remove static.
27085 * gimple-iterator.h (update_modified_stmts): Declare.
27086 * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
27087 (gimplify_va_arg_internal): New function.
27088 (gimplify_va_arg_expr): Use IFN_VA_ARG.
27089 * gimplify.h (gimplify_va_arg_internal): Declare.
27090 * internal-fn.c (expand_VA_ARG): New unreachable function.
27091 * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
27092 * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
27093 (expand_ifn_va_arg): New function.
27094 (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
27095 (pass_stdarg::execute): Call expand_ifn_va_arg.
27096 (pass_data_lower_vaarg): New pass_data.
27097 (pass_lower_vaarg): New gimple_opt_pass.
27098 (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
27099 (make_pass_lower_vaarg): New function.
27100 * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
27101 properties_required field.
27102 * passes.def (all_passes): Add pass_lower_vaarg.
27103 * tree-pass.h (PROP_gimple_lva): Add define.
27104 (make_pass_lower_vaarg): Declare.
27106 2015-04-17 Tom de Vries <tom@codesourcery.com>
27108 * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
27109 * calls.c (call_expr_flags): Same.
27111 2015-04-17 Tom de Vries <tom@codesourcery.com>
27113 * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
27114 (pass_stdarg::execute): ... here.
27116 2015-04-17 Tom de Vries <tom@codesourcery.com>
27117 Michael Matz <matz@suse.de>
27119 * tree-cfg.c (make_blocks_1): Factor out of ...
27120 (make_blocks): ... here.
27121 (make_edges_bb): Factor out of ...
27122 (make_edges): ... here.
27123 (gimple_find_sub_bbs): New function.
27124 * tree-cfg.h (gimple_find_sub_bbs): Declare.
27126 2015-04-17 Tom de Vries <tom@codesourcery.com>
27128 * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
27130 2015-04-17 Yury Gribov <y.gribov@samsung.com>
27132 * asan.c (set_sanitized_sections): New function.
27133 (section_sanitized_p): Ditto.
27134 (asan_protect_global): Optionally sanitize user-defined
27136 * asan.h (set_sanitized_sections): Declare new function.
27137 * common.opt (fsanitize-sections): New option.
27138 * doc/invoke.texi (-fsanitize-sections): Document new option.
27139 * opts-global.c (handle_common_deferred_options): Handle new
27142 2015-04-17 Jakub Jelinek <jakub@redhat.com>
27145 * dwarf2out.c (loc_list_from_tree): Return NULL
27146 for DEBUG_EXPR_DECL.
27148 2015-04-17 Christian Bruel <christian.bruel@st.com>
27150 * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
27153 2015-04-16 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
27155 * ira-color.c (setup_left_conflict_sizes_p): Do not process
27156 node itself when computing left conflict subnode size.
27158 2015-04-16 Uros Bizjak <ubizjak@gmail.com>
27160 * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
27161 * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
27162 *fop_<mode>_1_sse using enabled attribute. Use
27163 register_mixssei387nonimm_operand operand 1 predicate. Change
27164 alternative 3 constraints from "x" to "v".
27166 2015-04-16 Richard Biener <rguenther@suse.de>
27168 PR tree-optimization/65774
27169 * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
27170 bit-value tracking on.
27172 2015-04-16 Richard Biener <rguenther@suse.de>
27174 PR tree-optimization/64277
27175 * tree-vrp.c (check_array_ref): Fix anti-range handling,
27176 simplify upper bound handling.
27177 (search_for_addr_array): Simplify.
27178 (check_array_bounds): Handle ADDR_EXPRs here.
27179 (check_all_array_refs): Simplify.
27181 2015-04-16 Uros Bizjak <ubizjak@gmail.com>
27183 * config/i386/i386.c (print_reg): Rewrite function.
27185 2015-04-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27187 * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
27188 Invert the condition.
27190 2015-04-16 Renlin Li <renlin.li@arm.com>
27192 * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
27193 simplifications for UNSIGNED_FLOAT.
27195 2015-04-16 Nick Clifton <nickc@redhat.com>
27197 * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
27199 (enum rl78_cpu_type): New.
27200 * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
27201 (umulhi3_shift_virt): Remove m constraint from operand 1.
27202 (umulqihi3_virt): Likewise.
27203 * config/rl78/rl78.c (rl78_option_override): Add code to process
27204 -mcpu and -mmul options.
27205 (rl78_alloc_physical_registers): Add code to handle divhi and
27206 divsi valloc attributes.
27207 (set_origin): Likewise.
27208 * config/rl78/rl78.h (RL78_MUL_G14): Define.
27209 (TARGET_G10, TARGET_G13, TARGET_G14): Define.
27210 (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
27212 (ASM_SPEC): Pass -mcpu on to assembler.
27213 * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
27214 (mulqi3_rl78): Likewise.
27215 (mulhi3_g13): Likewise.
27216 (mulhi3): Generate the G13 or G14 versions of the insn directly.
27217 (mulsi3): Likewise.
27218 (mulhi3_g14): Add clobbers of AX and BC.
27219 (mulsi3_g14): Likewise.
27220 (mulsi3_g13): Likewise.
27221 (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
27222 (udivmodsi4_g14, udivmodsi4_g13): New patterns.
27223 * config/rl78/rl78.opt (mmul): Initialise value to
27225 (mcpu): New option.
27226 (m13, m14, mrl78): New option aliases.
27227 * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
27228 (MULTILIB_DIRNAMES): Add g13 and g14.
27229 * doc/invoke.texi: Document -mcpu and -mmul options.
27231 2015-04-16 Richard Biener <rguenther@suse.de>
27233 * tree-ssa-ccp.c (likely_value): See if we have operands that
27234 are marked as never simulate again and return CONSTANT in this
27236 * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
27237 not have any operands that will be simulated again as
27238 not being simulated again.
27240 2015-04-15 Uros Bizjak <ubizjak@gmail.com>
27242 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
27243 Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
27244 (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
27246 (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
27248 (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
27249 *float<SWI48:mode><MODEF:mode>2_sse.
27250 (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
27252 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
27255 2015-04-15 Tom de Vries <tom@codesourcery.com>
27258 * function.c (push_dummy_function): New function.
27259 (init_dummy_function_start): Use push_dummy_function.
27260 (pop_dummy_function): New function. Factored out of ...
27261 (expand_dummy_function_end): ... here.
27262 * function.h (push_dummy_function, pop_dummy_function): Declare.
27263 * passes.c (pass_manager::dump_passes): Use push_dummy_function and
27264 pop_dummy_function.
27265 * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
27267 2015-04-15 Jeff Law <law@redhat.com>
27269 PR tree-optimization/47679
27270 * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
27271 need for forward declaration in upcoming changes.
27272 (record_conditions, record_edge_info): Likewise.
27274 PR rtl-optimization/42522
27275 * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
27276 SIGN_EXTRACT as a whole object rather than simplifying
27279 2015-04-15 Jakub Jelinek <jakub@redhat.com>
27282 * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
27283 and GIMPLE_PREDICT use break instead of return true. For
27284 GIMPLE_EH_DISPATCH, compare dispatch region.
27286 2015-04-14 Matthew Wahab <matthew.wahab@arm.com>
27288 * doc/extend.texi (__sync Builtins): Simplify some text. Update
27289 details about the implementation. Make clear preference for
27290 __atomic builtins. Reduce possibility of future change.
27292 2015-04-15 Nick Clifton <nickc@redhat.com>
27294 * config/rx/rx.opt (mallow-string-insns): New option.
27295 * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
27296 builtin if string instructions are denied.
27297 * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
27298 __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
27300 (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
27301 * config/rx/rx.md (movstr): Enable pattern only if string
27302 instructions are allowed.
27303 (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
27304 (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
27305 * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
27306 (MULTILIB_DIRNAMES): Add no-strings.
27307 * doc/invoke.texi: Document -mno-allow-string-insns.
27309 2015-04-15 Alan Modra <amodra@gmail.com>
27313 PR middle-end/36043
27314 * calls.c (load_register_parameters): Don't load past end of
27315 mem unless suitably aligned.
27317 2015-04-15 Nick Clifton <nickc@redhat.com>
27319 * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
27320 decrement instruction as being frame related.
27321 (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
27323 If zero extending a function address enclose the operation in
27325 (rl78_preferred_reload_class): New function.
27326 (TARGET_PREFERRED_RELOAD_CLASS): Define.
27327 * config/rl78/rl78.md: Remove useless constraints in expanders.
27328 (mulqi3_rl78): Remove + qualifier on input-only operand 1.
27329 (mulhi3_rl78): Likewise.
27330 (mulhi3_g13): Likewise.
27331 (mulsi3_rl78): Likewise.
27332 (es_addr): Move to before the multiply patterns.
27334 2015-04-15 Alan Modra <amodra@gmail.com>
27336 * function.h (struct emit_status): Delete x_first_insn, x_last_insn
27337 and sequence_stack. Add seq.
27338 (seq_stack): Delete.
27339 * function.c (prepare_function_start): Don't access x_last_insn.
27340 * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
27341 (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
27342 * emit_rtl.c (start_sequence, push_topmost_sequence,
27343 pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
27344 sequence accessors.
27345 (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
27346 remove_insn): Likewise. Simplify.
27347 * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
27348 and pop_topmost_sequence.
27349 (m32c_function_needs_enter): Use get_topmost_sequence. Ignore
27351 * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
27353 2015-04-14 Yvan Roux <yvan.roux@linaro.org>
27356 * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
27359 2015-04-14 Uros Bizjak <ubizjak@gmail.com>
27361 * config/i386/i386.h (LEGACY_INT_REG_P): New define.
27362 (LEGACY_INT_REGNO_P): Ditto.
27363 (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
27364 (ANY_MASK_REG_P): Remove.
27365 (BND_REG_P): Rename from ANY_BND_REG_P.
27366 * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
27367 legacy integer registers. Do not handle MMX_REG_P in a special way.
27368 Merge 64byte and 32byte SSE handling.
27370 2015-04-14 Nick Clifton <nickc@redhat.com>
27372 * expr.c (expand_assignment): Force an address offset computation
27373 into a register before changing its mode.
27374 (expand_expr_real_1): Likewise.
27376 2015-04-14 Alan Lawrence <alan.lawrence@arm.com>
27378 * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
27379 vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
27380 vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
27381 vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
27382 vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
27383 vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
27384 vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
27385 and __aarch64_vget_lane_any.
27387 2015-04-14 Jakub Jelinek <jakub@redhat.com>
27389 PR rtl-optimization/65761
27390 * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
27391 get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
27393 2015-04-14 Richard Biener <rguenther@suse.de>
27395 * graphite-scop-detection.c: Do not include cp/cp-tree.h.
27396 (graphite_can_represent_scev): Use POINTER_TYPE_P.
27398 2015-04-14 Richard Biener <rguenther@suse.de>
27400 PR tree-optimization/65758
27401 * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
27403 (ccp_lattice_meet): Likewise.
27404 (bit_value_unop): Likewise.
27405 (bit_value_binop): Likewise.
27406 (bit_value_assume_aligned): Likewise.
27408 2015-04-14 Christian Bruel <christian.bruel@st.com>
27410 * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
27413 2015-04-14 Marc Glisse <marc.glisse@inria.fr>
27415 PR tree-optimization/63387
27416 * match.pd ((x unord x) | (y unord y) -> (x unord y),
27417 (x unord x) | (x unord y) -> (x unord y)): New simplifications.
27419 2015-04-14 Uros Bizjak <ubizjak@gmail.com>
27421 * config/i386/predicates.md (any_QIreg_operand): Rename from
27422 q_regs_operand. Do not process subregs.
27423 (QIreg_operand): Use QI_REGNO_P predicate.
27424 (ext_QIreg_operand): Ditto.
27425 (ext_register_operand): Ditto.
27426 * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
27427 (AND splitters): Ditto.
27428 (AND with -65536 splitter): Add SWI48 mode for operand 0.
27429 (AND with -256 splitter): Use any_QIreg_operand predicate and
27430 SWI248 mode for operand 0.
27431 (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
27432 mode for operand 0.
27433 (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
27435 2015-04-13 Gerald Pfeifer <gerald@pfeifer.com>
27437 * doc/plugins.texi: Rewrite first introductory paragraph.
27439 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
27441 * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
27442 (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
27444 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
27446 * ipa-profie.c (ipa_profile): Check number of parameters
27447 and possible polymorphic call targets before
27450 2015-04-13 Uros Bizjak <ubizjak@gmail.com>
27452 * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
27453 *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
27455 2015-04-13 Richard Biener <rguenther@suse.de>
27457 PR tree-optimization/65204
27458 * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
27459 takens for bit-CCP.
27461 2015-04-13 Richard Biener <rguenther@suse.de>
27464 * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
27465 and cond_not_taken_branch_cost to 4 and 2.
27466 (bdver2_cost): Likewise.
27467 (bdver3_cost): Likewise.
27468 (bdver4_cost): Likewise.
27470 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
27472 * hash-table.h (hash_table constructor): Add mem stats.
27473 (alloc_entries): Likewise.
27475 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
27477 * ipa-cp.c (ipcp_driver): Relase prev_edge.
27478 * passes.c (execute_one_pass): Only add transform if pass has one.
27480 2015-04-12 Joseph Myers <joseph@codesourcery.com>
27482 * config/i386/i386.c (ix86_option_override_internal): Don't set
27483 -fprefetch-loop-arrays if optimizing for size.
27485 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
27486 Gerald Pfeifer <gerald@pfeifer.com>
27488 * doc/contrib.texi (Contributors): Add Martin Jambor and
27491 2015-04-12 Jakub Jelinek <jakub@redhat.com>
27493 * BASE-VER: Set to 6.0.0.
27495 PR tree-optimization/65747
27496 * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
27497 rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
27499 2015-04-12 Gerald Pfeifer <gerald@pfeifer.com>
27501 * doc/invoke.texi (-Wmemset-transposed-args): Break a long
27502 sentence. Improve grammar.
27504 2015-04-12 Gerald Pfeifer <gerald@pfeifer.com>
27506 * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
27508 2015-04-11 Jan Hubicka <hubicka@ucw.cz>
27511 * ipa-inline-transform.c (speculation_removed): Remove static var.
27512 (check_speculations): New function.
27513 (clone_inlined_nodes): Do not check spculations.
27514 (inline_call): Call check_speculations.
27515 * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
27516 consider non-invariants.
27518 2015-04-11 Jan Hubicka <hubicka@ucw.cz>
27519 Martin Liska <mliska@suse.cz>
27522 * ipa-icf.c (sem_item::compare_cgraph_references): function and
27523 variable can not match.
27524 (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
27525 (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
27527 2015-04-11 Jakub Jelinek <jakub@redhat.com>
27529 PR tree-optimization/65735
27530 * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
27531 Remove visited_phis argument, add visited_bbs, avoid recursing into the
27532 same bb rather than just into the same phi node.
27533 (thread_through_normal_block): Adjust caller.
27535 2015-04-11 Gerald Pfeifer <gerald@pfeifer.com>
27537 * doc/contrib.texi (Contributors): Add Ira Rosen.
27539 2015-04-11 Benno Schulenberg <bensberg@justemail.net>
27541 * gcov.c (find_source): Fix miswording in error message.
27542 * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
27543 (ix86_expand_sse_comi_round): Fix typo in error message.
27545 2015-04-11 Gerald Pfeifer <gerald@pfeifer.com>
27547 * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
27549 2015-04-10 Gerald Pfeifer <gerald@pfeifer.com>
27551 * doc/contrib.texi (Contributors): Update Joe Buck's entry.
27553 2015-04-10 Vladimir Makarov <vmakarov@redhat.com>
27556 * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
27557 Print bad_spills_num and insn_pseudos_num.
27559 2015-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27562 * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
27563 when creating +1 values for SImode.
27565 2015-04-10 Vladimir Makarov <vmakarov@redhat.com>
27568 * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
27571 2015-04-10 Jakub Jelinek <jakub@redhat.com>
27572 Iain Sandoe <iain@codesourcery.com>
27575 * configure: Regenerate.
27577 2015-04-09 Kirill Yukhin <kirill.yukhin@intel.com>
27580 * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
27582 2015-04-09 Gerald Pfeifer <gerald@pfeifer.com>
27584 * doc/contrib.texi (Contributors): Add John Marino.
27586 2015-04-09 Jakub Jelinek <jakub@redhat.com>
27588 PR tree-optimization/65709
27589 * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
27590 TREE_TYPE (TREE_TYPE (t)).
27592 2015-04-09 Vladimir Makarov <vmakarov@redhat.com>
27595 * lra-int.h (lra_bad_spill_regno_start): New.
27596 * lra.c (lra_bad_spill_regno_start): New.
27597 (lra): Set up lra_bad_spill_regno_start. Set up
27598 lra_constraint_new_regno_start unconditionally.
27599 * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
27602 2015-04-09 Marek Polacek <polacek@redhat.com>
27603 Jakub Jelinek <jakub@redhat.com>
27605 PR middle-end/65554
27606 * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
27607 (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
27610 2015-04-09 Segher Boessenkool <segher@kernel.crashing.org>
27612 PR rtl-optimization/65693
27613 * combine.c (is_parallel_of_n_reg_sets): Move outside of
27616 2015-04-09 Georg-Johann Lay <avr@gjlay.de>
27619 * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
27620 device specs file if "device-specs%s" didn't resolve to a path.
27622 2015-04-09 Kirill Yukhin <kirill.yukhin@intel.com>
27625 * config/i386/i386.c (fixup_modeless_constant): New.
27626 (ix86_expand_args_builtin): Fixup modeless constant operand.
27627 (ix86_expand_round_builtin): Ditto.
27628 (ix86_expand_special_args_builtin): Ditto.
27629 (ix86_expand_builtin): Ditto.
27631 2015-04-09 Jakub Jelinek <jakub@redhat.com>
27634 * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
27635 any pow2 integer in between 2 and 0x80000000U inclusive.
27637 2015-04-08 Segher Boessenkool <segher@kernel.crashing.org>
27639 PR rtl-optimization/65693
27640 * combine.c (is_parallel_of_n_reg_sets): Change first argument
27641 from an rtx_insn * to an rtx.
27642 (try_combine): Adjust both callers. Use it once more.
27644 2015-04-08 Ilya Enkovich <ilya.enkovich@intel.com>
27646 * tree-chkp.c (chkp_find_const_bounds_var): Remove.
27647 (chkp_make_static_const_bounds): Search existing
27648 symbol by assembler name. Use make_decl_one_only.
27649 (chkp_get_zero_bounds_var): Remove node search which
27650 is now performed in chkp_make_static_const_bounds.
27651 (chkp_get_none_bounds_var): Likewise.
27653 2015-04-08 Michael Witten <mfwitten@gmail.com>
27655 * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
27658 2015-04-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
27660 * tree.h (CONVERT_EXPR_P): Commentary typo fix.
27662 2015-04-08 Gerald Pfeifer <gerald@pfeifer.com>
27664 * doc/extend.texi (__sync Builtins): Fix grammar.
27666 2015-04-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
27668 * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
27670 2015-04-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
27672 * varasm.c (emit_local): Move definition of align.
27674 2015-04-08 Julian Brown <julian@codesourcery.com>
27676 * config/nvptx/mkoffload.c (process): Support variable mapping.
27678 2015-03-27 Trevor Saunders <tbsaunde@tbsaunde.org>
27680 * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
27682 (alpha_write_one_linkage): Correct typo.
27684 2015-04-08 Ilya Enkovich <ilya.enkovich@intel.com>
27686 * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
27688 2015-04-08 Gerald Pfeifer <gerald@pfeifer.com>
27690 * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
27692 2015-04-08 Ilya Enkovich <ilya.enkovich@intel.com>
27694 * tree-chkp.h (chkp_insert_retbnd_call): New.
27695 * tree-chkp.c (chkp_insert_retbnd_call): New.
27696 * ipa-split.c (insert_bndret_call_after): Remove.
27697 (split_function): Use chkp_insert_retbnd_call.
27698 * cgraphunit.c (cgraph_node::expand_thunk): Build returned
27699 bounds for instrumented functions.
27701 2015-04-07 Jan Hubicka <hubicka@ucw.cz>
27704 * calls.c (initialize_argument_information): When producing tail
27705 call also turn SSA_NAMES passed by references to original PARM_DECLs
27707 2015-04-07 Vladimir Makarov <vmakarov@redhat.com>
27710 * lra-remat.c (do_remat): Process input and non-input insn
27711 registers separately.
27713 2015-04-07 Jakub Jelinek <jakub@redhat.com>
27716 * valtrack.c (debug_lowpart_subreg): New function.
27717 (dead_debug_insert_temp): Use it.
27719 PR middle-end/65680
27720 * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
27721 into signed HOST_WIDE_INT the same as negative bit_offset.
27723 2015-04-07 Ilya Enkovich <ilya.enkovich@intel.com>
27725 * ipa-comdats.c (ipa_comdats): Visit all thunks
27726 to set proper comdat group.
27728 2015-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27731 * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
27732 on constants for NEON VSTRUCT modes.
27734 2015-04-07 Jakub Jelinek <jakub@redhat.com>
27735 Iain Sandoe <iain@codesourcery.com>
27738 * configure: Regenerate.
27740 2015-04-06 Michael Meissner <meissner@linux.vnet.ibm.com>
27743 * config/rs6000/rs6000.c (struct processor_costs): Add cost field
27744 for SF->DF conversions to make FLOAT_EXTEND more expensive, so
27745 that LFD is used to load double constants instead of LFS. Add
27746 defaults for all costs structures. Add comments for missing
27747 initialization fields.
27748 (size32_cost): Likewise.
27749 (size64_cost): Likewise.
27750 (rs64a_cost): Likewise.
27751 (mpccore_cost): Likewise.
27752 (ppc403_cost): Likewise.
27753 (ppc405_cost): Likewise.
27754 (ppc440_cost): Likewise.
27755 (ppc476_cost): Likewise.
27756 (ppc601_cost): Likewise.
27757 (ppc603_cost): Likewise.
27758 (ppc604_cost): Likewise.
27759 (ppc604e_cost): Likewise.
27760 (ppc620_cost): Likewise.
27761 (ppc630_cost): Likewise.
27762 (ppccell_cost): Likewise.
27763 (ppc750_cost): Likewise.
27764 (ppc7450_cost): Likewise.
27765 (ppc8540_cost): Likewise.
27766 (ppce300c2c3_cost): Likewise.
27767 (ppce500mc_cost): Likewise.
27768 (ppce500mc64_cost): Likewise.
27769 (ppce5500_cost): Likewise.
27770 (ppce6500_cost): Likewise.
27771 (titan_cost): Likewise.
27772 (power4_cost): Likewise.
27773 (power6_cost): Likewise.
27774 (power7_cost): Likewise.
27775 (power8_cost): Likewise.
27776 (ppca2_cost): Likewise.
27777 (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
27779 * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
27780 instead of XXLOR to copy SFmode to clear out dirty bits created
27781 when SFmode denormals are generated.
27782 (mov<mode>_hardfloat, FMOVE32 case): Likewise.
27783 (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
27785 2015-04-06 Evandro Menezes <e.menezes@samsung.com>
27787 * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
27788 * config/aarch64/aarch64-cores.def (exynos-m1): New core.
27789 * config/aarch64/aarch64-tune.md: Regenerate.
27791 2015-04-06 Evandro Menezes <e.menezes@samsung.com>
27793 * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
27794 * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
27795 * config/arm/arm-cores.def (exynos-m1): New core.
27796 * config/arm/arm-tune.md: Regenerate.
27797 * config/arm/arm-tables.opt: Add entry for "exynos-m1".
27798 * config/arm/bpabi.h: Likewise.
27800 2015-04-06 Ilya Enkovich <ilya.enkovich@intel.com>
27802 * ipa-cp (set_single_call_flag): Remove too
27803 restrictive assert.
27805 2015-04-06 Ilya Verbin <ilya.verbin@intel.com>
27807 * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
27808 GOMP_offload_unregister from the destructor.
27810 2015-04-06 Ilya Enkovich <ilya.enkovich@intel.com>
27812 * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
27813 flags for instrumentation thunk.
27814 (chkp_produce_thunks): Likewise.
27816 2015-04-05 Martin Liska <mliska@suse.cz>
27819 * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
27820 has computed data structure.
27821 (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
27823 2015-04-04 Jan Hubicka <hubicka@ucw.cz>
27825 * invoke.texi (inline-unit-growth): Increase growth to 20%
27826 * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
27828 2015-04-04 Vladimir Makarov <vmakarov@redhat.com>
27831 * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New. Add its
27833 (lra_rematerialization_iter): New.
27834 * lra.c (lra): Initialize lra_rematerialization_iter.
27835 Stop updating lra_constraint_new_regno_start after switching of
27836 inheritance and rematerialization.
27837 * lra-remat.c (lra_rematerialization_iter): New.
27838 (lra_remat): Add printing pass iteration. Do rematerialization
27839 only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
27841 2015-04-04 Richard Biener <rguenther@suse.de>
27843 PR tree-optimization/64909
27844 PR tree-optimization/65660
27845 * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
27846 to take a cost vector for scalar iteration cost.
27847 (vect_get_single_scalar_iteration_cost): Likewise.
27848 * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
27849 Compute the scalar iteration cost into a cost vector.
27850 (vect_get_known_peeling_cost): Use the scalar cost vector to
27851 account for the cost of the peeled iterations.
27852 (vect_estimate_min_profitable_iters): Likewise.
27853 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
27856 2015-04-04 Alan Modra <amodra@gmail.com>
27860 * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
27861 0.0 constant unless TARGET_VSX.
27862 * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
27865 2015-04-03 Jan Hubicka <hubicka@ucw.cz>
27868 * ipa-inline-transform.c (inline_call): Skip sanity check to work
27871 2015-04-03 Jan Hubicka <hubicka@ucw.cz>
27874 * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
27875 speculative indirect edges to avoid ordering issue.
27877 2015-04-03 Jan Hubicka <hubicka@ucw.cz>
27880 * ipa-inline.c (edge_badness): Add combined size to the denominator.
27882 2015-04-03 Jakub Jelinek <jakub@redhat.com>
27884 * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
27885 TYPE_ARTIFICIAL on the .omp_data* types.
27887 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
27889 * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
27890 instrumentation thunks.
27892 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
27894 * config/i386/i386.c (ix86_expand_call): Avoid nested
27895 PARALLEL in returned call value.
27897 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
27899 * lto-cgraph.c (input_cgraph_1): Always link instrumented
27900 assembler name with original one.
27902 2015-04-02 Uros Bizjak <ubizjak@gmail.com>
27904 * config/i386/i386.c (ix86_register_priority): Use AX_REG.
27906 2015-04-02 Uros Bizjak <ubizjak@gmail.com>
27908 Revert parts of r216820.
27909 * config/i386/i386.md (movqi_internal): Correct type calculation
27910 for alternatives 3 and 5.
27912 2015-04-02 Jakub Jelinek <jakub@redhat.com>
27914 PR preprocessor/61977
27915 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
27916 predefine __vector/__bool/__pixel macros nor context sensitive
27917 macros for CLK_ASM.
27918 * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
27920 2015-04-02 John David Anglin <danglin@gcc.gnu.org>
27922 * config/pa/pa.c (pa_output_move_double): Directly handle register
27923 indexed memory operand. Simplify handling of scaled register indexed
27926 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
27929 * config/i386/linux-common.h (MPX_SPEC): New.
27930 (CHKP_SPEC): Add MPX_SPEC.
27931 * doc/invoke.texi (-fcheck-pointer-boudns): Document
27932 possible issues with '-z bndplt' support in linker.
27934 2015-04-02 Uros Bizjak <ubizjak@gmail.com>
27936 * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
27937 (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
27938 (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
27939 * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
27940 (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
27942 2015-04-01 Uros Bizjak <ubizjak@gmail.com>
27944 * config/i386/sync.md (UNSPEC_MOVA): Remove.
27945 (atomic_load<mode>): Change operand 0 predicate to
27946 nonimmediate_operand and fix up the destination when needed.
27948 (atomic_loaddi_fpu): Use UNSPEC_LDA.
27949 (atomic_store<mode>): Change operand 1 predicate to
27950 nonimmendate_operand and move the source to register when needed.
27952 (atomic_store<mode>_1): Use UNSPEC_STA.
27953 (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
27954 Fix moves from memory operand. Use UNSPEC_STA.
27956 2015-04-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
27958 * expmed.c (strict_volatile_bitfield_p): Check that the access will
27959 not cross a MODESIZE boundary.
27960 (store_bit_field, extract_bit_field): Added assertions in the
27961 strict volatile bitfields code path.
27963 2015-04-01 Max Ostapenko <m.ostapenko@partner.samsung.com>
27966 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
27967 Increase args array size by one to avoid buffer overflow.
27969 2015-03-31 Jan Hubicka <hubicka@ucw.cz>
27971 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
27973 * ipa-inline.c (edge_badness): Add wrapper penalty.
27974 (sum_callers): Move up.
27975 (inline_small_functions): Set single_caller.
27976 * ipa-inline.h (inline_summary): Add single_caller.
27977 * ipa-split.c (split_function): Set split_part.
27978 (cgraph_node::create_clone): Do not shadow decl; copy split_part.
27979 * cgraph.h (cgraph_node): Add split_part.
27981 2015-03-31 Uros Bizjak <ubizjak@gmail.com>
27984 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
27985 Do not split operands 0 and operands 2 to halfmode.
27986 (atomic_compare_and_swap<mode>): Update for
27987 atomic_compare_and_swap<dwi>_doubleword changes.
27989 2015-03-31 Jan Hubicka <hubicka@ucw.cz>
27991 * tree.c (need_assembler_name_p): Artificial types have no ODR names.
27992 * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
27993 no caching is done.
27995 2015-03-31 Martin Liska <mliska@suse.cz>
27998 * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
27999 has already filled up function summary.
28000 (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
28002 2015-03-31 Richard Biener <rguenther@suse.de>
28004 * tree-sra.c (create_access_replacement): Drop under-/over-alignment
28007 2015-03-31 Dominik Vogt <vogt@linux.vnet.ibm.com>
28009 * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
28011 (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
28012 (s390_asm_output_function_label): Adapt to new signature of
28013 s390_function_num_hotpatch_hw
28014 Optimise the code generating assembler output.
28015 Add comments to assembler file.
28017 2015-03-31 Richard Biener <rguenther@suse.de>
28019 PR middle-end/65626
28020 * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
28021 of the noreturn call so it is last and cleanup_control_flow_bb
28022 can do the CFG part.
28024 2015-03-31 Ilya Enkovich <ilya.enkovich@intel.com>
28027 * ipa-chkp.c (chkp_maybe_create_clone): Don't set
28028 same_comdat_group for external symbols.
28029 * symtab.c (symtab_node::verify_symtab_nodes): Avoid
28030 infinite same_comdat_group traversal loop.
28032 2015-03-31 Jakub Jelinek <jakub@redhat.com>
28035 * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
28036 automatically to $headers.
28038 2015-03-30 Jakub Jelinek <jakub@redhat.com>
28041 * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
28042 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
28044 (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
28046 * ipa-prop.c (param_type_may_change_p): Likewise.
28047 * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
28048 (remove_unused_scope_block_p): Add in_ctor_dtor_block
28049 argument. Before inlining, preserve
28050 inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
28051 with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them. Adjust
28053 (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
28055 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
28058 * ipa-inline.c (edge_badness): Base denominator on callee's
28061 2015-03-27 Martin Jambor <mjambor@suse.cz>
28064 * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
28065 (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
28066 * ipa-prop.h (ipa_node_params): New flags node_within_scc and
28067 node_calling_single_call.
28068 * ipa-cp.c (count_callers): New function.
28069 (set_single_call_flag): Likewise.
28070 (initialize_node_lattices): Count callers and set single_flag_call if
28072 (incorporate_penalties): New function.
28073 (good_cloning_opportunity_p): Use it, dump new flags.
28074 (propagate_constants_topo): Set node_within_scc flag if appropriate.
28075 * doc/invoke.texi (ipa-cp-recursion-penalty,
28076 ipa-cp-single-call-pentalty): Document.
28078 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
28081 * symtab.c (symtab_node::get_partitioning_class): Register vars
28083 * varpool.c (symbol_table::output_variables) Do not assemble unefined
28084 decls for non-symbols.
28086 2015-03-27 H.J. Lu <hongjiu.lu@intel.com>
28089 * output.h (default_binds_local_p_2): New.
28090 * varasm.c (default_binds_local_p_2): Renamed to ...
28091 (default_binds_local_p_3): This. Don't return true on protected
28092 data symbol if protected data may be external.
28093 (default_binds_local_p): Use default_binds_local_p_3.
28094 (default_binds_local_p_1): Likewise.
28095 (default_binds_local_p_2): New.
28096 * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
28097 default_binds_local_p_2 if TARGET_MACHO is undefined.
28099 2015-03-27 Jakub Jelinek <jakub@redhat.com>
28102 * config/i386/i386.c (legitimize_pic_address): If base
28103 is SYMBOL_REF or LABEL_REF using %rip addressing, force
28104 it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
28106 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
28109 * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
28112 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
28115 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
28116 of optimized out indirect call.
28117 (redirect_to_unreachable): Always build symbol table node for
28118 BUILT_IN_UNREACHABLE
28120 2015-03-27 Vladimir Makarov <vmakarov@redhat.com>
28123 * ira-costs.c (record_reg_classes): Process all constraint string
28126 2015-03-27 Bernd Schmidt <bernds@codesourcery.com>
28128 * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
28132 * config/c6x/constraints.md (S3): New constraint.
28133 * config/c6x/c6x.md (real_jump): Use it.
28135 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
28137 PR middle-end/65595
28138 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
28139 do redirection if the call is not optimized out.
28141 2015-03-27 Ilya Enkovich <ilya.enkovich@intel.com>
28144 * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
28145 (fchkp-check-incomplete-type): Add LTO.
28146 (fchkp-zero-input-bounds-for-main): Likewise.
28147 (fchkp-first-field-has-own-bounds): Likewise.
28148 (fchkp-narrow-bounds): Likewise.
28149 (fchkp-narrow-to-innermost-array): Likewise.
28150 (fchkp-use-static-bounds): Likewise.
28151 (fchkp-use-static-const-bounds): Likewise.
28152 (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
28154 2015-03-27 Marek Polacek <polacek@redhat.com>
28156 * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
28158 2015-03-27 Marek Polacek <polacek@redhat.com>
28161 * ubsan.c (ubsan_create_edge): New function.
28162 (instrument_bool_enum_load): Call it.
28163 (instrument_nonnull_arg): Likewise.
28164 (instrument_nonnull_return): Likewise.
28165 (instrument_object_size): Likewise.
28167 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
28169 * lto-streamer.h (class lto_location_cache): Turn loc_cache into
28172 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
28175 * lto-streamer.h (class lto_location_cache): New.
28176 (struct data_in): Add location_cache.
28177 (lto_input_location): Update prototype.
28178 (stream_input_location_now): New.
28179 * streamer-hooks.h (struct streamer_hooks): Make input_location to take
28180 pointer to location.
28181 (stream_input_location): Update.
28182 * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
28183 (warn_odr): Apply location cache before warning.
28184 (lto_input_location): Update prototype.
28185 * gimple-streamer-in.c (input_phi, input_gimple_stmt):
28186 Use stream_input_location_now.
28187 * lto-streamer-in.c (lto_location_cache::current_cache): New static
28189 (lto_location_cache::cmp_loc): New function.
28190 (lto_location_cache::apply_location_cache): New function.
28191 (lto_location_cache::accept_location_cache): New function.
28192 (lto_location_cache::revert_location_cache): New function.
28193 (lto_location_cache::input_location): New function.
28194 (lto_input_location): Do location caching.
28195 (stream_input_location_now): New function.
28196 (input_eh_region, input_struct_function_base): Use
28197 stream_input_location_now.
28198 (lto_data_in_create): use new.
28199 (lto_data_in_delete): Use delete.
28200 * tree-streamer-in.c (unpack_ts_block_value_fields,
28201 unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
28202 lto_input_ts_exp_tree_pointers): Update for cached location api.
28204 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
28207 * passes.def: Add pass_nothrow.
28208 * ipa-pure-const.c: (pass_data_nothrow): New.
28209 (pass_nothrow): New.
28210 (pass_nothrow::execute): New.
28211 (make_pass_nothrow): New.
28212 * tree-pass.h (make_pass_nothrow): Declare.
28214 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
28216 * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
28217 edge to change by speculation resolution or redirection.
28218 (edge_set_predicate): Likewise.
28219 (inline_summary_t::duplicate): Likewise.
28220 (remap_edge_summaries): Likewise.
28222 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
28224 * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
28226 (can_inline_edge_p): Relax option matching for always inline functions.
28228 2015-03-26 Uros Bizjak <ubizjak@gmail.com>
28231 * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
28232 Check operand 4 and operand 0 for equality.
28233 (avx512f_vextract<shuffletype>32x4_1_maskm):
28234 Check operand 6 and operand 0 for equality.
28235 (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
28237 (vec_extract_hi_<mode>_maskm): Ditto.
28239 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
28241 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
28242 dead calls back to live.
28243 (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
28245 (cgraph_node::verify_node): ... here; verify only callee edges,
28247 * cif-code.def (CILK_SPAWN): New code.
28249 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
28251 * ipa-inline-analysis.c (redirect_to_unreachable): New function.
28252 (edge_set_predicate): Use it to mark unreachable edges.
28253 (inline_summary_t::duplicate): Remove unnecesary code.
28254 (remap_edge_summaries): Likewise.
28255 (dump_inline_summary): Report contains_cilk_spawn.
28256 (compute_inline_parameters): Compute contains_cilk_spawn.
28257 (inline_read_section, inline_write_summary): Stream
28258 contains_cilk_spawn.
28259 * ipa-inline.c (can_inline_edge_p): Do not touch
28260 DECL_STRUCT_FUNCTION that may not be available;
28261 use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
28262 remove check for callee_fun->can_throw_non_call_exceptions and
28263 replace it by optimization attribute check; check for flag_exceptions.
28264 * ipa-inline-transform.c (inline_call): Maintain
28265 DECL_FUNCTION_PERSONALITY
28266 * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
28268 2015-03-26 Jakub Jelinek <jakub@redhat.com>
28270 PR tree-optimization/65551
28271 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
28272 TYPE_PRECISION only for INTEGRAL_TYPE_P types.
28274 2015-03-26 Richard Biener <rguenther@suse.de>
28276 PR middle-end/65555
28277 * tree-cfg.c (verify_gimple_call): Do not require a call to
28278 have no LHS if it wasn't recognized as control altering yet.
28280 2015-03-26 Jakub Jelinek <jakub@redhat.com>
28282 PR tree-optimization/64715
28283 * passes.def: Add another instance of pass_object_sizes before ccp1.
28284 * tree-object-size.c (pass_object_sizes::execute): In
28285 first_pass_instance, only handle __bos (, 1) and __bos (, 3)
28286 calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
28287 __bos result and the computed constant. Remove redundant
28288 checks, obsoleted by gimple_call_builtin_p test.
28290 * var-tracking.c (variable_tracking_main_1): Don't track
28291 variables for targetm.no_register_allocation targets.
28293 2015-03-26 Oleg Endo <olegendo@gcc.gnu.org>
28295 * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
28296 * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
28298 2015-03-25 Michael Meissner <meissner@linux.vnet.ibm.com>
28301 * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
28302 XXLXOR to create 0.0. On pre-VSX systems make sure the constant
28303 0.0 is correctly setup.
28304 (extenddftf2_internal): Likewise.
28306 2015-03-25 Sebastian Pop <s.pop@samsung.com>
28308 PR tree-optimization/65177
28309 * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
28311 (duplicate_seme_region): Renamed duplicate_thread_path. Redirect all
28312 edges not adjacent on the path to the original code.
28314 2015-03-25 Uros Bizjak <ubizjak@gmail.com>
28317 * doc/install.texi (Building a native compiler): Document new
28318 bootstrap-lto-noplugin configuration. Mention that bootstrap-lto
28319 configuration assumes that the host supports the linker plugin.
28321 2015-03-25 Ilya Enkovich <ilya.enkovich@intel.com>
28324 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
28325 chain for generated call.
28327 2015-03-25 Richard Biener <rguenther@suse.de>
28329 * passes.c (pass_manager::execute_early_local_passes): Guard
28330 execution of pass_chkp_instrumentation_passes with
28331 flag_check_pointer_bounds.
28332 (pass_chkp_instrumentation_passes::gate): Likewise.
28334 2015-03-25 Martin Liska <mliska@suse.cz>
28336 PR tree-optimization/65538
28337 * symbol-summary.h (function_summary::~function_summary):
28338 Relese memory for allocated summaries.
28339 (function_summary::release): New function.
28341 2015-03-25 Jakub Jelinek <jakub@redhat.com>
28344 * lto-streamer-out.c (DFS::worklist): New struct.
28345 (DFS::worklist_vec): New data member.
28346 (DFS::next_dfs_num): Remove.
28347 (DFS::DFS): Rewritten using worklist instead of recursion,
28348 using most of code from DFS::DFS_write_tree.
28349 (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
28350 pass it to DFS_write_tree calls.
28351 (DFS::DFS_write_tree): Remove SINGLE_P argument, after
28352 quick initial checks push it into worklist_vec and return.
28354 2015-03-25 Richard Biener <rguenther@suse.de>
28356 PR middle-end/65519
28357 * genmatch.c (expr::gen_transform): Re-write to avoid
28358 using gimple_build.
28360 2015-03-25 Bin Cheng <bin.cheng@arm.com>
28362 * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
28364 2015-03-25 Bin Cheng <bin.cheng@arm.com>
28366 * config/arm/arm.opt (print_tune_info): New option.
28367 * config/arm/arm.c (arm_print_tune_info): New function.
28368 (arm_file_start): Call arm_print_tune_info.
28369 * config/arm/arm-protos.h (struct tune_params): Add comment.
28370 * doc/invoke.texi (@item -mprint-tune-info): New item.
28371 (-mtune): mention it in ARM Option Summary.
28373 2015-03-25 DJ Delorie <dj@redhat.com>
28375 * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
28378 2015-03-24 Jan Hubicka <hubicka@ucw.cz>
28379 Martin Liska <mliska@suse.cz>
28381 * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
28382 * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
28383 (sem_item::add_type): New function.
28384 (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
28385 (sem_function::compare_polymorphic_p): Do not consider indirect calls.
28386 (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
28387 (sem_function::equals_wpa): Fix typo.
28388 * ipa-icf.h (sem_item::add_type): New function.
28389 (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
28392 2015-03-24 Jakub Jelinek <jakub@redhat.com>
28394 PR tree-optimization/65533
28395 * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
28396 with swapped operands, call vect_free_slp_tree on
28397 SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
28400 2015-03-24 Richard Biener <rguenther@suse.de>
28402 PR middle-end/65517
28403 * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
28404 for fixup if necessary.
28406 2015-03-23 Sandra Loosemore <sandra@codesourcery.com>
28408 * doc/extend.texi (Function Attributes): Add @cindex entries
28409 for all attributes and regularize their format. Delete text
28410 about long-obsolete 68HC11 and 68HC12 targets. Move misplaced
28411 information about "eightbit_data", "tiny_data", and "model"
28412 variable attributes to the Variable Attributes section. Fix
28413 some obvious typos and copy-editing issues.
28414 (Variable Attributes, Type Attributes): Likewise add/fix
28415 @cindex entries for all attributes.
28417 2015-03-23 Jakub Jelinek <jakub@redhat.com>
28420 * tree-chkp.c (chkp_build_returned_bound): Ignore
28421 ERF_RETURNS_ARG calls if they have fewer than needed arguments.
28423 2015-03-23 Oleg Endo <olegendo@gcc.gnu.org>
28426 * config/sh/predicates.md (simple_mem_operand,
28427 displacement_mem_operand): Add test for reg.
28428 (short_displacement_mem_operand): Test for displacement_mem_operand
28429 before invoking sh_disp_addr_displacement.
28430 * config/sh/constraints.md (Sdd, Sra): Simplify.
28431 * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
28432 Remove redundant displacement_mem_operand tests.
28434 2015-03-23 Georg-Johann Lay <avr@gjlay.de>
28437 * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
28438 the same -mmcu=MCU more than once.
28440 2015-03-23 Jakub Jelinek <jakub@redhat.com>
28443 * ipa-devirt.c: Remove duplicate demangle.h include.
28446 * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
28448 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
28449 REG_POINTER on *destptr after adjusting it for prologue size.
28452 * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
28453 ultimate_alias_target ()->order ints instead of
28454 ultimate_alias_target () pointers.
28456 2015-03-23 Richard Biener <rguenther@suse.de>
28458 PR tree-optimization/65518
28459 * tree-vect-stmts.c (vectorizable_load): Reject single-element
28460 interleaving cases we generate absymal code for.
28462 2015-03-23 Richard Biener <rguenther@suse.de>
28464 PR tree-optimization/65494
28465 * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
28467 (vect_analyze_slp_instance): But do that here, always and once.
28469 2015-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28471 * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
28472 adding T or multiplying by T+1 and subracting T.
28474 2015-03-22 Jeff Law <law@redhat.com>
28476 PR rtl-optimization/64317
28477 * Makefile.in (OBJS): Add gcse-common.c
28478 * gcse.c: Include gcse-common.h
28479 (struct modify_pair_s): Move structure definition to gcse-common.h
28480 (compute_transp): Move function to gcse-common.c.
28481 (canon_list_insert): Similarly.
28482 (record_last_mem_set_info): Break out some code and put it into
28483 gcse-common.c. Call into the new common code.
28484 (compute_local_properties): Pass additional arguments to compute_transp.
28485 * postreload-gcse.c: Include gcse-common.h and df.h
28486 (modify_mem_list_set, blocks_with_calls): New variables.
28487 (modify_mem_list, canon_modify_mem_list, transp): Likewise.
28488 (get_bb_avail_insn): Pass in the expression index too.
28489 (alloc_mem): Allocate memory for the new bitmaps and lists.
28490 (free_mem): Free memory for the new bitmaps and lists.
28491 (insert_expr_in_table): Record a bitmap index for each entry we
28493 (record_last_mem_set_info): Call into common code in gcse-common.c.
28494 (get_bb_avail_insn): If no available insn was found in the requested
28495 BB. If BB has a single predecessor, see if the expression is
28496 transparent in BB and available in that single predecessor.
28497 (compute_expr_transp): New wrapper for compute_transp.
28498 (eliminate_partially_redundant_load): Pass expression's bitmap_index
28499 to get_bb_avail_insn. Compute next_pred_bb_end a bit later.
28500 (gcse_after_reload_main): If there are elements in the hash table,
28501 then compute transparency for all the elements in the hash table.
28502 * gcse-common.h: New file.
28503 * gcse-common.c: New file.
28505 2015-03-22 Sandra Loosemore <sandra@codesourcery.com>
28507 * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
28509 (System Headers): Likewise.
28511 (Traditional macros): Likewise.
28512 (Invocation): Likewise.
28513 (Option Index): Likewise.
28514 * doc/cppopts.texi (-M): Likewise.
28515 (-finput-charset): Likewise.
28516 (--help): Likewise.
28517 * doc.invoke.texi (AVR Options): Likewise.
28518 (V850 Options): Likewise.
28520 2015-03-22 Jan Hubicka <hubicka@ucw.cz>
28523 * ipa-devirt.c: Include demangle.h
28524 (odr_type_d): Add field rtti_broken.
28525 (odr_subtypes_equivalent_p): Do not require name to match.
28526 (compare_virtual_tables): Fix typo; if type already has ODR violation,
28527 bypass the tests; be ready for function referneces in vtables that are
28528 not DECL_VIRTUAL; make warnings to be OPT_Wodr.
28529 (warn_odr): Give up for nameless types.
28530 (warn_types_mismatch): Report mismatch in mangled names;
28531 report mismatch in anonymous namespaces; look into component types to
28532 give useful error; report when mismatch is dragged in from other ODR
28534 (odr_types_equivalent_p): Match types for being polymorphic; avoid
28535 duplicated diagnostics.
28536 (add_type_duplicate): Reorder checks so more informative ones come
28537 first; fix typo; do not output "the extra base is defined here" when
28539 (BINFO_N_BASE_BINFOS): Relax sanity check.
28541 2015-03-22 Martin Liska <mliska@suse.cz>
28542 Jakub Jelinek <jakub@redhat.com>
28544 * config/i386/i386.c (def_builtin): Set deferred_isa_values for
28545 masks that can potentially include a builtin.
28546 (ix86_add_new_builtins): Introduce fast filter for isa values
28547 that cannot trigger builtin inclusion.
28549 2015-03-22 Martin Liska <mliska@suse.cz>
28551 * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
28552 (sem_item::update_hash_by_local_refs): Likewise.
28553 (sem_variable::get_hash): Empty line is fixed.
28554 (sem_item_optimizer::execute): Include adding of hash references.
28555 (sem_item_optimizer::update_hash_by_addr_refs): New function.
28556 (sem_item_optimizer::build_hash_based_classes): Use local hash.
28557 * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
28558 (sem_item::update_hash_by_local_refs): Likewise.
28560 2015-03-20 Jan Hubicka <hubicka@ucw.cz>
28563 * ipa-comdats.c (enqueue_references): Walk through thunks.
28564 (ipa_comdats): Likewise.
28565 (set_comdat_group_1): New function.
28567 2015-03-20 Jan Hubicka <hubicka@ucw.cz>
28570 * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
28573 2015-03-22 Dave Korn <dave.korn.cygwin@gmail.com>
28574 Gerald Pfeifer <gerald@pfeifer.com>
28576 * doc/contrib.texi (Contributors): Update entry for Danny Smith.
28578 2015-03-21 Chung-Lin Tang <cltang@codesourcery.com>
28579 Sandra Loosemore <sandra@codesourcery.com>
28581 * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
28582 function parameter declaration.
28583 * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
28584 Update arguments to nios2_adjust_call_address().
28585 (sibcall_internal): Rename from *sibcall.
28586 (sibcall_value_internal): Rename from *sibcall_value.
28587 * config/nios2/nios2.c (nios2_emit_add_constant): New function.
28588 (nios2_large_got_address): Add target temp reg parameter.
28589 (nios2_got_address): Adjust call to nios2_large_got_address, add
28590 force_reg around it.
28591 (nios2_load_pic_address): Add target temp reg parameter, replace call
28592 to nios2_got_address with corresponding code.
28593 (nios2_legitimize_constant_address): Update call to
28594 nios2_load_pic_address.
28595 (nios2_adjust_call_address): Add temp reg parameter, update PIC case
28596 to use temp reg for PIC loading purposes.
28597 (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
28598 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
28599 (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
28601 2015-03-21 Sandra Loosemore <sandra@codesourcery.com>
28603 * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
28604 usage of "the @option{...}".
28605 (-Wopenmp-simd): Likewise.
28606 (-fsanitize-recover): Likewise.
28607 (-fsanitize-undefined-trap-on-error): Likewise.
28609 (tracer-dynamic-coverage-feedback): Likewise.
28610 (reorder-block-duplicate-feedback): Likewise.
28611 (loop-unroll-jam-size): Likewise.
28614 (-mabs=legacy): Likewise.
28615 (-mupper-regs-df): Likewise.
28616 (-mupper-regs-sf): Likewise.
28617 (-mpointers-to-nested-functions): Likewise.
28619 2015-03-21 Sandra Loosemore <sandra@codesourcery.com>
28621 * doc/extend.texi (Cilk Plus Builtins): Add markup.
28623 2015-03-21 Sandra Loosemore <sandra@codesourcery.com>
28625 * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
28626 additional index entries and cross-references.
28627 (-fchkp-check-incomplete-type): Likewise.
28628 (-fchkp-first-field-has-own-bounds): Likewise.
28629 (-fchkp-narrow-to-innermost-array): Likewise.
28630 (-fchkp-use-fast-string-functions): Likewise.
28631 (-fchkp-use-nochk-string-functions): Likewise.
28632 (-fchkp-use-static-const-bounds): Likewise.
28633 (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
28634 (-fchkp-instrument-marked-only): Likewise.
28635 (-fchkp-use-wrappers): Likewise.
28636 (-static-libmpx): Likewise.
28637 (-static-libmpxwrappers): Likewise.
28638 * doc/extend.texi (bnd_legacy): Likewise.
28639 (bnd_instrument): Likewise.
28640 (bnd_variable_size): Likewise.
28641 (Pointer Bounds Checker builtins): Likewise.
28643 2015-03-21 Tom de Vries <tom@codesourcery.com>
28645 PR tree-optimization/65458
28646 * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
28647 * cgraph.h (cgraph_node): Add parallelized_function field.
28648 * lto-cgraph.c (lto_output_node): Write parallelized_function field.
28649 (input_overwrite_node): Read parallelized_function field.
28650 * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
28651 parallelized_function on cgraph_node for child_fn.
28652 * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
28653 Remove include of gt-tree-parloops.h.
28654 (parallelized_functions): Remove static variable.
28655 (parallelized_function_p): Rewrite using parallelized_function field of
28657 (create_loop_fn): Remove adding to parallelized_functions.
28658 * Makefile.in (GTFILES): Remove tree-parloops.c
28660 2015-03-20 Vladimir Makarov <vmakarov@redhat.com>
28662 PR rtl-optimization/64366
28663 * lra.c (lra_update_insn_regno_info): Consider regs in
28664 CALL_INSN_FUNCTION_USAGE memory.
28666 2015-03-20 Richard Biener <rguenther@suse.de>
28668 PR middle-end/64715
28669 * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
28670 for type comparison and gcc_checking_assert.
28671 (chrec_fold_plus_poly_poly): Likewise.
28672 (chrec_fold_multiply_poly_poly): Likewise.
28673 (chrec_convert_1): Likewise.
28674 * gimplify.c (gimplify_expr): Remove premature folding of
28675 &X + CST to &MEM[&X, CST].
28677 2015-03-20 Jan Hubicka <hubicka@ucw.cz>
28679 * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
28681 (ipa_inline): Recompute inline_failed codes.
28682 * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
28683 USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
28686 2015-03-20 Uros Bizjak <ubizjak@gmail.com>
28688 PR rtl-optimization/60851
28689 * recog.c (constrain_operands): Accept a pseudo register before reload
28690 for LRA enabled targets.
28692 2015-03-19 Michael Meissner <meissner@linux.vnet.ibm.com>
28695 * config/rs6000/predicates.md (easy_fp_constant): Remove special
28696 -ffast-math handling that kept non-0 constants live in the RTL
28697 until reload. Remove logic testing the number of instructions it
28698 took to create a constant in a GPR that was never used, due to a
28699 test for soft-float earlier.
28700 (memory_fp_constant): Delete, no longer used.
28702 * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
28703 alternatives for loading non-0 constants into GPRs for hard
28704 floating point that is no longer needed due to changes in
28705 easy_fp_constant. Add support for loading 0.0 into GPRs.
28706 (mov<mode>_hardfloat32): Likewise.
28707 (mov<mode>_hardfloat64): Likewise.
28708 (mov<mode>_64bit_dm): Likewise.
28709 (movtd_64bit_nodm): Likewise.
28710 (pre-reload move FP constant define_split): Delete define_split,
28711 since it is no longer used.
28712 (extenddftf2_internal): Remove GHF constraints that are not valid
28715 2015-03-19 Vladimir Makarov <vmakarov@redhat.com>
28717 PR rtl-optimization/63491
28718 * lra-constraints.c (check_and_process_move): Use src instead of
28719 sreg. Remove some dead code.
28721 2015-03-19 Jan Hubicka <hubicka@ucw.cz>
28724 * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
28725 (sem_variable::merge): Likewise.
28727 2015-03-19 Martin Liska <mliska@suse.cz>
28730 * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
28731 all fields of cgraph_thunk_info.
28733 2015-03-19 Ilya Enkovich <ilya.enkovich@intel.com>
28735 * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
28736 clone instrumented thunks.
28738 2015-03-19 Richard Biener <rguenther@suse.de>
28741 2015-03-10 Richard Biener <rguenther@suse.de>
28743 PR middle-end/63155
28744 * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
28745 * tree-ssa-coalesce.c: Include timevar.h.
28746 (attempt_coalesce): Handle graph being NULL.
28747 (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
28748 Split out abnormal coalescing to ...
28749 (perform_abnormal_coalescing): ... this function.
28750 (coalesce_ssa_name): Perform abnormal coalescing without computing
28752 (verify_ssa_coalescing_worker): New function.
28753 (verify_ssa_coalescing): Likewise.
28755 2015-03-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
28756 Jakub Jelinek <jakub@redhat.com>
28759 * tsan.c (instrument_gimple): Clear tail call flag on
28762 2015-03-19 Jakub Jelinek <jakub@redhat.com>
28765 * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
28766 call in the return bb.
28767 (find_split_points): Add RETURN_BB argument, don't call
28769 (split_function): Likewise. Add ADD_TSAN_FUNC_EXIT argument,
28770 if true append TSAN_FUNC_EXIT internal call after the call to
28771 the split off function.
28772 (execute_split_functions): Call find_return_bb here.
28773 Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
28774 Adjust find_split_points and split_function calls.
28776 2015-03-18 DJ Delorie <dj@redhat.com>
28778 * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
28779 (iorqi3_virt): Likewise.
28781 2015-03-18 Tom de Vries <tom@codesourcery.com>
28783 * tree-parloops.c (parallelize_loops): Make static.
28784 * tree-parloops.h (parallelize_loops): Remove extern declaration.
28786 2015-03-18 Andrew Stubbs <ams@codesourcery.com>
28788 PR middle-end/64491
28790 2014-11-20 Andrew Stubbs <ams@codesourcery.com>
28792 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
28793 condition would be removed due to undefined behaviour.
28795 2015-03-18 Martin Liska <mliska@suse.cz>
28798 * cgraph.c (cgraph_node::get_create): Remove unnecessary
28799 xstrdup_for_dump wrapper.
28800 * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
28802 (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
28803 with xstrdup_for_dump.
28804 (sem_variable::equals): Likewise.
28805 (sem_item_optimizer::read_section): Use symtab_node::name instead of
28807 (sem_item_optimizer::parse_funcs_and_vars): Likewise.
28808 (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
28809 symtab_node::asm_name with xstrdup_for_dump.
28810 (congruence_class::dump): Use symtab_node::name instead of
28812 * ipa-icf.h (symtab_node::name): Remove.
28813 (symtab_node::asm_name): Likewise.
28815 2015-03-18 Jakub Jelinek <jakub@redhat.com>
28817 PR tree-optimization/65450
28818 * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
28820 (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
28821 it instead of duplicate_ssa_name_ptr_info.
28824 * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
28826 2015-03-18 Richard Biener <rguenther@suse.de>
28828 * tree-data-ref.h (struct access_matrix): Remove.
28829 (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
28830 AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
28831 AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
28832 (am_vector_index_for_loop): Likewise.
28833 (struct data_reference): Remove access_matrix member.
28834 (DR_ACCESS_MATRIX): Remove.
28835 (lambda_vector_new): Add comment.
28836 (lambda_matrix_new): Use XOBNEWVEC.
28838 2015-03-18 Richard Biener <rguenther@suse.de>
28840 * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
28841 (pass_ch::execute): Cleanup the CFG only if we did sth.
28842 * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
28844 2015-03-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28846 * expmed.c (synth_mult): Use std::swap instead of manually
28847 swapping algorithms.
28849 2015-03-18 Jakub Jelinek <jakub@redhat.com>
28852 * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
28854 2015-03-16 Georg-Johann Lay <avr@gjlay.de>
28857 * config/avr/avr.opt (-nodevicelib): New option.
28858 * doc/invoke.texi (AVR Options): Document it.
28859 * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
28860 libgcc.a, libc.a, libm.a.
28861 * config/avr/specs.h: Same.
28862 * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
28863 which don't (directly) depend on the device. Print more help.
28864 (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
28865 (*cpp): Don't define __AVR_DEV_LIB_NAME__.
28866 * config/avr/driver-avr.c: Remove -nodevicelib from option list in
28868 (avr_devicespecs_file): Use suffix "%s" instead of absolute path
28869 for specs file name.
28870 * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
28871 * config/avr/avr-mcus.def: Adjust initializers and comments.
28873 2015-03-16 Jan Hubicka <hubicka@ucw.cz>
28875 * tree-sra.c (ipa_sra_preliminary_function_checks): Use
28876 DECL_ONE_ONLY to check if decl is one only.
28877 * ipa-split.c (consider_split): Limit splitt of one only functions.
28879 2015-03-16 Jakub Jelinek <jakub@redhat.com>
28881 PR tree-optimization/65427
28882 * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
28884 (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
28886 2015-03-16 Marek Polacek <polacek@redhat.com>
28888 * cgraph.h (add_new_static_var): Remove declaration.
28889 * varpool.c (add_new_static_var): Remove function.
28891 2015-03-16 Jakub Jelinek <jakub@redhat.com>
28893 * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
28894 instead of vec<tree> * with vec_alloc and release for args.
28897 PR middle-end/65431
28898 * omp-low.c (delete_omp_context): Only splay_tree_delete
28899 reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
28900 is_gimple_omp_oacc contexts. Don't look at ctx->outer.
28902 2015-03-16 Max Ostapenko <m.ostapenko@partner.samsung.com>
28905 * cfgexpand.c (align_base): New function.
28906 (alloc_stack_frame_space): Call it.
28907 (expand_stack_vars): Align prev_frame to be sure
28908 data->asan_vec elements aligned properly.
28910 2015-03-16 Eric Botcazou <ebotcazou@adacore.com>
28912 PR middle-end/65409
28913 * expr.c (store_field): Do not do a direct block copy if the source is
28914 a PARALLEL with BLKmode.
28916 2015-03-16 Tom de Vries <tom@codesourcery.com>
28918 PR middle-end/65414
28920 2015-03-12 Tom de Vries <tom@codesourcery.com>
28922 PR rtl-optimization/64895
28923 * lra-lives.c (check_pseudos_live_through_calls): Use
28924 actual_call_used_reg_set instead of call_used_reg_set, if available.
28926 2015-03-16 Alan Modra <amodra@gmail.com>
28929 * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
28930 Modify Z->r bswapdi splitter to use dest in place of scratch.
28931 In r->Z and Z->r bswapdi splitter rename word_high, word_low
28932 to word1, word2 and rearrange logic to suit.
28933 (bswapdi2_64bit): Remove early clobber on Z->r alternative.
28934 (bswapdi2_ldbrx): Likewise. Remove '??' on r->r.
28935 (bswapdi2_32bit): Remove early clobber on Z->r alternative.
28936 Add one '?' on r->r. Modify Z->r splitter to avoid need for
28939 2015-03-14 Jakub Jelinek <jakub@redhat.com>
28941 PR tree-optimization/65369
28942 * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
28943 Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
28944 (vs - 1) * TYPE_SIZE_UNIT (elem_type).
28946 PR tree-optimization/65418
28947 * tree-ssa-reassoc.c (extract_bit_test_mask): If there
28948 are casts in the first PLUS_EXPR operand, ensure tbias and
28949 *totallowp are in the inner type.
28951 PR rtl-optimization/65401
28952 * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
28953 argument. If true, adjust_address_nv of x with big-endian
28954 correction for the mode widening to GET_MODE (y).
28955 (make_field_assignment): Don't do MEM mode widening here.
28956 Use MEM_P instead of GET_CODE == MEM.
28958 2015-03-13 Ilya Verbin <ilya.verbin@intel.com>
28960 * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
28961 the external decls.
28963 2015-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28966 * config/arm/arm.c (arm_gen_constant, AND case): Use
28967 ARM_SIGN_EXTEND when constructing AND mask.
28969 2015-03-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
28971 * graph.c (print_graph_cfg): Make function names visible and append
28972 parenthesis to it. Also make groups of basic blocks belonging to the
28973 same function visible.
28975 2015-03-12 Richard Biener <rguenther@suse.de>
28977 PR middle-end/44563
28978 * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
28979 to avoid quadratic behavior with inline expansion splitting blocks.
28980 * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
28981 with the successor if the predecessor will be merged with it.
28982 * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
28983 entry block with its successor.
28985 2015-03-13 Richard Biener <rguenther@suse.de>
28987 PR middle-end/44563
28988 * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
28989 (cleanup_tree_cfg_1): Do not call it.
28990 (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
28991 (fixup_noreturn_call): Mark the stmt as control altering.
28992 * tree-cfg.c (execute_fixup_cfg): Do not dump the function
28994 (pass_data_fixup_cfg): Produce a dump file.
28995 * tree-ssa-dom.c: Include tree-cfgcleanup.h.
28996 (need_noreturn_fixup): New global.
28997 (pass_dominator::execute): Fixup queued noreturn calls.
28998 (optimize_stmt): Queue calls that became noreturn for fixup.
28999 * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
29000 * tree-ssa-pre.c: Include tree-cfgcleanup.h.
29001 (el_to_fixup): New global.
29002 (eliminate_dom_walker::before_dom_childre): Queue calls that
29003 became noreturn for fixup.
29004 (eliminate): Fixup queued noreturn calls.
29005 * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
29006 (substitute_and_fold_dom_walker): New member stmts_to_fixup.
29007 (substitute_and_fold_dom_walker::before_dom_children): Queue
29008 alls that became noreturn for fixup.
29009 (substitute_and_fold): Fixup queued noreturn calls.
29011 2015-03-12 Jan Hubicka <hubicka@ucw.cz>
29013 * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
29014 and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
29015 are building; for methods check ODR type of class they belong to if
29016 they may lead to a polymorphic call.
29017 (sem_function::compare_polymorphic_p): Be bit smarter about testing
29018 when function may lead to a polymorphic call.
29019 (sem_function::compare_type_list): Remove.
29020 (sem_variable::equals): Update use of compatible_types_p.
29021 (sem_variable::parse_tree_refs): Remove.
29022 (sem_item_optimizer::filter_removed_items): Do not filter out CXX
29024 * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
29026 (func_checker::compatible_polymorphic_types_p): Break out from ...
29027 (unc_checker::compatible_types_p): ... here.
29028 * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
29030 (unc_checker::compatible_types_p): Update.
29031 * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
29034 2015-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29036 PR rtl-optimization/65235
29037 * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
29038 When first element of vec_concat is const_int, calculate its size
29039 using second element.
29041 2015-03-12 Richard Biener <rguenther@suse.de>
29043 PR middle-end/65270
29044 * fold-const.c (operand_equal_p): Fix ordering of resetting
29045 OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
29047 2015-03-12 Dominik Vogt <vogt@linux.vnet.ibm.com>
29049 * config/s390/s390.c (s390_reorg): Move code to output nops after label
29051 (s390_asm_output_function_label): Likewise.
29052 * config/s390/s390.c (s390_asm_output_function_label):
29053 Fix function label alignment with -mhtopatch.
29054 * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
29055 UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
29056 ("nop_2_byte"): New define_insn.
29057 ("nop_4_byte"): Likewise.
29058 ("nop_6_byte"): Likewise.
29059 * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
29060 * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
29062 2015-03-12 Ilya Enkovich <ilya.enkovich@intel.com>
29065 * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
29068 2015-03-12 Ilya Enkovich <ilya.enkovich@intel.com>
29071 * toplev.c (process_options): Restrict Pointer Bounds Checker
29072 usage with Address Sanitizer.
29074 2015-03-12 Richard Biener <rguenther@suse.de>
29076 * tree-cfg.c (gimple_split_block): Remove loop finding stmt
29078 * omp-low.c (expand_omp_taskreg): Split block before removing
29080 (expand_omp_target): Likewise.
29081 * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
29082 * tree-parloops.c (create_call_for_reduction_1): Pass a proper
29083 stmt to split_block.
29085 2015-03-12 Tom de Vries <tom@codesourcery.com>
29087 PR rtl-optimization/64895
29088 * lra-lives.c (check_pseudos_live_through_calls): Use
29089 actual_call_used_reg_set instead of call_used_reg_set, if available.
29091 2015-03-10 Jan Hubicka <hubicka@ucw.cz>
29093 * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
29094 (cgraph_node::remove): Likewise.
29095 (cgraph_node::get_untransformed_body): Likewise.
29096 * varpool.c (varpool_node::remove): Likewise.
29097 (varpool_node::get_constructor): Add sanity check.
29099 2015-03-11 Sandra Loosemore <sandra@codesourcery.com>
29101 * doc/invoke.texi (-fgnu89-inline): Remove discussion about
29103 (-fabi-compat-version): Likewise.
29104 (-ffriend-injection): Likewise.
29105 (-Wdeclaration-after-statement): Likewise.
29106 (-fomit-frame-pointer): Likewise.
29107 (-ftree-coalesce-inlined-vars): Likewise.
29108 (-fvisibility=): Likewise.
29109 * doc/extend.texi (Typeof): Likewise.
29110 (Zero Length): Likewise.
29111 (Escaped Newlines): Likewise.
29112 (Compound Literals): Likewise.
29113 (Function Attributes): Likewise.
29114 (Label Attributes): Likewise.
29115 (Type Attributes): Likewise.
29116 (Function Names): Likewise.
29117 (Other Builtins): Likewise.
29118 (Function Specific Option Pragmas): Likewise.
29119 (C++ Interface): Likewise.
29121 2015-03-11 Thomas Schwinge <thomas@codesourcery.com>
29123 * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
29125 2015-03-11 Marek Polacek <polacek@redhat.com>
29127 PR tree-optimization/65388
29128 * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
29130 2015-03-10 Georg-Johann Lay <avr@gjlay.de>
29133 * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
29134 * configure: Regenerate.
29135 * config.in: Regenerate.
29136 * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
29137 [-mn-flash]: Document it.
29138 [__AVR_ARCH__]: Document avrtiny.
29140 * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
29141 (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
29142 (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
29144 2015-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29146 * doc/invoke.texi: Add missing cpu values (z196, zEC12).
29148 2015-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
29151 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
29152 allow reloads of PLUS in floating point/VSX registers.
29154 2015-03-11 Junmo Park <junmoz.park@samsung.com>
29156 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
29157 crypto_sha256_fast.
29158 (cortex_a57_crypto_complex): Add crypto_sha256_slow.
29160 2015-03-11 Richard Biener <rguenther@suse.de>
29162 PR tree-optimization/65310
29163 * tree-sra.c (build_ref_for_offset): Also preserve larger
29166 2015-03-11 Marat Zakirov <m.zakirov@samsung.com>
29168 * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
29170 2015-03-10 Jakub Jelinek <jakub@redhat.com>
29173 * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
29175 (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
29177 2015-03-10 Jan Hubicka <hubicka@ucw.cz>
29179 * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
29180 (sem_function::equals_wpa): ... here.
29182 2015-03-10 Marek Polacek <polacek@redhat.com>
29183 Jakub Jelinek <jakub@redhat.com>
29186 * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
29187 when only removing the statement. Handle expanding UBSAN_OBJECT_SIZE
29190 2015-03-10 Jakub Jelinek <jakub@redhat.com>
29193 * config/rs6000/t-linux: For powerpc64* target set
29194 MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
29196 2015-03-10 Richard Biener <rguenther@suse.de>
29198 PR middle-end/44563
29199 * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
29200 for redirect_all_calls.
29202 2015-03-10 Marek Polacek <polacek@redhat.com>
29204 * gdbinit.in (pcfun): Define and document.
29206 2015-03-10 Ilya Verbin <ilya.verbin@intel.com>
29208 * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
29209 of libgomp-plugin.h.
29210 (find_target_compiler): Support a case when the path to gcc is
29211 specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
29212 (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
29213 intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
29215 (main): Use GCC_INSTALL_NAME as target_driver_name.
29216 * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
29218 (mkoffload.o): Remove obsolete include path and defines.
29219 (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
29221 2015-03-10 Richard Biener <rguenther@suse.de>
29223 PR middle-end/63155
29224 * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
29225 * tree-ssa-coalesce.c: Include timevar.h.
29226 (attempt_coalesce): Handle graph being NULL.
29227 (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
29228 Split out abnormal coalescing to ...
29229 (perform_abnormal_coalescing): ... this function.
29230 (coalesce_ssa_name): Perform abnormal coalescing without computing
29232 (verify_ssa_coalescing_worker): New function.
29233 (verify_ssa_coalescing): Likewise.
29235 2015-03-10 Georg-Johann Lay <avr@gjlay.de>
29238 * config.gcc (extra_options) [avr]: Remove.
29239 (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
29240 (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
29241 (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
29243 * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
29244 (-mmcu=): Add Var and MissingArgError properties.
29246 * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
29247 * config/avr/t-multilib: Regenerate.
29248 * config/avr/specs.h: New file.
29249 * config/avr/driver-avr.c: New file.
29250 * config/avr/genopt.sh: Remove file.
29251 * config/avr/avr-tables.opt: Remove file.
29252 * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
29253 * config/avr/avr-c.c: Same.
29254 * avr-arch.h: Same.
29255 (avr_current_device): Remove proto.
29256 * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
29257 (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
29258 (EXTRA_SPEC_FUNCTIONS): Define.
29259 (avr_devicespecs_file): New specs function proto.
29260 (DRIVER_SELF_SPECS): Use device-specs-file spec function.
29261 * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
29262 (avr_current_device): Remove definition and usage.
29263 (avr_set_core_architecture): New static function.
29264 (avr_option_override): Use it.
29265 * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
29266 (mcu_name): New static array.
29267 (comparator, avr_archs_str, avr_mcus_str): New static functions.
29268 (avr_inform_devices, avr_inform_core_architectures): New functions.
29269 * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
29270 (avrlibc.h) [WITH_AVRLIBC]: Include.
29271 (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
29272 (print_mcu): Rewrite from scratch.
29273 * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
29274 Forward to avr-specific specs defined in device-specs file.
29275 * config/avr/t-avr (driver-avr.o): New rule.
29276 (avr-devices.o): Depend on avr-arch.h.
29277 (avr-mcus): No more depend on avr-tables.opt.
29278 (avr-tables.opt): Remove rule.
29279 (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
29281 2015-03-10 Ilya Enkovich <ilya.enkovich@intel.com>
29283 * c-family/c.opt (fchkp-use-wrappers): New.
29284 * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
29285 (chkp_wrap_function): New.
29286 (chkp_build_instrumented_fndecl): Support wrapped
29288 * doc/invoke.texi (-fcheck-pointer-bounds): New.
29289 (-fchkp-check-incomplete-type): New.
29290 (-fchkp-first-field-has-own-bounds): New.
29291 (-fchkp-narrow-bounds): New.
29292 (-fchkp-narrow-to-innermost-array): New.
29293 (-fchkp-optimize): New.
29294 (-fchkp-use-fast-string-functions): New.
29295 (-fchkp-use-nochk-string-functions): New.
29296 (-fchkp-use-static-bounds): New.
29297 (-fchkp-use-static-const-bounds): New.
29298 (-fchkp-treat-zero-dynamic-size-as-infinite): New.
29299 (-fchkp-check-read): New.
29300 (-fchkp-check-write): New.
29301 (-fchkp-store-bounds): New.
29302 (-fchkp-instrument-calls): New.
29303 (-fchkp-instrument-marked-only): New.
29304 (-fchkp-use-wrappers): New.
29305 (-static-libmpx): New.
29306 (-static-libmpxwrappers): New.
29308 2015-03-10 Ilya Enkovich <ilya.enkovich@intel.com>
29310 * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
29311 (CHKP_SPEC): Add wrappers library.
29312 * c-family/c.opt (static-libmpxwrappers): New.
29314 2015-03-10 Ilya Enkovich <ilya.enkovich@intel.com>
29316 * config/i386/linux-common.h (LIBMPX_LIBS): New.
29317 (LIBMPX_SPEC): New.
29319 * gcc.c (CHKP_SPEC): New.
29320 (LINK_COMMAND_SPEC): Add CHKP_SPEC.
29321 * c-family/c.opt (static-libmpx): New.
29323 2015-03-10 Richard Biener <rguenther@suse.de>
29325 PR middle-end/44563
29326 * cgraph.h (struct cgraph_edge_hasher): Add hash overload
29328 * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
29329 (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
29330 (cgraph_add_edge_to_call_site_hash): Likewise.
29331 (cgraph_node::get_edge): Likewise.
29332 (cgraph_edge::set_call_stmt): Likewise.
29333 (cgraph_edge::remove_caller): Likewise.
29335 2015-03-10 Chung-Ju Wu <jasonwucj@gmail.com>
29337 * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
29338 (callee_saved_gpr_regs_size): ... this.
29339 (callee_saved_regs_first_regno): Rename to ...
29340 (callee_saved_first_gpr_regno): ... this.
29341 (callee_saved_regs_last_regno) Rename to ...
29342 (callee_saved_last_gpr_regno): ... this.
29343 * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
29345 (nds32_initial_elimination_offset): Likewise.
29346 (nds32_expand_prologue): Likewise.
29347 (nds32_expand_epilogue): Likewise.
29348 (nds32_expand_prologue_v3push): Likewise.
29349 (nds32_expand_epilogue_v3pop): Likewise.
29350 * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
29351 Adjust renamed variables.
29352 (nds32_output_stack_pop): Likewise.
29354 2015-03-10 Thomas Preud'homme <thomas.preudhomme@arm.com>
29356 * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
29359 2015-03-10 Jakub Jelinek <jakub@redhat.com>
29361 PR rtl-optimization/65321
29362 * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
29364 * var-tracking.c (use_narrower_mode): Likewise.
29366 2015-03-10 Jan Hubicka <hubicka@ucw.cz>
29368 PR tree-optimization/65355
29369 * varasm.c (notice_global_symbol): Do not produce RTL.
29370 * symtab.c (symtab_node::can_increase_alignment_p): Check for section
29372 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
29373 check for section anchors.
29375 2015-03-10 Alan Modra <amodra@gmail.com>
29378 * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
29379 to be single-arch by default. Set cpu_is_64bit for powerpc64
29380 given --with-cpu=native.
29381 * config/rs6000/t-fprules: Do not set default MULTILIB vars.
29382 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
29384 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
29385 rs6000_isa_flags rather than TARGET_64BIT.
29387 2015-03-09 Yoshinori Sato <ysato@users.sourceforge.jp>
29388 Kaz Kojima <kkojima@gcc.gnu.org>
29390 * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
29392 2015-03-09 Jakub Jelinek <jakub@redhat.com>
29395 * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
29396 on a TREE_BINFO, instead use BINFO_TYPE.
29398 2015-03-09 Richard Biener <rguenther@suse.de>
29400 PR middle-end/65270
29401 * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
29402 * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
29403 operand set OEP_ADDRESS_OF. Clear it when recursing to non-bases
29404 of that. When comparing dereferences compare alignment.
29405 When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
29407 2015-03-08 Jan Hubicka <hubicka@ucw.cz>
29409 * ipa-inline-analysis.c (check_callers): Check
29410 node->can_remove_if_no_direct_calls_and_refs_p.
29411 (growth_likely_positive): Reorganize to call
29412 can_remove_if_no_direct_calls_p later.
29413 * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
29414 will_be_removed_from_program_if_no_direct_calls_p): Add
29415 will_inline parameter.
29416 * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
29417 cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
29418 Handle inliner case correctly.
29420 2015-03-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
29422 PR tree-optimization/63743
29423 * cfgexpand.c (reorder_operands): Also reorder if only second operand
29424 had its definition forwarded by TER.
29426 2015-03-08 Jan Hubicka <hubicka@ucw.cz>
29429 * ipa-utils.h (types_odr_comparable): Add strict argument.
29430 * ipa-devirt.c: Fix whitespace;
29431 (odr_hasher): Remove.
29432 (odr_name_hasher, odr_vtable_hasher): New hashers.
29433 (can_be_name_hashed_p): New predicate.
29434 (hash_type_name): remove.
29435 (hash_odr_name): New.
29436 (odr_name_hasher::hash): new.
29437 (can_be_vtable_hashed_p): New.
29438 (hash_odr_vtable): New.
29439 (odr_vtable_hasher::hash): New.
29440 (types_same_for_odr): Add strict parameter.
29441 (types_odr_comparable): Likewise.
29442 (odr_name_hasher::equal): New.
29443 (odr_vtable_hasher::equal): New.
29444 (odr_name_hasher::remove): New.
29445 (odr_hash_type): Change to hash_table<odr_name_hasher>.
29446 (odr_vtable_hash_type): New.
29447 (odr_vtable_hash): New.
29448 (odr_subtypes_equivalent_p): Do strict comparsion.
29449 (add_type_duplicate): Merge type names; cleanup; avoid type
29451 (register_odr_type): Initialize vtable hash.
29452 (build_type_inheritance_graph): Likewise
29453 (get_odr_type): Reorg to use two hashes.
29454 (dump_possible_polymorphic_call_targets): Move sanity check after debug
29456 (ipa_devirt): Dump type_inheritance_graph.
29457 (types_same_for_odr): Add strict mode.
29459 2015-03-05 Jan Hubicka <hubicka@ucw.cz>
29462 * cgraph.h (symtab_node): Add definition_alignment,
29463 can_increase_alignment_p and increase_alignment.
29464 * symtab.c (symtab_node::can_increase_alignment_p,
29465 increase_alignment_1, symtab_node::increase_alignment,
29466 symtab_node::definition_alignment): New.
29467 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
29468 can_increase_alignment_p.
29469 * tree-vectorizer.c (increase_alignment): Use increase_alignment.
29470 * tree-vect-stmts.c (ensure_base_align): Likewise.
29471 * varasm.c (function_section_1): Use definition_alignment.
29472 (assemble_start_function): Likewise.
29473 (emit_local): likewise.
29474 (build_constant_desc): Likewsie.
29475 (output_constant_def_contents): Likewise.
29476 (place_block_symbol): Likewise.
29477 (output_object_block): Likewise.
29479 2015-03-05 Jan Hubicka <hubicka@ucw.cz>
29482 * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
29483 when outputting debug.
29485 2015-03-07 Marek Polacek <polacek@redhat.com>
29486 Martin Uecker <uecker@eecs.berkeley.edu>
29489 * doc/invoke.texi: Update description of -fsanitize=bounds.
29491 2015-03-06 Wilco Dijkstra <wilco.dijkstra@arm.com>
29493 * tree-ssa-phiopt.c (neg_replacement): Remove.
29494 (tree_ssa_phiopt_worker): Remove negate optimization.
29496 2015-03-05 Jan Hubicka <hubicka@ucw.cz>
29499 * value-prof.c (gimple_ic): Pure dead eh edges when needed.
29501 2015-03-06 Richard Biener <rguenther@suse.de>
29503 PR middle-end/64928
29504 * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
29505 and liveout_obstack members.
29506 (calculate_live_on_exit): Remove.
29507 (calculate_live_ranges): Change declaration.
29508 * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
29509 (new_tree_live_info): Adjust.
29510 (calculate_live_ranges): Delete livein when not wanted.
29511 (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
29512 Deal with partly deleted live info.
29513 (loe_visit_block): Remove temporary bitmap by using
29514 bitmap_ior_and_compl_into.
29515 (live_worklist): Adjust accordingly.
29516 (calculate_live_on_exit): Make static.
29517 * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
29518 we do not need livein.
29520 2015-03-06 Jonathan Wakely <jwakely@redhat.com>
29522 * real.c (real_from_string): Fix typo in assertion.
29524 2015-03-06 Alex Velenko <alex.velenko@arm.com>
29526 * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
29529 2015-03-05 Jan Hubicka <hubicka@ucw.cz>
29531 * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
29533 2015-03-05 Vladimir Makarov <vmakarov@redhat.com>
29536 * lra-assigns.c (find_hard_regno_for): Rename to
29537 find_hard_regno_for_1. Add a new parameter.
29538 (find_hard_regno_for): New function using find_hard_regno_for_1.
29540 2015-03-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
29542 PR rtl-optimization/65067
29543 * expmed.c (store_bit_field, extract_bit_field): Reworked the
29544 strict volatile bitfield handling.
29546 2015-03-05 Martin Liska <mliska@suse.cz>
29549 * ipa-icf.c (sem_variable::equals): Compare variables types.
29551 2015-03-05 Richard Henderson <rth@redhat.com>
29554 * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
29555 correctly check weak symbol binding.
29557 2015-03-05 Steve Ellcey <sellcey@imgtec.com>
29559 PR middle-end/65315
29560 * cfgexpand.c (expand_stack_vars): Update large_align to maximum
29563 2015-03-05 Martin Liska <mliska@suse.cz>
29565 * ipa-inline.c (inline_small_functions): Set default value to
29566 prevent warning during bootstrap.
29567 * tree.h: Add pragma guard that ignores false positives during
29570 2015-03-05 Richard Biener <rguenther@suse.de>
29572 PR tree-optimization/65310
29573 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
29574 Properly preserve alignment of the base of the access.
29576 2015-03-05 Richard Biener <rguenther@suse.de>
29579 * ipa-icf-gimple.c (func_checker::compare_memory_operand):
29580 Compare dependence info.
29582 2015-03-05 Richard Biener <rguenther@suse.de>
29584 PR middle-end/65233
29585 * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
29587 (walk_ssa_copies): Revert last chage. Instead do not walk
29588 SSA names registered for SSA update.
29590 2015-03-03 Jan Hubicka <hubicka@ucw.cz>
29593 * ipa-icf.c (sem_item::compare_cgraph_references): Compare
29594 vtable references for their containing type.
29595 (sem_function::equals_wpa): Compare TYPE_RESTRICT
29596 and type attributes.
29598 2015-03-04 Eric Botcazou <ebotcazou@adacore.com>
29600 * fold-const.c (round_up_loc): Cast divisor to signed on all paths
29601 before negating it.
29602 * stor-layout.c (finalize_record_size): Revert latest change.
29604 2015-03-04 Andreas Tobler <andreast@gcc.gnu.org>
29606 * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
29608 2015-03-03 Jan Hubicka <hubicka@ucw.cz>
29610 * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
29611 for correct comdat handling.
29612 (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
29614 * cgraph.h (call_for_symbol_and_aliases): Fix formating.
29615 (used_from_object_file_p_worker): Remove.
29616 (cgraph_node::only_called_directly_or_alised): Add
29617 used_from_object_file_p.
29618 * ipa-inline-analysis.c (growth_likely_positive): Optimie.
29619 * ipa-inline-transform.c (can_remove_node_now_p_1): Use
29620 can_remove_if_no_direct_calls_and_refs_p.
29622 2015-03-04 Nick Clifton <nickc@redhat.com>
29624 * config/rl78/rl78.h (enum reg_class): Remove real registers from
29625 General register class.
29626 * config/rl78/rl78-real.md: Replace general register constraints
29627 with real+virtual register constraints.
29629 2015-03-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29631 * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
29632 from checking for -mhtm option.
29634 2015-03-03 Jan Hubicka <hubicka@ucw.cz>
29636 * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
29637 (struct ipa_sra_check_caller_data): Add has_thunk field.
29638 (ipa_sra_check_caller): Check for thunk.
29639 (ipa_sra_preliminary_function_checks): Give up on function with
29641 (ipa_early_sra): Use call_for_symbol_and_aliases.
29643 2015-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
29646 * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
29647 called for __stack_chk_guard symbol.
29649 2015-03-03 DJ Delorie <dj@redhat.com>
29651 * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
29653 (*addhi3_real): Likewise.
29654 * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
29655 pattern to match incrementing memory.
29656 * config/rl78/predicates.md (rl78_1_2_operand): New.
29657 * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
29658 it's the same and only mem.
29659 (rl78_alloc_physical_registers_op2): If there's effectively only
29660 one MEM, transcode it into HL.
29661 (rl78_far_p): Reject addresses that aren't legitimate.
29663 2015-03-03 Eric Botcazou <ebotcazou@adacore.com>
29665 * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
29668 * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
29670 2015-03-03 Max Filippov <jcmvbkbc@gmail.com>
29672 Implement call0 ABI for xtensa
29673 * config/xtensa/constraints.md ("a" constraint): Include stack
29674 pointer in case of call0 ABI.
29675 ("q" constraint): Make empty in case of call0 ABI.
29676 ("D" constraint): Include stack pointer in case of call0 ABI.
29677 * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
29678 xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
29680 * config/xtensa/xtensa.c (xtensa_callee_save_size): New
29682 (xtensa_regno_to_class): Make it a local variable in the
29683 function xtensa_regno_to_class.
29684 (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
29685 macro, function prototype and implementation.
29686 (reg_nonleaf_alloc_order): Make it a local variable in the
29687 function order_regs_for_local_alloc.
29688 (xtensa_conditional_register_usage): New function.
29689 (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
29690 (xtensa_valid_move): Allow direct moves to stack pointer
29691 register in call0 ABI.
29692 (xtensa_setup_frame_addresses): Only spill register windows in
29694 (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
29695 call0 ABI respectively.
29696 (xtensa_function_arg_1): Only mark a7 register for copying in
29698 (xtensa_call_save_reg): New function.
29699 (compute_frame_size): Add space for callee saved register
29700 storage to the frame size in call0 ABI.
29701 (xtensa_expand_prologue): Generate code to set up stack frame
29702 and save callee-saved registers in call0 ABI.
29703 (xtensa_expand_epilogue): New function.
29704 (xtensa_set_return_address): New function.
29705 (xtensa_return_addr): Calculate return address in call0 ABI.
29706 (xtensa_builtin_saveregs): Only mark a7 register for copying and
29707 emit copying code in windowed ABI.
29708 (order_regs_for_local_alloc): Add preferred register allocation
29709 order for non-leaf function in call0 ABI.
29710 (xtensa_static_chain): Add atatic chain passing for call0 ABI.
29711 (xtensa_asm_trampoline_template): Add trampoline generation for
29713 (xtensa_trampoline_init): Add trampoline initialization for
29715 (xtensa_conditional_register_usage, xtensa_regno_to_class): New
29717 * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
29718 (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
29719 (CALL_USED_REGISTERS): Modify to encode both windowed and call0
29720 ABI call-used registers.
29721 (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
29722 (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
29724 (REG_CLASS_CONTENTS): Include all registers into the preferred
29725 reload registers set, adjust the set in the
29726 xtensa_conditional_register_usage.
29727 (xtensa_regno_to_class): Drop variable declaration.
29728 (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
29730 (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
29732 (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
29733 (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
29734 (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
29735 (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
29736 location in call0 ABI.
29737 (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
29738 stack adjustment size when handling exception.
29739 (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
29740 * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
29742 ("return" pattern): Generate ret.n/ret in call0 ABI.
29743 ("epilogue" pattern): Expand epilogue.
29744 ("nonlocal_goto" pattern): Use default in call0 ABI.
29745 ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
29746 emit eh_set_a0_* depending on ABI.
29747 ("eh_set_a0_windowed" pattern): Former eh_return pattern.
29748 ("eh_set_a0_call0", "blockage"): New patterns.
29750 2015-03-03 Martin Liska <mliska@suse.cz>
29753 * ipa-icf.c (sem_variable::parse): Skip all alias variables.
29755 2015-03-03 Michael Meissner <meissner@linux.vnet.ibm.com>
29758 * config/rs6000/rs6000-tables.opt: Regenerate table.
29760 2015-03-03 Renlin Li <renlin.li@arm.com>
29762 * doc/md.texi (@item ^): Change ? into ^.
29764 2015-03-03 H.J. Lu <hongjiu.lu@intel.com>
29766 * doc/tm.texi: Regenerated.
29768 2015-03-03 Max Filippov <jcmvbkbc@gmail.com>
29770 * builtins.c (expand_builtin_return_addr): Add
29771 RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
29772 surrounding #ifdef.
29773 * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
29775 * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
29777 * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
29779 * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
29782 2015-03-03 Martin Jambor <mjambor@suse.cz>
29783 Eric Botcazou <ebotcazou@adacore.com>
29785 * tree-sra.c (ipa_sra_check_caller_data): New type.
29786 (has_caller_p): Removed.
29787 (ipa_sra_check_caller): New function.
29788 (ipa_sra_preliminary_function_checks): Use it.
29790 2015-03-03 Martin Liska <mliska@suse.cz>
29792 * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
29793 instead of if branch.
29795 2015-03-03 Martin Liska <mliska@suse.cz>
29798 * ipa-icf.c (sem_variable::equals): Fix wrong condition.
29800 2015-03-23 Jeff Law <law@redhat.com>
29802 PR tree-optimization/65241
29803 * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
29804 hash table if INSERT is true.
29806 2015-03-03 Georg-Johann Lay <avr@gjlay.de>
29809 * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
29811 2015-03-03 Georg-Johann Lay <avr@gjlay.de>
29814 * config/avr/avr.c (context.h, tree-pass.h): Include them.
29815 (avr_pass_data_recompute_notes): New static variable.
29816 (avr_pass_recompute_notes): New class.
29817 (avr_register_passes): New static function.
29818 (avr_option_override): Call it.
29820 2015-03-03 Georg-Johann Lay <avr@gjlay.de>
29822 Fix various problems with specs file generation.
29825 * config.gcc (extra_gcc_objs) [avr]: Remove.
29826 * config/avr/driver-avr.c: Remove file.
29827 * config/avr/t-avr (driver-avr.o): Remove rule.
29828 (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
29829 INCLUDES to build. Depend on TM_H.
29830 * config/avr/gen-avr-mmcu-specs.c: Tidy up code. Fix various
29831 build warnings. Fix non-matching types and non-existing %-codes.
29833 (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
29834 (*libgcc) [WITH_AVRLIBC]: Add "-lm".
29835 * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
29836 * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
29837 (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
29838 (LIBGCC_SPEC): Remove definitions.
29840 2015-03-03 Eric Botcazou <ebotcazou@adacore.com>
29842 * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
29843 to create a register in testing mode.
29845 2015-03-03 Martin Liska <mliska@suse.cz>
29846 Jan Hubicka <hubicka@ucw.cz>
29849 * cgraph.c (cgraph_node::has_thunk_p): New function.
29850 * cgraph.h (cgraph_node::has_thunk_p: Likewise.
29851 * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
29852 (sem_function::merge): Assert is changed.
29854 2015-03-03 Martin Liska <mliska@suse.cz>
29855 Martin Jambor <mjambor@suse.cz>
29858 * ipa-icf.c (sem_item_optimizer::execute): Change function
29859 return value to boolean.
29860 (sem_item_optimizer::merge_classes): Likewise.
29861 (ipa_icf_driver): Return TODO_remove_functions in case there's
29862 a merge operation processed.
29863 * ipa-icf.h: Change function return value to boolean.
29865 2015-03-02 Michael Meissner <meissner@linux.vnet.ibm.com>
29868 * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
29869 processor type for 64-bit little endian PowerPC.
29871 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
29872 -mdebug=reg, print TARGET_DEFAULT. Fix logic to use
29873 TARGET_DEFAULT if there is no default cpu. Fix -mdebug=reg
29874 printing built-in mask so it does not pass NULL pointers.
29876 * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
29879 2015-03-02 Steve Ellcey <sellcey@imgtec.com>
29882 * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
29883 !ISA_HAS_FP_CONDMOVE.
29885 2015-03-02 Aldy Hernandez <aldyh@redhat.com>
29887 * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
29890 2015-03-02 Ulrich Drepper <drepper@gmail.com>
29892 * doc/invoke.texi (Options for Code Generation Conventions):
29893 Fix URL of DSO paper.
29895 2015-03-02 Jan Hubicka <hubicka@ucw.cz>
29898 * ipa-inline.c (check_callers): Looks for recursion.
29899 (inline_to_all_callers): Give up on uninlinable or recursive edges.
29900 * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
29901 summary of inline clones.
29902 (do_estimate_growth_1): Fix recursion check.
29904 2015-03-02 Jan Hubicka <hubicka@ucw.cz>
29907 * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
29910 2015-03-02 Jan Hubicka <hubicka@ucw.cz>
29911 Aldy Hernandez <aldyh@redhat.com>
29914 * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
29915 when checking TYPE_BINFO.
29917 2015-03-02 Richard Biener <rguenther@suse.de>
29920 * ipa-icf-gimple.c: Include builtins.h.
29921 (func_checker::compare_memory_operand): Compare base alignment.
29923 2015-03-02 Ilya Enkovich <ilya.enkovich@intel.com>
29926 * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
29927 are never passed by reference.
29929 2015-03-02 Ilya Enkovich <ilya.enkovich@intel.com>
29932 * tree-chkp.c (chkp_check_lower): Don't check against
29933 zero bounds for already instrumented functions.
29934 (chkp_check_upper): Likewise.
29935 (chkp_fini): Clean pass local data to avoid wrong reusage.
29937 2015-02-28 Martin Liska <mliska@suse.cz>
29938 Jan Hubicka <hubicka@ucw.cz>
29940 * ipa-icf.c (sem_variable::equals): Improve debug output;
29941 get variable constructor.
29942 (sem_variable::parse): Do not filter out too early; give up on
29943 volatile and register vars.
29944 (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
29946 * ipa-icf.h (sem_variable::init): Do not set ctor.
29947 (sem_variable::ctor): Remove.
29949 2015-03-01 Aldy Hernandez <aldyh@redhat.com>
29951 PR middle-end/65233
29952 * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
29954 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
29956 * ipa-icf.c: Include stor-layout.h
29957 (sem_function::compare_cgraph_references): Rename to ...
29958 (sem_item::compare_cgraph_references): ... this one.
29959 (sem_variable::equals_wpa): New function
29960 (sem_variable::equals): Do not check stuff already verified by
29962 (sem_variable::equals): Reorg based on varasm.c:compare_constant.
29963 * ipa-icf.h (sem_item): Add compare_cgraph_references.
29964 (sem_function): Remove compare_cgraph_references.
29965 (sem_variable): Turns equals_wpa into non-inline.
29967 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
29969 * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
29970 (sem_item::add_expr): New function.
29971 (sem_function::hash_stmt): Handle operands of most statements.
29972 (sem_variable::get_hash): Hash the actual constructor.
29973 * ipa-icf.h (sem_item): Add add_expr.
29974 (sem_function): Update prototype of hash_stmt
29976 2015-02-28 Martin Liska <mliska@suse.cz>
29977 Jan Hubicka <hubicka@ucw.cz>
29980 * ipa-icf-gimple.c (func_checker::compare_function_decl):
29982 (func_checker::compare_variable_decl): Skip symtab vars.
29983 (func_checker::compare_cst_or_decl): Update.
29984 * ipa-icf.c (sem_function::parse): Do not consider aliases.
29985 (sem_function::compare_cgraph_references): Add ADDRESS parameter;
29986 use correct symtab predicates.
29987 (sem_function::equals_wpa): Update uses of compare_cgraph_references.
29988 (sem_variable::parse): Update comment.
29989 (sem_item_optimizer::build_graph): Consider ultimate aliases
29992 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
29994 * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
29997 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
29999 * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
30000 (sem_variable::merge) Likewise.
30002 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
30004 * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
30005 target; also match flag_ipa_devirt.
30007 2015-03-01 Martin Liska <mliska@suse.cz>
30008 Jan Hubicka <hubicka@ucw.cz>
30010 * ipa-icf-gimple.c (func_checker::compare_variable_decl):
30011 Validate variable alignment.
30012 * ipa-icf.c (sem_function::equals_private): Be more precise
30013 about non-common function attributes.
30014 (sem_variable::equals): Likewise.
30016 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
30019 * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
30020 across COMDAT group boundary.
30022 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
30025 * ipa-icf.c (clear_decl_rtl): New function.
30026 (sem_function::merge): Clear RTL before forming alias.
30027 (sem_variable::merge): Clear RTL before forming alias.
30029 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
30032 * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
30034 2015-02-28 Xingxing Pan <xxingpan@marvell.com>
30036 * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
30039 2015-02-27 Vladimir Makarov <vmakarov@redhat.com>
30041 * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
30042 a typo in the description.
30044 2015-02-27 Vladimir Makarov <vmakarov@redhat.com>
30047 * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
30048 * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
30049 * lra-constraints.c: Include "params.h".
30050 (EBB_PROBABILITY_CUTOFF): Use
30051 LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
30052 (lra_inheritance): Use '<' instead of '<=' for
30053 EBB_PROBABILITY_CUTOFF.
30054 * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
30057 2015-02-27 Martin Liska <mliska@suse.cz>
30059 * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
30060 vector length condition.
30062 2015-02-27 Sandra Loosemore <sandra@codesourcery.com>
30064 * doc/extend.texi (x86 transactional memory intrinsics):
30065 Reorganize discussion of _xbegin. Clarify that the return
30066 value is a bit mask. Expand example and move to end of section.
30068 2015-02-26 Jakub Jelinek <jakub@redhat.com>
30069 Aldy Hernandez <aldyh@redhat.com>
30071 PR rtl-optimization/65220
30072 * config/i386/i386.md (*udivmod<mode>4_pow2): New.
30074 2015-02-27 Vladimir Makarov <vmakarov@redhat.com>
30077 * lra-remat.c (update_scratch_ops): New.
30078 (do_remat): Call it.
30079 * lra.c (lra_register_new_scratch_op): New. Take code from ...
30080 (remove_scratches): ... here.
30081 * lra-int.h (lra_register_new_scratch_op): New prototype.
30083 2015-02-27 Marek Polacek <polacek@redhat.com>
30086 * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
30087 -Wformat-signedness anymore.
30089 2015-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30091 * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
30093 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
30095 2015-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30097 * config/s390/s390.c (enum s390_builtin):
30098 Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
30099 (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
30100 (s390_init_builtins): Generate new builtin functions.
30101 * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
30102 (s390_sfpc, s390_efpc): New pattern definitions.
30104 2015-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30106 * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
30107 Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
30108 (s390_builtin_decls): New array.
30109 (s390_init_builtins): Put builtin decls into s390_builtin_decls.
30110 (s390_builtin_decl): New function.
30111 (TARGET_BUILTIN_DECL): Define macro.
30113 2015-02-27 Richard Biener <rguenther@suse.de>
30115 PR middle-end/63175
30116 * builtins.c (get_object_alignment_2): Make sure to re-apply
30117 the ANDed mask after recursing to its operand gets us a new
30118 misalignment bit position.
30120 2015-02-26 Jan Hubicka <hubicka@ucw.cz>
30121 Martin Liska <mliska@suse.cz>
30124 * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
30125 Use address_matters_p.
30126 (redirect_all_callers, set_addressable): New functions.
30127 (sem_function::merge): Reorganize and fix merging issues.
30128 (sem_variable::merge): Likewise.
30129 (sem_variable::compare_sections): Remove.
30130 * common.opt (fmerge-all-constants, fmerge-constants): Remove
30132 * symtab.c (symtab_node::resolve_alias): When alias has aliases,
30134 (symtab_node::make_decl_local): Set ADDRESSABLE bit when
30136 (address_matters_1): New function.
30137 (symtab_node::address_matters_p): New function.
30138 * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
30139 check for merged flag.
30140 * cgraph.h (address_matters_p): Declare.
30141 (symtab_node::address_taken_from_non_vtable_p): Remove.
30142 (symtab_node::address_can_be_compared_p): New method.
30143 (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
30144 * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
30146 (comdat_can_be_unshared_p_1) Use address_matters_p.
30147 (update_vtable_references): Fix formating.
30148 * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
30149 * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
30150 * cgraphclones.c: Preserve merged and icf_merged flags.
30152 2015-02-26 Sandra Loosemore <sandra@codesourcery.com>
30154 * doc/extend.texi (Function Attributes): Fix spelling and typos.
30155 (Label Attributes): Likewise.
30156 (Cilk Plus Builtins): Likewise.
30157 (ARC SIMD Built-in Functions): Likewise.
30158 (ARM C Language Extensions (ACLE)): Likewise.
30159 (PowerPC Built-in Functions): Likewise.
30160 (PowerPC Hardware Transactional Memory Built-in Functions):
30163 2015-02-26 Jakub Jelinek <jakub@redhat.com>
30165 PR tree-optimization/65216
30166 * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
30167 new stmt and new SSA_NAME for lhs whenever the arguments have
30168 changed and weren't just swapped. Fix comment typo.
30170 PR tree-optimization/65215
30171 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
30172 for PDP endian targets.
30173 (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
30174 Fix up formatting issues.
30175 (bswap_replace): Likewise. For BYTES_BIG_ENDIAN, if the final access
30176 size is smaller than the original, adjust MEM_REF offset by the
30177 difference of sizes. Use is_gimple_mem_ref_addr instead of
30178 is_gimple_min_invariant test to avoid adding address temporaries.
30180 2015-02-26 Martin Liska <mliska@suse.cz>
30181 Jan Hubicka <hubicka@ucw.cz>
30184 * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
30185 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
30186 (sem_item_optimizer::process_cong_reduction): Include division by
30187 sensitive references.
30188 * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
30189 * ipa-ref.c (ipa_ref::address_matters_p): New function.
30190 * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
30192 2015-02-26 Georg-Johann Lay <avr@gjlay.de>
30195 * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
30197 * config/avr/avr.c: Same.
30198 (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
30199 Refuse any constant address not in 0..0xbf.
30200 * config/avr/avr.md (*mov<mode>, *movsf): Remove
30201 tiny_valid_direct_memory_access_range from insn conditions.
30202 (mov<mode>): Don't special-case expansion of avrtiny addresses.
30204 2015-02-26 Oleg Endo <olegendo@gcc.gnu.org>
30207 * config/sh/sh.c (sh_check_add_incdec_notes): New function.
30208 * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
30209 * config/sh/predicates.md (const_logical_operand): New predicate.
30210 * config/sh/sh.md: Add new peephole2 patterns.
30212 2015-02-26 Marek Polacek <polacek@redhat.com>
30215 * ipa-inline.c (early_inliner): Recompute inline parameters.
30217 2015-02-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30220 * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
30221 instructions with TImode operands are included in the analysis.
30223 2015-02-26 Sebastian Pop <s.pop@samsung.com>
30225 * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
30226 of an EDGE_FSM_THREAD.
30228 2015-02-25 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
30230 * config/rs6000/htm.md (tcheck): Fix assembly encoding.
30232 2015-02-25 Aldy Hernandez <aldyh@redhat.com>
30235 * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
30237 2015-02-26 Sebastian Pop <s.pop@samsung.com>
30239 PR tree-optimization/65048
30240 * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
30241 (thread_through_all_blocks): Call valid_jump_thread_path.
30242 Remove invalid FSM jump-thread paths.
30244 2015-02-26 Jakub Jelinek <jakub@redhat.com>
30246 * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
30247 (ipa_write_optimization_summaries): Likewise.
30248 * tree-streamer.h: Include data-streamer.h.
30249 (streamer_mode_table): Declare extern variable.
30250 (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
30251 * lto-streamer-out.c (lto_output_init_mode_table,
30252 lto_write_mode_table): New functions.
30253 (produce_asm_for_decls): Call lto_write_mode_table when streaming
30255 * lto-section-in.c (lto_section_name): Add "mode_table" entry.
30256 (lto_create_simple_input_block): Add mode_table argument to the
30257 lto_input_block constructors.
30258 * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
30260 * data-streamer-in.c (string_for_index): Likewise.
30261 * ipa-inline-analysis.c (inline_read_section): Likewise.
30262 * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
30263 * lto-cgraph.c (input_cgraph_opt_section): Likewise.
30264 * lto-streamer-in.c (lto_read_body_or_constructor,
30265 lto_input_toplevel_asms): Likewise.
30266 (lto_input_mode_table): New function.
30267 * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
30268 pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
30269 Use bp_pack_machine_mode.
30270 * real.h (struct real_format): Add name field.
30271 * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
30272 (class lto_input_block): Add mode_table member.
30273 (lto_input_block::lto_input_block): Add mode_table_ argument,
30274 initialize mode_table.
30275 (struct lto_file_decl_data): Add mode_table field.
30276 (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
30277 * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
30278 unpack_ts_decl_common_value_fields,
30279 unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
30280 * tree-streamer.c (streamer_mode_table): New variable.
30281 * real.c (ieee_single_format, mips_single_format,
30282 motorola_single_format, spu_single_format, ieee_double_format,
30283 mips_double_format, motorola_double_format,
30284 ieee_extended_motorola_format, ieee_extended_intel_96_format,
30285 ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
30286 ibm_extended_format, mips_extended_format, ieee_quad_format,
30287 mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
30288 decimal_single_format, decimal_double_format, decimal_quad_format,
30289 ieee_half_format, arm_half_format, real_internal_format): Add name
30291 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
30293 2015-02-26 Yuri Rumyantsev <ysrumyan@gmail.com>
30296 * config/i386/i386.c (ix86_sched_reorder): Skip instruction
30297 reordering for selective scheduling.
30299 2015-02-26 Terry Guo <terry.guo@arm.com>
30301 * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
30302 * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
30303 (arm_arch_no_volatile_ce): Declare new global variable.
30304 * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
30305 (arm_option_override): Assign value to arm_arch_no_volatile_ce.
30306 * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
30307 (TARGET_NO_VOLATILE_CE): New macro.
30308 * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
30309 volatile memory access in IT block
30311 2015-02-25 Kai Tietz <ktietz@redhat.com>
30313 PR tree-optimization/61917
30314 * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
30315 that reduc_def_stmt is null.
30317 2015-02-25 Martin Liska <mliska@suse.cz>
30319 * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
30320 hard register variables.
30322 2015-02-25 Kai Tietz <ktietz@redhat.com>
30325 * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
30326 (symtab::noninterposable_alias): Likewise.
30328 2015-02-25 Ilya Enkovich <ilya.enkovich@intel.com>
30331 * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
30333 (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
30335 2015-02-25 Alan Lawrence <alan.lawrence@arm.com>
30338 * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
30339 as split condition; force split via '#' in output pattern.
30341 2015-02-25 Richard Biener <rguenther@suse.de>
30342 Kai Tietz <ktietz@redhat.com>
30344 PR tree-optimization/61917
30345 * tree-vect-loop.c (vectorizable_reduction): Allow
30346 vect_internal_def without reduction to exit graceful.
30348 2015-02-25 Georg-Johann Lay <avr@gjlay.de>
30351 * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
30352 only with NONDEBUG_INSN_P.
30354 2015-02-25 Georg-Johann Lay <avr@gjlay.de>
30356 Use variadic macros with avr-log.c.
30358 * config/avr/avr-protos.h (avr_vdump): New prototype.
30359 (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
30360 (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
30361 * config/avr/avr-log.c: Adjust comments.
30362 (avr_vdump): New function.
30363 (avr_vadump): Pass caller as 2nd argument instead of format string.
30364 (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
30365 (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
30367 2015-02-25 Jakub Jelinek <jakub@redhat.com>
30370 * target.def (target_option_stream_in): New target hook.
30371 * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
30372 targetm.target_option.post_stream_in if non-NULL.
30373 * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
30374 * doc/tm.texi: Updated.
30375 * config/i386/i386.c (ix86_function_specific_post_stream_in): New
30377 (TARGET_OPTION_POST_STREAM_IN): Redefine.
30379 2015-02-24 Jeff Law <law@redhat.com>
30382 * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
30383 of operand 0 and operand 2.
30384 (zero_cost_loop_end, loop_end): Similarly.
30386 2015-02-24 Aldy Hernandez <aldyh@redhat.com>
30388 * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
30391 2015-02-24 DJ Delorie <dj@redhat.com>
30393 * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
30394 * config/rl78/rl78-expand.md (movsf): New, same as movsi.
30395 * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
30396 instead of hardcoding SImode.
30398 2015-02-24 Bernd Schmidt <bernds@codesourcery.com>
30400 * omp-low.c (create_omp_child_function): Tag entrypoint
30401 functions with a special attribute.
30403 2015-02-24 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
30406 * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
30408 2015-02-24 Vladimir Makarov <vmakarov@redhat.com>
30410 PR rtl-optimization/65123
30411 * lra-remat.c (operand_to_remat): Check hard regs in insn
30414 2015-02-24 Nick Clifton <nickc@redhat.com>
30416 * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
30419 2015-02-24 Thomas Schwinge <thomas@codesourcery.com>
30422 * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
30423 BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
30424 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
30425 (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
30426 BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
30427 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
30428 (BUILT_IN_GOACC_PARALLEL): Specify as
30429 BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
30430 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
30431 * builtin-types.def
30432 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
30433 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
30434 Remove function types.
30435 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
30436 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
30437 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
30438 New function types.
30440 2015-02-24 Georg-Johann Lay <avr@gjlay.de>
30442 * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
30444 2015-02-24 Jakub Jelinek <jakub@redhat.com>
30446 PR tree-optimization/65170
30447 * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
30448 if val[1] < 0, clear also val[2] and return 3.
30450 2015-02-24 Alan Modra <amodra@gmail.com>
30453 * config/rs6000/rs6000.c (get_memref_parts): Only return true
30454 when *base is a reg. Handle nested plus addresses. Simplify
30457 2015-02-22 Max Filippov <jcmvbkbc@gmail.com>
30459 * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
30460 use natural alignment when optimizing for size.
30462 2015-02-23 Kaz Kojima <kkojima@gcc.gnu.org>
30465 * config/sh/sh.md (movsicc_true+3): Remove peephole.
30466 * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
30467 * config/sh/sh.c (replace_n_hard_rtx): Remove.
30469 2015-02-23 Richard Sandiford <richard.sandiford@arm.com>
30472 * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
30473 too big for a wide_int. Implement missing wrapping operation.
30475 2015-02-23 Oleg Endo <olegendo@gcc.gnu.org>
30478 * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
30479 instead of const_int 4294901760.
30481 2015-02-23 Georg-Johann Lay <avr@gjlay.de>
30483 * config/avr/t-avr: Fix typo in comment.
30485 2015-02-21 Richard Sandiford <richard.sandiford@arm.com>
30487 * doc/rtl.texi (fma): Clarify documentation.
30489 2015-02-20 Aldy Hernandez <aldyh@redhat.com>
30492 * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
30493 over input_location.
30495 2015-02-20 Bernd Schmidt <bernds@codesourcery.com>
30497 * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
30498 unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
30499 restrict alignments to absolute_biggest_alignment.
30500 * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
30502 * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
30503 * doc/tm.texi: Regenerate.
30504 * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
30506 2015-02-20 Vladimir Makarov <vmakarov@redhat.com>
30509 * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
30511 2015-02-20 Richard Biener <rguenther@suse.de>
30513 PR tree-optimization/65136
30514 * tree-ssa-propagate.c: Include cfgloop.h.
30515 (replace_phi_args_in): Avoid replacing loop latch edge PHI
30516 arguments with constants.
30518 2015-02-20 Jakub Jelinek <jakub@redhat.com>
30519 Martin Liska <mliska@suse.cz>
30522 * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
30523 don't try to create_thunk if stdarg_p. If
30524 !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
30525 redirect_callers if possible.
30526 (sem_item_optimizer::execute): Call unregister_hooks here...
30527 (ipa_icf_driver): ... instead of here.
30529 2015-02-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30531 * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
30532 Mark operand 0 as earlyclobber in 2nd alternative.
30533 (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
30534 Write negated shift amount into QI lowpart operand 0 and use it
30536 (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
30538 2015-02-20 Bernd Schmidt <bernds@codesourcery.com>
30540 * cgraph.h (clone_function_name_1): Declare.
30541 * cgraphclones.c (clone_function_name_1): New function.
30542 (clone_function_name): Use it.
30543 * lto-partition.c: Include "stringpool.h".
30544 (must_not_rename, maybe_rewrite_identifier)
30545 (validize_symbol_for_target): New static functions.
30546 (privatize_symbol_name): Use must_not_rename.
30547 (promote_symbol): Call validize_symbol_for_target.
30548 (lto_promote_cross_file_statics): Likewise.
30549 (lto_promote_statics_nonwpa): Likewise.
30551 2015-02-20 Georg-Johann Lay <avr@gjlay.de>
30554 * config/avr/avr.md (pushhi_insn): New insn.
30555 (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
30557 2015-02-20 Bernd Schmidt <bernds@codesourcery.com>
30558 Jakub Jelinek <jakub@redhat.com>
30560 * tree-streamer.c (preload_common_nodes): Don't preload
30561 TI_VA_LIST* for offloading.
30562 * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
30565 2015-02-19 John David Anglin <danlgin@gcc.gnu.org>
30567 * config/pa/pa.c (pa_emit_move_sequence): Always force
30568 (const (plus (symbol) (const_int))) to const mem. Put REG_EQUAL
30571 * config/pa/pa.c (pa_reloc_rw_mask): New function.
30572 (TARGET_ASM_RELOC_RW_MASK): Define.
30573 (pa_cannot_force_const_mem): Revert previous change.
30575 2015-02-19 Martin Jambor <mjmabor@suse.cz>
30576 Jan Hubicka <hubicka@ucw.cz>
30579 * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
30580 across jump functions.
30582 2015-02-19 Uros Bizjak <ubizjak@gmail.com>
30584 * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
30586 2015-02-19 Sandra Loosemore <sandra@codesourcery.com>
30588 * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
30590 2015-02-19 Richard Henderson <rth@redhat.com>
30592 PR middle-end/65074
30593 * varasm.c (default_binds_local_p_2): Don't test node->definition;
30594 test DECL_EXTERNAL independent of symtab_node.
30596 2015-02-19 Jakub Jelinek <jakub@redhat.com>
30599 * varpool.c (varpool_node::get_constructor): Return early
30600 if this->lto_file_data is NULL.
30602 2015-02-19 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
30604 * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
30605 (rank_for_schedule_debug): Update.
30606 (ready_sort): Make static. Move sorting logic to ...
30607 (ready_sort_debug, ready_sort_real): New static functions.
30608 (schedule_block): Sort both debug insns and real insns in preparation
30609 for ready list trimming. Improve debug output.
30610 * sched-int.h (ready_sort): Remove global declaration.
30612 2015-02-18 Trevor Saunders <tsaunders@mozilla.com>
30614 * ipa-icf.c (sem_function::equals_private): Adjust.
30615 (sem_function::bb_dict_test): Take a vec<int> * instead of
30617 * ipa-icf.h (bb_dict_test): Likewise.
30619 2015-02-18 Jakub Jelinek <jakub@redhat.com>
30621 PR gcov-profile/64634
30622 * tree-eh.c (frob_into_branch_around): Fix up typos
30623 in function comment.
30624 (lower_catch): Put eh_seq resulting from EH lowering of
30625 the cleanup sequence after the cleanup rather than before it.
30627 2015-02-18 Tom de Vries <tom@codesourcery.com>
30629 * common.opt (fstdarg-opt): New option.
30630 * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
30631 * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
30632 (@item -fstdarg-opt): New item.
30634 2015-02-18 H.J. Lu <hongjiu.lu@intel.com>
30637 * config/ia64/predicates.md (sdata_symbolic_operand): Return false
30638 for common symbols.
30640 2015-02-18 Jakub Jelinek <jakub@redhat.com>
30642 * config/i386/t-intelmic (mkoffload.o): Remove dependency on
30644 (ALL_HOST_OBJS): Add mkoffload.o.
30645 * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
30647 2015-02-18 Jan Hubicka <hubicka@ucw.cz>
30649 * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
30650 (compare_virtual_tables): Be smarter about skipping typeinfos;
30651 do sane output on virtual table table mismatch.
30652 (warn_odr): Be ready for forward declarations of enums;
30653 output sane info on base mismatch and virtual table mismatch.
30654 (add_type_duplicate): Fix code choosing prevailing type; do not ICE
30655 when only one type is polymorphic.
30656 (get_odr_type): Fix hashtable corruption.
30657 (dump_odr_type): Dump mangled names.
30659 2015-02-18 Richard Biener <rguenther@suse.de>
30661 PR tree-optimization/65063
30662 * tree-predcom.c (determine_unroll_factor): Return 1 if we
30663 have replaced looparound PHIs.
30665 2015-02-18 Martin Liska <mliska@suse.cz>
30667 * lto-streamer.c (lto_streamer_init): Encapsulate
30668 streamer_check_handled_ts_structures with checking macro.
30670 2015-02-18 Jakub Jelinek <jakub@redhat.com>
30673 * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
30674 section if !implicit_section.
30675 (cgraph_node::create_version_clone_with_body): Likewise.
30676 * trans-mem.c (ipa_tm_create_version): Likewise.
30678 2015-02-18 Richard Biener <rguenther@suse.de>
30680 PR tree-optimization/62217
30681 * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
30684 2015-02-18 Marek Polacek <polacek@redhat.com>
30687 * ubsan.c (OBJSZ_MAX_OFFSET): Define.
30688 (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
30689 is in range [-16K, -1]. Don't issue run-time error if
30690 (ptr > ptr + offset).
30692 2015-02-18 Thomas Schwinge <thomas@codesourcery.com>
30694 * doc/install.texi (nvptx-*-none): New section.
30695 * doc/invoke.texi (Nvidia PTX Options): Likewise.
30696 * config/nvptx/nvptx.opt: Update.
30698 * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
30699 (access_check): New functions, copied from
30700 config/i386/intelmic-mkoffload.c.
30701 (main): For non-installed testing, look in all COMPILER_PATHs for
30704 * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
30706 2015-02-18 Andrew Pinski <apinski@cavium.com>
30707 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
30709 * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
30710 Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
30712 2015-02-17 Jan Hubicka <hubicka@ucw.cz>
30714 * ipa-visibility.c (function_and_variable_visibility): Only
30715 check locality if node is not already local.
30716 * ipa-inline.c (want_inline_function_to_all_callers_p): Use
30717 call_for_symbol_and_aliases instead of
30718 call_for_symbol_thunks_and_aliases.
30719 (ipa_inline): Likewise.
30720 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
30721 first walk aliases.
30722 * ipa.c (symbol_table::remove_unreachable_nodes): Use
30723 call_for_symbol_and_aliases.
30724 * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
30725 (ipa_propagate_frequency_1): Use it; use opt_for_fn
30726 (ipa_propagate_frequency): Update.
30727 (ipa_profile): Add opt_for_fn gueards.
30729 2015-02-17 Oleg Endo <olegendo@gcc.gnu.org>
30731 * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
30732 * doc/invoke.texi (SH options): Document it.
30733 * config/sh/sh.c (sh_insn_length_adjustment): Check
30734 TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
30736 2015-02-17 H.J. Lu <hongjiu.lu@intel.com>
30738 * common.opt (fipa-cp-alignment): New.
30739 * ipa-cp.c (ipcp_store_alignment_results): Check
30740 flag_ipa_cp_alignment.
30741 * opts.c (default_options_table): Enable -fipa-cp-alignment for
30743 (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
30744 * doc/invoke.texi: Document -fipa-cp-alignment.
30746 2015-02-17 Oleg Endo <olegendo@gcc.gnu.org>
30749 * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
30750 to nil. Adjust comments.
30752 2015-02-17 Jan Hubicka <hubicka@ucw.cz>
30754 * ipa-visibility.c (function_and_variable_visibility): Only
30755 check locality if node is not already local.
30756 * ipa-inline.c (want_inline_function_to_all_callers_p): Use
30757 call_for_symbol_and_aliases instead of
30758 call_for_symbol_thunks_and_aliases.
30759 (ipa_inline): Likewise.
30760 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
30761 first walk aliases.
30762 * ipa.c (symbol_table::remove_unreachable_nodes): Use
30763 call_for_symbol_and_aliases.
30764 * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
30765 (ipa_propagate_frequency_1): Use it; use opt_for_fn
30766 (ipa_propagate_frequency): Update.
30767 (ipa_profile): Add opt_for_fn guards.
30769 2015-02-17 Thomas Schwinge <thomas@codesourcery.com>
30771 * config/nvptx/mkoffload.c (parse_file): Fix logic error in
30772 skipping of "strange" tokens.
30774 2015-02-17 Jeff Law <law@redhat.com>
30776 * tree-vrp.c (identify_jump_threads): Use last_stmt. Remove
30779 2015-02-17 James Greenhalgh <james.greenhalgh@arm.com>
30781 * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
30782 as forcing a HARD_DEP between instructions, thereby
30783 disallowing rewriting to break dependencies.
30785 2015-02-16 Jan Hubicka <hubicka@ucw.cz>
30787 * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
30788 * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
30789 variables in boundary that have no inlitalizer encoded and are
30791 * varasm.c (default_binds_local_p_2): External definitions do not
30792 count as definitions here.
30794 2015-02-16 Jeff Law <law@redhat.com>
30796 PR tree-optimization/64823
30797 * tree-vrp.c (identify_jump_threads): Handle blocks with no real
30799 * tree-ssa-threadedge.c (potentially_threadable_block): Allow
30800 threading through blocks with PHIs, but no statements.
30801 (thread_through_normal_block): Distinguish between blocks where
30802 we did not process all the statements and blocks with no statements.
30804 2015-02-16 Jakub Jelinek <jakub@redhat.com>
30805 James Greenhalgh <james.greenhalgh@arm.com>
30808 * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
30809 section if not linkonce. Fix up formatting.
30810 (cgraph_node::create_version_clone_with_body): Copy section.
30811 * trans-mem.c (ipa_tm_create_version): Likewise.
30813 2015-02-16 Richard Biener <rguenther@suse.de>
30815 PR tree-optimization/65077
30816 * tree-ssa-structalias.c (get_constraint_for_1): Handle
30817 IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
30818 (find_func_aliases): Allow float values to carry pointers again.
30820 2015-02-16 James Greenhalgh <james.greenhalgh@arm.com>
30822 * doc/install.texi (Specific): Reorder targets list to put
30823 aarch64 in alphabetical order. Add a link to aarch64*-*-*
30826 2015-02-16 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
30827 David Edelsohn <dje.gcc@gmail.com>
30830 * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
30831 mapping class to external variable or function reference.
30832 * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
30835 2015-02-16 David Eelsohn <dje.gcc@gmail.com>
30838 * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
30839 ASM_WEAKEN_DECL if defined.
30841 2015-02-16 Richard Biener <rguenther@suse.de>
30844 * varasm.c (default_file_start): For LTO produced units
30845 emit <artificial> as file directive.
30847 2015-02-16 Richard Biener <rguenther@suse.de>
30849 PR tree-optimization/63593
30850 * tree-predcom.c (execute_pred_commoning_chain): Delay removing
30851 stmts and releasing SSA names until...
30852 (execute_pred_commoning): ... after processing all chains.
30854 2015-02-16 Jan Hubicka <hubicka@ucw.cz>
30857 * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
30858 external functions.
30860 2015-02-15 Sandra Loosemore <sandra@codesourcery.com>
30862 * doc/bugreport.texi: Adjust section titles throughout the file
30863 to use "Title Case".
30864 * doc/extend.texi: Likewise.
30865 * doc/gcov.texi: Likewise.
30866 * doc/implement-c.texi: Likewise.
30867 * doc/implement-cxx.texi: Likewise.
30868 * doc/invoke.texi: Likewise.
30869 * doc/objc.texi: Likewise.
30870 * doc/standards.texi: Likewise.
30871 * doc/trouble.texi: Likewise.
30873 2015-02-15 Jan Hubicka <hubicka@ucw.cz>
30875 * cgraph.h (symtab_node::has_aliases_p): Simplify.
30876 (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
30877 * tree.c (lookup_binfo_at_offset): Make static.
30878 (get_binfo_at_offset): Do not shadow offset; add explanatory
30881 2015-02-15 John David Anglin <danglin@gcc.gnu.org>
30883 * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
30884 for all floading point loads and stores except those using a register
30886 * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
30889 2015-02-14 Jan Hubicka <hubicka@ucw.cz>
30891 * ipa-inline-analysis.c (growth_data): Add uninlinable field.
30892 (do_estimate_growth_1): Record if any uninlinable edge was seen.
30893 (estimate_growth): Handle uninlinable edges correctly.
30894 (check_callers): New.
30895 (growth_likely_positive): Handle aliases correctly.
30897 2015-02-14 Jan Hubicka <hubicka@ucw.cz>
30899 * ipa-chkp.c: Use iterate_direct_aliases.
30900 * symtab.c (resolution_used_from_other_file_p): Move inline.
30901 (symtab_node::create_reference): Fix formating.
30902 (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
30903 (symtab_node::iterate_reference): Move inline.
30904 (symtab_node::iterate_referring): Move inline.
30905 (symtab_node::iterate_direct_aliases): Move inline.
30906 (symtab_node::used_from_object_file_p_worker): Inline into ...
30907 (symtab_node::used_from_object_file_p): ... this one; move inline.
30908 (symtab_node::call_for_symbol_and_aliases): Move inline;
30909 use iterate_direct_aliases.
30910 (symtab_node::call_for_symbol_and_aliases_1): New method.
30911 (cgraph_node::call_for_symbol_and_aliases): Move inline;
30912 use iterate_direct_aliases.
30913 (cgraph_node::call_for_symbol_and_aliases_1): New method.
30914 (varpool_node::call_for_node_and_aliases): Rename to ...
30915 (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
30916 use iterate_direct_aliases.
30917 (varpool_node::call_for_symbol_and_aliases_1): New method.
30918 * ipa.c (ipa_single_use): Use iterate_direct_aliases.
30919 (ipa_discover_readonly_nonaddressable_var): Update.
30920 * ipa-devirt.c: Fix formating.
30921 * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
30923 (cgraph_node::call_for_symbol_and_aliases): Move inline.
30924 (cgraph_node::call_for_symbol_and_aliases_1): New function..
30925 * cgraph.h (used_from_object_file_p_worker): Remove.
30926 (resolution_used_from_other_file_p): Move inline.
30927 (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
30928 (symtab_node::iterate_reference): Move inline.
30929 (symtab_node::iterate_referring): Move inline.
30930 (symtab_node::iterate_direct_aliases): Move inline.
30931 (symtab_node::used_from_object_file_p_worker): Inline into ...
30932 (symtab_node::used_from_object_file_p): Move inline.
30933 * tree-emutls.c (ipa_lower_emutls): Update.
30934 * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
30935 (varpool_node::call_for_node_and_aliases): Remove.
30937 2015-02-14 Jakub Jelinek <jakub@redhat.com>
30939 PR tree-optimization/62209
30940 * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
30941 op == range->exp, insert seq and gimplified code after labels
30942 instead of after the phi.
30944 2015-02-13 Jeff Law <law@redhat.com>
30947 Revert my change for tree-optimization/64823.
30949 2015-02-13 Jakub Jelinek <jakub@redhat.com>
30951 PR tree-optimization/65053
30952 * tree-ssa-phiopt.c (value_replacement): When moving assign before
30953 cond, either reset VR on lhs or set it to phi result VR.
30955 2015-02-13 Jeff Law <law@redhat.com>
30957 PR tree-optimization/64823
30958 * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
30959 * tree-ssa-threadedge.c (potentially_threadable_block): Allow
30960 threading through blocks with PHIs, but no statements.
30961 (thread_through_normal_block): Distinguish between blocks where
30962 we did not process all the statements and blocks with no statements.
30964 PR rtl-optimization/47477
30965 * match.pd (convert (plus/minus (convert @0) (convert @1): New
30966 simplifier to narrow arithmetic.
30968 2015-02-13 Jan Hubicka <hubicka@ucw.cz>
30971 * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
30972 polymorphic call info when type is not known to be preserved.
30974 2015-02-13 Maritn Jambor <mjambor@suse.cz>
30977 * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
30978 (inline_call): Use it.
30980 2015-02-13 Thomas Schwinge <thomas@codesourcery.com>
30982 * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
30983 GOMP_DEVICE_NVIDIA_PTX.
30985 2015-02-13 Jakub Jelinek <jakub@redhat.com>
30988 * stmt.c (emit_case_nodes): Use void_type_node instead of
30989 NULL_TREE as LABEL_DECL type.
30991 2015-02-13 John David Anglin <danglin@gcc.gnu.org>
30993 * config/pa/constraints.md: Change "Q" and "T" constraints to memory
30995 * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
30996 symbolic references to data to be forced to constant memory on the
30999 2015-02-13 Ilya Enkovich <ilya.enkovich@intel.com>
31001 PR tree-optimization/65002
31002 * tree-cfg.c (pass_data_fixup_cfg): Don't update
31004 * tree-sra.c (some_callers_have_no_vuse_p): New.
31005 (ipa_early_sra): Reject functions whose callers
31006 assume function is read only.
31008 2015-02-13 Richard Biener <rguenther@suse.de>
31011 * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
31012 for LTO produced CUs.
31014 2015-02-13 Bin Cheng <bin.cheng@arm.com>
31016 PR tree-optimization/64705
31017 * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
31018 * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
31019 * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
31020 (find_bivs, find_givs_in_stmt_scev): Pass new argument to
31021 expand_simple_operations.
31023 2015-02-13 H.J. Lu <hongjiu.lu@intel.com>
31024 Richard Henderson <rth@redhat.com>
31027 * cgraphunit.c (cgraph_node::finalize_function): Set definition
31028 before notice_global_symbol.
31029 (varpool_node::finalize_decl): Likewise.
31030 * varasm.c (default_binds_local_p_2): Rename from
31031 default_binds_local_p_1, add weak_dominate argument. Use direct
31032 returns instead of assigning to local variable. Unify varpool and
31033 cgraph paths via symtab_node. Reject undef weak variables before
31034 testing visibility. Reorder tests for simplicity.
31035 (default_binds_local_p): Use default_binds_local_p_2.
31036 (default_binds_local_p_1): Likewise.
31037 (decl_binds_to_current_def_p): Unify varpool and cgraph paths
31039 (default_elf_asm_output_external): Emit visibility when specified.
31041 2015-02-13 Alan Modra <amodra@gmail.com>
31043 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
31044 code setting up r11 for out-of-line fp restore.
31046 2015-02-13 Eric Botcazou <ebotcazou@adacore.com>
31048 * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
31049 (muser-mode): Likewise.
31051 2015-02-13 Alan Modra <amodra@gmail.com>
31053 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
31054 or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
31056 2015-02-12 David Howells <dhowells@redhat.com>
31058 * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
31060 * tree-ssa-uninit.c (dump_predicates): Likewise.
31061 * opts.c (print_filtered_help): Likewise.
31063 2015-02-12 Jakub Jelinek <jakub@redhat.com>
31065 * dwarf2out.c (output_die): Use "%s", name instead of name to
31066 avoid -Wformat-security warning.
31068 * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
31069 if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
31070 * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
31071 only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
31073 2015-02-12 Jason Merrill <jason@redhat.com>
31075 * common.opt (-flifetime-dse): New.
31077 2015-02-12 Jakub Jelinek <jakub@redhat.com>
31080 * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
31082 PR tree-optimization/65014
31083 * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
31084 use original second operand of arg0 or arg1 instead of
31085 that adjusted by STRIP_NOPS.
31087 2015-02-11 Jeff Law <law@redhat.com>
31090 * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
31091 that needs to be queued, just queue it for a single cycle.
31093 2015-02-11 Jan Hubicka <hubicka@ucw.cz>
31095 * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
31096 bodies of thunks; comment on why.
31097 * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
31098 symbols are extern.
31100 2015-02-11 Richard Henderson <rth@redhat.com>
31103 * tree-eh.c (mark_reachable_handlers): Mark source and destination
31104 regions of __builtin_eh_copy_values.
31106 2015-02-11 Jakub Jelinek <jakub@redhat.com>
31108 PR middle-end/65003
31109 * varasm.c (place_block_symbol): Assert that DECL_RTL of the
31110 ultimate alias is MEM with SYMBOL_REF satisfying
31111 SYMBOL_REF_HAS_BLOCK_INFO_P as its operand. Don't pass the MEM
31112 to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
31114 2015-02-11 Thomas Schwinge <thomas@codesourcery.com>
31116 * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
31117 "diagnostic-core.h".
31118 (main): Initialize progname, and call diagnostic_initialize.
31120 * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
31121 instead of __OPENMP_TARGET__.
31123 * config/nvptx/mkoffload.c: Include "gomp-constants.h".
31124 (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
31125 hard-coding PTX_ID.
31127 2015-02-11 H.J. Lu <hongjiu.lu@intel.com>
31129 * doc/sourcebuild.texi (pie_enabled): Document.
31131 2015-02-11 Martin Liska <mliska@suse.cz>
31134 * cgraphunit.c (cgraph_node::expand_thunk): Do not create
31135 a return value for call to a function that is noreturn.
31137 2015-02-11 Richard Biener <rguenther@suse.de>
31140 * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
31143 2015-02-11 Andrew Pinski <apinski@cavium.com>
31146 * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
31147 Change the first argument type to size_type_node and add another
31149 (aarch64_simd_expand_builtin): Handle the new argument to
31150 AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
31151 print an out when the first two arguments are not
31152 nonzero integer constants.
31153 * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
31154 Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
31156 2015-02-11 Jakub Jelinek <jakub@redhat.com>
31159 * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
31160 (ix86_reset_previous_fndecl): Restore it here, unconditionally.
31161 (ix86_set_current_function): Rewritten.
31162 (ix86_add_new_builtins): Temporarily clear current_target_pragma
31163 when creating builtin fndecls.
31165 2015-02-10 Jan Hubicka <hubicka@ucw.cz>
31168 * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
31170 * symtab.c (symtab_node::verify_base): Remove check that non-definitions
31171 have no comdat group.
31172 * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
31173 (lto_output_varpool_node): Always output alias info.
31174 (output_refs): Output refs of boundary aliases, too.
31175 (compute_ltrans_boundary): Add alias and thunk target into boundaries.
31176 (output_symtab): Output call eges in thunks in boundary.
31177 (get_alias_symbol): Remove.
31178 (input_node, input_varpool_node): Do not special case weakrefs.
31179 * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
31180 alias and thunks targets in the boundary; do not take removed symbols
31181 from their comdat groups.
31182 * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
31183 (cgraph_node::global_info): Remove.
31184 (cgraph_node::rtl_info): Look through aliases and thunks.
31185 * cgrpah.h (global_info): Remove.
31186 (non_local_p): Remove.
31188 2015-02-10 David Wohlferd <dw@LimeGreenSocks.com>
31189 Sandra Loosemore <sandra@codesourcery.com>
31191 * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
31192 to inline asm. List dialects in proper order.
31194 2015-02-10 David Wohlferd <dw@LimeGreenSocks.com>
31195 Sandra Loosemore <sandra@codesourcery.com>
31197 * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
31199 2015-02-10 David Wohlferd <dw@LimeGreenSocks.com>
31201 * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
31202 modified) reference to Solaris.
31204 2015-02-10 Sandra Loosemore <sandra@codesourcery.com>
31206 * doc/extend.texi (Extended Asm): Fix typos.
31208 2015-02-10 Jakub Jelinek <jakub@redhat.com>
31211 * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
31213 2015-02-10 Oleg Endo <olegendo@gcc.gnu.org>
31216 * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
31217 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
31218 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
31219 * config/sh/constraints.md (Ara, Add): New constraints.
31220 * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
31222 (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
31223 atomic_mem_operand_0. Don't use force_reg on the memory address.
31224 (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
31225 Sra constraint. Convert to insn_and_split. Add workaround for
31227 (atomic_compare_and_swap<mode>_hard): Copy to
31228 atomic_compare_and_swap<mode>_hard_1. Convert to insn_and_split.
31229 Use atomic_mem_operand_0 predicate.
31230 (atomic_compare_and_swap<mode>_soft_gusa,
31231 atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
31232 AraAdd constraints.
31233 (atomic_compare_and_swap<mode>_soft_tcb,
31234 atomic_compare_and_swap<mode>_soft_imask,
31235 atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
31236 atomic_mem_operand_0 predicate and SraSdd constraints.
31237 (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
31239 (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
31240 Convert to insn_and_split. Use atomic_mem_operand_0 predicate.
31241 (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
31242 atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1. Don't use
31243 force_reg on the memory address.
31244 (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
31245 atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
31246 atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
31247 atomic_mem_operand_1 predicate and Sra constraint.
31248 (atomic_fetch_<fetchop_name><mode>_hard): Copy to
31249 atomic_fetch_<fetchop_name><mode>_hard_1. Convert to insn_and_split.
31250 Use atomic_mem_operand_1 predicate.
31251 (atomic_<fetchop_name><mode>_hard): Copy to
31252 atomic_<fetchop_name><mode>_hard_1. Convert to insn_and_split.
31253 Use atomic_mem_operand_1 predicate.
31254 (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
31255 Convert to insn_and_split. Use atomic_mem_operand_1 predicate.
31256 (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1. Convert to
31257 insn_and_split. Use atomic_mem_operand_1 predicate.
31258 (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
31259 atomic_<fetchop_name>_fetch<mode>_hard_1. Convert to insn_and_split.
31260 Use atomic_mem_operand_1 predicate.
31261 (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
31262 Convert to insn_and_split. Use atomic_mem_operand_1 predicate.
31263 (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
31264 in generated insn with original mem operand before emitting the insn.
31265 (atomic_fetch_<fetchop_name><mode>_soft_gusa,
31266 atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
31267 atomic_<fetchop_name>_fetch<mode>_soft_gusa,
31268 atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
31269 Use atomic_mem_operand_1 predicate and AraAdd constraints.
31270 (atomic_fetch_<fetchop_name><mode>_soft_tcb,
31271 atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
31272 atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
31273 atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
31274 atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
31275 atomic_<fetchop_name>_fetch<mode>_soft_tcb,
31276 atomic_not_fetch<mode>_soft_tcb,
31277 atomic_<fetchop_name>_fetch<mode>_soft_imask,
31278 atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
31279 atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
31280 Use atomic_mem_operand_1 predicate and SraSdd constraints.
31282 2015-02-10 Uros Bizjak <ubizjak@gmail.com>
31284 * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
31285 and 3 earlyclobber operands.
31287 2015-02-10 Jan Hubicka <hubicka@ucw.cz>
31289 * common.opt (fstack-reuse): Mark as optimization.
31291 2015-02-10 Jan Hubicka <hubicka@ucw.cz>
31294 * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
31296 2015-02-10 Trevor Saunders <tsaunders@mozilla.com>
31298 PR tree-optimization/64326
31299 * cfghooks.c (make_forwarder_block): Cap frequency of created block.
31301 2015-02-10 Rainer Emrich <rainer@emrich-ebersheim.de>
31303 PR gcov-profile/61889
31304 * gcov-tool.c: Remove wrong #if !defined(_WIN32)
31306 2015-02-10 Richard Biener <rguenther@suse.de>
31308 PR tree-optimization/64995
31309 * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
31310 value we use is final.
31311 (visit_reference_op_store): Always valueize op.
31312 (visit_use): Properly valueize vuses.
31314 2015-02-10 Richard Biener <rguenther@suse.de>
31316 PR tree-optimization/64909
31317 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
31318 pass a scalar-stmt count estimate to the cost model.
31319 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
31321 2015-02-10 Alexander Monakov <amonakov@ispras.ru>
31323 * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
31324 enabled by default together with var-tracking.
31326 2015-02-10 Nick Clifton <nickc@redhat.com>
31328 * config/rl78/rl78.c: Remove DIV attribute code accidentally
31329 included in previous rl78 commit.
31331 2015-02-10 Richard Biener <rguenther@suse.de>
31333 * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
31334 * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
31335 return the bitpack.
31337 2015-02-09 Trevor Saunders <tsaunders@mozilla.com>
31339 PR gcov-profile/61889
31340 * config.in: regenerate.
31341 * configure.in: Likewise.
31342 * configure.ac: Check for ftw.h.
31343 * gcov-tool.c: Check for ftw.h before using nftw.
31345 2015-02-09 Trevor Saunders <tsaunders@mozilla.com>
31348 * ipa-visibility.c (update_visibility_by_resolution_info): Only
31349 assert when not in lto mode.
31351 2015-02-09 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
31353 * ira-color.c (setup_left_conflict_sizes_p): Simplify
31354 initialization/assignment of conflict_size.
31356 2015-02-09 Jan Hubicka <hubicka@ucw.cz>
31359 * ipa-cp.c (gather_caller_stats): Skip thunks.
31360 (propagate_constants_topo): Skip aliases.
31362 2015-02-09 Kaz Kojima <kkojima@gcc.gnu.org>
31365 * config/sh/sh.c (sh_option_override): Don't change
31366 -freorder-blocks-and-partition to -freorder-blocks even when
31367 unwinding is enabled.
31368 (sh_can_follow_jump): Return false if the followee jump is
31369 a crossing jump when -freorder-blocks-and-partition is specified.
31370 * config/sh/sh.md (*jump_compact_crossing): New insn.
31372 2015-02-09 Joern Rennecke <joern.rennecke@embecosm.com>
31373 Kaz Kojima <kkojima@gcc.gnu.org>
31376 * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
31377 * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
31378 (sh_can_redirect_branch): Rename to ...
31379 (sh_can_follow_jump): ... this. Constify argument types.
31380 * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
31381 * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
31382 * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
31383 * doc/tm.texi: Regenerate.
31385 2015-02-09 Jakub Jelinek <jakub@redhat.com>
31388 * builtins.c (expand_builtin): Call targetm.expand_builtin
31389 for BUILT_IN_MD builtins regardless of asan_intercepted_p.
31391 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
31394 * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
31396 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
31399 * ipa-icf.c (set_local): New function.
31400 (sem_function::merge): Use it.
31402 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
31404 * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
31405 (add_type_duplicate): Fix comparison of BINFOs.
31407 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
31409 * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
31410 on getting VOID pointer.
31412 2015-02-09 Jakub Jelinek <jakub@redhat.com>
31415 * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
31418 2015-02-09 Richard Biener <rguenther@suse.de>
31420 * genmatch.c (replace_id): Copy expr_type.
31422 2015-02-09 Richard Biener <rguenther@suse.de>
31424 * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
31425 (streamer_write_tree_bitfields): Declare.
31426 * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
31427 properly unpack padding.
31428 (unpack_value_fields): Inline ...
31429 (streamer_read_tree_bitfields): ... here.
31430 * tree-streamer-out.c (pack_ts_base_value_fields): Inline
31431 and properly add padding bits.
31432 (streamer_pack_tree_bitfields): Fold into ...
31433 (streamer_write_tree_bitfields): ... this new function,
31434 exposing the bitpack object.
31435 * lto-streamer-out.c (lto_write_tree_1): Call
31436 streamer_write_tree_bitfields.
31438 2015-02-09 Richard Biener <rguenther@suse.de>
31440 PR tree-optimization/54000
31441 * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
31442 (struct ivopts_data): Add loop_loc member.
31443 (tree_ssa_iv_optimize_loop): Dump loop location.
31444 (create_new_ivs): Likewise, also dump number of IVs generated.
31446 2015-02-09 Martin Liska <mliska@suse.cz>
31448 * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
31449 just if not yet registered.
31450 (ipa_icf_generate_summary): Register callgraph hooks.
31452 2015-02-08 Andrew Pinski <apinski@cavium.com>
31454 * config/aarch64/aarch64.c (gty_dummy): Delete.
31456 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
31459 * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
31460 (cgraph_node::local_p): Remove thunk related FIXME.
31462 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
31465 * i386.c (ix86_function_regparm): Look through aliases to see if callee
31466 is local and optimized.
31467 (ix86_function_sseregparm): Likewise; also use target's SSE math
31468 settings; error out instead of silently generating wrong code
31470 (init_cumulative_args): Look through aliases.
31472 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
31475 * ipa-split.c (execute_split_functions): Split if function has aliases.
31477 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
31480 * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
31481 aliases before trying to expand it.
31482 (cgraph_node::expand_thunk): Fix formating.
31484 2015-02-07 Sandra Loosemore <sandra@codesourcery.com>
31486 * doc/extend.texi (Function Attributes [naked]): Copy-edit.
31487 (Using Assembly Language with C): Expand introduction.
31488 (Basic Asm): Copy-edit. Add more information about uses of
31490 (Extended Asm): Copy-edit. Document new escape syntax and
31492 (Global Reg Vars): Copy-edit.
31493 (Local Reg Vars): Likewise.
31495 2015-02-06 David Edelsohn <dje.gcc@gmail.com>
31499 * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
31500 (DBX_CONTIN_CHAR): Define.
31502 2015-02-06 Sebastian Pop <s.pop@samsung.com>
31503 Brian Rzycki <b.rzycki@samsung.com>
31505 PR tree-optimization/64878
31506 * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
31507 (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
31508 Stop recursion at loop phi nodes after having visited a loop phi node.
31510 2015-02-06 Jakub Jelinek <jakub@redhat.com>
31512 * toplev.c (process_options): Change flag_ipa_ra before creating
31513 optimization_{default,current}_node.
31516 * cgraphunit.c (cgraph_node::expand_thunk): If
31517 restype is not is_gimple_reg_type nor the thunk_fndecl
31518 returns aggregate_value_p, set restmp to a temporary variable
31519 instead of resdecl.
31521 2015-02-06 Vladimir Makarov <vmakarov@redhat.com>
31523 * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
31525 2015-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
31528 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
31529 add a general secondary reload handler for SDmode, unless we have
31530 both read/write support for SDmode.
31532 2015-02-06 Jakub Jelinek <jakub@redhat.com>
31534 PR middle-end/64937
31535 * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
31536 Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
31537 or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
31538 1 before, push it to abstract_vec.
31539 (dwarf2out_abstract_function): Adjust caller. Don't call
31540 set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
31541 DECL_ABSTRACT_P flags for all abstract_vec elts.
31543 2015-02-06 Renlin Li <renlin.li@arm.com>
31545 * tree-ssa-forwprop.c (execute): Keep location info while rewrite
31547 * tree-ssa.c (execute_update_addresses_taken): Likewise.
31549 2015-02-06 Jeff Law <law@redhat.com>
31552 * config/h8300/h8300.c (push): New argument "in_prologue".
31553 Pass "in_prologue" along to "F".
31554 (h8300_push_pop): Corresponding changes.
31555 (h8300_expand_prologue): Likewise.
31556 (h8300_swap_into_er6): Likewise. Do not set RTX_FRAME_RELATED_P.
31558 2015-02-06 Jakub Jelinek <jakub@redhat.com>
31560 PR rtl-optimization/64957
31562 * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
31563 IOR rather than for AND.
31565 2015-02-06 Eric Botcazou <ebotcazou@adacore.com>
31568 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
31569 of shift-add and (add + shift) operations. Rename local variable.
31571 2015-02-05 Jeff Law <law@redhat.com>
31574 * config/h8300/constraints.md (U): Correctly dectect
31575 "eightbit_data" memory addresses.
31576 * config/h8300/h8300.c (eightbit_constant_address_p): Also
31577 handle (const (plus (symbol_ref (x)))) where x is declared
31578 as an 8-bit data memory address.
31579 * config/h8300/h8300.md (call, call_value): Correctly detect
31580 "funcvec" functions.
31583 * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
31584 24 to 28 bits for the H8/300.
31586 2015-02-06 Alan Modra <amodra@gmail.com>
31589 * config/rs6000/rs6000.c (chain_already_loaded): New function.
31590 (rs6000_call_aix): Use it.
31592 2015-02-05 Jan Hubicka <hubicka@ucw.cz>
31594 * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
31597 2015-02-05 Joern Rennecke <joern.rennecke@embecosm.com>
31599 * config/h8300/constraints.md ("U" constraint): Use strict
31600 variant of REG_OK_FOR_BASE_P after reload has started.
31602 2015-02-04 Mantas Mikaitis <mantas.mikaitis@arm.com>
31604 * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
31605 define to zero if !TARGET_NEON.
31606 (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
31608 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
31609 Trevor Saunders <tsaunders@mozilla.com>
31612 * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
31614 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
31617 * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
31618 when removing varpool nodes.
31620 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
31623 * varpool.c (varpool_node::remove): Fix order of variables.
31625 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
31628 * ipa-inline.c (inline_small_functions): Fix ordering issue between
31629 speculation resolution and key updates.
31631 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
31633 * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
31634 about not letting any speculative edges unupdated.
31636 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
31639 * gcov-io.c (gcov_var): Export.
31641 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
31643 PR middle-end/64922
31644 * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
31645 edges that become speculative.
31647 2015-02-04 Jakub Jelinek <jakub@redhat.com>
31649 * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
31650 or DW_LANG_Fortran08.
31651 (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
31653 (gen_compile_unit_die): Handle "GNU Fortran2003" and
31654 "GNU Fortran2008" language strings.
31655 * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
31656 * langhooks.h (lang_GNU_Fortran): New prototype.
31657 * langhooks.c (lang_GNU_Fortran): New function.
31658 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
31661 2015-02-04 Eric Botcazou <ebotcazou@adacore.com>
31663 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
31664 (RTX_OK_FOR_OLO10_P): Likewise.
31666 2015-02-04 Eric Botcazou <ebotcazou@adacore.com>
31668 * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
31670 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
31672 PR middle-end/64922
31673 * gimple.c: Include gimple-ssa.h.
31674 (maybe_remove_unused_call_args): New function.
31675 * gimple.h (maybe_remove_unused_call_args): Declare.
31676 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
31677 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
31678 * gimple-fold.c (gimple_fold_call): Likewise.
31680 2015-02-04 H.J. Lu <hongjiu.lu@intel.com>
31682 PR rtl-optimization/64905
31683 * lra-eliminations.c (setup_can_eliminate): Clear hard frame
31684 pointer alignment if it isn't needed.
31686 2015-02-04 Matthew Wahab <matthew.wahab@arm.com>
31688 * config/aarch64/aarch64-cores.def: Add cortex-a72 and
31689 cortex-a72.cortex-a53.
31690 * config/aarch64/aarch64-tune.md: Regenerate.
31691 * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
31693 2015-02-04 Nick Clifton <nickc@redhat.com>
31695 * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
31698 2015-02-04 Jakub Jelinek <jakub@redhat.com>
31700 * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
31701 (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
31702 (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
31704 (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
31705 BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
31706 DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
31707 (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
31708 BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
31709 BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
31710 DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
31711 * tree-core.h (enum built_in_function): In between
31712 BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
31713 for builtins that use DEF_BUILTIN_CHKP macro.
31715 2015-02-04 Alexandre Oliva <aoliva@redhat.com>
31718 * cfgexpand.c (expand_debug_expr): Compute unsignedp from
31719 operands for tcc_comparison exprs. Fix typos.
31722 * simplify-rtx.c (simplify_binary_operation_1): Simplify one
31723 of two XORs that have an intervening AND or IOR.
31726 * simplify-rtx.c (simplify_binary_operation_1): Rewrite
31727 simplification of XOR of AND to not allocate new rtx before
31728 committing to a simplification.
31730 2015-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31732 * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
31733 manual swaps in all peepholes.
31735 2015-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31737 * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
31738 of manual swapping implementation.
31739 (aarch64_expand_vec_perm_const_1): Likewise.
31741 2015-02-04 James Greenhalgh <james.greenhalgh@arm.com>
31743 * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
31744 (generic_addrcost_table): Remove NAMED_PARAM.
31745 (cortexa57_addrcost_table): Likewise.
31746 (xgene1_addrcost_table): Likewise.
31747 (generic_regmove_table): Likewise.
31748 (cortexa53_regmove_table): Likewise.
31749 (xgene1_regmove_table): Likewise.
31750 (generic_vector_table): Likewise.
31751 (cortexa57_vector_table): Likewise.
31752 (xgene1_vector_table): Likewise.
31753 (generic_tunings): Likewise.
31754 (cortexa53_tunings): Likewise.
31755 (cortexa57_tunings): Likewise.
31756 (xgene1_tunings): Likewise.
31758 2015-02-04 Matthew Wahab <matthew.wahab@arm.com>
31760 * config/arm/arm-cores.def: Add cortex-a72 and
31761 cortex-a72.cortex-a53.
31762 * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
31763 * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
31764 * config/arm/arm-tune.md: Regenerate.
31765 * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
31766 "cortex-a72.cortex-a53".
31767 * doc/invoke.texi (ARM Options/-mtune): Likewise.
31769 2015-02-04 Nick Clifton <nickc@redhat.com>
31772 * config/fr30/predicates.md (di_operand): Add SUBREG to the list
31774 (nonimmediate_di_operand): Likewise.
31776 * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
31777 prefixes of known F5 using MSP430 MCUs.
31779 2015-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31781 * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
31782 * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
31783 instead of __builtin_sqrt.
31785 2015-02-04 Ilya Enkovich <ilya.enkovich@intel.com>
31787 * varasm.c (do_assemble_alias): Follow transparent alias
31789 (default_assemble_visibility): Follow transparent alias
31790 chain for decl name.
31792 2015-02-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
31794 PR middle-end/62103
31795 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
31796 to compute size of referenced value in the constant case.
31798 2015-02-03 Jakub Jelinek <jakub@redhat.com>
31800 PR rtl-optimization/64756
31801 * cse.c (invalidate_dest): New function.
31802 (cse_insn): Use it. If dest != SET_DEST (sets[i].rtl) and
31803 HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
31804 invalidate and do not record it.
31806 2015-02-03 Oleg Endo <olegendo@gcc.gnu.org>
31809 * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
31810 atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
31811 atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
31812 atomic_nand<mode>_soft_tcb): New insns.
31813 (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
31814 Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
31815 (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
31816 Split into atomic_not_fetchsi_hard if operands[0] is unused.
31817 (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
31818 Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
31819 (atomic_fetch_not<mode>_hard): Convert to insn_and_split. Split into
31820 atomic_not<mode>_hard if operands[0] is unused.
31821 (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
31822 insn_and_split. Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
31823 if operands[0] is unused.
31824 (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split. Split
31825 into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
31826 (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
31827 Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
31829 (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split. Split
31830 into atomic_not<mode>_soft_tcb if operands[0] is unused.
31831 (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
31832 insn_and_split. Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
31833 if operands[0] is unused.
31834 (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split. Split
31835 into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
31836 (atomic_fetch_nandsi_hard): Convert to insn_and_split. Split into
31837 atomic_nand_fetchsi_hard if operands[0] is unused.
31838 (atomic_fetch_nand<mode>_hard): Convert to insn_and_split. Split into
31839 atomic_nand<mode>_hard if operands[0] is unused.
31840 (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split. Split
31841 into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
31842 (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split. Split
31843 into atomic_nand<mode>_soft_tcb if operands[0] is unused.
31844 (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split. Split
31845 into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
31846 (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
31847 Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
31848 (atomic_not_fetch<mode>_hard): Convert to insn_and_split. Split into
31849 atomic_not<mode>_hard if operands[0] is unused.
31850 (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
31851 Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
31853 (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split. Split
31854 into atomic_not<mode>_soft_tcb if operands[0] is unused.
31855 (atomic_nand_fetch<mode>_hard): Convert to insn_and_split. Split into
31856 atomic_nand<mode>_hard if operands[0] is unused.
31857 (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split. Split
31858 into atomic_nand<mode>_soft_tcb if operands[0] is unused.
31860 2015-02-03 David Malcolm <dmalcolm@redhat.com>
31863 * Makefile.in (GCC_OBJS): Add gcc-main.o.
31864 * gcc-main.c: New file, containing "main" taken from gcc.c.
31865 * gcc.c (do_self_spec): Free decoded_options.
31866 (class driver): Move declaration to gcc.h.
31867 (main): Move declaration and implementation to new file
31869 (driver_get_configure_time_options): New function.
31870 * gcc.h (class driver): Move this declaration here, from
31872 (driver_get_configure_time_options): New declaration.
31874 2015-02-03 Jan Hubicka <hubicka@ucw.cz>
31876 * ipa-inline-analysis.c (simple_edge_hints): Fix check for
31877 cross-module inlining.
31878 * cgraph.h (cgraph_node): Add flag merged.
31879 * ipa-icf.c (sem_function::merge): Maintain it.
31881 2015-02-03 Richard Sandiford <richard.sandiford@arm.com>
31883 * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
31884 instead of OBJECT_P.
31886 2015-02-03 Eric Botcazou <ebotcazou@adacore.com>
31889 * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
31890 (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
31891 * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
31892 int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
31894 2015-02-03 Jakub Jelinek <jakub@redhat.com>
31897 * combine.c (reg_n_sets_max): New variable.
31898 (can_change_dest_mode, reg_nonzero_bits_for_combine,
31899 reg_num_sign_bit_copies_for_combine, get_last_value_validate,
31900 get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
31901 (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
31902 (rest_of_handle_combine): Initialize reg_n_sets_max.
31904 2015-02-02 Jan Hubicka <hubicka@ucw.cz>
31906 * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
31907 if some always_inline was inlined, apply changes before inlining
31910 2015-02-02 David Malcolm <dmalcolm@redhat.com>
31913 * config/arm/arm.c (arm_option_override): Set
31914 arm_selected_arch/cpu/tune to NULL on entry.
31916 2015-02-02 Tejas Belagod <tejas.belagod@arm.com>
31917 Andrew Pinski <pinskia@gcc.gnu.org>
31918 Jakub Jelinek <jakub@gcc.gnu.org>
31921 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
31922 integer typing for small model. Use IN_RANGE.
31924 2015-02-02 Richard Biener <rguenther@suse.de>
31926 * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
31927 * tree-vrp.c (vrp_valueize_1): Likewise.
31929 2015-02-02 Alan Modra <amodra@gmail.com>
31931 * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
31932 than mem for toc_restore.
31933 * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
31934 (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
31935 (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
31937 2015-02-01 David Edelsohn <dje.gcc@gmail.com>
31940 * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
31941 explicit default options.
31943 2015-02-01 Jan Hubicka <hubicka@ucw.cz>
31946 * ipa-utils.c (ipa_merge_profiles): Add release argument.
31947 * ipa-icf.c (sem_function::merge): Do not release body when merging.
31948 * ipa-utils.h (ipa_merge_profiles): Update prototype.
31950 2015-02-01 Jakub Jelinek <jakub@redhat.com>
31953 * cfgexpand.c (deep_ter_debug_map): New variable.
31954 (avoid_deep_ter_for_debug): New function.
31955 (expand_debug_expr): If TERed SSA_NAME is in
31956 deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
31957 instead of trying to expand SSA_NAME's def stmt.
31958 (expand_debug_locations): When expanding debug bind
31959 of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
31960 temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
31962 (pass_expand::execute): Call avoid_deep_ter_for_debug on
31963 all debug bind stmts. Delete deep_ter_debug_map after
31964 expand_debug_location if non-NULL and clear it.
31966 2015-02-01 Oleg Endo <olegendo@gcc.gnu.org>
31969 * config/sh/sync.md (atomic_fetch_notsi_hard,
31970 atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
31971 atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
31972 atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
31973 atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
31974 atomic_not_fetch<mode>_soft_imask): New insns.
31976 2015-02-01 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
31978 * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
31979 (rank_for_schedule_debug): Split from ...
31980 (rank_for_schedule): ... this.
31981 (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
31982 * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
31984 2015-01-31 Sandra Loosemore <sandra@codesourcery.com>
31986 * doc/md.texi (Machine Constraints): Alphabetize table by target.
31987 * doc/extend.texi (x86 Variable Attributes): Move section to
31988 correct alphabetization after renaming.
31989 (x86 Type Attributes): Likewise.
31990 (Target Builtins): Re-alphabetize menu.
31991 (x86 Built-in Functions): Move section to correct alphabetization
31993 (x86 transactional memory intrinsics): Likewise.
31994 * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
31995 and x86 Windows Options in table and menu.
31996 (x86 Options): Move section to correct alphabetization after
31998 (x86 Windows Options): Likewise.
32000 2015-01-31 Sandra Loosemore <sandra@codesourcery.com>
32002 * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
32003 preferred names of the architecture and its 32- and 64-bit
32005 * doc/invoke.texi: Likewise.
32006 * doc/md.texi: Likewise.
32008 2015-01-31 Uros Bizjak <ubizjak@gmail.com>
32011 * config/i386/predicates.md (address_no_seg_operand): Reject
32012 non-CONST_INT_P operands in invalid mode.
32014 2015-01-31 Uros Bizjak <ubizjak@gmail.com>
32016 * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
32017 address_operand 0. Rename from *prefetch_prefetchwt1_<mode>.
32018 * config/i386/predicates.md (address_no_seg_operand): Call
32019 address_operand with VOIDmode.
32020 (vsib_address_operand): Ditto.
32021 (address_mpx_no_base_operand): Ditto.
32022 (address_mpx_no_index_operand): Ditto.
32024 2015-01-30 Vladimir Makarov <vmakarov@redhat.com>
32027 * lra-constraints.c (original_subreg_reg_mode): New.
32028 (simplify_operand_subreg): Try to simplify subreg of const. Use
32029 original_subreg_reg_mode for it.
32030 (swap_operands): Update original_subreg_reg_mode.
32031 (curr_insn_transform): Set up original_subreg_reg_mode.
32033 2015-01-30 Vladimir Makarov <vmakarov@redhat.com>
32036 * lra-constraints.c (prohibited_class_reg_set_mode_p): New
32038 (process_alt_operands): Use it.
32039 (curr_insn_transform): Check the optional reload pseudo class is
32042 2015-01-30 Joseph Myers <joseph@codesourcery.com>
32044 * diagnostic.c (fatal_error (const char *, ...)): Remove function.
32045 * diagnostic-core.h (fatal_error (const char *, ...)): Remove
32047 * toplev.h (init_asm_output): Update comment on use of
32048 UNKNOWN_LOCATION with fatal_error.
32049 * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
32050 config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
32051 config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
32052 config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
32053 config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
32054 config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
32055 config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
32056 ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
32057 lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
32058 lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
32059 tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
32060 fatal_error changed to pass input_location as first argument.
32062 2015-01-30 Martin Liska <mliska@suse.cz>
32064 * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
32065 in #pragma GCC diagnostic guards.
32067 2015-01-30 Richard Biener <rguenther@suse.de>
32069 PR tree-optimization/64829
32070 * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
32071 not add a widening conversion pattern but hand off extra
32072 widenings to callers.
32073 (vect_recog_widen_mult_pattern): Handle extra widening produced
32074 by vect_handle_widen_op_by_const.
32075 (vect_recog_widen_shift_pattern): Likewise.
32076 (vect_pattern_recog_1): Remove excess vertical space in dumping.
32077 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
32078 (vect_init_vector_1): Likewise.
32079 (vect_get_vec_def_for_operand): Likewise.
32080 (vect_finish_stmt_generation): Likewise.
32081 (vectorizable_load): Likewise.
32082 (vect_analyze_stmt): Likewise.
32083 (vect_is_simple_use): Likewise.
32085 2015-01-29 Jeff Law <law@redhat.com>
32087 * combine.c (try_combine): Fix typo in comment.
32089 2015-01-29 Segher Boessenkool <segher@kernel.crashing.org>
32092 * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
32093 (rs6000_stack_info): Add assert.
32094 (rs6000_output_savres_externs): New function, split off from...
32095 (rs6000_output_function_prologue): ... here. Do not call it for
32098 2015-01-29 Jeff Law <law@redhat.com>
32101 * combine.c (try_combine): If I0 is a memory load and I3 a store
32102 to a related address, increase the "goodness" of doing a 4-insn
32103 combination with I0-I3.
32104 (make_field_assignment): Handle SUBREGs in the ior+and case.
32106 2015-01-29 Yuri Rumyantsev <ysrumyan@gmail.com>
32108 PR tree-optimization/64746
32109 * tree-if-conv.c (mask_exists): New function.
32110 (predicate_mem_writes): Save created mask with given size for further
32112 (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
32113 (ifcvt_repair_bool_pattern): Collect all statements that are root
32114 of bool pattern and use iterative algorithm to remove multiple uses
32115 of predicates, display number of required iterations.
32117 2015-01-29 Richard Biener <rguenther@suse.de>
32119 PR tree-optimization/64853
32120 * tree-vrp.c (vrp_valueize_1): Do not return anything if the
32121 stmt will get simulated again.
32122 * tree-ssa-ccp.c (valueize_op_1): Likewise.
32124 2015-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32126 * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
32127 return_in_pc. Remove redundant assignments.
32128 (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
32129 (arm_expand_epilogue): Don't compare boolean with true in if condition.
32131 2015-01-29 Uros Bizjak <ubizjak@gmail.com>
32133 * config/i386/i386.c (ix86_mode_after): Make static.
32135 2015-01-29 Richard Biener <rguenther@suse.de>
32137 PR tree-optimization/64844
32138 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
32139 dump cost model analysis.
32140 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
32141 Do not register adjusted load/store costs here.
32143 2015-01-29 Ilya Enkovich <ilya.enkovich@intel.com>
32144 Uros Bizjak <ubizjak@gmail.com>
32146 * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
32147 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
32148 using x86_use_pseudo_pic_reg.
32149 * config/i386/i386.c (ix86_conditional_register_usage): Remove
32150 support for fixed PIC register.
32151 (ix86_use_pseudo_pic_reg): Not static any more.
32153 2015-01-29 Ilya Enkovich <ilya.enkovich@intel.com>
32155 PR middle-end/64805
32156 * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
32157 to avoid error in cgraph node verification.
32159 2015-01-29 Marek Polacek <polacek@redhat.com>
32161 * doc/standards.texi: Reflect that the default for C is gnu11.
32163 2015-01-29 Kaz Kojima <kkojima@gcc.gnu.org>
32166 * reorg.c (switch_text_sections_between_p): New function.
32167 (relax_delay_slots): Call it when testing if the jump insn
32168 is removable. Use targetm.can_follow_jump when testing if
32169 the conditional branch can follow an unconditional jump.
32171 2015-01-27 Caroline Tice <cmtice@google.com>
32173 Committing VTV Cywin/Ming patch for Patrick Wollgast
32174 * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
32175 if -fvtable-verify=preinit/std is used.
32176 * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
32177 * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
32178 * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
32179 if -fvtable-verify=preinit/std is used.
32180 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
32181 * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
32182 if -fvtable-verify=preinit/std is used.
32183 * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
32184 * config/i386/mingw32.h (LIB_SPEC): Likewise.
32185 * varasm.c (assemble_variable): Add code to properly set the comdat
32186 section and name for the .vtable_map_vars section in case the
32187 target is PE or COFF.
32189 2015-01-29 Jan Hubicka <hubicka@ucw.cz>
32192 * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
32193 make sane BB profile.
32194 (cgraph_node::expand_thunk): Make sane BB profile.
32195 (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
32196 * cgraph.h (init_lowered_empty_function): Update prototype.
32197 * config/i386/i386.c (make_resolver_func): Update call.
32198 * predict.c (gate): Disable branch prediction pass if
32199 profile is already there.
32201 2015-01-29 Jan Hubicka <hubicka@ucw.cz>
32203 * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
32204 * opth-gen.awk: Likewise.
32205 * common.opt: Mark flag_fp_contract_mode as Optimization.
32207 2015-01-29 Bernd Edlinger <bernd.edlinger@hotmail.de>
32209 * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
32210 * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
32212 2015-01-28 Oleg Endo <olegendo@gcc.gnu.org>
32215 * config/sh/predicates.md (atomic_arith_operand,
32216 atomic_logical_operand): Remove.
32217 * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
32218 (atomic_arith_operand_0): New predicate.
32219 (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
32220 Use atomic_arith_operand_0 for input values.
32221 (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
32222 atomic_compare_and_swap<mode>_soft_gusa,
32223 atomic_compare_and_swap<mode>_soft_tcb,
32224 atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
32225 arith_reg_operand instead of register_operand.
32226 (atomic_exchange<mode>): Use arith_reg_dest for output value. Use
32227 atomic_arith_operand_0 for newval input.
32228 (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
32229 atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
32230 atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
32231 arith_reg_operand instead of register_operand.
32232 (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
32233 fetchop_predicate_1, fetchop_constraint_1_llcs,
32234 fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
32235 fetchop_constraint_1_imask): New code iterator attributes.
32236 (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
32237 register_operand. Use fetchop_predicate_1.
32238 (atomic_fetch_<fetchop_name>si_hard,
32239 atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
32240 register_operand. Use fetchop_predicate_1, fetchop_constraint_1_llcs.
32241 (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
32242 and arith_reg_operand instead of register_operand. Use
32243 fetchop_predicate_1, fetchop_constraint_1_gusa.
32244 (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
32245 and arith_reg_operand instead of register_operand. Use
32246 fetchop_predicate_1, fetchop_constraint_1_tcb. Adjust asm sequence
32248 (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
32249 and arith_reg_operand instead of register_operand. Use
32250 fetchop_predicate_1, fetchop_constraint_1_imask. Adjust asm sequence
32252 (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
32253 register_operand. Use atomic_logical_operand_1.
32254 (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
32255 atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
32256 arith_reg_operand instead of register_operand.
32257 (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
32258 Use arith_reg_dest and arith_reg_operand instead of register_operand.
32259 Use logical_operand and rK08. Adjust asm sequence to allow R0 usage.
32260 (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
32261 register_operand. Use fetchop_predicate_1.
32262 (atomic_<fetchop_name>_fetchsi_hard,
32263 atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
32264 arith_reg_operand instead of register_operand. Use fetchop_predicate_1,
32265 fetchop_constraint_1_llcs.
32266 (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
32267 arith_reg_operand instead of register_operand. Use fetchop_predicate_1,
32268 fetchop_constraint_1_gusa.
32269 (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
32270 arith_reg_operand instead of register_operand. Use fetchop_predicate_1,
32271 fetchop_constraint_1_tcb. Adjust asm sequence to allow R0 usage.
32272 (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
32273 arith_reg_operand instead of register_operand. Use fetchop_predicate_1,
32274 fetchop_constraint_1_imask. Adjust asm sequence to allow R0 usage.
32275 (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
32276 register_operand. Use atomic_logical_operand_1.
32277 (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
32278 atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
32279 arith_reg_operand instead of register_operand.
32280 (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
32281 arith_reg_operand instead of register_operand. Use logical_operand
32282 and K08. Adjust asm sequence to allow R0 usage.
32283 (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
32284 arith_reg_operand instead of register_operand. Use logical_operand
32287 2015-01-28 Jakub Jelinek <jakub@redhat.com>
32290 * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
32291 Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
32292 (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
32293 only get_full_len HOST_WIDE_INTs from get_val () array rather than
32294 all bits in *val_wide.
32296 2015-01-28 Jan Hubicka <hubicka@ucw.cz>
32298 * varpool.c (tls_model_names): Fix names.
32299 (varpool_node::dump): Dump tls- prefix for tls models.
32301 2015-01-28 Thomas Schwinge <thomas@codesourcery.com>
32302 Bernd Schmidt <bernds@codesourcery.com>
32303 Nathan Sidwell <nathan@codesourcery.com>
32305 * config/nvptx/mkoffload.c: New file.
32306 * config/nvptx/t-nvptx: Add build rules for it.
32307 * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
32308 (extra_programs): Add mkoffload.
32309 * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
32311 (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
32313 2015-01-28 Yuri Rumyantsev <ysrumyan@gmail.com>
32315 PR middle-end/64809
32316 * cfgexpand.c (reorder_operands): Skip debug gimples.
32318 2015-01-28 Ilya Enkovich <ilya.enkovich@intel.com>
32320 PR tree-optimization/64277
32321 * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
32322 range info when possible to refine estimation.
32324 2015-01-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
32326 PR tree-optimization/64718
32327 * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
32328 be a 16bit unsigned integer when n->range is 16.
32329 (bswap_replace): Convert src to that type if necessary for all bswap
32330 sizes. Fix rotation right notation in nearby comment. Use bswap_type
32331 set in pass_optimize_bswap::execute ().
32333 2015-01-28 James Greenhalgh <james.greenhalgh@arm.com>
32335 * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
32336 * config/aarch64/aarch64-simd-builtins.def (abs): Split by
32337 integer and floating point variants.
32338 * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
32340 2015-01-28 Robert Suchanek <robert.suchanek@imgtec.com>
32342 * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
32343 for all vector modes.
32345 2015-01-28 Jakub Jelinek <jakub@redhat.com>
32348 * doc/sourcebuild.texi (comdat_group): Document.
32350 2015-01-28 Terry Guo <terry.guo@arm.com>
32352 * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
32354 2015-01-27 David Malcolm <dmalcolm@redhat.com>
32356 * toplev.c (print_version): Add param "show_global_state", and
32357 only print GGC and plugin information if it is true.
32358 (init_asm_output): Pass in "true" for the new param when calling
32360 (process_options): Likewise.
32361 (toplev::main): Likewise.
32362 * toplev.h (print_version): Add new param to decl.
32364 2015-01-27 Jan Hubicka <hubicka@ucw.cz>
32368 * tree.c (lookup_binfo_at_offset): New function.
32369 (get_binfo_at_offset): Use it.
32371 2015-01-27 Jan Hubicka <hubicka@ucw.cz>
32374 * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
32375 on vtable being vtable.
32377 2015-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
32379 * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
32380 * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
32381 -mhotpatch= option.
32382 * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
32383 -mno-hotpatch options. Change syntax of -mhotpatch= option.
32384 * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
32386 (s390_hotpatch_trampoline_halfwords_max): Renamed.
32387 (s390_hotpatch_hw_max): New name.
32388 (s390_hotpatch_trampoline_halfwords): Renamed.
32389 (s390_hotpatch_hw_before_label): New name.
32390 (get_hotpatch_attribute): Removed.
32391 (s390_hotpatch_hw_after_label): New name.
32392 (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
32394 (s390_attribute_table): Ditto.
32395 (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
32396 (s390_function_num_hotpatch_hw): New name.
32397 Remove special handling of inline functions and hotpatching.
32398 Return number of nops before and after the function label.
32399 (s390_can_inline_p): Removed.
32400 (s390_asm_output_function_label): Emit a configurable number of nops
32401 after the function label.
32402 (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
32403 (TARGET_CAN_INLINE_P) Removed.
32404 (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
32406 2015-01-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
32407 Jiong Wang <jiong.wang@arm.com>
32409 * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
32411 (cb<optab><mode>1): Likewise.
32412 * config/aarch64/iterators.md (bcond): New define_code_attr.
32414 2015-01-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32416 * config/s390/s390.c (s390_memory_move_cost): Increase costs for
32419 2015-01-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32421 * config/s390/s390.c (s390_register_move_cost): Increase costs for
32424 2015-01-27 Richard Biener <rguenther@suse.de>
32426 * tree-vrp.c (update_value_range): Intersect the range with
32427 old recorded SSA name range information.
32429 2015-01-27 Nick Clifton <nickc@redhat.com>
32431 * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
32432 BC, DE and HL registers directly, not via AX.
32433 When decrementing the stack pointer by a large amount, transfer SP
32434 into AX and perform the subtraction there.
32435 (rl78_expand_epilogue): Perform the inverse of the above
32438 2015-01-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32440 * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
32442 2015-01-27 Jakub Jelinek <jakub@redhat.com>
32443 Yury Gribov <y.gribov@samsung.com>
32446 * ubsan.c (ubsan_source_location): Refactor code.
32447 (ubsan_type_descriptor): Update type size. Refactor code.
32449 2015-01-27 Richard Biener <rguenther@suse.de>
32451 PR tree-optimization/56273
32452 PR tree-optimization/59124
32453 PR tree-optimization/64277
32454 * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
32455 from the first VRP pass.
32457 2015-01-27 Jakub Jelinek <jakub@redhat.com>
32460 * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
32461 handle the first argument in the same loop as all the other arguments.
32463 PR rtl-optimization/61058
32464 * jump.c (cleanup_barriers): Update basic block boundaries
32465 if BLOCK_FOR_INSN is non-NULL on PREV.
32467 2015-01-27 Ilya Enkovich <ilya.enkovich@intel.com>
32469 * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
32470 bounds narrowing, already instrumented calls and calls to
32471 not instrumentable functions.
32473 2015-01-27 Jakub Jelinek <jakub@redhat.com>
32475 PR tree-optimization/64807
32476 * wide-int.cc (wi::divmod_internal): Clear
32477 b_dividend[dividend_blocks_needed].
32479 2015-01-26 DJ Delorie <dj@redhat.com>
32481 * config/rl78/rl78.c (move_elim_pass): Don't optimize away
32482 volatile memory references.
32484 2015-01-26 Oleg Endo <olegendo@gcc.gnu.org>
32487 * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
32489 * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
32490 shifts if it already fits into K08.
32492 2015-01-26 Jakub Jelinek <jakub@redhat.com>
32495 * ipa-inline.c (inline_small_functions): Print "unknown" even
32496 if edge->call_stmt is non-NULL, but has builtins or unknown
32499 PR middle-end/64421
32500 * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
32501 with asterisk, skip the first character.
32503 2015-01-26 H.J. Lu <hongjiu.lu@intel.com>
32506 * config/i386/i386 (feature_priority): Revert the last P_POPCNT
32509 2015-01-26 Uros Bizjak <ubizjak@gmail.com>
32512 * config/i386/i386.md (*movdi_internal): Also check operand 0
32513 to determine TYPE_LEA operand.
32514 (*movsi_internal): Ditto.
32516 2015-01-26 Jakub Jelinek <jakub@redhat.com>
32518 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
32519 OPTION_MASK_QUAD_MEMORY_ATOMIC.
32521 2015-01-26 Renlin Li <renlin.li@arm.com>
32523 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
32525 * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
32528 2015-01-26 Richard Biener <rguenther@suse.de>
32530 PR middle-end/64764
32531 * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
32532 combining two BIT_AND_EXPR predicates.
32534 2015-01-26 H.J. Lu <hongjiu.lu@intel.com>
32537 * tree-ssa-structalias.c (new_var_info): Initialize ruid.
32539 2015-01-26 Terry Guo <terry.guo@arm.com>
32541 * config/arm/arm.c (arm_file_start): Update the assignment of
32542 Tag_ABI_HardFP_use.
32544 2015-01-25 James Greenhalgh <james.greenhalgh@arm.com>
32546 * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
32548 config/arm/arm.md: Include the new Cortex-A57 model.
32549 (generic_sched): Don't use generic_sched when tuning for
32552 2015-01-25 Allan Sandfeld Jensen <sandfeld@kde.org>
32553 Uros Bizjak <ubizjak@gmail.com>
32555 * config/i386/i386.c (get_builtin_code_for_version): Add
32556 support for BMI and BMI2 multiversion functions.
32558 2015-01-25 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
32560 * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
32561 (extract_bit_field): Likewise.
32562 (extract_low_bits): Likewise.
32563 (expand_mult): Likewise.
32564 (expand_mult_highpart_adjust): Likewise.
32566 2015-01-24 H.J. Lu <hongjiu.lu@intel.com>
32568 * config/i386/driver-i386.c (host_detect_local_cpu): Check new
32569 Silvermont, Haswell, Broadwell and Knights Landing model numbers.
32570 * config/i386/i386.c (processor_model): Add
32571 M_INTEL_COREI7_BROADWELL.
32572 (arch_names_table): Add "broadwell".
32574 2015-01-24 Oleg Endo <olegendo@gcc.gnu.org>
32583 * config/sh/sh-protos.h
32584 (sh_extending_set_of_reg::can_use_as_unextended_reg,
32585 sh_extending_set_of_reg::use_as_unextended_reg,
32586 sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
32587 sh_is_movrt_insn, sh_insn_operands_modified_between_p,
32588 sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
32589 sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
32590 (sh_treg_insns): New class.
32591 * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
32592 (scope_counter): New class.
32593 (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
32594 sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
32595 sh_extending_set_of_reg::can_use_as_unextended_reg,
32596 sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
32597 sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
32598 sh_split_treg_set_expr): New functions.
32599 (addsubcosts): Handle treg_set_expr.
32600 (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
32601 (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
32602 (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
32603 (sh_insn_operands_modified_between_p): Make non-static.
32604 * config/sh/predicates.md (zero_extend_movu_operand): Allow
32605 simple_mem_operand in addition to displacement_mem_operand.
32606 (zero_extend_operand): Don't allow zero_extend_movu_operand.
32607 (treg_set_expr, treg_set_expr_not_const01,
32608 arith_reg_or_treg_set_expr): New predicates.
32609 * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
32610 arith_or_int_operand instead of logical_operand. Convert to
32611 insn_and_split. Try to optimize constant operand in splitter.
32612 (tsthi_t, tstqi_t): Fold into *tst<mode>_t. Convert to insn_and_split.
32613 (*tstqi_t_zero): Delete.
32614 (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
32615 (tstsi_t_and_not): Delete.
32616 (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
32617 Convert to insn_and_split.
32618 (unnamed split, tstsi_t_zero_extract_xor,
32619 tstsi_t_zero_extract_subreg_xor_little,
32620 tstsi_t_zero_extract_subreg_xor_big): Delete.
32621 (*tstsi_t_shift_mask): New insn_and_split.
32622 (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
32623 to recombine with surrounding insns when splitting.
32624 (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
32625 (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
32626 (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
32627 *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
32628 (*cbranch_div0s: Delete.
32629 (*addc): Convert to insn_and_split. Use treg_set_expr as 3rd operand.
32630 Try to recombine with surrounding insns when splitting. Add operand
32632 (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
32633 (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
32634 *addc_r_r_msb, *addc_2r_msb): Delete.
32635 (*addc_2r_lsb): Rename to *addc_2r_t. Use treg_set_expr. Add operand
32637 (*addc_negreg_t): New insn_and_split.
32638 (*subc): Convert to insn_and_split. Use treg_set_expr as 3rd operand.
32639 Try to recombine with surrounding insns when splitting.
32640 Add operand order variants.
32641 (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
32642 insn_and_split patterns.
32643 (*rotcr): Use arith_reg_or_treg_set_expr. Try to recombine with
32644 surrounding insns when splitting.
32645 (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
32646 (*rotcl): Likewise. Add zero_extract variant.
32647 (*ashrsi2_31): New insn_and_split.
32648 (*negc): Convert to insn_and_split. Use treg_set_expr.
32649 (*zero_extend<mode>si2_disp_mem): Update comment.
32650 (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
32652 (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr. Try to recombine
32653 with surrounding insns when splitting.
32654 (any_treg_expr_to_reg): New insn_and_split.
32655 (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
32656 *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
32657 *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
32658 *zero_extract_2): New single bit zero extract patterns.
32659 (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
32660 (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
32661 *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
32662 *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
32664 (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
32665 register_operand for set source.
32667 2015-01-23 Jan Hubicka <hubicka@ucw.cz>
32669 * i386.opt (prefetch_sse): New targetsave.
32670 * i386.c (ix86_function_specific_save): Save prefetch_sse.
32671 (ix86_function_specific_restore): Restore prefetch_sse and initialize
32672 ix86_cost/ix86_tune_cost.
32674 2015-01-23 David Malcolm <dmalcolm@redhat.com>
32676 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
32677 Support the JIT by using 0 as the language type.
32679 2015-01-23 Vladimir Makarov <vmakarov@redhat.com>
32682 * lra-lives.c (make_hard_regno_born): Add parameter. Don't make
32683 REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
32684 (mark_regno_live, process_bb_lives): Pass new parameter value to
32685 make_hard_regno_born.
32687 2015-01-23 Jakub Jelinek <jakub@redhat.com>
32689 PR rtl-optimization/63637
32690 PR rtl-optimization/60663
32691 * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
32692 if elt->cost is MAX_COST for ASM_OPERANDS.
32693 (find_sets_in_insn): Fix up comment typo.
32694 (cse_insn): Don't set src_volatile for all non-volatile
32695 ASM_OPERANDS in PARALLELs, but just those with multiple outputs
32696 or with "memory" clobber. Set elt->cost to MAX_COST
32697 for ASM_OPERANDS in PARALLEL. Set src_elt->cost to MAX_COST
32698 if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
32700 2015-01-23 Uros Bizjak <ubizjak@gmail.com>
32702 * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
32705 2015-01-23 Uros Bizjak <ubizjak@gmail.com>
32707 * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
32708 libgcc/config/i386/elf-lib.h.
32710 2015-01-23 Jakub Jelinek <jakub@redhat.com>
32713 * gcc.c (print_configuration): Don't print a blank line at the end
32715 (run_attempt): ... but here unstead.
32717 PR middle-end/64734
32718 * omp-low.c (scan_sharing_clauses): Don't ignore
32719 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
32720 on target data/update constructs.
32722 2015-01-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
32725 * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
32726 (DEBUG_RELOAD): Removed define.
32727 (m32c_limit_reload_class): Enable traces with if DEBUG0.
32728 (m32c_function_arg): Added a type cast.
32729 (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
32730 * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
32731 * config/m32c/bitops.md (andqi3_16): Likewise.
32732 * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
32733 (push_a01_l): Likewise.
32735 2015-01-23 David Malcolm <dmalcolm@redhat.com>
32738 * main.c (main): Construct toplev instances with init_signals=true.
32739 * toplev.c (general_init): Add param "init_signals", and use it to
32740 conditionalize the calls to signal and host_hooks.extra_signals.
32741 (toplev::toplev): Add param "init_signals".
32742 (toplev::main): When invoking general_init, pass m_init_signals
32743 to control whether signal-handlers are installed.
32744 * toplev.h (toplev::toplev): Add param "init_signals".
32745 (toplev::m_init_signals): New field.
32747 2015-01-23 David Malcolm <dmalcolm@redhat.com>
32750 * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
32751 NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
32752 latter may be affected by the former (e.g. on i686).
32754 2015-01-23 Martin Liska <mliska@suse.cz>
32756 * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
32757 false positive during profiledbootstrap.
32759 2015-01-23 Tom de Vries <tom@codesourcery.com>
32762 * lto-opts.c (lto_write_options): Output non-explicit conservative
32764 * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
32765 (append_compiler_options): Pass -fopenacc through.
32767 2015-01-23 Tom de Vries <tom@codesourcery.com>
32770 * lto-opts.c (lto_write_options): Output non-explicit conservative
32772 * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
32773 (append_compiler_options): Pass -fopenmp through.
32775 2015-01-23 Jakub Jelinek <jakub@redhat.com>
32778 * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
32781 * diagnostic-core.h (internal_error_no_backtrace): New prototype.
32782 * diagnostic.def (DK_ICE_NOBT): New kind.
32783 * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
32784 like DK_ICE, but never print backtrace.
32785 (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
32786 (internal_error_no_backtrace): New function.
32787 * gcc.c (execute): Use internal_error_no_backtrace instead of
32790 2015-01-22 Jeff Law <law@redhat.com>
32793 * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
32794 improve code density for small immediate to memory case.
32795 (insv): Better handle bitfield assignments when the field is
32796 being set to all ones.
32797 * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
32800 2015-01-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32801 Jakub Jelinek <jakub@redhat.com>
32803 PR middle-end/64729
32804 * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
32805 for !TARGET_LIBC_PROVIDES_SSP version and
32806 -fstack-protector-{all,strong,explicit} otherwise.
32807 * config/freebsd.h (LINK_SSP_SPEC): Handle
32808 -fstack-protector-{strong,explicit}.
32810 2015-01-22 Jan Hubicka <hubicka@ucw.cz>
32811 H.J. Lu <hongjiu.lu@intel.com>
32814 * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
32817 2015-01-22 Wei Mi <wmi@google.com>
32819 PR rtl-optimization/64557
32820 * dse.c (record_store): Call get_addr for mem_addr.
32821 (check_mem_read_rtx): Likewise.
32823 2015-01-22 Eric Botcazou <ebotcazou@adacore.com>
32825 * fold-const.c (const_binop): Add early return for non-tcc_binary.
32827 2015-01-22 Chen Gang <gang.chen.5i5j@gmail.com>
32829 * toplev.c (init_local_tick): Process the failure when read
32830 fails for random_seed.
32832 * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
32833 'pretty_name' to avoid memory overflow.
32835 2015-01-22 Richard Biener <rguenther@suse.de>
32837 PR middle-end/64728
32838 * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
32839 abnormal coalescing on undefined SSA names.
32841 2015-22-01 Uros Bizjak <ubizjak@gmail.com>
32845 * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
32847 (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
32849 2015-01-22 Trevor Saunders <tsaunders@mozilla.com>
32851 PR middle-end/63325
32852 * fold-const.c (fold_checksum_tree): Don't include value of
32853 expr->decl_with_vis.symtab_node in the checksum.
32855 2015-01-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32857 * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
32859 2015-01-22 Max Ostapenko <m.ostapenko@partner.samsung.com>
32862 * gcc.c (insert_comments): New function.
32863 (try_generate_repro): Call it.
32864 (append_text): Removed.
32866 2015-01-22 Richard Biener <rguenther@suse.de>
32868 * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
32869 with IL incompatible options. Properly honor user optimize
32872 2015-01-21 Segher Boessenkool <segher@kernel.crashing.org>
32874 PR rtl-optimization/64682
32875 * combine.c (distribute_notes): When moving a death note for
32876 a register that is set in the new I2, make sure to put it
32877 before that new I2.
32879 2015-01-21 David Edelsohn <dje.gcc@gmail.com>
32881 * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
32882 not TARGET_DEFAULT.
32884 2015-01-21 Jakub Jelinek <jakub@redhat.com>
32887 * simplify-rtx.c (simplify_relational_operation_1): Don't try to
32888 optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
32889 into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
32892 * doc/invoke.texi (-fsanitize=vptr): Document.
32894 PR rtl-optimization/62078
32895 * dse.c: Include cfgcleanup.h.
32896 (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
32897 anything call purge_all_dead_edges and cleanup_cfg at the end
32900 2015-01-21 Jan Hubicka <hubicka@ucw.cz>
32902 * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
32905 2015-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
32907 * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
32910 2015-01-21 David Sherwood <david.sherwood@arm.com>
32911 Tejas Belagod <Tejas.Belagod@arm.com>
32913 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
32914 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
32915 * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
32918 2015-01-21 David Sherwood <david.sherwood@arm.com>
32919 Tejas Belagod <Tejas.Belagod@arm.com>
32921 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
32922 (aarch64_reverse_mask): New decls.
32923 * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
32924 (insn_count): New mode_attr.
32925 * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
32926 (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
32927 (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
32928 (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
32929 (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
32930 (aarch64_simd_st4): New patterns.
32931 * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
32932 (aarch64_reverse_mask): New functions.
32934 2015-01-21 Alan Hayward <alan.hayward@arm.com>
32936 * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
32938 * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
32939 addressing modes for BE.
32940 (aarch64_print_operand): Add 'R' specifier.
32941 (aarch64_simd_disambiguate_copy): Delete.
32942 (aarch64_simd_emit_reg_reg_move): New function.
32943 * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
32944 in define_splits for structural moves.
32945 (mov<mode>): Use less restrictive predicates.
32946 (*aarch64_mov<mode>): Simplify and only allow for LE.
32947 (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
32949 2015-01-21 Alan Hayward <alan.hayward@arm.com>
32951 * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
32953 2015-01-21 Richard Henderson <rth@redhat.com>
32956 * ccmp.c (used_in_cond_stmt_p): Remove.
32957 (expand_ccmp_expr): Don't use it.
32959 2015-01-21 Nick Clifton <nickc@redhat.com>
32961 * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
32964 2015-01-21 Richard Biener <rguenther@suse.de>
32966 PR middle-end/64313
32967 * tree-core.h (builtin_info, builtin_info_type): Turn from
32968 an object with two arrays into an array of an object with
32969 decl and two flags, implicit_p and declared_p.
32970 * tree.h (builtin_decl_explicit, builtin_decl_implicit,
32971 set_builtin_decl, set_builtin_decl_implicit_p,
32972 builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
32973 (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
32974 * builtins.c (builtin_info): Adjust.
32975 * gimplify.c (gimplify_addr_expr): References to builtins
32976 that have been declared by the user makes them eligible for
32977 use by the compiler. Call set_builtin_decl_implicit_p on them.
32979 2015-01-20 Jeff Law <law@redhat.com>
32982 * config/m68k/m68k.md (Comparison expanders and patterns): Do not
32983 allow pc-relative addresses in operand predicates or constraints.
32985 2015-01-21 Bin Cheng <bin.cheng@arm.com>
32987 * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
32988 neon on aarch32 processors for stringops.
32990 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
32993 * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
32995 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
32998 * ipa-inline.c: Include lto-streamer.h
32999 (report_inline_failed_reason): Output source file differences and
33000 flags on optimization/target node mismatch.
33001 (can_inline_edge_p): Consider caller to be the outer inline function;
33002 be less restrictive about matching opimize and optimize_size attributes.
33003 (inline_account_function_p): Break out from ...
33004 (inline_small_functions): ... here.
33005 * ipa-inline-transform.c (clone_inlined_nodes): Use
33006 inline_account_function_p.
33007 (inline_call): Use optimize attribution; use inline_account_function_p.
33008 (inline_transform): Use opt_for_fn.
33009 * ipa-inline.h (inline_account_function_p): Declare.
33011 2015-01-20 Jakub Jelinek <jakub@redhat.com>
33014 * dwarf2out.c (decl_piece_node): Don't put bitsize into
33015 mode if bitsize <= 0.
33016 (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
33017 dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
33018 sizes and positions.
33020 2015-01-20 Chung-Lin Tang <cltang@codesourcery.com>
33022 * config/nios2/nios2.c (nios2_asm_file_end): Implement
33023 TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
33025 (TARGET_ASM_FILE_END): Define.
33027 2015-01-20 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
33029 * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
33030 (struct tune_params): Use the enum.
33031 * arm.c (arm_*_tune): Update.
33032 (arm_option_override): Update.
33034 2015-01-20 Richard Biener <rguenther@suse.de>
33037 * ipa-reference.c (add_static_var): Inline ...
33038 (analyze_function): ... here after splitting out from ...
33039 (is_proper_for_analysis): ... this.
33041 2015-01-20 Matthew Wahab <matthew.wahab@arm.com>
33044 * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
33045 * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
33046 replace the conditional with it's true branch.
33047 * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
33048 (arm_lra_p): Remove.
33050 2015-01-20 Eric Botcazou <ebotcazou@adacore.com>
33052 * config/visium/visium.h (LIB_SPEC): Adjust in default case.
33054 2015-01-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
33056 * config/tilegx/mul-tables.c: Move symtab.h include after
33057 coretypes.h include.
33058 * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
33059 vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
33060 flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
33061 wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
33062 explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
33064 2015-01-20 Igor Zamyatin <igor.zamyatin@intel.com>
33068 2015-01-19 Igor Zamyatin <igor.zamyatin@intel.com>
33070 PR rtl-optimization/64081
33071 * loop-iv.c (def_pred_latch_p): New function.
33072 (latch_dominating_def): Allow specific cases with non-single
33074 (iv_get_reaching_def): Likewise.
33075 (check_complex_exit_p): New function.
33076 (check_simple_exit): Use check_complex_exit_p to allow certain cases
33077 with exits not executing on any iteration.
33079 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
33082 * i386.c (ix86_option_override_internal): Use ix86_tune_cost
33083 to set branch cost.
33085 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
33088 * i386.c (gate): Check flag_expensive_optimizations and
33090 (ix86_option_override_internal): Drop optimize_size condition
33091 on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
33092 MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
33093 MASK_PREFER_AVX128.
33094 (ix86_avx256_split_vector_move_misalign,
33095 ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
33096 * sse.md (all uses of TARGET_PREFER_AVX128): Add
33097 optimize_insn_for_speed_p check.
33099 2015-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
33101 * config/mips/mips.h (FP_ASM_SPEC): New define.
33102 (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
33105 2015-01-19 Oleg Endo <olegendo@gcc.gnu.org>
33108 * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
33109 nullptr for insn when reaching the first insn.
33110 * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
33111 (sh_insn_operands_modified_between_p): Add nullptr check.
33112 (sh_find_extending_set_of_reg): Fix log message. Don't accept
33113 sign extending mem load if the insn contains any UNSPEC or
33116 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
33118 * params.def (inline-unit-growth): Drop to 15%.
33119 * invoke.texi (inline-unit-growth): Document change.
33121 2015-01-19 Martin Liska <mliska@suse.cz>
33124 * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
33125 function for second argument of OBJ_TYPE_REF.
33127 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
33130 * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
33131 whether function is an alias.
33133 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
33135 * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
33138 2015-01-19 Vladimir Makarov <vmakarov@redhat.com>
33140 PR rtl-optimization/64671
33141 * lra-remat.c (operand_to_remat): Don't consider jump and call
33144 2015-01-19 David Edelsohn <dje.gcc@gmail.com>
33147 * config/rs6000/default64.h: Include rs6000-cpus.def.
33148 (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
33149 (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
33150 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
33152 * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
33154 * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
33155 pseudo-op to specify assembler dialect.
33157 2015-01-19 Martin Liska <mliska@suse.cz>
33160 * ipa-icf.c (sem_item_optimizer::filter_removed_items):
33161 Handle safe potentially removed nodes during filtering.
33163 2015-01-19 Martin Liska <mliska@suse.cz>
33165 * doc/extend.texi (no_icf): Add new attribute description.
33166 * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
33167 where the pass attempts to merge a function with no_icf attribute.
33169 2015-01-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
33172 * doc/md.texi (ARM Options): Document register constraints.
33174 2015-01-19 Jiong Wang <jiong.wang@arm.com>
33175 Andrew Pinski <apinski@cavium.com>
33178 * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
33179 (ashl<mode>3): Don't expand if operands[2] is not constant.
33181 2015-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33184 * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
33185 Match xor-and-xor RTL pattern.
33187 2015-01-19 Igor Zamyatin <igor.zamyatin@intel.com>
33189 PR rtl-optimization/64081
33190 * loop-iv.c (def_pred_latch_p): New function.
33191 (latch_dominating_def): Allow specific cases with non-single
33193 (iv_get_reaching_def): Likewise.
33194 (check_complex_exit_p): New function.
33195 (check_simple_exit): Use check_complex_exit_p to allow certain cases
33196 with exits not executing on any iteration.
33198 2015-01-19 Jakub Jelinek <jakub@redhat.com>
33200 * common.opt (fgraphite): Fix a typo.
33202 2015-01-19 Felix Yang <felix.yang@huawei.com>
33204 * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
33206 * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
33207 uminp, smax_nanp, smin_nanp): New builtins.
33208 * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
33209 vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
33210 vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
33211 vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
33212 vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
33213 vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
33214 vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
33215 vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
33216 vpminnms_f32): Rewrite using builtin functions.
33218 2015-01-19 Thomas Schwinge <thomas@codesourcery.com>
33221 * omp-low.c (offload_symbol_decl): Remove variable.
33222 (get_offload_symbol_decl): Remove function.
33223 (expand_omp_target): For BUILT_IN_GOMP_TARGET,
33224 BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
33225 instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
33226 BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
33227 BUILT_IN_GOACC_UPDATE don't pass it at all.
33229 2015-01-19 Ilya Enkovich <ilya.enkovich@intel.com>
33231 * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
33234 2015-01-19 Ilya Enkovich <ilya.enkovich@intel.com>
33236 * ipa-chkp.c (chkp_produce_thunks): Add early param
33237 to split thunks production into two passes. Keep
33238 'always_inline' function bodies after the first pass.
33239 (pass_data_ipa_chkp_early_produce_thunks): New.
33240 (pass_ipa_chkp_early_produce_thunks): New.
33241 (pass_ipa_chkp_produce_thunks::execute): Adjust to new
33242 chkp_produce_thunks signature.
33243 (make_pass_ipa_chkp_early_produce_thunks): New.
33244 * passes.def (pass_ipa_chkp_early_produce_thunks): New.
33245 (pass_ipa_chkp_produce_thunks): Move after local optimizations.
33246 * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
33248 2015-01-18 Jan Hubicka <hubicka@ucw.cz>
33250 * cgraph.c (cgraph_node::dump): Dump profile flags.
33252 2015-01-18 Oleg Endo <olegendo@gcc.gnu.org>
33255 * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
33256 reg appear first in the parallel.
33258 2015-01-18 Jan Hubicka <hubicka@ucw.cz>
33260 * ipa-reference.c (set_reference_optimization_summary,
33261 ipa_reference_get_not_written_global): Do nothing if ipa-reference is
33263 (ignore_module_statics): New static var.
33264 (propagate_bits): If ipa-reference is disabled, do not look into local
33266 (analyze_function): Disable analysis when ipa_reference is disabled.
33267 (generate_summary): Do not dump when reference is disabled;
33268 collect vars accessed from functions with ipa-reference disabled.
33269 (get_read_write_all_from_node): When ipa-reference is disabled, use the
33271 (gate): Enable for LTO.
33272 (ignore_edge_p): New function.
33273 (propagate): Skip functions w/o ipa-reference analysis.
33274 * optc-save-gen.awk: Handle optimize_debug correctly.
33275 * opth-gen.awk: Likewise.
33276 * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
33277 fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
33278 fira-share-save-slots, fira-share-spill-slots,
33279 fmodulo-sched-allow-regmoves, fpartial-inlining,
33280 sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
33281 ftracer, ftree-parallelize-loops, fassociative-math,
33282 freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
33284 (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
33285 ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
33287 * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
33290 2015-01-18 Jan Hubicka <hubicka@ucw.cz>
33293 * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
33295 * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
33297 2015-01-18 Sandra Loosemore <sandra@codesourcery.com>
33299 * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
33300 Remove duplicate option listings.
33302 2015-01-18 Felix Yang <felix.yang@huawei.com>
33304 * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
33305 (autofdo_source_profile::get_callsite_total_count,
33306 function_instance::get_function_instance_by_decl,
33307 string_table::get_index, string_table::get_index_by_decl,
33308 afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
33309 Fix comment typos. Reformatting and minor code rearrangement.
33311 2015-01-17 Segher Boessenkool <segher@kernel.crashing.org>
33313 * config/rs6000/rs6000.md (probe_stack): Delete.
33314 (probe_stack_address): New.
33316 2015-01-17 Segher Boessenkool <segher@kernel.crashing.org>
33318 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
33319 to test for 32-bit ABIs, not !TARGET_POWERPC64.
33321 2015-01-17 Segher Boessenkool <segher@kernel.crashing.org>
33323 * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
33324 (rs6000_function_value): Use it. Handle SCmode and TCmode as well,
33325 for TARGET_32BIT && TARGET_POWERPC64. Fix another BITS_PER_WORD
33327 (rs6000_libcall_value): Use the new function.
33329 2015-01-17 Sandra Loosemore <sandra@codesourcery.com>
33331 * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
33333 2015-01-17 Eric Botcazou <ebotcazou@adacore.com>
33335 * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
33336 implement a more precise life analysis for it during backward scan.
33338 2015-01-17 Jan Kratochvil <jan.kratochvil@redhat.com>
33340 * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
33342 2015-01-17 Bernd Schmidt <bernds@codesourcery.com>
33344 PR rtl-optimization/52773
33345 * calls.c (emit_library_call_value): When pushing arguments use
33346 stack_pointer_rtx rather than virtual_outgoing_args_rtx in
33347 CALL_INSN_FUNCTION_USAGE. Only emit one of use of the magic
33348 stack pointer reference into CALL_INSN_FUNCTION_USAGE.
33350 2015-01-17 Jeff Law <law@redhat.com>
33352 PR rtl-optimization/32790
33353 * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
33354 not ZERO_EXTEND in SET_DESTs.
33356 2015-01-17 Alan Modra <amodra@gmail.com>
33358 * cprop.c (do_local_cprop): Revert last change.
33360 2015-01-16 DJ Delorie <dj@redhat.com>
33361 Nick Clifton <nickc@redhat.com>
33363 * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
33364 (addhi3_real): Likewise. Fix [HL+0] syntax.
33365 (subqi3_real): Likewise.
33366 (subhi3_real): Likewise.
33367 (cbranchqi4_real): Likewise. Allow saddr,#imm.
33368 (cbranchhi4_real): Likewise.
33369 (cbranchhi4_real_inverted): Likewise.
33370 (cbranchsi4_real_lt): Likewise.
33371 (cbranchsi4_real_ge): Likewise.
33372 (cbranchsi4_real_ge): Likewise.
33373 * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
33374 (sub<mode>3_virt): Likewise.
33375 (cbranchqi4_virt): Likewise.
33376 (cbranchhi4_virt): Likewise.
33377 * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
33378 always use '[reg+imm]' even when imm is zero.
33379 * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
33380 (rl78_general_operand): New.
33381 (rl78_nonimmediate_operand): New.
33382 (rl78_nonfar_operand): Use them.
33383 (rl78_nonfar_nonimm_operand): Likewise.
33384 (rl78_stack_based_mem): Fix.
33385 * config/rl78/constraints.md (Ibqi): New.
33390 * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
33391 (iorqi3): Likewise.
33392 (xorqi3): Likewise.
33393 * config/rl78/rl78-protos.h (rl78_sfr_p): New.
33395 * config/rl78/constrains (Qs8): New constraint.
33396 * config/rl78/rl78.c (rl78_flags_already_set): New function.
33397 * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
33398 * config/rl78/rl78-real.md (update_Z): New attribute.
33399 Update patterns to set it.
33400 (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
33401 shorter compare and branch sequence can be used.
33402 (cbranchhi4_real): Likewise.
33403 (cbranchhi4_real_inverted): Likewise.
33405 * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
33406 * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
33408 * config/rl78/rl78.c (rl78_get_name_encoding): New.
33409 (rl78_option_override): Allow -mes0 only if C.
33410 (characterize_address): Support subregs of symbol_refs.
33411 (rl78_addr_space_address_mode): Move. Add __near.
33412 (rl78_far_p): Likewise.
33413 (rl78_addr_space_pointer_mode): Likewise.
33414 (rl78_as_legitimate_address): Likewise.
33415 (rl78_addr_space_subset_p): Likewise.
33416 (rl78_addr_space_convert): Likewise.
33417 (rl78_print_operand_1): Support 16-bit addressing of 32-bit
33418 symbols with -mes0.
33419 (transcode_memory_rtx): Don't copy ES if -mes0. Allow symbol[BC]
33421 (rl78_alloc_physical_registers_op1): Change logic to prefer
33422 symbol[BC] addressing.
33423 (frodata_section): New.
33424 (rl78_asm_init_sections): Initialize it.
33425 (rl78_select_section): Put __far readonly symbols in .frodata.
33426 (rl78_make_type_far): New.
33427 (rl78_insert_attributes): Force all readonly symbols to be
33429 (rl78_asm_out_integer): New.
33430 * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
33431 * config/rl78/rl78.opt (-mes0): New.
33433 * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
33434 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
33435 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
33436 * config/rl78/rl78-protos.h (rl78_output_labelref): New.
33437 (rl78_saddr_p): New.
33438 (rl78_output_aligned_common): New.
33439 * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
33440 (rl78_handle_saddr_attribute): New.
33441 (rl78_handle_naked_attribute): New.
33442 (rl78_attribute_table): Add saddr.
33443 (rl78_print_operand_1): Don't print '!' on saddr operands.
33444 (rl78_print_operand_1): Strip encodings.
33446 (rl78_strip_name_encoding): New.
33447 (rl78_attrlist_to_encoding): New.
33448 (rl78_encode_section_info): New.
33449 (rl78_asm_init_sections): New.
33450 (rl78_select_section): New.
33451 (rl78_output_labelref): New.
33452 (rl78_output_aligned_common): New.
33453 (rl78_asm_out_integer): New.
33454 (rl78_asm_ctor_dtor): New.
33455 (rl78_asm_constructor): New.
33456 (rl78_asm_destructor): New.
33458 * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
33459 * config/rl78/rl78.c (rl78_expand_epilogue): Update.
33460 (transcode_memory_rtx): Update.
33461 (rl78_expand_epilogue): Use A_REG instead of 0.
33463 2015-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
33465 * config/arm/arm-protos.h (struct tune_params): New field
33466 sched_autopref_queue_depth.
33467 * config/arm/arm.c (sched-int.h): Include header.
33468 (arm_first_cycle_multipass_dfa_lookahead_guard,)
33469 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
33470 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
33471 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
33472 (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
33473 (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
33474 (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
33475 (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
33476 Specify sched_autopref_queue_depth value. Enabled for A15 and A57.
33477 * config/arm/t-arm (arm.o): Update.
33478 * haifa-sched.c (update_insn_after_change): Update.
33479 (rank_for_schedule): Use auto-prefetcher model, if requested.
33480 (autopref_multipass_init): New static function.
33481 (autopref_rank_for_schedule): New rank_for_schedule heuristic.
33482 (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
33483 variable for debug dumps.
33484 (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
33485 (autopref_multipass_dfa_lookahead_guard): New global function that
33486 implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
33487 (init_h_i_d): Update.
33488 * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
33489 * sched-int.h (enum autopref_multipass_data_status): New const enum.
33490 (autopref_multipass_data_): Structure for auto-prefetcher data.
33491 (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
33492 (struct _haifa_insn_data:autopref_multipass_data): New field.
33493 (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
33494 (autopref_multipass_dfa_lookahead_guard): Declare.
33496 2015-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
33498 * rtlanal.c (get_base_term): Handle SCRATCH.
33500 2015-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
33502 * config/aarch64/aarch64.c
33503 (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
33504 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
33506 (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
33507 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
33509 2015-01-17 Alan Modra <amodra@gmail.com>
33511 * cprop.c (do_local_cprop): Disallow replacement of fixed
33514 2015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33517 * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
33520 2015-01-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
33522 * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
33523 * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
33525 2015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33527 * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
33528 * config/arm/thumb1.md: ... Here.
33530 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
33532 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
33533 TImode for TARGET_32BIT.
33535 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
33537 * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
33538 TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
33540 (rs6000_abi_word_mode): New function.
33542 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
33544 * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
33545 instead of UNITS_PER_WORD to describe the size of stack slots.
33547 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
33549 * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
33550 as rs6000_promote_function_mode. Move comment to there.
33551 (rs6000_promote_function_mode): New function.
33553 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
33555 * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
33556 -mpowerpc64 is active.
33558 2015-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
33560 PR middle-end/64353
33561 * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
33564 2015-01-16 James Greenhalgh <james.greenhalgh@arm.com>
33566 * config/arm/cortex-a57.md: Remove duplicate of file accidentally
33567 introduced in revision 219724.
33569 2015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33570 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
33573 * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
33574 destination is not a GP reg.
33575 (*movdi_aarch64): Likewise.
33577 2015-01-16 David Edelsohn <dje.gcc@gmail.com>
33580 * config/rs6000/default64.h: Revert ISA change.
33582 2015-01-16 Richard Biener <rguenther@suse.de>
33584 PR middle-end/64614
33585 * tree-ssa-uninit.c: Include tree-cfg.h.
33586 (MAX_SWITCH_CASES): New define.
33587 (convert_control_dep_chain_into_preds): Handle switch statements.
33588 (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
33589 (normalize_one_pred_1): Do not split bit-manipulations.
33592 2015-01-16 Richard Biener <rguenther@suse.de>
33594 PR tree-optimization/64568
33595 * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
33596 complex load rewriting for TARGET_MEM_REFs.
33598 2015-01-16 Uros Bizjak <ubizjak@gmail.com>
33600 * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
33602 2015-01-16 Matthew Wahab <matthew.wahab@arm.com>
33605 * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
33607 * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
33608 (aarch64_lra_p): Remove.
33610 2015-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
33613 * ipa-chkp.h (chkp_instrumentable_p): New.
33614 * ipa-chkp.c: Include tree-inline.h.
33615 (chkp_instrumentable_p): New.
33616 (chkp_maybe_create_clone): Use chkp_instrumentable_p.
33617 Fix processing of not instrumentable functions.
33618 (chkp_versioning): Use chkp_instrumentable_p. Warn about
33619 not instrumentable functions.
33620 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
33621 chkp_instrumentable_p.
33622 * tree-inline.h (copy_forbidden): New.
33623 * tree-inline.c (copy_forbidden): Not static anymore.
33625 2015-01-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33627 * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
33630 2015-01-16 Robert Suchanek <robert.suchanek@imgtec.com>
33632 * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
33633 type OP_OUT to OP_INOUT.
33635 2015-01-16 Robert Suchanek <robert.suchanek@imgtec.com>
33637 * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
33638 (high x) y) to y if x and y have the same base.
33640 2015-01-16 James Greenhalgh <james.greenhalgh@arm.com>
33642 * config/arm/cortex-a57.md: New.
33643 * config/aarch64/aarch64.md: Include it.
33644 * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
33645 * config/aarch64/aarch64-tune.md: Regenerate.
33647 2015-01-16 Zhenqiang Chen <zhenqiang.chen@arm.com>
33650 * ccmp.c (expand_ccmp_next): New function.
33651 (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
33652 and compare insn sequence.
33653 * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
33654 aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
33655 (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
33656 * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
33657 (*ccmp_ior): Changed to ccmp_ior<mode>.
33658 (cmp<mode>): New pattern.
33659 * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
33661 * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
33663 2015-01-16 Ilya Tocar <ilya.tocar@intel.com>
33665 * config/i386/avx2intrin.h (_mm256_bslli_epi128,
33666 _mm256_bsrli_epi128): New.
33667 * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
33669 2015-01-15 Jiong Wang <jiong.wang@arm.com>
33671 * expmed.c (store_bit_field_using_insv): Improve warning message.
33672 Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
33674 2015-01-15 Jiong Wang <jiong.wang@arm.com>
33676 PR rtl-optimization/64011
33677 * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
33678 there is partial overflow.
33680 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
33682 * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
33684 (nds32_expand_epilogue_v3pop): Likewise.
33685 * config/nds32/nds32.md (sibcall): Define this for sibling call
33687 (sibcall_register): Likewise.
33688 (sibcall_immediate): Likewise.
33689 (sibcall_value): Likewise.
33690 (sibcall_value_register): Likewise.
33691 (sibcall_value_immediate): Likewise.
33692 (sibcall_epilogue): Likewise.
33693 (epilogue): Pass false to indicate this is not a sibcall epilogue.
33694 * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
33695 (nds32_expand_epilogue_v3pop): Likewise.
33697 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
33699 * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
33700 * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
33701 (return_internal): New.
33702 (return): Define this named pattern.
33703 (simple_return): Define this named pattern.
33704 * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
33705 pattern instead of unspec_volatile_func_return.
33706 (nds32_expand_epilogue_v3pop): Likewise.
33707 (nds32_can_use_return_insn): New function.
33709 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
33711 * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
33712 * config/nds32/nds32.md (pop25return): New.
33713 * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
33714 pop25return pattern.
33716 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
33718 * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
33719 -mforbid-fp-as-gp, and -mex9 options.
33721 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
33723 * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
33724 remove -mgp-direct option.
33726 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
33728 * doc/invoke.texi (--param early-inlining-insns): Update default value.
33729 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
33731 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
33733 * ipa-inline.c (inline_small_functions): Work around hints
33736 2015-01-15 Sandra Loosemore <sandra@codesourcery.com>
33739 * doc/invoke.texi (Option Summary): Document new Nios II
33741 (Nios II Options): Likewise.
33742 * config/nios2/nios2.opt: Add -mgpopt= option support.
33743 Modify existing -mgpopt and -mno-gpopt options to be aliases.
33744 * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
33745 * config/nios2/nios2.c (nios2_option_override): Adjust
33746 -mgpopt defaulting.
33747 (nios2_in_small_data_p): Return true for explicit small data
33748 sections even with -G0.
33749 (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
33752 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
33755 * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
33757 (inline_call): Fix removal of aliases.
33759 2015-01-15 Jakub Jelinek <jakub@redhat.com>
33761 * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
33762 include SANITIZE_VPTR in SANITIZE_UNDEFINED.
33763 * opts.c (common_handle_option): Add -fsanitize=vptr.
33764 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
33765 BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
33766 * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
33767 UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
33768 (ubsan_expand_vptr_ifn): New prototype.
33769 * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
33770 expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
33771 expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
33772 expand_LOOP_VECTORIZED): Make argument nameless, remove
33774 (expand_UBSAN_VPTR): New function.
33775 * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
33777 (UBSAN_VPTR): New internal function.
33778 * sanopt.c (tree_map_traits): Renamed to ...
33779 (sanopt_tree_map_traits): ... this.
33780 (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
33781 (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
33782 to sanopt_tree_map_traits renaming. Add vptr_check_map field.
33783 (maybe_optimize_ubsan_vptr_ifn): New function.
33784 (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
33785 (pass_sanopt::execute): Likewise. Call sanopt_optimize even for
33787 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
33788 internal calls like pure functions for aliasing, even when they
33789 have other side-effects that prevent making them ECF_PURE.
33790 * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
33791 (ubsan_expand_vptr_ifn): New function.
33793 2015-01-15 Vladimir Makarov <vmakarov@redhat.com>
33795 PR rtl-optimization/64110
33796 * stmt.c (parse_output_constraint): Process '^' and '$'.
33797 (parse_input_constraint): Ditto.
33798 * lra-constraints.c (process_alt_operands): Process the new
33800 * ira-costs.c (record_reg_classes): Process the new constraint
33802 * genoutput.c (indep_constraints): Add '^' and '$'.
33803 * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
33804 * doc/md.texi: Add description of the new constraints.
33806 2015-01-15 Thomas Schwinge <thomas@codesourcery.com>
33807 Bernd Schmidt <bernds@codesourcery.com>
33808 Cesar Philippidis <cesar@codesourcery.com>
33809 James Norris <jnorris@codesourcery.com>
33810 Tom de Vries <tom@codesourcery.com>
33811 Ilmir Usmanov <i.usmanov@samsung.com>
33812 Dmitry Bocharnikov <dmitry.b@samsung.com>
33813 Evgeny Gavrin <e.gavrin@samsung.com>
33814 Jakub Jelinek <jakub@redhat.com>
33816 * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
33817 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
33818 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
33819 New function types.
33820 * builtins.c: Include "gomp-constants.h".
33821 (expand_builtin_acc_on_device): New function.
33822 (expand_builtin, is_inexpensive_builtin): Handle
33823 BUILT_IN_ACC_ON_DEVICE.
33824 * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
33826 * cgraph.c (cgraph_node::create): Consider flag_openacc next to
33828 * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
33829 <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
33830 i386/intelmic-offload.h.
33831 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
33832 to libgomp and its dependencies.
33833 * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
33834 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
33835 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
33836 * config/ia64/hpux.h (LIB_SPEC): Likewise.
33837 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
33838 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
33839 * doc/generic.texi: Update for OpenACC changes.
33840 * doc/gimple.texi: Likewise.
33841 * doc/invoke.texi: Likewise.
33842 * doc/sourcebuild.texi: Likewise.
33843 * gimple-pretty-print.c (dump_gimple_omp_for): Handle
33844 GF_OMP_FOR_KIND_OACC_LOOP.
33845 (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
33846 GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
33847 GF_OMP_TARGET_KIND_OACC_UPDATE,
33848 GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
33850 * gimple.c: Update comments for OpenACC changes.
33851 * gimple.def: Likewise.
33852 * gimple.h: Likewise.
33853 (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
33854 GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
33855 GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
33856 GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
33857 (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
33859 (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
33860 * gimplify.c: Include "gomp-constants.h".
33861 Update comments for OpenACC changes.
33862 (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
33863 OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
33864 OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
33865 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
33866 OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
33867 OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
33868 OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
33869 OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
33870 OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
33872 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
33873 GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
33874 OMP_CLAUSE_SET_MAP_KIND.
33875 (gimplify_oacc_cache): New function.
33876 (gimplify_omp_for): Handle OACC_LOOP.
33877 (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
33879 (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
33880 OACC_EXIT_DATA, OACC_UPDATE.
33881 (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
33882 OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
33883 OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
33884 (gimplify_body): Consider flag_openacc next to flag_openmp.
33885 * lto-streamer-out.c: Include "gomp-constants.h".
33886 * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
33887 (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
33888 (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
33889 (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
33890 (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
33891 (BUILT_IN_ACC_ON_DEVICE): New builtins.
33892 * omp-low.c: Include "gomp-constants.h".
33893 Update comments for OpenACC changes.
33894 (struct omp_context): Add reduction_map, gwv_below, gwv_this
33896 (extract_omp_for_data, use_pointer_for_field, install_var_field)
33897 (new_omp_context, delete_omp_context, scan_sharing_clauses)
33898 (create_omp_child_function, scan_omp_for, scan_omp_target)
33899 (check_omp_nesting_restrictions, lower_reduction_clauses)
33900 (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
33901 Update for OpenACC changes.
33902 (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
33903 OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
33904 OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
33905 OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
33906 OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
33907 OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ. Use GOMP_MAP_* instead of
33909 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
33910 Handle GF_OMP_FOR_KIND_OACC_LOOP.
33911 (expand_omp_target, lower_omp_target): Handle
33912 GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
33913 GF_OMP_TARGET_KIND_OACC_UPDATE,
33914 GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
33915 GF_OMP_TARGET_KIND_OACC_DATA.
33916 (pass_expand_omp::execute, execute_lower_omp)
33917 (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
33919 (offload_symbol_decl): New variable.
33920 (oacc_get_reduction_array_id, oacc_max_threads)
33921 (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
33922 (maybe_lookup_oacc_reduction, enclosing_target_ctx)
33923 (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
33924 (oacc_gimple_assign, oacc_initialize_reduction_data)
33925 (oacc_finalize_reduction_data, oacc_process_reduction_data): New
33927 (is_targetreg_ctx): Remove function.
33928 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
33929 OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
33930 OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
33931 OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
33932 OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
33933 OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
33934 * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
33935 * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
33936 (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
33937 (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
33938 (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
33939 (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
33940 * tree-core.h: Update comments for OpenACC changes.
33941 (enum omp_clause_map_kind): Remove.
33942 (struct tree_omp_clause): Change type of map_kind member from enum
33943 omp_clause_map_kind to unsigned char.
33944 * tree-inline.c: Update comments for OpenACC changes.
33945 * tree-nested.c: Likewise. Include "gomp-constants.h".
33946 (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
33947 (convert_tramp_reference_stmt, convert_gimple_call): Update for
33948 OpenACC changes. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
33949 OMP_CLAUSE_SET_MAP_KIND.
33950 * tree-pretty-print.c: Include "gomp-constants.h".
33951 (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
33952 OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
33953 OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
33954 OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
33955 OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
33956 OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT. Use GOMP_MAP_*
33957 instead of OMP_CLAUSE_MAP_*.
33958 (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
33959 OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
33960 OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
33961 * tree-streamer-in.c: Include "gomp-constants.h".
33962 (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
33963 OMP_CLAUSE_MAP_*. Use OMP_CLAUSE_SET_MAP_KIND.
33964 * tree-streamer-out.c: Include "gomp-constants.h".
33965 (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
33967 * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
33968 (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
33969 (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
33970 * tree.c (omp_clause_num_ops): Update accordingly.
33971 * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
33973 (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
33974 (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
33975 (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
33976 (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
33977 (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
33978 (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
33979 * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
33980 (OMP_CLAUSE_SET_MAP_KIND): New macro.
33981 * varpool.c (varpool_node::get_create): Consider flag_openacc next
33983 * config/i386/intelmic-offload.h: New file.
33984 * config/nvptx/offload.h: Likewise.
33986 2015-01-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
33988 * explow.h: Remove duplicate contents.
33989 * dojump.h: Likewise.
33991 2015-01-15 Richard Earnshaw <rearnsha@arm.com>
33993 * arm.c (arm_xgene_tune): Add default initializer for instruction
33996 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
34000 * ipa.c (symbol_table::remove_unreachable_nodes):
34001 Do not put abstract origins into boundary.
34003 2015-01-15 Evgeny Stupachenko <evstupac@gmail.com>
34005 * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
34006 * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
34008 2015-01-15 Steve Ellcey <sellcey@mips.com>
34010 * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
34011 cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
34012 builtins.def, and chkp-builtins.def.
34014 2015-01-15 David Edelsohn <dje.gcc@gmail.com>
34016 * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
34019 2015-01-15 Richard Biener <rguenther@suse.de>
34021 PR tree-optimization/61743
34022 * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
34023 information on PHIs for some simple cases.
34025 2015-01-15 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
34027 * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
34029 * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
34030 * config/arm/arm-cores.def (xgene1): New entry.
34031 * config/arm/arm-tables.opt: Regenerate.
34032 * config/arm/arm-tune.md: Regenerate.
34033 * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
34035 2015-01-15 Yuri Rumyantsev <ysrumyan@gmail.com>
34037 * tree-if-conv.c: Include hash-map.h.
34038 (aggressive_if_conv): New variable.
34039 (fold_build_cond_expr): Add simplification of non-zero condition.
34040 (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
34041 destination block is not always executed.
34042 (if_convertible_phi_p): Fix commentary, allow phi nodes have more
34043 than two predecessors if AGGRESSIVE_IF_CONV is true.
34044 (if_convertible_stmt_p): Fix commentary.
34045 (all_preds_critical_p): New function.
34046 (has_pred_critical_p): New function.
34047 (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
34048 BB can have more than two predecessors and all incoming edges can be
34050 (predicate_bbs): Skip predication for loop exit block, use build2_loc
34051 to compute predicate for true edge.
34052 (find_phi_replacement_condition): Delete this function.
34053 (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
34054 Allow interchange PHI arguments if EXTENDED is false.
34055 Change check that block containing reduction statement candidate
34056 is predecessor of phi-block since phi may have more than two arguments.
34057 (phi_args_hash_traits): New helper structure.
34058 (struct phi_args_hash_traits): New type.
34059 (phi_args_hash_traits::hash): New function.
34060 (phi_args_hash_traits::equal_keys): New function.
34061 (gen_phi_arg_condition): New function.
34062 (predicate_scalar_phi): Add handling of phi nodes with more than two
34063 arguments, delete COND and TRUE_BB arguments, insert body of
34064 find_phi_replacement_condition to predicate ordinary phi nodes.
34065 (predicate_all_scalar_phis): Skip blocks with the only predecessor,
34066 delete call of find_phi_replacement_condition and invoke
34067 predicate_scalar_phi with two arguments.
34068 (insert_gimplified_predicates): Add assert that non-predicated block
34069 don't have statements to insert.
34070 (ifcvt_split_critical_edges): New function.
34071 (ifcvt_split_def_stmt): Likewise.
34072 (ifcvt_walk_pattern_tree): Likewise.
34073 (stmt_is_root_of_bool_pattern): Likewise.
34074 (ifcvt_repair_bool_pattern): Likewise.
34075 (ifcvt_local_dce): Likewise.
34076 (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
34077 is copy of inner or outer loop force_vectorize field, invoke
34078 ifcvt_split_critical_edges, ifcvt_local_dce and
34079 ifcvt_repair_bool_pattern for aggressive if-conversion.
34081 2015-01-15 Philipp Tomsich <ptomsich@theobroma-systems.com>
34083 * config/aarch64/aarch64.md: Include xgene1.md.
34084 * config/aarch64/xgene1.md: New file.
34086 2015-01-15 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
34088 * config/aarch64/aarch64-cores.def (xgene1): Update/add the
34089 xgene1 (APM XGene-1) core definition.
34090 * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
34091 * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
34092 * doc/invoke.texi: Document -mcpu=xgene1.
34094 2015-01-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
34096 * dojump.h: New header file.
34097 * explow.h: Likewise.
34098 * expr.h: Remove includes.
34099 Move expmed.c prototypes to expmed.h.
34100 Move dojump.c prototypes to dojump.h.
34101 Move alias.c prototypes to alias.h.
34102 Move explow.c prototypes to explow.h.
34103 Move calls.c prototypes to calls.h.
34104 Move emit-rtl.c prototypes to emit-rtl.h.
34105 Move varasm.c prototypes to varasm.h.
34106 Move stmt.c prototypes to stmt.h.
34107 (saved_pending_stack_adjust): Move to dojump.h.
34108 (adjust_address): Move to explow.h.
34109 (adjust_address_nv): Move to emit-rtl.h.
34110 (adjust_bitfield_address): Likewise.
34111 (adjust_bitfield_address_size): Likewise.
34112 (adjust_bitfield_address_nv): Likewise.
34113 (adjust_automodify_address_nv): Likewise.
34114 * explow.c (expr_size): Move to expr.c.
34115 (int_expr_size): Likewise.
34116 (tree_expr_size): Likewise.
34117 Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34118 fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
34119 * genemit.c (main): Generate includes statistics.h, real.h,
34120 fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
34122 * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
34123 function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
34124 explow.h, emit-rtl.h, stmt.h.
34125 * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
34126 fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
34127 * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
34128 real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
34129 emit-rtl.h, varasm.h, stmt.h.
34130 * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
34131 hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
34132 function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
34133 fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
34134 expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
34135 * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
34136 double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
34137 function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
34138 insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
34139 tm.h tree.h varasm.h vec.h wide-int.h.
34140 * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
34141 explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
34142 hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
34143 real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
34144 * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
34145 emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
34146 insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
34147 * loop-iv.c: Likewise.
34148 * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
34149 emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
34150 statistics.h stmt.h tree.h varasm.h wide-int.h.
34151 * lra-constraints.c: Likewise.
34152 * lra-eliminations.c: Likewise.
34153 * lra-lives.c: Likewise.
34154 * lra-remat.c: Likewise.
34155 * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
34156 explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
34157 statistics.h stmt.h tree.h varasm.h wide-int.h.
34158 * hw-doloop.c: Likewise.
34159 * ira-color.c: Likewise.
34160 * ira-emit.c: Likewise.
34161 * loop-doloop.c: Likewise.
34162 * loop-invariant.c: Likewise.
34163 * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
34164 explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
34165 statistics.h stmt.h tree.h varasm.h wide-int.h.
34166 * caller-save.c: Include alias.h calls.h dojump.h double-int.h
34167 emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
34168 statistics.h stmt.h tree.h varasm.h wide-int.h.
34169 * combine-stack-adj.c: Likewise.
34172 * ifcvt.c: Likewise.
34173 * ira-costs.c: Likewise.
34174 * jump.c: Likewise.
34175 * lra-coalesce.c: Likewise.
34176 * lra-spills.c: Likewise.
34177 * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
34178 explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
34179 stmt.h varasm.h wide-int.h.
34180 * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
34181 explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
34183 * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
34184 double-int.h explow.h expmed.h fixed-value.h flags.h real.h
34185 statistics.h stmt.h varasm.h wide-int.h.
34186 * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
34187 expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
34188 varasm.h wide-int.h.
34189 * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
34190 expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
34191 * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
34192 emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
34193 statistics.h stmt.h.
34194 * config/tilepro/tilepro.c: Likewise.
34195 * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
34196 explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
34197 * config/pdp11/pdp11.c: Likewise.
34198 * config/xtensa/xtensa.c: Likewise.
34199 * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
34200 explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
34202 * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34203 fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
34204 insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
34205 * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34206 fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
34207 insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
34208 * rtl-chkp.c: Likewise.
34209 * tree-chkp-opt.c: Likewise.
34210 * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
34211 explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
34212 hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
34213 * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34214 fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
34215 statistics.h stmt.h.
34216 * tree-vect-data-refs.c: Likewise.
34217 * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
34218 expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
34219 rtl.h statistics.h stmt.h varasm.h.
34220 * internal-fn.c: Likewise.
34221 * ipa-icf-gimple.c: Likewise.
34222 * lto-section-out.c: Likewise.
34223 * tree-data-ref.c: Likewise.
34224 * tree-nested.c: Likewise.
34225 * tree-outof-ssa.c: Likewise.
34226 * tree-predcom.c: Likewise.
34227 * tree-pretty-print.c: Likewise.
34228 * tree-scalar-evolution.c: Likewise.
34229 * tree-ssa-strlen.c: Likewise.
34230 * tree-vect-loop.c: Likewise.
34231 * tree-vect-patterns.c: Likewise.
34232 * tree-vect-slp.c: Likewise.
34233 * tree-vect-stmts.c: Likewise.
34234 * tsan.c: Likewise.
34235 * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34236 fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
34238 * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
34239 expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
34240 statistics.h stmt.h varasm.h.
34241 * loop-unroll.c: Likewise.
34242 * ubsan.c: Likewise.
34243 * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
34244 expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
34246 * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34247 fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
34248 * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
34249 expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
34250 statistics.h stmt.h.
34251 * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
34252 expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
34253 statistics.h stmt.h varasm.h.
34254 * gimple-match-head.c: Likewise.
34255 * lto-cgraph.c: Likewise.
34256 * lto-section-in.c: Likewise.
34257 * lto-streamer-in.c: Likewise.
34258 * lto-streamer-out.c: Likewise.
34259 * tree-affine.c: Likewise.
34260 * tree-cfg.c: Likewise.
34261 * tree-cfgcleanup.c: Likewise.
34262 * tree-if-conv.c: Likewise.
34263 * tree-into-ssa.c: Likewise.
34264 * tree-ssa-alias.c: Likewise.
34265 * tree-ssa-copyrename.c: Likewise.
34266 * tree-ssa-dse.c: Likewise.
34267 * tree-ssa-forwprop.c: Likewise.
34268 * tree-ssa-live.c: Likewise.
34269 * tree-ssa-math-opts.c: Likewise.
34270 * tree-ssa-pre.c: Likewise.
34271 * tree-ssa-sccvn.c: Likewise.
34272 * tree-tailcall.c: Likewise.
34273 * tree-vect-generic.c: Likewise.
34274 * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34275 fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
34276 * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34277 fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
34278 * varasm.c: Likewise.
34279 * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34280 fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
34282 * init-regs.c: Likewise.
34284 * omp-low.c: Likewise.
34285 * stack-ptr-mod.c: Likewise.
34286 * tree-ssa-reassoc.c: Likewise.
34287 * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34288 fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
34290 * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34291 fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
34292 * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34293 fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
34294 * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34295 fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
34296 * tree-ssa-phiopt.c: Likewise.
34297 * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34298 fixed-value.h hashtab.h real.h statistics.h stmt.h.
34299 * config/fr30/fr30.c: Likewise.
34300 * config/frv/frv.c: Likewise.
34301 * expr.c: Likewise.
34302 * final.c: Likewise.
34303 * optabs.c: Likewise.
34304 * passes.c: Likewise.
34305 * simplify-rtx.c: Likewise.
34306 * stmt.c: Likewise.
34307 * toplev.c: Likewise.
34308 * var-tracking.c: Likewise.
34309 * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34310 fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
34311 * lower-subreg.c: Likewise.
34312 * postreload-gcse.c: Likewise.
34314 * reginfo.c: Likewise.
34315 * store-motion.c: Likewise.
34316 * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34317 fixed-value.h hashtab.h real.h stmt.h varasm.h.
34318 * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34319 fixed-value.h hashtab.h statistics.h stmt.h.
34320 * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34321 fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
34322 * except.c: Likewise.
34323 * explow.c: Likewise.
34324 * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34325 fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
34327 * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34328 fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
34329 * tree-ssa-structalias.c: Likewise.
34330 * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34331 fixed-value.h insn-config.h real.h statistics.h.
34332 * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34333 fixed-value.h insn-config.h real.h statistics.h stmt.h.
34334 * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34335 fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
34336 * cfgbuild.c: Likewise.
34337 * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34338 fixed-value.h real.h rtl.h statistics.h stmt.h.
34339 * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34340 fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
34341 * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34342 fixed-value.h real.h statistics.h stmt.h.
34343 * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34344 fixed-value.h real.h statistics.h stmt.h varasm.h.
34345 * cprop.c: Likewise.
34346 * modulo-sched.c: Likewise.
34347 * postreload.c: Likewise.
34348 * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
34349 flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
34350 statistics.h stmt.h varasm.h.
34351 * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
34352 explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
34353 rtl.h statistics.h stmt.h varasm.h.
34354 * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
34355 fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
34357 * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
34358 function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
34360 * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
34361 fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
34363 * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
34364 fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
34365 * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
34366 function.h real.h statistics.h stmt.h varasm.h.
34367 * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
34368 insn-config.h real.h statistics.h stmt.h.
34369 * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
34370 statistics.h stmt.h.
34371 * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
34372 fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
34373 statistics.h stmt.h varasm.h.
34374 * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
34375 fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
34376 * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
34377 flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
34378 * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
34379 fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
34380 statistics.h stmt.h varasm.h.
34381 * ipa-polymorphic-call.c: Likewise.
34382 * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
34383 expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
34384 statistics.h stmt.h.
34385 * config/c6x/c6x.c: Likewise.
34386 * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
34387 explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
34388 statistics.h stmt.h varasm.h.
34389 * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
34390 fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
34392 * ipa-split.c: Likewise.
34393 * tree-eh.c: Likewise.
34394 * tree-ssa-dce.c: Likewise.
34395 * tree-ssa-loop-niter.c: Likewise.
34396 * tree-vrp.c: Likewise.
34397 * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
34398 expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
34400 * config/nds32/nds32-fp-as-gp.c: Likewise.
34401 * config/nds32/nds32-intrinsic.c: Likewise.
34402 * config/nds32/nds32-isr.c: Likewise.
34403 * config/nds32/nds32-md-auxiliary.c: Likewise.
34404 * config/nds32/nds32-memory-manipulation.c: Likewise.
34405 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
34406 * config/nds32/nds32-predicates.c: Likewise.
34407 * config/nds32/nds32.c: Likewise.
34408 * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
34409 fixed-value.h hashtab.h real.h statistics.h.
34410 * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
34411 fixed-value.h hashtab.h real.h statistics.h stmt.h.
34412 * config/arm/arm.c: Likewise.
34413 * config/avr/avr.c: Likewise.
34414 * config/bfin/bfin.c: Likewise.
34415 * config/h8300/h8300.c: Likewise.
34416 * config/i386/i386.c: Likewise.
34417 * config/ia64/ia64.c: Likewise.
34418 * config/iq2000/iq2000.c: Likewise.
34419 * config/m32c/m32c.c: Likewise.
34420 * config/m32r/m32r.c: Likewise.
34421 * config/m68k/m68k.c: Likewise.
34422 * config/mcore/mcore.c: Likewise.
34423 * config/mep/mep.c: Likewise.
34424 * config/mips/mips.c: Likewise.
34425 * config/mn10300/mn10300.c: Likewise.
34426 * config/moxie/moxie.c: Likewise.
34427 * config/pa/pa.c: Likewise.
34428 * config/rl78/rl78.c: Likewise.
34429 * config/rx/rx.c: Likewise.
34430 * config/s390/s390.c: Likewise.
34431 * config/sh/sh.c: Likewise.
34432 * config/sparc/sparc.c: Likewise.
34433 * config/spu/spu.c: Likewise.
34434 * config/stormy16/stormy16.c: Likewise.
34435 * config/v850/v850.c: Likewise.
34436 * config/vax/vax.c: Likewise.
34437 * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
34438 fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
34439 * config/msp430/msp430.c: Likewise.
34440 * predict.c: Likewise.
34441 * value-prof.c: Likewise.
34442 * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
34443 expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
34444 * config/microblaze/microblaze.c: Likewise.
34445 * config/nios2/nios2.c: Likewise.
34446 * config/rs6000/rs6000.c: Likewise.
34447 * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
34448 insn-config.h real.h rtl.h statistics.h stmt.h.
34449 * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
34450 insn-config.h real.h statistics.h stmt.h.
34451 * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
34452 fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
34453 * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
34454 fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
34455 * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
34456 fixed-value.h real.h statistics.h stmt.h.
34457 * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
34458 fixed-value.h statistics.h stmt.h.
34459 * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
34462 2015-01-15 Jakub Jelinek <jakub@redhat.com>
34464 * gengtype.c (create_user_defined_type): Workaround
34465 -Wmaybe-uninitialized false positives.
34466 * cse.c (fold_rtx): Likewise.
34467 * loop-invariant.c (gain_for_invariant): Likewise.
34469 2015-01-15 Eric Botcazou <ebotcazou@adacore.com>
34471 * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
34472 set the memory attributes in all cases but clear MEM_EXPR if need be.
34474 2015-01-15 Yuri Rumyantsev <ysrumyan@gmail.com>
34476 PR tree-optimization/64434
34477 * cfgexpand.c (reorder_operands): New function.
34478 (expand_gimple_basic_block): Insert call of reorder_operands if
34481 2015-01-15 Matthew Fortune <matthew.fortune@imgtec.com>
34483 * config/mips/micromips.md (*swp): Remove explicit parallel.
34484 (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
34485 * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
34486 (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
34487 (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
34488 (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
34489 (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
34490 (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
34491 (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
34492 (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
34493 (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
34494 (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
34495 (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
34496 (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
34497 (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
34498 (mips_wrdsp): Likewise.
34499 * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
34501 (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
34502 (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
34503 (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
34504 (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
34505 (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
34506 (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
34507 * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
34508 (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
34509 (ssmaddsqdq4, ssmsubsqdq4): Likewise.
34511 2015-01-14 Matthew Fortune <matthew.fortune@imgtec.com>
34513 * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
34514 (mips_print_operand): Support 'y' to print exact log2 in decimal
34516 * config/mips/mips.h (ISA_HAS_LSA): New define.
34517 (ISA_HAS_DLSA): Likewise.
34518 * config/mips/mips.md (<GPR:d>lsa): New define_insn.
34519 * config/mips/predicates.md (const_immlsa_operand): New predicate.
34521 2015-01-15 Martin Liska <mliska@suse.cz>
34524 * optc-save-gen.awk: Add support for array types.
34526 2015-01-15 Richard Biener <rguenther@suse.de>
34528 PR middle-end/64365
34529 * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
34530 for MEM_REF access functions with the same base can never partially
34533 2015-01-14 Marcos Diaz <marcos.diaz@tallertechnologies.com>
34535 * common.opt: New option -fstack-protector-explicit.
34536 * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
34537 (stack_protect_decl_phase): Handle stack_protect attribute for
34538 explicit stack protection requests.
34539 (expand_used_vars): Similarly.
34540 * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
34541 * doc/extend.texi: Add documentation for "stack_protect" attribute.
34542 * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
34544 2015-01-14 Oleg Endo <olegendo@gcc.gnu.org>
34547 * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
34549 (sh_extending_set_of_reg): New struct.
34550 (sh_find_extending_set_of_reg, sh_split_tst_subregs,
34551 sh_remove_reg_dead_or_unused_notes): New Declarations.
34552 * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
34553 sh_find_extending_set_of_reg, sh_split_tst_subregs,
34554 sh_extending_set_of_reg::use_as_extended_reg): New functions.
34555 * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
34556 convert to insn_and_split and use new function sh_split_tst_subregs.
34558 2015-01-14 Sandra Loosemore <sandra@codesourcery.com>
34560 * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
34562 (Optimization Options): Move -fuse-ld documentation to...
34563 (Link Options): ...here.
34565 2015-01-14 Matthew Fortune <matthew.fortune@imgtec.com>
34567 * config/mips/constraints.md (ZC): Add support for R6 LL/SC
34569 (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
34570 * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
34571 (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
34572 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
34573 instead of ZR for the memory operand of LL/SC.
34574 (compare_and_swap_12, sync_add<mode>): Likewise.
34575 (sync_<optab>_12, sync_old_<optab>_12): Likewise.
34576 (sync_new_<optab>_12, sync_nand_12): Likewise.
34577 (sync_old_nand_12, sync_new_nand_12): Likewise.
34578 (sync_sub<mode>, sync_old_add<mode>): Likewise.
34579 (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
34580 (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
34581 (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
34582 (sync_nand<mode>, sync_old_nand<mode>): Likewise.
34583 (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
34584 (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
34585 (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
34586 * doc/md.texi (ZC): Update description.
34588 2015-01-14 Andrew MacLeod <amacleod@redhat.com>
34590 * builtins.c (expand_builtin_atomic_exchange): Remove error when
34591 memory model is CONSUME.
34592 (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
34593 expand_builtin_atomic_store): Change invalid memory model errors to
34595 (expand_builtin_atomic_clear): Change invalid model errors to warnings
34596 and issue warning for CONSUME.
34598 2015-01-14 Aldy Hernandez <aldyh@redhat.com>
34600 * lto-cgraph: Update function comments for
34601 lto_symtab_encoder_encode_*.
34603 2015-01-14 Ilya Verbin <ilya.verbin@intel.com>
34605 * Makefile.in (site.exp): Do not set ENABLE_LTO.
34607 2015-01-14 Ilya Verbin <ilya.verbin@intel.com>
34609 * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
34610 * lto-cgraph.c (select_what_to_stream): Remove argument, use
34611 lto_stream_offload_p instead.
34612 * lto-streamer.h (select_what_to_stream): Remove argument.
34613 * passes.c (ipa_write_summaries): Likewise.
34614 * tree-pass.h (ipa_write_summaries): Likewise.
34616 2015-01-14 Richard Biener <rguenther@suse.de>
34618 PR tree-optimization/59354
34619 * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
34620 groups larger than the slp group size as having gaps.
34622 2015-01-14 Andrew MacLeod <amacleod@redhat.com>
34624 PR middle-end/59448
34625 * builtins.c (get_memmodel): Promote consume to acquire always.
34627 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
34630 * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
34633 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
34636 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
34638 (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
34639 * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
34640 AVX512VBMI, as it implies AVX512BW.
34642 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
34645 * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
34646 (vec_unpacks_hi_v16sf): Ditto.
34648 2015-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34650 * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
34653 2015-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34655 * doc/invoke.texi (mapcs): Mention deprecation.
34656 (mapcs-frame): Likewise.
34658 2015-01-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
34661 * config/arm/arm.c (callee_saved_reg_p): Define.
34662 (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
34663 register is callee saved instead of !call_used_regs[reg].
34664 (thumb1_compute_save_reg_mask): Likewise.
34666 2015-01-14 Hale Wang <hale.wang@arm.com>
34668 * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
34671 2015-01-14 Richard Biener <rguenther@suse.de>
34674 * tree-inline.c (insert_debug_decl_map): Check destination
34675 function MAY_HAVE_DEBUG_STMTS.
34676 (insert_init_debug_bind): Likewise.
34677 (insert_init_stmt): Remove redundant check.
34678 (remap_gimple_stmt): Drop debug stmts if the destination
34679 function has var-tracking assignments disabled.
34681 2015-01-14 Martin Liska <mliska@suse.cz>
34683 * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
34684 IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
34686 2015-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34689 * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
34690 (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
34692 2015-01-14 Matthew Fortune <matthew.fortune@imgtec.com>
34694 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
34695 level from an ARCH; do not inject the default.
34696 (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
34697 MIPS_ISA_LEVEL_SPEC.
34698 (MIPS_ISA_NAN2008_SPEC): Update comment.
34699 (BASE_DRIVER_SELF_SPECS): Likewise.
34700 * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
34701 MIPS_DEFAULT_ISA_LEVEL_SPEC.
34702 * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
34703 * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
34704 * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
34706 2015-01-14 Richard Biener <rguenther@suse.de>
34708 PR tree-optimization/64493
34709 PR tree-optimization/64495
34710 * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
34711 assign the proper vectorized PHI to the inner loop exit PHIs.
34713 2015-01-14 Joey Ye <joey.ye@arm.com>
34715 * config/arm/arm.c (arm_compute_save_reg_mask):
34716 Do not save lr in case of tail call.
34717 * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
34719 2015-01-14 Martin Uecker <uecker@eecs.berkeley.edu>
34721 * tree-vrp.c (check_array_ref): Emit more warnings
34722 for warn_array_bounds >= 2.
34723 * common.opt: New option -Warray-bounds=.
34724 * doc/invoke.texi: Document -Warray-bounds=.
34726 2015-01-14 Chung-Ju Wu <jasonwucj@gmail.com>
34728 * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
34729 (mforbid-fp-as-gp): Remove.
34731 * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
34732 (nds32_symbol_load_store_p): Remove.
34733 (nds32_fp_as_gp_check_available): Clean up implementation.
34734 * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
34736 * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
34737 fp-as-gp and ex9 cases.
34739 2015-01-13 Jan Hubicka <hubicka@ucw.cz>
34741 * tree-profile.c (init_ic_make_global_vars): Drop workaround
34742 for bintuils bug 14342.
34743 (init_ic_make_global_vars): Likewise.
34744 (gimple_init_edge_profiler): Likewise.
34745 (gimple_gen_ic_func_profiler): Likewise.
34747 2015-01-13 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
34749 * ipa-inline.c (inline_small_functions): Swap the operands in
34752 2015-01-13 Jan Hubicka <hubicka@ucw.cz>
34755 * ipa-inline-analysis.c (node_growth_cache): Remove.
34756 (initialize_growth_caches): Do not initialize it.
34757 (free_growth_caches): Do not free it.
34758 (do_estimate_growth): Rename to ...
34759 (estimate_growth): ... this one; drop growth cache code.
34760 (growth_likely_positive): Always go the heuristics way.
34761 * ipa-inline.c (can_inline_edge_p): Walk through aliases.
34762 (reset_edge_caches): Do not reset node growth.
34763 (heap_edge_removal_hook): Do not maintain cache.
34764 (inline_small_functions): Likewise; strenghten sanity check.
34765 (ipa_inline): Do not maintain caches.
34766 * ipa-inline.h (node_growth_cache): Remove.
34767 (do_estimate_growth): Remove to ...
34768 (estimate_growth): this one; remove inline version.
34769 (reset_node_growth_cache): Remove.
34771 2015-01-13 Jan Hubicka <hubicka@ucw.cz>
34774 * ipa-inline.c (inline_small_functions): Update callee keys after
34775 resolving speculation
34776 (inline_small_functions): Always check monotonicity of the queue.
34778 2015-01-13 Marek Polacek <polacek@redhat.com>
34780 PR middle-end/64391
34781 * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
34783 2015-01-13 Jakub Jelinek <jakub@redhat.com>
34785 PR rtl-optimization/64286
34786 * ree.c (combine_reaching_defs): Move part of comment earlier,
34787 remove !SCALAR_INT_MODE_P check.
34788 (add_removable_extension): Don't add vector mode
34789 extensions if all uses of the source register aren't the same
34792 2015-01-13 Renlin Li <renlin.li@arm.com>
34794 * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
34795 (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
34797 2015-01-13 Martin Liska <mliska@suse.cz>
34799 * ipa-icf.c (sem_function::equals_private): Call new functions
34800 cl_target_option_print_diff and cl_optimization_print_diff.
34801 * optc-save-gen.awk (cl_target_option_print_diff): New function.
34802 (cl_optimization_print_diff): Likewise.
34803 * opth-gen.awk: Likewise.
34805 2015-01-13 Richard Sandiford <richard.sandiford@arm.com>
34807 * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
34808 (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
34809 (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
34810 (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
34811 (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
34812 (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
34814 2015-01-13 Andrew Pinski <apinski@cavium.com>
34816 * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
34817 instead of src mode.
34819 2015-01-13 Richard Biener <rguenther@suse.de>
34822 * lto-streamer-out.c (tree_is_indexable): Guard for NULL
34825 2015-01-13 Andrew Pinski <apinski@cavium.com>
34827 * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
34829 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
34831 2015-01-13 Jakub Jelinek <jakub@redhat.com>
34833 PR middle-end/63974
34834 * cfgexpand.c (expand_computed_goto): Don't call
34835 convert_memory_address here.
34837 2015-01-13 Richard Biener <rguenther@suse.de>
34839 PR tree-optimization/64406
34840 * tree-loop-distibution.c (pass_loop_distribution::execute):
34841 Reset the SCEV hashtable if we distributed anything.
34843 2015-01-13 Richard Biener <rguenther@suse.de>
34845 PR tree-optimization/64404
34846 * tree-vect-stmts.c (vectorizable_load): Reject conflicting
34847 SLP types for CSEd loads.
34849 2015-01-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
34851 PR tree-optimization/64436
34852 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
34853 merge of two symbolic numbers for a bitwise OR to ...
34854 (perform_symbolic_merge): This. Also fix computation of the range and
34855 end of the symbolic number corresponding to the result of a bitwise OR.
34857 2015-01-13 Richard Biener <rguenther@suse.de>
34859 PR tree-optimization/64568
34860 * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
34861 release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
34863 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
34865 * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
34866 TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
34868 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
34870 * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
34871 target-specific symbol_ref flag.
34872 (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
34873 resides in rodata section.
34874 * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
34875 (nds32_encode_section_info): New function.
34877 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
34879 * config/nds32/nds32.md (call): Use pseudo instruction bal which
34880 clobbers TA_REGNUM if large code model is specified.
34881 (call_register): Likewise.
34882 (call_immediate): Likewise.
34883 (call_value): Likewise.
34884 (call_value_register): Likewise.
34885 (call_value_immediate): Likewise.
34887 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
34889 * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
34890 (TARGET_CMODEL_MEDIUM): New macro.
34891 (TARGET_CMODEL_LARGE): New macro.
34892 * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
34893 code model setting in assembly code.
34895 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
34897 * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
34898 Remove MASK_GP_DIRECT flag.
34899 * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
34900 one of the multilib default options.
34901 * config/nds32/nds32.opt (mgp-direct): Remove.
34902 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
34903 -mgp-direct. We also remove unnecessary -mlittle-endian/-mbig-endian.
34905 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
34907 * config/nds32/nds32.opt (mcmodel): Add new option.
34908 * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
34909 to describe code model.
34911 2015-01-13 Oleg Endo <olegendo@gcc.gnu.org>
34914 * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
34916 2015-01-12 Kaz Kojima <kkojima@gcc.gnu.org>
34918 * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
34919 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
34920 (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
34921 (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
34922 __builtin_sh_set_fpscr.
34924 2015-01-12 Sandra Loosemore <sandra@codesourcery.com>
34926 * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
34927 after a funtion name just to indicate it is a function.
34928 ([-fsanitize-undefined-trap-on-error]): Likewise.
34929 ([-fdbg-cnt=]): Likewise.
34930 ([-mmemcpy]): Likewise.
34931 ([-mflush-func]): Likewise.
34932 ([-msynci]): Likewise.
34934 2015-01-12 Sandra Loosemore <sandra@codesourcery.com>
34936 * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
34939 2015-01-12 Jakub Jelinek <jakub@redhat.com>
34941 PR tree-optimization/64563
34942 * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
34943 instead of != VR_VARYING.
34946 * config/i386/i386.c (ix86_expand_prologue): Add
34947 REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
34949 PR tree-optimization/64454
34950 * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
34951 op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
34952 for signed or [0, op1 - 1] for unsigned modulo.
34953 (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
34954 even if op1 does not satisfy integer_pow2p.
34957 * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
34959 2015-01-12 Jeff Law <law@redhat.com>
34962 * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
34963 (trunchiqi2, truncsihi2): Similarly.
34965 * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
34966 rather than calling F.
34968 2015-01-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
34970 * tsan.c (instrument_expr): Use force_gimple_operand.
34971 Use may_be_nonaddressable_p instead of is_gimple_addressable.
34973 2015-01-12 Richard Biener <rguenther@suse.de>
34975 PR tree-optimization/64530
34976 * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
34979 2015-01-12 Richard Biener <rguenther@suse.de>
34981 PR middle-end/64357
34982 * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
34985 2015-01-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34987 * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
34988 Cortex-A17 tuning parameters.
34989 * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
34991 2015-01-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34993 * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
34994 * config/arm/arm.c (arm_macro_fusion_p): New function.
34995 (arm_macro_fusion_pair_p): Likewise.
34996 (TARGET_SCHED_MACRO_FUSION_P): Define.
34997 (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
34998 (ARM_FUSE_NOTHING): Likewise.
34999 (ARM_FUSE_MOVW_MOVT): Likewise.
35000 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
35001 arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
35002 arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
35003 arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
35004 arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
35005 arm_cortex_a5_tune): Specify fuseable_ops value.
35007 2015-01-12 H.J. Lu <hongjiu.lu@intel.com>
35010 * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
35011 test for PIE with copy reloc.
35012 * configure: Regenerated.
35014 2015-01-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35016 * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
35018 (arm_tls_descseq_addr): Likewise.
35019 (arm_gen_movmemqi): Likewise.
35020 (arm_expand_epilogue_apcs_frame): Likewise.
35021 (arm_expand_epilogue): Likewise.
35022 (arm_expand_prologue): Likewise. Use R1_REGNUM instead of constant 1
35025 2015-01-12 Martin Liska <mliska@suse.cz>
35028 * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
35029 volatility for correct operands.
35031 2015-01-12 Martin Liska <mliska@suse.cz>
35033 * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
35034 indication that a function is not leaf.
35035 (sem_function::compare_polymorphic_p): Likewise.
35037 2015-01-12 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
35039 * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
35040 machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
35041 fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
35042 fold-const.h, tree-check.h.
35044 2015-01-12 Jan Hubicka <hubicka@ucw.cz>
35048 * ipa-inline.c (compute_uninlined_call_time,
35049 compute_inlined_call_time): Use counts for extra precision when
35051 (big_speedup_p): Fix formating.
35052 (RELATIVE_TIME_BENEFIT_RANGE): Remove.
35053 (relative_time_benefit): Remove.
35054 (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
35055 merge guessed and read profile paths.
35056 (inline_small_functions): Count only !optimize_size functions into
35057 initial size; be more lax about sanity check when profile is used;
35058 be sure to update inlined function profile when profile is read.
35060 2015-01-12 Jan Hubicka <hubicka@ucw.cz>
35063 * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
35064 cost when edge becomes direct.
35065 * ipa-prop.c (make_edge_direct): Do not adjust when speculation
35066 is resolved or when introducing new speculation.
35068 2015-01-12 Chen Gang <gang.chen.5i5j@gmail.com>
35072 * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
35073 '||' to fix typo issue.
35075 * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
35076 accept and return NULL.
35078 2015-01-12 Martin Liska <mliska@suse.cz>
35080 * cgraph.c (cgraph_edge::remove_callee): Move function to header
35081 file for being inlined.
35082 (cgraph_set_edge_callee): Delete.
35083 (cgraph_edge::redirect_callee): Move function to header file
35085 (cgraph_edge::make_direct): Use new function.
35086 (cgraph_edge::dump_edge_flags): New function created from
35087 static dump_edge_flags function.
35088 (cgraph_node::dump): Use new function.
35089 (cgraph_edge::verify_count_and_frequency): New function created
35090 from verify_edge_count_and_frequency.
35091 (cgraph_edge::verify_corresponds_to_fndecl): New function created
35092 from verify_edge_corresponds_to_fndecl.
35093 (verify_edge_corresponds_to_fndecl): Delete.
35094 (cgraph_node::verify_node): Use new function.
35095 * cgraph.h (cgraph_edge::set_callee): New function.
35096 (cgraph_edge::dump_edge_flags): Likewise.
35097 (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
35099 2015-01-11 Jan Hubicka <hubicka@ucw.cz>
35101 * ipa-utils.c (estimate_function_body_sizes): Do not
35102 free node params when called late with early=true.
35104 2015-01-11 James Greenhalgh <james.greenhalgh@arm.com>
35106 * doc/md.texi (Instruction Patterns): Rewrite text for
35108 (Example): Likewise.
35110 2015-01-10 Sandra Loosemore <sandra@codesourcery.com>
35112 * doc/invoke.texi (Option Summary): Break long lines.
35113 [(-fdiagnostics-color)]: Put long literal in @smallexample
35115 [(-fsanitize-recover)]: Likewise.
35116 [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
35117 [(-ffast-math)]: Likewise.
35118 [(--param max-inline-insns-recursive)]: Likewise.
35119 [(--param max-inline-recursive-depth)]: Likewise.
35120 [(-mno-text-section-literals)]: Likewise.
35122 2015-01-10 Thomas Schwinge <thomas@codesourcery.com>
35124 * doc/install.texi: Update for libgomp being renamed from "GNU
35125 OpenMP Runtime Library" to "GNU Offloading and Multi Processing
35127 * doc/sourcebuild.texi: Likewise.
35129 2015-01-10 Anthony Green <green@moxielogic.com>
35131 * config/moxie/moxie.c (moxie_option_override): Fix forcing of
35132 mul.x availability for moxiebox configuration.
35134 2015-01-09 Anthony Green <green@moxielogic.com>
35136 * config/moxie/moxie.md: Tabify assembly output.
35138 2015-01-09 Anthony Green <green@moxielogic.com>
35140 * config/moxie/moxie.md (CC_REG): Correct register definition.
35142 2015-01-09 Sandra Loosemore <sandra@codesourcery.com>
35144 * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
35145 ([-fvtv-debug], [-fvtv-counts]): Likewise. Correct location
35148 2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
35150 * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
35152 2015-01-09 Bernd Schmidt <bernds@codesourcery.com>
35153 Jakub Jelinek <jakub@redhat.com>
35155 PR middle-end/64412
35156 * lto-streamer.h (lto_stream_offload_p): New declaration.
35157 * lto-streamer.c (lto_stream_offload_p): New variable.
35158 * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
35159 at the same time as section_name_prefix.
35160 * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
35161 if lto_stream_offload_p.
35162 * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
35163 stream TREE_TARGET_OPTION if lto_stream_offload_p.
35164 (write_ts_function_decl_tree_pointers): Don't
35165 stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
35166 * tree-streamer-in.c (unpack_value_fields): Don't stream
35167 TREE_TARGET_OPTION in if ACCEL_COMPILER.
35168 (lto_input_ts_function_decl_tree_pointers): Don't stream
35169 DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
35170 * lto-opts.c (lto_write_options): Use lto_stream_offload_p
35171 instead of section_name_prefix string comparisons.
35173 2015-01-09 Jakub Jelinek <jakub@redhat.com>
35175 PR rtl-optimization/64536
35176 * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
35179 2015-01-09 Michael Collison <michael.collison@linaro.org>
35181 PR tree-optimization/64322
35182 * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
35183 range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
35185 2015-01-09 Tom de Vries <tom@codesourcery.com>
35187 PR rtl-optimization/64539
35188 * regcprop.c (kill_clobbered_values): Factor out of ...
35189 (copyprop_hardreg_forward_1): ... here. Use kill_clobbered_values
35190 instead of note_stores with kill_clobbered_value.
35192 2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
35194 * ginclude/unwind-arm-common.h: Revert previous commit.
35196 2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
35198 * config.gcc (arm*-*-freebsd*): New configuration.
35199 * config/arm/freebsd.h: New file.
35200 * config.host: Add extra components for arm*-*-freebsd*.
35201 * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
35202 * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
35204 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
35206 * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
35208 * config/rs6000/t-rtems: Add e6500 multilibs.
35210 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
35212 * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
35215 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
35217 * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
35218 MULTILIB_EXCEPTIONS.
35220 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
35222 * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
35223 MULTILIB_EXCEPTIONS.
35225 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
35227 * config/arm/t-rtems-eabi: Rename to...
35228 * config/arm/t-rtems: ...this.
35229 * config/arm/rtems-eabi.h: Rename to...
35230 * config/arm/rtems.h: ...this.
35231 * config.gcc (arm*-*-rtems*): Reflect changes above.
35233 2015-01-09 Richard Biener <rguenther@suse.de>
35235 PR tree-optimization/64410
35236 * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
35238 (execute_update_addresses_taken): Deal with that.
35239 * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
35240 loads/stores for complex variables.
35242 2015-01-09 Martin Liska <mliska@suse.cz>
35244 * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
35246 (func_checker::compare_memory_operand): New function.
35247 (func_checker::compare_operand): Split case to newly
35249 (func_checker::compare_cst_or_decl): New function.
35250 (func_checker::compare_gimple_call): Identify
35252 (func_checker::compare_gimple_assign): Likewise.
35253 * ipa-icf-gimple.h: New function.
35255 2015-01-09 Martin Liska <mliska@suse.cz>
35258 * sreal.c (sreal::dump): Change unsigned format to signed for
35260 (sreal::to_double): Replace exp2 with scalbln.
35262 2015-01-09 Martin Liska <mliska@suse.cz>
35264 * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
35265 * ipa-icf.c (sem_function::equals_private): Add support for target and
35266 (sem_item_optimizer::merge_classes): Remove redundant function
35267 optimization flags comparison.
35268 * tree.h (target_opts_for_fn): New function.
35270 2015-01-09 Tom de Vries <tom@codesourcery.com>
35272 * omp-low.c (expand_omp_for_static_chunk): Fix assert.
35274 2015-01-09 Kito Cheng <kito@0xlab.org>
35276 PR rtl-optimization/64348
35277 * lra-constraints.c (split_reg): Fix caller-save store/restore
35278 instruction generation.
35280 2015-01-08 John David Anglin <danglin@gcc.gnu.org>
35282 PR gcov-profile/61790
35283 * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
35284 long long. Fallback to int64_t if host doesn't have long long and
35285 use strtol if int64_t is long. Otherwise, use sscanf for conversion.
35287 2015-01-08 Jakub Jelinek <jakub@redhat.com>
35289 PR tree-optimization/63989
35290 * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
35291 from 1000 to 10000.
35292 * tree-ssa-strlen.c (get_strinfo): Moved earlier.
35293 (get_stridx): If we don't have a record for certain SSA_NAME,
35294 but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
35295 constant offset, call get_stridx_plus_constant.
35296 (get_stridx_plus_constant): New function.
35297 (zero_length_string): Don't use get_stridx here.
35300 PR middle-end/64388
35301 * dse.c (struct insn_info): Mention frame_read set also
35302 before reload for tail calls on some targets.
35303 (scan_insn): Revert 2014-12-22 change. Set frame_read
35304 also before reload for tail calls if
35305 HARD_FRAME_POINTER_IS_ARG_POINTER. Call add_wild_read
35306 instead of add_non_frame_wild_read for non-const/memset
35307 tail calls after reload.
35309 2015-01-08 Jason Merrill <jason@redhat.com>
35311 * ubsan.c (do_ubsan_in_current_function): New.
35312 (pass_ubsan::gate): Use it.
35313 * ubsan.h: Declare it.
35314 * convert.c (convert_to_integer): Use it.
35316 2015-01-08 Jakub Jelinek <jakub@redhat.com>
35319 * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
35320 compare_code when it is unconditionally overwritten afterwards.
35321 Use ix86_reverse_condition instead of reverse_condition. Don't
35322 change code if *reverse_condition* returned UNKNOWN and don't
35323 swap ct/cf and negate diff in that case.
35325 2015-01-08 Mike Stump <mikestump@comcast.net>
35327 * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
35328 (pass_tsan_O0::gate): Likewise.
35329 * extend.texi (Function Attributes): Add no_sanitize_thread
35332 2015-01-08 Thomas Schwinge <thomas@codesourcery.com>
35334 * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
35335 for registering builtins.
35336 * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
35337 add -fopenmp to the argv_obstack used when invoking
35338 compile_for_target.
35340 * config/i386/intelmic-mkoffload.c (compile_for_target): Always
35341 add "-m32" or "-m64" to argv_obstack.
35342 (generate_host_descr_file): Likewise, when invoking host_compiler.
35343 (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
35346 2015-01-08 Oleg Endo <olegendo@gcc.gnu.org>
35348 * config/sh/sh-mem.cc: Use constant as second operand when emitting
35351 2015-01-08 Oleg Endo <olegendo@gcc.gnu.org>
35354 * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
35355 constant load if constant operand fits into I08.
35357 2015-01-08 Jakub Jelinek <jakub@redhat.com>
35360 * tree.c (build2_stat): Fix up initialization of TREE_READONLY
35361 and TREE_THIS_VOLATILE for MEM_REFs.
35362 (build5_stat): Fix up initialization of TREE_READONLY and
35363 TREE_THIS_VOLATILE for TARGET_MEM_REFs.
35365 2015-01-08 Kaz Kojima <kkojima@gcc.gnu.org>
35368 * config/sh/sh.md (*addsi3_compact): Use u constraint instead
35369 of r for the second alternative of the destination operand.
35371 2015-01-07 Segher Boessenkool <segher@kernel.crashing.org>
35374 * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
35376 2015-01-07 Sandra Loosemore <sandra@codesourcery.com>
35378 * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
35380 ([-fivar-visibility], [-fvisibility]): Likewise.
35382 2015-01-07 Sandra Loosemore <sandra@codesourcery.com>
35384 * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
35385 the file where @code, @command, etc is more appropriate.
35387 2015-01-06 Sandra Loosemore <sandra@codesourcery.com>
35389 * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
35390 of -mrecip= documentation.
35392 2015-01-06 Michael Meissner <meissner@linux.vnet.ibm.com>
35395 * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
35396 correct reload handler if -m32 -mpowerpc64 is used.
35398 2015-01-06 Tom de Vries <tom@codesourcery.com>
35400 * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
35402 2015-01-08 Christian Bruel <christian.bruel@st.com>
35405 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
35407 2015-01-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
35409 PR tree-optimization/63259
35410 * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
35411 if optab exists for 16bit byteswap.
35413 2015-01-06 Jakub Jelinek <jakub@redhat.com>
35415 * opts.c (common_handle_option): Add support for
35416 -fno-sanitize=all and -f{,no-}sanitize-recover=all.
35417 * doc/invoke.texi: Document -fno-sanitize=all,
35418 -f{,no-}sanitize-recover=all. Document that
35419 -fsanitize=float-cast-overflow is not enabled
35420 by -fsanitize=undefined. Fix up documentation
35421 of -f{,no-}sanitize-recover.
35423 2015-01-06 Eric Botcazou <ebotcazou@adacore.com>
35425 * config.gcc: Add Visium support.
35426 * configure.ac: Likewise.
35427 * configure: Regenerate.
35428 * doc/extend.texi (interrupt attribute): Add Visium.
35429 * doc/invoke.texi: Document Visium options.
35430 * doc/install.texi: Document Visium target.
35431 * doc/md.texi: Document Visium constraints.
35432 * common/config/visium: New directory.
35433 * config/visium: Likewise.
35435 2015-01-05 Segher Boessenkool <segher@kernel.crashing.org>
35437 * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
35438 for the "(and X (ior (not X) Y) -> (and X Y)" transform.
35440 2015-01-05 Segher Boessenkool <segher@kernel.crashing.org>
35442 * combine.c (combine_validate_cost): Do not count the cost of a
35443 split I2 twice. Do not display it twice in the dump, either.
35445 2015-01-05 Sandra Loosemore <sandra@codesourcery.com>
35447 Revert parts of r219199.
35448 * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
35450 ([-Wtraditional]): Restore markup on <limits.h>.
35452 2015-01-05 Trevor Saunders <tsaunders@mozilla.com>
35455 * doc/invoke.texi: Document -Wsuggest-override.
35457 2015-01-05 Radovan Obradovic <radovan.obradovic@imgtec.com>
35459 PR rtl-optimization/64287
35460 * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
35461 (process_options): Disable flag_ipa_ra if profiling.
35463 2015-01-05 Eric Botcazou <ebotcazou@adacore.com>
35465 * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
35467 2015-01-05 Max Filippov <jcmvbkbc@gmail.com>
35469 * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
35470 hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
35471 put under #if TARGET_LOOPS guard.
35473 2015-01-05 Uros Bizjak <ubizjak@gmail.com>
35475 * config/i386/i386.c (output_387_binary_op): Use std::swap.
35477 2015-01-05 Oleg Endo <olegendo@gcc.gnu.org>
35479 * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
35480 * rtl.h (refers_to_regno_p): Add overload.
35482 * bt-load.c: Likewise.
35483 * combine.c: Likewise.
35484 * df-scan.c: Likewise.
35485 * sched-deps.c: Likewise.
35486 * config/s390/s390.c: Likewise.
35487 * config/m32r/m32r.c: Likewise.
35488 * config/rs6000/spe.md: Likewise.
35489 * config/rs6000/rs6000.c: Likewise.
35490 * config/pa/pa.c: Likewise.
35491 * config/stormy16/stormy16.c: Likewise.
35492 * config/cris/cris.c: Likewise.
35493 * config/arc/arc.md: Likewise.
35494 * config/arc/arc.c: Likewise.
35495 * config/sh/sh.md: Likewise.
35496 * config/sh/sh.c: Likewise.
35497 * config/frv/frv.c: Likewise.
35499 2015-01-05 Jakub Jelinek <jakub@redhat.com>
35502 * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
35503 call as cleanup of the whole body.
35504 * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
35505 * tsan.c (replace_func_exit): New function.
35506 (instrument_func_exit): Moved earlier.
35507 (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
35508 Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
35510 (tsan_pass): Don't call instrument_func_exit.
35511 * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
35512 * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
35516 * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
35517 * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
35518 it to libubsan handler instead of EXPR. Fold comparisons earlier,
35519 if the result is integer_zerop, return NULL_TREE.
35520 * convert.c (convert_to_integer): Pass expr as ARG.
35522 PR tree-optimization/64465
35523 * tree-inline.c (redirect_all_calls): During inlining
35524 clean up EH stmts and EH edges if redirect_call_stmt_to_callee
35525 changed the stmt to a non-throwing call.
35527 2015-01-05 Sandra Loosemore <sandra@codesourcery.com>
35529 * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
35530 etc markup throughout the file.
35532 2015-01-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
35534 Enable experimental TSAN support for Ada.
35535 * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
35537 2015-01-05 Jakub Jelinek <jakub@redhat.com>
35539 PR tree-optimization/64494
35540 * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
35541 clear SSA_NAME_ANTI_RANGE_P flag.
35543 2015-01-05 Marek Polacek <polacek@redhat.com>
35545 * doc/extend.texi (Arrays of Length Zero): Add missing comma.
35547 2015-01-05 Jakub Jelinek <jakub@redhat.com>
35549 Update copyright years.
35551 * gcc.c (process_command): Update copyright notice dates.
35552 * gcov-dump.c: Ditto.
35554 * doc/cpp.texi: Bump @copying's copyright year.
35555 * doc/cppinternals.texi: Ditto.
35556 * doc/gcc.texi: Ditto.
35557 * doc/gccint.texi: Ditto.
35558 * doc/gcov.texi: Ditto.
35559 * doc/install.texi: Ditto.
35560 * doc/invoke.texi: Ditto.
35562 * auto-profile.c, auto-profile.h: Fix up Copyright line.
35564 2015-01-04 Sandra Loosemore <sandra@codesourcery.com>
35566 * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
35568 ([-fvtable-verify], [-fvtv-debug]): Likewise.
35569 ([-Wabi]): Likewise.
35570 ([-fmessage-length]): Likewise.
35571 ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
35572 ([-Wno-discarded-qualifiers]): Likewise.
35573 ([-Wnodiscarded-array-qualifiers]): Likewise.
35574 ([-Wno-virtual-move-assign]): Likewise.
35575 ([-fsanitize=address], [-fsanitize=thread]): Likewise.
35576 ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
35577 ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
35578 ([-fsanitize-undefined-trap-on-error]): Likewise.
35579 ([-floop-interchange]): Likewise.
35580 ([-ftree-coalesce-inlined-vars]): Likewise.
35581 ([-fvect-cost-model]): Likewise.
35582 ([-flto]): Likewise.
35583 ([--param]): Likewise.
35584 (Spec Files): Likewise.
35585 ([-mstrict-align]): Likewise.
35586 ([-mfix-cortex-a53-835769]): Likewise.
35587 ([-march], [-mtune]): Likewise.
35588 ([-mpic-register]): Likewise.
35589 ([-munaligned-access]): Likewise.
35590 ([-msp8]): Likewise.
35591 (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
35592 (AVR Built-in Macros): Likewise.
35593 ([-mpreferred-stack-boundary]): Likewise.
35594 ([-mtune-crtl]): Likewise.
35595 ([-mashf]): Likewise.
35596 ([-mmcu=]): Likewise.
35597 ([-minrt]): Likewise.
35598 ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
35599 ([-mupper-regs]): Likewise.
35600 ([-matomic-model]): Likewise.
35601 ([-mdiv]): Likewise.
35602 ([-mzdcbranch]): Likewise.
35603 ([-mdisable-callt]): Likewise.
35604 ([-msoft-float]): Likewise.
35605 ([-m8byte-align]): Likewise.
35606 ([-fstack-reuse]): Likewise.
35608 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
35610 * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
35611 Fix markup, light copy-editing.
35612 ([-fauto-profile]): Rewrite to fix formatting and content
35615 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
35617 * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
35618 Copy-edit description.
35619 ([-fisolate-erroneous-paths-attribute]): Likewise.
35620 * common.opt (fisolate-erroneous-paths-dereference):
35621 Copy-edit description.
35622 (fisolate-erroneous-paths-attribute): Likewise.
35624 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
35626 * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
35629 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
35631 * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
35632 ([-fvtv-debug]): Likewise.
35633 ([-Wc++-compat]): Likewise.
35634 ([-Wc++11-compat]): Likewise.
35635 ([-Wc++14-compat]): Likewise.
35636 ([-Wno-sized-deallocation]): Likewise.
35637 ([-femit-class-debug-always]): Likewise.
35638 ([-femit-struct-debug-detailed]): Likewise.
35639 ([-fno-keep-inline-dllexport]): Likewise.
35640 ([-fira-algorithm]): Likewise.
35641 ([-fira-region]): Likewise.
35642 ([-flra-remat]): Likewise.
35643 ([-fipa-ra]): Likewise.
35644 ([-fhoist-adjacent-loads]): Likewise.
35645 ([-fisolate-erroneous-paths-dereference]): Likewise.
35646 ([-fisolate-erroneous-paths-attribute]): Likewise.
35647 ([-ftree-switch-conversion]): Likewise.
35648 ([-ftree-tail-merge]): Likewise.
35649 ([-ftree-loop-if-convert]): Likewise.
35650 ([-ftree-loop-if-convert-stores]): Likewise.
35651 ([-ftree-loop-distribution]): Likewise.
35652 ([-ftree-loop-distribute-patterns]): Likewise.
35653 ([-flto-compression-level]): Likewise.
35654 ([-flto-report]): Likewise.
35655 ([-flto-report-wpa]): Likewise.
35656 ([-fuse-linker-plugin]): Likewise.
35657 ([-mfix-cortex-a53-835769]): Likewise.
35658 ([-mno-fix-cortex-a53-835769]): Likewise.
35659 ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
35660 explicit listing; add a note to the discussion indicating they
35661 exist. Reorder table to group similar options. Add missing
35662 @opindex entries. Add @need commands throughout the table to
35663 allow it to be split across multiple pages.
35664 ([-m8bit-idiv]): Fix @opindex.
35665 ([-mavx256-split-unaligned-load]): Likewise.
35666 ([-mavx256-split-unaligned-store]): Likewise.
35667 ([-mstack-protector-guard]): Likewise.
35668 ([-mcpu=]): Likewise.
35669 ([-mcpu]): Likewise.
35670 ([-mpointer-size=]): Likewise.
35672 2015-01-03 John David Anglin <danglin@gcc.gnu.org>
35674 * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
35675 instead of `m' constraint. Likewise for unnamed movb comparison
35676 patterns using reg_before_reload_operand predicate.
35677 * config/pa/predicates.md (reg_before_reload_operand): Tighten
35678 predicate to reject register index and LO_SUM DLT memory forms
35681 2015-01-02 Sandra Loosemore <sandra@codesourcery.com>
35683 * doc/invoke.texi (Option Summary): Fix spelling of
35684 -fdevirtualize-at-ltrans.
35685 ([-fdevirtualize]): Fix markup.
35686 ([-fdevirtualize-speculatively]): Fix typo.
35687 ([-fdevirtualize-at-ltrans]): Likewise. Make description less
35688 implementor-speaky.
35689 * common.opt (fdevirtualize-at-ltrans): Likewise.
35690 * ipa-devirt.c: Fix typos in comments throughout the file.
35691 (ipa_devirt): Fix typos in format strings for dump output.
35693 2015-01-02 Sandra Loosemore <sandra@codesourcery.com>
35695 * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
35696 discussion of defaults, light copy-editing.
35698 2015-01-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
35700 * tsan.c (instrument_expr): corrected previous checkin.
35702 2015-01-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
35704 Instrument bit field and unaligned accesses for TSAN.
35705 * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
35706 (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
35707 * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
35708 Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
35709 unaligned memory regions.
35711 2015-01-01 Anthony Green <green@moxielogic.com>
35713 * config/moxie/predicates.md (moxie_general_movsrc_operand):
35714 Restrict move source register offsets to 16 bits.
35716 Copyright (C) 2015 Free Software Foundation, Inc.
35718 Copying and distribution of this file, with or without modification,
35719 are permitted in any medium without royalty provided the copyright
35720 notice and this notice are preserved.