re PR rtl-optimization/68106 (c-c++-common/torture/builtin-arith-overflow-11.c FAILs...
[gcc.git] / gcc / ChangeLog
1 2015-10-30 Vladimir Makarov <vmakarov@redhat.com>
2
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.
8 (do_remat): Ditto.
9
10 2015-10-30 Jim Wilson <jim.wilson@linaro.org>
11
12 * config/arm/neon-testgen.ml: Fix comment typo.
13
14 2015-10-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15
16 * rtlanal.c (reg_set_p): Expand function comment.
17
18 2015-10-30 Andrew MacLeod <amacleod@redhat.com>
19
20 * alias.c: Remove unused headers.
21 * asan.c: Likewise.
22 * attribs.c: Likewise.
23 * auto-inc-dec.c: Likewise.
24 * auto-profile.c: Likewise.
25 * bb-reorder.c: Likewise.
26 * bitmap.c: Likewise.
27 * bt-load.c: Likewise.
28 * builtins.c: Likewise.
29 * caller-save.c: Likewise.
30 * calls.c: Likewise.
31 * ccmp.c: Likewise.
32 * cfg.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.
41 * cfgrtl.c: Likewise.
42 * cgraph.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.
53 * cprop.c: Likewise.
54 * cse.c: Likewise.
55 * cselib.c: Likewise.
56 * data-streamer-in.c: Likewise.
57 * data-streamer-out.c: Likewise.
58 * data-streamer.c: Likewise.
59 * dbxout.c: Likewise.
60 * dce.c: Likewise.
61 * ddg.c: Likewise.
62 * debug.c: Likewise.
63 * df-core.c: Likewise.
64 * df-problems.c: Likewise.
65 * df-scan.c: Likewise.
66 * dfp.c: Likewise.
67 * dojump.c: Likewise.
68 * dominance.c: Likewise.
69 * domwalk.c: Likewise.
70 * double-int.c: Likewise.
71 * dse.c: Likewise.
72 * dumpfile.c: Likewise.
73 * dwarf2asm.c: Likewise.
74 * dwarf2cfi.c: Likewise.
75 * dwarf2out.c: Likewise.
76 * emit-rtl.c: Likewise.
77 * except.c: Likewise.
78 * explow.c: Likewise.
79 * expmed.c: Likewise.
80 * expr.c: Likewise.
81 * final.c: Likewise.
82 * fixed-value.c: Likewise.
83 * fold-const.c: Likewise.
84 * function.c: Likewise.
85 * fwprop.c: Likewise.
86 * gcse.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.
105 * graph.c: Likewise.
106 * graphds.c: Likewise.
107 * haifa-sched.c: Likewise.
108 * hw-doloop.c: Likewise.
109 * ifcvt.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.
130 * ipa.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.
137 * ira.c: Likewise.
138 * jump.c: Likewise.
139 * langhooks.c: Likewise.
140 * lcm.c: Likewise.
141 * lists.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.
155 * lra.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.
164 * mcf.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.
176 * real.c: Likewise.
177 * realmpfr.c: Likewise.
178 * recog.c: Likewise.
179 * ree.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.
187 * reorg.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.
201 * sese.c: Likewise.
202 * shrink-wrap.c: Likewise.
203 * simplify-rtx.c: Likewise.
204 * stack-ptr-mod.c: Likewise.
205 * statistics.c: Likewise.
206 * stmt.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.
298 * tree.c: Likewise.
299 * tsan.c: Likewise.
300 * ubsan.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.
307 * web.c: Likewise.
308 * wide-int-print.cc: Likewise.
309 * wide-int.cc: Likewise.
310 * xcoffout.c: Likewise.
311
312 2015-10-30 James Greenhalgh <james.greenhalgh@arm.com>
313
314 * doc/invoke.texi (fdump-rtl-@var{pass}): Clarify relationship
315 between pass numbering and execution order.
316
317 2015-10-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
318
319 * config/arm/arm.c (cortex_a9_sched_adjust_cost): Use reg_set_p to
320 check for dependencies.
321
322 2015-10-30 Richard Sandiford <richard.sandiford@arm.com>
323
324 * tree-ssa-math-opts.c (pass_cse_sincos::execute): Don't free
325 CDI_DOMINATORS.
326
327 2015-10-30 Richard Sandiford <richard.sandiford@arm.com>
328
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.
347
348 2015-10-30 Richard Sandiford <richard.sandiford@arm.com>
349
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.
353
354 2015-10-30 Richard Sandiford <richard.sandiford@arm.com>
355
356 * real.h (REAL_MODE_FORMAT): Abort if the mode isn't a
357 SCALAR_FLOAT_MODE_P.
358
359 2015-10-30 Alan Lawrence <alan.lawrence@arm.com>
360
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.
364
365 2015-10-30 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
366
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.
372
373 2015-10-30 Richard Biener <rguenther@suse.de>
374
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.
380
381 2015-10-30 Evandro Menezes <e.menezes@samsung.com>
382
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
387 "mov_imm".
388 (*cmovsi_insn_uxtw): Likewise.
389
390 2015-10-30 Tom de Vries <tom@codesourcery.com>
391
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.
397
398 2015-10-29 Mikhail Maltsev <maltsevm@gmail.com>
399
400 * config/alpha/alpha.c (alpha_function_arg): Use gcc_checking_assert,
401 flag_checking and/or CHECKING_P to eliminate conditional compilation
402 on ENABLE_CHECKING.
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):
410 Likewise.
411 * config/rs6000/rs6000.h: Likewise.
412 * config/visium/visium.c (visium_setup_incoming_varargs): Likewise.
413
414 2015-10-29 Kaz Kojima <kkojima@gcc.gnu.org>
415
416 * config/sh/sh.opt (mfdpic): Add missing period.
417
418 2015-08-29 Anatoly Sokolov <aesok@post.ru>
419
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.
427
428 2015-10-29 Jeff Law <law@redhat.com>
429
430 * tree-ssa-scopedtables.h (const_and_copies): Remove invalidate
431 method.
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.
438
439 2015-10-29 Segher Boessenkool <segher@kernel.crashing.org>
440
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
444 df_regs_ever_live_p.
445
446 2015-10-29 Segher Boessenkool <segher@kernel.crashing.org>
447
448 * lra-constraints.c (process_address_1): Handle (mem:BLK (scratch))
449 by ignoring it.
450
451 2015-10-29 Richard Henderson <rth@redhat.com>
452
453 PR target/68124
454 PR rtl-opt/67609
455 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
456 sse check to the exact conditions of PR 67609.
457
458 2015-10-29 Michael Meissner <meissner@linux.vnet.ibm.com>
459
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
488 PowerPC systems.
489 (mark_swaps_for_removal): Likewise.
490 (rs6000_analyze_swaps): Likewise.
491 (rs6000_mangle_type): Use U10__float128 for IEEE 128-bit floating point.
492
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.
496 (IFKF): Likewise.
497 (IBM128): Update iterator to add condition that the mode is IBM
498 extended double.
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
503 iterator.
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.
576
577 * doc/extend.texi (Floating Types): Document __ibm128 and
578 __float128 on PowerPC.
579
580 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
581 -mfloat128 and -mno-float128.
582
583 2015-10-29 Michael Meissner <meissner@linux.vnet.ibm.com>
584
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.
591
592 * config/rs6000/rs6000.opt (-mfloat128-*): Delete -mfloat128-none
593 and -mfloat128-software switches. Replace them with a binary
594 -mfloat128 switch.
595 (-mfloat128): Likewise.
596
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}
601 debugging.
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
610 VSX option handling.
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
617 point.
618 (rs6000_opt_masks): Add -mfloat128.
619 (struct rs6000_opt_var): Fix typo in comment.
620 (init_cumulative_args): Initialize libcall field in
621 CUMULATIVE_ARGS.
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.
626
627 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add -mfloat128 as
628 an option that can be turned on via -mcpu=<xxx>.
629
630 * config/rs6000/rs6000-opts.h (enum float128_type_t): Delete, no
631 longer used.
632
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.
637
638 * config/rs6000/predicates.md (reg_or_indexed_operand): Allow
639 SUBREGs.
640
641 2015-10-29 Mikhail Maltsev <maltsevm@gmail.com>
642
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.
648
649 2015-10-29 Jeff Law <law@redhat.com>
650
651 PR tree-optimization/67892
652 * tree-ssa-threadedge.c (simplify_controL_stmt_condition): Fix typo
653 in comment.
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
665 prototype.
666
667 2015-10-29 Tom de Vries <tom@codesourcery.com>
668
669 * fold-const.c (fold_unary_loc): Remove folding inhibition for restrict
670 types.
671
672 2015-10-29 Nathan Sidwell <nathan@codesourcery.com>
673
674 * omp-low.c (lower_omp_target): Remove unreachable code & merge
675 ifs.
676
677 2015-10-29 Marc Glisse <marc.glisse@inria.fr>
678
679 * match.pd (X-(X/Y)*Y): Properly handle conversions and commutativity.
680
681 2015-10-29 Richard Sandiford <richard.sandiford@arm.com>
682
683 * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
684 guard_bb0 and use guard_bb throughout.
685
686 2015-10-29 Richard Sandiford <richard.sandiford@arm.com>
687
688 * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
689 unnecessary label.
690
691 2015-10-29 Richard Biener <rguenther@suse.de>
692
693 PR middle-end/68142
694 * fold-const.c (extract_muldiv_1): Avoid introducing undefined
695 overflow.
696
697 2015-10-29 Andrew MacLeod <amacleod@redhat.com>
698
699 * alias.c: Reorder #include statements and remove duplicates.
700 * asan.c: Likewise.
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.
708 * calls.c: Likewise.
709 * ccmp.c: Likewise.
710 * cfg.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.
731 * cprop.c: Likewise.
732 * cse.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.
738 * dce.c: Likewise.
739 * ddg.c: Likewise.
740 * debug.c: Likewise.
741 * df-core.c: Likewise.
742 * df-problems.c: Likewise.
743 * df-scan.c: Likewise.
744 * dfp.c: Likewise.
745 * dojump.c: Likewise.
746 * dominance.c: Likewise.
747 * double-int.c: Likewise.
748 * dse.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.
757 * expr.c: Likewise.
758 * final.c: Likewise.
759 * fixed-value.c: Likewise.
760 * fold-const.c: Likewise.
761 * function.c: Likewise.
762 * fwprop.c: Likewise.
763 * gcse.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.
782 * graph.c: Likewise.
783 * graphite-poly.c: Likewise.
784 * haifa-sched.c: Likewise.
785 * hw-doloop.c: Likewise.
786 * ifcvt.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.
808 * ipa.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.
815 * ira.c: Likewise.
816 * jump.c: Likewise.
817 * langhooks.c: Likewise.
818 * lcm.c: Likewise.
819 * lists.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.
833 * lra.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.
854 * real.c: Likewise.
855 * realmpfr.c: Likewise.
856 * recog.c: Likewise.
857 * ree.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.
865 * reorg.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.
875 * sese.c: Likewise.
876 * shrink-wrap.c: Likewise.
877 * simplify-rtx.c: Likewise.
878 * stack-ptr-mod.c: Likewise.
879 * statistics.c: Likewise.
880 * stmt.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.
975 * tree.c: Likewise.
976 * tsan.c: Likewise.
977 * ubsan.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.
983 * web.c: Likewise.
984 * wide-int-print.cc: Likewise.
985 * wide-int.cc: Likewise.
986 * xcoffout.c: Likewise.
987
988 2015-10-29 H.J. Lu <hongjiu.lu@intel.com>
989
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.
1008
1009 2015-10-29 Richard Biener <rguenther@suse.de>
1010
1011 PR middle-end/56956
1012 * fold-const.c (fold_cond_expr_with_comparison): Do not fold
1013 unsigned conditonal negation to ABS_EXPR.
1014
1015 2015-10-29 Richard Biener <rguenther@suse.de>
1016
1017 * gimple-match-head.c (gimple_simplify): Remove premature checking
1018 of builtin_decl_implicit of function calls we simplify.
1019
1020 2015-10-29 Bin Cheng <bin.cheng@arm.com>
1021
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
1025 and inv_expr_id.
1026
1027 2015-10-28 Tom de Vries <tom@codesourcery.com>
1028
1029 * tree-ssa-structalias.c (intra_create_variable_infos): Remove
1030 superfluous code.
1031
1032 2015-10-28 Jason Merrill <jason@redhat.com>
1033
1034 * Makefile.in (TAGS): Include libcpp and libiberty.
1035
1036 2015-10-28 Nathan Sidwell <nathan@codesourcery.com>
1037
1038 * omp-low.c (MASK_GANG, MASK_WORKER, MASK_VECTOR): Delete.
1039 (extract_omp_for_data): Remove OpenACC special handling of
1040 chunking.
1041
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.
1046
1047 2015-10-28 Richard Henderson <rth@redhat.com>
1048
1049 * tree-eh.c (mark_reachable_handlers): Fix typo in assert.
1050
1051 2015-10-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
1052
1053 PR target/67839
1054 * config/avr/predicates.md (low_io_address_operand): Don't
1055 consider MODE when computing upper bound.
1056 (io_address_operand): Likewise.
1057
1058 2015-10-28 Jan Hubicka <hubicka@ucw.cz>
1059
1060 * fold-const.c (operand_equal_p): Do not verify that types are
1061 compatible for MEM_REFs.
1062
1063 2015-10-28 Richard Biener <rguenther@suse.de>
1064
1065 * gimple-match-head.c (gimple_simplify): Allow VECTOR_CSTs
1066 in simplifying VEC_COND_EXPR conditions.
1067
1068 2015-10-28 Tom de Vries <tom@codesourcery.com>
1069
1070 * tree-ssa-structalias.c (intra_create_variable_infos): Don't iterate
1071 into vi_next of a full_var.
1072
1073 2015-10-28 Tom de Vries <tom@codesourcery.com>
1074
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.
1093
1094 2015-10-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1095
1096 * config/aarch64/aarch64.md (call, call_value, sibcall): Handle noplt.
1097 (sibcall_value): Likewise.
1098
1099 2015-10-28 Nathan Sidwell <nathan@codesourcery.com>
1100
1101 * config/nvptx/nvptx.h (struct machine_function): Add
1102 axis_predicate.
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.
1143 (nvptx_wsync): 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
1147 neutering.
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.
1153
1154 2015-10-28 Richard Biener <rguenther@suse.de>
1155
1156 * fold-const.c (negate_expr_p): Adjust the division case to
1157 properly avoid introducing undefined overflow.
1158 (fold_negate_expr): Likewise.
1159
1160 2015-10-28 Richard Biener <rguenther@suse.de>
1161
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.
1166
1167 2015-10-28 Richard Biener <rguenther@suse.de>
1168
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.
1173
1174 2015-10-28 Richard Biener <rguenther@suse.de>
1175
1176 PR middle-end/68067
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.
1181
1182 2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
1183
1184 * omp-low.c (struct omp_context): Remove gwv_below, gwv_this
1185 fields.
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.
1203
1204 2015-10-27 Mikhail Maltsev <maltsevm@gmail.com>
1205
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):
1238 Likewise.
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
1253 method.
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.
1289 (lra): 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):
1339 Likewise.
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.
1375
1376 2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
1377
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
1403 internal fns.
1404 * target.def (goacc.fork_join): Change sense of hook, clarify
1405 documentation.
1406 * doc/tm.texi: Regenerated.
1407
1408 2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
1409
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.
1417
1418 2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
1419
1420 * omp-low.c (oacc_init_rediction_array): New.
1421 (oacc_initialize_reduction_data): Initialize array.
1422
1423 2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
1424
1425 * omp-low.c (pass_oacc_device_lower::execute): Ignore errors.
1426
1427 2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
1428
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
1435 uniqueness.
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.
1440
1441 2015-10-27 Richard Henderson <rth@redhat.com>
1442
1443 PR rtl-opt/67609
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.
1449
1450 2015-10-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1451
1452 PR target/68102
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.
1456
1457 2015-10-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1458
1459 * config/aarch64/aarch64.c (aarch64_output_simd_mov_immediate):
1460 Handle floating point inner modes properly.
1461
1462 2015-10-27 Alan Hayward <alan.hayward@arm.com>
1463
1464 * tree-vect-looop.c
1465 (vectorizable_live_operation): Change iterator.
1466
1467 2015-10-27 Abderrazek Zaafrani <a.zaafrani@samsung.com>
1468 Aditya Kumar <aditya.k7@samsung.com>
1469
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
1473 isl_schedule_node.
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
1477
1478 2015-10-27 H.J. Lu <hongjiu.lu@intel.com>
1479
1480 PR target/67215
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
1485 GOT memory operand.
1486
1487 2015-10-27 Richard Biener <rguenther@suse.de>
1488
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.
1493
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>
1499
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
1504 __SH_FDPIC__.
1505 * config/sh/sh-mem.cc (expand_block_move): Support FDPIC for calls to
1506 library functions.
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
1510 declarations.
1511 * config/sh/sh.c (TARGET_ASM_INTEGER, sh_assemble_integer): Implement
1512 target hook.
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
1519 for FDPIC.
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):
1544 Handle -mfdpic.
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
1549 FDPIC_SELF_SPECS.
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
1554 constants.
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.
1572
1573
1574 2015-10-27 Alan Lawrence <alan.lawrence@arm.com>
1575
1576 PR tree-optimization/65963
1577 * tree-scalar-evolution.c (interpret_rhs_expr): Handle some LSHIFT_EXPRs
1578 as equivalent MULT_EXPRs.
1579
1580 2015-10-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1581
1582 PR target/67929
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.
1586
1587 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1588
1589 * builtins.c (fold_builtin_load_exponent): Rename to...
1590 (fold_const_builtin_load_exponent): ...this and only handle
1591 constant arguments.
1592 (fold_builtin_2): Update accordingly.
1593 * match.pd: Add rules previously handled by fold_builtin_load_exponent.
1594
1595 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1596
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.
1602
1603 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1604
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.
1608
1609 2015-10-27 Evandro Menezes <e.menezes@samsung.com>
1610
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.
1617
1618 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1619
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.
1623
1624 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1625
1626 * builtins.c (fold_builtin_fma): Remove constant handling.
1627 (fold_builtin_3): Handle constant fma arguments here.
1628
1629 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1630
1631 * builtins.c (fold_builtin_fabs): Remove constant handling.
1632 (fold_builtin_abs): Likewise.
1633
1634 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1635
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.
1639
1640 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1641
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.
1645
1646 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1647
1648 * match.pd: Handle sqrt(x) cmp 0 specially.
1649
1650 2015-10-27 Ilya Enkovich <enkovich.gnu@gmail.com>
1651
1652 * tree-vect-generic.c (expand_vector_operations_1): Check
1653 optab type before using it.
1654
1655 2015-10-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1656
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.
1670
1671 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1672
1673 * builtins.c (fold_builtin_exponent): Delete.
1674 (fold_builtin_2): Handle constant expN arguments here.
1675 * match.pd: Fold expN(logN(x)) -> x.
1676
1677 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1678
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.
1682
1683 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1684
1685 * builtins.c (fold_builtin_pow): Delete in favor of...
1686 (fold_const_builtin_pow): ...this new function. Only handle constant
1687 arguments.
1688 (fold_builtin_2): Update accordingly.
1689 * match.pd: Add rules previously handled by fold_builtin_pow.
1690
1691 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1692
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).
1697
1698 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
1699
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.
1702
1703 2015-10-27 Richard Biener <rguenther@suse.de>
1704
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
1710 it instead of cfun.
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
1722 instead of cfun.
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):
1736 Adjust prototype.
1737 * tree-ssa-loop.c (tree_ssa_loop_done): Adjust.
1738 * tree-ssa.c (delete_tree_ssa): Add function argument and use it
1739 instead of cfun.
1740 * tree-ssa.h (delete_tree_ssa): Adjust prototype.
1741 * tree-ssanames.c (fini_ssanames): Add function argument and use it
1742 instead of cfun.
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
1746 instead of cfun.
1747 * value-prof.h (free_histograms): Adjust prototype.
1748
1749 2015-10-27 Thomas Schwinge <thomas@codesourcery.com>
1750
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.
1754
1755 2015-10-27 Tom de Vries <tom@codesourcery.com>
1756
1757 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add and use var
1758 field_type.
1759
1760 2015-10-27 Bin Cheng <bin.cheng@arm.com>
1761
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
1766 address uses.
1767
1768 2015-10-26 Doug Evans <dje@google.com>
1769
1770 * config/linux.h (INCLUDE_DEFAULTS): Add INCLUDE_DEFAULTS_MUSL_LOCAL.
1771
1772 2015-10-26 Eric Botcazou <ebotcazou@adacore.com>
1773
1774 * match.pd (fold_widened_comparison): Apply simplifications to all
1775 integral types.
1776
1777 2015-10-26 Simon Dardis <simon.dardis@imgtec.com>
1778
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.
1784
1785 2015-10-26 Jeff Law <law@redhat.com>
1786
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.
1790
1791 2015-10-26 Richard Biener <rguenther@suse.de>
1792 Dominik Vogt <vogt@linux.vnet.ibm.com>
1793
1794 PR middle-end/67443
1795 * alias.c (ao_ref_from_mem): Remove promoted subreg handling.
1796 Properly prune ref->ref for accesses outside of ref.
1797
1798 2015-10-26 Richard Sandiford <richard.sandiford@arm.com>
1799
1800 * gimple-fold.c (replace_stmt_with_simplification): Don't allow
1801 new statements to be inserted if inplace. Allow calls to have
1802 nonempty sequences.
1803
1804 2015-10-26 Richard Biener <rguenther@suse.de>
1805
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
1809 replace_uses_by.
1810 * tree-ssa-threadedge.c: Remove builtins.h include, include
1811 gimple-fold.h
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
1816 opportunities.
1817
1818 2015-10-26 Richard Biener <rguenther@suse.de>
1819
1820 * match.pd ((A & ~B) - (A & B) -> (A ^ B) - B): Add missing :c.
1821 ( (X & ~Y) | (~X & Y) -> X ^ Y): Remove redundant :c.
1822
1823 2015-10-26 Alan Hayward <alan.hayward@arm.com>
1824
1825 * tree-vect-loop.c (vect_create_epilog_for_reduction): Fix
1826 VEC_COND_EXPR types.
1827
1828 2015-10-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1829
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.
1833
1834 2015-10-26 Kaz Kojima <kkojima@gcc.gnu.org>
1835
1836 PR target/68091
1837 * config/sh/sh.c (sh_vector_mode_supported_p): Use
1838 TARGET_SHMEDIA_FPU instead of TARGET_FPU_ANY.
1839
1840 2015-10-26 Tom de Vries <tom@codesourcery.com>
1841
1842 * tree-ssa-structalias.c (make_restrict_var_constraints): New function,
1843 factored out of ...
1844 (intra_create_variable_infos): ... here.
1845
1846 2015-10-26 Tom de Vries <tom@codesourcery.com>
1847
1848 * tree-ssa-structalias.c (intra_create_variable_infos): Add
1849 restrict_pointer_p and recursive_restrict_p variables.
1850
1851 2015-10-26 Tom de Vries <tom@codesourcery.com>
1852
1853 * tree-ssa-structalias.c (intra_create_variable_infos): Inline
1854 get_vi_for_tree call.
1855
1856 2015-10-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1857
1858 PR middle-end/67989
1859 * optabs.c (expand_atomic_compare_and_swap): Handle case when
1860 ptarget_oval or ptarget_bool are const0_rtx.
1861
1862 2015-10-26 Christian Bruel <christian.bruel@st.com>
1863
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.
1869
1870 2015-10-26 Richard Biener <rguenther@suse.de>
1871
1872 * alloc-pool.h (base_pool_allocator): Use placement new.
1873 (base_pool_allocator::remove): Likewise. Compute size outside of
1874 flag_checking.
1875
1876 2015-10-26 Richard Sandiford <richard.sandiford@arm.com>
1877
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}
1881 arguments here.
1882 * match.pd: Add rules previously handled by fold_fixed_mathfn
1883 and fold_builtin_int_roundingfn.
1884
1885 2015-10-26 Richard Sandiford <richard.sandiford@arm.com>
1886
1887 * match.pd: Use macros to define built-in operator lists.
1888
1889 2015-10-20 Richard Sandiford <richard.sandiford@arm.com>
1890 Richard Biener <rguenther@suse.de>
1891
1892 * genmatch.c (dt_simplify::gen): Skip captures that are
1893 part of the result.
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).
1898
1899 2015-10-26 Mikhail Maltsev <maltsevm@gmail.com>
1900
1901 * alloc-pool.h (base_pool_allocator::initialize, ::allocate): Remove
1902 conditional compilation.
1903 (base_pool_allocator::remove): Use flag_checking.
1904
1905 2015-10-25 John David Anglin <danglin@gcc.gnu.org>
1906
1907 * config/pa/som.h (EH_FRAME_THROUGH_COLLECT2): Define.
1908
1909 PR middle-end/68079
1910 * dojump.c (do_compare_and_jump): Canonicalize both function and
1911 method types.
1912
1913 2015-10-25 Uros Bizjak <ubizjak@gmail.com>
1914
1915 PR target/68084
1916 * config/i386/i386.c (ix86_md_asm_adjust) [case 'a']: Use NE code
1917 for =@ccae.
1918
1919 2015-10-23 Jan Hubicka <hubicka@ucw.cz>
1920
1921 PR ipa/pr67600
1922 * ipa-polymorphic-call.c
1923 (ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
1924 instance offset with offset of outer type.
1925
1926 2015-10-23 Jan Hubicka <hubicka@ucw.cz>
1927
1928 * fold-const.c (operand_equal_p): Handle VIEW_CONVERT_EXPR.
1929
1930 2015-10-23 Caroline Tice <cmtice@google.com>
1931
1932 (from Richard Biener
1933 * tree.c (int_cst_hasher::hash): Replace XOR with more efficient
1934 call to iterative_hash_host_wide_int.
1935
1936 2015-10-23 David Edelsohn <dje.gcc@gmail.com>
1937
1938 * config.gcc (powerpc-ibm-aix[6789]) [default_use_cxa_atexit]:
1939 Define as yes.
1940
1941 2015-10-23 Ilya Enkovich <enkovich.gnu@gmail.com>
1942
1943 * tree-vect-generic.c (expand_vector_operations_1): Check
1944 optab exists before use it.
1945
1946 2015-10-23 Ilya Enkovich <enkovich.gnu@gmail.com>
1947
1948 * tree-vect-generic.c (expand_vector_condition): Avoid
1949 uninitialized variable warning.
1950
1951 2015-10-23 Jeff Law <law@redhat.com>
1952
1953 * passes.c (execute_function_todo): Do not call flush_ssaname_freelist
1954 here. Instead...
1955 (execute_todo): Call it here.
1956 * tree-ssanames.c (make_ssa_name_fn): Unconditionally gather reuse
1957 statistics
1958 (pass_release_ssa_names::execute): Do not call flusH_ssaname_freelist.
1959
1960 2015-10-23 Gregor Richards <gregor.richards@uwaterloo.ca>
1961 Szabolcs Nagy <szabolcs.nagy@arm.com>
1962
1963 * config.gcc (enable_secureplt): Add *-linux*-musl*.
1964
1965 2015-10-23 Jeff Law <law@redhat.com>
1966
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.
1971
1972 2015-10-23 Gregor Richards <gregor.richards@uwaterloo.ca>
1973 Szabolcs Nagy <szabolcs.nagy@arm.com>
1974
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.
1980
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.
1988
1989 * config/rs6000/sysv4le.h (MUSL_DYNAMIC_LINKER_E): Define.
1990
1991 2015-10-23 Jan Hubicka <hubicka@ucw.cz>
1992
1993 * fold-const.c (operand_equal_p): Do not compare TYPE_MODE when
1994 comparing addresses.
1995
1996 2015-10-23 Jan Hubicka <hubicka@ucw.cz>
1997
1998 * fold-const.c (operand_equal_p): Handle matching of vector
1999 constructors.
2000
2001 2015-10-23 David Edelsohn <dje.gcc@gmail.com>
2002
2003 * doc/install.texi (*-ibm-aix*): Additional information for AIX 7.1.
2004
2005 2015-10-23 Steve Ellcey <sellcey@imgtec.com>
2006 Andrew Pinski <apinski@cavium.com>
2007
2008 PR rtl-optimization/67736
2009 * combine.c (simplify_comparison): Use gen_lowpart_or_truncate instead
2010 of gen_lowpart.
2011
2012 2015-10-23 Ilya Enkovich <enkovich.gnu@gmail.com>
2013
2014 PR middle-end/68066
2015 * tree.c (build_truth_vector_type): Support BLK mode
2016 returned for boolean vector.
2017
2018 2015-10-23 Alan Hayward <alan.hayward@arm.com>
2019
2020 PR tree-optimization/65947
2021 * tree-vect-loop.c
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
2029 vect_max_reduc
2030
2031 2015-10-23 Richard Biener <rguenther@suse.de>
2032
2033 * Makefile.in (build/genmatch.o): Properly depend on is-a.h, tree.def
2034 and builtins.def.
2035
2036 2015-10-23 Richard Biener <rguenther@suse.de>
2037 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2038
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.
2042
2043 * match.pd (minus (bit_and:cs @0 (bit_not @1)) (bit_and:s @0 @1)):
2044 New simplifier.
2045 (minus (bit_and:s @0 INTEGER_CST@2) (bit_and:s @0 INTEGER_CST@1)):
2046 New simplifier.
2047 (minus (bit_and:s @0 @1) (bit_and:cs @0 (bit_not @1))):
2048 New simplifier.
2049 (bit_ior:c (bit_and:c @0 (bit_not @1)) (bit_and:c (bit_not @0) @1)):
2050 New simplifier.
2051 (bit_ior:c (bit_and @0 INTEGER_CST@2) (bit_and (bit_not @0)
2052 INTEGER_CST@1)): New simplifier.
2053
2054 2015-10-23 Richard Sandiford <richard.sandiford@arm.com>
2055
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
2060 arguments here.
2061 * convert.c (convert_to_real): Remove narrowing of rounding
2062 functions.
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
2082 nonnegative.
2083
2084 2015-10-23 Tom de Vries <tom@codesourcery.com>
2085
2086 * tree-ssa-structalias.c (intra_create_variable_infos): Use
2087 make_constraint_from.
2088
2089 2015-10-23 Tom de Vries <tom@codesourcery.com>
2090
2091 * tree-ssa-structalias.c (create_variable_info_for_1): Add missing
2092 setting of is_full_var in case of a single field.
2093
2094 2015-10-22 Martin Sebor <msebor@redhat.com>
2095
2096 PR driver/68043
2097 * config/i386/i386.opt: Add missing periods to the ends of sentences.
2098 * config/msp430/msp430.opt: Same.
2099
2100 2015-10-21 David Wohlferd <dw@LimeGreenSocks.com>
2101
2102 * doc/extend.exp (Global Register Variables): Rewrite.
2103
2104 2015-10-22 Jeff Law <law@redhat.com>
2105
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.
2109
2110 2015-10-22 Nick Clifton <nickc@redhat.com>
2111
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
2115 assembler.
2116 * doc/invoke.texi: Document new options.
2117
2118 2015-10-22 Richard Biener <rguenther@suse.de>
2119
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.
2124
2125 2015-10-22 Richard Biener <rguenther@suse.de>
2126
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.
2131
2132 2015-10-22 Richard Biener <rguenther@suse.de>
2133
2134 PR middle-end/68046
2135 PR middle-end/61893
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.
2139
2140 2015-10-22 Richard Biener <rguenther@suse.de>
2141
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.
2147
2148 2015-10-22 Richard Sandiford <richard.sandiford@arm.com>
2149
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.
2153
2154 2015-10-22 Richard Sandiford <richard.sandiford@arm.com>
2155
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.
2163
2164 2015-10-22 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2165
2166 PR target/68015
2167 * config/s390/s390.md (mov<mode>cc): Emit compare only if we don't
2168 already have a comparison result.
2169
2170 2015-10-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2171
2172 PR target/63304
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):
2182 Declare.
2183
2184 2015-10-21 Martin Sebor <msebor@redhat.com>
2185
2186 PR driver/68043
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.
2192
2193 * common.opt: End each sentence that describes an option with
2194 a period.
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.
2269
2270 2015-10-21 Aditya Kumar <aditya.k7@samsung.com>
2271 Sebastian Pop <s.pop@samsung.com>
2272
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.
2281
2282 2015-10-21 Aditya Kumar <aditya.k7@samsung.com>
2283 Sebastian Pop <s.pop@samsung.com>
2284
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.
2288
2289 2015-10-21 Mikhail Maltsev <maltsevm@gmail.com>
2290
2291 * config.in: Regenerate.
2292 * configure: Regenerate.
2293 * configure.ac (CHECKING_P): Define.
2294 * system.h: Use CHECKING_P.
2295
2296 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
2297
2298 PR ipa/67056
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.
2303
2304 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
2305
2306 * fold-const.c (operand_equal_p): Add code matching empty constructors.
2307
2308 2015-10-21 Eric Botcazou <ebotcazou@adacore.com>
2309
2310 * tree.def (CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR): Tweak
2311 comments.
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.
2318
2319 2015-10-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2320
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.
2339
2340 2015-10-21 Richard Henderson <rth@redhat.com>
2341
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.
2351 * tm.texi: Update.
2352
2353 * expr.c (expand_expr_real_2): Use convert_modes on disjoint
2354 address spaces.
2355
2356 2015-10-21 Richard Sandiford <richard.sandiford@arm.com>
2357
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.
2361
2362 2015-10-21 Richard Sandiford <richard.sandiford@arm.com>
2363
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.
2374
2375 2015-10-21 Richard Sandiford <richard.sandiford@arm.com>
2376
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.
2386
2387 2015-10-21 Aditya Kumar <aditya.k7@samsung.com>
2388 Sebastian Pop <s.pop@samsung.com>
2389
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.
2393
2394 2015-10-21 Aditya Kumar <aditya.k7@samsung.com>
2395
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
2401 of dr_info.
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.
2407
2408 2015-10-21 Aditya Kumar <aditya.k7@samsung.com>
2409
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.
2421 (free_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.
2453
2454 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
2455
2456 PR middle-end/67966
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.
2463
2464 2015-10-21 Nathan Sidwell <nathan@codesourcery.com>
2465
2466 * omp-low.c (check_omp_nesting_restrictions): Check OpenACC loop
2467 nesting.
2468
2469 2015-10-21 Ilya Enkovich <enkovich.gnu@gmail.com>
2470
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
2478 for boolean vector.
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
2494 condition operand.
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
2498 vector type.
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.
2508
2509 2015-10-21 Ilya Enkovich <enkovich.gnu@gmail.com>
2510
2511 * omp-low.c (simd_clone_create): Set in_other_partition
2512 for created clones.
2513
2514 2015-10-21 David Wohlferd <dw@LimeGreenSocks.com>
2515
2516 * doc/extend.exp (Local Register Variables): Rewrite.
2517
2518 2015-10-21 Richard Sandiford <richard.sandiford@arm.com>
2519
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).
2524
2525 2015-10-21 Uros Bizjak <ubizjak@gmail.com>
2526
2527 PR target/68018
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
2530 is overriden.
2531
2532 2015-10-21 Richard Biener <rguenther@suse.de>
2533
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.
2537
2538 2015-10-21 Richard Biener <rguenther@suse.de>
2539
2540 PR middle-end/68031
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.
2545
2546 2015-10-21 Richard Biener <rguenther@suse.de>
2547
2548 PR tree-optimization/68026
2549 * tree-ssa-ccp.c (get_value_for_expr): Zero-extend mask for
2550 unsigned VARYING values.
2551
2552 2015-10-21 Maxim Ostapenko <m.ostapenko@partner.samsung.com>
2553
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.
2566
2567 2015-10-21 Jeff Law <law@redhat.com>
2568
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.
2577
2578 * varasm.c (handle_vtv_comdat_section): Mark 2nd parameter with
2579 ATTRIBUTE_UNUSED.
2580
2581 2015-10-21 Richard Biener <rguenther@suse.de>
2582 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2583
2584 * fold-const.c (fold_binary_loc) : Move (-A) * (-B) -> A * B
2585 to match.pd.
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.
2590
2591 * match.pd (mult:c @0 (convert? (lshift integer_onep@1 @2))):
2592 New simplifier.
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))
2596 : New simplifier.
2597 (mult:c (convert1? (negate @0)) (convert2? negate_expr_p@1)):
2598 New simplifier.
2599 (match (logical_inverted_value @0) (truth_not @0)) : New Predicate.
2600
2601 2015-10-21 Gregor Richards <gregor.richards@uwaterloo.ca>
2602 Szabolcs Nagy <szabolcs.nagy@arm.com>
2603 Alan Modra <amodra@gmail.com>
2604
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.
2610
2611 2015-10-20 Gregor Richards <gregor.richards@uwaterloo.ca>
2612 Szabolcs Nagy <szabolcs.nagy@arm.com>
2613
2614 * config/sh/linux.h (MUSL_DYNAMIC_LINKER): Define.
2615 (MUSL_DYNAMIC_LINKER_E, MUSL_DYNAMIC_LINKER_FP): Define.
2616
2617 2015-10-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2618
2619 * config/aarch64/aarch64.c (aarch64_mode_valid_for_sched_fusion_p):
2620 New function.
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.
2626
2627 2015-10-20 Vladimir Makarov <vmakarov@redhat.com>
2628
2629 PR rtl-optimization/67609
2630 * lra-splill.c (lra_final_code_change): Don't remove all
2631 sub-registers.
2632
2633 2015-10-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2634
2635 * simplify-rtx.c (simplify_binary_operation): If either operand was
2636 a constant pool reference use them if all other simplifications failed.
2637
2638 2015-10-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2639
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
2648 prototype.
2649 (aarch64_vec_fpconst_pow_of_2): Likewise.
2650 * config/aarch64/predicates.md (aarch64_fp_pow2): New predicate.
2651 (aarch64_fp_vec_pow2): Likewise.
2652
2653 2015-10-20 Uros Bizjak <ubizjak@gmail.com>
2654
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.
2660
2661 2015-10-20 H.J. Lu <hongjiu.lu@intel.com>
2662
2663 PR target/66810
2664 * cgraphbuild.c (pass_build_cgraph_edges::execute): Skip local
2665 error_mark_node decls.
2666
2667 2015-10-20 H.J. Lu <hongjiu.lu@intel.com>
2668
2669 PR target/67963
2670 PR target/67985
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
2678 MASK_FLOAT_RETURNS.
2679 (ix86_valid_target_attribute_tree): Enable FPMATH_387 only if
2680 80387 is supported.
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.
2685
2686 2015-10-20 Richard Biener <rguenther@suse.de>
2687
2688 PR tree-optimization/68017
2689 * tree-tailcall.c (eliminate_tail_call): Remove stmts backwards.
2690
2691 2015-10-20 Martin Liska <mliska@suse.cz>
2692
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
2701 versionability.
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.
2707
2708 2015-10-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2709
2710 PR other/67868
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.
2714
2715 2015-10-20 Szabolcs Nagy <szabolcs.nagy@arm.com>
2716
2717 PR target/66912
2718 * varasm.c (default_binds_local_p_2): Turn on extern_protected_data.
2719
2720 2015-10-20 Arkadiusz Drabczyk <arkadiusz@drabczyk.org>
2721
2722 * doc/extend.texi: Update documentation WRT inline functions.
2723
2724 2015-10-20 Alan Modra <amodra@gmail.com>
2725
2726 PR go/66870
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.
2730
2731 2015-10-19 Pierre-Marie de Rodat <derodat@adacore.com>
2732
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
2741 declarations.
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.
2750 (problem_MIR): 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.
2760
2761 2015-10-19 Segher Boessenkool <segher@kernel.crashing.org>
2762
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.
2766
2767 2015-10-19 David Wohlferd <dw@LimeGreenSocks.com>
2768
2769 * doc/extend.texi (Explicit Register Variables): Simplify and
2770 avoid unnecessary and confusion abbreviations. Update cross
2771 references.
2772 doc/implement-c.tex: Update cross reference.
2773
2774 2015-10-19 Jeff Law <law@redhat.com>
2775
2776 * tree-ssa-threadupdate.c (valid_jump_thread_path): Reject paths
2777 that create irreducible loops unless the path elimiantes a multiway
2778 branch.
2779
2780 2015-10-19 Richard Biener <rguenther@suse.de>
2781
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
2790 blocks.
2791
2792 2015-10-19 Richard Biener <rguenther@suse.de>
2793
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.
2799
2800 2015-10-19 H.J. Lu <hongjiu.lu@intel.com>
2801
2802 * config/i386/i386.c (ix86_expand_vector_move): Use
2803 GET_MODE_BITSIZE for IA MCU psABI to get vector natural
2804 alignment.
2805
2806 2015-10-19 H.J. Lu <hongjiu.lu@intel.com>
2807
2808 * doc/invoke.texi: Replace @optindex with @opindex.
2809
2810 2015-10-19 H.J. Lu <hongjiu.lu@intel.com>
2811
2812 PR target/67995
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.
2816
2817 2015-10-19 Joost VandeVondele <vondele@gnu.gcc.org>
2818
2819 PR middle-end/68002
2820 * common.opt (fkeep-static-functions): New option.
2821 * doc/invoke.texi: Document it.
2822 * cgraphunit.c (cgraph_node::finalize_function): Use it.
2823
2824 2015-10-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2825
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.
2833
2834 2015-10-18 Mikhail Maltsev <maltsevm@gmail.com>
2835
2836 PR other/65800
2837 * gengtype.c (dump_type): Handle TYPE_UNDEFINED correctly.
2838
2839 2015-10-18 Iain Sandoe <iain@codesourcery.com>
2840
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.
2846
2847 2015-10-18 Iain Sandoe <iain@codesourcery.com>
2848
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.
2856
2857 2015-10-18 Iain Sandoe <iain@codesourcery.com>
2858
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.
2862
2863 2015-10-18 Iain Sandoe <iain@codesourcery.com>
2864
2865 * config/darwin-driver.c: Adjust includes to add diagnostic-core.
2866
2867 2015-10-16 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2868
2869 * lra-constraints.c (add_next_usage_insn): Change argument type
2870 from rtx to rtx_insn *.
2871
2872 2015-10-16 H.J. Lu <hongjiu.lu@intel.com>
2873
2874 * i386/x86-tune.def (X86_TUNE_ALWAYS_FANCY_MATH_387): Disable
2875 for Lakemont.
2876
2877 2015-10-16 Andrew MacLeod <amacleod@redhat.com>
2878
2879 * config/tilepro/gen-mul-tables.cc: Adjust include files.
2880 * config/tilegx/mul-tables.c: Regenerate.
2881 * config/tilepro/mul-tables.c: Regenerate.
2882
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.
2989
2990 2015-10-16 Christian Bruel <christian.bruel@st.com>
2991
2992 PR target/67745
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):
2996 New hook.
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.
3003
3004 2015-10-16 Christian Bruel <christian.bruel@st.com>
3005
3006 PR target/67745
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.
3013
3014 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
3015
3016 Revert:
3017 * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
3018 empty constructors.
3019
3020 2015-10-16 Eric Botcazou <ebotcazou@adacore.com>
3021
3022 * tree.c (recompute_tree_invariant_for_addr_expr): Assert that the
3023 argument is an ADDR_EXPR.
3024
3025 2015-10-16 Richard Biener <rguenther@suse.de>
3026
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.
3034
3035 2015-10-16 Richard Biener <rguenther@suse.de>
3036
3037 * tree-nested.h (build_addr): Adjust prototype.
3038 * tree-nested.c (build_addr): Remove context argument and use
3039 mark_addressable.
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.
3050
3051 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
3052
3053 * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
3054 empty constructors.
3055
3056 2015-10-16 Michael Collison <michael.collison@linaro.org>
3057 Andrew Pinski <andrew.pinski@caviumnetworks.com>
3058
3059 * match.pd ((x < y) && (x < z) -> x < min (y,z),
3060 (x > y) and (x > z) -> x > max (y,z))
3061
3062 2015-10-15 Gregor Richards <gregor.richards@uwaterloo.ca>
3063 Szabolcs Nagy <szabolcs.nagy@arm.com>
3064
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.
3069
3070 2015-10-15 Marek Polacek <polacek@redhat.com>
3071
3072 * tree-ssa-reassoc.c (attempt_builtin_copysign): Call
3073 gimple_call_builtin instead of is_gimple_call.
3074
3075 2015-10-15 Richard Biener <rguenther@suse.de>
3076
3077 * tree-vect-stmts.c (vect_init_vector): Remove unused vars.
3078
3079 2015-10-15 Richard Biener <rguenther@suse.de>
3080
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.
3092
3093 2015-10-15 Richard Sandiford <richard.sandiford@arm.com>
3094
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.
3104
3105 2015-10-15 Marek Polacek <polacek@redhat.com>
3106
3107 PR tree-optimization/67953
3108 * match.pd (X - (X / Y) * Y): Don't change signedness of @0.
3109
3110 2015-10-15 Jiong Wang <jiong.wang@arm.com>
3111
3112 * config.gcc: Recognize "." in architecture base name for AArch64.
3113
3114 2015-10-14 Uros Bizjak <ubizjak@gmail.com>
3115
3116 * config/mips/mips.h (MIPS_STACK_ALIGN): Implement using
3117 ROUND_UP macro.
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
3122 rounded_size.
3123
3124 2015-10-14 Eric Botcazou <ebotcazou@adacore.com>
3125
3126 * gimplify.c (gimplify_addr_expr) <MEM_REF>: New case.
3127
3128 2015-10-14 Peter Bergner <bergner@vnet.ibm.com>
3129 Torvald Riegel <triegel@redhat.com>
3130
3131 PR target/67281
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.
3142
3143 2015-10-14 Uros Bizjak <ubizjak@gmail.com>
3144
3145 PR target/67967
3146 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Do not add
3147 REG_CFA_EXPRESSION to aligned SSE stores.
3148
3149 2015-10-14 Jeff Law <law@redhat.com>
3150
3151 * tree-ssa-threadupdate.c (thread_through_all_blocks): Bump
3152 num_threaded_edges for successful FSM threads too.
3153
3154 2015-10-14 Richard Biener <rguenther@suse.de>
3155
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.
3185
3186 2015-10-14 Richard Biener <rguenther@suse.de>
3187
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.
3193
3194 2015-10-14 Marek Polacek <polacek@redhat.com>
3195
3196 PR tree-optimization/67815
3197 * tree-ssa-reassoc.c (attempt_builtin_copysign): New function.
3198 (reassociate_bb): Call it.
3199
3200 2015-10-14 Richard Biener <rguenther@suse.de>
3201
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.
3212
3213 2015-10-14 Dominik Vogt <vogt@linux.vnet.ibm.com>
3214
3215 * targhooks.c (default_target_option_pragma_parse): Do not warn if
3216 called on behalf of "#pragma GCC pop_options".
3217
3218 2015-10-14 Tom de Vries <tom@codesourcery.com>
3219
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.
3224
3225 2015-10-13 Mikhail Maltsev <maltsevm@gmail.com>
3226
3227 * common.opt: Add flag_checking.
3228 * system.h (CHECKING_P): Define.
3229
3230 2015-10-13 Jakub Jelinek <jakub@redhat.com>
3231 Aldy Hernandez <aldyh@redhat.com>
3232 Ilya Verbin <ilya.verbin@intel.com>
3233
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
3258 GIMPLE_OMP_ORDERED.
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,
3267 renumber
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
3279 inline functions.
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
3287 GIMPLE_OMP_ORDERED.
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
3314 data sharing.
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
3338 taskloop if needed.
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
3342 GOMP_MAP_POINTER.
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}
3355 clauses.
3356 (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task):
3357 Adjust gimplify_scan_omp_clauses and gimplify_adjust_omp_clauses
3358 callers.
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,
3391 adjust type.
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
3397 field.
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
3417 of the tree itself.
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
3426 kinds.
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
3452 OMP_CLAUSE_DECL.
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
3464 GOMP_task call.
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
3475 functions.
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
3480 callers.
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
3485 functions.
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):
3517 New functions.
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
3525 per the new ABI.
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}
3545 clauses.
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
3558 operand.
3559 (OMP_ORDERED): Move before OMP_SINGLE. Add OMP_ORDERED_CLAUSES
3560 operand.
3561 (OMP_TASKLOOP, OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA): New tree
3562 codes.
3563 * tree.h (OMP_BODY): Replace OMP_CRITICAL with OMP_TASKGROUP.
3564 (OMP_CLAUSE_SET_MAP_KIND): Cast to unsigned int rather than unsigned
3565 char.
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.
3604
3605 2015-10-13 Uros Bizjak <ubizjak@gmail.com>
3606
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.
3615
3616 2015-10-13 Alexandre Oliva <aoliva@redhat.com>
3617
3618 PR middle-end/67912
3619 * expmed.c (store_bit_field_1): Adjust mode of BLKmode inputs.
3620
3621 2015-10-13 Uros Bizjak <ubizjak@gmail.com>
3622
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
3633 rounded_size.
3634
3635 2015-10-13 Nikolai Bozhenov <n.bozhenov@samsung.com>
3636
3637 * gcc/rtl.h (print_insn): Fix prototype.
3638
3639 2015-10-13 Tom de Vries <tom@codesourcery.com>
3640
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
3646 with -1.
3647
3648 2014-10-13 Yuri Rumyantsev <ysrumyan@gmail.com>
3649
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.
3653
3654 2015-10-13 Jeff Law <law@redhat.com>
3655
3656 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
3657 Allow single block jump threading paths.
3658
3659 2015-10-13 Tom de Vries <tom@codesourcery.com>
3660
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.
3666
3667 2015-10-13 Tom de Vries <tom@codesourcery.com>
3668
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.
3678
3679 2015-10-13 Tom de Vries <tom@codesourcery.com>
3680
3681 PR tree-optimization/67476
3682 * omp-low.c (expand_omp_for_generic): Handle original loop tree.
3683
3684 2015-10-13 Richard Biener <rguenther@suse.de>
3685
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
3699 here.
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.
3705
3706 2015-10-13 Richard Sandiford <richard.sandiford@arm.com>
3707
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.
3712
3713 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
3714
3715 revert:
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.
3719
3720 2015-10-12 Jeff Law <law@redhat.com>
3721
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.
3730
3731 * tree-ssa-threadbackward.c (fsm_find_thread_path): Remove
3732 restriction that traced SSA_NAME is a user variable.
3733
3734 2015-10-12 Tom de Vries <tom@codesourcery.com>
3735
3736 PR tree-optimization/67476
3737 * omp-low.c (expand_omp_for_generic): Add missing phis.
3738
3739 2015-10-12 Tom de Vries <tom@codesourcery.com>
3740
3741 PR tree-optimization/67476
3742 * omp-low.c (expand_omp_for_generic): Handle simple latch.
3743
3744 2015-10-12 Christophe Lyon <christophe.lyon@linaro.org>
3745
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.
3754
3755 2015-10-12 Uros Bizjak <ubizjak@gmail.com>
3756
3757 * config/rs6000/rs6000.h (RS6000_ALIGN): Implement using
3758 ROUND_UP macro.
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
3764 rounded_size.
3765
3766 2015-10-12 Uros Bizjak <ubizjak@gmail.com>
3767
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.
3771
3772 2015-10-12 Richard Biener <rguenther@suse.de>
3773
3774 PR ipa/67783
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
3777 quadratic behavior.
3778
3779 2015-10-12 Nick Clifton <nickc@redhat.com>
3780
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
3789 MCU names.
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.
3793
3794 2015-10-12 Richard Biener <rguenther@suse.de>
3795
3796 * tree-vect-loop.c (vect_analyze_loop_operations): Move cost
3797 related code ...
3798 (vect_analyze_loop_2): ... here.
3799
3800 2015-10-11 Jason Merrill <jason@redhat.com>
3801
3802 PR c++/67557
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.
3806
3807 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
3808
3809 * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
3810 counts when these are more informative.
3811
3812 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
3813
3814 * tree-profile.c (tree_profiling): Do not clear
3815 pure/const when not instrumenting.
3816 (pass tree_profile): Add dump of symtab.
3817
3818 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
3819
3820 * fold-const.c (fold_comparsion): Pass OEP_ADDRESS_OF when comparing
3821 addresses.
3822 (fold_addr_of_array_ref_difference): Likewise.
3823
3824 2015-10-11 Jeff Law <law@redhat.com>
3825
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
3831 instead.
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
3836
3837 2015-10-11 Uros Bizjak <ubizjak@gmail.com>
3838
3839 * config/alpha/alpha.h (ALPHA_ROUND): Implement using ROUND_UP macro.
3840
3841 2015-10-11 Segher Boessenkool <segher@kernel.crashing.org>
3842
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.
3847
3848 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3849
3850 * defaults.h (REVERSE_CONDITION): New default definition.
3851 * jump.c (reversed_comparison_code_parts): Adjust.
3852
3853 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3854
3855 * builtins.c (expand_builtin_setjmp_receiver): Don't use #if to
3856 check HARD_FRAME_POINTER_IS_ARG_POINTER.
3857
3858 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3859
3860 * defaults.h (FRAME_ADDR_RTX): New default definition.
3861 * builtins.c (expand_builtin_return_addr): Adjust.
3862
3863 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3864
3865 * defaults.h (DYNAMIC_CHAIN_ADDRESS): New default definition.
3866 * builtins.c (expand_builtin_return_addr): Adjust.
3867
3868 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3869
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.
3875
3876 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3877
3878 * builtins.c (expand_builtin_return_addr): Adjust.
3879 * defaults.h (INITIAL_FRAME_ADDRESS_RTX): New default definition.
3880
3881 2015-10-10 Jan Hubicka <hubicka@ucw.cz>
3882
3883 * tree.c (type_with_interoperable_signedness): New.
3884 (gimple_canonical_types_compatible_p): Use it.
3885 * tree.h (type_with_interoperable_signedness): Declare
3886
3887 2015-10-10 Jan Hubicka <hubicka@ucw.cz>
3888
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.
3892
3893 2015-10-10 Aditya Kumar <aditya.k7@samsung.com>
3894 Sebastian Pop <s.pop@samsung.com>
3895
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.
3902
3903 2015-10-10 Aditya Kumar <aditya.k7@samsung.com>
3904 Sebastian Pop <s.pop@samsung.com>
3905
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.
3911 (print_pdr): Same.
3912 (debug_pdr): Same.
3913 (dump_gbb_cases): Same.
3914 (dump_gbb_conditions): Same.
3915 (print_pdrs): Same.
3916 (debug_pdrs): Same.
3917 (print_pbb_body): Same.
3918 (print_pbb): Same.
3919 (print_scop_params): Same.
3920 (print_scop_context): Same.
3921 (print_scop): Same.
3922 (debug_pbb_domain): Same.
3923 (debug_pbb): Same.
3924 (debug_scop_context): Same.
3925 (debug_scop): Same.
3926 (debug_scop_params): Same.
3927 * graphite-poly.h: Same.
3928 * graphite.c (graphite_transform_loops): Same.
3929
3930 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3931
3932 * function.c (stack_protect_epilogue): Remove as_a<rtx_insn *> ()
3933 call that isn't needed.
3934
3935 2015-10-09 Jeff Law <law@redhat.com>
3936
3937 * tree-ssanames.c (flush_ssaname_freelist): Use splice and truncate
3938 rather than moving each name to the freelist individually.
3939
3940 2015-10-09 Steve Ellcey <sellcey@imgtec.com>
3941
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):
3945 Add prototype.
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):
3956 Document new flags.
3957 * config/mips/mips.opt (mframe-header-opt): Add new option.
3958
3959 2015-10-09 Uros Bizjak <ubizjak@gmail.com>
3960
3961 * config/i386/i386.c
3962 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Use
3963 ROUND_DOWN where applicable.
3964
3965 2015-10-09 Jeff Law <law@redhat.com>
3966
3967 * tree-vect-stmts.c (free_stmt_vec_info): Free the LHS of the
3968 correct statement.
3969
3970 2015-10-09 Renlin Li <renlin.li@arm.com>
3971
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.
3976
3977 2015-10-09 Andre Vieira <andre.simoesdiasvieira@arm.com>
3978
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.
3984
3985 2015-10-09 Alexander Fomin <alexander.fomin@intel.com>
3986
3987 PR target/67895
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>"):
3995 Likewise.
3996 (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Likewise.
3997
3998 2015-10-09 Martin Jambor <mjambor@suse.cz>
3999
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
4003 parameter.
4004 (ipa_sra_modify_function_body): Use FOR_EACH_SSA_DEF_OPERAND to
4005 iterate over definitions.
4006
4007 2015-10-09 James Norris <jnorris@codesourcery.com>
4008
4009 * config/rs6000/rs6000.c (rs6000_offload_options): New.
4010 (TARGET_OFFLOAD_OPTIONS): New.
4011
4012 2015-10-09 Alexandre Oliva <aoliva@redhat.com>
4013
4014 PR middle-end/67891
4015 * cfgexpand.c (set_parm_rtl): Drop is_gimple_reg test.
4016
4017 PR middle-end/67766
4018 * function.c (expand_function_end): Move return value
4019 promotion past the handling of PARALLELs and CONCATs.
4020
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.
4025
4026 2015-10-09 Richard Biener <rguenther@suse.de>
4027
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.
4032
4033 2015-10-09 Richard Biener <rguenth@suse.de>
4034
4035 PR target/67366
4036 * gimple-fold.c (optabs-query.h): Include
4037 (gimple_fold_builtin_memory_op): Allow unaligned stores
4038 when movmisalign_optabs are available.
4039
4040 2015-10-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4041
4042 PR target/67366
4043 * config/arm/arm.md (movmisalign<mode>): New.
4044 * config/arm/iterators.md (HSI): New.
4045
4046 2015-10-09 Richard Biener <rguenther@suse.de>
4047
4048 PR tree-optimization/67891
4049 * gimple-match.h (gimple_simplified_result_is_gimple_val):
4050 New helper.
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.
4061
4062 2015-10-08 Jan Hubicka <hubicka@ucw.cz>
4063
4064 * ipa-icf.c (sem_item::compare_symbol_references): Fix use
4065 of availability.
4066
4067 2015-10-08 Jeff Law <law@redhat.com>
4068
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.
4072
4073 * tree-ssa-loop-im.c (rewrite_bittest): Add missing call to
4074 release_defs.
4075
4076 * tree-stdarg.c (expand_ifn_va_arg_1): Add missing call to
4077 unlink_stmt_vdef and release_ssa_name_fn.
4078
4079 * tree-ssa-dse.c (dse_optimize_stmt): Add missing call to
4080 release_defs.
4081
4082 2015-10-08 H.J. Lu <hongjiu.lu@intel.com>
4083
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.
4087
4088 2015-10-08 Jeff Law <law@redhat.com>
4089
4090 * tree-ssa-phiopt.c (factor_out_conversion): Add missing calls to
4091 release_ssa_name. Fix typo in comment.
4092
4093 2015-10-08 Nathan Sidwell <nathan@acm.org>
4094
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.
4099
4100 2015-10-08 Richard Sandiford <richard.sandiford@arm.com>
4101
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.
4106
4107 2015-10-08 Richard Sandiford <richard.sandiford@arm.com>
4108
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.
4135
4136 2015-10-08 Martin Jambor <mjambor@suse.cz>
4137
4138 * ipa-cp.c (meet_with_1): Make the argument of abs signed. Remove
4139 unnecessary MIN.
4140
4141 2015-10-08 Yuri Rumyantsev <ysrumyan@gmail.com>
4142
4143 * tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi
4144 in the tail of outer-loop.
4145
4146 2015-10-08 David Edelsohn <dje.gcc@gmail.com>
4147
4148 * config/rs6000/rs6000.c (rs6000_xcoff_debug_unwind_info): Always
4149 return UI_NONE.
4150
4151 2015-10-08 Yuri Rumyantsev <ysrumyan@gmail.com>
4152
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.
4168
4169 2015-10-08 Marek Polacek <polacek@redhat.com>
4170
4171 * tree-ssa-reassoc.c (dump_ops_vector): Print newline after each
4172 ops element.
4173
4174 2015-10-08 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4175
4176 PR c/65345
4177 * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
4178 create_tmp_var_raw instead of create_tmp_var.
4179
4180 2015-10-07 Jan Hubicka <hubicka@ucw.cz>
4181
4182 * expr.c (store_expr_with_bounds): Handle aggregate moves from
4183 BLKmode.
4184 * gimple-expr.c (useless_type_conversion_p): Do not use TYPE_CANONICAL
4185 to define gimple type system; compare aggregates only by size.
4186
4187 2015-10-07 Jeff Law <law@redhat.com>
4188
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
4192 unnecessarily.
4193
4194 2015-10-07 Aditya Kumar <aditya.k7@samsung.com>
4195 Sebastian Pop <s.pop@samsung.com>
4196
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.
4204 (new_scop): Same.
4205 (free_scop): Same.
4206 (print_scop): Same.
4207 * graphite-poly.h (struct scop): Rename bbs to pbbs.
4208 (SCOP_BBS): Remove.
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
4219 and pbb.
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.
4228
4229 2015-10-07 David Edelsohn <dje.gcc@gmail.com>
4230
4231 * config/rs6000/xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit
4232 encoding in 64-bit mode.
4233
4234 2015-10-07 Uros Bizjak <ubizjak@gmail.com>
4235
4236 PR target/66697
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.
4248
4249 2015-10-07 Aditya Kumar <aditya.k7@samsung.com>
4250 Sebastian Pop <s.pop@samsung.com>
4251
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.
4258
4259 2015-10-07 Aditya Kumar <aditya.k7@samsung.com>
4260 Sebastian Pop <s.pop@samsung.com>
4261
4262 * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple): Use
4263 an sese_info_p.
4264 (copy_def): Same.
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.
4319
4320 2015-10-07 H.J. Lu <hongjiu.lu@intel.com>
4321
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.
4325
4326 2015-10-07 H.J. Lu <hongjiu.lu@intel.com>
4327
4328 PR bootstrap/67385
4329 * configure.ac (gcc_cv_readelf): Check $READELF_FOR_TARGET.
4330 * configure: Regenerated.
4331
4332 2015-10-07 H.J. Lu <hongjiu.lu@intel.com>
4333
4334 PR target/67850
4335 * config/i386/i386.c (ix86_maybe_switch_abi): Merged with ...
4336 (ix86_set_current_function): This.
4337 (TARGET_EXPAND_TO_RTL_HOOK): Removed.
4338
4339 2015-10-07 Richard Biener <rguenther@suse.de>
4340
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
4347 of inner loop.
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.
4352
4353 2015-10-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4354
4355 PR c/65345
4356 * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv):
4357 Use create_tmp_var_raw instead of create_tmp_var.
4358
4359 2015-10-07 Richard Sandiford <richard.sandiford@arm.com>
4360
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
4367 dconst_sixth.
4368 (fold_builtin_cbrt): Use dconst_sixth and dconst_ninth.
4369
4370 2015-10-06 Jeff Law <law@redhat.com>
4371
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
4375 a basic block.
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
4380 have been removed.
4381 * tree-ssa-dom.c (optimize_stmt): Call remove_jump_threads_including
4382 on each outgoing edges when optimizing away a control statement.
4383
4384 2015-10-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4385
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.
4400
4401 2015-10-06 Sandra Loosemore <sandra@codesourcery.com>
4402
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.
4406
4407 2015-10-07 Kugan Vivekanandarajah <kuganv@linaro.org>
4408
4409 * config/aarch64/iterators.md (vwcore): Add missing cases for
4410 V4HF/V8HF modes.
4411
4412 2015-10-06 Aditya Kumar <aditya.k7@samsung.com>
4413 Sebastian Pop <s.pop@samsung.com>
4414
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.
4426
4427 2015-10-06 Aditya Kumar <aditya.k7@samsung.com>
4428 Sebastian Pop <s.pop@samsung.com>
4429
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.
4438
4439 2015-10-06 Aditya Kumar <aditya.k7@samsung.com>
4440 Sebastian Pop <s.pop@samsung.com>
4441
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
4448 new_poly_dr.
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
4454 code.
4455 (build_base_obj_set_for_drs): Remove.
4456 (dump_alias_graphs): Remove.
4457 (build_scop_drs): Remove dead code.
4458
4459 2015-10-05 Michael Meissner <meissner@linux.vnet.ibm.com>
4460 Peter Bergner <bergner@vnet.ibm.com>
4461
4462 PR target/67808
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
4470 register.
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.
4476
4477 2015-10-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4478
4479 * varasm.c (default_elf_asm_named_section): Remove ATTRIBUTE_UNUSED
4480 from the decl parameter.
4481
4482 2015-10-06 Nathan Sidwell <nathan@codesourcery.com>
4483
4484 PR 67861
4485 * gimple-fold.c (gimple_fold_builtin): Add break after
4486 BUILT_IN_PRINTF_CHK, BUILT_IN_VPRINTF_CHK folding.
4487
4488 2015-10-06 H.J. Lu <hongjiu.lu@intel.com>
4489
4490 * graphite-optimize-isl.c (optimize_isl): Rename scop->ctx
4491 to scop->isl_context.
4492
4493 2015-10-06 Eric Botcazou <ebotcazou@adacore.com>
4494
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.
4499
4500 2015-10-06 Nick Clifton <nickc@redhat.com>
4501
4502 * config.gcc (lm32-elf): Add newlib-stdint.h to tm_file.
4503
4504 2015-10-06 Nick Clifton <nickc@redhat.com>
4505
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
4517 attributes.
4518 (msp430_section_type_flags): Likewise.
4519 * doc/extend.texi: Document the reent, critical, wakeup, noinit
4520 and persistent attributes.
4521
4522 2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
4523 Sebastian Pop <s.pop@samsung.com>
4524
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.
4532
4533 2015-10-05 Aditya Kumar <hiraditya@msn.com>
4534
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
4537 computation.
4538 * sese.c (sese_build_liveouts): Pass only those bbs which are not
4539 in region.
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.
4543
4544 2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
4545
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
4561 gimple_poly_bb_p.
4562 (new_scop): Renamed scop->context to scop->param_context.
4563 (free_scop): Same.
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
4569 gimple_poly_bb_p.
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.
4604
4605 2015-10-06 Uros Bizjak <ubizjak@gmail.com>
4606
4607 PR c/65345
4608 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
4609 create_tmp_var_raw instead of create_tmp_var.
4610
4611 2015-10-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4612
4613 PR c/65345
4614 * config/aarch64/aarch64-builtins.c (aarch64_atomic_assign_expand_fenv):
4615 Use create_tmp_var_raw instead of create_tmp_var.
4616
4617 2015-10-06 Alexander Fomin <alexander.fomin@intel.com>
4618
4619 PR target/67849
4620 * config/i386/sse.md (define_split vec_select/V8FI): Restrict
4621 split for upper-bank registers when target does not support
4622 AVX512VL.
4623 (define_insn "vec_extract_lo_<mode><mask_name>"): Restrict
4624 split when target does not support AVX512VL.
4625
4626 2015-10-06 David Edelsohn <dje.gcc@gmail.com>
4627
4628 PR c/65345
4629 * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv):
4630 Adjust to use create_tmp_var_raw instead of create_tmp_var.
4631
4632 2015-10-06 Nick Clifton <nickc@redhat.com>
4633
4634 * config/rl78/rl78.c (rl78_rtx_costs): Improve cost estimates for
4635 multiplication.
4636
4637 2015-10-06 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
4638
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.
4667 (mclzero): New.
4668 * config/i386/mmx.md (set_attr znver1_decode): New definitions
4669 for znver1.
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
4674
4675 2015-10-06 Richard Biener <rguenther@suse.de>
4676
4677 PR tree-optimization/67859
4678 * tree-ssa-pre.c (create_expression_by_pieces): Properly
4679 discard not inserted stmts.
4680
4681 2015-10-06 Jonathan Wakely <jwakely@redhat.com>
4682
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.
4687
4688 2015-10-06 Eric Botcazou <ebotcazou@adacore.com>
4689
4690 PR c/65345
4691 * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv): Adjust to
4692 use create_tmp_var_raw rather than create_tmp_var.
4693
4694 2015-10-06 Richard Biener <rguenther@suse.de>
4695
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
4709 accordingly.
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.
4735
4736 2015-10-05 Kaz Kojima <kkojima@gcc.gnu.org>
4737
4738 PR c/65345
4739 * config/sh/sh.c (sh_atomic_assign_expand_fenv): Adjust to use
4740 create_tmp_var_raw rather than create_tmp_var.
4741
4742 2015-10-05 Marek Polacek <polacek@redhat.com>
4743
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.
4748
4749 2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
4750 Sebastian Pop <s.pop@samsung.com>
4751
4752 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Increase to 7.
4753
4754 2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
4755 Sebastian Pop <s.pop@samsung.com>
4756
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.
4780
4781 2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
4782 Sebastian Pop <s.pop@samsung.com>
4783
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.
4811
4812 2015-10-05 Martin Jambor <mjambor@suse.cz>
4813 Jan Hubicka <hubicka@ucw.cz>
4814
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
4831 lattices.
4832
4833 2015-10-05 Marek Polacek <polacek@redhat.com>
4834
4835 PR tree-optimization/67821
4836 * tree-ssanames.c (duplicate_ssa_name_range_info): Remove an assert.
4837
4838 2015-10-05 Thomas Schwinge <thomas@codesourcery.com>
4839
4840 PR other/65021
4841 * config/i386/intelmic-mkoffload.c (mkoffload_atexit): Rename
4842 function to...
4843 (mkoffload_cleanup): ... this. Adjust all users.
4844 (maybe_unlink): Look at save_temps and verbose flags instead of
4845 debug flag.
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
4852 debug flag.
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.
4858
4859 2015-10-05 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4860
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.
4874
4875 2015-10-05 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4876
4877 * gimple.h (gimple_asm_input_op_ptr): Remove.
4878 (gimple_asm_output_op_ptr): Likewise.
4879
4880 2015-10-05 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4881
4882 * gimple.h (gimple_location_ptr): Remove.
4883 * tree-vrp.c (check_all_array_refs): Adjust.
4884
4885 2015-10-05 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4886
4887 * tree-ssa-operands.c (build_uses): store tree * instead of
4888 tree.
4889 (finalize_ssa_uses): Adjust.
4890 (append_use): Likewise.
4891 (verify_ssa_operands): Likewise.
4892
4893 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
4894
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.
4901
4902 2015-10-05 James Greenhalgh <james.greenhalgh@arm.com>
4903 Jiong Wang <jiong.wang@arm.com>
4904
4905 * config/aarch64/aarch64.md (tlsie_tiny_sidi): Replace "<w>" with "w".
4906
4907 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
4908
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):
4918 Likewise.
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.
4984
4985 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
4986
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.
5021
5022 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
5023
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
5029 REAL_ARITHMETIC.
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.
5039
5040 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
5041
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):
5051 Likewise.
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.
5057
5058 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
5059
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.
5069
5070 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
5071
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.
5105
5106 2015-10-05 Richard Biener <rguenther@suse.de>
5107
5108 PR ipa/67783
5109 * ipa-inline-analysis.c (estimate_function_body_sizes): Only
5110 consider loop header PHI defs as IVs.
5111
5112 2015-10-05 Richard Biener <rguenther@suse.de>
5113
5114 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Move
5115 call handling ...
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.
5120
5121 2015-10-04 Jason Merrill <jason@redhat.com>
5122
5123 * builtins.def (BUILT_IN_ABORT): Add transaction_pure attribute.
5124
5125 2015-10-04 Uros Bizjak <ubizjak@gmail.com>
5126
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.
5133
5134 2015-10-03 Marek Polacek <polacek@redhat.com>
5135
5136 * Makefile.in (insn-latencytab.o): Remove -Wno-duplicated-cond.
5137 (insn-dfatab.o): Likewise.
5138
5139 2015-10-03 Max Filippov <jcmvbkbc@gmail.com>
5140
5141 * config.gcc (xtensa*-*-uclinux*): New configuration.
5142 * config/xtensa/uclinux.h: New file.
5143 * config/xtensa/uclinux.opt: New file.
5144
5145 2015-10-03 Jonathan Wakely <jwakely@redhat.com>
5146
5147 * doc/cpp.texi (Standard Predefined Macros): Document value of
5148 __cplusplus for C++14.
5149
5150 2015-10-02 Bernd Schmidt <bernds@codesourcery.com>
5151
5152 * gcc.c (process_command): Use spec_machine rather than
5153 spec_host_machine to build tooldir_prefix2.
5154
5155 2015-10-02 Thomas Schwinge <thomas@codesourcery.com>
5156 Bernd Schmidt <bernds@codesourcery.com>
5157
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.
5169
5170 2015-10-02 Jeff Law <law@redhat.com>
5171
5172 * tree-ssa-dom.c (optimize_stmt): Note when loop structures need
5173 fixups.
5174
5175 2015-10-02 Thomas Schwinge <thomas@codesourcery.com>
5176
5177 PR target/67822
5178 * config/nvptx/mkoffload.c (main): Scan the argument vector for
5179 -fopenmp, and skip generating an offloading image if specified.
5180
5181 2015-10-02 Uros Bizjak <ubizjak@gmail.com>
5182
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.
5187
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
5190 to align values.
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.
5196
5197 2015-10-02 Marek Polacek <polacek@redhat.com>
5198
5199 * genemit.c (gen_exp): Remove -Wduplicated-cond hack.
5200
5201 2015-10-02 Aditya Kumar <aditya.k7@samsung.com>
5202
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.
5214
5215 2015-10-02 Aditya Kumar <hiraditya@msn.com>
5216
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
5221 readability.
5222
5223 2015-10-02 Kirill Yukhin <kirill.yukhin@intel.com>
5224
5225 * config/i386/i386.c (processor_features): Add F_AVX512VBMI,
5226 F_AVX512IFMA.
5227 (isa_names_table): Handle F_AVX512VBMI and F_AVX512IFMA.
5228
5229 2015-10-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5230
5231 * config/aarch64/aarch64-elf.h (TARGET_ASM_NAMED_SECTION): Delete.
5232
5233 2015-10-02 Vladimir Makarov <vmakarov@redhat.com>
5234
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.
5239
5240 2015-10-02 Kirill Yukhin <kirill.yukhin@intel.com>
5241
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
5248 to V54QI.
5249 (define_mode_iterator VI248_AVX2_8_AVX512F): Rename to ...
5250 (define_mode_iterator VI248_AVX2_8_AVX512F_24_AVX512BW): This. Extend
5251 to V32HI and V16SI.
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.
5258
5259 2015-10-02 Kirill Yukhin <kirill.yukhin@intel.com>
5260
5261 * doc/invoke.texi: Mention -mavx512vl, -mavx512bw, -mavx512dq,
5262 -mavx521vbmi, -mavx512ifma. Add missing opindex-es.
5263
5264 2015-10-02 Jason Merrill <jason@redhat.com>
5265
5266 PR c/59218
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.
5270
5271 2015-10-02 Jonathan Wakely <jwakely@redhat.com>
5272
5273 * system.h (malloc.h): Don't include obsolete header.
5274
5275 2015-10-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5276
5277 * config/aarch64/aarch64.c (aarch64_elf_asm_named_section): Delete.
5278 (TLS_SECTION_ASM_FLAG): Delete.
5279
5280 2015-10-02 Marek Polacek <polacek@redhat.com>
5281
5282 PR c/64249
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
5287 warning.
5288
5289 2015-10-02 Oleg Endo <olegendo@gcc.gnu.org>
5290
5291 * config/sh/sh.md: Add new unnamed split pattern to handle movt-movt
5292 sequences.
5293
5294 2015-10-02 Renlin Li <renlin.li@arm.com>
5295
5296 * config/aarch64/aarch64.md (csneg3_insn_uxtw): New pattern.
5297
5298 2015-10-02 Renlin Li <renlin.li@arm.com>
5299
5300 PR target/66776
5301 * config/aarch64/aarch64.md (cmovdi_insn_uxtw): New pattern.
5302
5303 2015-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5304
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.
5309
5310 2015-10-02 James Greenhalgh <james.greenhalgh@arm.com>
5311
5312 * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Add
5313 alternatives for reads from memory and moves from general-purpose
5314 registers.
5315 (*aarch64_combinez_be<mode>): Likewise.
5316
5317 2015-10-02 Kai Tietz <ktietz70@googlemail.com>
5318
5319 PR target/51726
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.
5323
5324 2015-10-02 Richard Biener <rguenther@suse.de>
5325
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.
5330
5331 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org>
5332
5333 PR target/67788
5334 PR target/67789
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.
5340
5341 2015-10-01 Aditya Kumar <aditya.k7@samsung.com>
5342
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.
5348 (intersects): Same.
5349 (add_scop): Same.
5350 (subsumes): Same.
5351 (remove_subscops): Same.
5352 (build_scops): Add scops to vec<scops_p> once all the scops have been
5353 detected.
5354
5355 2015-10-01 Aditya Kumar <aditya.k7@samsung.com>
5356
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.
5362 * sese.h: 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.
5375
5376 2015-10-01 Sebastian Pop <s.pop@samsung.com>
5377 Aditya Kumar <aditya.k7@samsung.com>
5378
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.
5382
5383 2015-10-01 Sebastian Pop <s.pop@samsung.com>
5384 Aditya Kumar <aditya.k7@samsung.com>
5385
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
5390 renamed...
5391 (try_generate_gimple_bb): Call outermost_loop_in_sese.
5392 (analyze_drs_in_stmts): Same.
5393 * sese.c (outermost_loop_in_sese): ...here.
5394
5395 2015-10-01 Sebastian Pop <s.pop@samsung.com>
5396 Aditya Kumar <aditya.k7@samsung.com>
5397
5398 PR tree-optimization/67754
5399 * graphite-scop-detection.c (loop_body_is_valid_scop): Add missing
5400 recursion on the inner loops.
5401
5402 2015-10-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5403
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
5409
5410 2015-10-01 Marek Polacek <polacek@redhat.com>
5411
5412 PR c/65345
5413 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Adjust to use
5414 create_tmp_var_raw rather than create_tmp_var.
5415
5416 2015-10-01 Marek Polacek <polacek@redhat.com>
5417
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.
5423
5424 2015-10-01 Nathan Sidwell <nathan@codesourcery.com>
5425
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.
5431
5432 2015-10-01 H.J. Lu <hongjiu.lu@intel.com>
5433
5434 * config/i386/x86-tune.def (X86_TUNE_USE_BT): Enable for Lakemont.
5435 (X86_TUNE_ZERO_EXTEND_WITH_AND): Disable for Lakemont.
5436
5437 2015-10-01 James Greenhalgh <james.greenhalgh@arm.com>
5438
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.
5445
5446 2015-10-01 Richard Biener <rguenther@suse.de>
5447
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.
5474
5475 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org>
5476
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.
5484
5485 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org>
5486
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).
5494
5495 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org>
5496
5497 * bb-reorder.c: Add intro comment.
5498 (reorder_basic_blocks_software_trace_cache): Print a header to
5499 the dump file.
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).
5504
5505 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org>
5506
5507 * bb-reorder.c (reorder_basic_blocks_software_trace_cache): New
5508 function, factored out from ...
5509 (reorder_basic_blocks): ... here.
5510
5511 2015-10-01 Tom de Vries <tom@codesourcery.com>
5512
5513 * tree-cfg.c (dump_function_to_file): Dump function attributes using
5514 __attribute__(()) string. Move dumping of function attributes to before
5515 function name.
5516
5517 2015-10-01 Lynn Boger <laboger@linux.vnet.ibm.com>
5518
5519 PR target/66870
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.
5526
5527 2015-10-01 Alan Modra <amodra@gmail.com>
5528
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.
5532
5533 2015-09-30 Nathan Sidwell <nathan@codesourcery.com>
5534
5535 * config/nvptx/mkoffload.c (process): Change offload data format.
5536
5537 2015-09-30 Jeff Law <law@redhat.com>
5538
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.
5545
5546 2015-09-30 Nathan Sidwell <nathan@codesourcery.com>
5547 Cesar Philippidis <cesar@codesourcery.com>
5548
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.
5565
5566 2015-09-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
5567
5568 PR rtl-optimization/67037
5569 * lra-constraints.c (process_addr_reg): Use copy_rtx when necessary.
5570
5571 2015-09-30 Bernd Schmidt <bernds@redhat.com>
5572
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.
5584
5585 2015-09-30 Thomas Schwinge <thomas@codesourcery.com>
5586
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.
5593
5594 2015-09-30 Thomas Schwinge <thomas@codesourcery.com>
5595 Ilya Verbin <ilya.verbin@intel.com>
5596 Andrey Turetskiy <andrey.turetskiy@intel.com>
5597
5598 * config/i386/intelmic-mkoffload.c (generate_host_descr_file)
5599 (prepare_target_image, main): Refactor argv building to use
5600 obstacks.
5601
5602 2015-09-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5603
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.
5613
5614 2015-09-30 Ilya Enkovich <enkovich.gnu@gmail.com>
5615
5616 * config/i386/i386.c (scalar_chain::analyze_register_chain): Ignore
5617 debug insns.
5618 (scalar_chain::convert_reg): Likewise.
5619
5620 2015-09-30 Richard Biener <rguenther@suse.de>
5621
5622 * builtins.c: Add comment that no new simplifications should
5623 be added here.
5624
5625 2015-09-30 Marek Polacek <polacek@redhat.com>
5626
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.
5634
5635 2015-09-30 Thomas Schwinge <thomas@codesourcery.com>
5636
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.
5641
5642 2015-09-30 Matthias Klose <doko@ubuntu.com>
5643
5644 * configure.ac: Remove extraneous ;;.
5645 * configure: Regenerate.
5646
5647 2015-09-29 James Bowman <james.bowman@ftdichip.com>
5648
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.
5652
5653 2015-09-29 Aditya Kumar <aditya.k7@samsung.com>
5654
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.
5658
5659 2015-09-29 Sebastian Pop <s.pop@samsung.com>
5660 Aditya Kumar <aditya.k7@samsung.com>
5661
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.
5665
5666 2015-09-29 Nathan Sidwell <nathan@codesourcery.com>
5667
5668 * builtins.c (expand_builtin_acc_on_device): Delete.
5669 (expand_builtin): Don't call it.
5670 (fold_builtin_1): Fold acc_on_device.
5671
5672 2015-09-29 H.J. Lu <hongjiu.lu@intel.com>
5673
5674 * config/i386/i386.c (ix86_function_arg): Fix typo in comments.
5675 (ix86_nsaved_sseregs): Likewise.
5676
5677 2015-09-29 Jeff Law <law@redhat.com>
5678
5679 * config/microblaze/microblaze.c (microblaze_version_to_int): Remove
5680 computation of unused value.
5681
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.
5685
5686 * config/i386/t-interix (winnt-stubs.o): Fix compilation rule.
5687
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.
5692
5693 2015-09-29 Sebastian Pop <s.pop@samsung.com>
5694 Aditya Kumar <aditya.k7@samsung.com>
5695
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.
5720
5721 2015-09-29 Evandro Menezes <e.menezes@samsung.com>
5722
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
5728 "neon_ldp{,_q}".
5729 (neon_store_complex): Add insn types "neon_stp{,_q}".
5730 * config/aarch64/aarch64-simd.md (aarch64_be_movoi): Add insn types
5731 "neon_{ldp,stp}_q".
5732
5733 2015-09-29 Jeff Law <law@redhat.com>
5734
5735 * config/rx/constraints.md (Int08): Fix undefined left shift
5736 behaviour.
5737 (Sint08, Sint16, Sint24): Likewise.
5738 * config/rx/rx.c (rx_get_stack_layout): Likewise.
5739
5740 * config/rl78/rl78-expand.md (movqi): Fix undefined left shift
5741 behaviour.
5742
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.
5747
5748 2015-09-29 Richard Biener <rguenther@suse.de>
5749
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.
5764
5765 2015-09-29 Richard Biener <rguenther@suse.de>
5766
5767 PR tree-optimization/67741
5768 * tree-ssa-math-opts.c (pass_cse_sincos::execute): Only recognize
5769 builtin calls with correct signature.
5770
5771 2015-09-29 Ilya Enkovich <enkovich.gnu@gmail.com>
5772
5773 PR target/65105
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.
5798 (pass_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.
5813
5814 2015-09-29 Tom de Vries <tom@codesourcery.com>
5815
5816 * tree-cfg.c (dump_function_to_file): Dump function attributes.
5817
5818 2015-09-29 Kaz Kojima <kkojima@gcc.gnu.org>
5819
5820 PR target/67716
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.
5825
5826 2015-09-28 Nathan Sidwell <nathan@codesourcery.com>
5827
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
5831 function data.
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
5837 generation.
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.
5843
5844 2015-09-28 Aditya Kumar <aditya.k7@samsung.com>
5845 Sebastian Pop <s.pop@samsung.com>
5846
5847 * sese.c (invariant_in_sese_p_rec): Remove unused variable.
5848
5849 2015-09-28 Aditya Kumar <aditya.k7@samsung.com>
5850 Sebastian Pop <s.pop@samsung.com>
5851
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
5861 the scop entry.
5862 (stmt_has_simple_data_refs_p): Pass in scop instead of only the
5863 scop entry.
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
5883 as well.
5884 (loop_body_is_valid_scop): New. Return true if loop body is a
5885 valid scop.
5886 (class scop_builder): New. Builds SCoPs for polyhedral
5887 optimizations.
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
5891 otherwise.
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
5918 intersect.
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
5930 loops.
5931
5932 2015-09-28 Aditya Kumar <aditya.k7@samsung.com>
5933 Sebastian Pop <s.pop@samsung.com>
5934
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.
5942
5943 2015-09-28 David Wohlferd <dw@LimeGreenSocks.com>
5944
5945 * doc/extend.texi (Asm Labels): Break out text for data vs functions.
5946
5947 2015-09-28 Jiong Wang <jiong.wang@arm.com>
5948
5949 Revert:
5950 2015-08-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5951 Jiong Wang <jiong.wang@arm.com>
5952
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
5960 possible.
5961 * config/aarch64/constraints.md (Uc0): New constraint.
5962
5963 2015-09-28 Daniel Hellstrom <daniel@gaisler.com>
5964
5965 * config/sparc/t-rtems: Remove -muser-mode. Add ut699, at697f and leon.
5966
5967 2015-09-28 David Edelsohn <dje.gcc@gmail.com>
5968
5969 * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Place
5970 SECTION_EXCLUDE in XO mapping class.
5971
5972 2015-09-28 Oleg Endo <olegendo@gcc.gnu.org>
5973
5974 PR target/54236
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.
5981
5982 2015-09-28 James Greenhalgh <james.greenhalgh@arm.com>
5983
5984 * config/arm/types.md (type): Add rotate_imm.
5985 * config/aarch64/aarch64.md (*ror<mode>3_insn): Split out the
5986 ROR immediate case.
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.
5991
5992 2015-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5993
5994 PR rtl-optimization/67481
5995 * ifcvt.c (contains_ccmode_rtx_p): New function.
5996 (insn_valid_noce_process_p): Use it.
5997
5998 2015-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5999
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.
6006
6007 2015-09-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6008
6009 * doc/gimple.texi: Update references to gimple_statement_base.
6010 * gdbhooks.py: Likewise.
6011 * gimple.h: Likewise.
6012
6013 2015-09-28 Daniel Cederman <cederman@gaisler.com>
6014
6015 * config/sparc/driver-sparc.c: map LEON to leon3
6016
6017 2015-09-28 Daniel Cederman <cederman@gaisler.com>
6018
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
6022 supervisor mode
6023 * doc/invoke.texi: Document change of default
6024
6025 2015-09-28 Daniel Cederman <cederman@gaisler.com>
6026
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
6030 without FPU.
6031 (untyped_return): Do not load %f0 for a target without FPU.
6032
6033 2015-09-28 Andrew Pinski <apinski@cavium.com>
6034
6035 * config/aarch64/aarch64.md (prefetch):
6036 Change the predicate of operand 0 to register_operand.
6037
6038 2015-09-27 Uros Bizjak <ubizjak@gmail.com>
6039
6040 * config/i386/predicates.md (register_sse4nonimm_operand): New
6041 predicate.
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.
6048
6049 2015-09-27 Oleg Endo <olegendo@gcc.gnu.org>
6050 Kaz Kojima <kkojima@gcc.gnu.org>
6051
6052 PR target/67391
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.
6061
6062 2015-09-27 Alexandre Oliva <aoliva@redhat.com>
6063
6064 PR rtl-optimization/64164
6065 PR tree-optimization/67312
6066 PR middle-end/67340
6067 PR middle-end/67490
6068 PR bootstrap/67597
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
6087 the same partition.
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
6133 stor-layout.h.
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
6149 alignment.
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
6159 not live.
6160
6161 2015-09-26 David Edelsohn <dje.gcc@gmail.com>
6162
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
6183 for SECTION_DEBUG.
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):
6188 Redefine.
6189 * config/rs6000/aix71.h: New.
6190 * configure.ac (gcc_cv_as_aix_dwloc): Check AIX as for DWARF
6191 locations support.
6192 * configure: Regenerate.
6193 * config.gcc (powerpc-ibm-aix[789]+): New stanza for AIX 7.1+ with
6194 DWARF support.
6195
6196 2015-09-26 Jeff Law <law@redhat.com>
6197
6198 * config/arc/arc.c (arc_output_addsi): Fix left shift undefined
6199 behaviour.
6200 * config/arc/constraints.md (Cca, C2a): Fix left shift undefined
6201 behaviour.
6202
6203 * config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined
6204 behaviour
6205
6206 * config/mips/mips.c (mips_compute_frame_info): Fix left shift
6207 undefined behaviour.
6208
6209 * config/cris/cris.md (asrandb): Fix left shift undefined
6210 behaviour.
6211 (asrandw): Likewise.
6212
6213 2015-09-25 Vladimir Makarov <vmakarov@redhat.com>
6214
6215 PR target/61578
6216 * lra-constarints.c (match_reload): Check presence of the input pseudo
6217 in the output operand.
6218
6219 2015-09-25 Tobias Burnus <burnus@net-b.de>
6220
6221 * doc/invoke.texi (-fsanitize): Minor wording tweak.
6222
6223 2015-09-25 Tobias Burnus <burnus@net-b.de>
6224
6225 * doc/invoke.texi (-fsanitize): Update URLs.
6226
6227 2015-09-25 Teresa Johnson <tejohnson@google.com>
6228
6229 * opts.c (finish_options): Unset -freorder-blocks-and-partition
6230 if not using profile.
6231
6232 2015-09-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
6233
6234 PR pretty-print/67567
6235 * pretty-print.c (pp_string): Add gcc_checking_assert.
6236 * pretty-print.h (output_buffer_append_r): Likewise.
6237
6238 2015-09-25 Oleg Endo <olegendo@gcc.gnu.org>
6239
6240 PR target/67675
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.
6245
6246 2015-09-25 Richard Sandiford <richard.sandiford@arm.com>
6247
6248 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Force
6249 __builtin_aarch64_fp[sc]r arguments into a register.
6250
6251 2015-09-25 H.J. Lu <hongjiu.lu@intel.com>
6252
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 ...
6262 (m_LAKEMONT): This.
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
6267 PROCESSOR_LAKEMONT.
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.
6274
6275 2015-09-24 H.J. Lu <hongjiu.lu@intel.com>
6276
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.
6297
6298 2015-09-24 John David Anglin <danglin@gcc.gnu.org>
6299
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):
6302 Declare.
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):
6310 Revise.
6311
6312 2015-09-24 Michael Collison <michael.collison@linaro.org>
6313
6314 PR other/57195
6315 * read-md.c (read_name): Allow mode iterators inside angle
6316 brackets in rtl expressions.
6317
6318 2015-09-24 Vladimir Makarov <vmakarov@redhat.com>
6319
6320 PR target/61578
6321 * ira-color.c (update_allocno_cost): Add parameter.
6322 (update_costs_from_allocno): Decrease conflict cost. Pass the new
6323 parameter.
6324
6325 2015-09-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
6326
6327 PR driver/67640
6328 * opts-common.c (prune_options): Discard all -fdiagnostics-color
6329 but the last one, which is moved to the front to be processed
6330 first.
6331 * opts.c (enable_warning_as_error): Reject options that do not
6332 control warnings.
6333
6334 2015-09-24 Jiong Wang <jiong.wang@arm.com>
6335
6336 * config/aarch64/aarch64.c (aarch64_print_operand): Add "CONST" support.
6337
6338 2015-09-24 Jiong Wang <jiong.wang@arm.com>
6339
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.
6350
6351 2015-09-24 Segher Boessenkool <segher@kernel.crashing.org>
6352
6353 * config/rs6000/rs6000.c (debug_stack_info): Invert the test
6354 for info->spe_gp_size.
6355
6356 2015-09-24 Richard Biener <rguenther@suse.de>
6357
6358 PR lto/67699
6359 * lto-cgraph.c (compute_ltrans_boundary): Do not stream
6360 abstract origins.
6361
6362 2015-09-24 Thomas Schwinge <thomas@codesourcery.com>
6363
6364 * tree-object-size.c (plus_stmt_object_size)
6365 (cond_expr_object_size): Change the formal parameters from gimple
6366 to 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.
6370
6371 2015-09-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6372
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.
6377
6378 * gcc.c (LD_PIE_SPEC): Allow redefinition.
6379
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.
6391
6392 2015-09-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6393
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.
6399
6400 2015-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6401
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.
6408
6409 2015-09-24 Richard Biener <rguenther@suse.de>
6410
6411 * tree-ssa-sccvn.h (vn_reference_op_struct): Add clique and base
6412 members.
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
6415 offset.
6416 (ao_ref_init_from_vn_reference): Record clique and base in the
6417 built base.
6418 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise
6419
6420 2015-09-24 Richard Biener <rguenther@suse.de>
6421
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.
6425
6426 2015-09-23 Thomas Schwinge <thomas@codesourcery.com>
6427
6428 * gcc.c (handle_foffload_option): Don't lose the trailing NUL
6429 character when appending to offload_targets.
6430
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.
6438 libgomp/
6439 * plugin/configfrag.ac (OFFLOAD_TARGETS): Clarify that offload
6440 targets are separated by commas.
6441 * config.h.in: Regenerate.
6442
6443 2015-09-23 Thomas Schwinge <thomas@codesourcery.com>
6444 Nathan Sidwell <nathan@codesourcery.com>
6445
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.
6451
6452 2015-09-23 Richard Biener <rguenther@suse.de>
6453
6454 PR middle-end/67662
6455 * fold-const.c (fold_binary_loc): Do not reassociate two vars with
6456 undefined overflow unless they will cancel out.
6457
6458 2015-09-23 Kirill Yukhin <kirill.yukhin@intel.com>
6459
6460 * config/i386/i386.md (define_insn "*<mshift><mode>3"): Fix
6461 insn emit.
6462
6463 2015-09-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
6464
6465 PR c/49655
6466 * opts.h (write_langs): Declare.
6467 * opts-global.c (write_langs): Make it extern.
6468
6469 2015-09-23 Oleg Endo <olegendo@gcc.gnu.org>
6470
6471 PR target/67391
6472 * config/sh/sh.md (addsi3, *addsi3_compact): Don't check for
6473 overlapping regs when matching the pattern.
6474
6475 2015-09-23 James Greenhalgh <james.greenhalgh@arm.com>
6476
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.
6481
6482 2015-09-23 Richard Biener <rguenther@suse.de>
6483
6484 * tree-ssa-structalias.c (intra_create_variable_infos): Build
6485 representatives for all restrict qualified pointer destinations.
6486
6487 2015-09-23 Kirill Yukhin <kirill.yukhin@intel.com>
6488
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
6492 only.
6493 (define_insn "*k<logic><mode>"): Use new iterator name.
6494 (define_insn "*<mshift><mode>3"): New.
6495
6496 2015-09-23 Mikhail Maltsev <maltsevm@gmail.com>
6497
6498 PR middle-end/67649
6499 * memory-block.h (memory_block_pool::allocate): Use valgrind API to
6500 mark the block as accessible.
6501
6502 2015-09-22 Segher Boessenkool <segher@kernel.crashing.org>
6503
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
6513 block and edge.
6514 * shrink-wrap.h (try_shrink_wrapping): Delete orig_entry_edge argument.
6515
6516 2015-09-22 Jeff Law <law@redhat.com>
6517
6518 * config/pa/pa.h (MIN_LEGIT_64BIT_CONST_INT): Avoid undefined
6519 behavior.
6520
6521 2015-09-22 Nathan Sidwell <nathan@codesourcery.com>
6522
6523 * doc/invoke.texi (-Wmultiple-inheritance, -Wvirtual-inheritance,
6524 -Wtemplates, -Wnamespaces): Document.
6525
6526 2015-09-22 Tom de Vries <tom@codesourcery.com>
6527
6528 PR tree-optimization/67671
6529 * tree-ssa-structalias.c (create_variable_info_for_1): Handle restrict
6530 pointer references as restrict.
6531
6532 2015-09-22 Chung-Lin Tang <cltang@codesourcery.com>
6533
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.
6537
6538 2015-09-22 Alexander Fomin <alexander.fomin@intel.com>
6539
6540 PR target/67480
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.
6547
6548 2015-09-22 Kirill Yukhin <kirill.yukhin@intel.com>
6549
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.
6562
6563 2015-09-22 Kirill Yukhin <kirill.yukhin@intel.com>
6564
6565 * gcc/config/i386/i386.md (define_insn "kunpckhi"): Fix
6566 operand in pattern.
6567 (define_insn "kunpcksi"): Ditto.
6568 (define_insn "kunpckdi"): Ditto.
6569
6570 2015-09-22 Kirill Yukhin <kirill.yukhin@intel.com>
6571
6572 * gcc/config/i386/i386.md (define_split not/xor SWI1248x): Use
6573 iterator instead of fixed modes.
6574
6575 2015-09-22 Matthew Wahab <matthew.wahab@arm.com>
6576
6577 * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
6578 Adjust declaration.
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.
6589
6590 2015-09-22 Matthew Wahab <matthew.wahab@arm.com>
6591
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
6598 patterns.
6599 * config/aarch64/atomics.md (atomic_<atomic_optab><mode>): Change
6600 to an expander.
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.
6606
6607 2015-09-22 Matthew Wahab <matthew.wahab@arm.com>
6608
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.
6614 (ATOMIC_LDOP): New.
6615 (atomic_ldop): New.
6616 (aarch64_atomic_load<atomic_ldop><mode>): New.
6617
6618 2015-09-22 Matthew Wahab <matthew.wahab@arm.com>
6619
6620 * config/aarch64/aarch64.md
6621 (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Make a named
6622 pattern.
6623
6624 2015-09-22 Matthew Wahab <matthew.wahab@arm.com>
6625
6626 * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
6627 Declare.
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.
6638
6639 2015-09-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
6640
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.
6645
6646 2015-09-22 Tom de Vries <tom@codesourcery.com>
6647
6648 PR tree-optimization/67666
6649 * tree-ssa-structalias.c (create_variable_info_for_1): Handle struct
6650 with single field non-conservative.
6651
6652 2015-09-21 David S. Miller <davem@davemloft.net>
6653
6654 PR/67622
6655 Revert:
6656 2015-09-11 David S. Miller <davem@davemloft.net>
6657
6658 * config/sparc/constraints.md: Make "U" constraint a real register
6659 constraint.
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
6665 cost to 8.
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.
6669
6670 2015-09-17 David S. Miller <davem@davemloft.net>
6671
6672 * config/sparc/sparc-protos.h (sparc_secondary_memory_needed):
6673 Declare.
6674 * config/sparc/sparc.c (sparc_secondary_memory_needed): New
6675 function.
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.
6683
6684 2015-09-21 Jeff Law <law@redhat.com>
6685
6686 * config/h8300/h8300.md (andsi3_ashift_n_lower): Avoid undefined
6687 behavior.
6688
6689 2015-09-21 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6690
6691 * config/spu/spu.c (spu_expand_insv): Avoid undefined behavior.
6692
6693 2015-09-21 Richard Biener <rguenther@suse.de>
6694
6695 * passes.c (rest_of_decl_compilation): Do not call
6696 dwarf2out_early_global_decl for aliases.
6697
6698 2015-09-21 Richard Biener <rguenther@suse.de>
6699
6700 PR debug/67664
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.
6706
6707 2015-09-21 Oleg Endo <olegendo@gcc.gnu.org>
6708
6709 PR target/67657
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.
6715
6716 2015-09-21 Richard Biener <rguenther@suse.de>
6717
6718 PR middle-end/67651
6719 * rtlanal.c (nonzero_address_p): SYMBOL_REFs may have zero
6720 address with -fno-delete-null-pointer-checks.
6721
6722 2015-09-21 Alan Lawrence <alan.lawrence@arm.com>
6723
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.
6727
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.
6732
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.
6736
6737 2015-09-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
6738
6739 PR middle-end/60832
6740 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
6741 Print i_bound without converting it to a tree.
6742
6743 2015-09-21 Bilyan Borisov <bilyan.borisov@arm.com>
6744
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.
6755
6756 2015-09-21 Jonathan Yong <10walls@gmail.com>
6757
6758 * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
6759 sysroot/usr/lib/32api for additional win32 libraries,
6760 fixes failing Cygwin bootstrapping.
6761
6762 2015-09-21 Oleg Endo <olegendo@gcc.gnu.org>
6763
6764 * doc/invoke.texi (SH Options): Undocument SH5/SH64 related options.
6765
6766 2015-09-21 Oleg Endo <olegendo@gcc.gnu.org>
6767
6768 PR target/67126
6769 * config/sh/sh.md (*reg_lsb_t): Emit bld insn on SH2A.
6770 (*mov_t_msb_neg): Rewrite negc pattern.
6771
6772 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com>
6773
6774 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Cleanup
6775 immediate generation code.
6776
6777 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com>
6778
6779 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Remove
6780 redundant immediate generation code.
6781
6782 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com>
6783
6784 * config/aarch64/aarch64.c (aarch64_bitmasks): Remove.
6785 (AARCH64_NUM_BITMASKS): Remove.
6786 (aarch64_bitmasks_cmp): Remove.
6787 (aarch64_build_bitmask_table): Remove.
6788
6789 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com>
6790
6791 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Replace
6792 slow immediate matching loops with a faster algorithm.
6793
6794 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com>
6795
6796 * config/aarch64/aarch64.c (aarch64_bitmask_imm): Reimplement using
6797 faster algorithm.
6798
6799 2015-09-20 Jeff Law <law@redhat.com>
6800
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.
6806
6807 2015-09-19 Trevor Saunders <tbsaunde@tbsaunde.org>
6808
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.
6812 * *.[ch]: Likewise.
6813
6814 2015-09-19 Andrew Dixie <andrewd@gentrack.com>
6815 David Edelsohn <dje.gcc@gmail.com>
6816
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.
6823
6824 2015-09-19 John David Anglin <danglin@gcc.gnu.org>
6825
6826 * config/pa/pa.c (pa_function_ok_for_sibcall): Remove special treatment
6827 of TARGET_ELF32.
6828
6829 2015-09-18 Jeff Law <law@redhat.com>
6830
6831 PR tree-optimization/47679
6832 * tree-ssa-dom.c (avail_exprs_stack): No longer file scoped. Move
6833 it here ...
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.
6861
6862 PR tree-optimization/47679
6863 * tree-ssa-dom.c (const_and_copies): No longer file scoped. Move
6864 it here ...
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.
6880
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
6890 position in file.
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
6895 prototype.
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.
6900
6901 * tree-ssa-threadedge.c: Remove trailing whitespace.
6902
6903 2014-09-18 John David Anglin <danglin@gcc.gnu.org>
6904
6905 * config/pa/pa-protos.h (pa_cint_ok_for_move): Change argument type to
6906 unsigned.
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.
6910 Update callers.
6911 * config/pa/pa.md: Likewise.
6912
6913 2015-09-18 David Malcolm <dmalcolm@redhat.com>
6914
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.
6920
6921 2015-09-18 David Edelsohn <dje.gcc@gmail.com>
6922
6923 * dwarf2out.c (switch_to_eh_frame_section): Add ATTRIBUTE_UNUSED to
6924 "back" parameter. Declare label in #if block.
6925
6926 2015-09-18 Uros Bizjak <ubizjak@gmail.com>
6927
6928 PR middle-end/67619
6929 * except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy
6930 the address to a register.
6931
6932 2015-09-18 Jeff Law <law@redhat.com>
6933
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.
6946
6947 2015-09-18 Andrew Dixie <andrewd@gentrack.com>
6948 David Edelsohn <dje.gcc@gmail.com>
6949
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
6953 DW_EH_PE_datarel.
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
6962 __gcc_unwind_dbase.
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):
6971 Declare.
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.
6985
6986 2015-09-18 Richard Biener <rguenther@suse.de>
6987
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.
6998
6999 2015-09-18 Alan Lawrence <alan.lawrence@arm.com>
7000
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.
7008
7009 2015-09-18 Richard Biener <rguenther@suse.de>
7010
7011 * dwarf2out.c (add_location_or_const_value_attribute): Do nothing
7012 in early-dwarf.
7013
7014 2015-09-18 Richard Biener <rguenther@suse.de>
7015
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
7030 sizes.
7031
7032 2015-09-17 Christian Bruel <christian.bruel@st.com>
7033
7034 * config/arm/arm.md (*call_value_symbol): Fix operand for interworking.
7035
7036 2015-09-17 Richard Henderson <rth@redhat.com>
7037
7038 PR libstdc++/65913
7039 * builtins.c (fold_builtin_atomic_always_lock_free): Handle fake
7040 pointers that encode the alignment of the object.
7041
7042 2015-09-17 Eric Botcazou <ebotcazou@adacore.com>
7043
7044 PR rtl-optimization/66790
7045 * df-problems.c (LIVE): Amend documentation.
7046
7047 2015-09-17 Richard Sandiford <richard.sandiford@arm.com>
7048
7049 * Makefile.in (OBJS): Add optabs-libfuncs.o, optabs-query.o
7050 and optabs-tree.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.
7080
7081 2015-09-17 Eric Botcazou <ebotcazou@adacore.com>
7082
7083 PR middle-end/65958
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
7098 is enabled.
7099 (thumb1_expand_prologue): Sorry out if static builtin stack checking
7100 is enabled.
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.
7109
7110 2015-09-17 Richard Biener <rguenther@suse.de>
7111
7112 * genmatch.c (parser::parse_expr): Improve error message
7113 for mis-placed flags.
7114
7115 2015-09-17 Richard Biener <rguenther@suse.de>
7116
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.
7122
7123 2015-09-17 James Greenhalgh <james.greenhalgh@arm.com>
7124
7125 * config/aarch64/aarch64.md (copysigndf3): New.
7126 (copysignsf3): Likewise.
7127
7128 2015-09-17 David S. Miller <davem@davemloft.net>
7129
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.
7139
7140 2015-09-17 Kaz Kojima <kkojima@gcc.gnu.org>
7141
7142 * config/sh/sh.c (label_ref_list_d_pool): Adjust to
7143 object_allocator change.
7144
7145 2015-09-17 Bin Cheng <bin.cheng@arm.com>
7146
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
7153 functions.
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.
7159
7160 2015-09-17 Bin Cheng <bin.cheng@arm.com>
7161
7162 * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New
7163 parameter.
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
7168 simplification.
7169 * tree-ssa-loop-niter.h (simplify_using_initial_conditions): New
7170 parameter.
7171 * tree-scalar-evolution.c (simple_iv): Simplify type conversions
7172 in iv base using loop initial conditions.
7173
7174 2015-09-16 Jeff Law <law@redhat.com>
7175
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
7182 thread_across_edge.
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
7187 thread-across_edge.
7188
7189 2015-09-16 James Bowman <james.bowman@ftdichip.com>
7190
7191 * config/ft32/ft32.c: Fix the memory address space predicate.
7192
7193 2015-09-16 Kaz Kojima <kkojima@gcc.gnu.org>
7194
7195 PR target/67573
7196 * config/sh/sh.md (call_pcrel): Add early clobber to scratch operand.
7197 (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
7198
7199 2015-09-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
7200
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.
7205
7206 2015-09-16 David S. Miller <davem@davemloft.net>
7207
7208 * lra-constraints.c (simplify_operand_subreg): Do not assume that
7209 lowpart of a SUBREG has offset zero.
7210
7211 2015-09-16 Jeff Law <law@redhat.com>
7212
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
7229 comments.
7230
7231 2015-09-16 Paolo Carlini <paolo.carlini@oracle.com>
7232
7233 * doc/invoke.texi ([Wsubobject-linkage]): Extend documentation.
7234
7235 2015-09-16 Segher Boessenkool <segher@kernel.crashing.org>
7236
7237 PR bootstrap/67587
7238 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
7239 fixup_partitions.
7240
7241 2015-09-16 Richard Biener <rguenther@suse.de>
7242
7243 PR middle-end/67253
7244 * cfgexpand.c (expand_gimple_stmt_1): Do not clobber
7245 location of possibly shared trees.
7246
7247 2015-09-16 Richard Biener <rguenther@suse.de>
7248
7249 PR middle-end/67271
7250 * fold-const.c (native_encode_expr): Bail out on bogus offsets.
7251
7252 2015-09-16 Eric Botcazou <ebotcazou@adacore.com>
7253
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.
7256
7257 2015-09-16 Richard Biener <rguenther@suse.de>
7258
7259 PR middle-end/67442
7260 * fold-const.c (extract_muldiv_1): Properly extend multiplication
7261 result before builting a tree via wide_int_to_tree.
7262
7263 2015-09-16 Mikhail Maltsev <maltsevm@gmail.com>
7264
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
7270 object pools.
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.
7305
7306 2015-09-15 Max Filippov <jcmvbkbc@gmail.com>
7307
7308 * config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New
7309 definition.
7310 (DWARF_FRAME_REGISTERS): Reserve space for one extra register in
7311 call0 ABI.
7312
7313 2015-09-15 Max Filippov <jcmvbkbc@gmail.com>
7314
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.
7319
7320 2015-09-15 Eric Botcazou <ebotcazou@adacore.com>
7321
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.
7326
7327 2015-09-15 Uros Bizjak <ubizjak@gmail.com>
7328
7329 * config/alpha/alpha.c (alpha_expand_block_clear): Use
7330 HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting.
7331
7332 2015-09-15 Jeff Law <law@redhat.com>
7333
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.
7356 Fix formatting.
7357 (hashable_expr_equal_p): Fix formatting.
7358
7359 2015-09-15 David Malcolm <dmalcolm@redhat.com>
7360
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.
7367
7368 2015-09-15 Eric Botcazou <ebotcazou@adacore.com>
7369
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.
7375
7376 2015-09-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7377
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.
7380 Update prototype.
7381
7382 2015-09-15 Richard Biener <rguenther@suse.de>
7383
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
7387 if appropriate.
7388
7389 2015-09-15 Christian Bruel <christian.bruel@st.com>
7390
7391 * config/arm/arm.c (TARGET_OPTION_PRINT): Define.
7392 (arm_option_print): New function.
7393
7394 2015-09-15 Christian Bruel <christian.bruel@st.com>
7395
7396 PR target/52144
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.
7408
7409 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
7410
7411 * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): New.
7412
7413 * config/aarch64/aarch64.c (aarch64_array_mode_supported_p): Add
7414 AARCH64_VALID_SIMD_DREG_MODE.
7415
7416 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
7417
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.
7428
7429 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
7430
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.
7439
7440 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
7441
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.
7450
7451 2015-09-15 Richard Biener <rguenther@suse.de>
7452
7453 PR middle-end/67563
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.
7462
7463 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
7464
7465 * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist): Update
7466 comment.
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.
7472
7473 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
7474
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.
7483
7484 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
7485
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.
7493
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.
7497
7498 * config/aarch64/iterators.md (VSTRUCT_DREG): Remove.
7499
7500 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
7501
7502 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Rename
7503 to...
7504 (aarch64_vec_store_lanesoi_lane<mode>): ...this.
7505
7506 (vec_store_lanesci_lane<mode>): Rename to...
7507 (aarch64_vec_store_lanesci_lane<mode>): ...this.
7508
7509 (vec_store_lanesxi_lane<mode>): Rename to...
7510 (aarch64_vec_store_lanesxi_lane<mode>): ...this.
7511
7512 (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
7513 aarch64_st4_lane<mode>): Follow renaming.
7514
7515 2015-09-15 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7516
7517 * config/s390/s390.c (s390_const_operand_ok): Add missing
7518 brackets.
7519
7520 2015-09-15 Richard Biener <rguenther@suse.de>
7521
7522 PR lto/67568
7523 * lto-streamer.h (lto_location_cache::current_sysp): Properly
7524 initialize.
7525 * lto-streamer-out.c (clear_line_info): Likewise.
7526
7527 2015-09-15 Richard Biener <rguenther@suse.de>
7528
7529 * doc/match-and-simplify.texi: Fix wording.
7530
7531 2015-09-15 Bin Cheng <bin.cheng@arm.com>
7532
7533 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Strip
7534 unnecessary type conversion in op1.
7535
7536 2015-09-14 Segher Boessenkool <segher@kernel.crashing.org>
7537
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.
7544
7545 2015-09-14 Rich Felker <dalias@libc.org>
7546
7547 * configure.ac: Change target pattern for sh TLS support
7548 test from "sh[34]-*-*" to "sh[123456789lbe]*-*-*".
7549 * configure: Regenerate.
7550
7551 2015-09-14 Jeff Law <law@redhat.com>
7552
7553 PR tree-optimization/47679
7554 * tree-ssa-dom.c (avail_expr_hash): Pass a pointer to a real
7555 type rather than void *.
7556
7557 2015-09-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
7558
7559 PR fortran/67460
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.
7567
7568 2015-09-14 Richard Sandiford <richard.sandiford@arm.com>
7569
7570 * config/sparc/predicates.md (const_all_ones_operand): Use
7571 CONSTM1_RTX to simplify definition.
7572
7573 2015-09-14 Oleg Endo <olegendo@gcc.gnu.org>
7574
7575 PR target/67061
7576 * config/sh/sh-protos.h (sh_find_set_of_reg): Simplfiy for-loop.
7577 Handle call insns.
7578
7579 2015-09-14 Chung-Lin Tang <cltang@codesourcery.com>
7580
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.
7585
7586 2015-09-14 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7587
7588 PR target/63304
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
7594 literal pools.
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>):
7598 Define.
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
7602 predicate.
7603 * doc/invoke.texi (mpc-relative-literal-loads): Document.
7604
7605 2015-09-14 John David Anglin <danglin@gcc.gnu.org>
7606
7607 PR middle-end/67401
7608 * optabs.c (expand_atomic_compare_and_swap): Move result of emitting
7609 sync_compare_and_swap_optab libcall to target_oval.
7610
7611 2015-09-14 Marek Polacek <polacek@redhat.com>
7612
7613 * rtlanal.c (split_double): Cast to unsigned when shifting a negative
7614 value.
7615 * sched-int.h (UNKNOWN_DEP_COST): Likewise.
7616
7617 2015-09-11 Mark Wielaard <mjw@redhat.com>
7618
7619 PR c/28901
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.
7626
7627 2015-09-14 Richard Biener <rguenther@suse.de>
7628
7629 * doc/match-and-simplify.texi: Update for changed syntax
7630 of inner ifs and the new switch expression.
7631
7632 2015-09-14 Yuri Rumyantsev <ysrumyan@gmail.com>
7633
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.
7640
7641 2015-09-14 Richard Biener <rguenther@suse.de>
7642
7643 * doc/match-and-simplify.texi: Fixup some formatting issues
7644 and document the 's' flag.
7645
7646 2015-09-13 Olivier Hainque <hainque@adacore.com>
7647 Eric Botcazou <ebotcazou@adacore.com>
7648
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.
7658
7659 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7660
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.
7691
7692 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7693
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.
7700 (get_AT): Adjust.
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.
7746
7747 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7748
7749 * dwarf2cfi.c (dw_trace_info_ref): Remove typedef.
7750
7751 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7752
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.
7758
7759 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7760
7761 * tree-ssa-ter.c (temp_expr_table_d): Rename to temp_expr_table
7762 and remove typedef.
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.
7778
7779 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7780
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.
7797
7798 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7799
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.
7807
7808 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7809
7810 * var-tracking.c (struct location_chain): Rename from
7811 location_chain_def.
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.
7845
7846 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7847
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.
7870
7871 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7872
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.
7881
7882 2015-09-13 Gerald Pfeifer <gerald@pfeifer.com>
7883
7884 * doc/install.texi (Downloading the source): Mark up
7885 contrib/download_prerequisites properly and drop leading "./".
7886
7887 2015-09-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7888
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.
7894
7895 2015-09-12 John David Anglin <danglin@gcc.gnu.org>
7896
7897 * config/pa/pa.c (pa_output_move_double): Enhance to handle HIGH
7898 CONSTANT_P operands.
7899
7900 2015-09-11 David S. Miller <davem@davemloft.net>
7901
7902 * config/sparc/constraints.md: Make "U" constraint a real register
7903 constraint.
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
7909 cost to 8.
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.
7913
7914 2015-09-11 Jeff Law <law@redhat.com>
7915
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
7920 toplevel comment.
7921 * tree-ssa-scopedtables.c: Update const_and_copies's member
7922 functions to use m_ prefix to access the stack.
7923
7924 2015-09-11 Aditya Kumar <aditya.k7@samsung.com>
7925
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.
7931
7932 2015-09-11 Aditya Kumar <aditya.k7@samsung.com>
7933
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.
7943
7944 2015-09-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7945
7946 PR target/63304
7947 * config/aarch64/aarch.md (mov<mode>:GPF_F16): Use GPF_TF_F16.
7948 (movtf): Delete.
7949 * config/aarch64/iterators.md (GPF_TF_F16): New.
7950 (GPF_F16): Delete.
7951
7952 2015-09-10 Nathan Sidwell <nathan@acm.org>
7953
7954 * config/nvptx/nvptx.c (nvptx_expand_call): Add spacing.
7955 (nvptx_reorg): Adjust comments.
7956
7957 2015-09-15 John David Anglin <danglin@gcc.gnu.org>
7958
7959 PR bootstrap/67363
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.
7964
7965 2015-09-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7966
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.
7976
7977 2015-09-10 H.J. Lu <hongjiu.lu@intel.com>
7978
7979 * shrink-wrap.c (requires_stack_frame_p): Remove static.
7980 * shrink-wrap.h (requires_stack_frame_p): Put back.
7981
7982 2015-09-10 Richard Sandiford <richard.sandiford@arm.com>
7983
7984 * reload1.c (elimination_costs_in_insn): Locally turn
7985 -Wmaybe-uninitialized into a warning.
7986
7987 2015-09-10 Segher Boessenkool <segher@kernel.crashing.org>
7988
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.
7993
7994 2015-09-10 Mark Wielaard <mjw@redhat.com>
7995
7996 * doc/invoke.texi (Wnonnull): Also warns when comparing against NULL.
7997
7998 2015-09-10 Oleg Endo <olegendo@gcc.gnu.org>
7999
8000 PR target/67506
8001 * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add
8002 missing simplify_gen_subreg.
8003
8004 2015-09-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8005
8006 * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if
8007 the vector element is bigger than 64 bit.
8008
8009 2015-09-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8010
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.
8013
8014 2015-09-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8015
8016 * config/s390/s390.c: Add V1TImode to constant pool modes.
8017
8018 2015-09-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8019
8020 PR target/67439
8021 * config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
8022 predicate. Set predicable_short_it attr to "no".
8023
8024 2015-09-10 Jiong Wang <jiong.wang@arm.com>
8025
8026 PR rtl-optimization/67421
8027 * expr.c (expand_expr_real_2): Cost instrcution sequences when doing
8028 left wide shift tranformation.
8029
8030 2015-09-10 Claudiu Zissulescu <claziss@synopsys.com>
8031
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.
8037
8038 2015-09-10 Claudiu Zissulescu <claziss@synopsys.com>
8039
8040 * config/arc/arc.md (length): Fix attribute length for conditional
8041 executed instructions with long immediate.
8042
8043 2015-09-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8044
8045 * config/aarch64/aarch64.md (*and<mode>3nr_compare0): Use logics_imm
8046 type for second alternative.
8047
8048 2015-09-10 Markus Trippelsdorf <markus@trippelsdorf.de>
8049
8050 * doc/invoke.texi (Downloading GCC): Mention
8051 contrib/download_prerequisites script.
8052
8053 2015-09-10 Jakub Jelinek <jakub@redhat.com>
8054
8055 PR c++/67523
8056 * gimplify.c (gimplify_omp_for): If inner stmt is not found
8057 for combined loop, assert seen_error () and return GS_ERROR.
8058
8059 PR middle-end/67521
8060 * gimplify.c (gimplify_omp_for): Don't call omp_add_variable
8061 if decl is already in outer->variables.
8062
8063 PR middle-end/67517
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.
8067
8068 PR c++/67514
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.
8073
8074 2015-09-09 Nathan Sidwell <nathan@acm.org>
8075
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
8080 level.
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.
8085
8086 2015-09-09 Marek Polacek <polacek@redhat.com>
8087
8088 PR middle-end/67512
8089 * tree-ssa-uninit.c (pred_equal_p): Only call invert_tree_comparison
8090 for comparisons.
8091
8092 2015-09-09 Paolo Carlini <paolo.carlini@oracle.com>
8093
8094 PR c++/53184
8095 * doc/invoke.texi ([Wsubobject-linkage]): Document.
8096
8097 2015-09-09 Tom de Vries <tom@codesourcery.com>
8098
8099 * params-list.h: Add missing copyright notice.
8100
8101 2015-09-09 Nathan Sidwell <nathan@acm.org>
8102
8103 * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>): Use
8104 sel_truesi, not andsi.
8105
8106 2015-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8107
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.
8113
8114 2015-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8115
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.
8122
8123 2015-09-09 Alan Modra <amodra@gmail.com>
8124
8125 PR target/67378
8126 * config/rs6000/rs6000.c (rs6000_secondary_reload_gpr): Find
8127 reload replacement for PRE_MODIFY address reg.
8128
8129 2015-09-09 Sebastian Pop <s.pop@samsung.com>
8130
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.
8142
8143 2015-09-08 Aditya Kumar <hiraditya@msn.com>
8144 Sebastian Pop <s.pop@samsung.com>
8145
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
8157 loop inside it.
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
8166 added.
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
8174 sese region.
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
8179 any data-refs.
8180 * tree-data-ref.h: Declaration of loop_nest_has_data_refs.
8181
8182 2015-09-08 Tom de Vries <tom@codesourcery.com>
8183
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.
8189
8190 2015-09-08 David Malcolm <dmalcolm@redhat.com>
8191
8192 * pretty-print.h (printer_fn): Fix typo in comment.
8193
8194 2015-09-07 Jeff Law <law@redhat.com>
8195
8196 * tree-ssa-scopedtables.h (class const_and_copies): Fix comment typo.
8197
8198 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8199
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.
8203
8204 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8205
8206 * fold-const.c (native_interpret_real): Fix HFmode for bigendian where
8207 UNITS_PER_WORD >= 4.
8208
8209 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8210
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.
8217
8218 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi): Add v8hf.
8219 (float_extend_lo): Add v4sf.
8220
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.
8225
8226 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8227
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.
8233
8234 * config/aarch64/aarch64.c (aarch64_evpc_dup): Add V4HF and V8HF cases.
8235
8236 * config/aarch64/iterators.md (VDQF_F16): New.
8237 (VSWAP_WIDTH, vswap_width_name): Add V4HF and V8HF cases.
8238
8239 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8240
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.
8259
8260 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8261
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.
8267
8268 * config/aarch64/aarch64-simd-builtins.def (float_truncate_hi_): Add
8269 v8hf variant.
8270 (float_truncate_lo_): Use BUILTIN_VDF iterator.
8271
8272 * config/aarch64/arm_neon.h (vcvt_f16_f32, vcvt_high_f16_f32): New.
8273
8274 * config/aarch64/iterators.md (VDF, Vdtype): New.
8275 (VWIDE, Vmwtype): Add cases for V4HF and V2SF.
8276
8277 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8278
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.
8292
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.
8296
8297 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8298
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.
8305
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.
8309
8310 * config/aarch64/aarch64-simd-builtin-types.def: Add Float16x4_t,
8311 Float16x8_t.
8312
8313 * config/aarch64/aarch64-simd-builtins.def (ld1, st1): Use VALL_F16.
8314 * config/aarch64/arm_neon.h (float16x4_t, float16x8_t, float16_t):
8315 New typedefs.
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.
8324
8325 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8326
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.
8334
8335 * config/arm/iterators.md (VD_LANE, VD_RE, VQ2, VQ_HS): New.
8336 (VDX): Add V4HF.
8337 (V_DOUBLE): Add case for V4HF.
8338 (VQX): Add V8HF.
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.
8343
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.
8353
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.
8358
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.
8362
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.
8372
8373 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8374
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):
8385 New.
8386
8387 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8388
8389 * config/arm/arm.h (VALID_NEON_QREG_MODE): Add V8HFmode.
8390
8391 * config/arm/arm.c (arm_vector_mode_supported_p): Support V8HFmode.
8392
8393 * config/arm/arm-builtins.c (v8hf_UP): New.
8394 (arm_init_simd_builtin_types): Initialise Float16x8_t.
8395
8396 * config/arm/arm-simd-builtin-types.def (Float16x8_t): New.
8397
8398 * config/arm/arm_neon.h (float16x8_t): New typedef.
8399
8400 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8401
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.
8412
8413 2015-09-07 Ilya Verbin <ilya.verbin@intel.com>
8414
8415 * config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all
8416 non-alphanumeric characters in the symbol name.
8417
8418 2015-09-07 Marek Polacek <polacek@redhat.com>
8419
8420 PR inline-asm/67448
8421 * gimplify.c (gimplify_asm_expr): Don't allow MODIFY_EXPR as
8422 a memory input.
8423
8424 2015-09-07 Marek Polacek <polacek@redhat.com>
8425
8426 * system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning.
8427
8428 2015-09-04 Paolo Bonzini <bonzini@gnu.org>
8429
8430 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Do
8431 not warn.
8432
8433 2015-09-04 Jakub Jelinek <jakub@redhat.com>
8434
8435 PR middle-end/67452
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.
8439
8440 2015-09-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
8441
8442 PR target/65210
8443 * config/avr/avr.c (avr_eval_addr_attrib): Look for io_low
8444 attribute as well.
8445
8446 2015-09-04 Tom de Vries <tom@codesourcery.com>
8447
8448 * doc/invoke.texi (@item -ftrapv, @item -fwrapv): Document interaction.
8449
8450 2015-09-04 Jeff Law <law@redhat.com>
8451
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
8456 private fields.
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
8460 indentation issues.
8461 (thread_across_edge): Similarly.
8462 (record_temporary_equivalences_from_stmts_at_dest): Remove unused
8463 arguments in constructor call.
8464
8465 2015-09-04 Jonas Hahnfeld <Hahnfeld@itc.rwth-aachen.de>
8466
8467 * config/i386/intelmic-mkoffload.c (prepare_target_image): Fix if the
8468 temp path contains a '-'.
8469
8470 2015-09-04 Andrey Turetskiy <andrey.turetskiy@intel.com>
8471 Petr Murzin <petr.murzin@intel.com>
8472 Kirill Yukhin <kirill.yukhin@intel.com>
8473
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.
8492
8493 2015-09-04 Andrey Turetskiy <andrey.turetskiy@intel.com>
8494 Petr Murzin <petr.murzin@intel.com>
8495 Kirill Yukhin <kirill.yukhin@intel.com>
8496
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.
8511 * tree-vect-stmts.c
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.
8516
8517 2015-09-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
8518
8519 * config/rs6000/altivec.md (altivec_vperm_v8hiv16qi): New
8520 define_insn.
8521 (mulv16qi3): New define_expand.
8522
8523 2015-09-03 Martin Sebor <msebor@redhat.com>
8524
8525 PR c/66516
8526 * doc/extend.texi (Other Builtins): Document when the address
8527 of a built-in function can be taken.
8528
8529 2015-09-03 Richard Biener <rguenther@suse.de>
8530
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.
8535
8536 2015-09-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8537
8538 * optabs.c (expand_binop): Don't create a broadcast vector with a
8539 source element wider than the inner mode.
8540
8541 2015-09-03 Richard Biener <rguenther@suse.de>
8542
8543 * varasm.c (output_constant): Use fold_convert instead of
8544 wide_int_to_tree.
8545
8546 2015-09-03 Tom de Vries <tom@codesourcery.com>
8547
8548 PR tree-optimization/65637
8549 * omp-low.c (expand_omp_for_static_chunk): Handle case that
8550 fin_bb has 2 predecessors.
8551
8552 2015-09-03 Tom de Vries <tom@codesourcery.com>
8553
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.
8557
8558 2015-09-03 Tom de Vries <tom@codesourcery.com>
8559
8560 PR tree-optimization/65637
8561 * omp-low.c (expand_omp_for_static_chunk): Fix gcc_assert for the case
8562 that head is NULL.
8563
8564 2015-09-03 Tom de Vries <tom@codesourcery.com>
8565
8566 * omp-low.c (expand_omp_for_static_chunk): Handle simple latch bb.
8567
8568 2015-09-03 Tom de Vries <tom@codesourcery.com>
8569
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.
8575
8576 2015-09-03 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
8577
8578 PR middle-end/67351
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
8585
8586 2015-09-03 Richard Biener <rguenther@suse.de>
8587
8588 PR ipa/66705
8589 * tree-ssa-structalias.c (ctor_for_analysis): New function.
8590 (create_variable_info_for_1): Use ctor_for_analysis instead
8591 of get_constructor.
8592 (create_variable_info_for): Likewise.
8593
8594 2015-09-02 Charles Baylis <charles.baylis@linaro.org>
8595
8596 PR ipa/67280
8597 * cgraphunit.c (cgraph_node::create_wrapper): Set can_throw_external
8598 in new callgraph edge.
8599
8600 2015-09-02 Christophe Lyon <christophe.lyon@linaro.org>
8601
8602 PR target/59810
8603 PR target/63652
8604 PR target/63653
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>.
8610
8611 2015-09-02 Alan Modra <amodra@gmail.com>
8612
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.
8616
8617 2015-09-02 Alan Modra <amodra@gmail.com>
8618
8619 PR target/67417
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.
8623
8624 2015-09-01 Matthew Fortune <matthew.fortune@imgtec.com>
8625 Andrew Bennett <andrew.bennett@imgtec.com>
8626
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
8631 JIC instruction.
8632 (mips_emit_compare): Add support for the MIPS R6 conditional
8633 compact branches.
8634 (mips_process_sync_loop): Likewise.
8635 (mips_output_order_conditional_branch): Likewise.
8636 (mips16_build_call_stub): Change MIPS_CALL to
8637 mips_output_jump.
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
8641 hazards.
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.
8697
8698 2015-09-01 Vladimir Makarov <vmakarov@redhat.com>
8699
8700 PR target/61578
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.
8705
8706 2015-09-01 Ilya Enkovich <enkovich.gnu@gmail.com>
8707
8708 PR target/67405
8709 * tree-chkp.c (chkp_find_bound_slots_1): Add NULL check.
8710
8711 2015-09-01 Aldy Hernandez <aldyh@redhat.com>
8712
8713 * trans-mem.c: Add contributed-by.
8714 * trans-mem.h: Same.
8715
8716 2015-09-01 Richard Biener <rguenther@suse.de>
8717
8718 * expr.c (expand_expr_real_1): For expanding TERed defs
8719 set the current location to that of the def if not UNKNOWN.
8720
8721 2015-09-01 David Sherwood <david.sherwood@arm.com>
8722
8723 * genmodes.c: Add CONST_MODE_UNIT_SIZE modifier.
8724
8725 2015-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8726
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.
8730 Include rtl-iter.h.
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
8751 where appropriate.
8752
8753 2015-08-31 Alan Lawrence <alan.lawrence@arm.com>
8754
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.
8758
8759 2015-09-01 Nick Clifton <nickc@redhat.com>
8760
8761 * config/msp430/msp430.opt (mcpu): Fix typo.
8762
8763 2015-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8764
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):
8768 Delete.
8769 (aarch64_simd_expand_args): Delete call to the above.
8770
8771 2015-08-31 Mike Frysinger <vapier@gentoo.org>
8772
8773 * doc/invoke.texi (asan-stack): Add space before option.
8774
8775 2015-08-31 Marc Glisse <marc.glisse@inria.fr>
8776
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.
8784
8785 2015-08-31 Richard Biener <rguenther@suse.de>
8786
8787 PR middle-end/67381
8788 * genmatch.c (dt_node::gen_kids): Also treat matches as barrier.
8789
8790 2015-08-31 Marc Glisse <marc.glisse@inria.fr>
8791
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))):
8796 Converted from ...
8797 * fold-const.c (fold_unary_loc, fold_binary_loc): ... here. Remove.
8798
8799 2015-08-31 Tom de Vries <tom@codesourcery.com>
8800
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
8803 parameter.
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.
8810
8811 2015-08-31 Michael Matz <matz@suse.de>
8812
8813 * cfganal.c (pre_and_rev_post_order_compute_fn): Correctly
8814 enter entry and exit blocks for reverse post order.
8815
8816 2015-08-31 Richard Biener <rguenther@suse.de>
8817
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
8825 is a system header.
8826 * lto-streamer-out.c (lto_output_location): Stream whether a file
8827 is a system header.
8828
8829 2015-08-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8830
8831 PR bootstrap/67363
8832 * gcc.c (env_manager::xput): Replace strndup by xstrndup.
8833
8834 2015-08-31 Tom de Vries <tom@codesourcery.com>
8835
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.
8839
8840 2015-08-30 Michael Collison <michael.collison@linaro.org>
8841
8842 PR other/67320
8843 * doc.md.texi: Rename [su]sum_widen to widen_[su]sum to reflect correct
8844 standard names
8845
8846 2015-08-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8847
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
8858 adjust_concat.
8859 (dump_swap_insn_table): Handle SH_XXPERMDI and SH_CONCAT.
8860
8861 2015-08-30 Rich Felker <dalias@libc.org>
8862
8863 * config.gcc (supported_defaults): Handle sh[123456ble]*-*-*
8864 case instead of sh[123456ble]-*-*.
8865
8866 2015-08-29 Anatoly Sokolov <aesok@post.ru>
8867
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.
8873
8874 2015-08-29 Tom de Vries <tom@codesourcery.com>
8875
8876 PR tree-optimization/46193
8877 * omp-low.c (omp_reduction_init): Handle pointer type for min or max
8878 clause.
8879
8880 2015-08-28 Jeff Law <law@redhat.com>
8881
8882 PR lto/66752
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
8885 condition.
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
8888 to VISISTED_BBS.
8889 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
8890 after removing the control flow statement and unnecessary edges.
8891
8892 2015-08-28 Alan Lawrence <alan.lawrence@arm.com>
8893
8894 Revert:
8895 2015-08-27 Alan Lawrence <alan.lawrence@arm.com>
8896
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.
8900
8901 (completely_scalarize_record): Rename to...
8902 (completely_scalarize): ...this, add ARRAY_TYPE case, move some
8903 code to:
8904 (scalarize_elem): New.
8905
8906 2015-08-28 Jiong Wang <jiong.wang@arm.com>
8907
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):
8912 Likewise.
8913 (aarch64_expand_mov_immediate): Likewise.
8914 (aarch64_print_operand): Likewise.
8915 (aarch64_classify_tls_symbol): Likewise.
8916
8917 2015-08-28 Richard Biener <rguenther@suse.de>
8918
8919 * cgraphunit.c (symbol_table::compile): Move early debug generation
8920 and finish...
8921 (symbol_table::finalize_compilation_unit): ... back here and
8922 add a !seen_error () guard.
8923
8924 2015-08-27 Sebastian Pop <s.pop@samsung.com>
8925
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.
8929
8930 2015-08-27 Sebastian Pop <s.pop@samsung.com>
8931
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
8952 PBB_ORIGINAL.
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.
8957 (free_scop): Same.
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.
8974 (dot_lst): 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.
9012 (free_lst): Remove.
9013 (copy_lst): Remove.
9014 (lst_add_loop_under_loop): Remove.
9015 (lst_depth): Remove.
9016 (lst_dewey_number): Remove.
9017 (lst_dewey_number_at_depth): Remove.
9018 (lst_pred): Remove.
9019 (lst_succ): 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
9041 saved_schedule.
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
9056 pbb->domain.
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.
9063
9064 2015-08-27 Sebastian Pop <s.pop@samsung.com>
9065
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.
9089
9090 2015-08-27 Uros Bizjak <ubizjak@gmail.com>
9091
9092 PR target/67317
9093 * config/i386/i386.md (*add<mode>3_cc): Remove insn pattern.
9094 (addqi3_cc): Ditto.
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.
9119
9120 2015-08-27 Pat Haugen <pthaugen@us.ibm.com>
9121
9122 * config/rs6000/vector.md (vec_shr_<mode>): Fix to do a shift
9123 instead of a rotate.
9124
9125 2015-08-27 Marek Polacek <polacek@redhat.com>
9126
9127 PR middle-end/67005
9128 * tree-ssa-dce.c (remove_dead_stmt): Also schedule fixup if removing
9129 an entry into an irreducible region.
9130
9131 2015-08-27 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
9132
9133 * configure: Regenerate.
9134
9135 2015-08-27 Alan Lawrence <alan.lawrence@arm.com>
9136
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.
9140
9141 (completely_scalarize_record): Rename to...
9142 (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
9143 (scalarize_elem): New.
9144
9145 2015-08-27 Alan Lawrence <alan.lawrence@arm.com>
9146
9147 * tree-sra.c (completely_scalarize_var): Rename to...
9148 (create_total_scalarization_access): ... Here. Drop call to
9149 completely_scalarize_record.
9150
9151 (analyze_all_variable_accesses): Replace completely_scalarize_var
9152 with create_total_scalarization_access and completely_scalarize_record.
9153
9154 2015-08-27 Alan Modra <amodra@gmail.com>
9155
9156 PR target/67356
9157 * config/rs6000/rs6000.md (ior<mode>_mask): Use constraint "0"
9158 for operand 1.
9159
9160 2015-08-27 Richard Biener <rguenther@suse.de>
9161
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 ()
9167 guard.
9168
9169 2015-08-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9170
9171 * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit on
9172 Solaris 12+.
9173
9174 2015-08-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9175 Andre Vieira <andre.simoesdiasvieira@arm.com>
9176
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.
9182 (inv_tb): Likewise.
9183 * config/aarch64/aarch64.c (aarch64_gen_far_branch): New.
9184 * config/aarch64/aarch64-protos.h (aarch64_gen_far_branch): New.
9185
9186 2015-08-27 Richard Biener <rguenther@suse.de>
9187
9188 * ipa.c (cgraph_build_static_cdtor_1): Set DECL_IGNORED_P.
9189
9190 2015-08-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
9191
9192 * config/s390/s390.c (s390_emit_prologue): Add emit_barrier() after
9193 trap to fix ICE.
9194
9195 2015-08-26 Michael Meissner <meissner@linux.vnet.ibm.com>
9196
9197 * config/rs6000/rs6000-protos.h (rs6000_expand_float128_convert):
9198 Add declaration.
9199
9200 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Fix a
9201 comment.
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.
9209
9210 * config/rs6000/predicates.md (int_reg_operand_not_pseudo): New
9211 predicate for only GPR hard registers.
9212
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
9221 in VSX registers.
9222 (IFKF): Likewise.
9223 (IBM128): Likewise.
9224 (TFIFKF): Likewise.
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.
9231 (negtf2): Likewise.
9232 (neg<mode>2, TFIFKF iterator): Likewise.
9233 (negtf2_internal): Likewise.
9234 (abstf2): 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
9238 value.
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
9255 registers.
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.
9269
9270 2015-08-26 Renlin Li <renlin.li@arm.com>
9271
9272 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode><ALLX:mode>4): New.
9273
9274 2015-08-26 Marcus Shawcroft <marcus.shawcroft@arm.com>
9275 Jiong Wang <jiong.wang@arm.com>
9276
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
9281 SYMBOL_TINY_TLSIE.
9282 (aarch64_symbol_context): New comment for SYMBOL_TINY_TLSIE.
9283 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
9284 SYMBOL_TINY_TLSIE.
9285 (aarch64_expand_mov_immediate): Likewise.
9286 (aarch64_print_operand): Likewise.
9287 (arch64_classify_tls_symbol): Likewise.
9288
9289 2015-08-26 Matthew Wahab <matthew.wahab@arm.com>
9290
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
9296 instead.
9297 (all_architectures): Remove ARM_FSET_MAKE_CPU1 derivation from the
9298 ARM_ARCH macro definition, use the given value instead.
9299
9300 2015-08-26 Matthew Wahab <matthew.wahab@arm.com>
9301
9302 * config/arm/arm-builtins.c (def_mbuiltin): Test all flags in a
9303 feature set.
9304 (struct builtin_description): Replace field mask with field
9305 features.
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.
9316
9317 2015-08-26 Matthew Wahab <matthew.wahab@arm.com>
9318
9319 * config/arm/arm-builtins.c (def_mbuiltin): Use ARM_FSET macro.
9320 (struct builtin_description): Change type of mask to unsigned
9321 long.
9322 * config/arm/arm-protos.h (insn_flags): Declare as type
9323 arm_feature_set.
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
9332 macros.
9333 (arm_option_override_internal): Likewise.
9334 (arm_option_override): Likewise.
9335
9336 2015-08-26 Marcus Shawcroft <marcus.shawcroft@arm.com>
9337 Jiong Wang <jiong.wang@arm.com>
9338
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
9353 "aarch64_tlsle32".
9354
9355 2015-08-26 Matthew Wahab <matthew.wahab@arm.com>
9356
9357 * config/arm/arm-protos.h (FL_NONE): New.
9358 (FL_ANY): 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.
9380
9381 2015-08-26 Jiong Wang <jiong.wang@arm.com>
9382
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):
9386 Likewise.
9387 (aarch64_expand_mov_immediate): Likewise.
9388 (aarch64_print_operand): Likewise.
9389 (aarch64_classify_symbol): Likewise.
9390
9391 2015-08-26 Jiong Wang <jiong.wang@arm.com>
9392
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.
9397
9398 2015-08-26 Matthew Wahab <matthew.wahab@arm.com>
9399
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.
9404
9405 2015-08-26 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
9406
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.
9418
9419 2015-08-25 Joseph Myers <joseph@codesourcery.com>
9420
9421 * gcc.c (driver::finalize): Only assign to extra_specs if
9422 [EXTRA_SPECS].
9423
9424 2015-08-25 Marek Polacek <polacek@redhat.com>
9425
9426 PR middle-end/67330
9427 * varasm.c (declare_weak): Return after giving an error.
9428
9429 2015-08-25 David Malcolm <dmalcolm@redhat.com>
9430
9431 * gcc-main.c (main): Add params to driver ctor.
9432 * gcc.c (class env_manager): New.
9433 (env): New global.
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.
9464
9465 2015-08-25 Nathan Sidwell <nathan@acm.org>
9466
9467 * optabs.c (emit_indirect_jump): Don't try an emit a jump if the
9468 target doesn't have one.
9469
9470 2015-08-25 Segher Boessenkool <segher@kernel.crashing.org>
9471
9472 PR target/67346
9473 * config/rs6000/rs6000.md (*ior<mode>_mask): Use a match_scratch.
9474
9475 2015-08-25 Segher Boessenkool <segher@kernel.crashing.org>
9476
9477 PR target/67344
9478 * config/rs6000/rs6000.md (*and<mode>3_imm_dot_shifted): Change to
9479 a define_insn, remove second alternative.
9480
9481 2015-08-25 Thomas Schwinge <thomas@codesourcery.com>
9482 Joseph Myers <joseph@codesourcery.com>
9483
9484 * gcc.c (struct switchstr): Expand comment.
9485
9486 2015-08-25 Nathan Sidwell <nathan@acm.org>
9487
9488 * config/nvptx/nvptx.c (nvptx_write_function_decl): Reformat.
9489 (nvptx_reorg_subreg): Pass insn pattern to asm_operands.
9490
9491 2015-08-25 Richard Biener <rguenther@suse.de>
9492
9493 PR middle-end/67306
9494 * genmatch.c (expr::gen_transform): Verify the result of
9495 builtin_decl_implicit.
9496 (dt_simplify::gen_1): Likewise.
9497
9498 2015-08-25 Thomas Preud'homme <thomas.preudhomme@arm.com>
9499
9500 * config/arm/constraints.md: Also list Cs and US ARM-specific
9501 constraints as used.
9502
9503 2015-08-24 Kaz Kojima <kkojima@gcc.gnu.org>
9504
9505 PR target/66609
9506 * config/sh/sh.c (sh_asm_output_addr_const_extra): Handle
9507 UNSPEC_PCREL.
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.
9517
9518 2015-08-24 Aditya Kumar <aditya.k7@samsung.com>
9519
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.
9524
9525 2015-08-24 Aditya Kumar <aditya.k7@samsung.com>
9526
9527 * graphite-scop-detection.c (stmt_simple_for_scop_p):
9528 Constrain only on INTEGER_TYPE.
9529
9530 2015-08-24 Michael Meissner <meissner@linux.vnet.ibm.com>
9531
9532 PR target/67211
9533 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
9534 -mefficient-unaligned-vsx on ISA 2.7.
9535
9536 * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
9537 option to a masked option.
9538
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.
9544
9545 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
9546
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
9564 of GEN_CALL.
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
9579 GEN_CALL.
9580
9581 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
9582
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.
9588
9589 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
9590
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.
9597
9598 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
9599
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
9606 operand.
9607 * config/sh/sh.md (cmpstrnsi): Change the length predicate from
9608 immediate_operand to nonmemory_operand.
9609
9610 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
9611
9612 * df-scan.c (df_insn_info_init_fields): New function, split out
9613 from...
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.
9619
9620 2015-08-24 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
9621
9622 * doc/install.texi (Binaries): Remove links no longer valid.
9623
9624 2015-08-24 Nathan Sidwell <nathan@codesourcery.com>
9625
9626 * config/nvptx/mkoffload.c (process): Replace
9627 GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver.
9628
9629 2015-08-24 H.J. Lu <hongjiu.lu@intel.com>
9630
9631 PR target/67329
9632 * config/i386/i386.c (iamcu_cost): Set MOVE_RATIO cost to 9.
9633
9634 2015-08-24 Renlin Li <renlin.li@arm.com>
9635
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.
9640
9641 2015-08-24 Tom de Vries <tom@codesourcery.com>
9642
9643 PR tree-optimization/65468
9644 * omp-low.c (expand_omp_for_static_chunk): Remove inner loop if
9645 chunk_size is one.
9646
9647 2015-08-24 Nathan Sidwell <nathan@acm.org>
9648
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.
9652
9653 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
9654
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/
9658 CODE_FOR_movstr.
9659
9660 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
9661
9662 * config/microblaze/microblaze.c (microblaze_classify_unspec): Fix
9663 cast syntax.
9664
9665 2015-08-24 Andrew Pinski <apinski@cavium.com>
9666
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):
9670 New enum.
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.
9675
9676 2015-08-23 Nathan Sidwell <nathan@acm.org>
9677
9678 * config/nvptx/nvptx.c (walk_args_for_param): Promote arg reg
9679 decls.
9680 (nvptx_declare_function_name): Insert formatting tabs for
9681 consistency.
9682
9683 2015-08-23 Tom de Vries <tom@codesourcery.com>
9684
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.
9694
9695 2015-08-23 Tom de Vries <tom@codesourcery.com>
9696
9697 * doc/sourcebuild.texi: Rename vect_no_int_max with
9698 vect_no_int_min_max. Update description.
9699
9700 2015-08-22 Andrew Pinski <apinski@cavium.com>
9701
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.
9710
9711 2015-08-22 Mikhail Maltsev <maltsevm@gmail.com>
9712
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):
9716 Add new members.
9717 (dom_info::dom_info, ~dom_info): Define. Use new/delete for memory
9718 allocations/deallocations. Pass function as parameter (instead of
9719 using cfun).
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.
9725
9726 2015-08-21 Alexandre Oliva <aoliva@redhat.com>
9727
9728 * print-rtl.c (print_rtx): Check the correct range for
9729 flag_dump_unnumbered_links to behave as documented.
9730
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.
9736
9737 2015-08-21 Nathan Sidwell <nathan@acm.org>
9738
9739 * config/nvptx/nvptx.md (allocate_stack): Emit sorry during
9740 expansion.
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.
9746
9747 2015-08-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
9748
9749 * config.build: Remove case for m68000-hp-hpux* | m68k-hp-hpux*.
9750
9751 2015-08-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
9752
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*.
9760
9761 2015-08-21 Richard Sandiford <richard.sandiford@arm.com>
9762
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
9767 NUM_INSN_CODES.
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.
9775
9776 2015-08-21 Markus Trippelsdorf <markus@trippelsdorf.de>
9777
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.
9781
9782 2014-08-21 Felix Yang <felix.yang@huawei.com>
9783 Jiji Jiang <jiangjiji@huawei.com>
9784
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.
9790
9791 2015-08-21 Dominik Vogt <vogt@linux.vnet.ibm.com>
9792
9793 * config/s390/s390-builtins.def: Fix value range of vec_load_bndry.
9794
9795 2015-08-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
9796
9797 * fold-const.c (fold_binary_loc) : Move sqrt(x)*sqrt(x) as x
9798 to match.pd.
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.
9809
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.
9823
9824 2015-08-21 Bin Cheng <bin.cheng@arm.com>
9825
9826 * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break
9827 loop if EXPR is simplified to const value.
9828
9829 2015-08-21 Yury Gribov <y.gribov@samsung.com>
9830
9831 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
9832 BUILT_IN_UBSAN_HANDLE_NONNULL_ARG): Fix builtin types.
9833
9834 2015-08-21 Richard Biener <rguenther@suse.de>
9835
9836 PR middle-end/67285
9837 * gimple-fold.c (replace_stmt_with_simplification): Assert
9838 seq is empty when replacing a call with itself but different
9839 arguments.
9840 * gimple-match-head.c (maybe_push_res_to_seq): When pushing
9841 a call require that it is const.
9842
9843 2015-08-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9844
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.
9853
9854 2015-08-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9855
9856 * genconfig.c (main): Always define HAVE_cc0.
9857 * recog.c (rest_of_handle_peephole2): Adjust.
9858
9859 2015-08-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9860
9861 * reorg.c (relax_delay_slots): Don't use #if to check value of
9862 HAVE_cc0.
9863
9864 2015-08-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9865
9866 * genconfig.c (main): Always define HAVE_CONDITIONAL_EXECUTION.
9867 * targhooks.c (default_have_conditional_execution): Adjust.
9868
9869 2015-08-20 Richard Sandiford <richard.sandiford@arm.com>
9870
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.
9887
9888 2015-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9889
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.
9899
9900 2015-08-20 Georg-Johann Lay <avr@gjlay.de>
9901
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.
9905
9906 2015-08-20 Alan Lawrence <alan.lawrence@arm.com>
9907
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
9911 code.
9912
9913 (arm_init_builtins): Call arm_init_fp16_builtins earlier and always.
9914
9915 * config/arm/arm_neon.h (vcvt_f16_f32, vcvt_f32_f16): Condition on
9916 having an -mfp16-format.
9917
9918 2015-08-20 Richard Sandiford <richard.sandiford@arm.com>
9919
9920 * config/i386/predicates.md (vector_all_ones_operand): Use
9921 CONSTM1_RTX to simplify definition.
9922
9923 2015-08-20 Richard Biener <rguenther@suse.de>
9924
9925 * toplev.c (compile_file): Remove loop calling late_global_decl
9926 on all symbols.
9927 * varpool.c (varpool_node::assemble_decl): Call late_global_decl
9928 on decls we assembled.
9929
9930 2015-08-20 James Greenhalgh <james.greenhalgh@arm.com>
9931
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.
9938 (all_cores): New.
9939 (all_architectures): Likewise.
9940 (aarch64_get_extension_string_for_isa_flags): Likewise.
9941 (aarch64_rewrite_selected_cpu): Change to rewrite CPU names to
9942 architecture names.
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.
9955
9956 2015-08-20 Simon Dardis <simon.dardis@imgtec.com>
9957
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.
9963
9964 2015-08-19 Jiong Wang <jiong.wang@arm.com>
9965
9966 * expr.c (expand_expr_real_2): Check gimple statement during
9967 LSHIFT_EXPR expand.
9968
9969 2015-08-19 Magnus Granberg <zorry@gentoo.org>
9970
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
9978 -1.
9979 * doc/install.texi: Document --enable-default-ssp.
9980 * config.in: Regenerated.
9981 * configure: Likewise.
9982
9983 2015-08-19 Alexandre Oliva <aoliva@redhat.com>
9984
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
9989 slot.
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.
10003
10004 2015-08-19 David Sherwood <david.sherwood@arm.com>
10005
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.
10015
10016 2015-08-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10017
10018 * config/aarch64/aarch64.c (bit_count): Delete prototype
10019 and definition.
10020 (aarch64_print_operand): Use popcount_hwi instead of the above.
10021
10022 2015-08-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10023
10024 * config/aarch64/aarch64-option-extensions.def: Delete obsolete
10025 comment.
10026
10027 2015-08-19 Marek Polacek <polacek@redhat.com>
10028
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
10033 block instead.
10034 (find_explicit_erroneous_behaviour): Don't remove all outgoing edges.
10035
10036 2015-08-19 Mikael Morin <mikael@gcc.gnu.org>
10037
10038 PR other/67042
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.
10042
10043 2015-08-19 Jiong Wang <jiong.wang@arm.com>
10044
10045 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Replace
10046 whitespaces with tab.
10047
10048 2015-08-19 Florian Weimer <fweimer@redhat.com>
10049
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
10054 trampolines.
10055
10056 2015-08-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10057
10058 * config/arm/arm.c (bounds_check): Use %wd print format
10059 for HOST_WIDE_INT arguments.
10060
10061 2015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org>
10062
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
10072 typedefs.
10073
10074 2015-08-18 trevor Saunders <tbsaunde@tbsaunde.org>
10075
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.
10081
10082 2015-08-18 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
10083
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.
10091 (ADDEC): Likewise.
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.
10102
10103 2015-08-18 Jason Merrill <jason@redhat.com>
10104
10105 * print-tree.c (print_node): Handle TREE_BINFO.
10106
10107 2015-08-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
10108
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.
10114
10115 2015-08-18 Richard Sandiford <richard.sandiford@arm.com>
10116
10117 PR rtl-optimization/67218
10118 * simplify-rtx.c (exact_int_to_float_conversion_p): New function.
10119 (simplify_unary_operation_1): Use it.
10120
10121 2015-08-18 Marek Polacek <polacek@redhat.com>
10122
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.
10130
10131 2015-08-18 Robert Suchanek <robert.suchanek@imgtec.com>
10132
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.
10138
10139 2015-08-18 Bin Cheng <bin.cheng@arm.com>
10140
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.
10144
10145 2015-08-17 Aldy Hernandez <aldyh@redhat.com>
10146
10147 * config/i386/i386.c: Remove include of fibheap.h.
10148
10149 2015-08-17 Richard Biener <rguenther@suse.de>
10150
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.
10155
10156 2015-08-17 David Sherwood <david.sherwood@arm.com>
10157
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.
10174 New variable.
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).
10178
10179 2015-08-17 Mike Stump <mikestump@comcast.net>
10180
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.
10184
10185 2015-08-17 Richard Biener <rguenther@suse.de>
10186 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
10187
10188 PR middle-end/16107
10189 * match.pd (div (coss (op @0) : New simplifier.
10190
10191 2015-08-14 Alexandre Oliva <aoliva@redhat.com>
10192
10193 PR rtl-optimization/64164
10194 PR bootstrap/66978
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
10235 names.
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
10245 from...
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
10253 partitions.
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
10265 it's not a DECL.
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
10282 rtl.
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
10309 non-MEMs.
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.
10314
10315 2015-08-14 Marek Polacek <polacek@redhat.com>
10316
10317 * tree-core.h (tree_base): Fix typo.
10318
10319 2015-08-14 Marek Polacek <polacek@redhat.com>
10320
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.
10324
10325 2015-08-14 Matthew Wahab <matthew.wahab@arm.com>
10326
10327 PR target/67143
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
10333 'const_atomic'.
10334 (const_atomic): New.
10335
10336 2015-08-14 Thomas Schwinge <thomas@codesourcery.com>
10337 Bernd Schmidt <bernds@codesourcery.com>
10338
10339 * config/nvptx/nvptx.c (nvptx_option_override): Don't override
10340 debug options.
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
10348 case.
10349 * defaults.h (PREFERRED_DEBUGGING_TYPE): Also use DWARF2_DEBUG if
10350 DWARF2_LINENO_DEBUGGING_INFO.
10351 * opts.c (set_debug_level): Likewise.
10352
10353 2015-08-14 James Greenhalgh <james.greenhalgh@arm.com>
10354
10355 * config/arm/types.md (is_neon_type): Add missing types.
10356
10357 2015-08-14 Yuri Rumyantsev <ysrumyan@gmail.com>
10358
10359 * config/i386/driver-i386.c (host_detect_local_cpu): Add support
10360 for skylake.
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.
10366
10367 2015-08-13 Andrew MacLeod <amacleod@redhat.com>
10368
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.
10376 * ira.c: Likewise.
10377 * sched-deps.c: Likewise.
10378 * sel-sched.c: Likewise.
10379 * target-globals.c: Likewise.
10380
10381 2015-08-13 Richard Sandiford <richard.sandiford@arm.com>
10382
10383 PR bootstrap/55035
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.
10386
10387 2015-08-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10388
10389 * ifcvt.c (noce_try_store_flag_constants): Handle PLUS-immediate
10390 expressions in A and B.
10391
10392 2015-08-13 Richard Biener <rguenther@suse.de>
10393
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.
10401
10402 2015-08-13 Robert Suchanek <robert.suchanek@imgtec.com>
10403
10404 * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Enable load/store pairs for
10405 TUNE_I6400.
10406
10407 2015-08-13 Matthew Wahab <matthew.wahab@arm.com>
10408
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.
10419
10420 2015-08-13 Matthew Wahab <matthew.wahab@arm.com>
10421
10422 * config/aarch64/aarch64.h (AARCH64_ISA_LSE): New.
10423 (TARGET_LSE): New.
10424
10425 2015-08-13 Richard Biener <rguenther@suse.de>
10426
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.
10431
10432 2015-08-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10433
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
10438 move fails.
10439
10440 2015-08-13 Robert Suchanek <robert.suchanek@imgtec.com>
10441
10442 * config/mips/mips.c (mips_rtx_cost_data): Remove costs for W32 and W64
10443 pseudo-processors.
10444 * config/mips/mips.md (processor): Remove w32 and w64.
10445
10446 2015-08-13 Richard Biener <rguenther@suse.de>
10447
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.
10457
10458 2015-08-13 Richard Biener <rguenther@suse.de>
10459
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.
10491
10492 2015-08-13 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
10493
10494 PR middle-end/25529
10495 * match.pd (div (mult @0 @1) @1) : New simplifier.
10496
10497 2015-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
10498
10499 PR target/67071
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.
10503
10504 * config/rs6000/rs6000-protos.h (vspltis_shifted): Add
10505 declaration.
10506
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
10511 methods exist.
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.
10515
10516 * config/rs6000/rs6000.h (EASY_VECTOR_MSB): Use mode mask to
10517 properly test for the MSB.
10518
10519 * config/rs6000/altivec.md (VSLDOI splitter): Add splitter for
10520 vector constants that can be created with VSLDOI.
10521
10522 2015-08-11 Trevor Saunders <tbsaunde@tbsaunde.org>
10523
10524 revert:
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
10534
10535 2015-08-12 Max Filippov <jcmvbkbc@gmail.com>
10536
10537 * config/xtensa/constraints.md (define_constraint "Y"): New
10538 constraint.
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.
10556
10557 2015-08-12 Matthew Wahab <matthew.wahab@arm.com>
10558
10559 * config/arm/arm-fpus.def: Replace booleans with feature flags.
10560 Update comment.
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
10567 field features.
10568
10569 2015-08-12 Tom de Vries <tom@codesourcery.com>
10570
10571 PR other/67092
10572 PR other/67098
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.
10576
10577 2015-08-12 Matthew Wahab <matthew.wahab@arm.com>
10578
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.
10585
10586 2015-08-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10587
10588 * config/aarch64/aarch64.c (initialize_aarch64_code_model): Break
10589 after -mcmodel=large -fPIC sorry.
10590
10591 2015-08-12 Richard Biener <rguenther@suse.de>
10592
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
10596 expressions.
10597 (sccvn_dom_walker::after_dom_children): Remove tempoary expressions
10598 no longer valid.
10599 (sccvn_dom_walker::record_cond): Add a single temporary conditional
10600 expression.
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.
10607
10608 2015-08-12 Yvan Roux <yvan.roux@linaro.org>
10609
10610 PR target/67127
10611 * config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking
10612 to ARM core registers.
10613
10614 2015-08-12 Nathan Sidwell <nathan@acm.org>
10615
10616 * tree-vrp.c (simplify_min_or_max_using_ranges): New.
10617 (simplify_stmt_using_ranges): Simplify MIN and MAX exprs.
10618
10619 2015-08-12 Simon Dardis <simon.dardis@imgtec.com>
10620
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.
10624
10625 2015-08-12 Richard Biener <rguenther@suse.de>
10626
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):
10637 Likewise.
10638 (gimple_assign_rhs2, gimple_assign_rhs2_ptr, gimple_assign_set_rhs2):
10639 Likewise.
10640 (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3):
10641 Likewise.
10642 (gimple_assign_rhs_code): Likewise.
10643 * gimple.c (gassign::code_): Define.
10644
10645 2015-08-12 Richard Biener <rguenther@suse.de>
10646
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
10652 of all stmts.
10653 (run_scc_vn): Remove loop value-numbering all SSA names.
10654 Drop not visited SSA names to varying.
10655
10656 2015-08-11 Trevor Saunders <tbsaunde@tbsaunde.org>
10657
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
10667
10668 2015-08-11 Uros Bizjak <ubizjak@gmail.com>
10669
10670 PR target/66954
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.
10675
10676 2015-08-11 Yuri Rumyantsev <ysrumyan@gmail.com>
10677
10678 * tree-vect-stmts.c (vectorizable_shift): Add missed test on
10679 vect_induction_def.
10680
10681 2015-08-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
10682
10683 PR c/66098
10684 PR c/66711
10685 * diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
10686 account when deciding what was the command-line status.
10687
10688 2015-08-11 Nathan Sidwell <nathan@acm.org>
10689
10690 * tree-vrp.c (simplify_abs_using_ranges): Simplify.
10691
10692 * tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if
10693 we're not the only contributor to target phi.
10694
10695 2015-08-11 Jiong Wang <jiong.wang@arm.com>
10696
10697 * config/aarch64/aarch64.h (REG_CLASS_NAMES): Add the missing ',' after
10698 FIXED_REG0.
10699
10700 2015-08-11 Tom de Vries <tom@codesourcery.com>
10701
10702 * tree-cfg.c (move_sese_region_to_fn): Add todo comment.
10703
10704 2015-08-10 H.J. Lu <hongjiu.lu@intel.com>
10705
10706 * config/i386/i386.c (processor_alias_table): Replace CPU_KNL
10707 with CPU_SLM.
10708 * config/i386/i386.md (cpu): Remove knl.
10709
10710 2015-08-10 Thomas Schwinge <thomas@codesourcery.com>
10711
10712 PR libgomp/65742
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.
10718
10719 * lto-streamer-in.c (lto_input_mode_table): Adjust to
10720 GET_MODE_INNER changes.
10721
10722 2015-08-10 Thomas Schwinge <thomas@codesourcery.com>
10723 Ilya Verbin <ilya.verbin@intel.com>
10724
10725 * lto-streamer-in.c (lto_input_mode_table): Correctly advance iterator.
10726
10727 2015-08-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
10728
10729 * doc/options.texi (EnabledBy): Document that the argument must be
10730 a Common option.
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.
10737
10738 2015-08-09 H.J. Lu <hongjiu.lu@intel.com>
10739
10740 * config/i386/driver-i386.c (host_detect_local_cpu): Treat
10741 model == 0x4f as Broadwell.
10742
10743 2015-08-08 Segher Boessenkool <segher@kernel.crashing.org>
10744
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.
10748
10749 2015-08-07 DJ Delorie <dj@redhat.com>
10750
10751 * config/rx/rx.c (rx_mode_dependent_address_p): Remove unneeded asserts.
10752
10753 2015-08-07 H.J. Lu <hongjiu.lu@intel.com>
10754
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.
10769
10770 2015-08-06 Uros Bizjak <ubizjak@gmail.com>
10771
10772 * Makefile.in (.INTERMEDIATE): Add gpl.pod.
10773
10774 2015-08-07 Kaz Kojima <kkojima@gcc.gnu.org>
10775
10776 PR target/67002
10777 * config/sh/sh.c (sh_recog_treg_set_expr): Return false when
10778 currently_expanding_to_rtl is set.
10779
10780 2015-08-06 Yaakov Selkowitz <yselkowi@redhat.com>
10781
10782 * configure.ac: Define LIBICONV_DEP with in-tree libiconv.
10783 * configure: Regenerate.
10784
10785 2015-08-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10786 Jiong Wang <jiong.wang@arm.com>
10787
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
10795 possible.
10796 * config/aarch64/constraints.md (Uc0): New constraint.
10797
10798 2015-08-06 Jiong Wang <jiong.wang@arm.com>
10799
10800 * config/aarch64/constraints.md (Usf): Add the test of
10801 aarch64_is_noplt_call_p.
10802
10803 2015-08-06 Jiong Wang <jiong.wang@arm.com>
10804
10805 * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New
10806 declaration.
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.
10810
10811 2015-08-06 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
10812
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.
10816
10817 2015-08-06 Uros Bizjak <ubizjak@gmail.com>
10818
10819 * config/i386/sse.md (*vec_concatv2df): Declare added
10820 alternatives as sselog type.
10821
10822 2015-08-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10823
10824 * config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for
10825 all GPRs.
10826
10827 2015-08-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10828
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.
10832
10833 2015-08-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10834
10835 * config/s390/s390.opt: Clarify description for -mzvector
10836 * doc/invoke.texi: Add documentation for -mhtm, -mvx, and
10837 -mzvector.
10838
10839 2015-08-06 Richard Biener <rguenther@suse.de>
10840
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.
10873
10874 2015-08-06 Richard Biener <rguenther@suse.de>
10875
10876 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify
10877 bool comparison canonicalization and restrict to integers.
10878
10879 2015-08-05 Andrew MacLeod <amacleod@redhat.com>
10880
10881 * coretypes.h (enum symbol_visibility): Relocate here.
10882 * flag-types.h (enum symbol_visibility): Remove.
10883 * tree-core.h (enum symbol_visibility): Remove.
10884
10885 2015-08-05 Lynn Boger <laboger@linux.vnet.ibm.com>
10886
10887 PR target/66870
10888 * gcc/config/rs6000/rs6000.c (rs6000_emit_prologue): Check
10889 for no_split_stack function attribute along with
10890 flag_split_stack.
10891 (rs6000_expand_split_stack_prologue): Likewise.
10892
10893 2015-08-05 Manuel López-Ibáñez <manu@gcc.gnu.org>
10894 Jeff Law <law@redhat.com>
10895
10896 PR c/16351
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.
10910
10911 2015-08-05 Richard Sandiford <richard.sandiford@arm.com>
10912
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.
10922
10923 2015-08-05 Richard Sandiford <richard.sandiford@arm.com>
10924
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.
10932
10933 2015-08-05 Richard Sandiford <richard.sandiford@arm.com>
10934
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
10938 num_insn_codes.
10939 (main): Likewise. Use get_num_insn_codes.
10940 * gencodes.c (main): Remove "last" and use get_num_insn_codes.
10941
10942 2015-08-05 Richard Sandiford <richard.sandiford@arm.com>
10943
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.
10947
10948 2015-08-05 Richard Sandiford <richard.sandiford@arm.com>
10949
10950 * target-insns.def (can_extend): Delete.
10951
10952 2015-08-05 Richard Biener <rguenther@suse.de>
10953
10954 PR tree-optimization/67121
10955 * tree-if-conv.c (combine_blocks): Clear range-info produced
10956 by stmts no longer executed conditionally.
10957
10958 2015-08-05 Nick Clifton <nickc@redhat.com>
10959
10960 * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
10961 to allow identical far pointers to remain.
10962
10963 2015-08-05 Richard Biener <rguenther@suse.de>
10964
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.
10968
10969 2015-08-05 Richard Biener <rguenther@suse.de>
10970
10971 PR tree-optimization/67055
10972 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
10973 NULL gimple_block.
10974
10975 * g++.dg/torture/pr67055.C: New testcase.
10976
10977 2015-08-05 Kirill Yukhin <kirill.yukhin@intel.com>
10978
10979 * config/i386/i386.md (define_attr "isa"): Addd avx512vl and
10980 noavx512vl.
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.
10985
10986 2015-08-05 Kirill Yukhin <kirill.yukhin@intel.com>
10987
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.
10996
10997 2015-08-05 Richard Biener <rguenther@suse.de>
10998
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
11006 or store group.
11007
11008 2015-08-05 Richard Biener <rguenther@suse.de>
11009
11010 PR middle-end/67107
11011 * match.pd: Guard const_binop result checking against NULL_TREE
11012 result.
11013
11014 2015-08-05 Kugan Vivekanandarajah <kuganv@linaro.org>
11015
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.
11019
11020 2015-08-04 Anatoly Sokolov <aesok@post.ru>
11021
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.
11029
11030 2015-08-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
11031
11032 PR target/66731
11033 * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
11034 (aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.
11035
11036 2015-08-04 Richard Biener <rguenther@suse.de>
11037
11038 * genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
11039 generated code.
11040 (dt_operand::gen_gimple_expr): Adjust.
11041
11042 2015-08-04 Richard Biener <rguenther@suse.de>
11043
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.
11047
11048 2015-08-04 Pawel Kupidura <pawel.kupidura@arm.com>
11049
11050 * config/aarch64/aarch64.c: Change inner loop statement cost
11051 to be consistent with other targets.
11052
11053 2015-08-04 Christophe Lyon <christophe.lyon@linaro.org>
11054
11055 * config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
11056 targets.
11057
11058 2015-08-04 Nathan Sidwell <nathan@codesourcery.com>
11059
11060 * config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
11061 (machine_function): Remove pseudos field.
11062
11063 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11064
11065 * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
11066 Exit early and use target_option_current_node if processing current
11067 pragma.
11068
11069 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11070
11071 * doc/extend.texi (AArch64 Function Attributes): New node.
11072 (AArch64 Pragmas): Likewise.
11073
11074 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11075
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
11087 prototype.
11088 (aarch64_relayout_simd_types): Likewise.
11089
11090 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11091
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
11096 static keyword.
11097 (aarch64_reset_previous_fndecl): New function.
11098 (aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
11099 the string.
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):
11108 Define prototype.
11109 (aarch64_register_pragmas): Likewise.
11110 (aarch64_reset_previous_fndecl): Likewise.
11111 (aarch64_process_target_attr): Likewise.
11112 (aarch64_override_options_internal): Likewise.
11113
11114 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11115
11116 * config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
11117 New function.
11118 (aarch64_can_inline_p): Likewise.
11119 (TARGET_CAN_INLINE_P): Define.
11120
11121 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11122
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.
11142
11143 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11144
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.
11150
11151 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11152
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
11175 and explicit_arch.
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):
11186 Declare prototype.
11187
11188 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11189
11190 * config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
11191 flag_omit_leaf_frame_pointer to 2.
11192
11193 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11194
11195 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
11196 define to 0 or 1.
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.
11204
11205 2015-08-04 Uros Bizjak <ubizjak@gmail.com>
11206
11207 * config/i386/i386.c (ix86_expand_int_movcc): Check result of
11208 ix86_expand_int_movcc as boolean.
11209
11210 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11211
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.
11234
11235 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11236
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.
11250
11251 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11252
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.
11259
11260 2015-08-04 Richard Biener <rguenther@suse.de>
11261
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.
11265
11266 2015-08-03 Abe Skolnik <a.skolnik@samsung.com>
11267
11268 * tree-if-conv.c: Fix various typos in comments.
11269 * tree-vect-stmts.c: Likewise.
11270
11271 2015-08-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
11272
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.
11277
11278 2015-08-03 Peter Bergner <bergner@vnet.ibm.com>
11279
11280 * config/rs6000/htm.md (tabort.): Restrict the source operand to
11281 using a base register.
11282
11283 2015-08-03 David Malcolm <dmalcolm@redhat.com>
11284
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
11304 items.
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 *.
11327
11328 2015-08-03 Alexander Basov <coohpt@gmail.com>
11329
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.
11339
11340 2015-08-03 John David Anglin <danglin@gcc.gnu.org>
11341
11342 PR target/67060
11343 * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
11344 Adjust splits to match new pattern.
11345
11346 2015-08-03 Michael Meissner <meissner@linux.vnet.ibm.com>
11347
11348 * config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
11349 (VEC_M): Likewise.
11350 (VEC_N): Likewise.
11351 (mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
11352 point in VSX registers.
11353
11354 * config/rs6000/constraints.md (wb constraint): Document unused
11355 w<x> constraint.
11356 (we constraint): Likewise.
11357 (wo constraint): Likewise.
11358 (wp constraint): New constraint for IEEE 128-bit floating point in
11359 VSX registers.
11360 (wq constraint): Likewise.
11361
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.
11365
11366 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
11367 constraints (wp, wq) for IEEE 128-bit floating point in VSX
11368 registers.
11369 (rs6000_init_hard_regno_mode_ok): Likewise.
11370
11371 * config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
11372 floating point in VSX registers.
11373 (VSX_L): Likewise.
11374 (VSX_M): Likewise.
11375 (VSX_M2): Likewise.
11376 (VSm): Likewise.
11377 (VSs): Likewise.
11378 (VSr): Likewise.
11379 (VSa): Likewise.
11380 (VSv): 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.
11387
11388 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
11389 wq constraints.
11390
11391 * config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
11392 floating point in VSX registers.
11393 (VM2): Likewise.
11394
11395 * doc/md.text (Machine Constraints): Document wp and wq
11396 constraints on PowerPC.
11397
11398 2015-08-03 Jeff Law <law@redhat.com>
11399
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.
11405
11406 2015-08-03 Segher Boessenkool <segher@kernel.crashing.org>
11407
11408 * Makefile.in (OBJS): Put gimple-match.o and generic-match.o first.
11409
11410 2015-08-03 Patrick Palka <ppalka@gcc.gnu.org>
11411
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
11418 the empty vector.
11419
11420 2015-08-03 Richard Biener <rguenther@suse.de>
11421
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.
11435
11436 2015-08-03 Richard Biener <rguenther@suse.de>
11437
11438 * genmatch.c (dt_simplify::gen): Create captures array
11439 with an initializer.
11440
11441 2015-08-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11442
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).
11448
11449 2015-08-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
11450
11451 PR target/66731
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.
11458
11459 2015-08-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11460
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
11465 noce_try_cmove.
11466
11467 2015-08-03 Richard Biener <rguenther@suse.de>
11468
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
11479 into functions.
11480
11481 2015-08-03 Richard Biener <rguenther@suse.de>
11482
11483 * gimple-fold.c (fold_gimple_assign): Remove folding of
11484 the comparison in COND_EXPRs.
11485
11486 2015-08-03 Richard Biener <rguenther@suse.de>
11487
11488 * gimple-match-head.c (gimple_simplify): For [VEC_]COND_EXPRs
11489 on the rhs of assignments first simplify the embedded
11490 GENERIC condition.
11491
11492 2015-08-03 Richard Biener <rguenther@suse.de>
11493
11494 PR tree-optimization/66917
11495 * tree-vectorizer.h (struct dataref_aux): Add base_element_aligned
11496 field.
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.
11506
11507 2015-08-02 Martin Sebor <msebor@redhat.com>
11508
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.
11515
11516 2015-08-01 Michael Collison <michael.collison@linaro.org
11517 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11518
11519 * gcc/config/arm/arm.md (*arm_smin_cmp): New pattern.
11520 (*arm_umin_cmp): Likewise.
11521
11522 2015-08-01 Caroline Tice <cmtice@google.com>
11523
11524 PR 66521
11525 * vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New
11526 global variables.
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.
11540
11541 2015-08-01 Tom de Vries <tom@codesourcery.com>
11542
11543 * tree.c (operation_can_overflow, operation_no_trapping_overflow): New
11544 function.
11545 * tree.h (operation_can_overflow, operation_no_trapping_overflow):
11546 Declare.
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
11550 operations.
11551
11552 2015-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
11553
11554 PR target/67049
11555 * config/sh/sh.md (GOTaddr2picreg): Fix typo.
11556
11557 2015-07-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11558
11559 * config/arm/arm.md (*if_neg_move): Convert to insn_and_split.
11560 Enable for TARGET_32BIT.
11561 (*if_move_neg): Likewise.
11562
11563 2015-07-31 Nick Clifton <nickc@redhat.com>
11564
11565 * config/m32r/m32r.c (m32r_attribute_identifier): New function.
11566 Returns true for __model__.
11567 (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
11568
11569 2015-07-31 Alan Modra <amodra@gmail.com>
11570
11571 PR target/66870
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.
11575
11576 2015-07-31 Richard Biener <rguenther@suse.de>
11577
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
11583 and add a comment.
11584
11585 2015-07-31 Petr Murzin <petr.murzin@intel.com>
11586
11587 * config/i386/i386.c
11588 (bdesc_special_args): Convert mask type from signed to unsigned for
11589 masked builtins.
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.
12121
12122 2015-07-31 Richard Biener <rguenther@suse.de>
12123
12124 * gimple-fold.c (fold_gimple_assign): Remove folding of
12125 GIMPLE_BINARY_RHS.
12126
12127 2015-07-31 Tom de Vries <tom@codesourcery.com>
12128
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
12143 loops.
12144 (pass_parallelize_loops::execute) [ENABLE_CHECKING]: Call
12145 verify_loop_structure.
12146
12147 2015-07-30 Anatoly Sokolov <aesok@post.ru>
12148
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.
12154
12155 2015-07-30 Anatoly Sokolov <aesok@post.ru>
12156
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.
12167
12168 2015-07-30 Richard Sandiford <richard.sandiford@arm.com>
12169
12170 * builtins.c (HAVE_atomic_clear, gen_atomic_clear): Delete.
12171 (expand_builtin_atomic_clear): Remove support for atomic_clear
12172 pattern.
12173
12174 2015-07-30 Richard Biener <rguenther@suse.de>
12175
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.
12180
12181 2015-07-30 David Sherwood <david.sherwood@arm.com>
12182
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.
12200
12201 2015-07-30 Richard Biener <rguenther@suse.de>
12202
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.
12207
12208 2015-07-30 Richard Biener <rguenther@suse.de>
12209
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
12220 side-effects.
12221 (main): Initialize verbose.
12222 * match.pd: Add integer_nonzerop and HONOR_NANS predicates.
12223
12224 2015-07-30 Richard Biener <rguenther@suse.de>
12225
12226 PR middle-end/67053
12227 * match.pd: Allow both operands to independently have conversion
12228 when simplifying compares of addresses.
12229
12230 2015-07-29 Segher Boessenkool <segher@kernel.crashing.org>
12231
12232 PR target/66217
12233 PR target/67045
12234 * config/rs6000/rs6000.md (and<mode>3): Put a CONST_INT_P check
12235 around those cases that need one.
12236
12237 2015-07-29 Aditya Kumar <hiraditya@msn.com>
12238
12239 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Default to 3.
12240
12241 2015-07-29 H.J. Lu <hongjiu.lu@intel.com>
12242
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.
12247
12248 2015-07-29 Richard Biener <rguenther@suse.de>
12249
12250 * gimple-fold.c (fold_gimple_cond): Remove.
12251 (fold_stmt_1): Do not call it.
12252
12253 2015-07-29 Alan Lawrence <alan.lawrence@arm.com>
12254
12255 * config/aarch64/aarch64-builtins.c (aarch64_fp16_type_node): New.
12256 (aarch64_init_builtins): Make aarch64_fp16_type_node, use for __fp16.
12257
12258 * config/aarch64/aarch64-modes.def: Add HFmode.
12259
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.
12262
12263 * config/aarch64/aarch64.c (aarch64_init_libfuncs,
12264 aarch64_promoted_type): New.
12265
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.
12270
12271 * config/aarch64/aarch64.md (mov<mode>): Include HFmode using GPF_F16.
12272 (movhf_aarch64, extendhfsf2, extendhfdf2, truncsfhf2, truncdfhf2): New.
12273
12274 * config/aarch64/iterators.md (GPF_F16): New.
12275
12276 2015-07-29 Richard Biener <rguenther@suse.de>
12277
12278 * match.pd: Merge address comparison patterns and make them
12279 handle some more cases.
12280
12281 2015-07-29 Richard Biener <rguenther@suse.de>
12282
12283 * genmatch.c (c_expr::gen_transform): Error on unknown captures.
12284 (parser::parse_capture): Add bool argument on whether to reject
12285 unknown captures.
12286 (parser::parse_expr): Adjust.
12287 (parser::parse_op): Likewise.
12288 (parser::parse_pattern): Likewise.
12289
12290 2015-07-29 Richard Biener <rguenther@suse.de>
12291
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.
12296
12297 2015-07-28 David Sherwood <david.sherwood@arm.com>
12298
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
12304 GET_MODE_INNER.
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
12309 m->name.
12310 (emit_mode_inner): Likewise.
12311 * lto-streamer-out.c (lto_write_mode_table): Update GET_MODE_INNER
12312 result check.
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.
12319
12320 2015-07-28 Richard Sandiford <richard.sandiford@arm.com>
12321
12322 * target-insns.def (reload_load_address): New targetm instruction
12323 pattern.
12324 * reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface.
12325
12326 2015-07-28 Richard Sandiford <richard.sandiford@arm.com>
12327
12328 * target-insns.def (atomic_test_and_set): New targetm instruction
12329 pattern.
12330 * optabs.c (maybe_emit_atomic_test_and_set): Use it instead of
12331 HAVE_*/gen_* interface.
12332
12333 2015-07-28 Richard Sandiford <richard.sandiford@arm.com>
12334
12335 * target-insns.def (can_extend, ptr_extend): New targetm instruction
12336 patterns.
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.
12342
12343 2015-07-28 Richard Sandiford <richard.sandiford@arm.com>
12344
12345 * target-insns.def (eh_return): New targetm instruction pattern.
12346 * except.c (expand_eh_return): Use it instead of HAVE_*/gen_*
12347 interface.
12348 * function.c (thread_prologue_and_epilogue_insns): Remove
12349 preprocessor condition.
12350
12351 2015-07-28 Richard Sandiford <richard.sandiford@arm.com>
12352
12353 * target-insns.def (indirect_jump): New targetm instruction pattern.
12354 * optabs.c (emit_indirect_jump): Use it instead of HAVE_*/gen_*
12355 interface.
12356
12357 2015-07-28 Richard Sandiford <richard.sandiford@arm.com>
12358
12359 * config/fr30/fr30.md (indirect_jump): Use pmode_register_operand
12360 instead of nonimmediate_operand. Remove C condiition.
12361
12362 2015-07-28 Richard Biener <rguenther@suse.de>
12363
12364 * match.pd: Add more simplification of address comparisons.
12365
12366 2015-07-28 Richard Biener <rguenther@suse.de>
12367
12368 * match.pd: Re-order two cases in comparison with max/min
12369 value simplification to make it apply for bools.
12370
12371 2015-07-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12372
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.
12377
12378 2015-07-28 Nick Clifton <nickc@redhat.com>
12379
12380 * config/rl78/rl78.c (rl78_addsi3_internal): New function.
12381 Optimizes the case where -mes0 is active and a constant symbolic
12382 address is used.
12383 * config/rl78/rl78-protos.h: Prototype the new function.
12384 * config/rl78/rl78.md (addsi3_internal_real): Call new function.
12385
12386 2015-07-28 Tom de Vries <tom@codesourcery.com>
12387
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.
12394
12395 2015-07-28 Richard Biener <rguenther@suse.de>
12396
12397 * fold-const.c (fold_comparison): Remove equality folding
12398 of decl addresses ...
12399 * match.pd: ... here and merge with existing pattern.
12400
12401 2015-07-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
12402
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.
12406
12407 2015-07-28 Dominik Vogt <vogt@linux.vnet.ibm.com>
12408
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.
12412
12413 2015-07-27 Tom de Vries <tom@codesourcery.com>
12414
12415 * tree-parloops.c (gather_scalar_reductions): Simplify function
12416 structure.
12417
12418 2015-07-27 Marek Polacek <polacek@redhat.com>
12419
12420 * ipa-devirt.c (types_same_for_odr): Fix typo.
12421
12422 2015-07-27 Jason Merrill <jason@redhat.com>
12423
12424 PR debug/66468
12425 * dwarf2out.c (gen_inlined_subroutine_die): Check
12426 cgraph_function_possibly_inlined_p.
12427
12428 2015-07-27 Wilco Dijkstra <wdijkstr@arm.com>
12429
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.
12433
12434 2015-07-27 Alan Lawrence <alan.lawrence@arm.com>
12435
12436 PR/63870
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.
12443
12444 2015-07-27 Alan Lawrence <alan.lawrence@arm.com>
12445
12446 PR/63870
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.
12461
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.
12476
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.
12487
12488 2015-07-27 Wilco Dijkstra <wdijkstr@arm.com>
12489
12490 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
12491 Place integer variant first.
12492
12493 2015-07-27 Matthew Wahab <matthew.wahab@arm.com>
12494
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".
12510
12511 2015-07-27 Marek Polacek <polacek@redhat.com>
12512
12513 PR c++/66555
12514 PR c/54979
12515 * doc/invoke.texi: Document -Wtautological-compare.
12516
12517 2015-07-27 Richard Biener <rguenther@suse.de>
12518
12519 * genmatch.c (decision_tree::gen_gimple): Split out large
12520 subtrees into separate functions.
12521 (decision_tree::gen_generic): Likewise.
12522
12523 2015-07-26 Uros Bizjak <ubizjak@gmail.com>
12524
12525 * config/alpha/alpha.c: Use SUBREG_P predicate.
12526 * config/alpha/predicates.md: Ditto.
12527
12528 2015-07-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
12529
12530 * config.host (s390*-*-*): Include driver-native.c only when
12531 building with s390* as host *and* target.
12532
12533 2015-07-25 Oleg Endo <olegendo@gcc.gnu.org>
12534
12535 PR target/66930
12536 * config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
12537 T bit register modified_between_p check.
12538
12539 2015-07-25 Uros Bizjak <ubizjak@gmail.com>
12540
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.
12545
12546 2015-07-25 Uros Bizjak <ubizjak@gmail.com>
12547
12548 PR target/67004
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.
12551
12552 2015-07-25 Sebastian Pop <s.pop@samsung.com>
12553
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.
12560
12561 2015-07-25 Sebastian Pop <s.pop@samsung.com>
12562
12563 * graphite-scop-detection.c: Include gimple-pretty-print.h.
12564 (stmt_simple_for_scop_p): Print when a stmt is not handled in
12565 Graphite.
12566 (scopdet_basic_block_info): Print when a loop or bb cannot be
12567 represented in Graphite.
12568
12569 2015-07-25 Uros Bizjak <ubizjak@gmail.com>
12570
12571 PR target/66648
12572 * config/i386/i386.c (ix86_expand_set_or_movmem): Emit main loop
12573 execution guard when min_size is less than size_needed.
12574
12575 2015-07-25 Sebastian Pop <s.pop@samsung.com>
12576
12577 * doc/install.texi: Document supported versions of ISL.
12578
12579 2015-07-25 Jeff Law <law@redhat.com>
12580
12581 Revert:
12582 PR lto/66752
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
12585 condition.
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.
12591
12592 2015-07-25 David Edelsohn <dje.gcc@gmail.com>
12593
12594 Revert:
12595 2015-07-23 Alexandre Oliva <aoliva@redhat.com>
12596
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
12636 from...
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
12644 partitions.
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
12664 args.
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
12684 non-MEMs.
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.
12689
12690 2015-07-25 Uros Bizjak <ubizjak@gmail.com>
12691
12692 * config/i386/i386.c (ix86_va_start): Remove
12693 unneeded !TARGET_64BIT check.
12694 (ix86_gimplify_va_arg): Ditto.
12695
12696 2015-07-24 Tom de Vries <tom@codesourcery.com>
12697
12698 * graphite-sese-to-poly.c (build_poly_scop): Always call
12699 rewrite_commutative_reductions_out_of_ssa.
12700
12701 2015-07-24 Tom de Vries <tom@codesourcery.com>
12702
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.
12706
12707 2015-07-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
12708
12709 PR c++/64079
12710 * toplev.c (check_global_declaration): Use DECL_SOURCE_LOCATION
12711 and "%qD" in warning_at instead of "%q+D" in warning.
12712
12713 2015-07-24 Uros Bizjak <ubizjak@gmail.com>
12714
12715 * config/i386/i386.c (ix86_call_abi_override): Call ix86_function_abi.
12716 (ix86_function_abi): Cleanup.
12717
12718 2015-07-24 Michael Darling <darlingm@gmail.com>
12719
12720 PR other/66259
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
12727
12728 2015-07-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12729
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.
12734
12735 2015-07-24 Uros Bizjak <ubizjak@gmail.com>
12736
12737 PR target/64003
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.
12746
12747 2015-07-24 Nathan Sidwell <nathan@codesourcery.com>
12748
12749 * gimplify.c (omp_default_clause): New function. Reorganize flow
12750 for clarity. Broken out of ...
12751 (omp_notice_variable): ... here.
12752
12753 2015-07-24 Gary Funck <gary@intrepid.com>
12754
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.
12758
12759 2015-07-24 Tom de Vries <tom@codesourcery.com>
12760
12761 * tree-parloops.c (gen_parallel_loop): Add debug print for alternative
12762 exit-first loop transform.
12763
12764 2015-07-24 Cesar Philippidis <cesar@codesourcery.com>
12765
12766 PR 66714
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.
12771
12772 2015-07-24 Szabolcs Nagy <szabolcs.nagy@arm.com>
12773
12774 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
12775 -shared, -symbolic, -rdynamic.
12776
12777 2015-07-24 Szabolcs Nagy <szabolcs.nagy@arm.com>
12778
12779 PR target/65711
12780 * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
12781 -dynamic-linker within %{!static %{!shared, and -rdynamic within
12782 %{!static.
12783
12784 2015-07-24 Ilya Enkovich <enkovich.gnu@gmail.com>
12785
12786 PR ipa/66566
12787 * ipa-inline-analysis.c (estimate_calls_size_and_time): Check
12788 edge summary is available.
12789
12790 2015-07-24 Richard Biener <rguenther@suse.de>
12791
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.
12797
12798 2015-07-24 Richard Biener <rguenther@suse.de>
12799
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.
12803
12804 2015-07-24 Richard Biener <rguenther@suse.de>
12805
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.
12813
12814 2015-07-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12815
12816 * config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
12817 reg note to the GPR -> FPR save instructions.
12818
12819 2015-07-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12820
12821 * config/s390/s390.c (s390_rtx_costs): Make risbg patterns
12822 cheaper.
12823 (s390_expand_insv): Don't generate risbg pattern for constant zero
12824 sources.
12825 * config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
12826 ("*insv<mode>_z10_appendbitsleft"): New pattern definitions. New
12827 splitters.
12828
12829 2015-07-24 Dominik Vogt <vogt@linux.vnet.ibm.com>
12830
12831 * config/s390/s390.c (s390_reorg): Clean up handling of processors
12832 with
12833 -mtune=
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.
12839
12840 2015-07-24 Dominik Vogt <vogt@linux.vnet.ibm.com>
12841
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.
12847
12848 2015-07-24 Dominik Vogt <vogt@linux.vnet.ibm.com>
12849
12850 * config/s390/s390.c (s390_issue_rate): Handle
12851 PROCESSOR_2094_Z9_EC.
12852 (s390_option_override): Likewise.
12853 (s390_adjust_priority): Likewise.
12854
12855 2015-07-24 Dominik Vogt <vogt@linux.vnet.ibm.com>
12856
12857 * config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS
12858 when cross compiling.
12859
12860 2015-07-24 Richard Biener <rguenther@suse.de>
12861
12862 * fold-const.c (maybe_canonicalize_comparison_1): Move
12863 A code CST canonicalization ...
12864 * match.pd: ... to a pattern here.
12865
12866 2015-07-24 Jiong Wang <jiong.wang@arm.com>
12867
12868 Revert:
12869 2015-07-22 Jiong Wang <jiong.wang@arm.com>
12870 PR target/63521
12871 * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
12872 (HONOR_REG_ALLOC_ORDER): Define.
12873
12874 2015-07-24 Richard Biener <rguenther@suse.de>
12875
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.
12880
12881 2015-07-24 Richard Biener <rguenther@suse.de>
12882
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.
12890
12891 2015-07-24 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
12892
12893 PR middle-end/25530
12894 * match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.
12895
12896 2015-07-24 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
12897
12898 PR middle-end/25529
12899 * match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.
12900
12901 2015-07-23 Kugan Vivekanandarajah <kuganv@linaro.org>
12902
12903 * config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
12904 instruction.
12905
12906 2015-07-23 Kugan Vivekanandarajah <kuganv@linaro.org>
12907
12908 * cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
12909 clean up.
12910
12911 2015-07-23 Uros Bizjak <ubizjak@gmail.com>
12912
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
12915 targets here.
12916 (ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
12917 ms_va_list_type_node initialization.
12918
12919 2015-07-23 Jeff Law <law@redhat.com>
12920
12921 PR lto/66752
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
12924 condition.
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.
12930
12931 2015-07-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
12932
12933 * tree-pass.h (get_current_pass_name): Removed.
12934
12935 2015-07-23 Alexandre Oliva <aoliva@redhat.com>
12936
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
12976 from...
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
12984 partitions.
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
13004 args.
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
13024 non-MEMs.
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.
13029
13030 2015-07-23 Segher Boessenkool <segher@kernel.crashing.org>
13031
13032 PR target/66217
13033 * config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
13034 prototype.
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.
13040
13041 2015-07-23 Richard Biener <rguenther@suse.de>
13042
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
13046 SSA names.
13047 * fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
13048 * match.pd: ...to a pattern here. Add &A ==/!= 0 simplification
13049 pattern.
13050
13051 2015-07-23 Richard Biener <rguenther@suse.de>
13052
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.
13059
13060 2015-07-23 Tom de Vries <tom@codesourcery.com>
13061
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
13071 decl.
13072
13073 2015-07-23 Yuri Rumyantsev <ysrumyan@gmail.com>
13074
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.
13078
13079 2015-07-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13080
13081 * combine.c (try_combine): Use std::swap instead of manually
13082 swapping.
13083
13084 2015-07-23 Prachi Godbole <prachi.godbole@imgtec.com>
13085
13086 * config/mips/i6400.md: New file.
13087 * config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
13088 (mips64r6): Likewise.
13089 (i6400): Define.
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.
13098
13099 2015-07-23 Richard Biener <rguenther@suse.de>
13100
13101 PR middle-end/66916
13102 * match.pd: Guard widen and sign-change comparison simplification
13103 with single_use.
13104
13105 2015-07-23 Richard Biener <rguenther@suse.de>
13106
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
13111 chooses.
13112
13113 2015-07-23 Richard Biener <rguenther@suse.de>
13114
13115 * gimple.h (gimple_cond_make_false): Use 0 != 0.
13116 (gimple_cond_make_true): Use 1 != 0.
13117
13118 2015-07-22 DJ Delorie <dj@redhat.com>
13119
13120 * config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
13121 slashes.
13122
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.
13133
13134 2015-07-22 Uros Bizjak <ubizjak@gmail.com>
13135
13136 PR target/66954
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.
13141
13142 2015-07-22 Ilya Enkovich <enkovich.gnu@gmail.com>
13143
13144 PR driver/66737
13145 * config/i386/linux-common.h (MPX_SPEC): Use linker option
13146 for 64bit target only.
13147
13148 2015-07-22 Bernd Schmidt <bernds@codesourcery.com>
13149
13150 * config/nvptx/nvptx.c: Expand some comments.
13151
13152 2015-07-22 James Greenhalgh <james.greenhalgh@arm.com>
13153
13154 * config/arm/cortex-a53 (cortex_53_advsimd): Rename to...
13155 (cortex_a53_advsimd): ...This.
13156
13157 2015-07-22 Richard Biener <rguenther@suse.de>
13158
13159 * genmatch.c (expr::gen_transform): Clarify error message
13160 and display location.
13161
13162 2015-07-22 Richard Biener <rguenther@suse.de>
13163
13164 * genmatch.c (struct operand): Add location member.
13165 (predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
13166 constructors.
13167 (struct simplify): Remove match_location and result_location
13168 members.
13169 (elsehwere): Adjust.
13170
13171 2015-07-22 Prachi Godbole <prachi.godbole@imgtec.com>
13172
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
13181 !-msoft-float.
13182 * config/mips/mips.md: Include m5100.md.
13183 (processor): Add m5100.
13184 * doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
13185
13186 2015-07-22 Robert Suchanek <robert.suchanek@imgtec.com>
13187
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
13191 -mips32r2.
13192 (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
13193 * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
13194
13195 2015-07-22 Jiong Wang <jiong.wang@arm.com>
13196
13197 PR target/63521
13198 * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
13199 (HONOR_REG_ALLOC_ORDER): Define.
13200
13201 2015-07-22 Richard Biener <rguenther@suse.de>
13202
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.
13209
13210 2015-07-22 Charles Baylis <charles.baylis@linaro.org>
13211
13212 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
13213 typo in attribute.
13214
13215 2015-07-22 Richard Biener <rguenther@suse.de>
13216
13217 * genmatch.c (parser::parse_result): Properly handle
13218 match with result operands and conditions.
13219
13220 2015-07-22 Charles Baylis <charles.baylis@linaro.org>
13221
13222 PR target/63870
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
13227 last argument.
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.
13262
13263 2015-07-22 Jonathan Wakely <jwakely@redhat.com>
13264
13265 * doc/invoke.texi (Language Independent Options): Rename node to
13266 Diagnostic Message Formatting Options.
13267
13268 2015-07-21 Vladimir Makarov <vmakarov@redhat.com>
13269
13270 PR ipa/66424.
13271 * lra-remat.c (operand_to_remat): Prevent using insns with input
13272 subregs processed separately by IRA.
13273
13274 2015-07-21 Andrew MacLeod <amacleod@redhat.com>
13275
13276 * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
13277 straight loops.
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.
13282
13283 2015-07-21 Mike Frysinger <vapier@gentoo.org>
13284 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
13285
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
13293 <isl/union_set.h>.
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
13299 <isl/union_set.h>.
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.
13305
13306 2015-07-21 Georg-Johann Lay <avr@gjlay.de>
13307
13308 PR target/66956
13309 * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
13310 (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
13311
13312 2015-07-21 Richard Biener <rguenther@suse.de>
13313
13314 PR tree-optimization/66948
13315 * genmatch.c (capture_info::walk_match): Also recurse to
13316 captures. Properly compute expr state from captures of
13317 captures.
13318 * match.pd: Add single-use guards to
13319 (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
13320
13321 2015-07-21 Nathan Sidwell <nathan@codesourcery.com>
13322
13323 * config/nvptx/mkoffload.c (process): Add static destructor call.
13324
13325 2015-07-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13326
13327 PR middle-end/66915
13328 * match.pd (A - B -> A + (-B)): Don't allow folding
13329 when type if a fixed-point type.
13330
13331 2015-07-20 DJ Delorie <dj@redhat.com>
13332
13333 * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
13334 (iorqi3_real): Likewise for set1.
13335
13336 2015-07-20 Uros Bizjak <ubizjak@gmail.com>
13337
13338 * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
13339 for !TARGET_64BIT.
13340
13341 2015-07-20 Aditya Kumar <hiraditya@msn.com>
13342
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.
13346
13347 2015-07-20 Segher Boessenkool <segher@kernel.crashing.org>
13348
13349 * config/rs6000/rs6000.md (*lt0_disi): New.
13350
13351 2015-07-20 Segher Boessenkool <segher@kernel.crashing.org>
13352
13353 PR target/66217
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
13381 handling.
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):
13408 Delete.
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.
13420
13421 2015-07-20 Marek Polacek <polacek@redhat.com>
13422
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.
13426
13427 2015-07-20 Marek Polacek <polacek@redhat.com>
13428
13429 PR c++/55095
13430 * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
13431
13432 2015-07-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13433
13434 * simplify-rtx.c (simplify_unary_operation_1, NEG case):
13435 (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
13436
13437 2015-07-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13438
13439 * combine.c (combine_simplify_rtx): Move simplification step
13440 before various transformations/substitutions.
13441
13442 2015-07-20 Mikhail Maltsev <maltsevm@gmail.com>
13443
13444 * wide-int.h (struct binary_traits): Fix partial specialization syntax.
13445 (struct int_traits): Likewise.
13446
13447 2015-07-18 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13448
13449 * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
13450 function to vmsdbgout_function_decl.
13451
13452 2015-07-18 Uros Bizjak <ubizjak@gmail.com>
13453
13454 PR target/66922
13455 * config/i386/i386.c (ix86_expand_pextr): Reject extractions
13456 from misaligned positions.
13457 (ix86_expand_pinsr): Reject insertions to misaligned positions.
13458
13459 2015-07-18 Sebastian Pop <s.pop@samsung.com>
13460
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.
13476 * omega.c: Remove.
13477 * omega.h: Remove.
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.
13493 (dump_ddrs): 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
13501 dependences.
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.
13513
13514 2015-07-18 Uros Bizjak <ubizjak@gmail.com>
13515
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.
13521
13522 2015-07-17 H.J. Lu <hongjiu.lu@intel.com>
13523
13524 PR target/66906
13525 * config/i386/i386.c (ix86_expand_prologue): Replicate static
13526 chain on the stack.
13527
13528 2015-07-17 Nathan Sidwell <nathan@codesourcery.com>
13529
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.
13534
13535 2015-07-17 Aditya Kumar <aditya.k7@samsung.com>
13536 Sebastian Pop <s.pop@samsung.com>
13537
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
13554 added.
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.
13559
13560 2015-07-17 Marek Polacek <polacek@redhat.com>
13561
13562 * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
13563 * match.pd: ... here.
13564
13565 2015-07-17 Nathan Sidwell <nathan@codesourcery.com>
13566
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.
13571
13572 2015-07-17 Yuri Rumyantsev <ysrumyan@gmail.com>
13573
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
13584 inner loop.
13585 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
13586 do peeling for outer loops.
13587
13588 2015-07-17 Yvan Roux <yvan.roux@linaro.org>
13589 Matthias Klose <doko@ubuntu.com>
13590
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.
13596
13597 2015-07-17 Uros Bizjak <ubizjak@gmail.com>
13598
13599 PR target/66824
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.
13609
13610 2015-07-17 Uros Bizjak <ubizjak@gmail.com>
13611
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.
13615
13616 2015-07-16 Nathan Sidwell <nathan@codesourcery.com>
13617
13618 * config/nvptx/mkoffload.c (process): Constify mapping variables.
13619 Define target data struct and initialize it.
13620
13621 2015-07-16 Vladimir Makarov <vmakarov@redhat.com>
13622
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
13633 non-local goto.
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.
13644
13645 2015-07-16 Martin Liska <mliska@suse.cz>
13646
13647 PR ipa/66896.
13648 * ipa-prop.c (update_jump_functions_after_inlining): Create properly
13649 dst_ctx if it does not exist.
13650
13651 2015-07-16 Martin Liska <mliska@suse.cz>
13652
13653 * hash-set.h (remove): New function.
13654 (iterator): New iteration class for hash_set.
13655
13656 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
13657
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.
13663
13664 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
13665
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
13695 and code number.
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
13705 rather than fatal.
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
13727 functions.
13728 (main): Update after interface changes.
13729 * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
13730 rtx and lineno.
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.
13746
13747 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
13748
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.
13764
13765 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
13766
13767 * genoutput.c (data): Use a file_location to record the source
13768 position.
13769 (nothing): Delete.
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
13775 functions.
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.
13785
13786 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
13787
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.
13805
13806 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
13807
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.
13844
13845 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
13846
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.
13851
13852 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
13853
13854 * genattrtab.c (check_attr_value): Remove handling of null attrs.
13855 (make_canonical): Likewise.
13856
13857 2015-07-16 Eric Botcazou <ebotcazou@adacore.com>
13858
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.
13863
13864 2015-07-16 Tom de Vries <tom@codesourcery.com>
13865
13866 * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
13867 not have a corresponding loop header phi.
13868
13869 2015-07-16 Tom de Vries <tom@codesourcery.com>
13870
13871 * tree-parloops.c (create_loads_for_reductions): Handle case that
13872 reduction is unused.
13873
13874 2015-07-16 Richard Biener <rguenther@suse.de>
13875
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.
13879
13880 2015-07-16 Martin Liska <mliska@suse.cz>
13881
13882 * alloc-pool.h
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
13909 object_allocator.
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
13958 object_allocator.
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.
13984
13985 2015-07-16 Martin Jambor <mjambor@suse.cz>
13986
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.
13990
13991 2015-07-16 Ilya Enkovich <enkovich.gnu@gmail.com>
13992
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.
13999
14000 2015-07-16 Richard Biener <rguenther@suse.de>
14001
14002 * fold-const.c (fold_widened_comparison): Remove.
14003 (fold_sign_changed_comparison): Likewise.
14004 (fold_comparison): Move widened and sign-changed comparison
14005 simplification ...
14006 * match.pd: ... to patterns here.
14007 * generic-match-head.c: Include target.h.
14008 * gimple-match-head.c: Likewise.
14009
14010 2015-07-16 Richard Biener <rguenther@suse.de>
14011
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
14015 about to record.
14016
14017 2015-07-16 Bin Cheng <bin.cheng@arm.com>
14018
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.
14025 Call new function.
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.
14031 Call new function.
14032 (find_iv_candidates): Call new functions.
14033
14034 2015-07-16 Sandra Loosemore <sandra@codesourcery.com>
14035
14036 * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
14037 uninitialized-variable warning.
14038
14039 2015-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
14040
14041 PR target/65249
14042 * config/sh/sh.md (movdi): Split simple reg move to two movsi
14043 when the destination is R0.
14044
14045 2015-07-16 Uros Bizjak <ubizjak@gmail.com>
14046
14047 PR target/66866
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.
14055
14056 2015-07-15 Aditya Kumar <aditya.k7@samsung.com>
14057 Sebastian Pop <s.pop@samsung.com>
14058
14059 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
14060 iterator to use_stmt.
14061
14062 2015-07-15 Aditya Kumar <aditya.k7@samsung.com>
14063 Sebastian Pop <s.pop@samsung.com>
14064
14065 * graphite-scop-detection.c (build_scops_1): Discard scops for
14066 which entry==exit.
14067
14068 2015-07-15 Aditya Kumar <aditya.k7@samsung.com>
14069 Sebastian Pop <s.pop@samsung.com>
14070
14071 * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
14072 case of a return statement in scop.
14073
14074 2015-07-15 Aditya Kumar <aditya.k7@samsung.com>
14075 Sebastian Pop <s.pop@samsung.com>
14076
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.
14082
14083 2015-07-15 Andrew MacLeod <amacleod@redhat.com>
14084
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.
14104
14105 2015-07-15 Andrew MacLeod <amacleod@redhat.com>
14106
14107 * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
14108 include input.h.
14109 * opts.c: Remove multiline #include comment.
14110
14111 2015-07-15 Nathan Sidwell <nathan@codesourcery.com>
14112
14113 * config/nvptx/mkoffload.c (process): Add C++ protection to
14114 emitted code.
14115
14116 2015-07-14 Michael Meissner <meissner@linux.vnet.ibm.com>
14117
14118 PR target/66854
14119 * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
14120 null before IEEE 128-bit floating point support patch.
14121
14122 2015-07-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14123
14124 * simplify-rtx.c (simplify_ternary_operation): Add simplification
14125 for (!c) != {0,...,0} ? a : b for vector modes.
14126
14127 2015-07-15 Paolo Bonzini <bonzini@gnu.org>
14128 Martin Jambor <mjambor@suse.cz>
14129
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.
14151
14152 2015-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14153
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.
14162
14163 2015-07-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14164
14165 * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
14166
14167 2015-07-15 Uros Bizjak <ubizjak@gmail.com>
14168
14169 PR target/58066
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.
14175
14176 2015-07-15 Richard Biener <rguenther@suse.de>
14177
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.
14183
14184 2015-07-15 Robert Suchanek <robert.suchanek@imgtec.com>
14185
14186 * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
14187
14188 2015-07-15 Matthew Fortune <matthew.fortune@imgtec.com>
14189 Robert Suchanek <robert.suchanek@imgtec.com>
14190
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
14203 attribute.
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
14219 attributes.
14220
14221 2015-07-15 Robert Suchanek <robert.suchanek@imgtec.com>
14222
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.
14227
14228 2015-07-15 Richard Biener <rguenther@suse.de>
14229
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.
14235
14236 2015-07-15 Uros Bizjak <ubizjak@gmail.com>
14237
14238 PR rtl-optimization/58066
14239 * calls.c (expand_call): Precompute register parameters before stack
14240 alignment is performed.
14241
14242 2015-07-15 Uros Bizjak <ubizjak@gmail.com>
14243
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.
14248
14249 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
14250 Cesar Philippidis <cesar@codesourcery.com>
14251 Chung-Lin Tang <cltang@codesourcery.com>
14252
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
14258 UNSPECV codes.
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
14262 new builtins.
14263 (N2_BUILTINS): Add arch field setting, add new builtins.
14264 (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
14265 for arch field.
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
14273 cases.
14274 * doc/extend.texi (Altera Nios II Built-in Functions): Document
14275 new builtins.
14276 * doc/md.texi (Machine Constraints): Document U and v constraints.
14277
14278 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
14279 Cesar Philippidis <cesar@codesourcery.com>
14280 Chung-Lin Tang <cltang@codesourcery.com>
14281
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.
14296
14297 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
14298 Cesar Philippidis <cesar@codesourcery.com>
14299 Chung-Lin Tang <cltang@codesourcery.com>
14300
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.
14313 (gen_ldst): 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.
14322
14323 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
14324 Cesar Philippidis <cesar@codesourcery.com>
14325 Chung-Lin Tang <cltang@codesourcery.com>
14326
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
14338 operation.
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.
14346 (cdxreg): 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
14371 type attributes.
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
14380 template.
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.
14397
14398 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
14399 Cesar Philippidis <cesar@codesourcery.com>
14400 Chung-Lin Tang <cltang@codesourcery.com>
14401
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.
14413
14414 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
14415 Cesar Philippidis <cesar@codesourcery.com>
14416 Chung-Lin Tang <cltang@codesourcery.com>
14417
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.
14430
14431 2015-07-14 Vladimir Makarov <vmakarov@redhat.com>
14432
14433 PR rtl-optimization/66626
14434 * lra-constraints.c (lra_constraints): Prevent equivalence
14435 substitution for static chain pseudo in functions with nonlocal
14436 goto.
14437
14438 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
14439
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.
14447
14448 2015-07-14 H.J. Lu <hongjiu.lu@intel.com>
14449
14450 * Makefile.in (top_srcdir): New.
14451 * configure.ac: Use AM_ZLIB.
14452 * configure: Regeneated.
14453
14454 2015-07-14 Matthias Klose <doko@ubuntu.com>
14455
14456 PR target/66840
14457 * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
14458
14459 2015-07-14 Richard Biener <rguenther@suse.de>
14460
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.
14464
14465 2015-07-14 Richard Biener <rguenther@suse.de>
14466
14467 * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
14468 (decision_tree::gen_gimple): Likewise.
14469
14470 2015-07-14 Tom de Vries <tom@codesourcery.com>
14471
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
14476 "gt".
14477 (greater_than_spec_func): New function.
14478
14479 2015-07-14 Richard Biener <rguenther@suse.de>
14480
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.
14486
14487 2015-07-14 Richard Biener <rguenther@suse.de>
14488
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
14494 ifexpr_vec member.
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
14503 recursively.
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
14508 else case.
14509 (parser::parse_if): Simplify.
14510 (parser::parse_pattern): Pass down simplify kind.
14511 * match.pd: Convert if structure to new syntax.
14512
14513 2015-07-13 Marek Polacek <polacek@redhat.com>
14514
14515 * rtl.c (rtx_equal_p_cb): Fix typo.
14516
14517 2015-07-13 Andrew MacLeod <amacleod@redhat.com>
14518
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.
14533
14534 2015-07-13 Tom de Vries <tom@codesourcery.com>
14535
14536 * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
14537
14538 2015-07-13 Renlin Li <renlin.li@arm.com>
14539
14540 PR rtl/66556
14541 * simplify-rtx.c (simplify_const_relational_operation): Add
14542 side_effects_p checks.
14543
14544 2015-07-12 Aldy Hernandez <aldyh@redhat.com>
14545
14546 * bitmap.h: Fix double word typos.
14547 * builtins.c: Same.
14548 * calls.c: Same.
14549 * cfgloopmanip.c: Same.
14550 * cgraph.c: Same.
14551 * cgraph.h: Same.
14552 * cgraphclones.c: Same.
14553 * combine.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.
14585 * cse.c: Same.
14586 * dbxout.c: Same.
14587 * doc/invoke.texi: Same.
14588 * dse.c: Same.
14589 * dwarf2out.c: Same.
14590 * final.c: Same.
14591 * gcc.c: Same.
14592 * genmatch.c: Same.
14593 * gimplify.c: Same.
14594 * hash-table.h: Same.
14595 * internal-fn.c: Same.
14596 * ipa-cp.c: Same.
14597 * ipa-devirt.c: Same.
14598 * ipa-icf.c: Same.
14599 * ipa-icf.h: Same.
14600 * ipa-profile.c: Same.
14601 * ipa-prop.c: Same.
14602 * ipa-prop.h: Same.
14603 * ira.c: Same.
14604 * omp-low.c: Same.
14605 * reg-stack.c: Same.
14606 * regcprop.c: Same.
14607 * reorg.c: Same.
14608 * rtl.h: Same.
14609 * sbitmap.h: Same.
14610 * tree-eh.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.
14623 * tree.c: Same.
14624 * valtrack.c: Same.
14625 * vec.h: Same.
14626
14627 2015-07-12 Kugan Vivekanandarajah <kuganv@linaro.org>
14628
14629 PR middle-end/66726
14630 * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
14631 tree_ssa_phiopt_worker): Call it.
14632
14633 2015-07-12 Kugan Vivekanandarajah <kuganv@linaro.org>
14634
14635 * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
14636 * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
14637 REG_EQUAL note.
14638
14639 2015-07-11 Marek Polacek <polacek@redhat.com>
14640
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.
14649
14650 2015-07-10 Anatoly Sokolov <aesok@post.ru>
14651
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.
14658
14659 2015-07-10 H.J. Lu <hongjiu.lu@intel.com>
14660
14661 PR target/66819
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
14667 argument list.
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.
14671
14672 2015-07-10 Uros Bizjak <ubizjak@gmail.com>
14673
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.
14680
14681 2015-07-10 Andrew MacLeod <amacleod@redhat.com>
14682
14683 * config/tilepro/gen-mul-tables.cc (main): Change include list for
14684 generated files.
14685 * config/tilepro/mul-tables.c: Regenerate.
14686 * config/tilegx/mul-tables.c: Regenerate.
14687
14688 2015-07-10 Richard Biener <rguenther@suse.de>
14689
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.
14695
14696 2015-07-10 Jiong Wang <jiong.wang@arm.com>
14697
14698 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
14699 Mark mem as READONLY and NOTRAP for PIC symbol.
14700
14701 2015-07-10 Andrew MacLeod <amacleod@redhat.com>
14702
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
14709 gimple-predict.h.
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.
14727 * cfg.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.
14739 * cse.c: Likewise.
14740 * dce.c: Likewise.
14741 * dojump.c: Likewise.
14742 * dse.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.
14793 * lra.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.
14933
14934 2015-07-10 Richard Biener <rguenther@suse.de>
14935
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.
14939
14940 2015-07-10 Uros Bizjak <ubizjak@gmail.com>
14941
14942 PR target/66813
14943 * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
14944 sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
14945
14946 2015-07-10 Jakub Jelinek <jakub@redhat.com>
14947
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
14952 is non-zero.
14953
14954 2015-07-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14955
14956 * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
14957 above function.
14958
14959 2015-07-10 Tom de Vries <tom@codesourcery.com>
14960
14961 * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
14962 insert nit + 1 bound.
14963
14964 2015-07-10 Richard Biener <rguenther@suse.de>
14965
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.
14970
14971 2015-07-10 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
14972
14973 * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
14974 in dump message.
14975
14976 2015-07-10 Richard Biener <rguenther@suse.de>
14977
14978 PR tree-optimization/66823
14979 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
14980 inverted predicate.
14981
14982 2015-07-09 Steve Ellcey <sellcey@imgtec.com>
14983
14984 * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
14985 to handle mips[32|64]r3 and mips[32|64]r5.
14986
14987 2015-07-09 Jakub Jelinek <jakub@redhat.com>
14988
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,
14997 add it to clauses.
14998
14999 PR tree-optimization/66718
15000 * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
15001 field.
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.
15005
15006 2015-07-09 H.J. Lu <hongjiu.lu@intel.com>
15007
15008 PR target/66821
15009 * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
15010
15011 2015-07-09 Michael Meissner <meissner@linux.vnet.ibm.com>
15012
15013 * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
15014 Use machine mode, not enum machine_mode in the prototype.
15015
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.
15025
15026 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
15027 tests against TFmode/TDmode, since those modes do not use VSX
15028 addresses.
15029 (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
15030 support.
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
15040 KFmode.
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
15056 machine mode.
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
15063 sequence support.
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.
15068
15069 2015-07-09 Vladimir Makarov <vmakarov@redhat.com>
15070
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.
15079
15080 2015-07-09 Michael Matz <matz@suse.de>
15081
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
15091 code.
15092 (decision_tree::gen_generic): Ditto.
15093 (write_predicate): Ditto.
15094
15095 2015-07-08 Uros Bizjak <ubizjak@gmail.com>
15096
15097 PR target/66814
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.
15102
15103 2015-07-09 Andrew MacLeod <amacleod@redhat.com>
15104
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.
15122
15123 2015-07-09 Richard Biener <rguenther@suse.de>
15124
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.
15135
15136 2015-07-09 H.J. Lu <hongjiu.lu@intel.com>
15137
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.
15141
15142 2015-07-09 Andrew MacLeod <amacleod@redhat.com>
15143
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.
15148
15149 2015-07-09 H.J. Lu <hongjiu.lu@intel.com>
15150
15151 PR target/66818
15152 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
15153 for IA MCU.
15154
15155 2015-07-09 H.J. Lu <hongjiu.lu@intel.com>
15156
15157 PR target/66817
15158 * config/i386/i386.c (ix86_return_in_memory): Return true
15159 if int_size_in_bytes returns negative for IA MCU.
15160
15161 2015-07-09 Marek Polacek <polacek@redhat.com>
15162
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.
15169
15170 2015-07-09 Richard Biener <rguenther@suse.de>
15171
15172 * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
15173
15174 2015-07-09 Richard Biener <rguenther@suse.de>
15175
15176 PR tree-optimization/66807
15177 * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
15178
15179 2015-07-08 Kito Cheng <kito.cheng@gmail.com>
15180
15181 * function.c (stack_protect_epilogue): Use if rather than switch for
15182 check targetm.have_stack_protect_test.
15183
15184 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15185
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.
15227
15228 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15229
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.
15249
15250 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15251
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.
15273
15274 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15275
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.
15283
15284 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15285
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
15290 1.
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.
15303
15304 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15305
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.
15310 (subst): Likewise.
15311 (distribute_notes): Likewise.
15312
15313 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15314
15315 * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
15316 defined.
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.
15323
15324 2015-07-08 Jiong Wang <jiong.wang@arm.com>
15325
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.
15328
15329 2015-07-08 H.J. Lu <hongjiu.lu@intel.com>
15330
15331 PR target/66746
15332 * config/i386/x86intrin.h: Include <adxintrin.h> even if
15333 __iamcu__ is defined.
15334
15335 2015-07-08 Uros Bizjak <ubizjak@gmail.com>
15336
15337 * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
15338
15339 2015-07-08 Iain Sandoe <iain@codesourcery.com>
15340
15341 PR target/66523
15342 * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
15343 names from preservation.
15344
15345 2015-07-08 H.J. Lu <hongjiu.lu@intel.com>
15346
15347 PR target/66806
15348 * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
15349 change for IAMCU.
15350 (function_arg_advance_32): Don't pass vectors in registers for
15351 IAMCU.
15352 (function_arg_32): Likewise.
15353 (ix86_return_in_memory): Don't return vectors in registers for
15354 IAMCU.
15355
15356 2015-07-08 Vladimir Makarov <vmakarov@redhat.com>
15357
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.
15362
15363 2015-07-08 Thomas Schwinge <thomas@codesourcery.com>
15364
15365 PR libgomp/65099
15366 * config/nvptx/mkoffload.c (main): Create an offload image only in
15367 64-bit configurations.
15368
15369 2015-07-08 Martin Liska <mliska@suse.cz>
15370
15371 PR bootstrap/66744
15372 * tree-sra.c (create_access_1): Call ctor without brackets.
15373 (create_artificial_child_access): Likewise.
15374
15375 2015-07-08 Richard Biener <rguenther@suse.de>
15376
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.
15380
15381 2015-07-08 Richard Biener <rguenther@suse.de>
15382
15383 PR tree-optimization/66794
15384 * passes.c (execute_function_todo): Assert that post-dominators
15385 are not computed.
15386 * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
15387 Free post-dominators.
15388
15389 2015-07-08 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15390
15391 * config/s390/s390.c (s390_init_frame_layout): Replace assertion
15392 with early exit.
15393
15394 2015-07-08 Uros Bizjak <ubizjak@gmail.com>
15395
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.
15398
15399 2015-07-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15400
15401 * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
15402 COSTS_N_INSNS (1) and increment it appropriately throughout the
15403 function.
15404
15405 2015-07-08 Richard Biener <rguenther@suse.de>
15406
15407 * fold-const.c (fold_widened_comparison): Fix inverted comparison.
15408
15409 2015-07-08 Alan Modra <amodra@gmail.com>
15410
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
15421 with NULL set.
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.
15429 * hooks.h: Ditto.
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):
15450 Likewise.
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
15457 to rtx_cost calls.
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
15505 calls.
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
15509 rtx_cost calls.
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
15519 rtx_cost.
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.
15524
15525 2015-07-07 Andrew MacLeod <amacleod@redhat.com>
15526
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.
15569 * cfg.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.
15591 * cse.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.
15597 * dce.c: Likewise.
15598 * ddg.c: Likewise.
15599 * debug.c: Likewise.
15600 * df-core.c: Likewise.
15601 * df-problems.c: Likewise.
15602 * df-scan.c: Likewise.
15603 * dfp.c: Likewise.
15604 * dojump.c: Likewise.
15605 * dominance.c: Likewise.
15606 * domwalk.c: Likewise.
15607 * double-int.c: Likewise.
15608 * dse.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.
15678 * ipa.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.
15685 * ira.c: Likewise.
15686 * jump.c: Likewise.
15687 * langhooks.c: Likewise.
15688 * lcm.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.
15702 * lra.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.
15711 * mcf.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.
15729 * ree.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.
15862 * web.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.
15963
15964 2015-07-07 Uros Bizjak <ubizjak@gmail.com>
15965
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.
15974
15975 2015-07-07 Anatoly Sokolov <aesok@post.ru>
15976
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.
15981
15982 2015-07-07 Tom de Vries <tom@codesourcery.com>
15983
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
15988 loop exit bb.
15989
15990 2015-07-07 Tom de Vries <tom@codesourcery.com>
15991
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):
15997 Declare.
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.
16001
16002 2015-07-07 Richard Biener <rguenther@suse.de>
16003
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
16008 extract_muldiv_1.
16009
16010 2015-07-07 Kaz Kojima <kkojima@gcc.gnu.org>
16011
16012 PR target/66780
16013 * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
16014 change for target/65249.
16015
16016 2015-07-07 Paulo Matos <pmatos@broadcom.com>
16017
16018 * symtab.c (address_matters_1): Fix typo in comment above.
16019 (can_increase_alignment_p): Likewise.
16020
16021 2015-07-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16022
16023 * function.c (free_after_compilation): Clear PROP_cfg in
16024 f->curr_properties.
16025
16026 2015-07-07 Richard Biener <rguenther@suse.de>
16027
16028 * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
16029 add which use to.
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.
16037
16038 2015-07-07 Christian Bruel <christian.bruel@st.com>
16039
16040 PR target/52144
16041 * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
16042
16043 2015-07-07 Richard Biener <rguenther@suse.de>
16044
16045 PR middle-end/66739
16046 * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
16047 A - B.
16048
16049 2015-07-06 Uros Bizjak <ubizjak@gmail.com>
16050
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.
16060
16061 2015-07-06 Nathan Sidwell <nathan@codesourcery.com>
16062
16063 * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars. Fix
16064 call to nvptx_reorg_subreg.
16065
16066 2015-07-06 Jim Wilson <jim.wilson@linaro.org>
16067
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:
16072 Likewise.
16073
16074 2015-07-06 Marc Glisse <marc.glisse@inria.fr>
16075
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.
16081
16082 2015-07-06 H.J. Lu <hongjiu.lu@intel.com>
16083
16084 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16085 PROCESSOR_IAMCU.
16086
16087 2015-07-06 Steve Ellcey <sellcey@imgtec.com>
16088
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.
16106 (fms<mode>4) New.
16107 (*fms<mode>4_msub3) New.
16108 (*fms<mode>4_msub4) New.
16109 (fnma<mode>4) New.
16110 (*fnma<mode>4_nmadd3) New.
16111 (*fnma<mode>4_nmadd4) New.
16112 (fnms<mode>4) 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.
16127
16128 2015-07-06 Alan Lawrence <alan.lawrence@arm.com>
16129
16130 PR target/65956
16131 * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
16132 alignment attribute, exploring one level down for records and arrays.
16133
16134 2015-07-06 Uros Bizjak <ubizjak@gmail.com>
16135
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".
16162
16163 2015-07-06 Alan Lawrence <alan.lawrence@arm.com>
16164
16165 * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
16166
16167 2015-07-06 H.J. Lu <hongjiu.lu@intel.com>
16168
16169 PR target/66749
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.
16180
16181 2015-07-06 Richard Biener <rguenther@suse.de>
16182
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.
16187
16188 2015-07-06 Richard Biener <rguenther@suse.de>
16189
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
16194 evaluates to true.
16195
16196 2015-07-06 Bernd Schmidt <bernds@codesourcery.com>
16197
16198 PR target/66620
16199 * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
16200 loop start when inserting LSETUP.
16201
16202 2015-07-06 H.J. Lu <hongjiu.lu@intel.com>
16203
16204 PR target/53383
16205 * config/i386/i386.c (ix86_option_override_internal): Allow
16206 -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
16207
16208 2015-07-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16209
16210 * read-md.c (decimal_string): Rename to ...
16211 (md_decimal_string): ... this.
16212 (handle_enum): Reflect this.
16213
16214 2015-07-06 Szabolcs Nagy <szabolcs.nagy@arm.com>
16215
16216 PR target/66731
16217 * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
16218
16219 2015-07-06 Richard Biener <rguenther@suse.de>
16220
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.
16224
16225 2015-07-06 Eric Botcazou <ebotcazou@adacore.com>
16226
16227 PR tree-optimization/66757
16228 * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
16229
16230 2015-07-05 Chung-Lin Tang <cltang@codesourcery.com>
16231 Sandra Loosemore <sandra@codesourcery.com>
16232
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.
16241
16242 2015-07-05 Gerald Pfeifer <gerald@pfeifer.com>
16243
16244 * doc/fragments.texi (Target Fragment): Convert debian.org
16245 link to use https.
16246 * doc/install.texi (Configuration): Ditto.
16247
16248 2015-07-05 Jakub Jelinek <jakub@redhat.com>
16249
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.
16253
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
16258 stmt is.
16259
16260 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16261
16262 * target-insns.def (extv, extzv, insv): New targetm instruction
16263 patterns.
16264 * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
16265 interface.
16266 * recog.c (simplify_while_replacing): Likewise.
16267
16268 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16269
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.
16283
16284 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16285
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.
16289
16290 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16291
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.
16300
16301 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16302
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.
16308
16309 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16310
16311 * expr.h (gen_move_insn_uncast): Delete.
16312 * expr.c (gen_move_insn_uncast): Delete.
16313
16314 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16315
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.
16322
16323 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16324
16325 * target-insns.def (trap): New targetm instruction pattern.
16326 * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
16327 interface.
16328 * explow.c (allocate_dynamic_stack_space): Likewise.
16329 * ifcvt.c (find_if_header): Likewise.
16330
16331 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16332
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.
16339
16340 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16341
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.
16347
16348 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16349
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.
16358
16359 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16360
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
16365 patterns.
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.
16371
16372 2015-07-04 Sandra Loosemore <sandra@codesourcery.com>
16373
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.
16383
16384 2015-07-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
16385
16386 PR target/66747
16387 * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
16388
16389 2015-07-04 John David Anglin <danglin@gcc.gnu.org>
16390
16391 PR target/66114
16392 * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
16393 of register_operand. Remove constraint.
16394
16395 2015-07-04 Marc Glisse <marc.glisse@inria.fr>
16396
16397 * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
16398 the first argument.
16399
16400 2015-07-03 Paolo Carlini <paolo.carlini@oracle.com>
16401
16402 * attribs.c (decl_attributes): Guard inform with the return value
16403 of the preceding warning.
16404
16405 2015-07-03 James Greenhalgh <james.greenhalgh@arm.com>
16406
16407 * doc/invoke.texi (moverride): Move to correct section.
16408
16409 2015-07-03 Richard Biener <rguenther@suse.de>
16410
16411 * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
16412 Copy from tree.c
16413 (dt_operand::gen_gimple_expr): After valueizing operands
16414 re-canonicalize operand order for commutative tree codes.
16415
16416 2015-07-03 H.J. Lu <hongjiu.lu@intel.com>
16417
16418 PR target/66746.
16419 * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
16420 is defined.
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__
16428 is defined.
16429
16430 2015-07-03 Richard Biener <rguenther@suse.de>
16431
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.
16437
16438 2015-07-03 James Greenhalgh <james.greenhalgh@arm.com>
16439
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.
16446
16447 2015-07-03 Richard Biener <rguenther@suse.de>
16448
16449 * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
16450 * match.pd: ... here.
16451
16452 2015-07-03 Gerald Pfeifer <gerald@pfeifer.com>
16453
16454 PR target/37072
16455 * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
16456 is not actually the default on FreeBSD.
16457
16458 2015-07-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16459
16460 * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
16461 definition.
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.
16486
16487 2015-07-02 Segher Boessenkool <segher@kernel.crashing.org>
16488
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.
16492
16493 2015-07-02 Alan Lawrence <alan.lawrence@arm.com>
16494
16495 * tree-pass.h (make_pass_ch_vect): New.
16496 * passes.def: Add pass_ch_vect just before pass_if_conversion.
16497
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.
16502
16503 (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
16504 (ch_base::copy_headers): ...here.
16505
16506 2015-07-02 Richard Biener <rguenther@suse.de>
16507
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.
16515
16516 2015-07-02 Hans-Peter Nilsson <hp@axis.com>
16517
16518 * config/cris/cris.md ("epilogue"): Remove condition.
16519 ("prologue"): Ditto.
16520
16521 2015-07-02 Richard Biener <rguenther@suse.de>
16522
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.
16527
16528 2015-07-02 Bin Cheng <bin.cheng@arm.com>
16529
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.
16539
16540 2015-07-01 DJ Delorie <dj@redhat.com>
16541
16542 * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
16543 (LIB_SPEC): Add.
16544 (SUPPORTS_DISCRIMINATOR): Define.
16545
16546 2015-07-01 Richard Sandiford <richard.sandiford@arm.com>
16547
16548 PR bootstrap/66685
16549 * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
16550 there are no CALLs in the same pattern.
16551
16552 2015-07-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
16553
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.
16557
16558 2015-07-01 Richard Biener <rguenther@suse.de>
16559
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.
16564
16565 2015-07-01 Nick Clifton <nickc@redhat.com>
16566
16567 * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
16568 a 16-bit value into a 20-bit memory slot.
16569
16570 2015-07-01 Jiong Wang <jiong.wang@arm.com>
16571
16572 * doc/sourcebuild.texi (AArch64-specific attributes): Document
16573 "aarch64_tiny", "aarch64_small", "aarch64_large",
16574 "aarch64_little_endian", "aarch64_big_endian".
16575
16576 2015-07-01 Jiong Wang <jiong.wang@arm.com>
16577
16578 * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
16579 Document "aarch64_small_fpic".
16580
16581 2015-07-01 Jiong Wang <jiong.wang@arm.com>
16582
16583 * configure.ac: Add check for aarch64 assembler -fpic relocation
16584 modifier support.
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.
16589
16590 2015-07-01 Richard Sandiford <richard.sandiford@arm.com>
16591
16592 PR bootstrap/66685
16593 * rtl.c (classify_insn): Handle returns in PARALLELs.
16594
16595 2015-07-01 Eric Botcazou <ebotcazou@adacore.com>
16596
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.
16602
16603 2015-07-01 Richard Biener <rguenther@suse.de>
16604
16605 * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
16606 (X & Y) ^ Y -> ~X & Y transforms to ...
16607 * match.pd: ... here.
16608
16609 2015-07-01 Richard Biener <rguenther@suse.de>
16610
16611 * genmatch.c (expr::gen_transform): Shortcut re-simplifying
16612 of converts to avoid uninteresting noise from the conversion
16613 simplifying patterns.
16614
16615 2015-06-30 Sandra Loosemore <sandra@codesourcery.com>
16616
16617 * config/c6x/c6x.c (try_rename_operands): Do not depend on
16618 gcc_assert evaluating its argument for side-effect.
16619
16620 2015-06-30 Kaz Kojima <kkojima@gcc.gnu.org>
16621
16622 PR target/64833
16623 * config/sh/sh.md (casesi_worker_1): Set length to 8 when
16624 flag_pic is set.
16625
16626 2015-06-30 Eric Botcazou <ebotcazou@adacore.com>
16627
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.
16632
16633 2015-06-30 Richard Sandiford <richard.sandiford@arm.com>
16634
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.
16652
16653 2015-06-30 Richard Sandiford <richard.sandiford@arm.com>
16654
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.
16661
16662 2015-06-30 Richard Sandiford <richard.sandiford@arm.com>
16663
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_*
16670 interface.
16671 (expand_mem_signal_fence): Likewise.
16672
16673 2015-06-30 Richard Sandiford <richard.sandiford@arm.com>
16674
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_*
16679 interface.
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.
16690
16691 2015-06-30 David Malcolm <dmalcolm@redhat.com>
16692
16693 * typed-splay-tree.h: New file.
16694
16695 2015-06-30 Vladimir Makarov <vmakarov@redhat.com>
16696
16697 PR debug/66691
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
16701 of constant.
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.
16710
16711 2015-06-30 H.J. Lu <hongjiu.lu@intel.com>
16712
16713 * configure: Regenerated.
16714
16715 2015-06-30 H.J. Lu <hongjiu.lu@intel.com>
16716
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
16733 AVX is turned on.
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
16741 true.
16742 (ix86_local_alignment): Don't increase alignment for Intel MCU.
16743 (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
16744 true.
16745
16746 2015-06-30 Marek Polacek <polacek@redhat.com>
16747
16748 * match.pd (X - (X / Y) * Y): Use convert1 and convert2. Convert
16749 both operands of the resulting expression.
16750
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.
16754
16755 2015-06-30 Richard Biener <rguenther@suse.de>
16756
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.
16761
16762 2015-06-30 Richard Biener <rguenther@suse.de>
16763
16764 PR tree-optimization/66704
16765 * tree-vect-data-refs.c (vect_setup_realignment): Use
16766 make_ssa_name for non-SSA name source.
16767
16768 2015-06-30 Jakub Jelinek <jakub@redhat.com>
16769
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.
16773
16774 2015-06-30 Richard Biener <rguenther@suse.de>
16775
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).
16783
16784 2015-06-30 Eric Botcazou <ebotcazou@adacore.com>
16785
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
16790 is specified.
16791
16792 2015-06-30 Marek Polacek <polacek@redhat.com>
16793
16794 * fold-const.c (fold_binary_loc): Move ~X | X folding ...
16795 * match.pd: ... here.
16796
16797 2015-06-30 Richard Biener <rguenther@suse.de>
16798
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.
16809
16810 2015-06-30 Tom de Vries <tom@codesourcery.com>
16811
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.
16815
16816 2015-06-30 Richard Biener <rguenther@suse.de>
16817
16818 * tree-vrp.c (register_edge_assert_for_2): Also register
16819 asserts for dominating conversion results.
16820
16821 2015-06-30 Bin Cheng <bin.cheng@arm.com>
16822
16823 * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
16824 field in struct iv.
16825
16826 2015-06-29 Jack Howarth <howarth.at.gcc@gmail.com>
16827
16828 PR target/66509
16829 * configure.ac: Fix filds and fildq test for 64-bit.
16830 * configure: Regenerated.
16831
16832 2015-06-29 Nathan Sidwell <nathan@codesourcery.com>
16833
16834 * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
16835 (nvptx_reorg): Here. Keep the non-subreg pieces.
16836
16837 2015-06-29 H.J. Lu <hongjiu.lu@intel.com>
16838
16839 * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
16840 PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
16841
16842 2015-06-29 Uros Bizjak <ubizjak@gmail.com>
16843
16844 * config/i386/i386.md (*jcc_1): Use %! in asm template.
16845 Set attribute "length_nobnd" instead of "length".
16846 (*jcc_2): Ditto.
16847 (jump): Ditto.
16848 (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
16849
16850 2015-06-29 Sandra Loosemore <sandra@codesourcery.com>
16851
16852 * config/nios2/nios2.c (nios2_delegitimize_address): Make
16853 assert less restrictive.
16854
16855 2015-06-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
16856
16857 PR fortran/66605
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.
16862
16863 2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
16864
16865 PR target/65697
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.
16870
16871 2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
16872
16873 PR target/65697
16874 * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
16875 initial acquire barrier with final barrier.
16876
16877 2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
16878
16879 PR target/65697
16880 * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
16881 initial acquire barrier with final barrier.
16882
16883 2015-06-29 Richard Henderson <rth@redhat.com>
16884
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
16889 as flags outputs.
16890 * doc/extend.texi (FlagOutputOperands): Document them.
16891
16892 2015-06-29 Jiong Wang <jiong.wang@arm.com>
16893
16894 * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
16895 * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
16896 unspec name.
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.
16906
16907 2015-06-29 Marek Polacek <polacek@redhat.com>
16908 Marc Glisse <marc.glisse@inria.fr>
16909
16910 * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
16911 * match.pd: ... pattern here.
16912
16913 2015-06-29 Tom de Vries <tom@codesourcery.com>
16914
16915 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
16916 function structure.
16917
16918 2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
16919
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.
16926
16927 2015-06-29 Marek Polacek <polacek@redhat.com>
16928
16929 PR c/66322
16930 * function.c (stack_protect_epilogue): Remove a cast to int.
16931 * doc/invoke.texi: Update -Wswitch-bool description.
16932
16933 2015-06-29 Richard Biener <rguenther@suse.de>
16934
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.
16940
16941 2015-06-29 Richard Biener <rguenther@suse.de>
16942
16943 * lto-streamer.h (LTO_major_version): Bump to 5.
16944
16945 2015-06-29 Richard Biener <rguenther@suse.de>
16946
16947 PR tree-optimization/66677
16948 * tree-vect-stmts.c (vect_transform_stmt): Make assert about
16949 STMT_VINFO_VEC_STMT clobbering less strict.
16950
16951 2015-06-29 Kugan Vivekanandarajah <kuganv@linaro.org>
16952
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.
16957
16958 2015-06-28 Chung-Lin Tang <cltang@codesourcery.com>
16959 Sandra Loosemore <sandra@codesourcery.com>
16960
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.
16970
16971 2015-06-28 Uros Bizjak <ubizjak@gmail.com>
16972
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.
16980
16981 2015-06-27 Patrick Palka <ppalka@gcc.gnu.org>
16982
16983 * print-tree.c (print_node) [TREE_VEC]: Print its length.
16984
16985 2015-06-26 Andrew MacLeod <amacleod@redhat.com>
16986
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.
16990
16991 2015-06-26 Richard Sandiford <richard.sandiford@arm.com>
16992
16993 * hash-map.h (hash_map::traverse): Use the definition of the
16994 Key typedef rather than the typedef itself.
16995
16996 2015-06-26 Martin Jambor <mjambor@suse.cz>
16997
16998 PR debug/66301
16999 * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
17000 NULL instead of calling dump_enabled_p.
17001
17002 2015-06-26 James Greenhalgh <james.greenhalgh@arm.com>
17003
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
17018 is present.
17019
17020 2015-06-26 James Greenhalgh <james.greenhalgh@arm.com>
17021
17022 * config/aarch64/aarch64-protos.h (tune_params): Remove
17023 const from members.
17024 (aarch64_tune_params): Remove const, change to no longer be
17025 a pointer.
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
17042 accesses.
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.
17048
17049 2015-06-26 James Greenhalgh <james.greenhalgh@arm.com>
17050
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
17075 aarch64-protos.h.
17076
17077 2015-06-26 James Greenhalgh <james.greenhalgh@arm.com>
17078
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.
17088
17089 2015-06-26 Jiong Wang <jiong.wang@arm.com>
17090
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.
17110
17111 2015-06-26 Jiong Wang <jiong.wang@arm.com>
17112
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.
17119
17120 2015-06-26 Nathan Sidwell <nathan@codesourcery.com>
17121
17122 * config/nvptx/nvptx.md (call_operation): Remove unused variables.
17123
17124 2015-06-26 Bin Cheng <bin.cheng@arm.com>
17125
17126 PR bootstrap/66638
17127 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
17128 assertion failed. Remove assertion itself.
17129
17130 2015-06-26 Richard Biener <rguenther@suse.de>
17131
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
17134 in match.pd.
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.
17139
17140 2015-06-26 Marek Polacek <polacek@redhat.com>
17141
17142 * match.pd ((x | y) & ~(x & y) -> x ^ y,
17143 (x | y) & (~x ^ y) -> x & y): New patterns.
17144
17145 2015-06-26 Richard Sandiford <richard.sandiford@arm.com>
17146
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.
17154
17155 2015-06-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17156
17157 * config/arm/arm.c (arm_output_multireg_pop): Fix use of
17158 TARGET_UNIFIED_ASM.
17159
17160 2015-06-26 Richard Biener <rguenther@suse.de>
17161
17162 * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
17163
17164 2015-06-26 Richard Biener <rguenther@suse.de>
17165
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.
17169
17170 2015-06-26 Uros Bizjak <ubizjak@gmail.com>
17171 Segher Boessenkool <segher@kernel.crashing.org>
17172
17173 PR target/66412
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.
17177
17178 2015-06-25 H.J. Lu <hongjiu.lu@intel.com>
17179
17180 * gentarget-def.c (def_target_insn): Cast return of strtol to
17181 unsigned int.
17182
17183 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
17184
17185 * gimple.h (gimple_call_set_fn): Move inline function.
17186 * gimple.c (gimple_call_set_fn): Relocate here.
17187
17188 2015-06-25 Oleg Endo <olegendo@gcc.gnu.org>
17189
17190 PR target/65979
17191 PR target/66611
17192 * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
17193 the replacement insn will work.
17194
17195 2015-06-25 H.J. Lu <hongjiu.lu@intel.com>
17196
17197 * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
17198 by default.
17199
17200 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
17201
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
17207 definition here.
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.
17254 * ipa.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.
17270 * ree.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.
17322
17323 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17324
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.
17344
17345 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17346
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
17361 direct calls.
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.
17367
17368 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17369
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
17386 includes to end.
17387
17388 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17389
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
17413 parameter.
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
17423 parameter.
17424 * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
17425 (function_summary::m_map): Use map_hash as the first template
17426 parameter.
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
17437 parameter.
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
17441 parameter.
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
17455 parameter.
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
17459 parameter.
17460 (mips16_local_alias): Update accordingly.
17461
17462 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17463
17464 * hash-map-traits.h (default_hashmap_traits): Delete.
17465
17466 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17467
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.
17471
17472 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17473
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.
17482
17483 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17484
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.
17497
17498 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17499
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.
17504
17505 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17506
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.
17514
17515 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17516
17517 * tree-hash-traits.h (tree_hash): New class.
17518 * except.c: Include tree-hash-traits.h.
17519 (tree_hash_traits): Use tree_hash.
17520
17521 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17522
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.
17526
17527 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17528
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.
17532
17533 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17534
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.
17543
17544 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17545
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> >.
17550
17551 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17552
17553 * hash-table.h: Update comments.
17554
17555 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17556
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.
17565
17566 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17567
17568 * hash-traits.h (typed_noop_remove): Don't require a pointer type.
17569
17570 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17571
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.
17580
17581 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17582
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.
17599
17600 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17601
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.
17620
17621 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17622
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
17629 ggc_hasher.
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.
17647
17648 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17649
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.
17677
17678 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17679
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.
17727
17728 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17729
17730 * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
17731 (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
17732
17733 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17734
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.
17739
17740 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17741
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.
17761
17762 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17763
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.
17768
17769 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
17770
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.
17776
17777 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
17778
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
17783 prototypes here.
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.
17788
17789 2015-06-25 Andrew Macleod <amacleod@redhat.com>
17790
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.
17794
17795 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
17796
17797 * cgraph.h (cgraph_rtl_info): Move to rtl.h
17798 (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
17799 and instance.
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
17802 doesn't exist.
17803 * calls.c: Include hard-reg-set.h before rtl.h.
17804 * ira.c: Likewise.
17805
17806 2015-06-25 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
17807 Vladimir Makarov <vmakarov@redhat.com>
17808
17809 * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
17810 Add assert.
17811
17812 2015-06-25 Richard Biener <rguenther@suse.de>
17813
17814 * fold-const.c (fold_binary_loc): Move simplification of
17815 (X <<>> C1) & C2 ...
17816 * match.pd: ... here.
17817
17818 2015-06-25 Eric Botcazou <ebotcazou@adacore.com>
17819
17820 * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
17821
17822 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17823
17824 * match.pd: Add patterns for vec_conds between 1 and 0.
17825
17826 2015-06-25 Richard Biener <rguenther@suse.de>
17827
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.
17834
17835 2015-06-25 Richard Biener <rguenther@suse.de>
17836
17837 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
17838 dumping.
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.
17842
17843 2015-06-25 Nick Clifton <nickc@redhat.com>
17844
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.
17851
17852 2015-06-25 Tom de Vries <tom@codesourcery.com>
17853
17854 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
17855 comment that the generated IV is unsigned.
17856
17857 2015-06-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17858
17859 PR target/29693
17860 * config/arm/arm.c (arm_dbx_register_number): Return
17861 DWARF_FRAME_REGISTERS by default.
17862
17863 2015-06-25 Tom de Vries <tom@codesourcery.com>
17864
17865 * dominance.c (calculate_dominance_info): Fix verify_dominators call
17866 argument. Call verify_dominator when reusing dominator info.
17867
17868 2015-06-24 Kaz Kojima <kkojima@gcc.gnu.org>
17869
17870 PR target/66563
17871 * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
17872 an additional element of the unspec vector. Modify indices
17873 of operands.
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.
17878
17879 2015-06-24 Alan Lawrence <alan.lawrence@arm.com>
17880
17881 * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
17882 Condition on TARGET_FLOAT.
17883
17884 2015-06-24 Alan Lawrence <alan.lawrence@arm.com>
17885
17886 * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
17887 and (no)crypto.
17888
17889 2015-06-24 Alan Lawrence <alan.lawrence@arm.com>
17890
17891 * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
17892
17893 * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
17894 aarch64_err_no_fpadvsimd.
17895
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
17902 TARGET_FLOAT.
17903
17904 2015-06-24 Aldy Hernandez <aldyh@redhat.com>
17905
17906 PR debug/66482
17907 * dwarf2out.c (gen_formal_parameter_die): Remove assert.
17908
17909 2015-06-24 Ilya Enkovich <enkovich.gnu@gmail.com>
17910
17911 * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
17912
17913 2015-06-24 Renlin Li <renlin.li@arm.com>
17914
17915 * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
17916 __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
17917
17918 2015-06-24 Richard Biener <rguenther@suse.de>
17919
17920 * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
17921 (main): Likewise.
17922 (lower_opt_convert): Support lowering of conditional view_convert.
17923 (parser::parse_operation): Likewise.
17924 (parser::parse_for): Likewise.
17925
17926 2015-06-24 Renlin Li <renlin.li@arm.com>
17927
17928 * varasm.c (emit_local): Use unsigned int for align variable.
17929
17930 2015-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17931
17932 PR target/63408
17933 * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
17934 for negative numbers.
17935
17936 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17937
17938 PR rtl-optimization/66306
17939 * reload.c (find_reloads): Swap the match_dup info for
17940 commutative operands.
17941
17942 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17943
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.
17948
17949 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17950
17951 * config/s390/s390-builtins.def: Fix vpopct instruction comments.
17952
17953 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17954
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
17960 definitions.
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.
17975
17976 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17977
17978 * config/s390/vecintrin.h: Remove internal builtins.
17979
17980 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17981
17982 * config/s390/s390.c (s390_secondary_reload): Fix check for
17983 GENERAL_REGS register class.
17984
17985 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17986
17987 * config/s390/s390.c (s390_support_vector_misalignment): Call
17988 default implementation for !TARGET_VX.
17989
17990 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17991
17992 * config/s390/s390.c (s390_legitimate_constant_p): Add
17993 TARGET_VX check.
17994
17995 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17996
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.
18005
18006 2015-06-23 Chen Gang <gang.chen.5i5j@gmail.com>
18007
18008 PR target/65803
18009 * config/bfin/bfin.c (hwloop_optimize): Initialize
18010 JUMP_LABEL for newly created jump.
18011
18012 2015-06-23 Tristan Gingold <gingold@adacore.com>
18013
18014 * collect-utils.c (collect_wait): Unlink the response file here
18015 instead of...
18016 (do_wait): ...here.
18017 (utils_cleanup): ...and here.
18018
18019 2015-06-23 Richard Sandiford <richard.sandiford@arm.com>
18020
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.
18033
18034 2015-06-23 Richard Biener <rguenther@suse.de>
18035
18036 PR tree-optimization/66636
18037 * tree-vect-stmts.c (vectorizable_store): Properly compute the
18038 def type for further defs for strided stores.
18039
18040 2015-06-23 Nathan Sidwell <nathan@codesourcery.com>
18041
18042 * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
18043 conditional selects.
18044 (setcc_int<mode>, setcc_float<mode>): Reformat.
18045
18046 2015-06-23 Marek Polacek <polacek@redhat.com>
18047
18048 * match.pd ((x + y) - (x | y) -> x & y,
18049 (x + y) - (x & y) -> x | y): New patterns.
18050
18051 2015-06-23 Ludovic Courtès <ludo@gnu.org>
18052
18053 PR 65711
18054 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
18055 '-dynamic-linker' within %{!shared: ...}.
18056
18057 2015-06-23 Uros Bizjak <ubizjak@gmail.com>
18058
18059 PR target/66560
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.
18071
18072 2015-06-23 Bin Cheng <bin.cheng@arm.com>
18073
18074 PR tree-optimization/66449
18075 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
18076 POINTER_PLUS_EXPR for pointers.
18077
18078 2015-06-23 Alan Modra <amodra@gmail.com>
18079
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
18083 others.
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.
18087
18088 2015-06-22 Pierre-Marie de Rodat <derodat@adacore.com>
18089
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.
18092
18093 2015-06-22 Vladimir Makarov <vmakarov@redhat.com>
18094
18095 PR bootstrap/63740
18096 * lra-lives.c (process_bb_lives): Check insn copying the same
18097 reload pseudo and don't create a copy for it.
18098
18099 2015-06-22 Tom de Vries <tom@codesourcery.com>
18100
18101 * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
18102 for cond_stmt.
18103
18104 2015-06-22 Tom de Vries <tom@codesourcery.com>
18105
18106 * builtins.def (DEF_GOMP_BUILTIN): Test
18107 'flag_tree_parallelize_loops > 1' instead of
18108 'flag_tree_parallelize_loops'. Test flag_cilkplus.
18109
18110 2015-06-22 Tom de Vries <tom@codesourcery.com>
18111
18112 * dominance.c (calculate_dominance_info): Verify dominators if
18113 early-out.
18114
18115 2015-06-22 Marek Polacek <polacek@redhat.com>
18116
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.
18121
18122 2015-06-22 Uros Bizjak <ubizjak@gmail.com>
18123
18124 PR target/65871
18125 * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
18126 cost of embedded comparison.
18127
18128 2015-06-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18129
18130 PR target/65914
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.
18137
18138 2015-06-22 Richard Biener <rguenther@suse.de>
18139
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
18148 scalar_cost_vec.
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.
18154
18155 2015-06-22 Christian Bruel <christian.bruel@st.com>
18156
18157 PR target/52144
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.
18162
18163 2015-06-22 Jan Hubicka <hubicka@ucw.cz>
18164 Martin Liska <mliska@suse.cz>
18165
18166 PR ipa/65908
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.
18181
18182 2015-06-22 Jan Hubicka <hubicka@ucw.cz>
18183
18184 PR ipa/66351
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
18188 is known.
18189
18190 2015-06-22 Mikhail Maltsev <maltsevm@gmail.com>
18191
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
18196 swapping.
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
18219 use std::swap.
18220 * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
18221 manually swapping.
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.
18238
18239 2015-06-20 Marek Polacek <polacek@redhat.com>
18240
18241 * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
18242
18243 2015-06-19 Kaz Kojima <kkojima@gcc.gnu.org>
18244
18245 PR target/66591
18246 * config/sh/sh.c (prepare_move_operands): Replace subreg
18247 index term with R0 for base and index addressing.
18248
18249 2015-06-19 Jim Wilson <jim.wilson@linaro.org>
18250
18251 * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
18252 op1 is an fp zero.
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.
18257
18258 2015-06-19 James Greenhalgh <james.greenhalgh@arm.com>
18259
18260 * config/vax/vax.md: Adjust sign/zero extend patterns to
18261 handle SUBREGs in operands[1].
18262
18263 2015-06-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18264
18265 * config/i386/i386.c (ix86_function_versions): Use std::swap instead
18266 of manually swapping.
18267 (expand_vec_perm_interleave2): Likewise.
18268
18269 2015-06-19 Ilya Enkovich <enkovich.gnu@gmail.com>
18270
18271 * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
18272 reuse bounds created for abnormal ssa names.
18273
18274 2015-06-19 Jakub Jelinek <jakub@redhat.com>
18275
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.
18280
18281 2015-06-19 Christian Bruel <christian.bruel@st.com>
18282
18283 PR target/66541
18284 PR target/52144
18285 * config/arm/arm.c (arm_set_current_function): Handle
18286 explicit default options.
18287
18288 2015-06-18 Uros Bizjak <ubizjak@gmail.com>
18289
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.
18293
18294 2015-06-18 Segher Boessenkool <segher@kernel.crashing.org>
18295
18296 * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
18297
18298 2015-06-18 Steve Ellcey <sellcey@imgtec.com>
18299
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.
18309
18310 2015-06-18 Michael Matz <matz@suse.de>
18311
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.
18317
18318 2015-06-18 Ilya Enkovich <enkovich.gnu@gmail.com>
18319
18320 PR target/66569
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.
18325
18326 2015-06-18 Ilya Enkovich <enkovich.gnu@gmail.com>
18327
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.
18333
18334 2015-06-18 Ilya Enkovich <enkovich.gnu@gmail.com>
18335
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.
18341
18342 2015-06-18 Richard Biener <rguenther@suse.de>
18343
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
18357 vector alignment.
18358 (vect_transform_slp_perm_load): Properly compute the original
18359 number of vector load stmts.
18360
18361 2015-06-18 Uros Bizjak <ubizjak@gmail.com>
18362
18363 * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
18364 "unlikely character , in @var" warning.
18365
18366 2015-06-17 Uros Bizjak <ubizjak@gmail.com>
18367
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.
18371
18372 2015-06-17 Andrew MacLeod <amacleod@redhat.com>
18373
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.
18387
18388 2015-06-17 Jakub Jelinek <jakub@redhat.com>
18389
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
18394 child_cfun.
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
18399 passes.
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.
18408
18409 2017-06-17 Andrew MacLeod <amacleod@redhat.com>
18410
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
18414 the structure.
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.
18418
18419 2015-06-17 Andrew MacLeod <amacleod@redhat.com>
18420
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
18427 anon_aggrname_p.
18428 * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
18429
18430 2015-06-17 Segher Boessenkool <segher@kernel.crashing.org>
18431
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.
18436
18437 2015-06-17 Andrew MacLeod <amacleod@redhat.com>
18438
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.
18454 * cfg.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.
18477 * cse.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.
18483 * dce.c: Likewise.
18484 * ddg.c: Likewise.
18485 * debug.c: Likewise.
18486 * df-core.c: Likewise.
18487 * df-problems.c: Likewise.
18488 * df-scan.c: Likewise.
18489 * df.h: Likewise.
18490 * dfp.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.
18497 * dse.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.
18569 * ipa.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.
18576 * ira.c: Likewise.
18577 * jump.c: Likewise.
18578 * langhooks.c: Likewise.
18579 * lcm.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.
18593 * lra.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.
18602 * mcf.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.
18622 * ree.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.
18758 * web.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.
18863
18864 2015-06-17 Robert Suchanek <robert.suchanek@imgtec.com>
18865
18866 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
18867 function.
18868 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
18869
18870 2015-06-17 Richard Biener <rguenther@suse.de>
18871
18872 PR tree-optimization/66251
18873 * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
18874 stmts for SLP strided stores.
18875
18876 Revert
18877 2015-05-22 Richard Biener <rguenther@suse.de>
18878
18879 PR tree-optimization/66251
18880 * tree-vect-stmts.c (vectorizable_conversion): Properly
18881 set STMT_VINFO_VEC_STMT even for the SLP case.
18882
18883 2015-05-26 Michael Matz <matz@suse.de>
18884
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.
18888
18889 2015-06-16 Uros Bizjak <ubizjak@gmail.com>
18890
18891 PR target/56766
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.
18900
18901 2015-06-16 Steve Ellcey <sellcey@imgtec.com>
18902
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.
18913
18914 2015-06-16 Matthew Wahab <matthew.wahab@arm.com>
18915
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.
18926
18927 2015-06-16 Martin Liska <mliska@suse.cz>
18928
18929 * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
18930 * hash-table.c (void dump_hash_table_loc_statistics): Add missing
18931 guard.
18932
18933 2015-06-16 Richard Biener <rguenther@suse.de>
18934
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):
18938 Simplify.
18939 (vect_create_data_ref_ptr): Likewise.
18940 (bump_vector_ptr): Adjust.
18941
18942 2015-06-16 Richard Biener <rguenther@suse.de>
18943
18944 * tree-vect-stmts.c (vectorizable_load): Properly start loads
18945 with the first element if this is grouped loads.
18946
18947 2015-06-16 James Greenhalgh <james.greenhalgh@arm.com>
18948
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.
18974
18975 2015-06-15 David Edelsohn <dje.gcc@gmail.com>
18976
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.
18982
18983 2015-06-15 Jim Wilson <jim.wilson@linaro.org>
18984
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.
18989
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
18993 an fp zero.
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
18998 to store2.
18999
19000 2015-06-15 Aldy Hernandez <aldyh@redhat.com>
19001
19002 PR debug/66535
19003 * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
19004 there is no parent.
19005
19006 2015-06-14 Shiva Chen <shiva0217@gmail.com>
19007
19008 * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
19009 HOST_WIDE_INT parameter.
19010
19011 2015-06-14 Jan Hubicka <hubicka@ucw.cz>
19012
19013 PR ipa/66181
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
19016 TYPE_NO_FORCE_BLK.
19017 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
19018
19019 2015-06-14 Richard Sandiford <richard.sandiford@arm.com>
19020
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.
19028
19029 2015-06-13 Patrick Palka <ppalka@gcc.gnu.org>
19030
19031 * tree.c (make_vector_stat): Fix comment to state that the
19032 function returns a VECTOR_CST.
19033
19034 2015-06-13 Richard Sandiford <richard.sandiford@arm.com>
19035
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.
19041
19042 2015-06-13 Iain Sandoe <iain@codesourcery.com>
19043
19044 PR bootstrap/66448
19045 * passes.c (rest_of_decl_compilation): Do not register globals for
19046 early debug if they are declared in built-ins.
19047
19048 2015-06-12 Aldy Hernandez <aldyh@redhat.com>
19049
19050 * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
19051
19052 2015-06-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19053
19054 * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
19055 manually swapping.
19056 (noce_try_cmove_arith): Likewise.
19057 (noce_get_alt_condition): Likewise.
19058
19059 2015-06-12 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
19060
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
19069 MWAITX support.
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.
19075 (PTA_MWAITX): New.
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
19084 UNSPEC_MONITORX.
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.
19090
19091 2015-06-12 Uros Bizjak <ubizjak@gmail.com>
19092
19093 * emit-rtl.c (need_atomic_barrier_p): Mask model with
19094 MEMMODEL_BASE_MASK. Remove MEMMODEL_SYNC_* cases.
19095
19096 2015-06-11 David Edelsohn <dje.gcc@gmail.com>
19097
19098 * dbxout.c (xcoff_debug_hooks): Provide a function for
19099 register_main_translation_unit hook.
19100
19101 2015-06-11 David Edelsohn <dje.gcc@gmail.com>
19102
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.
19113
19114 2015-06-11 John David Anglin <danglin@gcc.gnu.org>
19115
19116 * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
19117 CONST_INT for goto.
19118
19119 2015-06-11 Aldy Hernandez <aldyh@redhat.com>
19120
19121 PR bootstrap/66448
19122 * dwarf2out.c (check_die): Check for common duplicate attributes.
19123 (add_location_or_const_value_attribute): Do not add duplicate
19124 attributes.
19125 (gen_formal_parameter_die): Do not add DW_AT_artificial the second
19126 time around.
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.
19130
19131 2015-06-11 Jason Merrill <jason@redhat.com>
19132
19133 * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
19134 dies.
19135
19136 2015-06-11 Marek Polacek <polacek@redhat.com>
19137
19138 * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
19139
19140 2015-06-11 Eric Botcazou <ebotcazou@adacore.com>
19141
19142 PR bootstrap/66252
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.
19156
19157 2015-06-11 Pierre-Marie de Rodat <derodat@adacore.com>
19158
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
19162 new hook.
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
19172 comp_unit_die ().
19173
19174 2015-06-11 Marek Polacek <polacek@redhat.com>
19175
19176 * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
19177
19178 2015-06-11 Marek Polacek <polacek@redhat.com>
19179
19180 * match.pd: Use single_use throughout.
19181
19182 2015-06-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19183
19184 * config/arm/arm.c (arm_option_params_internal): When optimising
19185 for speed set max_insns_skipped when arm_restrict_it.
19186
19187 2015-06-11 Christian Bruel <christian.bruel@st.com>
19188
19189 PR target/52144
19190 * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
19191 macros in ...
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.
19200
19201 2015-06-10 Kaz Kojima <kkojima@gcc.gnu.org>
19202
19203 * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
19204 of the second operand.
19205
19206 2015-06-10 Uros Bizjak <ubizjak@gmail.com>
19207
19208 PR target/66473
19209 * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
19210 to prepare mask operand for AVX512 modes.
19211
19212 2015-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
19213
19214 PR target/66474
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.
19218
19219 2015-06-10 Max Filippov <jcmvbkbc@gmail.com>
19220
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.
19224
19225 2015-06-10 Richard Biener <rguenther@suse.de>
19226
19227 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
19228 out from ...
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.
19233
19234 2015-06-10 Jakub Jelinek <jakub@redhat.com>
19235
19236 PR target/66470
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
19240 the memory loads.
19241
19242 2015-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19243
19244 * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
19245 dmb sy. Adjust tabs.
19246
19247 2015-06-10 Tom de Vries <tom@codesourcery.com>
19248
19249 * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
19250
19251 2015-06-10 Martin Liska <mliska@suse.cz>
19252
19253 PR bootstrap/66471
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
19257 name.
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.
19270
19271 2015-06-09 Christian Bruel <christian.bruel@st.com>
19272
19273 PR target/52144
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.
19295
19296 2015-06-09 Alexandre Oliva <aoliva@redhat.com>
19297
19298 Revert:
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
19339 from...
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
19347 partitions.
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.
19388
19389 2015-06-09 Tom de Vries <tom@codesourcery.com>
19390
19391 PR tree-optimization/65460
19392 * omp-low.c (expand_omp_target): Set parallelized_function on
19393 cgraph_node for child_fn.
19394
19395 2015-06-09 Tom de Vries <tom@codesourcery.com>
19396
19397 * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
19398 parallelized_function before add_new_function.
19399
19400 2015-06-09 Andrew MacLeod <amacleod@redhat.com>
19401
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.
19407
19408 2015-06-09 Tom de Vries <tom@codesourcery.com>
19409
19410 * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
19411
19412 2015-06-09 Jason Merrill <jason@redhat.com>
19413
19414 PR bootstrap/66448
19415 * toplev.c (check_global_declaration): Don't warn about a clone.
19416
19417 2015-06-09 Marek Polacek <polacek@redhat.com>
19418
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
19422 patterns.
19423
19424 2015-06-09 Richard Biener <rguenther@suse.de>
19425
19426 * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
19427 (vect_analyze_slp_instance): Instead do not falsely drop
19428 load permutations.
19429
19430 2015-06-09 Richard Biener <rguenther@suse.de>
19431
19432 PR middle-end/66423
19433 * match.pd: Handle A % (unsigned)(1 << B).
19434
19435 2015-06-09 Aldy Hernandez <aldyh@redhat.com>
19436
19437 * varasm.c (output_object_block_htab): Remove.
19438 (output_object_block_compare): New.
19439 (output_object_blocks): Sort named object_blocks before outputting
19440 them.
19441
19442 2015-06-09 Richard Biener <rguenther@suse.de>
19443
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.
19447
19448 2015-06-09 Nick Clifton <nickc@redhat.com>
19449
19450 * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
19451 place read only data in the .frodata section.
19452
19453 2015-06-09 Shiva Chen <shiva0217@gmail.com>
19454
19455 * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
19456 (atomic_store<mode>): Likewise.
19457
19458 2015-06-09 Richard Biener <rguenther@suse.de>
19459
19460 * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
19461
19462 2015-06-09 Richard Biener <rguenther@suse.de>
19463
19464 PR middle-end/66413
19465 * tree-inline.c (insert_init_debug_bind): Unshare value.
19466
19467 2015-06-09 Richard Biener <rguenther@suse.de>
19468
19469 PR tree-optimization/66396
19470 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
19471 Rename virtual operands.
19472
19473 2015-06-09 Tom de Vries <tom@codesourcery.com>
19474
19475 * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
19476 always return false.
19477
19478 2015-06-09 Alexandre Oliva <aoliva@redhat.com>
19479
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
19519 from...
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
19527 partitions.
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.
19568
19569 2015-06-09 Alexandre Oliva <aoliva@redhat.com>
19570
19571 PR debug/58315
19572 * tree-inline.c (reset_debug_binding): New.
19573 (reset_debug_bindings): Likewise.
19574 (expand_call_inline): Call it.
19575
19576 2015-06-08 Jan Hubicka <hubicka@ucw.cz>
19577
19578 * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
19579 TYPE_STRING_FLAG.
19580
19581 2015-06-08 Jan Hubicka <hubicka@ucw.cz>
19582
19583 * lto-streamer-out.c (lto_output_location): Stream
19584 reserved locations correctly.
19585 * lto-streamer-in.c (lto_output_location): Likewise.
19586
19587 2015-06-08 Andrew MacLeod <amacleod@redhat.com>
19588
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.
19650 * df.h : 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.
19954 * vec.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.
20062
20063 2015-06-08 Jan Hubicka <hubicka@ucw.cz>
20064
20065 PR lto/65378
20066 * ipa-utils.h (warn_types_mismatch): Update prototype.
20067 * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
20068 parameters.
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.
20073
20074 2015-06-08 Tom de Vries <tom@codesourcery.com>
20075
20076 PR rtl-optimization/66444
20077 * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
20078 call_used_regs.
20079
20080 2015-06-08 Richard Biener <rguenther@suse.de>
20081
20082 PR tree-optimization/66422
20083 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
20084 block after inserted gcc_unreachable.
20085
20086 2015-06-08 Nick Clifton <nickc@redhat.com>
20087
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.
20091
20092 2015-06-08 Jakub Jelinek <jakub@redhat.com>
20093
20094 * genattrtab.c (insn_alternatives): Change type from int *
20095 to uint64_t *.
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.
20106
20107 2015-06-08 Jan Kratochvil <jan.kratochvil@redhat.com>
20108
20109 PR other/65366
20110 * gdbhooks.py: Import sys.
20111 (intptr): New function. Replace int(...) by intptr(...).
20112
20113 2015-06-08 Richard Biener <rguenther@suse.de>
20114
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.
20120
20121 2015-06-08 Marc Glisse <marc.glisse@inria.fr>
20122
20123 * genmatch.c (expr::gen_transform): For conditions, guess the type
20124 from the second operand.
20125
20126 2015-06-08 Tom de Vries <tom@codesourcery.com>
20127
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.
20133
20134 2015-06-08 Marek Polacek <polacek@redhat.com>
20135
20136 PR sanitizer/66452
20137 * toplev.c (check_global_declaration): Don't warn about artificial
20138 decls.
20139
20140 2015-06-08 Tom de Vries <tom@codesourcery.com>
20141
20142 PR tree-optimization/66436
20143 * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
20144 dump file.
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
20148 dump file.
20149
20150 2015-06-08 Tom de Vries <tom@codesourcery.com>
20151
20152 PR tree-optimization/66435
20153 * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
20154 function.
20155
20156 2015-06-06 Jan Hubicka <hubicka@ucw.cz>
20157
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.
20164
20165 2015-06-06 John David Anglin <danglin@gcc.gnu.org>
20166
20167 PR bootstrap/66319
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
20171 later.
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.
20177
20178 2015-06-06 Aldy Hernandez <aldyh@redhat.com>
20179
20180 * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
20181
20182 2015-06-06 Richard Sandiford <richard.sandiford@arm.com>
20183
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
20192 more derived ones.
20193
20194 2015-06-06 Mikhail Maltsev <maltsevm@gmail.com>
20195
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
20202 rtx_insn.
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.
20211
20212 2015-06-06 DJ Delorie <dj@redhat.com>
20213
20214 * config/msp430/msp430.c (msp430_asm_integer): Support addition
20215 and subtraction too.
20216
20217 2015-06-05 Kaz Kojima <kkojima@gcc.gnu.org>
20218
20219 PR target/66410
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 '^'.
20223
20224 2015-06-05 Aldy Hernandez <aldyh@redhat.com>
20225
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.
20241 (check_die): New.
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
20247 DIEs.
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
20262 dwarf.
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
20266 dwarf2out_decl.
20267 (dwarf2out_decl): Verify that we did not recreate a previously
20268 generated DIE.
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
20281 argument.
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
20286 analyze_functions.
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
20340 throughout.
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.
20346
20347 2015-06-05 Julian Brown <julian@codesourcery.com>
20348 Sandra Loosemore <sandra@codesourcery.com>
20349
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.
20353
20354 2015-06-05 Tom de Vries <tom@codesourcery.com>
20355
20356 merge from gomp4 branch:
20357 2015-05-28 Tom de Vries <tom@codesourcery.com>
20358
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.
20365
20366 2015-06-05 James Greenhalgh <james.greenhalgh@arm.com>
20367
20368 * builtins.c (expand_builtin_atomic_compare_exchange): Call
20369 emit_cmp_and_jump_insns with the mode of target.
20370
20371 2015-06-05 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
20372
20373 * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
20374
20375 2015-06-04 DJ Delorie <dj@redhat.com>
20376
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.
20381
20382 2015-06-04 Sriraman Tallam <tmsriram@google.com>
20383
20384 * c-family/c-common.c (noplt): New attribute.
20385 (handle_noplt_attribute): New handler.
20386 * calls.c (prepare_call_address): Check for noplt
20387 attribute.
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
20392 no plt calls.
20393 * doc/extend.texi (noplt): Document new attribute.
20394 * doc/invoke.texi: Document new attribute.
20395
20396 2015-06-04 Andrew MacLeod <amacleod@redhat.com>
20397
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.
20419 * cfg.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.
20442 * cse.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.
20448 * dce.c: Likewise.
20449 * ddg.c: Likewise.
20450 * debug.c: Likewise.
20451 * df-core.c: Likewise.
20452 * df-problems.c: Likewise.
20453 * df-scan.c: Likewise.
20454 * df.h: Likewise.
20455 * dfp.c: Likewise.
20456 * dojump.c: Likewise.
20457 * dominance.c: Likewise.
20458 * domwalk.c: Likewise.
20459 * double-int.c: Likewise.
20460 * dse.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.
20533 * ipa.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.
20540 * ira.c: Likewise.
20541 * jump.c: Likewise.
20542 * langhooks.c: Likewise.
20543 * lcm.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.
20557 * lra.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.
20566 * mcf.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.
20585 * ree.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.
20724 * web.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.
20831
20832 2015-06-04 Jan Hubicka <hubicka@ucw.cz>
20833
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..
20837
20838 2015-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20839
20840 PR c++/66192
20841 PR target/66200
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.
20852
20853 2015-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20854
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.
20859
20860 2015-06-03 Jan Hubicka <hubicka@ucw.cz>
20861
20862 * tree.c (verify_type_variant): Verify that type and variant is
20863 compatible.
20864 (gimple_canonical_types_compatible_p): Look for main variants.
20865
20866 2015-06-03 Michael Meissner <meissner@linux.vnet.ibm.com>
20867
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.
20871
20872 * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
20873 specs to support the configure --with-advance-toolchain=<xxx>
20874 option.
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
20881 toolchain support.
20882 (GLIBC_DYNAMIC_LINKER32): Likewise.
20883 (GLIBC_DYNAMIC_LINKER64): Likewise.
20884 (LINK_OS_LINUX_SPEC32): Likewise.
20885 (LINK_OS_LINUX_SPEC64): Likewise.
20886
20887 * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
20888 configuration option.
20889
20890 2015-06-03 Uros Bizjak <ubizjak@gmail.com>
20891
20892 PR target/66275
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.
20896
20897 2015-06-03 Martin Liska <mliska@suse.cz>
20898
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.
20905
20906 2015-06-03 Benigno B. Junior <bbj@gentoo.org>
20907
20908 * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
20909 -Bsymbolic.
20910
20911 2015-06-02 Andres Tiraboschi <andres.tiraboschi@tallertechnologies.com>
20912
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.
20918
20919 2015-06-03 Richard Biener <rguenther@suse.de>
20920
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
20924 on in-group gaps.
20925
20926 2015-06-03 Nick Clifton <nickc@redhat.com>
20927
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.
20932
20933 2015-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20934
20935 * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
20936
20937 2015-06-03 Ilya Enkovich <ilya.enkovich@intel.com>
20938
20939 * ipa-chkp.c (chkp_maybe_create_clone): Create alias
20940 reference when cloning alias node.
20941
20942 2015-06-03 Martin Liska <mliska@suse.cz>
20943
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.
20948
20949 2015-06-03 Martin Liska <mliska@suse.cz>
20950
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
20965 instances.
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.
20970 the function.
20971
20972 2015-06-03 Richard Sandiford <richard.sandiford@arm.com>
20973
20974 * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
20975 of GCC_INSN_FLAGS_H block.
20976
20977 2015-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
20978
20979 * explow.c (plus_constant): Update check after force_const_mem call
20980 to see if the value returned is not a NULL_RTX.
20981
20982 2015-06-03 Ilya Enkovich <ilya.enkovich@intel.com>
20983
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.
20992
20993 2015-06-03 Marek Polacek <polacek@redhat.com>
20994
20995 PR c/64223
20996 PR c/29358
20997 * tree.c (attribute_value_equal): Handle attribute format.
20998 (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
20999
21000 2015-06-03 Richard Biener <rguenther@suse.de>
21001
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.
21007
21008 2015-06-03 Richard Biener <rguenther@suse.de>
21009
21010 PR tree-optimization/66375
21011 * tree-scalar-evolution.c (follow_ssa_edge_binary): First
21012 add to the evolution before following SSA edges.
21013
21014 2015-06-03 Bin Cheng <bin.cheng@arm.com>
21015
21016 * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
21017 (dump_use, dump_cand, find_induction_variables): Pass new argument
21018 to dump_iv.
21019 (record_use): Preserve the ssa name information in IV.
21020
21021 2015-06-03 Richard Sandiford <richard.sandiford@arm.com>
21022
21023 * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
21024 NO_MODE_TEST.
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.
21028
21029 2015-06-02 Jim Wilson <jim.wilson@linaro.org>
21030
21031 PR target/66258
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
21036 to !TARGET_FLOAT.
21037 (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
21038 Likewise.
21039
21040 2015-06-03 Kugan Vivekanandarajah <kuganv@linaro.org>
21041 Zhenqiang Chen <zhenqiang.chen@linaro.org>
21042
21043 PR target/65768
21044 * cprop.c (try_replace_reg): Check cost of constants before propagating.
21045
21046 2015-06-02 Michael Meissner <meissner@linux.vnet.ibm.com>
21047
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.
21053
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.
21058
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
21064 support.
21065 (rs6000_option_override_internal): Add -mfloat128-* support.
21066 (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
21067
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.
21072
21073 2015-06-02 Szabolcs Nagy <szabolcs.nagy@arm.com>
21074
21075 PR target/66136
21076 * config/aarch64/geniterators.sh: Rewrite in awk.
21077
21078 2015-06-02 Martin Liska <mliska@suse.cz>
21079
21080 * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
21081 values to avoid -Wmaybe-uninitialized errors.
21082
21083 2015-06-02 Richard Biener <rguenther@suse.de>
21084
21085 PR debug/65549
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.
21091
21092 2015-06-02 Uros Bizjak <ubizjak@gmail.com>
21093
21094 * df-scan.c (df_scan_start_dump): Add space between regno and regname.
21095
21096 2015-06-02 Bin Cheng <bin.cheng@arm.com>
21097
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.
21112
21113 2015-06-02 Eric Botcazou <ebotcazou@adacore.com>
21114
21115 * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
21116 the target doesn't belong to the current function.
21117
21118 2015-06-02 Marek Polacek <polacek@redhat.com>
21119
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.
21123
21124 2015-06-02 Richard Sandiford <richard.sandiford@arm.com>
21125
21126 * config/arc/constraints.md: Use lower-case names in match_code.
21127 * config/mmix/constraints.md: Likewise.
21128
21129 2015-06-02 Richard Biener <rguenther@suse.de>
21130
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.
21137
21138 2015-06-02 Jan Kratochvil <jan.kratochvil@redhat.com>
21139
21140 PR other/65366
21141 * gdbhooks.py: Use int(...) instead of long(...). Use print(...)
21142 instead of print ... .
21143
21144 2015-06-02 Alan Modra <amodra@gmail.com>
21145
21146 * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
21147 2014-08-11 change.
21148
21149 2015-06-02 Bin Cheng <bin.cheng@arm.com>
21150
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
21173 of chrec_conert_1.
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.
21179
21180 2015-06-01 Eric Botcazou <ebotcazou@adacore.com>
21181
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.
21187
21188 2015-06-01 Andreas Tobler <andreast@gcc.gnu.org>
21189
21190 * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
21191 * config.in: Regenerate.
21192
21193 2015-06-01 Yuri Rumyantsev <ysrumyan@gmail.com>
21194
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.
21198
21199 2015-06-01 Vidya Praveen <vidyapraveen@arm.com>
21200
21201 * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
21202 rather than from gcc/build directory.
21203
21204 2015-06-01 Matthew Wahab <matthew.wahab@arm.com>
21205
21206 PR target/65697
21207 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
21208 for __sync memory models, emit initial loads and final barriers as
21209 appropriate.
21210
21211 2015-06-01 Matthew Wahab <matthew.wahab@arm.com>
21212
21213 PR target/65697
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.
21217
21218 2015-06-01 Vidya Praveen <vidyapraveen@arm.com>
21219
21220 * Makefile.in: Fix gcov dependencies that should
21221 not point to a build folder.
21222
21223 2015-06-01 Richard Biener <rguenther@suse.de>
21224
21225 Revert
21226 2015-05-29 Richard Biener <rguenther@suse.de>
21227
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.
21233
21234 2015-06-01 Martin Liska <mliska@suse.cz>
21235
21236 * sched-deps.c: Include pool-alloc.h before
21237 cselib.h header file is included.
21238
21239 2015-06-01 Richard Biener <rguenther@suse.de>
21240
21241 * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
21242 functions.
21243
21244 2015-06-01 Martin Liska <mliska@suse.cz>
21245
21246 * alloc-pool.h: Add ATTRIBUTE_UNUSED for
21247 a function local variable.
21248
21249 2015-06-01 Martin Liska <mliska@suse.cz>
21250
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.
21258
21259 2015-06-01 Martin Liska <mliska@suse.cz>
21260
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.
21279
21280 2015-06-01 Martin Liska <mliska@suse.cz>
21281
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.
21290
21291 2015-06-01 Martin Liska <mliska@suse.cz>
21292
21293 * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
21294 pool allocator.
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.
21304
21305 2015-06-01 Martin Liska <mliska@suse.cz>
21306
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.
21311
21312 2015-06-01 Martin Liska <mliska@suse.cz>
21313
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.
21318
21319 2015-06-01 Martin Liska <mliska@suse.cz>
21320
21321 * tree-ssa-structalias.c (new_var_info): Use new type-based
21322 pool allocator.
21323 (new_constraint): Likewise.
21324 (init_alias_vars): Likewise.
21325 (delete_points_to_sets): Likewise.
21326
21327 2015-06-01 Martin Liska <mliska@suse.cz>
21328
21329 * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
21330 (free_strinfo): Likewise.
21331 (pass_strlen::execute): Likewise.
21332
21333 2015-06-01 Martin Liska <mliska@suse.cz>
21334
21335 * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
21336 pool allocator.
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.
21345
21346 2015-06-01 Martin Liska <mliska@suse.cz>
21347
21348 * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
21349 pool allocator.
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.
21355
21356 2015-06-01 Martin Liska <mliska@suse.cz>
21357
21358 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
21359 pool allocator.
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.
21367
21368 2015-06-01 Martin Liska <mliska@suse.cz>
21369
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.
21376
21377 2015-06-01 Martin Liska <mliska@suse.cz>
21378
21379 * regcprop.c (free_debug_insn_changes): Use new type-based
21380 pool allocator.
21381 (replace_oldest_value_reg): Likewise.
21382 (pass_cprop_hardreg::execute): Likewise.
21383
21384 2015-06-01 Martin Liska <mliska@suse.cz>
21385
21386 * ira-build.c (initiate_cost_vectors): Use new type-based
21387 pool allocator.
21388 (ira_allocate_cost_vector): Likewise.
21389 (ira_free_cost_vector): Likewise.
21390 (finish_cost_vectors): Likewise.
21391
21392 2015-06-01 Martin Liska <mliska@suse.cz>
21393
21394 * sel-sched-ir.c (alloc_sched_pools): Use new type-based
21395 pool allocator.
21396 (free_sched_pools): Likewise.
21397 * sel-sched-ir.h (_list_alloc): Likewise.
21398 (_list_remove): Likewise.
21399
21400 2015-06-01 Martin Liska <mliska@suse.cz>
21401
21402 * stmt.c (add_case_node): Use new type-based pool allocator.
21403 (expand_case): Likewise.
21404 (expand_sjlj_dispatch_table): Likewise.
21405
21406 2015-06-01 Martin Liska <mliska@suse.cz>
21407
21408 * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
21409 (free_bb): Likewise.
21410 (pass_cse_reciprocals::execute): Likewise.
21411
21412 2015-06-01 Martin Liska <mliska@suse.cz>
21413
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.
21419
21420 2015-06-01 Martin Liska <mliska@suse.cz>
21421
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.
21433
21434 2015-06-01 Martin Liska <mliska@suse.cz>
21435
21436 * df-scan.c (struct df_scan_problem_data):Use new type-based
21437 pool allocator.
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.
21450
21451 2015-06-01 Martin Liska <mliska@suse.cz>
21452
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.
21460
21461 2015-06-01 Martin Liska <mliska@suse.cz>
21462
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.
21471
21472 2015-06-01 Martin Liska <mliska@suse.cz>
21473
21474 * config/sh/sh.c (add_constant):Use new type-based pool allocator.
21475 (sh_reorg) Likewise.
21476
21477 2015-06-01 Martin Liska <mliska@suse.cz>
21478
21479 * cfg.c (initialize_original_copy_tables):Use new type-based
21480 pool allocator.
21481 (free_original_copy_tables) Likewise.
21482 (copy_original_table_clear) Likewise.
21483 (copy_original_table_set) Likewise.
21484
21485 2015-06-01 Martin Liska <mliska@suse.cz>
21486
21487 * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
21488 pool allocator.
21489 (asan_mem_ref_new) Likewise.
21490 (free_mem_ref_resources) Likewise.
21491
21492 2015-06-01 Martin Liska <mliska@suse.cz>
21493
21494 * var-tracking.c (variable_htab_free):Use new type-based
21495 pool allocator.
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.
21526
21527 2015-06-01 Martin Liska <mliska@suse.cz>
21528
21529 * ira-color.c (init_update_cost_records):Use new type-based
21530 pool allocator.
21531 (get_update_cost_record) Likewise.
21532 (free_update_cost_record_list) Likewise.
21533 (finish_update_cost_records) Likewise.
21534 (initiate_cost_update) Likewise.
21535
21536 2015-06-01 Martin Liska <mliska@suse.cz>
21537
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.
21549
21550 2015-06-01 Martin Liska <mliska@suse.cz>
21551
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.
21560
21561 2015-06-01 Martin Liska <mliska@suse.cz>
21562
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.
21569
21570 2015-06-01 Martin Liska <mliska@suse.cz>
21571
21572 * alloc-pool.c (struct alloc_pool_descriptor): Move definition
21573 to header file.
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.
21580
21581 2015-06-01 James Greenhalgh <james.greenhalgh@arm.com>
21582
21583 * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
21584 in comment.
21585
21586 2015-06-01 James Greenhalgh <james.greenhalgh@arm.com>
21587
21588 * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops
21589 to fusible_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.
21593
21594 2015-06-01 James Greenhalgh <james.greenhalgh@arm.com>
21595
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.
21606
21607 2015-06-01 Dominik Vogt <vogt@linux.vnet.ibm.com>
21608
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
21613 and -march=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
21618 PROCESSOR_NATIVE
21619
21620 2015-06-01 Ilya Enkovich <ilya.enkovich@intel.com>
21621
21622 PR target/65527
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.
21631
21632 2015-06-01 Richard Biener <rguenther@suse.de>
21633
21634 PR tree-optimization/66280
21635 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
21636 def-use walking.
21637
21638 2015-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21639
21640 * config/aarch64/aarch64.md
21641 (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
21642 logic_shift_imm.
21643
21644 2015-06-01 Eric Botcazou <ebotcazou@adacore.com>
21645
21646 * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
21647 Remove obsolete kludge.
21648
21649 2015-06-01 Richard Biener <rguenther@suse.de>
21650
21651 * tree-ssa-reassoc.c (get_rank): Simplify.
21652
21653 2015-05-31 H.J. Lu <hongjiu.lu@intel.com>
21654
21655 * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
21656 * configure: Regenerated.
21657
21658 2015-05-31 Mikhail Maltsev <maltsevm@gmail.com>
21659
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.
21663
21664 2015-05-30 Andreas Schwab <schwab@linux-m68k.org>
21665
21666 * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
21667 implict or explicit -fPIE or -fpie.
21668
21669 2015-05-30 Mike Frysinger <vapier@gentoo.org>
21670
21671 * gcc/config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
21672
21673 2015-05-28 DJ Delorie <dj@redhat.com>
21674
21675 * expmed.c (extract_bit_field_1): Avoid clobbering a
21676 yet-to-be-used base/index register.
21677
21678 2015-05-30 Jan Hubicka <hubicka@ucw.cz>
21679
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
21683 children.
21684 (alias_sets_conflict_p): Special case pointers; be ready for NULL
21685 children.
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.
21691
21692 2015-05-30 Alan Modra <amodra@gmail.com>
21693
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.
21697
21698 2015-05-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
21699
21700 PR target/66215
21701 * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
21702 with -mhotpatch=.
21703
21704 2015-05-29 Jakub Jelinek <jakub@redhat.com>
21705
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.
21709
21710 2015-05-29 Richard Biener <rguenther@suse.de>
21711
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.
21717
21718 2015-05-29 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
21719
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
21723 introduction.
21724 (dg-keep-saved-temps): Document new proc.
21725 (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
21726 cleanup-saved-temps): Remove.
21727
21728 2015-05-28 Andreas Tobler <andreast@gcc.gnu.org>
21729
21730 * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
21731 gcc_AC_CHECK_DECLS.
21732 * configure: Regenerate.
21733
21734 2015-05-28 Mike Frysinger <vapier@gentoo.org>
21735
21736 * config/nios2/linux.h (CPP_SPEC): Define.
21737
21738 2015-05-28 Mike Frysinger <vapier@gentoo.org>
21739
21740 * config/microblaze/linux.h (CPP_SPEC): Define.
21741
21742 2015-05-28 Mike Frysinger <vapier@gentoo.org>
21743
21744 * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
21745 -pthread is specified.
21746
21747 2015-05-28 Richard Biener <rguenther@suse.de>
21748
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
21754 with patterns.
21755 (vectorizable_reduction): Likewise.
21756 * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
21757 reduction chains.
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.
21763
21764 2015-05-28 Richard Biener <rguenther@suse.de>
21765
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
21769 we discover here.
21770
21771 2015-05-28 Lawrence Velázquez <vq@larryv.me>
21772
21773 PR target/63810
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.
21779
21780 2015-05-28 H.J. Lu <hongjiu.lu@intel.com>
21781
21782 * builtins.c (expand_builtin_acc_on_device): Mark parameters
21783 with ATTRIBUTE_UNUSED.
21784
21785 2015-05-28 Julian Brown <julian@codesourcery.com>
21786
21787 PR libgomp/65742
21788
21789 * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
21790 sequence for !ACCEL_COMPILER.
21791
21792 2015-05-28 Nick Clifton <nickc@redhat.com>
21793
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
21799 registers.
21800
21801 2015-05-28 Richard Biener <rguenther@suse.de>
21802
21803 * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
21804 member.
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.
21821
21822 2015-05-27 Magnus Granberg <zorry@gentoo.org>
21823 H.J. Lu <hongjiu.lu@intel.com>
21824
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.
21833 (fpie): Likewise.
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.
21911
21912 2015-05-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
21913
21914 PR rtl-optimization/66168
21915 * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
21916 can_move_invariant_reg.
21917
21918 2015-05-27 John David Anglin <danglin@gcc.gnu.org>
21919
21920 PR target/66148
21921 * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
21922 REG_EQUAL note when doing insert.
21923
21924 * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
21925 instead of "%d" for 'o' operand.
21926
21927 2015-05-27 Nathan Sidwell <nathan@acm.org>
21928
21929 PR c++/66270
21930 * tree.c (build_pointer_type_for_mode): Canonical type does not
21931 inherit can_alias_all.
21932 (build_reference_type_for_mode): Likewise.
21933
21934 2015-05-27 Eric Botcazou <ebotcazou@adacore.com>
21935
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.
21952
21953 2015-05-27 Gregor Richards <gregor.richards@uwaterloo.ca>
21954 Szabolcs Nagy <szabolcs.nagy@arm.com>
21955
21956 * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
21957
21958 2015-05-27 Jason Merrill <jason@redhat.com>
21959
21960 PR bootstrap/66304
21961 * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
21962 ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
21963 ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
21964
21965 2015-05-22 Aditya Kumar <hiraditya@msn.com>
21966
21967 * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
21968 is true.
21969
21970 * statistics.c (statistics_fini_pass): Print pass name.
21971
21972 2015-05-27 Richard Biener <rguenther@suse.de>
21973
21974 PR tree-optimization/66272
21975 Revert parts of
21976 2014-08-15 Richard Biener <rguenther@suse.de>
21977
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.
21986
21987 2015-05-27 Aldy Hernandez <aldyh@redhat.com>
21988
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.
21996
21997 2015-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21998
21999 PR target/65358
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.
22006 Add bool argument.
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.
22012
22013 2015-05-27 Gregor Richards <gregor.richards@uwaterloo.ca>
22014
22015 * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
22016
22017 2015-05-27 Martin Liska <mliska@suse.cz>
22018
22019 * Makefile.in: Add additional dependencies related to memory report
22020 enhancement.
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
22064 file.
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
22074 and hash_set.
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.
22090
22091 2015-05-27 Richard Biener <rguenther@suse.de>
22092
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.
22103
22104 2015-05-26 Jeff Law <law@redhat.com>
22105
22106 * combine.c (find_split_point): Verify that the shift count is a
22107 constant when choosing (plus (ashift ...)) as a split point.
22108
22109 * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
22110 No functional changes.
22111
22112 2015-05-26 Jan Hubicka <hubicka@ucw.cz>
22113
22114 * ipa-polymorphic-call.c
22115 (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
22116 case when call target is already known.
22117
22118 2015-05-26 Oleg Endo <olegendo@gcc.gnu.org>
22119
22120 PR target/65979
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.
22124
22125 2015-05-26 Michael Matz <matz@suse.de>
22126
22127 PR middle-end/66251
22128
22129 * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
22130 stores.
22131 (vect_create_vectorized_demotion_stmts): Always set
22132 STMT_VINFO_VEC_STMT, also with SLP.
22133 (vectorizable_store): Handle strided group stores.
22134
22135 2015-05-26 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
22136
22137 PR target/66049
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.
22147
22148 2015-05-26 David Edelsohn <dje.gcc@gmail.com>
22149
22150 * config/rs6000/constraints.md (Y, U): Use match_test.
22151
22152 2015-05-26 Christian Bruel <christian.bruel@st.com>
22153
22154 PR target/52144
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.
22170
22171 2015-05-26 Christian Bruel <christian.bruel@st.com>
22172
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.
22182
22183 2015-05-26 Richard Biener <rguenther@suse.de>
22184
22185 PR tree-optimization/66142
22186 * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
22187 MEM_REFs for the same base address.
22188
22189 2015-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22190
22191 PR ipa/66181
22192 * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
22193
22194 2015-05-26 Jason Merrill <jason@redhat.com>
22195
22196 * configure.ac: Set CXXFLAGS for ISL test.
22197 * configure: Regenerate.
22198
22199 * configure.ac: Use C++ for all tests. Use AC_CHECK_DECLS for
22200 strstr and basename.
22201 * configure: Regenerate.
22202
22203 2015-05-26 Richard Biener <rguenther@suse.de>
22204
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.
22208
22209 2015-05-26 Marc Glisse <marc.glisse@inria.fr>
22210
22211 * match.pd (swapped_tcc_comparison): New operator list.
22212 (-A CMP -B): New simplification.
22213 * fold-const.c (fold_comparison): Remove corresponding code.
22214
22215 2015-05-26 Richard Sandiford <richard.sandiford@arm.com>
22216
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.
22225
22226 2015-05-26 Richard Sandiford <richard.sandiford@arm.com>
22227
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.
22235
22236 2015-05-26 Torvald Riegel <triegel@redhat.com>
22237
22238 * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
22239 'memory model' to align with C++11; fix description of memory orders;
22240 fix a few typos.
22241
22242 2015-05-26 Richard Biener <rguenther@suse.de>
22243
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.
22257
22258 2015-05-25 Alexander Monakov <amonakov@ispras.ru>
22259
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.
22264
22265 2015-05-25 Uros Bizjak <ubizjak@gmail.com>
22266
22267 PR target/66274
22268 * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
22269 when LEGACY_INT_REGNO_P is processed.
22270
22271 2015-05-25 Alexander Monakov <amonakov@ispras.ru>
22272
22273 * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
22274
22275 2015-05-25 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
22276
22277 * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
22278 register if not marked dead/unused, before return.
22279
22280 2015-05-24 Jan Hubicka <hubicka@ucw.cz>
22281
22282 PR lto/66180
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
22290 assembler name.
22291
22292 2015-05-24 Jan Hubicka <hubicka@ucw.cz>
22293
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.
22305
22306 2015-05-24 Jan Hubicka <hubicka@ucw.cz>
22307
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.
22312
22313 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22314
22315 * defaults.h (gen_tablejump): New function.
22316 (HAVE_tablejump): Add default value.
22317 * expr.c: Adjust.
22318 * stmt.c: Likewise.
22319
22320 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22321
22322 * defaults.h (gen_store_multiple): New function.
22323 (HAVE_store_multiple): Add default value.
22324 * expr.c (move_block_from_reg): Adjust.
22325
22326 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22327
22328 * defaults.h (gen_load_multiple): New function.
22329 (HAVE_load_multiple): Add default value.
22330 * expr.c (move_block_to_reg): Adjust.
22331
22332 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22333
22334 * defaults.h (gen_mem_signal_fence): New function.
22335 (HAVE_mem_signal_fence): Add default value.
22336 * optabs.c: Adjust.
22337
22338 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22339
22340 * defaults.h (gen_memory_barrier): New function.
22341 (HAVE_memory_barrier): Add default value.
22342 * optabs.c: Adjust.
22343
22344 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22345
22346 * defaults.h (gen_mem_thread_fence): New function.
22347 (HAVE_mem_thread_fence): Add default definition.
22348 * optabs.c: Adjust.
22349
22350 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22351
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.
22358
22359 2015-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
22360
22361 * genmatch.c (parser::parse_operation): Reject expanding
22362 operator-list inside 'for'.
22363
22364 2015-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
22365
22366 * genmatch.c (parser::parse_for): Reject iterator if used as
22367 operator-list.
22368
22369 2015-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
22370
22371 * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
22372 after end of id-list.
22373
22374 2015-05-22 Jan Hubicka <hubicka@ucw.cz>
22375
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
22378 alias set.
22379 (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
22380 FUNCITON_TYPE.
22381 * tree.h (type_with_alias_set_p): New.
22382
22383 2015-05-22 Jan Hubicka <hubicka@ucw.cz>
22384
22385 * tree.c (gimple_canonical_types_compatible_p): Do not compare
22386 function attributes.
22387 (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
22388
22389 2015-05-22 Jim Wilson <jim.wilson@linaro.org>
22390
22391 * Makefile.in (check_gcc_parallelize): Delete.
22392 (lang_checks_parallelized): Update comment.
22393
22394 2015-05-22 Mikhail Maltsev <maltsevm@gmail.com>
22395
22396 PR rtl-optimization/66237
22397 * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
22398 location of an "as_a" cast.
22399
22400 2015-05-22 Jeff Law <law@redhat.com>
22401
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.
22406
22407 2015-05-22 Marc Glisse <marc.glisse@inria.fr>
22408
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.
22415
22416 2015-05-22 Marc Glisse <marc.glisse@inria.fr>
22417
22418 * convert.c (convert_to_integer, convert_to_vector): Include the
22419 types in the error message.
22420
22421 2015-05-22 Marc Glisse <marc.glisse@inria.fr>
22422
22423 * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
22424 simplifications.
22425
22426 2015-05-22 Jeff Law <law@redhat.com>
22427
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.
22431
22432 * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
22433 (plus (ashift X log2) Y) if it is a split point.
22434
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
22437 by 2, 4 or 8.
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
22441 readability.
22442
22443 2015-05-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22444
22445 PR target/65491
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.
22450
22451 2015-05-22 Richard Biener <rguenther@suse.de>
22452
22453 * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
22454 member.
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.
22468
22469 2015-05-22 Aldy Hernandez <aldyh@redhat.com>
22470
22471 * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
22472 for CSWTCH temporary.
22473
22474 2015-05-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22475
22476 * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
22477 (arm_unspec_cost): Allow UNSPEC_VOLATILE. Do not recurse inside
22478 unknown unspecs.
22479
22480 2015-05-22 Richard Biener <rguenther@suse.de>
22481
22482 PR tree-optimization/66251
22483 * tree-vect-stmts.c (vectorizable_conversion): Properly
22484 set STMT_VINFO_VEC_STMT even for the SLP case.
22485
22486 2015-05-22 Marek Polacek <polacek@redhat.com>
22487
22488 * doc/extend.texi: Use @pxref instead of @xref.
22489
22490 2015-05-22 hiraditya <hiraditya@msn.com>
22491
22492 * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
22493 redundant if.
22494
22495 2015-05-22 Richard Biener <rguenther@suse.de>
22496
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
22501 an unaligned load.
22502
22503 2015-05-22 Marek Polacek <polacek@redhat.com>
22504
22505 PR c/47043
22506 * doc/extend.texi (Enumerator Attributes): New section.
22507 Document syntax of enumerator attributes.
22508
22509 2015-05-22 Richard Biener <rguenther@suse.de>
22510
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.
22522
22523 2015-05-22 Richard Biener <rguenther@suse.de>
22524
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.
22529
22530 2015-05-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22531
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.
22549
22550 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22551
22552 * final.c (final_scan_insn): Don't check HAVE_peephole with the
22553 preprocessor.
22554 * output.h: Likewise.
22555 * genconfig.c (main): Alwways define HAVE_peephole.
22556 * genpeep.c: Don't emit checks of HAVE_peephole.
22557
22558 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22559
22560 * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
22561 check HAVE_conditional_move with the preprocessor.
22562
22563 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22564
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
22568 is defined.
22569
22570 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22571
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.
22575
22576 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22577
22578 * defaults.h: Add default for STACK_PUSH_CODE.
22579 * expr.c: Don't redefine STACK_PUSH_CODE.
22580 * recog.c: Likewise.
22581
22582 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22583
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.
22587
22588 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22589
22590 * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
22591 is defined.
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.
22596
22597 2015-05-21 H.J. Lu <hongjiu.lu@intel.com>
22598
22599 PR target/66232
22600 * config/i386/constraints.md (Bg): New constraint for GOT memory
22601 operand.
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.
22605
22606 2015-05-21 Jakub Jelinek <jakub@redhat.com>
22607
22608 PR tree-optimization/66233
22609 * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
22610 Simplify.
22611
22612 2015-05-21 Jeff Law <law@redhat.com>
22613
22614 * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
22615 than MULT for shadd sequences.
22616
22617 2015-05-08 Jan Hubicka <hubicka@ucw.cz>
22618
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.
22624
22625 2015-05-08 Michael Matz <matz@suse.de>
22626
22627 * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
22628 to strided_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.
22641
22642 2015-05-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22643
22644 * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
22645 Document sqrt_insn.
22646
22647 2015-05-21 Richard Biener <rguenther@suse.de>
22648
22649 PR c++/66211
22650 * match.pd: Guard pattern optimzing (int)(float)int
22651 conversions to apply only on GIMPLE.
22652
22653 2015-05-21 Jeff Law <law@redhat.com>
22654
22655 * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
22656 multiply-accumulate/shift-add insn generation.
22657
22658 2015-05-21 Oleg Endo <olegendo@gcc.gnu.org>
22659
22660 PR target/54236
22661 * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
22662 operands[1] are the same.
22663
22664 2015-05-21 Ilya Enkovich <enkovich.gnu@gmail.com>
22665
22666 PR middle-end/66221
22667 * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
22668 build_distinct_type_copy to copy bounds.
22669
22670 2015-05-21 Thomas Schwinge <thomas@codesourcery.com>
22671
22672 * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
22673 Change to unsigned int.
22674
22675 2015-05-20 Jeff Law <law@redhat.com>
22676
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.
22685
22686 2015-05-20 Mikhail Maltsev <maltsevm@gmail.com>
22687
22688 * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
22689 feasible.
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
22709 when suitable.
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
22716 rtx_jump_insn.
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
22720 rtx_code_label.
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
22732 returns rtx_insn).
22733 * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
22734 rtx_jump_insn.
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
22745 gen_move_insn.
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
22770 by gen_move_insn.
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
22774 gen_move_insn.
22775 * optabs.c (expand_binop_directly): Remove casts of values returned by
22776 maybe_gen_insn.
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
22783 redundant cast.
22784 * recog.c (struct peep2_insn_data): Promote type of insn field to
22785 rtx_insn.
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.
22823
22824 2015-05-20 Max Filippov <jcmvbkbc@gmail.com>
22825
22826 * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
22827 by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
22828
22829 2015-05-20 Jeff Law <law@redhat.com>
22830
22831 * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
22832 dispose of the jump thread path when the jump threading
22833 opportunity is cancelled.
22834
22835 2015-05-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
22836
22837 * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
22838 when printing the caret character.
22839
22840 2015-05-20 Marek Polacek <polacek@redhat.com>
22841
22842 * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
22843
22844 2015-05-20 Marek Polacek <polacek@redhat.com>
22845
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.
22851
22852 2015-05-20 Marek Polacek <polacek@redhat.com>
22853
22854 * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
22855 * gimplify.c (gimplify_modify_expr_rhs): Likewise.
22856
22857 2015-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22858
22859 * config/aarch64/aarch64.c (aarch64_class_max_nregs):
22860 Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
22861 values.
22862
22863 2015-05-20 Robert Suchanek <robert.suchanek@imgtec.com>
22864
22865 * config/mips/mips.h (micromips_globals): Declare.
22866
22867 2015-05-20 David Malcolm <dmalcolm@redhat.com>
22868
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.
22872
22873 2015-05-20 Ilya Enkovich <enkovich.gnu@gmail.com>
22874
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.
22884
22885 2015-05-20 Bin Cheng <bin.cheng@arm.com>
22886
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
22891 dump_use.
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
22901 for sub uses.
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.
22906
22907 2015-05-20 Kugan Vivekanandarajah <kuganv@linaro.org>
22908 Jim Wilson <jim.wilson@linaro.org>
22909
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
22919 rtx_costs.
22920
22921 2015-05-20 Kugan Vivekanandarajah <kuganv@linaro.org>
22922
22923 * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
22924 storev.
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.
22931
22932 2015-05-20 Jeff Law <law@redhat.com>
22933
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.
22937
22938 2015-05-20 Alan Modra <amodra@gmail.com>
22939
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.
22945
22946 2015-05-20 Alan Modra <amodra@gmail.com>
22947
22948 * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
22949 Define.
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.
22972
22973 2015-05-20 Alan Modra <amodra@gmail.com>
22974
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.
22979
22980 2015-05-20 Alan Modra <amodra@gmail.com>
22981
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,
22985 as before.
22986 (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
22987 expression.
22988
22989 2015-05-19 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22990
22991 PR c++/65835
22992 * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
22993 value_type to const char *.
22994
22995 2015-05-19 Sandra Loosemore <sandra@codesourcery.com>
22996
22997 * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
22998 to build a biarch toolchain again.
22999
23000 2015-05-19 Jan Hubicka <hubicka@ucw.cz>
23001
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
23005 into it.
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
23014 type has linkage.
23015
23016 2015-05-19 Eric Botcazou <ebotcazou@adacore.com>
23017
23018 * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
23019 (layout_type): Use RECORD_OR_UNION_TYPE_P.
23020
23021 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23022
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.
23026
23027 2015-05-19 David Sherwood <david.sherwood@arm.com>
23028
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.
23032
23033 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23034
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
23045 prototypes.
23046 * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
23047 Include.
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
23062 efpc builtins.
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
23075 support.
23076
23077 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23078
23079 * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
23080 CCVFHE.
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.
23099
23100 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23101
23102 * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
23103 constraints.
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
23145 possible.
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
23150 targets.
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
23172 memory.
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.
23179 Include vector.md.
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.
23198
23199 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23200
23201 * common/config/s390/s390-common.c (processor_flags_table): Add
23202 z13.
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.
23216 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.
23223
23224 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23225
23226 * config/s390/predicates.md (shift_count_or_setmem_operand): Add
23227 mode check to make sure that only scalar integer values are
23228 accepted.
23229
23230 2015-05-19 Jan Hubicka <hubicka@ucw.cz>
23231
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.
23236
23237 2015-05-19 Jakub Jelinek <jakub@redhat.com>
23238
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
23248 GOVD_FIRSTPRIVATE.
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.
23264
23265 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
23266
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):
23271 Likewise.
23272 * config/sparc/sparc.md: Likewise.
23273
23274 2015-05-19 Uros Bizjak <ubizjak@gmail.com>
23275
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.
23288
23289 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23290
23291 * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
23292
23293 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23294
23295 * config/s390/s390.c (s390_secondary_reload): Fix check for
23296 load/store relative.
23297
23298 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23299
23300 * recog.h: Increase MAX_RECOG_ALTERNATIVES. Change type of
23301 alternative_mask to uint64_t.
23302
23303 2015-05-19 Jakub Jelinek <jakub@redhat.com>
23304
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.
23309
23310 2015-05-19 David Malcolm <dmalcolm@redhat.com>
23311
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
23330 loc_map_pair.
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 *.
23335
23336 2015-05-19 Nick Clifton <nickc@redhat.com>
23337
23338 PR target/66156
23339 * config/msp430/msp430.md (zero_extendhisi2): Add support for
23340 separate source and destination registers.
23341
23342 2015-05-19 Richard Biener <rguenther@suse.de>
23343
23344 PR tree-optimization/66165
23345 * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
23346 for no load permutation.
23347
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.
23351
23352 2015-05-19 Eric Botcazou <ebotcazou@adacore.com>
23353 Tristan Gingold <gingold@adacore.com>
23354
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.
23370
23371 2015-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23372
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.
23377
23378 2015-05-19 Oleg Endo <olegendo@gcc.gnu.org>
23379
23380 PR target/54236
23381 * config/sh/sh.md (*round_int_even): New insn_and_split and
23382 accompanying new unnamed split.
23383
23384 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
23385
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.
23394
23395 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
23396
23397 * regs.h (END_HARD_REGNO): Delete.
23398 (END_REGNO): Move to...
23399 * rtl.h: ...here.
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.
23411
23412 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
23413
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
23421 SET_REGNO_RAW.
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.
23425
23426 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
23427
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.
23442
23443 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
23444
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.
23450
23451 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
23452
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
23463 that include 'r'.
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
23468 gen_rtx_raw_REG.
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
23473 handling REGs.
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.
23490
23491 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
23492
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 ",".
23501
23502 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
23503
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.
23536
23537 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
23538
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.
23548
23549 2015-05-19 Alan Modra <amodra@gmail.com>
23550
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
23554 unused predicates.
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.
23559
23560 2015-05-19 Sameera Deshpande <Sameera.Deshpande@imgtec.com>
23561
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.
23572
23573 2015-05-19 Mikhail Maltsev <maltsevm@gmail.com>
23574
23575 * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
23576 explicit swaps.
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.
23593 (bswap): 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.
23621
23622 2015-05-18 Andreas Tobler <andreast@gcc.gnu.org>
23623
23624 * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
23625 pie executables.
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.
23630
23631 2015-05-18 Uros Bizjak <ubizjak@gmail.com>
23632 Richard Henderson <rth@redhat.com>
23633
23634 PR target/57032
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.
23639
23640 2015-05-18 Alex Velenko <Alex.Velenko@arm.com>
23641
23642 * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
23643 (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
23644
23645 2015-05-18 Robert Suchanek <robert.suchanek@imgtec.com>
23646
23647 * config/mips/mips.c (micromips_globals): New variable.
23648 (mips_set_compression_mode): Save and reinitialize target-dependent
23649 state for microMIPS.
23650
23651 2015-05-18 Martin Liska <mliska@suse.cz>
23652
23653 * dbgcnt.def: Add new counter.
23654 * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
23655
23656 2015-05-18 Martin Liska <mliska@suse.cz>
23657
23658 * dbgcnt.def: Sort counters.
23659 * opts.c (common_handle_option): Do not compile if
23660 -fdbg-cnt-list is enabled.
23661
23662 2015-05-18 Tom de Vries <tom@codesourcery.com>
23663
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
23668 unconditionally.
23669 * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
23670 operand.
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.
23674
23675 2015-05-18 Tom de Vries <tom@codesourcery.com>
23676
23677 * tree-ssa-tail-merge.c: Fix whitespace.
23678
23679 2015-05-17 Jim Wilson <jim.wilson@linaro.org>
23680
23681 * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
23682 cortex-a17, and cortex-a17.cortex-a7.
23683
23684 2015-05-17 Oleg Endo <olegendo@gcc.gnu.org>
23685
23686 PR target/54236
23687 * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
23688
23689 2015-05-17 Uros Bizjak <ubizjak@gmail.com>
23690
23691 PR target/66174
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.
23695
23696 2015-05-16 Jan Hubicka <hubicka@ucw.cz>
23697
23698 * toplev.c (emit_debug_global_declarations): Do not output debug info
23699 when doing slim LTO objects.
23700
23701 2015-05-16 Jan Hubicka <hubicka@ucw.cz>
23702
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
23718
23719 2015-05-16 Jan Hubicka <hubicka@ucw.cz>
23720
23721 * tree.c (verify_type_variant): Verify tree_base and type_common flags.
23722 (verify_type): Verify STRING_FLAG.
23723
23724 2015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
23725
23726 PR fortran/44054
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.
23755
23756 2015-05-16 Kugan Vivekanandarajah <kuganv@linaro.org>
23757 Zhenqiang Chen <zhenqiang.chen@linaro.org>
23758
23759 PR target/65768
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.
23763
23764 2015-05-16 Uros Bizjak <ubizjak@gmail.com>
23765
23766 PR target/66140
23767 * config/alpha/alpha.c (get_aligned_mem): Also look for reload
23768 replacements in memory addresses.
23769 (get_unaligned_address): Ditto.
23770
23771 2015-05-16 James Bowman <james.bowman@ftdichip.com>
23772
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.
23778
23779 2015-05-15 Marc Glisse <marc.glisse@inria.fr>
23780
23781 PR tree-optimization/64454
23782 * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
23783 (-1 - A -> ~A): Remove unnecessary condition.
23784
23785 2015-05-15 Gregor Richards <gregor.richards@uwaterloo.ca>
23786
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.
23790
23791 2015-05-15 Ilya Enkovich <ilya.enkovich@intel.com>
23792
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.
23800
23801 2015-05-15 Ilya Enkovich <enkovich.gnu@gmail.com>
23802
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.
23806
23807 2015-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23808
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.
23813
23814 2015-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23815
23816 * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
23817 casting.
23818
23819 2015-05-15 Uros Bizjak <ubizjak@gmail.com>
23820
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.
23829
23830 2015-05-15 Uros Bizjak <ubizjak@gmail.com>
23831
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.
23837
23838 2015-05-14 Rohit Arul Raj <rohitrulraj@freescale.com>
23839
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.
23844
23845 2015-05-14 Vladimir Makarov <vmakarov@redhat.com>
23846
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
23850 value of the hook.
23851 * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
23852 * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
23853 hook.
23854 * ira-costs.c (find_costs_and_classes): Call the hook and change
23855 classes when it is necessary.
23856 * doc/tm.texi: Update.
23857
23858 2015-05-14 Alexander Monakov <amonakov@ispras.ru>
23859
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.
23866
23867 2015-05-14 Marc Glisse <marc.glisse@inria.fr>
23868
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.
23872
23873 2015-05-14 Wilco Dijkstra <wdijkstr@arm.com>
23874
23875 * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
23876 (csneg3<mode>_insn): Enable expansion of pattern.
23877
23878 2015-05-14 Nick Clifton <nickc@redhat.com>
23879
23880 * config/rl78/rl78.c (rl78_select_section): Select the correct
23881 default section based upon the category of the decl.
23882
23883 2015-05-13 Segher Boessenkool <segher@kernel.crashing.org>
23884
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.
23888
23889 2015-05-13 Uros Bizjak <ubizjak@gmail.com>
23890
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.
23897
23898 2015-05-13 Jakub Jelinek <jakub@redhat.com>
23899
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
23903 return.
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.
23909
23910 2015-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23911
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.
23923
23924 2015-05-13 Uros Bizjak <ubizjak@gmail.com>
23925
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]
23935 for CONST_DOUBLE.
23936
23937 2015-05-13 Richard Biener <rguenther@suse.de>
23938
23939 PR tree-optimization/66129
23940 * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
23941 commutative.
23942 (vect_schedule_slp_instance): Fix typo.
23943
23944 2015-05-13 David Malcolm <dmalcolm@redhat.com>
23945
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.
23956
23957 2015-05-13 Eric Botcazou <ebotcazou@adacore.com>
23958
23959 * gimple-expr.h (is_gimple_constant): Reorder.
23960 * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
23961
23962 2015-05-13 Segher Boessenkool <segher@kernel.crashing.org>
23963
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.
23967
23968 2015-05-13 Richard Biener <rguenther@suse.de>
23969
23970 PR tree-optimization/66123
23971 * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
23972 a taken edge.
23973
23974 2015-05-13 Richard Biener <rguenther@suse.de>
23975
23976 PR middle-end/66110
23977 * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
23978 specially.
23979 * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
23980
23981 2015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
23982
23983 * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
23984 * aclocal.m4: Regenerated with automake-1.11.6.
23985
23986 2015-05-13 Tom de Vries <tom@codesourcery.com>
23987
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.
23993
23994 2015-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
23995
23996 PR target/65103
23997 * config/i386/i386.c (ix86_rtx_costs): We want to propagate
23998 link time constants into adress expressions and therefore set
23999 their cost to 0.
24000
24001 2015-05-13 Jakub Jelinek <jakub@redhat.com>
24002
24003 PR target/66112
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.
24010
24011 PR target/66112
24012 * internal-fn.c (get_min_precision): Use UNSIGNED instead of
24013 SIGNED to get precision of non-negative value.
24014
24015 2015-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
24016
24017 PR target/66048
24018 * function.c (diddle_return_value_1): Process bounds first.
24019 * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
24020 register.
24021
24022 2015-05-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
24023
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
24028 register.
24029
24030 2015-05-12 Jan Hubicka <hubicka@ucw.cz>
24031
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.
24040
24041 2015-05-12 Jan Hubicka <hubicka@ucw.cz>
24042
24043 PR ipa/65873
24044 * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
24045 inlines across optimization boundary.
24046
24047 2015-05-12 Jason Merrill <jason@redhat.com>
24048
24049 * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
24050 string literal and macro name.
24051
24052 2015-05-12 Steve Ellcey <sellcey@imgtec.com>
24053
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.
24057
24058 2015-05-12 David Malcolm <dmalcolm@redhat.com>
24059
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.
24063
24064 2015-05-12 Uros Bizjak <ubizjak@gmail.com>
24065
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.
24077 (anddi3): Ditto.
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
24082 const_wide_int.
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.
24089
24090 2015-05-12 Andrew MacLeod <amacleod@redhat.com>
24091
24092 PR target/65697
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
24116 accessors.
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):
24127 Likewise.
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
24130 use new accessors.
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
24143 accessors.
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
24146 model, not 8.
24147
24148 2015-05-12 Jan Hubicka <hubicka@ucw.cz>
24149
24150 * ipa-devirt.c (type_with_linkage_p): New function.
24151 (type_in_anonymous_namespace_p): Move here from tree.c; assert that
24152 type has linkage.
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
24156 anonymous.
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
24165 without linkages.
24166 (type_in_anonymous_namespace_p): Move to ipa-devirt.c
24167
24168 2015-05-12 David Malcolm <dmalcolm@redhat.com>
24169
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.
24214
24215 2015-05-12 Richard Earnshaw <rearnsha@arm.com>
24216
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
24230 format.
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.
24234
24235 2015-05-12 Sandra Loosemore <sandra@codesourcery.com>
24236
24237 * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
24238 "break".
24239
24240 2015-05-12 Chung-Lin Tang <cltang@codesourcery.com>
24241 Sandra Loosemore <sandra@codesourcery.com>
24242
24243 * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
24244 value.
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.
24251
24252 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
24253
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):
24260 New.
24261
24262 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
24263
24264 * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
24265 gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
24266
24267 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
24268
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.
24286
24287 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
24288
24289 * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
24290 zero_extract.
24291
24292 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
24293
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
24299 pattern.
24300
24301 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
24302
24303 * combine.c (get_undo_marker): New function.
24304 (undo_to_marker): New function, largely factored out from ...
24305 (undo_all): ... this. Adjust.
24306
24307 2015-05-12 Richard Biener <rguenther@suse.de>
24308
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.
24312
24313 2015-05-12 Richard Biener <rguenther@suse.de>
24314
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
24321 SLP node.
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.
24326
24327 2015-05-12 Dominik Vogt <vogt@linux.vnet.ibm.com>
24328
24329 * call.c (print_z_candidates): Remove dead code.
24330
24331 2015-05-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24332
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
24336 to 1.
24337
24338 2015-05-12 Tom de Vries <tom@codesourcery.com>
24339
24340 PR tree-optimization/66010
24341 * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
24342 ifn_va_arg.
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
24349 ifn_va_arg.
24350
24351 2015-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24352
24353 PR target/65955
24354 * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
24355 REG before taking its REGNO.
24356
24357 2015-05-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
24358
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.
24364
24365 2015-05-12 Richard Biener <rguenther@suse.de>
24366
24367 * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
24368 do not allow unrolling.
24369
24370 2015-05-11 Richard Henderson <rth@redhat.com>
24371
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.
24375
24376 2015-05-11 Richard Henderson <rth@redhat.com>
24377
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.
24386
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.
24393
24394 * config/vxworks.c: Include vec.h before target.h.
24395 * gimple.c: Likewise.
24396 * incpath.c: Likewise.
24397 * mode-switching.c: Likewise.
24398
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.
24419
24420 2015-05-11 Richard Henderson <rth@redhat.com>
24421
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.
24425
24426 * cfgexpand.c (expand_asm_operands): Merge into...
24427 (expand_asm_stmt): ... here.
24428
24429 * cfgexpand.c (expand_asm_operands): Don't call
24430 resolve_asm_operand_names.
24431 * stmt.c (resolve_asm_operand_names): Clarify block comment.
24432
24433 2015-05-11 Jan Hubicka <hubicka@ucw.cz>
24434
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
24440 if non-null.
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.
24445
24446 2015-05-11 Eric Botcazou <ebotcazou@adacore.com>
24447
24448 * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
24449 (emit_pattern_before_setloc): Likewise.
24450
24451 2015-05-11 Richard Sandiford <richard.sandiford@arm.com>
24452
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.
24457
24458 2015-05-11 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
24459
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)
24463
24464 2015-05-11 Uros Bizjak <ubizjak@gmail.com>
24465
24466 * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
24467 when looking for memory references.
24468
24469 2015-05-11 Alexander Monakov <amonakov@ispras.ru>
24470
24471 PR target/65753
24472 * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
24473 via function pointers.
24474
24475 2015-05-11 Alexander Monakov <amonakov@ispras.ru>
24476
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.
24482
24483 2015-05-11 Markus Trippelsdorf <markus@trippelsdorf.de>
24484
24485 PR bootstrap/66105
24486 * config/rs6000/option-defaults.h: Add space between string literal
24487 and macro name.
24488
24489 2015-05-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
24490
24491 * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
24492 accross ARM targets.
24493
24494 2015-05-11 Christian Bruel <christian.bruel@st.com>
24495
24496 * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
24497 * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
24498
24499 2015-05-11 Richard Sandiford <richard.sandiford@arm.com>
24500
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.
24505
24506 2015-05-11 Christian Bruel <christian.bruel@st.com>
24507
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.
24514
24515 2015-05-11 Christian Bruel <christian.bruel@st.com>
24516
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.
24526
24527 2015-05-11 Uros Bizjak <ubizjak@gmail.com>
24528
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
24535 HOST_WIDE_INT_1U.
24536 * config/alpha/predicates.md (mode_mask_operand): Do not match
24537 const_double RTX.
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.
24543
24544 2015-05-11 Jakub Jelinek <jakub@redhat.com>
24545
24546 PR target/65780
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.
24551
24552 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
24553
24554 * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
24555
24556 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
24557
24558 Patch by Richard Biener
24559 * coverage.c (coverage_obj_init): Delay building of type variant
24560 until the type is finished.
24561
24562 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
24563
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.
24569
24570 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
24571
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
24576
24577 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
24578
24579 * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
24580 * tree.h (is_lang_specific): Constify.
24581
24582 2015-05-09 Marc Glisse <marc.glisse@inria.fr>
24583
24584 PR tree-optimization/64454
24585 * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
24586 Rewrite.
24587
24588 2015-05-08 Jason Merrill <jason@redhat.com>
24589
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.
24607
24608 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24609
24610 * jump.c: Change argument types to rtx_insn *.
24611 * rtl.h: Adjust.
24612
24613 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24614
24615 * lra-constraints.c: Change argument type to rtx_insn *.
24616
24617 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24618
24619 * df-problems.c: Change argument type to rtx_insn *.
24620
24621 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24622
24623 * combine.c: Change argument type to rtx_insn *.
24624
24625 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24626
24627 * rtl.h: Adjust.
24628 * rtlanal.c: Change argument type to rtx_insn *.
24629
24630 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24631
24632 * sched-deps.c: Change argument types to rtx_insn *.
24633 * sched-int.h: Adjust.
24634
24635 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24636
24637 * dwarf2cfi.c: Change argument type to rtx_insn *.
24638
24639 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24640
24641 * ira.c (decrease_live_ranges_number): Changetype of local
24642 variable to rtx_insn *.
24643 * recog.c: Change argument types to rtx_insn *.
24644 * recog.h: Adjust.
24645
24646 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24647
24648 * reorg.c: Change argument types to rtx_insn *.
24649
24650 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24651
24652 * ira-color.c: Change argument types to rtx_insn *.
24653 * lra-eliminations.c: Likewise.
24654 * ira.h: Adjust.
24655
24656 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24657
24658 * gcse.c: Change argument types to rtx_insn *.
24659
24660 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24661
24662 * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
24663
24664 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24665
24666 * emit-rtl.c (emit_debug_insn_before): Change argument type to
24667 rtx_insn *.
24668 * rtl.h: Adjust.
24669
24670 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24671
24672 * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
24673 * rtl.h: Adjust.
24674
24675 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24676
24677 * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
24678 * rtl.h: Adjust.
24679
24680 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24681
24682 * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
24683 * rtl.h: Adjust.
24684
24685 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24686
24687 * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
24688 * rtl.h: Adjust.
24689
24690 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24691
24692 * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
24693 to rtx_insn *.
24694 * rtl.h: Adjust.
24695
24696 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24697
24698 * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
24699 to rtx_insn *.
24700 * rtl.h: Likewise.
24701
24702 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24703
24704 * except.c (can_nonlocal_goto): Change type of argument to
24705 rtx_insn *.
24706 * rtl.h: Adjust.
24707
24708 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24709
24710 * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
24711 * rtl.h: Adjust.
24712
24713 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24714
24715 * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
24716 * cfgrtl.c (can_delete_label_p): Adjust.
24717 * rtl.h: likewise.
24718
24719 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24720
24721 * reorg.c (stop_search_p): Change argument to rtx_insn *.
24722
24723 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24724
24725 * except.c (make_reg_eh_region_note): Change argument to
24726 rtx_insn *.
24727 (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
24728 * except.h: Adjust.
24729
24730 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24731
24732 * mode-switching.c (commit_mode_sets): Change type of local
24733 variable from rtx to rtx_insn *.
24734
24735 2015-05-08 Jim Wilson <jim.wilson@linaro.org>
24736
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.
24742
24743 2015-05-08 Gregor Richards <gregor.richards@uwaterloo.ca>
24744 Szabolcs Nagy <szabolcs.nagy@arm.com>
24745
24746 * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
24747 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
24748 (GNU_USER_DYNAMIC_LINKERN32): Update.
24749
24750 2015-05-08 Richard Biener <rguenther@suse.de>
24751
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.
24762
24763 2015-05-08 Segher Boessenkool <segher@kernel.crashing.org>
24764
24765 * config/rs6000/rs6000.md: Require operand inequality in one
24766 of the peepholes.
24767
24768 2015-05-08 Richard Sandiford <richard.sandiford@arm.com>
24769 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
24770
24771 * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
24772 from (set ...).
24773 * config/rx/rx.md (movdi, movdf): Likewise.
24774 Likewise for define_peephole2s.
24775
24776 2015-05-08 Alan Lawrence <alan.lawrence@arm.com>
24777
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.
24782
24783 2015-05-08 Alan Lawrence <alan.lawrence@arm.com>
24784
24785 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
24786 vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
24787
24788 2015-05-08 Alan Lawrence <alan.lawrence@arm.com>
24789
24790 * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
24791
24792 2015-05-08 Szabolcs Nagy <szabolcs.nagy@arm.com>
24793
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.
24801
24802 2015-05-08 Gregor Richards <gregor.richards@uwaterloo.ca>
24803 Szabolcs Nagy <szabolcs.nagy@arm.com>
24804
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.
24817
24818 2015-05-08 H.J. Lu <hongjiu.lu@intel.com>
24819 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
24820
24821 PR target/48904
24822 * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
24823 * config/i386/knetbsd-gnu64.h: New file.
24824
24825 2015-05-08 Marek Polacek <polacek@redhat.com>
24826
24827 PR c/64918
24828 * doc/invoke.texi: Document -Woverride-init-side-effects.
24829
24830 2015-05-07 Marek Polacek <polacek@redhat.com>
24831
24832 PR c/65179
24833 * doc/invoke.texi: Document -Wshift-negative-value.
24834
24835 2015-05-06 Aditya Kumar <hiraditya@msn.com>
24836
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.
24842
24843 2015-05-07 Richard Sandiford <richard.sandiford@arm.com>
24844
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.
24887
24888 2015-05-07 Segher Boessenkool <segher@kernel.crashing.org>
24889
24890 PR middle-end/192
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.
24895
24896 2015-05-07 Jeff Law <law@redhat.com>
24897
24898 PR target/39726
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.
24903
24904 2015-05-07 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
24905
24906 * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
24907 rtx type.
24908
24909 2015-05-07 Richard Biener <rguenther@suse.de>
24910
24911 PR tree-optimization/66002
24912 * passes.def: Schedule another pass_merge_phi after ifcombine, right
24913 before phiopt.
24914
24915 2015-05-07 Marek Polacek <polacek@redhat.com>
24916 Martin Uecker <uecker@eecs.berkeley.edu>
24917
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.
24922
24923 2015-05-07 Uros Bizjak <ubizjak@gmail.com>
24924
24925 PR target/66015
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.
24930
24931 2015-05-06 Sandra Loosemore <sandra@codesourcery.com>
24932 Chris Jones <chrisj@nvidia.com>
24933 Joshua Conner <jconner@nvidia.com>
24934
24935 * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
24936 linking of crtfastmath.o.
24937 * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
24938
24939 2015-05-06 Segher Boessenkool <segher@kernel.crashing.org>
24940
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
24944 expanders.
24945
24946 2015-05-06 Yvan Roux <yvan.roux@linaro.org>
24947
24948 PR target/64208
24949 * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
24950 alternatives.
24951
24952 2015-05-06 Szabolcs Nagy <szabolcs.nagy@arm.com>
24953
24954 * config/aarch64/geniterators.sh: Use standard BRE in sed.
24955
24956 2015-05-06 Alan Modra <amodra@gmail.com>
24957
24958 PR target/66033
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.
24965
24966 2015-05-06 Christian Bruel <christian.bruel@st.com>
24967
24968 PR target/66015
24969 * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
24970 align_jumps, align_functions into aarch64_override_options_after_change.
24971
24972 2015-05-06 Richard Biener <rguenther@suse.de>
24973
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.
24977
24978 2015-05-06 Nick Clifton <nickc@redhat.com>
24979
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.
24982
24983 2015-05-05 Jason Merrill <jason@redhat.com>
24984
24985 * dwarf2out.c (gen_member_die): Don't emit anything for an
24986 anonymous class constructor.
24987
24988 2015-05-05 David Malcolm <dmalcolm@redhat.com>
24989
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.
25014
25015 2015-05-05 Jack Howarth <howarth.at.gcc@gmail.com>
25016
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.
25022
25023 2015-05-05 Uros Bizjak <ubizjak@gmail.com>
25024
25025 * doc/extend.texi (C Extensions): Update menu for moved Variable
25026 Attributes and Type Attributes sections.
25027
25028 2015-05-05 Uros Bizjak <ubizjak@gmail.com>
25029
25030 PR target/65990
25031 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
25032 if rep_8byte stringop strategy was specified for 32-bit target.
25033
25034 2015-05-05 Ilya Tocar <ilya.tocar@intel.com>
25035
25036 PR target/65915
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.
25040
25041 2015-05-05 Nick Clifton <nickc@redhat.com>
25042
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
25047 either attributes.
25048 (msp430_attribute_table): Add lower, upper and either.
25049 (gen_prefix): New function. Generates a prefix for a section
25050 name.
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):
25062 Define.
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.
25074
25075 2015-05-05 Matthew Wahab <matthew.wahab@arm.com>
25076
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.
25088
25089 2015-05-05 Uros Bizjak <ubizjak@gmail.com>
25090
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.
25095
25096 2015-05-05 Matthew Wahab <matthew.wahab@arm.com>
25097
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.
25103
25104 2015-05-05 Renlin Li <renlin.li@arm.com>
25105
25106 * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
25107
25108 2015-05-05 Yvan Roux <yvan.roux@linaro.org>
25109
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.
25121
25122 2015-05-05 Uros Bizjak <ubizjak@gmail.com>
25123
25124 PR target/65871
25125 * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
25126
25127 2015-05-04 Jan Hubicka <hubicka@ucw.cz>
25128
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.
25132
25133 2015-05-04 Ajit Agarwal <ajitkum@xilinx.com>
25134
25135 * config/microblaze/microblaze.md (cbranchsi4): Added immediate
25136 constraints.
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.
25142
25143 2015-05-04 Ajit Agarwal <ajitkum@xilinx.com>
25144
25145 * config/microblaze/microblaze.md (peephole2): New.
25146
25147 2015-05-04 Jeff Law <law@redhat.com>
25148
25149 Revert:
25150 2015-05-04 Jeff Law <law@redhat.com>
25151
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.
25156
25157 2015-05-04 Kaz Kojima <kkojima@gcc.gnu.org>
25158
25159 PR target/65987
25160 * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
25161 (split_branches): Likewise.
25162
25163 2015-05-04 Sandra Loosemore <sandra@codesourcery.com>
25164
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.
25172
25173 2015-05-04 Jakub Jelinek <jakub@redhat.com>
25174
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.
25179
25180 2015-05-04 Uros Bizjak <ubizjak@gmail.com>
25181
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.
25189
25190 2015-05-04 Jeff Law <law@redhat.com>
25191
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.
25196
25197 2015-05-04 Andreas Tobler <andreast@gcc.gnu.org>
25198
25199 * config/arm/arm.c: Restore bootstrap.
25200
25201 2015-05-04 Uros Bizjak <ubizjak@gmail.com>
25202
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.
25223
25224 2015-05-04 Richard Biener <rguenther@suse.de>
25225
25226 PR tree-optimization/65965
25227 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
25228 store groups at gaps.
25229
25230 2015-05-04 Richard Biener <rguenther@suse.de>
25231
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.
25235
25236 2015-05-04 Jakub Jelinek <jakub@redhat.com>
25237
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.
25241
25242 2015-05-04 Kai Tietz <ktietz@redhat.com>
25243
25244 PR target/65559
25245 * lto-wrapper.c (run_gcc): Open filename
25246 in binary-mode.
25247
25248 2015-05-03 Sandra Loosemore <sandra@codesourcery.com>
25249
25250 * doc/extend.texi (Variable Attributes, Type Attributes): Move
25251 sections up in file, to immediately after the Function Attributes
25252 section.
25253
25254 2015-05-02 Jan Hubicka <hubicka@ucw.cz>
25255
25256 * tree.c (verify_type): Check various uses of TYPE_MINVAL.
25257
25258 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25259
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.
25264
25265 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25266
25267 * function.c (set_return_jump_label): Change type of argument to
25268 rtx_insn *.
25269 * function.h (set_return_jump_label): Adjust.
25270
25271 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25272
25273 * reload.h (struct reg_equivs_t): Change type of init to
25274 rtx_insn *.
25275 * ira.c (fix_reg_equiv_init): Adjust.
25276 * reload1.c (eliminate_regs_1): Likewise.
25277 (init_eliminable_invariants): Likewise.
25278
25279 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25280
25281 * cselib.c (fp_setter_insn): Take a rtx_insn *.
25282 * cselib.h (fp_setter_insn): Adjust.
25283
25284 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25285
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.
25290
25291 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25292
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.
25298
25299 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25300
25301 to rtx_insn *.
25302 * config/i386/i386.c: Change the type of some arguments to
25303 rtx_insn *.
25304 * config/arm/arm.c: Likewise.
25305
25306 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25307
25308 * lra-constraints.c: Change type of some arguments to rtx_insn *.
25309
25310 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25311
25312 * regcprop.c (kill_autoinc_value): Change type of argument to
25313 rtx_insn *.
25314
25315 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25316
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
25320 rtx_insn *.
25321
25322 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25323
25324 * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
25325
25326 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25327
25328 * df-problems.c (df_set_note): Change type of argument to
25329 rtx_insn *.
25330
25331 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25332
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.
25342 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.
25361
25362 2015-05-01 Sandra Loosemore <sandra@codesourcery.com>
25363
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.
25370
25371 2015-05-01 Rasmus Villemoes <rv@rasmusvillemoes.dk>
25372
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))
25377
25378 2015-05-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25379
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.
25383
25384 2015-05-01 Richard Sandiford <richard.sandiford@arm.com>
25385
25386 * genrecog.c (test): Rename to rtx_test. Update rest of file
25387 accordingly.
25388
25389 2015-05-01 Andreas Schwab <schwab@linux-m68k.org>
25390
25391 PR translation/65959
25392 * params.h (DEFPARAM): Rename msgid to nocmsgid.
25393
25394 2015-05-01 Wilco Dijkstra <wdijkstr@arm.com>
25395
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.
25405
25406 2015-05-01 Wilco Dijkstra <wdijkstr@arm.com>
25407
25408 * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
25409 Make Cortex-A53 shift costs more accurate.
25410
25411 2015-05-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25412
25413 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
25414 UNSIGNED_FLOAT.
25415
25416 2015-05-01 Wilco Dijkstra <wdijkstr@arm.com>
25417
25418 * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
25419 Calculate cost of op0 and op1 in PLUS and MINUS cases.
25420
25421 2015-05-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25422
25423 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
25424 Add cost of op0 in the compare-with-fpzero case.
25425
25426 2015-04-30 David Malcolm <dmalcolm@redhat.com>
25427
25428 * builtins.c (fold_builtin_1): Remove spurious second
25429 semicolon.
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.
25434
25435 2015-04-30 Caroline Tice <cmtice@google.com>
25436
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.
25447
25448 2015-04-30 Marek Polacek <polacek@redhat.com>
25449
25450 * varasm.c (handle_cache_entry): Fix logic.
25451
25452 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25453
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
25458 operations.
25459
25460 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25461
25462 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
25463 fabd in ABS case.
25464
25465 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25466
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.
25472
25473 2015-04-30 Renlin Li <renlin.li@arm.com>
25474
25475 * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
25476 * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
25477
25478 2015-04-30 Jan Hubicka <hubicka@ucw.cz>
25479
25480 PR ipa/65873
25481 * ipa-inline.c (can_inline_edge_p): It is safe to inline across
25482 -fstrict-aliasing boundaries.
25483
25484 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25485
25486 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
25487 and [SU]MNEGL patterns.
25488
25489 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25490
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.
25498
25499 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25500
25501 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
25502 rather than arith_shift cost when costing ADD/MINUS of an
25503 extended value.
25504
25505 2015-04-30 Jan Hubicka <hubicka@ucw.cz>
25506
25507 PR lto/65948
25508 * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
25509 to itself.
25510
25511 2015-04-30 Richard Sandiford <richard.sandiford@arm.com>
25512
25513 * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
25514 are for the same position.
25515
25516 2015-04-29 Aditya Kumar <hiraditya@hotmail.com>
25517
25518 * tree-vectorizer.c (set_uid_loop_bbs): New. Factored out of
25519 vectorize_loops.
25520 (vectorize_loops): Use it.
25521
25522 2015-04-29 Jan Hubicka <hubicka@ucw.cz>
25523
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.
25530
25531 2015-04-29 Mikhail Maltsev <maltsevm@gmail.com>
25532
25533 * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
25534 manual swaps.
25535 * expr.c (expand_expr_real_2): Likewise.
25536
25537 2015-04-29 Jan Hubicka <hubicka@ucw.cz>
25538
25539 * tree.c (build_common_builtin_nodes): Do not build
25540 __builtin_alloca_with_align as equivalent of library alloca.
25541
25542 2015-04-29 Jan Hubicka <hubicka@ucw.cz>
25543
25544 * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
25545 * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
25546 bugus variants.
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.
25553
25554 2015-04-29 Steve Ellcey <sellcey@imgtec.com>
25555
25556 * config/mips/mips-cpus.def: (mips4): Change default processor
25557 from PROCESSOR_R8000 to PROCESSOR_R10000.
25558
25559 2015-04-29 Petar Jovanovic <petar.jovanovic@rt-rk.com>
25560
25561 * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
25562 la/jalr instead of jal.
25563
25564 2015-04-29 Uros Bizjak <ubizjak@gmail.com>
25565
25566 PR target/65871
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.
25571
25572 2015-04-29 Thomas Schwinge <thomas@codesourcery.com>
25573
25574 PR libgomp/65099
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
25578 compiler.
25579
25580 2015-04-29 Alan Lawrence <alan.lawrence@arm.com>
25581
25582 PR target/65770
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.
25586
25587 2015-04-29 Thomas Schwinge <thomas@codesourcery.com>
25588
25589 * tree.h (OMP_STANDALONE_CLAUSES): New macro.
25590 * gimplify.c (gimplify_omp_workshare): Use it.
25591
25592 2015-04-29 Richard Sandiford <richard.sandiford@arm.com>
25593
25594 * Makefile.in (build/genrecog.o): Depend on inchash.h.
25595 (build/genrecog$(build_exeext): Depend on build/hash-table.o and
25596 build/inchash.o
25597 * genrecog.c: Rewrite most of the code except for the third page.
25598
25599 2015-04-29 Richard Sandiford <richard.sandiford@arm.com>
25600
25601 * inchash.h, inchash.c: Include bconfig.h for build objects.
25602 * Makefile.in (build/inchash.o): New rule.
25603
25604 2015-04-29 Yvan Roux <yvan.roux@linaro.org>
25605
25606 PR target/65924
25607 * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
25608 number in type attribute expression.
25609
25610 2015-04-29 Richard Sandiford <richard.sandiford@arm.com>
25611
25612 * loop-iv.c (canon_condition): Generalize to all types of integer
25613 constant.
25614
25615 2015-04-29 Bernhard Reuther-Fischer <aldot@gcc.gnu.org>
25616
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
25621 result.
25622
25623 2015-04-29 Alan Lawrence <alan.lawrence@arm.com>
25624
25625 * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
25626
25627 2015-04-29 Tom de Vries <tom@codesourcery.com>
25628
25629 PR tree-optimization/65893
25630 * passes.def (pass_all_optimizations): Move pass_stdarg to after
25631 pass_dce.
25632
25633 2015-04-29 Richard Biener <rguenther@suse.de>
25634
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
25640 vectors.
25641 (vect_transform_slp_perm_load): Likewise.
25642
25643 2015-04-29 Christian Bruel <christian.bruel@st.com>
25644
25645 PR target/64835
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.
25650
25651 2015-04-28 Jeff Law <law@redhat.com>
25652
25653 * tree-ssa-dom.c (record_equality); Fix comment typos.
25654
25655 2015-04-28 Tom de Vries <tom@codesourcery.com>
25656
25657 PR tree-optimization/65887
25658 * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
25659
25660 2015-04-28 Sandra Loosemore <sandra@codesourcery.com>
25661
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
25668 attributes.
25669
25670 2015-04-28 Dominique d'Humieres <dominiq@lps.ens.fr>
25671
25672 PR bootstrap/65910
25673 * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
25674
25675 2015-04-28 Jason Merrill <jason@redhat.com>
25676
25677 PR c++/65734
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.
25681
25682 2015-04-28 Yvan Roux <yvan.roux@linaro.org>
25683
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.
25703
25704 2015-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
25705
25706 PR other/65911
25707 * function.c (pad_to_arg_alignment): Add parentheses.
25708
25709 2015-04-28 Uros Bizjak <ubizjak@gmail.com>
25710
25711 * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
25712 libgcc/config/frv/elf-lib.h.
25713
25714 2015-04-28 Tom de Vries <tom@codesourcery.com>
25715
25716 * tree-call-cdce.c: Fix example in header comment.
25717
25718 2015-04-28 Richard Biener <rguenther@suse.de>
25719
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.
25732
25733 2015-04-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
25734
25735 PR target/63503
25736 * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
25737 aarch64-*-*.
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.
25749
25750 2015-04-28 Richard Sandiford <richard.sandiford@arm.com>
25751
25752 * gensupport.c (std_preds): Add missing codes to address_operand entry.
25753
25754 2015-04-28 Richard Biener <rguenther@suse.de>
25755
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.
25767
25768 2015-04-28 Tom de Vries <tom@codesourcery.com>
25769
25770 PR tree-optimization/65818
25771 * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
25772 evaluated.
25773
25774 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25775
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.
25788
25789 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25790
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.
25805
25806 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25807
25808 * defaults.h (gen_epilogue): New function.
25809 * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
25810 defined.
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.
25817
25818 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25819
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.
25834
25835 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25836
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.
25840
25841 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25842
25843 * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
25844 to false.
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.
25850
25851 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25852
25853 * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
25854 true.
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.
25858
25859 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25860
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):
25873 * Likewise.
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.
25890
25891 2015-04-27 Jeff Law <law@redhat.com>
25892
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
25896 copy.
25897
25898 2015-04-28 Alan Modra <amodra@gmail.com>
25899
25900 PR target/65810
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.
25911
25912 2015-04-27 Yoshinori Sato <ysato@users.sourceforge.jp>
25913
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.
25924
25925 2015-04-27 Caroline Tice <cmtice@google.com>
25926
25927 * final.c (final_scan_insn): Output cold_function_name as function
25928 type.
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.
25933
25934 2015-04-27 Ilya Tocar <ilya.tocar@intel.com>
25935
25936 * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
25937 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
25938 constraint.
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
25947 float_truncate.
25948 (define_peephole2): Check for xmm16+, when converting scalar
25949 float_extend.
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.
25955
25956 2015-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25957
25958 * combine.c (simplify_if_then_else): Use std::swap instead
25959 of manually swapping.
25960 (known_cond): Likewise.
25961 (simplify_comparison): Likewise.
25962
25963 2015-04-27 Peter Bergner <bergner@vnet.ibm.com>
25964
25965 PR target/64579
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
25980 expected value.
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
25990 not TARGET_64BIT.
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
25996 define_expands.
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.
26001
26002 2015-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26003
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.
26011
26012 2015-04-27 Richard Sandiford <richard.sandiford@arm.com>
26013
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.
26018
26019 2015-04-27 Richard Biener <rguenther@suse.de>
26020
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.
26025
26026 2015-04-27 Georg-Johann Lay <avr@gjlay.de>
26027
26028 PR target/65296
26029 PR target/65895
26030 * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
26031 Add hint how to use own spec file.
26032
26033 2015-04-27 Jakub Jelinek <jakub@redhat.com>
26034
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.
26042
26043 2015-04-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
26044
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.
26049
26050 2015-04-27 Eric Botcazou <ebotcazou@adacore.com>
26051
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.
26057
26058 2015-04-27 Eric Botcazou <ebotcazou@adacore.com>
26059
26060 * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
26061
26062 2015-04-27 Richard Sandiford <richard.sandiford@arm.com>
26063
26064 * vec.h (vec): Make splice arguments const. Update definitions
26065 accordingly.
26066
26067 2015-04-27 Yvan Roux <yvan.roux@linaro.org>
26068
26069 * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
26070 alternatives.
26071
26072 2015-04-26 Tom de Vries <tom@codesourcery.com>
26073
26074 PR tree-optimization/65826
26075 * internal-fn.def: Mark VA_ARG with ECF_LEAF.
26076
26077 2015-04-24 Steve Ellcey <sellcey@imgtec.com>
26078
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.
26091
26092 2015-04-24 Jason Merrill <jason@redhat.com>
26093
26094 PR c++/50800
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.
26098
26099 2015-04-24 Chen Gang <gang.chen.5i5j@gmail.com>
26100
26101 * genrecog.c (validate_pattern): Check matching constraint refers
26102 to a lower numbered operand.
26103
26104 2015-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
26105
26106 PR target/65849
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
26110 target support.
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.
26118
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.
26124
26125 2015-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26126
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.
26141
26142 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26143
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,
26159 -mtune and -march.
26160
26161 2015-04-24 Uros Bizjak <ubizjak@gmail.com>
26162 Wei Mi <wmi@google.com>
26163
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.
26169
26170 2015-04-24 Marek Polacek <polacek@redhat.com>
26171
26172 PR c/61534
26173 * input.h (from_macro_expansion_at): Define.
26174
26175 PR c/63357
26176 * doc/invoke.texi: Update description of -Wlogical-op.
26177
26178 2015-04-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
26179
26180 * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
26181 ternary operator in fprintf and harmonize spacing.
26182
26183 2015-04-24 Uros Bizjak <ubizjak@gmail.com>
26184
26185 * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
26186 Mark operand1 commutative.
26187
26188 2015-04-24 Uros Bizjak <ubizjak@gmail.com>
26189
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
26195 register_operand.
26196 (vec_extract_hi_v32hi): Ditto.
26197 (vec_extract_hi_v64hi): Ditto.
26198 (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
26199
26200 2015-04-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
26201 Steven Bosscher <steven@gcc.gnu.org>
26202
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
26206 propagated.
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
26214 propagated.
26215 (implicit_set_cond_p): Likewise.
26216
26217 2015-04-23 Jan Hubicka <hubicka@ucw.cz>
26218
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.
26227
26228 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26229
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
26242 longer needed.
26243 (rs6000_emit_epilogue): Force generation of lvx instruction for
26244 Altivec register restores.
26245
26246 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26247
26248 * config/rs6000/rs6000.opt (mcrypto): Change option description to
26249 match category changes in ISA 2.07B.
26250
26251 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26252
26253 * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
26254 iterators.
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.
26270
26271 2015-04-23 Jan Hubicka <hubicka@ucw.cz>
26272
26273 * tree.h (attribute_value_equal): Declare.
26274 * tree.c (attribute_value_equal): Export.
26275
26276 2015-04-23 Jan Hubicka <hubicka@ucw.cz>
26277
26278 * ipa-icf.c (sem_item::compare_attributes): New function.
26279 (sem_item::compare_referenced_symbol_properties): Compare variable
26280 attributes.
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.
26292
26293 2015-04-23 Jan Hubicka <hubicka@ucw.cz>
26294
26295 * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
26296 cleanup.
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.
26316
26317 2015-04-23 Kwok Cheung Yeung <kcy@codesourcery.com>
26318
26319 PR target/26702
26320 * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
26321 Emit size of local.
26322
26323 2015-04-23 Nick Clifton <nickc@redhat.com>
26324
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.
26328
26329 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26330
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
26351 option.
26352
26353 2015-04-23 Richard Biener <rguenther@suse.de>
26354
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
26357 SSA names.
26358 (ccp_visit_phi_node): Rework to handle first executable edge
26359 specially.
26360
26361 2015-04-23 Matthew Wahab <matthew.wahab@arm.com>
26362
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):
26369 Remove.
26370 (thumb_legimitimize_reload_address): Remove.
26371
26372 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26373
26374 * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
26375
26376 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26377
26378 * config/arm/arm.md (load_multiple): Reject operand 2 greater than
26379 MAX_LDM_STM_OPS.
26380 (store_multiple): Likewise.
26381
26382 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26383
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
26396 struct.
26397
26398 2015-04-23 Richard Biener <rguenther@suse.de>
26399
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
26414 guard.
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.
26419
26420 2015-04-23 Richard Biener <rguenther@suse.de>
26421
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
26427 the SCEV cache.
26428
26429 2015-04-23 Anton Blanchard <anton@samba.org>
26430
26431 * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
26432 need for -mprofile-kernel to save LR to stack.
26433
26434 2015-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26435
26436 * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
26437 adjustments.
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
26440 zero.
26441
26442 2015-04-23 Kugan Vivekanandarajah <kuganv@linaro.org>
26443
26444 * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
26445
26446 2015-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26447
26448 PR target/65456
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
26452 option.
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
26461 it that way.
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.
26466
26467 2015-04-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26468
26469 Revert:
26470 2015-04-22 Gregor Richards <gregor.richards@uwaterloo.ca>
26471
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.
26477
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*.
26481
26482 * configure: Regenerate.
26483
26484 2015-04-22 Gregor Richards <gregor.richards@uwaterloo.ca>
26485
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.
26491
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*.
26495
26496 * configure: Regenerate.
26497
26498 2015-04-22 Yury Gribov <y.gribov@samsung.com>
26499
26500 * doc/invoke.texi (-fsanitize-sections): Update description.
26501 * asan.c (set_sanitized_sections): Parse incoming arg.
26502 (section_sanitized_p): Support wildcards.
26503
26504 2015-04-22 Tom de Vries <tom@codesourcery.com>
26505
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.
26509
26510 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
26511
26512 PR target/47098
26513 * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
26514
26515 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
26516
26517 PR target/47122
26518 * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
26519
26520 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
26521
26522 PR target/55144
26523 * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
26524 remove already contained t-files.
26525
26526 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
26527
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.
26531
26532 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
26533
26534 * varasm.c (emit_bss): Remove redundant guard.
26535
26536 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
26537
26538 * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
26539
26540 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
26541
26542 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
26543
26544 2015-04-22 Hale Wang <hale.wang@arm.com>
26545 Terry Guo <terry.guo@arm.com>
26546
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.
26550
26551 2015-04-21 Jan Hubicka <hubicka@ucw.cz>
26552
26553 PR ipa/65076
26554 * passes.def (early_optimizations): Add pass_dse.
26555
26556 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26557
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.
26562
26563 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26564
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.
26568
26569 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26570
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.
26586
26587 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26588
26589 * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
26590 PIC_OFFSET_TABLE_REGNUM.
26591
26592 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26593
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.
26609
26610 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26611
26612 * defaults.h (MASK_RETURN_ADDR): New definition.
26613 * except.c (expand_builtin_extract_return_addr): Remove ifdef
26614 MASK_RETURN_ADDR.
26615
26616 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26617
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.
26622
26623 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26624
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):
26640 * Likewise.
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.
26650
26651 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26652
26653 * genconfig.c (main): Always define HAVE_cc0.
26654 * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
26655 HAVE_cc0.
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.
26668 (subst): 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):
26684 * Likewise.
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.
26698
26699 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26700
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.
26712
26713 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26714
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.
26722
26723 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26724
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.
26734
26735 2015-04-21 Uros Bizjak <ubizjak@gmail.com>
26736
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.
26751
26752 2015-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26753
26754 * expmed.c: (synth_mult): Only assume overlapping
26755 shift with previous steps in alg_sub_t_m2 case.
26756
26757 2015-04-21 Richard Biener <rguenther@suse.de>
26758
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.
26771
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.
26778
26779 2015-04-21 Richard Biener <rguenther@suse.de>
26780
26781 PR tree-optimization/65788
26782 * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
26783
26784 2015-04-21 Richard Biener <rguenther@suse.de>
26785
26786 * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
26787 vec_construct cost by vec_stmt_cost.
26788
26789 2015-04-21 Richard Biener <rguenther@suse.de>
26790
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.
26814
26815 2015-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26816
26817 * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
26818 New pattern.
26819 (*xor_one_cmplsidi3_ze): Likewise.
26820
26821 2015-04-21 Thomas Preud'homme <thomas.preudhomme@arm.com>
26822
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[].
26826
26827 2015-04-21 Tom de Vries <tom@codesourcery.com>
26828
26829 PR tree-optimization/65802
26830 * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
26831
26832 2015-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26833
26834 * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
26835 Increase to 128.
26836 (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
26837 at '.'. Assert that there's enough space for everything.
26838
26839 2015-04-21 Uros Bizjak <ubizjak@gmail.com>
26840
26841 PR tree-optimization/64950
26842 Revert:
26843 2010-08-02 Uros Bizjak <ubizjak@gmail.com>
26844
26845 PR target/41089
26846 * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
26847 as volatile.
26848
26849 2015-04-20 Shiva Chen <shiva0217@gmail.com>
26850
26851 PR rtl-optimization/64916
26852 * cfgcleanup.c (values_equal_p): New function.
26853 (can_replace_by): Use it.
26854
26855 2015-04-20 Paolo Carlini <paolo.carlini@oracle.com>
26856
26857 PR c++/65801
26858 * doc/invoke.texi ([-Wnarrowing]): Update.
26859
26860 2015-04-20 Jeff Law <law@redhat.com>
26861
26862 PR tree-optimization/65658
26863 * tree-ssa-threadupdate.c (redirection_block_p): Remove
26864 redundant test for GIMPLE_ASSIGN in last change.
26865
26866 2015-04-20 Uros Bizjak <ubizjak@gmail.com>
26867
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.
26875
26876 2015-04-20 Selim Belbachir <selim.belbachir@fr.thalesgroup.com>
26877
26878 * reorg.c (try_merge_delay_insns): Improve correctness checking
26879 for targets with multiple delay slots.
26880
26881 2015-04-20 Jeff Law <law@redhat.com>
26882
26883 PR tree-optimization/65658
26884 * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
26885 statements too.
26886
26887 2015-04-20 Alan Lawrence <alan.lawrence@arm.com>
26888
26889 * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
26890 * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
26891 Delete.
26892
26893 2015-04-20 Jakub Jelinek <jakub@redhat.com>
26894
26895 PR debug/65807
26896 * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
26897
26898 2015-04-20 Richard Biener <rguenther@suse.de>
26899
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.
26903
26904 2015-04-20 Alan Lawrence <alan.lawrence@arm.com>
26905
26906 PR target/64134
26907 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
26908 and overwrite variable parts if <= 1/2 the elements are variable.
26909
26910 2015-04-19 Vladimir Makarov <vmakarov@redhat.com>
26911
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.
26920
26921 2015-04-18 Trevor Saunders <tsaunders@mozilla.com>
26922
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.
26940
26941 2015-04-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26942 Jakub Jelinek <jakub@redhat.com>
26943
26944 PR target/65787
26945 * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
26946 subsequent SH_NONE operand does not overwrite an existing *special
26947 value.
26948 (adjust_extract): Handle case where a vec_extract operation is
26949 wrapped in a PARALLEL.
26950
26951 2015-04-17 H.J. Lu <hongjiu.lu@intel.com>
26952
26953 PR target/65780
26954 * config/i386/i386.c (ix86_binds_local_p): Define only if
26955 TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
26956
26957 2015-04-17 Jeff Law <law@redhat.com>
26958
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
26987 of equiv_stack.
26988 (identify_jump_threads): Update due to type change of equiv_stack.
26989 (finalize_jump_threads): Delete the equiv_stack when complete.
26990
26991 2015-04-17 Uros Bizjak <ubizjak@gmail.com>
26992
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.
26996
26997 2015-04-17 Andreas Tobler <andreast@gcc.gnu.org>
26998
26999 PR target/65535
27000 * config.gcc: Exit with a comment when we do not have a major version
27001 number for the FreeBSD target.
27002
27003 2015-04-17 Jakub Jelinek <jakub@redhat.com>
27004
27005 PR target/65689
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.
27024
27025 2015-04-17 H.J. Lu <hongjiu.lu@intel.com>
27026
27027 PR target/65780
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
27032 locally.
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.
27038
27039 2015-04-17 Jakub Jelinek <jakub@redhat.com>
27040
27041 PR debug/65771
27042 * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
27043 trying mem_loc_descriptor on XEXP (rtl, 0).
27044
27045 2015-04-17 Martin Liska <mliska@suse.cz>
27046
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.
27050
27051 2015-04-17 Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
27052
27053 PR target/65296
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.
27059
27060 2015-04-17 Alan Lawrence <alan.lawrence@arm.com>
27061
27062 * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
27063
27064 2015-04-17 Patrick Palka <ppalka@gcc.gnu.org>
27065
27066 PR c++/64527
27067 * gimplify.c (gimplify_init_constructor): Always emit a
27068 side-effecting constructor.
27069
27070 2015-04-17 Tom de Vries <tom@codesourcery.com>
27071
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.
27079
27080 2015-04-17 Tom de Vries <tom@codesourcery.com>
27081 Michael Matz <matz@suse.de>
27082
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.
27105
27106 2015-04-17 Tom de Vries <tom@codesourcery.com>
27107
27108 * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
27109 * calls.c (call_expr_flags): Same.
27110
27111 2015-04-17 Tom de Vries <tom@codesourcery.com>
27112
27113 * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
27114 (pass_stdarg::execute): ... here.
27115
27116 2015-04-17 Tom de Vries <tom@codesourcery.com>
27117 Michael Matz <matz@suse.de>
27118
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.
27125
27126 2015-04-17 Tom de Vries <tom@codesourcery.com>
27127
27128 * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
27129
27130 2015-04-17 Yury Gribov <y.gribov@samsung.com>
27131
27132 * asan.c (set_sanitized_sections): New function.
27133 (section_sanitized_p): Ditto.
27134 (asan_protect_global): Optionally sanitize user-defined
27135 sections.
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
27140 option.
27141
27142 2015-04-17 Jakub Jelinek <jakub@redhat.com>
27143
27144 PR debug/65771
27145 * dwarf2out.c (loc_list_from_tree): Return NULL
27146 for DEBUG_EXPR_DECL.
27147
27148 2015-04-17 Christian Bruel <christian.bruel@st.com>
27149
27150 * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
27151 same attributes.
27152
27153 2015-04-16 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
27154
27155 * ira-color.c (setup_left_conflict_sizes_p): Do not process
27156 node itself when computing left conflict subnode size.
27157
27158 2015-04-16 Uros Bizjak <ubizjak@gmail.com>
27159
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".
27165
27166 2015-04-16 Richard Biener <rguenther@suse.de>
27167
27168 PR tree-optimization/65774
27169 * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
27170 bit-value tracking on.
27171
27172 2015-04-16 Richard Biener <rguenther@suse.de>
27173
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.
27180
27181 2015-04-16 Uros Bizjak <ubizjak@gmail.com>
27182
27183 * config/i386/i386.c (print_reg): Rewrite function.
27184
27185 2015-04-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27186
27187 * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
27188 Invert the condition.
27189
27190 2015-04-16 Renlin Li <renlin.li@arm.com>
27191
27192 * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
27193 simplifications for UNSIGNED_FLOAT.
27194
27195 2015-04-16 Nick Clifton <nickc@redhat.com>
27196
27197 * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
27198 MUL_UNINIT.
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
27211 __RL78_Gxx__.
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
27224 RL78_MUL_UNINIT.
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.
27230
27231 2015-04-16 Richard Biener <rguenther@suse.de>
27232
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
27235 case.
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.
27239
27240 2015-04-15 Uros Bizjak <ubizjak@gmail.com>
27241
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
27245 attribute.
27246 (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
27247 enabled attribute.
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
27251 enabled attribute.
27252 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
27253 enabled attribute.
27254
27255 2015-04-15 Tom de Vries <tom@codesourcery.com>
27256
27257 PR other/65487
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.
27266
27267 2015-04-15 Jeff Law <law@redhat.com>
27268
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.
27273
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
27277 its operand.
27278
27279 2015-04-15 Jakub Jelinek <jakub@redhat.com>
27280
27281 PR ipa/65765
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.
27285
27286 2015-04-14 Matthew Wahab <matthew.wahab@arm.com>
27287
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.
27291
27292 2015-04-15 Nick Clifton <nickc@redhat.com>
27293
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
27299 appropriate.
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.
27308
27309 2015-04-15 Alan Modra <amodra@gmail.com>
27310
27311 PR target/65408
27312 PR target/58744
27313 PR middle-end/36043
27314 * calls.c (load_register_parameters): Don't load past end of
27315 mem unless suitably aligned.
27316
27317 2015-04-15 Nick Clifton <nickc@redhat.com>
27318
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
27322 based addresses.
27323 If zero extending a function address enclose the operation in
27324 %code(...).
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.
27333
27334 2015-04-15 Alan Modra <amodra@gmail.com>
27335
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
27350 debug insns.
27351 * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
27352
27353 2015-04-14 Yvan Roux <yvan.roux@linaro.org>
27354
27355 PR target/65729
27356 * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
27357 the assertiion.
27358
27359 2015-04-14 Uros Bizjak <ubizjak@gmail.com>
27360
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.
27369
27370 2015-04-14 Nick Clifton <nickc@redhat.com>
27371
27372 * expr.c (expand_assignment): Force an address offset computation
27373 into a register before changing its mode.
27374 (expand_expr_real_1): Likewise.
27375
27376 2015-04-14 Alan Lawrence <alan.lawrence@arm.com>
27377
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.
27386
27387 2015-04-14 Jakub Jelinek <jakub@redhat.com>
27388
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)).
27392
27393 2015-04-14 Richard Biener <rguenther@suse.de>
27394
27395 * graphite-scop-detection.c: Do not include cp/cp-tree.h.
27396 (graphite_can_represent_scev): Use POINTER_TYPE_P.
27397
27398 2015-04-14 Richard Biener <rguenther@suse.de>
27399
27400 PR tree-optimization/65758
27401 * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
27402 against -1.
27403 (ccp_lattice_meet): Likewise.
27404 (bit_value_unop): Likewise.
27405 (bit_value_binop): Likewise.
27406 (bit_value_assume_aligned): Likewise.
27407
27408 2015-04-14 Christian Bruel <christian.bruel@st.com>
27409
27410 * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
27411 function.
27412
27413 2015-04-14 Marc Glisse <marc.glisse@inria.fr>
27414
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.
27418
27419 2015-04-14 Uros Bizjak <ubizjak@gmail.com>
27420
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.
27434
27435 2015-04-13 Gerald Pfeifer <gerald@pfeifer.com>
27436
27437 * doc/plugins.texi: Rewrite first introductory paragraph.
27438
27439 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
27440
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.
27443
27444 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
27445
27446 * ipa-profie.c (ipa_profile): Check number of parameters
27447 and possible polymorphic call targets before
27448 devirtualizing.
27449
27450 2015-04-13 Uros Bizjak <ubizjak@gmail.com>
27451
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.
27454
27455 2015-04-13 Richard Biener <rguenther@suse.de>
27456
27457 PR tree-optimization/65204
27458 * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
27459 takens for bit-CCP.
27460
27461 2015-04-13 Richard Biener <rguenther@suse.de>
27462
27463 PR target/65660
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.
27469
27470 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
27471
27472 * hash-table.h (hash_table constructor): Add mem stats.
27473 (alloc_entries): Likewise.
27474
27475 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
27476
27477 * ipa-cp.c (ipcp_driver): Relase prev_edge.
27478 * passes.c (execute_one_pass): Only add transform if pass has one.
27479
27480 2015-04-12 Joseph Myers <joseph@codesourcery.com>
27481
27482 * config/i386/i386.c (ix86_option_override_internal): Don't set
27483 -fprefetch-loop-arrays if optimizing for size.
27484
27485 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
27486 Gerald Pfeifer <gerald@pfeifer.com>
27487
27488 * doc/contrib.texi (Contributors): Add Martin Jambor and
27489 Michael Matz.
27490
27491 2015-04-12 Jakub Jelinek <jakub@redhat.com>
27492
27493 * BASE-VER: Set to 6.0.0.
27494
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.
27498
27499 2015-04-12 Gerald Pfeifer <gerald@pfeifer.com>
27500
27501 * doc/invoke.texi (-Wmemset-transposed-args): Break a long
27502 sentence. Improve grammar.
27503
27504 2015-04-12 Gerald Pfeifer <gerald@pfeifer.com>
27505
27506 * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
27507
27508 2015-04-11 Jan Hubicka <hubicka@ucw.cz>
27509
27510 PR ipa/65743
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.
27517
27518 2015-04-11 Jan Hubicka <hubicka@ucw.cz>
27519 Martin Liska <mliska@suse.cz>
27520
27521 PR ipa/65722
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.
27526
27527 2015-04-11 Jakub Jelinek <jakub@redhat.com>
27528
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.
27534
27535 2015-04-11 Gerald Pfeifer <gerald@pfeifer.com>
27536
27537 * doc/contrib.texi (Contributors): Add Ira Rosen.
27538
27539 2015-04-11 Benno Schulenberg <bensberg@justemail.net>
27540
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.
27544
27545 2015-04-11 Gerald Pfeifer <gerald@pfeifer.com>
27546
27547 * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
27548
27549 2015-04-10 Gerald Pfeifer <gerald@pfeifer.com>
27550
27551 * doc/contrib.texi (Contributors): Update Joe Buck's entry.
27552
27553 2015-04-10 Vladimir Makarov <vmakarov@redhat.com>
27554
27555 PR target/65710
27556 * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
27557 Print bad_spills_num and insn_pseudos_num.
27558
27559 2015-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27560
27561 PR target/65694
27562 * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
27563 when creating +1 values for SImode.
27564
27565 2015-04-10 Vladimir Makarov <vmakarov@redhat.com>
27566
27567 PR target/65729
27568 * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
27569 assert.
27570
27571 2015-04-10 Jakub Jelinek <jakub@redhat.com>
27572 Iain Sandoe <iain@codesourcery.com>
27573
27574 PR target/65351
27575 * configure: Regenerate.
27576
27577 2015-04-09 Kirill Yukhin <kirill.yukhin@intel.com>
27578
27579 PR target/65671
27580 * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
27581
27582 2015-04-09 Gerald Pfeifer <gerald@pfeifer.com>
27583
27584 * doc/contrib.texi (Contributors): Add John Marino.
27585
27586 2015-04-09 Jakub Jelinek <jakub@redhat.com>
27587
27588 PR tree-optimization/65709
27589 * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
27590 TREE_TYPE (TREE_TYPE (t)).
27591
27592 2015-04-09 Vladimir Makarov <vmakarov@redhat.com>
27593
27594 PR target/65710
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
27600 spill preferences.
27601
27602 2015-04-09 Marek Polacek <polacek@redhat.com>
27603 Jakub Jelinek <jakub@redhat.com>
27604
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
27608 of STRIP_NOPS.
27609
27610 2015-04-09 Segher Boessenkool <segher@kernel.crashing.org>
27611
27612 PR rtl-optimization/65693
27613 * combine.c (is_parallel_of_n_reg_sets): Move outside of
27614 #ifndef HAVE_cc0.
27615
27616 2015-04-09 Georg-Johann Lay <avr@gjlay.de>
27617
27618 PR target/65296
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.
27621
27622 2015-04-09 Kirill Yukhin <kirill.yukhin@intel.com>
27623
27624 PR target/65676
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.
27630
27631 2015-04-09 Jakub Jelinek <jakub@redhat.com>
27632
27633 PR target/65693
27634 * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
27635 any pow2 integer in between 2 and 0x80000000U inclusive.
27636
27637 2015-04-08 Segher Boessenkool <segher@kernel.crashing.org>
27638
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.
27643
27644 2015-04-08 Ilya Enkovich <ilya.enkovich@intel.com>
27645
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.
27652
27653 2015-04-08 Michael Witten <mfwitten@gmail.com>
27654
27655 * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
27656 to an example.
27657
27658 2015-04-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
27659
27660 * tree.h (CONVERT_EXPR_P): Commentary typo fix.
27661
27662 2015-04-08 Gerald Pfeifer <gerald@pfeifer.com>
27663
27664 * doc/extend.texi (__sync Builtins): Fix grammar.
27665
27666 2015-04-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
27667
27668 * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
27669
27670 2015-04-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
27671
27672 * varasm.c (emit_local): Move definition of align.
27673
27674 2015-04-08 Julian Brown <julian@codesourcery.com>
27675
27676 * config/nvptx/mkoffload.c (process): Support variable mapping.
27677
27678 2015-03-27 Trevor Saunders <tbsaunde@tbsaunde.org>
27679
27680 * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
27681 alpha_links **.
27682 (alpha_write_one_linkage): Correct typo.
27683
27684 2015-04-08 Ilya Enkovich <ilya.enkovich@intel.com>
27685
27686 * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
27687
27688 2015-04-08 Gerald Pfeifer <gerald@pfeifer.com>
27689
27690 * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
27691
27692 2015-04-08 Ilya Enkovich <ilya.enkovich@intel.com>
27693
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.
27700
27701 2015-04-07 Jan Hubicka <hubicka@ucw.cz>
27702
27703 PR ipa/65540
27704 * calls.c (initialize_argument_information): When producing tail
27705 call also turn SSA_NAMES passed by references to original PARM_DECLs
27706
27707 2015-04-07 Vladimir Makarov <vmakarov@redhat.com>
27708
27709 PR target/65648
27710 * lra-remat.c (do_remat): Process input and non-input insn
27711 registers separately.
27712
27713 2015-04-07 Jakub Jelinek <jakub@redhat.com>
27714
27715 PR debug/65678
27716 * valtrack.c (debug_lowpart_subreg): New function.
27717 (dead_debug_insert_temp): Use it.
27718
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.
27722
27723 2015-04-07 Ilya Enkovich <ilya.enkovich@intel.com>
27724
27725 * ipa-comdats.c (ipa_comdats): Visit all thunks
27726 to set proper comdat group.
27727
27728 2015-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27729
27730 PR target/65489
27731 * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
27732 on constants for NEON VSTRUCT modes.
27733
27734 2015-04-07 Jakub Jelinek <jakub@redhat.com>
27735 Iain Sandoe <iain@codesourcery.com>
27736
27737 PR target/65351
27738 * configure: Regenerate.
27739
27740 2015-04-06 Michael Meissner <meissner@linux.vnet.ibm.com>
27741
27742 PR target/65614
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.
27778
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.
27784
27785 2015-04-06 Evandro Menezes <e.menezes@samsung.com>
27786
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.
27790
27791 2015-04-06 Evandro Menezes <e.menezes@samsung.com>
27792
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.
27799
27800 2015-04-06 Ilya Enkovich <ilya.enkovich@intel.com>
27801
27802 * ipa-cp (set_single_call_flag): Remove too
27803 restrictive assert.
27804
27805 2015-04-06 Ilya Verbin <ilya.verbin@intel.com>
27806
27807 * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
27808 GOMP_offload_unregister from the destructor.
27809
27810 2015-04-06 Ilya Enkovich <ilya.enkovich@intel.com>
27811
27812 * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
27813 flags for instrumentation thunk.
27814 (chkp_produce_thunks): Likewise.
27815
27816 2015-04-05 Martin Liska <mliska@suse.cz>
27817
27818 PR ipa/65665
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.
27822
27823 2015-04-04 Jan Hubicka <hubicka@ucw.cz>
27824
27825 * invoke.texi (inline-unit-growth): Increase growth to 20%
27826 * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
27827
27828 2015-04-04 Vladimir Makarov <vmakarov@redhat.com>
27829
27830 PR target/65647
27831 * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New. Add its
27832 value checking.
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.
27840
27841 2015-04-04 Richard Biener <rguenther@suse.de>
27842
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):
27854 Likewise.
27855
27856 2015-04-04 Alan Modra <amodra@gmail.com>
27857
27858 PR target/65576
27859 PR target/65240
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
27863 alternative.
27864
27865 2015-04-03 Jan Hubicka <hubicka@ucw.cz>
27866
27867 PR ipa/65654
27868 * ipa-inline-transform.c (inline_call): Skip sanity check to work
27869 around the ICE
27870
27871 2015-04-03 Jan Hubicka <hubicka@ucw.cz>
27872
27873 PR ipa/65655
27874 * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
27875 speculative indirect edges to avoid ordering issue.
27876
27877 2015-04-03 Jan Hubicka <hubicka@ucw.cz>
27878
27879 PR ipa/65076
27880 * ipa-inline.c (edge_badness): Add combined size to the denominator.
27881
27882 2015-04-03 Jakub Jelinek <jakub@redhat.com>
27883
27884 * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
27885 TYPE_ARTIFICIAL on the .omp_data* types.
27886
27887 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
27888
27889 * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
27890 instrumentation thunks.
27891
27892 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
27893
27894 * config/i386/i386.c (ix86_expand_call): Avoid nested
27895 PARALLEL in returned call value.
27896
27897 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
27898
27899 * lto-cgraph.c (input_cgraph_1): Always link instrumented
27900 assembler name with original one.
27901
27902 2015-04-02 Uros Bizjak <ubizjak@gmail.com>
27903
27904 * config/i386/i386.c (ix86_register_priority): Use AX_REG.
27905
27906 2015-04-02 Uros Bizjak <ubizjak@gmail.com>
27907
27908 Revert parts of r216820.
27909 * config/i386/i386.md (movqi_internal): Correct type calculation
27910 for alternatives 3 and 5.
27911
27912 2015-04-02 Jakub Jelinek <jakub@redhat.com>
27913
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.
27919
27920 2015-04-02 John David Anglin <danglin@gcc.gnu.org>
27921
27922 * config/pa/pa.c (pa_output_move_double): Directly handle register
27923 indexed memory operand. Simplify handling of scaled register indexed
27924 memory operands.
27925
27926 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
27927
27928 PR driver/65444
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.
27933
27934 2015-04-02 Uros Bizjak <ubizjak@gmail.com>
27935
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.
27941
27942 2015-04-01 Uros Bizjak <ubizjak@gmail.com>
27943
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.
27947 Use UNSPEC_LDA.
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.
27951 Use UNSPEC_STA.
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.
27955
27956 2015-04-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
27957
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.
27962
27963 2015-04-01 Max Ostapenko <m.ostapenko@partner.samsung.com>
27964
27965 PR target/65624
27966 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
27967 Increase args array size by one to avoid buffer overflow.
27968
27969 2015-03-31 Jan Hubicka <hubicka@ucw.cz>
27970
27971 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
27972 split_part.
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.
27980
27981 2015-03-31 Uros Bizjak <ubizjak@gmail.com>
27982
27983 PR target/58945
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.
27988
27989 2015-03-31 Jan Hubicka <hubicka@ucw.cz>
27990
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.
27994
27995 2015-03-31 Martin Liska <mliska@suse.cz>
27996
27997 PR ipa/65557
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.
28001
28002 2015-03-31 Richard Biener <rguenther@suse.de>
28003
28004 * tree-sra.c (create_access_replacement): Drop under-/over-alignment
28005 of types.
28006
28007 2015-03-31 Dominik Vogt <vogt@linux.vnet.ibm.com>
28008
28009 * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
28010 nested functions.
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.
28016
28017 2015-03-31 Richard Biener <rguenther@suse.de>
28018
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.
28023
28024 2015-03-31 Ilya Enkovich <ilya.enkovich@intel.com>
28025
28026 PR target/65531
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.
28031
28032 2015-03-31 Jakub Jelinek <jakub@redhat.com>
28033
28034 PR plugins/61176
28035 * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
28036 automatically to $headers.
28037
28038 2015-03-30 Jakub Jelinek <jakub@redhat.com>
28039
28040 PR ipa/65610
28041 * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
28042 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
28043 function.
28044 (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
28045 Use it.
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
28052 recursive calls.
28053 (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
28054
28055 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
28056
28057 PR ipa/65076
28058 * ipa-inline.c (edge_badness): Base denominator on callee's
28059 grwoth squared.
28060
28061 2015-03-27 Martin Jambor <mjambor@suse.cz>
28062
28063 PR ipa/65478
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
28071 necessary.
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.
28077
28078 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
28079
28080 PR ipa/65588
28081 * symtab.c (symtab_node::get_partitioning_class): Register vars
28082 are duplicated.
28083 * varpool.c (symbol_table::output_variables) Do not assemble unefined
28084 decls for non-symbols.
28085
28086 2015-03-27 H.J. Lu <hongjiu.lu@intel.com>
28087
28088 PR target/65248
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.
28098
28099 2015-03-27 Jakub Jelinek <jakub@redhat.com>
28100
28101 PR target/65593
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.
28105
28106 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
28107
28108 PR target/65531
28109 * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
28110 comdat groups.
28111
28112 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
28113
28114 PR ipa/65600
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
28119
28120 2015-03-27 Vladimir Makarov <vmakarov@redhat.com>
28121
28122 PR target/65407
28123 * ira-costs.c (record_reg_classes): Process all constraint string
28124 containing 0-9.
28125
28126 2015-03-27 Bernd Schmidt <bernds@codesourcery.com>
28127
28128 * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
28129 memory_operand.
28130
28131 PR target/65052
28132 * config/c6x/constraints.md (S3): New constraint.
28133 * config/c6x/c6x.md (real_jump): Use it.
28134
28135 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
28136
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.
28140
28141 2015-03-27 Ilya Enkovich <ilya.enkovich@intel.com>
28142
28143 PR target/65495
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.
28153
28154 2015-03-27 Marek Polacek <polacek@redhat.com>
28155
28156 * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
28157
28158 2015-03-27 Marek Polacek <polacek@redhat.com>
28159
28160 PR sanitizer/65583
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.
28166
28167 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
28168
28169 * lto-streamer.h (class lto_location_cache): Turn loc_cache into
28170 auto_vec.
28171
28172 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
28173
28174 PR lto/65536
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
28188 variable.
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.
28203
28204 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
28205
28206 PR ipa/65076
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.
28213
28214 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
28215
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.
28221
28222 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
28223
28224 * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
28225 New macros.
28226 (can_inline_edge_p): Relax option matching for always inline functions.
28227
28228 2015-03-26 Uros Bizjak <ubizjak@gmail.com>
28229
28230 PR target/65561
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
28236 for equality.
28237 (vec_extract_hi_<mode>_maskm): Ditto.
28238
28239 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
28240
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
28244 cross check to ...
28245 (cgraph_node::verify_node): ... here; verify only callee edges,
28246 not caller.
28247 * cif-code.def (CILK_SPAWN): New code.
28248
28249 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
28250
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.
28267
28268 2015-03-26 Jakub Jelinek <jakub@redhat.com>
28269
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.
28273
28274 2015-03-26 Richard Biener <rguenther@suse.de>
28275
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.
28279
28280 2015-03-26 Jakub Jelinek <jakub@redhat.com>
28281
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.
28289
28290 * var-tracking.c (variable_tracking_main_1): Don't track
28291 variables for targetm.no_register_allocation targets.
28292
28293 2015-03-26 Oleg Endo <olegendo@gcc.gnu.org>
28294
28295 * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
28296 * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
28297
28298 2015-03-25 Michael Meissner <meissner@linux.vnet.ibm.com>
28299
28300 PR target/65569
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.
28305
28306 2015-03-25 Sebastian Pop <s.pop@samsung.com>
28307
28308 PR tree-optimization/65177
28309 * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
28310 (bb_in_bbs): New.
28311 (duplicate_seme_region): Renamed duplicate_thread_path. Redirect all
28312 edges not adjacent on the path to the original code.
28313
28314 2015-03-25 Uros Bizjak <ubizjak@gmail.com>
28315
28316 PR bootstrap/65537
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.
28320
28321 2015-03-25 Ilya Enkovich <ilya.enkovich@intel.com>
28322
28323 PR target/65508
28324 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
28325 chain for generated call.
28326
28327 2015-03-25 Richard Biener <rguenther@suse.de>
28328
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.
28333
28334 2015-03-25 Martin Liska <mliska@suse.cz>
28335
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.
28340
28341 2015-03-25 Jakub Jelinek <jakub@redhat.com>
28342
28343 PR lto/65515
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.
28353
28354 2015-03-25 Richard Biener <rguenther@suse.de>
28355
28356 PR middle-end/65519
28357 * genmatch.c (expr::gen_transform): Re-write to avoid
28358 using gimple_build.
28359
28360 2015-03-25 Bin Cheng <bin.cheng@arm.com>
28361
28362 * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
28363
28364 2015-03-25 Bin Cheng <bin.cheng@arm.com>
28365
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.
28372
28373 2015-03-25 DJ Delorie <dj@redhat.com>
28374
28375 * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
28376 correct clause.
28377
28378 2015-03-24 Jan Hubicka <hubicka@ucw.cz>
28379 Martin Liska <mliska@suse.cz>
28380
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
28390 order.
28391
28392 2015-03-24 Jakub Jelinek <jakub@redhat.com>
28393
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
28398 vector.
28399
28400 2015-03-24 Richard Biener <rguenther@suse.de>
28401
28402 PR middle-end/65517
28403 * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
28404 for fixup if necessary.
28405
28406 2015-03-23 Sandra Loosemore <sandra@codesourcery.com>
28407
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.
28416
28417 2015-03-23 Jakub Jelinek <jakub@redhat.com>
28418
28419 PR target/65523
28420 * tree-chkp.c (chkp_build_returned_bound): Ignore
28421 ERF_RETURNS_ARG calls if they have fewer than needed arguments.
28422
28423 2015-03-23 Oleg Endo <olegendo@gcc.gnu.org>
28424
28425 PR target/65505
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.
28433
28434 2015-03-23 Georg-Johann Lay <avr@gjlay.de>
28435
28436 PR target/65296
28437 * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
28438 the same -mmcu=MCU more than once.
28439
28440 2015-03-23 Jakub Jelinek <jakub@redhat.com>
28441
28442 PR bootstrap/65522
28443 * ipa-devirt.c: Remove duplicate demangle.h include.
28444
28445 PR target/65504
28446 * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
28447 on the pseudo.
28448 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
28449 REG_POINTER on *destptr after adjusting it for prologue size.
28450
28451 PR ipa/65521
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.
28455
28456 2015-03-23 Richard Biener <rguenther@suse.de>
28457
28458 PR tree-optimization/65518
28459 * tree-vect-stmts.c (vectorizable_load): Reject single-element
28460 interleaving cases we generate absymal code for.
28461
28462 2015-03-23 Richard Biener <rguenther@suse.de>
28463
28464 PR tree-optimization/65494
28465 * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
28466 matches here.
28467 (vect_analyze_slp_instance): But do that here, always and once.
28468
28469 2015-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28470
28471 * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
28472 adding T or multiplying by T+1 and subracting T.
28473
28474 2015-03-22 Jeff Law <law@redhat.com>
28475
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
28492 add to the table.
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.
28504
28505 2015-03-22 Sandra Loosemore <sandra@codesourcery.com>
28506
28507 * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
28508 as an adjective.
28509 (System Headers): Likewise.
28510 (Ifdef): 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.
28519
28520 2015-03-22 Jan Hubicka <hubicka@ucw.cz>
28521
28522 PR ipa/65475
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
28533 type.
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
28538 we did not warn.
28539 (BINFO_N_BASE_BINFOS): Relax sanity check.
28540
28541 2015-03-22 Martin Liska <mliska@suse.cz>
28542 Jakub Jelinek <jakub@redhat.com>
28543
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.
28548
28549 2015-03-22 Martin Liska <mliska@suse.cz>
28550
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.
28559
28560 2015-03-20 Jan Hubicka <hubicka@ucw.cz>
28561
28562 PR ipa/65502
28563 * ipa-comdats.c (enqueue_references): Walk through thunks.
28564 (ipa_comdats): Likewise.
28565 (set_comdat_group_1): New function.
28566
28567 2015-03-20 Jan Hubicka <hubicka@ucw.cz>
28568
28569 PR ipa/65475
28570 * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
28571 non-polymorphic
28572
28573 2015-03-22 Dave Korn <dave.korn.cygwin@gmail.com>
28574 Gerald Pfeifer <gerald@pfeifer.com>
28575
28576 * doc/contrib.texi (Contributors): Update entry for Danny Smith.
28577
28578 2015-03-21 Chung-Lin Tang <cltang@codesourcery.com>
28579 Sandra Loosemore <sandra@codesourcery.com>
28580
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.
28600
28601 2015-03-21 Sandra Loosemore <sandra@codesourcery.com>
28602
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.
28608 (-flto): Likewise.
28609 (tracer-dynamic-coverage-feedback): Likewise.
28610 (reorder-block-duplicate-feedback): Likewise.
28611 (loop-unroll-jam-size): Likewise.
28612 (-B): Likewise.
28613 (-I-): Likewise.
28614 (-mabs=legacy): Likewise.
28615 (-mupper-regs-df): Likewise.
28616 (-mupper-regs-sf): Likewise.
28617 (-mpointers-to-nested-functions): Likewise.
28618
28619 2015-03-21 Sandra Loosemore <sandra@codesourcery.com>
28620
28621 * doc/extend.texi (Cilk Plus Builtins): Add markup.
28622
28623 2015-03-21 Sandra Loosemore <sandra@codesourcery.com>
28624
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.
28642
28643 2015-03-21 Tom de Vries <tom@codesourcery.com>
28644
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
28656 cgraph_node.
28657 (create_loop_fn): Remove adding to parallelized_functions.
28658 * Makefile.in (GTFILES): Remove tree-parloops.c
28659
28660 2015-03-20 Vladimir Makarov <vmakarov@redhat.com>
28661
28662 PR rtl-optimization/64366
28663 * lra.c (lra_update_insn_regno_info): Consider regs in
28664 CALL_INSN_FUNCTION_USAGE memory.
28665
28666 2015-03-20 Richard Biener <rguenther@suse.de>
28667
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].
28676
28677 2015-03-20 Jan Hubicka <hubicka@ucw.cz>
28678
28679 * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
28680 already is final.
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
28684 CIF_FINAL_ERROR.
28685
28686 2015-03-20 Uros Bizjak <ubizjak@gmail.com>
28687
28688 PR rtl-optimization/60851
28689 * recog.c (constrain_operands): Accept a pseudo register before reload
28690 for LRA enabled targets.
28691
28692 2015-03-19 Michael Meissner <meissner@linux.vnet.ibm.com>
28693
28694 PR target/65240
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.
28701
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
28713 for extenddftf2.
28714
28715 2015-03-19 Vladimir Makarov <vmakarov@redhat.com>
28716
28717 PR rtl-optimization/63491
28718 * lra-constraints.c (check_and_process_move): Use src instead of
28719 sreg. Remove some dead code.
28720
28721 2015-03-19 Jan Hubicka <hubicka@ucw.cz>
28722
28723 PR ipa/65380
28724 * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
28725 (sem_variable::merge): Likewise.
28726
28727 2015-03-19 Martin Liska <mliska@suse.cz>
28728
28729 PR ipa/65465
28730 * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
28731 all fields of cgraph_thunk_info.
28732
28733 2015-03-19 Ilya Enkovich <ilya.enkovich@intel.com>
28734
28735 * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
28736 clone instrumented thunks.
28737
28738 2015-03-19 Richard Biener <rguenther@suse.de>
28739
28740 Revert
28741 2015-03-10 Richard Biener <rguenther@suse.de>
28742
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
28751 live/conflict.
28752 (verify_ssa_coalescing_worker): New function.
28753 (verify_ssa_coalescing): Likewise.
28754
28755 2015-03-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
28756 Jakub Jelinek <jakub@redhat.com>
28757
28758 PR sanitizer/65400
28759 * tsan.c (instrument_gimple): Clear tail call flag on
28760 calls.
28761
28762 2015-03-19 Jakub Jelinek <jakub@redhat.com>
28763
28764 PR sanitizer/65400
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
28768 find_return_bb.
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.
28775
28776 2015-03-18 DJ Delorie <dj@redhat.com>
28777
28778 * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
28779 (iorqi3_virt): Likewise.
28780
28781 2015-03-18 Tom de Vries <tom@codesourcery.com>
28782
28783 * tree-parloops.c (parallelize_loops): Make static.
28784 * tree-parloops.h (parallelize_loops): Remove extern declaration.
28785
28786 2015-03-18 Andrew Stubbs <ams@codesourcery.com>
28787
28788 PR middle-end/64491
28789 Revert:
28790 2014-11-20 Andrew Stubbs <ams@codesourcery.com>
28791
28792 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
28793 condition would be removed due to undefined behaviour.
28794
28795 2015-03-18 Martin Liska <mliska@suse.cz>
28796
28797 PR ipa/65432
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
28801 sem_item::name.
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
28806 sem_item::name.
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
28811 sem_item::name.
28812 * ipa-icf.h (symtab_node::name): Remove.
28813 (symtab_node::asm_name): Likewise.
28814
28815 2015-03-18 Jakub Jelinek <jakub@redhat.com>
28816
28817 PR tree-optimization/65450
28818 * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
28819 function.
28820 (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
28821 it instead of duplicate_ssa_name_ptr_info.
28822
28823 PR target/65222
28824 * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
28825
28826 2015-03-18 Richard Biener <rguenther@suse.de>
28827
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.
28837
28838 2015-03-18 Richard Biener <rguenther@suse.de>
28839
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.
28843
28844 2015-03-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28845
28846 * expmed.c (synth_mult): Use std::swap instead of manually
28847 swapping algorithms.
28848
28849 2015-03-18 Jakub Jelinek <jakub@redhat.com>
28850
28851 PR target/65078
28852 * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
28853
28854 2015-03-16 Georg-Johann Lay <avr@gjlay.de>
28855
28856 PR target/65296
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
28867 case of an error.
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.
28872
28873 2015-03-16 Jan Hubicka <hubicka@ucw.cz>
28874
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.
28878
28879 2015-03-16 Jakub Jelinek <jakub@redhat.com>
28880
28881 PR tree-optimization/65427
28882 * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
28883 functions.
28884 (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
28885
28886 2015-03-16 Marek Polacek <polacek@redhat.com>
28887
28888 * cgraph.h (add_new_static_var): Remove declaration.
28889 * varpool.c (add_new_static_var): Remove function.
28890
28891 2015-03-16 Jakub Jelinek <jakub@redhat.com>
28892
28893 * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
28894 instead of vec<tree> * with vec_alloc and release for args.
28895 Adjust all users.
28896
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.
28901
28902 2015-03-16 Max Ostapenko <m.ostapenko@partner.samsung.com>
28903
28904 PR sanitizer/64820
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.
28909
28910 2015-03-16 Eric Botcazou <ebotcazou@adacore.com>
28911
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.
28915
28916 2015-03-16 Tom de Vries <tom@codesourcery.com>
28917
28918 PR middle-end/65414
28919 Revert:
28920 2015-03-12 Tom de Vries <tom@codesourcery.com>
28921
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.
28925
28926 2015-03-16 Alan Modra <amodra@gmail.com>
28927
28928 PR target/63150
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
28937 early clobber.
28938
28939 2015-03-14 Jakub Jelinek <jakub@redhat.com>
28940
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).
28945
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.
28950
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.
28957
28958 2015-03-13 Ilya Verbin <ilya.verbin@intel.com>
28959
28960 * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
28961 the external decls.
28962
28963 2015-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28964
28965 PR target/64600
28966 * config/arm/arm.c (arm_gen_constant, AND case): Use
28967 ARM_SIGN_EXTEND when constructing AND mask.
28968
28969 2015-03-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
28970
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.
28974
28975 2015-03-12 Richard Biener <rguenther@suse.de>
28976
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.
28984
28985 2015-03-13 Richard Biener <rguenther@suse.de>
28986
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
28993 here.
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.
29010
29011 2015-03-12 Jan Hubicka <hubicka@ucw.cz>
29012
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
29023 cdtor.
29024 * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
29025 matching here.
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):
29029 Declare.
29030 (unc_checker::compatible_types_p): Update.
29031 * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
29032 Remove.
29033
29034 2015-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29035
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.
29040
29041 2015-03-12 Richard Biener <rguenther@suse.de>
29042
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.
29046
29047 2015-03-12 Dominik Vogt <vogt@linux.vnet.ibm.com>
29048
29049 * config/s390/s390.c (s390_reorg): Move code to output nops after label
29050 to s390_reorg ().
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.
29061
29062 2015-03-12 Ilya Enkovich <ilya.enkovich@intel.com>
29063
29064 PR target/65103
29065 * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
29066 register.
29067
29068 2015-03-12 Ilya Enkovich <ilya.enkovich@intel.com>
29069
29070 PR target/65044
29071 * toplev.c (process_options): Restrict Pointer Bounds Checker
29072 usage with Address Sanitizer.
29073
29074 2015-03-12 Richard Biener <rguenther@suse.de>
29075
29076 * tree-cfg.c (gimple_split_block): Remove loop finding stmt
29077 to split on.
29078 * omp-low.c (expand_omp_taskreg): Split block before removing
29079 the stmt.
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.
29084
29085 2015-03-12 Tom de Vries <tom@codesourcery.com>
29086
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.
29090
29091 2015-03-10 Jan Hubicka <hubicka@ucw.cz>
29092
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.
29098
29099 2015-03-11 Sandra Loosemore <sandra@codesourcery.com>
29100
29101 * doc/invoke.texi (-fgnu89-inline): Remove discussion about
29102 old GCC versions.
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.
29120
29121 2015-03-11 Thomas Schwinge <thomas@codesourcery.com>
29122
29123 * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
29124
29125 2015-03-11 Marek Polacek <polacek@redhat.com>
29126
29127 PR tree-optimization/65388
29128 * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
29129
29130 2015-03-10 Georg-Johann Lay <avr@gjlay.de>
29131
29132 PR target/65296
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.
29139
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.
29143
29144 2015-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29145
29146 * doc/invoke.texi: Add missing cpu values (z196, zEC12).
29147
29148 2015-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
29149
29150 PR target/65242
29151 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
29152 allow reloads of PLUS in floating point/VSX registers.
29153
29154 2015-03-11 Junmo Park <junmoz.park@samsung.com>
29155
29156 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
29157 crypto_sha256_fast.
29158 (cortex_a57_crypto_complex): Add crypto_sha256_slow.
29159
29160 2015-03-11 Richard Biener <rguenther@suse.de>
29161
29162 PR tree-optimization/65310
29163 * tree-sra.c (build_ref_for_offset): Also preserve larger
29164 alignment.
29165
29166 2015-03-11 Marat Zakirov <m.zakirov@samsung.com>
29167
29168 * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
29169
29170 2015-03-10 Jakub Jelinek <jakub@redhat.com>
29171
29172 PR target/65368
29173 * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
29174 new define_expand.
29175 (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
29176
29177 2015-03-10 Jan Hubicka <hubicka@ucw.cz>
29178
29179 * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
29180 (sem_function::equals_wpa): ... here.
29181
29182 2015-03-10 Marek Polacek <polacek@redhat.com>
29183 Jakub Jelinek <jakub@redhat.com>
29184
29185 PR sanitizer/65367
29186 * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
29187 when only removing the statement. Handle expanding UBSAN_OBJECT_SIZE
29188 separately.
29189
29190 2015-03-10 Jakub Jelinek <jakub@redhat.com>
29191
29192 PR target/65286
29193 * config/rs6000/t-linux: For powerpc64* target set
29194 MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
29195
29196 2015-03-10 Richard Biener <rguenther@suse.de>
29197
29198 PR middle-end/44563
29199 * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
29200 for redirect_all_calls.
29201
29202 2015-03-10 Marek Polacek <polacek@redhat.com>
29203
29204 * gdbinit.in (pcfun): Define and document.
29205
29206 2015-03-10 Ilya Verbin <ilya.verbin@intel.com>
29207
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
29214 libgomp-plugin.h.
29215 (main): Use GCC_INSTALL_NAME as target_driver_name.
29216 * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
29217 define.
29218 (mkoffload.o): Remove obsolete include path and defines.
29219 (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
29220
29221 2015-03-10 Richard Biener <rguenther@suse.de>
29222
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
29231 live/conflict.
29232 (verify_ssa_coalescing_worker): New function.
29233 (verify_ssa_coalescing): Likewise.
29234
29235 2015-03-10 Georg-Johann Lay <avr@gjlay.de>
29236
29237 PR target/65296
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.
29242
29243 * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
29244 (-mmcu=): Add Var and MissingArgError properties.
29245 (-march=): Remove.
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.
29280
29281 2015-03-10 Ilya Enkovich <ilya.enkovich@intel.com>
29282
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
29287 functions.
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.
29307
29308 2015-03-10 Ilya Enkovich <ilya.enkovich@intel.com>
29309
29310 * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
29311 (CHKP_SPEC): Add wrappers library.
29312 * c-family/c.opt (static-libmpxwrappers): New.
29313
29314 2015-03-10 Ilya Enkovich <ilya.enkovich@intel.com>
29315
29316 * config/i386/linux-common.h (LIBMPX_LIBS): New.
29317 (LIBMPX_SPEC): New.
29318 (CHKP_SPEC): New.
29319 * gcc.c (CHKP_SPEC): New.
29320 (LINK_COMMAND_SPEC): Add CHKP_SPEC.
29321 * c-family/c.opt (static-libmpx): New.
29322
29323 2015-03-10 Richard Biener <rguenther@suse.de>
29324
29325 PR middle-end/44563
29326 * cgraph.h (struct cgraph_edge_hasher): Add hash overload
29327 for compare_type.
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.
29334
29335 2015-03-10 Chung-Ju Wu <jasonwucj@gmail.com>
29336
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
29344 variables.
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.
29353
29354 2015-03-10 Thomas Preud'homme <thomas.preudhomme@arm.com>
29355
29356 * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
29357 code in comment.
29358
29359 2015-03-10 Jakub Jelinek <jakub@redhat.com>
29360
29361 PR rtl-optimization/65321
29362 * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
29363 than shift mode.
29364 * var-tracking.c (use_narrower_mode): Likewise.
29365
29366 2015-03-10 Jan Hubicka <hubicka@ucw.cz>
29367
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
29371 anchor.
29372 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
29373 check for section anchors.
29374
29375 2015-03-10 Alan Modra <amodra@gmail.com>
29376
29377 PR target/65286
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
29383 and powerpc64le.
29384 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
29385 rs6000_isa_flags rather than TARGET_64BIT.
29386
29387 2015-03-09 Yoshinori Sato <ysato@users.sourceforge.jp>
29388 Kaz Kojima <kkojima@gcc.gnu.org>
29389
29390 * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
29391
29392 2015-03-09 Jakub Jelinek <jakub@redhat.com>
29393
29394 PR lto/65361
29395 * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
29396 on a TREE_BINFO, instead use BINFO_TYPE.
29397
29398 2015-03-09 Richard Biener <rguenther@suse.de>
29399
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.
29406
29407 2015-03-08 Jan Hubicka <hubicka@ucw.cz>
29408
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.
29419
29420 2015-03-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
29421
29422 PR tree-optimization/63743
29423 * cfgexpand.c (reorder_operands): Also reorder if only second operand
29424 had its definition forwarded by TER.
29425
29426 2015-03-08 Jan Hubicka <hubicka@ucw.cz>
29427
29428 PR lto/65316
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
29450 duplicates.
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
29455 output.
29456 (ipa_devirt): Dump type_inheritance_graph.
29457 (types_same_for_odr): Add strict mode.
29458
29459 2015-03-05 Jan Hubicka <hubicka@ucw.cz>
29460
29461 PR ipa/65334
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.
29478
29479 2015-03-05 Jan Hubicka <hubicka@ucw.cz>
29480
29481 PR ipa/65316
29482 * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
29483 when outputting debug.
29484
29485 2015-03-07 Marek Polacek <polacek@redhat.com>
29486 Martin Uecker <uecker@eecs.berkeley.edu>
29487
29488 PR sanitizer/65280
29489 * doc/invoke.texi: Update description of -fsanitize=bounds.
29490
29491 2015-03-06 Wilco Dijkstra <wilco.dijkstra@arm.com>
29492
29493 * tree-ssa-phiopt.c (neg_replacement): Remove.
29494 (tree_ssa_phiopt_worker): Remove negate optimization.
29495
29496 2015-03-05 Jan Hubicka <hubicka@ucw.cz>
29497
29498 PR ipa/65302
29499 * value-prof.c (gimple_ic): Pure dead eh edges when needed.
29500
29501 2015-03-06 Richard Biener <rguenther@suse.de>
29502
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.
29519
29520 2015-03-06 Jonathan Wakely <jwakely@redhat.com>
29521
29522 * real.c (real_from_string): Fix typo in assertion.
29523
29524 2015-03-06 Alex Velenko <alex.velenko@arm.com>
29525
29526 * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
29527 the patch.
29528
29529 2015-03-05 Jan Hubicka <hubicka@ucw.cz>
29530
29531 * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
29532
29533 2015-03-05 Vladimir Makarov <vmakarov@redhat.com>
29534
29535 PR target/64342
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.
29539
29540 2015-03-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
29541
29542 PR rtl-optimization/65067
29543 * expmed.c (store_bit_field, extract_bit_field): Reworked the
29544 strict volatile bitfield handling.
29545
29546 2015-03-05 Martin Liska <mliska@suse.cz>
29547
29548 PR ipa/65318
29549 * ipa-icf.c (sem_variable::equals): Compare variables types.
29550
29551 2015-03-05 Richard Henderson <rth@redhat.com>
29552
29553 PR target/65121
29554 * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
29555 correctly check weak symbol binding.
29556
29557 2015-03-05 Steve Ellcey <sellcey@imgtec.com>
29558
29559 PR middle-end/65315
29560 * cfgexpand.c (expand_stack_vars): Update large_align to maximum
29561 needed alignment.
29562
29563 2015-03-05 Martin Liska <mliska@suse.cz>
29564
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
29568 bootstrap.
29569
29570 2015-03-05 Richard Biener <rguenther@suse.de>
29571
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.
29575
29576 2015-03-05 Richard Biener <rguenther@suse.de>
29577
29578 PR ipa/65270
29579 * ipa-icf-gimple.c (func_checker::compare_memory_operand):
29580 Compare dependence info.
29581
29582 2015-03-05 Richard Biener <rguenther@suse.de>
29583
29584 PR middle-end/65233
29585 * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
29586 tree-into-ssa.h.
29587 (walk_ssa_copies): Revert last chage. Instead do not walk
29588 SSA names registered for SSA update.
29589
29590 2015-03-03 Jan Hubicka <hubicka@ucw.cz>
29591
29592 PR ipa/65270
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.
29597
29598 2015-03-04 Eric Botcazou <ebotcazou@adacore.com>
29599
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.
29603
29604 2015-03-04 Andreas Tobler <andreast@gcc.gnu.org>
29605
29606 * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
29607
29608 2015-03-03 Jan Hubicka <hubicka@ucw.cz>
29609
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):
29613 Likewise.
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.
29621
29622 2015-03-04 Nick Clifton <nickc@redhat.com>
29623
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.
29628
29629 2015-03-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29630
29631 * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
29632 from checking for -mhtm option.
29633
29634 2015-03-03 Jan Hubicka <hubicka@ucw.cz>
29635
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
29640 thunks.
29641 (ipa_early_sra): Use call_for_symbol_and_aliases.
29642
29643 2015-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
29644
29645 PR target/65249
29646 * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
29647 called for __stack_chk_guard symbol.
29648
29649 2015-03-03 DJ Delorie <dj@redhat.com>
29650
29651 * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
29652 inc/dec.
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.
29662
29663 2015-03-03 Eric Botcazou <ebotcazou@adacore.com>
29664
29665 * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
29666 negating it.
29667
29668 * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
29669
29670 2015-03-03 Max Filippov <jcmvbkbc@gmail.com>
29671
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
29679 prototypes.
29680 * config/xtensa/xtensa.c (xtensa_callee_save_size): New
29681 variable.
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
29693 windowed ABI.
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
29697 windowed ABI.
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
29712 call0 ABI.
29713 (xtensa_trampoline_init): Add trampoline initialization for
29714 call0 ABI.
29715 (xtensa_conditional_register_usage, xtensa_regno_to_class): New
29716 functions.
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
29723 call0 ABI.
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
29729 function.
29730 (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
29731 respectively.
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
29741 definitions.
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.
29749
29750 2015-03-03 Martin Liska <mliska@suse.cz>
29751
29752 PR ipa/65287
29753 * ipa-icf.c (sem_variable::parse): Skip all alias variables.
29754
29755 2015-03-03 Michael Meissner <meissner@linux.vnet.ibm.com>
29756
29757 PR 65138/target
29758 * config/rs6000/rs6000-tables.opt: Regenerate table.
29759
29760 2015-03-03 Renlin Li <renlin.li@arm.com>
29761
29762 * doc/md.texi (@item ^): Change ? into ^.
29763
29764 2015-03-03 H.J. Lu <hongjiu.lu@intel.com>
29765
29766 * doc/tm.texi: Regenerated.
29767
29768 2015-03-03 Max Filippov <jcmvbkbc@gmail.com>
29769
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
29774 definition to 1.
29775 * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
29776 Likewise.
29777 * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
29778 undefined.
29779 * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
29780 paragraph.
29781
29782 2015-03-03 Martin Jambor <mjambor@suse.cz>
29783 Eric Botcazou <ebotcazou@adacore.com>
29784
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.
29789
29790 2015-03-03 Martin Liska <mliska@suse.cz>
29791
29792 * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
29793 instead of if branch.
29794
29795 2015-03-03 Martin Liska <mliska@suse.cz>
29796
29797 PR ipa/65282
29798 * ipa-icf.c (sem_variable::equals): Fix wrong condition.
29799
29800 2015-03-23 Jeff Law <law@redhat.com>
29801
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.
29805
29806 2015-03-03 Georg-Johann Lay <avr@gjlay.de>
29807
29808 PR target/65296
29809 * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
29810
29811 2015-03-03 Georg-Johann Lay <avr@gjlay.de>
29812
29813 PR target/64331
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.
29819
29820 2015-03-03 Georg-Johann Lay <avr@gjlay.de>
29821
29822 Fix various problems with specs file generation.
29823
29824 PR target/65296
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.
29832 (tm.h): Include.
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.
29839
29840 2015-03-03 Eric Botcazou <ebotcazou@adacore.com>
29841
29842 * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
29843 to create a register in testing mode.
29844
29845 2015-03-03 Martin Liska <mliska@suse.cz>
29846 Jan Hubicka <hubicka@ucw.cz>
29847
29848 PR ipa/65263
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.
29853
29854 2015-03-03 Martin Liska <mliska@suse.cz>
29855 Martin Jambor <mjambor@suse.cz>
29856
29857 PR ipa/65087
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.
29864
29865 2015-03-02 Michael Meissner <meissner@linux.vnet.ibm.com>
29866
29867 PR 65138/target
29868 * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
29869 processor type for 64-bit little endian PowerPC.
29870
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.
29875
29876 * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
29877 -mcpu=powerpc64le.
29878
29879 2015-03-02 Steve Ellcey <sellcey@imgtec.com>
29880
29881 PR target/58158
29882 * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
29883 !ISA_HAS_FP_CONDMOVE.
29884
29885 2015-03-02 Aldy Hernandez <aldyh@redhat.com>
29886
29887 * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
29888 reload_completed.
29889
29890 2015-03-02 Ulrich Drepper <drepper@gmail.com>
29891
29892 * doc/invoke.texi (Options for Code Generation Conventions):
29893 Fix URL of DSO paper.
29894
29895 2015-03-02 Jan Hubicka <hubicka@ucw.cz>
29896
29897 PR ipa/65130
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.
29903
29904 2015-03-02 Jan Hubicka <hubicka@ucw.cz>
29905
29906 PR ipa/64988
29907 * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
29908 comdat groups.
29909
29910 2015-03-02 Jan Hubicka <hubicka@ucw.cz>
29911 Aldy Hernandez <aldyh@redhat.com>
29912
29913 PR lto/65276
29914 * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
29915 when checking TYPE_BINFO.
29916
29917 2015-03-02 Richard Biener <rguenther@suse.de>
29918
29919 PR ipa/65270
29920 * ipa-icf-gimple.c: Include builtins.h.
29921 (func_checker::compare_memory_operand): Compare base alignment.
29922
29923 2015-03-02 Ilya Enkovich <ilya.enkovich@intel.com>
29924
29925 PR target/65184
29926 * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
29927 are never passed by reference.
29928
29929 2015-03-02 Ilya Enkovich <ilya.enkovich@intel.com>
29930
29931 PR target/65183
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.
29936
29937 2015-02-28 Martin Liska <mliska@suse.cz>
29938 Jan Hubicka <hubicka@ucw.cz>
29939
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
29945 variables.
29946 * ipa-icf.h (sem_variable::init): Do not set ctor.
29947 (sem_variable::ctor): Remove.
29948
29949 2015-03-01 Aldy Hernandez <aldyh@redhat.com>
29950
29951 PR middle-end/65233
29952 * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
29953
29954 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
29955
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
29961 equals_wpa.
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.
29966
29967 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
29968
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
29975
29976 2015-02-28 Martin Liska <mliska@suse.cz>
29977 Jan Hubicka <hubicka@ucw.cz>
29978
29979 PR ipa/65245
29980 * ipa-icf-gimple.c (func_checker::compare_function_decl):
29981 Remove.
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
29990 for references.
29991
29992 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
29993
29994 * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
29995 of OBJ_TYPE_REF.
29996
29997 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
29998
29999 * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
30000 (sem_variable::merge) Likewise.
30001
30002 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
30003
30004 * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
30005 target; also match flag_ipa_devirt.
30006
30007 2015-03-01 Martin Liska <mliska@suse.cz>
30008 Jan Hubicka <hubicka@ucw.cz>
30009
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.
30015
30016 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
30017
30018 PR ipa/65237
30019 * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
30020 across COMDAT group boundary.
30021
30022 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
30023
30024 PR ipa/65232
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.
30028
30029 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
30030
30031 PR ipa/65236
30032 * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
30033
30034 2015-02-28 Xingxing Pan <xxingpan@marvell.com>
30035
30036 * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
30037 to neon_to_gp<q>.
30038
30039 2015-02-27 Vladimir Makarov <vmakarov@redhat.com>
30040
30041 * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
30042 a typo in the description.
30043
30044 2015-02-27 Vladimir Makarov <vmakarov@redhat.com>
30045
30046 PR target/64317
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):
30055 Document change.
30056
30057 2015-02-27 Martin Liska <mliska@suse.cz>
30058
30059 * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
30060 vector length condition.
30061
30062 2015-02-27 Sandra Loosemore <sandra@codesourcery.com>
30063
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.
30067
30068 2015-02-26 Jakub Jelinek <jakub@redhat.com>
30069 Aldy Hernandez <aldyh@redhat.com>
30070
30071 PR rtl-optimization/65220
30072 * config/i386/i386.md (*udivmod<mode>4_pow2): New.
30073
30074 2015-02-27 Vladimir Makarov <vmakarov@redhat.com>
30075
30076 PR target/65032
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.
30082
30083 2015-02-27 Marek Polacek <polacek@redhat.com>
30084
30085 PR c/65040
30086 * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
30087 -Wformat-signedness anymore.
30088
30089 2015-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30090
30091 * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
30092 function.
30093 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
30094
30095 2015-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30096
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.
30103
30104 2015-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30105
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.
30112
30113 2015-02-27 Richard Biener <rguenther@suse.de>
30114
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.
30119
30120 2015-02-26 Jan Hubicka <hubicka@ucw.cz>
30121 Martin Liska <mliska@suse.cz>
30122
30123 PR bootstrap/65150
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
30131 Optimization flag.
30132 * symtab.c (symtab_node::resolve_alias): When alias has aliases,
30133 redirect them.
30134 (symtab_node::make_decl_local): Set ADDRESSABLE bit when
30135 decl is used.
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):
30145 Remove.
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.
30151
30152 2015-02-26 Sandra Loosemore <sandra@codesourcery.com>
30153
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):
30161 Likewise.
30162
30163 2015-02-26 Jakub Jelinek <jakub@redhat.com>
30164
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.
30169
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.
30179
30180 2015-02-26 Martin Liska <mliska@suse.cz>
30181 Jan Hubicka <hubicka@ucw.cz>
30182
30183 PR ipa/64693
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.
30191
30192 2015-02-26 Georg-Johann Lay <avr@gjlay.de>
30193
30194 PR target/65192
30195 * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
30196 Remove.
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.
30203
30204 2015-02-26 Oleg Endo <olegendo@gcc.gnu.org>
30205
30206 PR target/61142
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.
30211
30212 2015-02-26 Marek Polacek <polacek@redhat.com>
30213
30214 PR ipa/65008
30215 * ipa-inline.c (early_inliner): Recompute inline parameters.
30216
30217 2015-02-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30218
30219 PR target/65171
30220 * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
30221 instructions with TImode operands are included in the analysis.
30222
30223 2015-02-26 Sebastian Pop <s.pop@samsung.com>
30224
30225 * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
30226 of an EDGE_FSM_THREAD.
30227
30228 2015-02-25 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
30229
30230 * config/rs6000/htm.md (tcheck): Fix assembly encoding.
30231
30232 2015-02-25 Aldy Hernandez <aldyh@redhat.com>
30233
30234 PR debug/46102
30235 * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
30236
30237 2015-02-26 Sebastian Pop <s.pop@samsung.com>
30238
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.
30243
30244 2015-02-26 Jakub Jelinek <jakub@redhat.com>
30245
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
30254 offloading LTO.
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):
30259 Likewise.
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
30290 field.
30291 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
30292
30293 2015-02-26 Yuri Rumyantsev <ysrumyan@gmail.com>
30294
30295 PR target/65161
30296 * config/i386/i386.c (ix86_sched_reorder): Skip instruction
30297 reordering for selective scheduling.
30298
30299 2015-02-26 Terry Guo <terry.guo@arm.com>
30300
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
30310
30311 2015-02-25 Kai Tietz <ktietz@redhat.com>
30312
30313 PR tree-optimization/61917
30314 * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
30315 that reduc_def_stmt is null.
30316
30317 2015-02-25 Martin Liska <mliska@suse.cz>
30318
30319 * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
30320 hard register variables.
30321
30322 2015-02-25 Kai Tietz <ktietz@redhat.com>
30323
30324 PR target/64212
30325 * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
30326 (symtab::noninterposable_alias): Likewise.
30327
30328 2015-02-25 Ilya Enkovich <ilya.enkovich@intel.com>
30329
30330 PR target/65167
30331 * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
30332 bounds registers.
30333 (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
30334
30335 2015-02-25 Alan Lawrence <alan.lawrence@arm.com>
30336
30337 PR target/64997
30338 * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
30339 as split condition; force split via '#' in output pattern.
30340
30341 2015-02-25 Richard Biener <rguenther@suse.de>
30342 Kai Tietz <ktietz@redhat.com>
30343
30344 PR tree-optimization/61917
30345 * tree-vect-loop.c (vectorizable_reduction): Allow
30346 vect_internal_def without reduction to exit graceful.
30347
30348 2015-02-25 Georg-Johann Lay <avr@gjlay.de>
30349
30350 PR target/65196
30351 * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
30352 only with NONDEBUG_INSN_P.
30353
30354 2015-02-25 Georg-Johann Lay <avr@gjlay.de>
30355
30356 Use variadic macros with avr-log.c.
30357
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.
30366
30367 2015-02-25 Jakub Jelinek <jakub@redhat.com>
30368
30369 PR lto/64374
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
30376 function.
30377 (TARGET_OPTION_POST_STREAM_IN): Redefine.
30378
30379 2015-02-24 Jeff Law <law@redhat.com>
30380
30381 PR target/65117
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.
30385
30386 2015-02-24 Aldy Hernandez <aldyh@redhat.com>
30387
30388 * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
30389 CXX_MEM_STAT_INFO.
30390
30391 2015-02-24 DJ Delorie <dj@redhat.com>
30392
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.
30397
30398 2015-02-24 Bernd Schmidt <bernds@codesourcery.com>
30399
30400 * omp-low.c (create_omp_child_function): Tag entrypoint
30401 functions with a special attribute.
30402
30403 2015-02-24 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
30404
30405 PR target/65058
30406 * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
30407
30408 2015-02-24 Vladimir Makarov <vmakarov@redhat.com>
30409
30410 PR rtl-optimization/65123
30411 * lra-remat.c (operand_to_remat): Check hard regs in insn
30412 definition too.
30413
30414 2015-02-24 Nick Clifton <nickc@redhat.com>
30415
30416 * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
30417 to the assembler.
30418
30419 2015-02-24 Thomas Schwinge <thomas@codesourcery.com>
30420
30421 PR libgomp/64625
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.
30439
30440 2015-02-24 Georg-Johann Lay <avr@gjlay.de>
30441
30442 * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
30443
30444 2015-02-24 Jakub Jelinek <jakub@redhat.com>
30445
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.
30449
30450 2015-02-24 Alan Modra <amodra@gmail.com>
30451
30452 PR target/65172
30453 * config/rs6000/rs6000.c (get_memref_parts): Only return true
30454 when *base is a reg. Handle nested plus addresses. Simplify
30455 pre_modify test.
30456
30457 2015-02-22 Max Filippov <jcmvbkbc@gmail.com>
30458
30459 * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
30460 use natural alignment when optimizing for size.
30461
30462 2015-02-23 Kaz Kojima <kkojima@gcc.gnu.org>
30463
30464 PR target/65153
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.
30468
30469 2015-02-23 Richard Sandiford <richard.sandiford@arm.com>
30470
30471 PR fortran/63427
30472 * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
30473 too big for a wide_int. Implement missing wrapping operation.
30474
30475 2015-02-23 Oleg Endo <olegendo@gcc.gnu.org>
30476
30477 PR target/65163
30478 * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
30479 instead of const_int 4294901760.
30480
30481 2015-02-23 Georg-Johann Lay <avr@gjlay.de>
30482
30483 * config/avr/t-avr: Fix typo in comment.
30484
30485 2015-02-21 Richard Sandiford <richard.sandiford@arm.com>
30486
30487 * doc/rtl.texi (fma): Clarify documentation.
30488
30489 2015-02-20 Aldy Hernandez <aldyh@redhat.com>
30490
30491 PR debug/58123
30492 * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
30493 over input_location.
30494
30495 2015-02-20 Bernd Schmidt <bernds@codesourcery.com>
30496
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):
30501 Define.
30502 * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
30503 * doc/tm.texi: Regenerate.
30504 * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
30505
30506 2015-02-20 Vladimir Makarov <vmakarov@redhat.com>
30507
30508 PR target/64172
30509 * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
30510
30511 2015-02-20 Richard Biener <rguenther@suse.de>
30512
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.
30517
30518 2015-02-20 Jakub Jelinek <jakub@redhat.com>
30519 Martin Liska <mliska@suse.cz>
30520
30521 PR target/63892
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.
30528
30529 2015-02-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30530
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
30535 in the shift step.
30536 (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
30537
30538 2015-02-20 Bernd Schmidt <bernds@codesourcery.com>
30539
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.
30550
30551 2015-02-20 Georg-Johann Lay <avr@gjlay.de>
30552
30553 PR target/64452
30554 * config/avr/avr.md (pushhi_insn): New insn.
30555 (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
30556
30557 2015-02-20 Bernd Schmidt <bernds@codesourcery.com>
30558 Jakub Jelinek <jakub@redhat.com>
30559
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
30563 in_lto_p.
30564
30565 2015-02-19 John David Anglin <danlgin@gcc.gnu.org>
30566
30567 * config/pa/pa.c (pa_emit_move_sequence): Always force
30568 (const (plus (symbol) (const_int))) to const mem. Put REG_EQUAL
30569 note on insn.
30570
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.
30574
30575 2015-02-19 Martin Jambor <mjmabor@suse.cz>
30576 Jan Hubicka <hubicka@ucw.cz>
30577
30578 PR ipa/65028
30579 * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
30580 across jump functions.
30581
30582 2015-02-19 Uros Bizjak <ubizjak@gmail.com>
30583
30584 * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
30585
30586 2015-02-19 Sandra Loosemore <sandra@codesourcery.com>
30587
30588 * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
30589
30590 2015-02-19 Richard Henderson <rth@redhat.com>
30591
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.
30595
30596 2015-02-19 Jakub Jelinek <jakub@redhat.com>
30597
30598 PR lto/65012
30599 * varpool.c (varpool_node::get_constructor): Return early
30600 if this->lto_file_data is NULL.
30601
30602 2015-02-19 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
30603
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.
30611
30612 2015-02-18 Trevor Saunders <tsaunders@mozilla.com>
30613
30614 * ipa-icf.c (sem_function::equals_private): Adjust.
30615 (sem_function::bb_dict_test): Take a vec<int> * instead of
30616 auto_vec<int>.
30617 * ipa-icf.h (bb_dict_test): Likewise.
30618
30619 2015-02-18 Jakub Jelinek <jakub@redhat.com>
30620
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.
30626
30627 2015-02-18 Tom de Vries <tom@codesourcery.com>
30628
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.
30633
30634 2015-02-18 H.J. Lu <hongjiu.lu@intel.com>
30635
30636 PR target/65064
30637 * config/ia64/predicates.md (sdata_symbolic_operand): Return false
30638 for common symbols.
30639
30640 2015-02-18 Jakub Jelinek <jakub@redhat.com>
30641
30642 * config/i386/t-intelmic (mkoffload.o): Remove dependency on
30643 insn-modes.h.
30644 (ALL_HOST_OBJS): Add mkoffload.o.
30645 * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
30646
30647 2015-02-18 Jan Hubicka <hubicka@ucw.cz>
30648
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.
30658
30659 2015-02-18 Richard Biener <rguenther@suse.de>
30660
30661 PR tree-optimization/65063
30662 * tree-predcom.c (determine_unroll_factor): Return 1 if we
30663 have replaced looparound PHIs.
30664
30665 2015-02-18 Martin Liska <mliska@suse.cz>
30666
30667 * lto-streamer.c (lto_streamer_init): Encapsulate
30668 streamer_check_handled_ts_structures with checking macro.
30669
30670 2015-02-18 Jakub Jelinek <jakub@redhat.com>
30671
30672 PR ipa/65087
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.
30677
30678 2015-02-18 Richard Biener <rguenther@suse.de>
30679
30680 PR tree-optimization/62217
30681 * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
30682 into BIVs.
30683
30684 2015-02-18 Marek Polacek <polacek@redhat.com>
30685
30686 PR sanitizer/65081
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).
30691
30692 2015-02-18 Thomas Schwinge <thomas@codesourcery.com>
30693
30694 * doc/install.texi (nvptx-*-none): New section.
30695 * doc/invoke.texi (Nvidia PTX Options): Likewise.
30696 * config/nvptx/nvptx.opt: Update.
30697
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
30702 GCC_INSTALL_NAME.
30703
30704 * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
30705
30706 2015-02-18 Andrew Pinski <apinski@cavium.com>
30707 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
30708
30709 * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
30710 Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
30711
30712 2015-02-17 Jan Hubicka <hubicka@ucw.cz>
30713
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.
30728
30729 2015-02-17 Oleg Endo <olegendo@gcc.gnu.org>
30730
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.
30735
30736 2015-02-17 H.J. Lu <hongjiu.lu@intel.com>
30737
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
30742 -O2.
30743 (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
30744 * doc/invoke.texi: Document -fipa-cp-alignment.
30745
30746 2015-02-17 Oleg Endo <olegendo@gcc.gnu.org>
30747
30748 PR target/64793
30749 * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
30750 to nil. Adjust comments.
30751
30752 2015-02-17 Jan Hubicka <hubicka@ucw.cz>
30753
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.
30768
30769 2015-02-17 Thomas Schwinge <thomas@codesourcery.com>
30770
30771 * config/nvptx/mkoffload.c (parse_file): Fix logic error in
30772 skipping of "strange" tokens.
30773
30774 2015-02-17 Jeff Law <law@redhat.com>
30775
30776 * tree-vrp.c (identify_jump_threads): Use last_stmt. Remove
30777 obsolete comment.
30778
30779 2015-02-17 James Greenhalgh <james.greenhalgh@arm.com>
30780
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.
30784
30785 2015-02-16 Jan Hubicka <hubicka@ucw.cz>
30786
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
30790 not aliases.
30791 * varasm.c (default_binds_local_p_2): External definitions do not
30792 count as definitions here.
30793
30794 2015-02-16 Jeff Law <law@redhat.com>
30795
30796 PR tree-optimization/64823
30797 * tree-vrp.c (identify_jump_threads): Handle blocks with no real
30798 statements.
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.
30803
30804 2015-02-16 Jakub Jelinek <jakub@redhat.com>
30805 James Greenhalgh <james.greenhalgh@arm.com>
30806
30807 PR ipa/64963
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.
30812
30813 2015-02-16 Richard Biener <rguenther@suse.de>
30814
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.
30819
30820 2015-02-16 James Greenhalgh <james.greenhalgh@arm.com>
30821
30822 * doc/install.texi (Specific): Reorder targets list to put
30823 aarch64 in alphabetical order. Add a link to aarch64*-*-*
30824 from the top menu.
30825
30826 2015-02-16 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
30827 David Edelsohn <dje.gcc@gmail.com>
30828
30829 PR target/65058
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
30833 mapping class.
30834
30835 2015-02-16 David Eelsohn <dje.gcc@gmail.com>
30836
30837 PR target/53348
30838 * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
30839 ASM_WEAKEN_DECL if defined.
30840
30841 2015-02-16 Richard Biener <rguenther@suse.de>
30842
30843 PR lto/65015
30844 * varasm.c (default_file_start): For LTO produced units
30845 emit <artificial> as file directive.
30846
30847 2015-02-16 Richard Biener <rguenther@suse.de>
30848
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.
30853
30854 2015-02-16 Jan Hubicka <hubicka@ucw.cz>
30855
30856 PR ipa/65059
30857 * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
30858 external functions.
30859
30860 2015-02-15 Sandra Loosemore <sandra@codesourcery.com>
30861
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.
30872
30873 2015-02-15 Jan Hubicka <hubicka@ucw.cz>
30874
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
30879 comment.
30880
30881 2015-02-15 John David Anglin <danglin@gcc.gnu.org>
30882
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
30885 index address.
30886 * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
30887 to a register.
30888
30889 2015-02-14 Jan Hubicka <hubicka@ucw.cz>
30890
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.
30896
30897 2015-02-14 Jan Hubicka <hubicka@ucw.cz>
30898
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):
30922 Move inline.
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.
30936
30937 2015-02-14 Jakub Jelinek <jakub@redhat.com>
30938
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.
30943
30944 2015-02-13 Jeff Law <law@redhat.com>
30945
30946 PR bootstrap/65060
30947 Revert my change for tree-optimization/64823.
30948
30949 2015-02-13 Jakub Jelinek <jakub@redhat.com>
30950
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.
30954
30955 2015-02-13 Jeff Law <law@redhat.com>
30956
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.
30963
30964 PR rtl-optimization/47477
30965 * match.pd (convert (plus/minus (convert @0) (convert @1): New
30966 simplifier to narrow arithmetic.
30967
30968 2015-02-13 Jan Hubicka <hubicka@ucw.cz>
30969
30970 PR ipa/65028
30971 * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
30972 polymorphic call info when type is not known to be preserved.
30973
30974 2015-02-13 Maritn Jambor <mjambor@suse.cz>
30975
30976 PR ipa/65028
30977 * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
30978 (inline_call): Use it.
30979
30980 2015-02-13 Thomas Schwinge <thomas@codesourcery.com>
30981
30982 * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
30983 GOMP_DEVICE_NVIDIA_PTX.
30984
30985 2015-02-13 Jakub Jelinek <jakub@redhat.com>
30986
30987 PR ipa/65034
30988 * stmt.c (emit_case_nodes): Use void_type_node instead of
30989 NULL_TREE as LABEL_DECL type.
30990
30991 2015-02-13 John David Anglin <danglin@gcc.gnu.org>
30992
30993 * config/pa/constraints.md: Change "Q" and "T" constraints to memory
30994 constraints.
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
30997 SOM target.
30998
30999 2015-02-13 Ilya Enkovich <ilya.enkovich@intel.com>
31000
31001 PR tree-optimization/65002
31002 * tree-cfg.c (pass_data_fixup_cfg): Don't update
31003 SSA on start.
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.
31007
31008 2015-02-13 Richard Biener <rguenther@suse.de>
31009
31010 PR lto/65015
31011 * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
31012 for LTO produced CUs.
31013
31014 2015-02-13 Bin Cheng <bin.cheng@arm.com>
31015
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.
31022
31023 2015-02-13 H.J. Lu <hongjiu.lu@intel.com>
31024 Richard Henderson <rth@redhat.com>
31025
31026 PR rtl/32219
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
31038 via symtab_node.
31039 (default_elf_asm_output_external): Emit visibility when specified.
31040
31041 2015-02-13 Alan Modra <amodra@gmail.com>
31042
31043 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
31044 code setting up r11 for out-of-line fp restore.
31045
31046 2015-02-13 Eric Botcazou <ebotcazou@adacore.com>
31047
31048 * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
31049 (muser-mode): Likewise.
31050
31051 2015-02-13 Alan Modra <amodra@gmail.com>
31052
31053 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
31054 or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
31055
31056 2015-02-12 David Howells <dhowells@redhat.com>
31057
31058 * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
31059 warning.
31060 * tree-ssa-uninit.c (dump_predicates): Likewise.
31061 * opts.c (print_filtered_help): Likewise.
31062
31063 2015-02-12 Jakub Jelinek <jakub@redhat.com>
31064
31065 * dwarf2out.c (output_die): Use "%s", name instead of name to
31066 avoid -Wformat-security warning.
31067
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.
31072
31073 2015-02-12 Jason Merrill <jason@redhat.com>
31074
31075 * common.opt (-flifetime-dse): New.
31076
31077 2015-02-12 Jakub Jelinek <jakub@redhat.com>
31078
31079 PR sanitizer/65019
31080 * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
31081
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.
31086
31087 2015-02-11 Jeff Law <law@redhat.com>
31088
31089 PR target/63347
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.
31092
31093 2015-02-11 Jan Hubicka <hubicka@ucw.cz>
31094
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.
31099
31100 2015-02-11 Richard Henderson <rth@redhat.com>
31101
31102 PR sanitize/65000
31103 * tree-eh.c (mark_reachable_handlers): Mark source and destination
31104 regions of __builtin_eh_copy_values.
31105
31106 2015-02-11 Jakub Jelinek <jakub@redhat.com>
31107
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.
31113
31114 2015-02-11 Thomas Schwinge <thomas@codesourcery.com>
31115
31116 * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
31117 "diagnostic-core.h".
31118 (main): Initialize progname, and call diagnostic_initialize.
31119
31120 * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
31121 instead of __OPENMP_TARGET__.
31122
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.
31126
31127 2015-02-11 H.J. Lu <hongjiu.lu@intel.com>
31128
31129 * doc/sourcebuild.texi (pie_enabled): Document.
31130
31131 2015-02-11 Martin Liska <mliska@suse.cz>
31132
31133 PR ipa/64813
31134 * cgraphunit.c (cgraph_node::expand_thunk): Do not create
31135 a return value for call to a function that is noreturn.
31136
31137 2015-02-11 Richard Biener <rguenther@suse.de>
31138
31139 PR lto/65015
31140 * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
31141 and -fresolution.
31142
31143 2015-02-11 Andrew Pinski <apinski@cavium.com>
31144
31145 PR target/64893
31146 * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
31147 Change the first argument type to size_type_node and add another
31148 size_type_node.
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.
31155
31156 2015-02-11 Jakub Jelinek <jakub@redhat.com>
31157
31158 PR target/61925
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.
31164
31165 2015-02-10 Jan Hubicka <hubicka@ucw.cz>
31166
31167 PR ipa/65005
31168 * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
31169 function.
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.
31187
31188 2015-02-10 David Wohlferd <dw@LimeGreenSocks.com>
31189 Sandra Loosemore <sandra@codesourcery.com>
31190
31191 * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
31192 to inline asm. List dialects in proper order.
31193
31194 2015-02-10 David Wohlferd <dw@LimeGreenSocks.com>
31195 Sandra Loosemore <sandra@codesourcery.com>
31196
31197 * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
31198
31199 2015-02-10 David Wohlferd <dw@LimeGreenSocks.com>
31200
31201 * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
31202 modified) reference to Solaris.
31203
31204 2015-02-10 Sandra Loosemore <sandra@codesourcery.com>
31205
31206 * doc/extend.texi (Extended Asm): Fix typos.
31207
31208 2015-02-10 Jakub Jelinek <jakub@redhat.com>
31209
31210 PR sanitizer/65004
31211 * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
31212
31213 2015-02-10 Oleg Endo <olegendo@gcc.gnu.org>
31214
31215 PR target/64661
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
31221 predicates.
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
31226 PR 64974.
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
31238 constraint.
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.
31281
31282 2015-02-10 Uros Bizjak <ubizjak@gmail.com>
31283
31284 * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
31285 and 3 earlyclobber operands.
31286
31287 2015-02-10 Jan Hubicka <hubicka@ucw.cz>
31288
31289 * common.opt (fstack-reuse): Mark as optimization.
31290
31291 2015-02-10 Jan Hubicka <hubicka@ucw.cz>
31292
31293 PR ipa/64982
31294 * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
31295
31296 2015-02-10 Trevor Saunders <tsaunders@mozilla.com>
31297
31298 PR tree-optimization/64326
31299 * cfghooks.c (make_forwarder_block): Cap frequency of created block.
31300
31301 2015-02-10 Rainer Emrich <rainer@emrich-ebersheim.de>
31302
31303 PR gcov-profile/61889
31304 * gcov-tool.c: Remove wrong #if !defined(_WIN32)
31305
31306 2015-02-10 Richard Biener <rguenther@suse.de>
31307
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.
31313
31314 2015-02-10 Richard Biener <rguenther@suse.de>
31315
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.
31320
31321 2015-02-10 Alexander Monakov <amonakov@ispras.ru>
31322
31323 * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
31324 enabled by default together with var-tracking.
31325
31326 2015-02-10 Nick Clifton <nickc@redhat.com>
31327
31328 * config/rl78/rl78.c: Remove DIV attribute code accidentally
31329 included in previous rl78 commit.
31330
31331 2015-02-10 Richard Biener <rguenther@suse.de>
31332
31333 * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
31334 * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
31335 return the bitpack.
31336
31337 2015-02-09 Trevor Saunders <tsaunders@mozilla.com>
31338
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.
31344
31345 2015-02-09 Trevor Saunders <tsaunders@mozilla.com>
31346
31347 PR lto/64076
31348 * ipa-visibility.c (update_visibility_by_resolution_info): Only
31349 assert when not in lto mode.
31350
31351 2015-02-09 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
31352
31353 * ira-color.c (setup_left_conflict_sizes_p): Simplify
31354 initialization/assignment of conflict_size.
31355
31356 2015-02-09 Jan Hubicka <hubicka@ucw.cz>
31357
31358 PR ipa/64978
31359 * ipa-cp.c (gather_caller_stats): Skip thunks.
31360 (propagate_constants_topo): Skip aliases.
31361
31362 2015-02-09 Kaz Kojima <kkojima@gcc.gnu.org>
31363
31364 PR target/64761
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.
31371
31372 2015-02-09 Joern Rennecke <joern.rennecke@embecosm.com>
31373 Kaz Kojima <kkojima@gcc.gnu.org>
31374
31375 PR target/64761
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.
31384
31385 2015-02-09 Jakub Jelinek <jakub@redhat.com>
31386
31387 PR sanitizer/64981
31388 * builtins.c (expand_builtin): Call targetm.expand_builtin
31389 for BUILT_IN_MD builtins regardless of asan_intercepted_p.
31390
31391 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
31392
31393 PR ipa/61548
31394 * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
31395
31396 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
31397
31398 PR ipa/63566
31399 * ipa-icf.c (set_local): New function.
31400 (sem_function::merge): Use it.
31401
31402 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
31403
31404 * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
31405 (add_type_duplicate): Fix comparison of BINFOs.
31406
31407 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
31408
31409 * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
31410 on getting VOID pointer.
31411
31412 2015-02-09 Jakub Jelinek <jakub@redhat.com>
31413
31414 PR target/64979
31415 * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
31416 va_list escapes.
31417
31418 2015-02-09 Richard Biener <rguenther@suse.de>
31419
31420 * genmatch.c (replace_id): Copy expr_type.
31421
31422 2015-02-09 Richard Biener <rguenther@suse.de>
31423
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.
31437
31438 2015-02-09 Richard Biener <rguenther@suse.de>
31439
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.
31445
31446 2015-02-09 Martin Liska <mliska@suse.cz>
31447
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.
31451
31452 2015-02-08 Andrew Pinski <apinski@cavium.com>
31453
31454 * config/aarch64/aarch64.c (gty_dummy): Delete.
31455
31456 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
31457
31458 PR ipa/63566
31459 * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
31460 (cgraph_node::local_p): Remove thunk related FIXME.
31461
31462 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
31463
31464 PR ipa/63566
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
31469 on mismatches.
31470 (init_cumulative_args): Look through aliases.
31471
31472 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
31473
31474 PR ipa/63566
31475 * ipa-split.c (execute_split_functions): Split if function has aliases.
31476
31477 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
31478
31479 PR ipa/63566
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.
31483
31484 2015-02-07 Sandra Loosemore <sandra@codesourcery.com>
31485
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
31489 basic asm.
31490 (Extended Asm): Copy-edit. Document new escape syntax and
31491 %l[label] syntax.
31492 (Global Reg Vars): Copy-edit.
31493 (Local Reg Vars): Likewise.
31494
31495 2015-02-06 David Edelsohn <dje.gcc@gmail.com>
31496
31497 PR debug/2714
31498 PR bootstrap/64256
31499 * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
31500 (DBX_CONTIN_CHAR): Define.
31501
31502 2015-02-06 Sebastian Pop <s.pop@samsung.com>
31503 Brian Rzycki <b.rzycki@samsung.com>
31504
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.
31509
31510 2015-02-06 Jakub Jelinek <jakub@redhat.com>
31511
31512 * toplev.c (process_options): Change flag_ipa_ra before creating
31513 optimization_{default,current}_node.
31514
31515 PR ipa/64896
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.
31520
31521 2015-02-06 Vladimir Makarov <vmakarov@redhat.com>
31522
31523 * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
31524
31525 2015-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
31526
31527 PR target/64205
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.
31531
31532 2015-02-06 Jakub Jelinek <jakub@redhat.com>
31533
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.
31542
31543 2015-02-06 Renlin Li <renlin.li@arm.com>
31544
31545 * tree-ssa-forwprop.c (execute): Keep location info while rewrite
31546 complex gimple.
31547 * tree-ssa.c (execute_update_addresses_taken): Likewise.
31548
31549 2015-02-06 Jeff Law <law@redhat.com>
31550
31551 PR target/64889
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.
31557
31558 2015-02-06 Jakub Jelinek <jakub@redhat.com>
31559
31560 PR rtl-optimization/64957
31561 PR debug/64817
31562 * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
31563 IOR rather than for AND.
31564
31565 2015-02-06 Eric Botcazou <ebotcazou@adacore.com>
31566
31567 PR target/62631
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.
31570
31571 2015-02-05 Jeff Law <law@redhat.com>
31572
31573 PR target/17306
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.
31581
31582 PR target/43264
31583 * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
31584 24 to 28 bits for the H8/300.
31585
31586 2015-02-06 Alan Modra <amodra@gmail.com>
31587
31588 PR target/64876
31589 * config/rs6000/rs6000.c (chain_already_loaded): New function.
31590 (rs6000_call_aix): Use it.
31591
31592 2015-02-05 Jan Hubicka <hubicka@ucw.cz>
31593
31594 * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
31595 check.
31596
31597 2015-02-05 Joern Rennecke <joern.rennecke@embecosm.com>
31598
31599 * config/h8300/constraints.md ("U" constraint): Use strict
31600 variant of REG_OK_FOR_BASE_P after reload has started.
31601
31602 2015-02-04 Mantas Mikaitis <mantas.mikaitis@arm.com>
31603
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.
31607
31608 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
31609 Trevor Saunders <tsaunders@mozilla.com>
31610
31611 PR ipa/61548
31612 * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
31613
31614 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
31615
31616 PR ipa/61548
31617 * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
31618 when removing varpool nodes.
31619
31620 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
31621
31622 PR ipa/61548
31623 * varpool.c (varpool_node::remove): Fix order of variables.
31624
31625 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
31626
31627 PR ipa/64686
31628 * ipa-inline.c (inline_small_functions): Fix ordering issue between
31629 speculation resolution and key updates.
31630
31631 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
31632
31633 * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
31634 about not letting any speculative edges unupdated.
31635
31636 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
31637
31638 PR gcov/64123
31639 * gcov-io.c (gcov_var): Export.
31640
31641 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
31642
31643 PR middle-end/64922
31644 * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
31645 edges that become speculative.
31646
31647 2015-02-04 Jakub Jelinek <jakub@redhat.com>
31648
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
31652 DW_LANG_Fortran08.
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
31659 lang_GNU_Fortran.
31660
31661 2015-02-04 Eric Botcazou <ebotcazou@adacore.com>
31662
31663 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
31664 (RTX_OK_FOR_OLO10_P): Likewise.
31665
31666 2015-02-04 Eric Botcazou <ebotcazou@adacore.com>
31667
31668 * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
31669
31670 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
31671
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.
31679
31680 2015-02-04 H.J. Lu <hongjiu.lu@intel.com>
31681
31682 PR rtl-optimization/64905
31683 * lra-eliminations.c (setup_can_eliminate): Clear hard frame
31684 pointer alignment if it isn't needed.
31685
31686 2015-02-04 Matthew Wahab <matthew.wahab@arm.com>
31687
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".
31692
31693 2015-02-04 Nick Clifton <nickc@redhat.com>
31694
31695 * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
31696 inside a MEM.
31697
31698 2015-02-04 Jakub Jelinek <jakub@redhat.com>
31699
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
31703 of DEF_BUILTIN.
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.
31714
31715 2015-02-04 Alexandre Oliva <aoliva@redhat.com>
31716
31717 PR debug/64817
31718 * cfgexpand.c (expand_debug_expr): Compute unsignedp from
31719 operands for tcc_comparison exprs. Fix typos.
31720
31721 PR debug/64817
31722 * simplify-rtx.c (simplify_binary_operation_1): Simplify one
31723 of two XORs that have an intervening AND or IOR.
31724
31725 PR debug/64817
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.
31729
31730 2015-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31731
31732 * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
31733 manual swaps in all peepholes.
31734
31735 2015-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31736
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.
31740
31741 2015-02-04 James Greenhalgh <james.greenhalgh@arm.com>
31742
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.
31757
31758 2015-02-04 Matthew Wahab <matthew.wahab@arm.com>
31759
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.
31768
31769 2015-02-04 Nick Clifton <nickc@redhat.com>
31770
31771 PR target/64408
31772 * config/fr30/predicates.md (di_operand): Add SUBREG to the list
31773 of accepted codes.
31774 (nonimmediate_di_operand): Likewise.
31775
31776 * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
31777 prefixes of known F5 using MSP430 MCUs.
31778
31779 2015-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31780
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.
31784
31785 2015-02-04 Ilya Enkovich <ilya.enkovich@intel.com>
31786
31787 * varasm.c (do_assemble_alias): Follow transparent alias
31788 chain for target.
31789 (default_assemble_visibility): Follow transparent alias
31790 chain for decl name.
31791
31792 2015-02-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
31793
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.
31797
31798 2015-02-03 Jakub Jelinek <jakub@redhat.com>
31799
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.
31805
31806 2015-02-03 Oleg Endo <olegendo@gcc.gnu.org>
31807
31808 PR target/64660
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
31828 unused.
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
31852 unused.
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.
31859
31860 2015-02-03 David Malcolm <dmalcolm@redhat.com>
31861
31862 PR jit/64810
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
31868 gcc-main.c.
31869 (driver_get_configure_time_options): New function.
31870 * gcc.h (class driver): Move this declaration here, from
31871 gcc.c.
31872 (driver_get_configure_time_options): New declaration.
31873
31874 2015-02-03 Jan Hubicka <hubicka@ucw.cz>
31875
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.
31880
31881 2015-02-03 Richard Sandiford <richard.sandiford@arm.com>
31882
31883 * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
31884 instead of OBJECT_P.
31885
31886 2015-02-03 Eric Botcazou <ebotcazou@adacore.com>
31887
31888 PR target/62631
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.
31893
31894 2015-02-03 Jakub Jelinek <jakub@redhat.com>
31895
31896 PR other/63504
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.
31903
31904 2015-02-02 Jan Hubicka <hubicka@ucw.cz>
31905
31906 * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
31907 if some always_inline was inlined, apply changes before inlining
31908 heuristically.
31909
31910 2015-02-02 David Malcolm <dmalcolm@redhat.com>
31911
31912 PR jit/64810
31913 * config/arm/arm.c (arm_option_override): Set
31914 arm_selected_arch/cpu/tune to NULL on entry.
31915
31916 2015-02-02 Tejas Belagod <tejas.belagod@arm.com>
31917 Andrew Pinski <pinskia@gcc.gnu.org>
31918 Jakub Jelinek <jakub@gcc.gnu.org>
31919
31920 PR target/64231
31921 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
31922 integer typing for small model. Use IN_RANGE.
31923
31924 2015-02-02 Richard Biener <rguenther@suse.de>
31925
31926 * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
31927 * tree-vrp.c (vrp_valueize_1): Likewise.
31928
31929 2015-02-02 Alan Modra <amodra@gmail.com>
31930
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.
31936
31937 2015-02-01 David Edelsohn <dje.gcc@gmail.com>
31938
31939 PR target/64047
31940 * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
31941 explicit default options.
31942
31943 2015-02-01 Jan Hubicka <hubicka@ucw.cz>
31944
31945 PR ipa/64872
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.
31949
31950 2015-02-01 Jakub Jelinek <jakub@redhat.com>
31951
31952 PR debug/64817
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
31961 value.
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.
31965
31966 2015-02-01 Oleg Endo <olegendo@gcc.gnu.org>
31967
31968 PR target/64851
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.
31975
31976 2015-02-01 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
31977
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.
31983
31984 2015-01-31 Sandra Loosemore <sandra@codesourcery.com>
31985
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
31992 after renaming.
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
31997 renaming.
31998 (x86 Windows Options): Likewise.
31999
32000 2015-01-31 Sandra Loosemore <sandra@codesourcery.com>
32001
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
32004 variants.
32005 * doc/invoke.texi: Likewise.
32006 * doc/md.texi: Likewise.
32007
32008 2015-01-31 Uros Bizjak <ubizjak@gmail.com>
32009
32010 PR target/64882
32011 * config/i386/predicates.md (address_no_seg_operand): Reject
32012 non-CONST_INT_P operands in invalid mode.
32013
32014 2015-01-31 Uros Bizjak <ubizjak@gmail.com>
32015
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.
32023
32024 2015-01-30 Vladimir Makarov <vmakarov@redhat.com>
32025
32026 PR target/64688
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.
32032
32033 2015-01-30 Vladimir Makarov <vmakarov@redhat.com>
32034
32035 PR target/64617
32036 * lra-constraints.c (prohibited_class_reg_set_mode_p): New
32037 function.
32038 (process_alt_operands): Use it.
32039 (curr_insn_transform): Check the optional reload pseudo class is
32040 ok for the mode.
32041
32042 2015-01-30 Joseph Myers <joseph@codesourcery.com>
32043
32044 * diagnostic.c (fatal_error (const char *, ...)): Remove function.
32045 * diagnostic-core.h (fatal_error (const char *, ...)): Remove
32046 prototype.
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.
32061
32062 2015-01-30 Martin Liska <mliska@suse.cz>
32063
32064 * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
32065 in #pragma GCC diagnostic guards.
32066
32067 2015-01-30 Richard Biener <rguenther@suse.de>
32068
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.
32084
32085 2015-01-29 Jeff Law <law@redhat.com>
32086
32087 * combine.c (try_combine): Fix typo in comment.
32088
32089 2015-01-29 Segher Boessenkool <segher@kernel.crashing.org>
32090
32091 PR target/64580
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
32096 thunks.
32097
32098 2015-01-29 Jeff Law <law@redhat.com>
32099
32100 PR target/15184
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.
32105
32106 2015-01-29 Yuri Rumyantsev <ysrumyan@gmail.com>
32107
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
32111 use.
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.
32116
32117 2015-01-29 Richard Biener <rguenther@suse.de>
32118
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.
32123
32124 2015-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32125
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.
32130
32131 2015-01-29 Uros Bizjak <ubizjak@gmail.com>
32132
32133 * config/i386/i386.c (ix86_mode_after): Make static.
32134
32135 2015-01-29 Richard Biener <rguenther@suse.de>
32136
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.
32142
32143 2015-01-29 Ilya Enkovich <ilya.enkovich@intel.com>
32144 Uros Bizjak <ubizjak@gmail.com>
32145
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.
32152
32153 2015-01-29 Ilya Enkovich <ilya.enkovich@intel.com>
32154
32155 PR middle-end/64805
32156 * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
32157 to avoid error in cgraph node verification.
32158
32159 2015-01-29 Marek Polacek <polacek@redhat.com>
32160
32161 * doc/standards.texi: Reflect that the default for C is gnu11.
32162
32163 2015-01-29 Kaz Kojima <kkojima@gcc.gnu.org>
32164
32165 PR target/64761
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.
32170
32171 2015-01-27 Caroline Tice <cmtice@google.com>
32172
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.
32188
32189 2015-01-29 Jan Hubicka <hubicka@ucw.cz>
32190
32191 PR ipa/64801
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.
32200
32201 2015-01-29 Jan Hubicka <hubicka@ucw.cz>
32202
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.
32206
32207 2015-01-29 Bernd Edlinger <bernd.edlinger@hotmail.de>
32208
32209 * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
32210 * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
32211
32212 2015-01-28 Oleg Endo <olegendo@gcc.gnu.org>
32213
32214 PR target/64659
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
32247 to allow R0 usage.
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
32251 to allow R0 usage.
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
32285 and K08.
32286
32287 2015-01-28 Jakub Jelinek <jakub@redhat.com>
32288
32289 PR other/63504
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.
32295
32296 2015-01-28 Jan Hubicka <hubicka@ucw.cz>
32297
32298 * varpool.c (tls_model_names): Fix names.
32299 (varpool_node::dump): Dump tls- prefix for tls models.
32300
32301 2015-01-28 Thomas Schwinge <thomas@codesourcery.com>
32302 Bernd Schmidt <bernds@codesourcery.com>
32303 Nathan Sidwell <nathan@codesourcery.com>
32304
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
32310 function.
32311 (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
32312
32313 2015-01-28 Yuri Rumyantsev <ysrumyan@gmail.com>
32314
32315 PR middle-end/64809
32316 * cfgexpand.c (reorder_operands): Skip debug gimples.
32317
32318 2015-01-28 Ilya Enkovich <ilya.enkovich@intel.com>
32319
32320 PR tree-optimization/64277
32321 * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
32322 range info when possible to refine estimation.
32323
32324 2015-01-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
32325
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 ().
32332
32333 2015-01-28 James Greenhalgh <james.greenhalgh@arm.com>
32334
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.
32339
32340 2015-01-28 Robert Suchanek <robert.suchanek@imgtec.com>
32341
32342 * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
32343 for all vector modes.
32344
32345 2015-01-28 Jakub Jelinek <jakub@redhat.com>
32346
32347 PR bootstrap/64612
32348 * doc/sourcebuild.texi (comdat_group): Document.
32349
32350 2015-01-28 Terry Guo <terry.guo@arm.com>
32351
32352 * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
32353
32354 2015-01-27 David Malcolm <dmalcolm@redhat.com>
32355
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
32359 print_version.
32360 (process_options): Likewise.
32361 (toplev::main): Likewise.
32362 * toplev.h (print_version): Add new param to decl.
32363
32364 2015-01-27 Jan Hubicka <hubicka@ucw.cz>
32365
32366 PR ipa/60871
32367 PR ipa/64139
32368 * tree.c (lookup_binfo_at_offset): New function.
32369 (get_binfo_at_offset): Use it.
32370
32371 2015-01-27 Jan Hubicka <hubicka@ucw.cz>
32372
32373 PR ipa/64282
32374 * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
32375 on vtable being vtable.
32376
32377 2015-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
32378
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):
32385 Renamed.
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
32393 attribute.
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.
32405
32406 2015-01-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
32407 Jiong Wang <jiong.wang@arm.com>
32408
32409 * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
32410 of scratch reg.
32411 (cb<optab><mode>1): Likewise.
32412 * config/aarch64/iterators.md (bcond): New define_code_attr.
32413
32414 2015-01-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32415
32416 * config/s390/s390.c (s390_memory_move_cost): Increase costs for
32417 memory accesses.
32418
32419 2015-01-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32420
32421 * config/s390/s390.c (s390_register_move_cost): Increase costs for
32422 FPR->GPR moves.
32423
32424 2015-01-27 Richard Biener <rguenther@suse.de>
32425
32426 * tree-vrp.c (update_value_range): Intersect the range with
32427 old recorded SSA name range information.
32428
32429 2015-01-27 Nick Clifton <nickc@redhat.com>
32430
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
32436 enhancements.
32437
32438 2015-01-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32439
32440 * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
32441
32442 2015-01-27 Jakub Jelinek <jakub@redhat.com>
32443 Yury Gribov <y.gribov@samsung.com>
32444
32445 PR ubsan/64741
32446 * ubsan.c (ubsan_source_location): Refactor code.
32447 (ubsan_type_descriptor): Update type size. Refactor code.
32448
32449 2015-01-27 Richard Biener <rguenther@suse.de>
32450
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.
32456
32457 2015-01-27 Jakub Jelinek <jakub@redhat.com>
32458
32459 PR ipa/64776
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.
32462
32463 PR rtl-optimization/61058
32464 * jump.c (cleanup_barriers): Update basic block boundaries
32465 if BLOCK_FOR_INSN is non-NULL on PREV.
32466
32467 2015-01-27 Ilya Enkovich <ilya.enkovich@intel.com>
32468
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.
32472
32473 2015-01-27 Jakub Jelinek <jakub@redhat.com>
32474
32475 PR tree-optimization/64807
32476 * wide-int.cc (wi::divmod_internal): Clear
32477 b_dividend[dividend_blocks_needed].
32478
32479 2015-01-26 DJ Delorie <dj@redhat.com>
32480
32481 * config/rl78/rl78.c (move_elim_pass): Don't optimize away
32482 volatile memory references.
32483
32484 2015-01-26 Oleg Endo <olegendo@gcc.gnu.org>
32485
32486 PR target/49263
32487 * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
32488 remove_insn.
32489 * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
32490 shifts if it already fits into K08.
32491
32492 2015-01-26 Jakub Jelinek <jakub@redhat.com>
32493
32494 PR ipa/64730
32495 * ipa-inline.c (inline_small_functions): Print "unknown" even
32496 if edge->call_stmt is non-NULL, but has builtins or unknown
32497 location.
32498
32499 PR middle-end/64421
32500 * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
32501 with asterisk, skip the first character.
32502
32503 2015-01-26 H.J. Lu <hongjiu.lu@intel.com>
32504
32505 PR target/64806
32506 * config/i386/i386 (feature_priority): Revert the last P_POPCNT
32507 order change.
32508
32509 2015-01-26 Uros Bizjak <ubizjak@gmail.com>
32510
32511 PR target/64795
32512 * config/i386/i386.md (*movdi_internal): Also check operand 0
32513 to determine TYPE_LEA operand.
32514 (*movsi_internal): Ditto.
32515
32516 2015-01-26 Jakub Jelinek <jakub@redhat.com>
32517
32518 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
32519 OPTION_MASK_QUAD_MEMORY_ATOMIC.
32520
32521 2015-01-26 Renlin Li <renlin.li@arm.com>
32522
32523 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
32524 the comment.
32525 * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
32526 for higher part.
32527
32528 2015-01-26 Richard Biener <rguenther@suse.de>
32529
32530 PR middle-end/64764
32531 * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
32532 combining two BIT_AND_EXPR predicates.
32533
32534 2015-01-26 H.J. Lu <hongjiu.lu@intel.com>
32535
32536 PR bootstrap/64754
32537 * tree-ssa-structalias.c (new_var_info): Initialize ruid.
32538
32539 2015-01-26 Terry Guo <terry.guo@arm.com>
32540
32541 * config/arm/arm.c (arm_file_start): Update the assignment of
32542 Tag_ABI_HardFP_use.
32543
32544 2015-01-25 James Greenhalgh <james.greenhalgh@arm.com>
32545
32546 * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
32547 pipeline model.
32548 config/arm/arm.md: Include the new Cortex-A57 model.
32549 (generic_sched): Don't use generic_sched when tuning for
32550 Cortex-A57.
32551
32552 2015-01-25 Allan Sandfeld Jensen <sandfeld@kde.org>
32553 Uros Bizjak <ubizjak@gmail.com>
32554
32555 * config/i386/i386.c (get_builtin_code_for_version): Add
32556 support for BMI and BMI2 multiversion functions.
32557
32558 2015-01-25 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
32559
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.
32565
32566 2015-01-24 H.J. Lu <hongjiu.lu@intel.com>
32567
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".
32573
32574 2015-01-24 Oleg Endo <olegendo@gcc.gnu.org>
32575
32576 PR target/49263
32577 PR target/53987
32578 PR target/64345
32579 PR target/59533
32580 PR target/52933
32581 PR target/54236
32582 PR target/51244
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
32631 order variants.
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
32636 order variant.
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
32651 condition.
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
32663 set destination.
32664 (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
32665 register_operand for set source.
32666
32667 2015-01-23 Jan Hubicka <hubicka@ucw.cz>
32668
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.
32673
32674 2015-01-23 David Malcolm <dmalcolm@redhat.com>
32675
32676 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
32677 Support the JIT by using 0 as the language type.
32678
32679 2015-01-23 Vladimir Makarov <vmakarov@redhat.com>
32680
32681 PR target/64317
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.
32686
32687 2015-01-23 Jakub Jelinek <jakub@redhat.com>
32688
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.
32699
32700 2015-01-23 Uros Bizjak <ubizjak@gmail.com>
32701
32702 * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
32703 alternative 1.
32704
32705 2015-01-23 Uros Bizjak <ubizjak@gmail.com>
32706
32707 * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
32708 libgcc/config/i386/elf-lib.h.
32709
32710 2015-01-23 Jakub Jelinek <jakub@redhat.com>
32711
32712 PR driver/64737
32713 * gcc.c (print_configuration): Don't print a blank line at the end
32714 here...
32715 (run_attempt): ... but here unstead.
32716
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.
32721
32722 2015-01-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
32723
32724 PR target/50928
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.
32734
32735 2015-01-23 David Malcolm <dmalcolm@redhat.com>
32736
32737 PR jit/64721
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.
32746
32747 2015-01-23 David Malcolm <dmalcolm@redhat.com>
32748
32749 PR jit/64722
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).
32753
32754 2015-01-23 Martin Liska <mliska@suse.cz>
32755
32756 * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
32757 false positive during profiledbootstrap.
32758
32759 2015-01-23 Tom de Vries <tom@codesourcery.com>
32760
32761 PR libgomp/64672
32762 * lto-opts.c (lto_write_options): Output non-explicit conservative
32763 -fno-openacc.
32764 * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
32765 (append_compiler_options): Pass -fopenacc through.
32766
32767 2015-01-23 Tom de Vries <tom@codesourcery.com>
32768
32769 PR libgomp/64707
32770 * lto-opts.c (lto_write_options): Output non-explicit conservative
32771 -fno-openmp.
32772 * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
32773 (append_compiler_options): Pass -fopenmp through.
32774
32775 2015-01-23 Jakub Jelinek <jakub@redhat.com>
32776
32777 PR debug/64511
32778 * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
32779 GTY markup.
32780
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
32788 internal_error.
32789
32790 2015-01-22 Jeff Law <law@redhat.com>
32791
32792 PR target/52076
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
32798 operand predicate.
32799
32800 2015-01-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32801 Jakub Jelinek <jakub@redhat.com>
32802
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}.
32809
32810 2015-01-22 Jan Hubicka <hubicka@ucw.cz>
32811 H.J. Lu <hongjiu.lu@intel.com>
32812
32813 PR ipa/64694
32814 * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
32815 heap.
32816
32817 2015-01-22 Wei Mi <wmi@google.com>
32818
32819 PR rtl-optimization/64557
32820 * dse.c (record_store): Call get_addr for mem_addr.
32821 (check_mem_read_rtx): Likewise.
32822
32823 2015-01-22 Eric Botcazou <ebotcazou@adacore.com>
32824
32825 * fold-const.c (const_binop): Add early return for non-tcc_binary.
32826
32827 2015-01-22 Chen Gang <gang.chen.5i5j@gmail.com>
32828
32829 * toplev.c (init_local_tick): Process the failure when read
32830 fails for random_seed.
32831
32832 * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
32833 'pretty_name' to avoid memory overflow.
32834
32835 2015-01-22 Richard Biener <rguenther@suse.de>
32836
32837 PR middle-end/64728
32838 * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
32839 abnormal coalescing on undefined SSA names.
32840
32841 2015-22-01 Uros Bizjak <ubizjak@gmail.com>
32842
32843 PR target/64688
32844 PR target/64477
32845 * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
32846 for alternative 3.
32847 (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
32848
32849 2015-01-22 Trevor Saunders <tsaunders@mozilla.com>
32850
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.
32854
32855 2015-01-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32856
32857 * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
32858
32859 2015-01-22 Max Ostapenko <m.ostapenko@partner.samsung.com>
32860
32861 PR driver/64690
32862 * gcc.c (insert_comments): New function.
32863 (try_generate_repro): Call it.
32864 (append_text): Removed.
32865
32866 2015-01-22 Richard Biener <rguenther@suse.de>
32867
32868 * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
32869 with IL incompatible options. Properly honor user optimize
32870 attributes.
32871
32872 2015-01-21 Segher Boessenkool <segher@kernel.crashing.org>
32873
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.
32878
32879 2015-01-21 David Edelsohn <dje.gcc@gmail.com>
32880
32881 * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
32882 not TARGET_DEFAULT.
32883
32884 2015-01-21 Jakub Jelinek <jakub@redhat.com>
32885
32886 PR debug/64511
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)).
32890
32891 PR sanitizer/64706
32892 * doc/invoke.texi (-fsanitize=vptr): Document.
32893
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
32898 of the pass.
32899
32900 2015-01-21 Jan Hubicka <hubicka@ucw.cz>
32901
32902 * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
32903 edges.
32904
32905 2015-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
32906
32907 * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
32908 decl attribute.
32909
32910 2015-01-21 David Sherwood <david.sherwood@arm.com>
32911 Tejas Belagod <Tejas.Belagod@arm.com>
32912
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):
32916 Removed.
32917
32918 2015-01-21 David Sherwood <david.sherwood@arm.com>
32919 Tejas Belagod <Tejas.Belagod@arm.com>
32920
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.
32933
32934 2015-01-21 Alan Hayward <alan.hayward@arm.com>
32935
32936 * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
32937 Declare.
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.
32948
32949 2015-01-21 Alan Hayward <alan.hayward@arm.com>
32950
32951 * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
32952
32953 2015-01-21 Richard Henderson <rth@redhat.com>
32954
32955 PR target/64669
32956 * ccmp.c (used_in_cond_stmt_p): Remove.
32957 (expand_ccmp_expr): Don't use it.
32958
32959 2015-01-21 Nick Clifton <nickc@redhat.com>
32960
32961 * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
32962 PARALLELs.
32963
32964 2015-01-21 Richard Biener <rguenther@suse.de>
32965
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.
32978
32979 2015-01-20 Jeff Law <law@redhat.com>
32980
32981 PR target/59946
32982 * config/m68k/m68k.md (Comparison expanders and patterns): Do not
32983 allow pc-relative addresses in operand predicates or constraints.
32984
32985 2015-01-21 Bin Cheng <bin.cheng@arm.com>
32986
32987 * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
32988 neon on aarch32 processors for stringops.
32989
32990 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
32991
32992 PR ipa/63576
32993 * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
32994
32995 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
32996
32997 PR lto/45375
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.
33010
33011 2015-01-20 Jakub Jelinek <jakub@redhat.com>
33012
33013 PR debug/64663
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.
33019
33020 2015-01-20 Chung-Lin Tang <cltang@codesourcery.com>
33021
33022 * config/nios2/nios2.c (nios2_asm_file_end): Implement
33023 TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
33024 needed.
33025 (TARGET_ASM_FILE_END): Define.
33026
33027 2015-01-20 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
33028
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.
33033
33034 2015-01-20 Richard Biener <rguenther@suse.de>
33035
33036 PR ipa/64684
33037 * ipa-reference.c (add_static_var): Inline ...
33038 (analyze_function): ... here after splitting out from ...
33039 (is_proper_for_analysis): ... this.
33040
33041 2015-01-20 Matthew Wahab <matthew.wahab@arm.com>
33042
33043 PR target/64149
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.
33049
33050 2015-01-20 Eric Botcazou <ebotcazou@adacore.com>
33051
33052 * config/visium/visium.h (LIB_SPEC): Adjust in default case.
33053
33054 2015-01-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
33055
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.
33063
33064 2015-01-20 Igor Zamyatin <igor.zamyatin@intel.com>
33065
33066 PR bootstrap/64676
33067 Revert:
33068 2015-01-19 Igor Zamyatin <igor.zamyatin@intel.com>
33069
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
33073 definitions.
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.
33078
33079 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
33080
33081 PR lto/45375
33082 * i386.c (ix86_option_override_internal): Use ix86_tune_cost
33083 to set branch cost.
33084
33085 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
33086
33087 PR lto/45375
33088 * i386.c (gate): Check flag_expensive_optimizations and
33089 optimize_size.
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.
33098
33099 2015-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
33100
33101 * config/mips/mips.h (FP_ASM_SPEC): New define.
33102 (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
33103 instead.
33104
33105 2015-01-19 Oleg Endo <olegendo@gcc.gnu.org>
33106
33107 PR target/53988
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
33114 UNSPEC_VOLATILE.
33115
33116 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
33117
33118 * params.def (inline-unit-growth): Drop to 15%.
33119 * invoke.texi (inline-unit-growth): Document change.
33120
33121 2015-01-19 Martin Liska <mliska@suse.cz>
33122
33123 PR ipa/64668
33124 * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
33125 function for second argument of OBJ_TYPE_REF.
33126
33127 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
33128
33129 PR ipa/64218
33130 * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
33131 whether function is an alias.
33132
33133 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
33134
33135 * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
33136 cases.
33137
33138 2015-01-19 Vladimir Makarov <vmakarov@redhat.com>
33139
33140 PR rtl-optimization/64671
33141 * lra-remat.c (operand_to_remat): Don't consider jump and call
33142 insns.
33143
33144 2015-01-19 David Edelsohn <dje.gcc@gmail.com>
33145
33146 PR target/59828
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
33151 and POWER8.
33152 * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
33153 POWER8.
33154 * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
33155 pseudo-op to specify assembler dialect.
33156
33157 2015-01-19 Martin Liska <mliska@suse.cz>
33158
33159 PR ipa/64664
33160 * ipa-icf.c (sem_item_optimizer::filter_removed_items):
33161 Handle safe potentially removed nodes during filtering.
33162
33163 2015-01-19 Martin Liska <mliska@suse.cz>
33164
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.
33168
33169 2015-01-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
33170
33171 PR target/64532
33172 * doc/md.texi (ARM Options): Document register constraints.
33173
33174 2015-01-19 Jiong Wang <jiong.wang@arm.com>
33175 Andrew Pinski <apinski@cavium.com>
33176
33177 PR target/64304
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.
33180
33181 2015-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33182
33183 PR target/64448
33184 * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
33185 Match xor-and-xor RTL pattern.
33186
33187 2015-01-19 Igor Zamyatin <igor.zamyatin@intel.com>
33188
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
33192 definitions.
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.
33197
33198 2015-01-19 Jakub Jelinek <jakub@redhat.com>
33199
33200 * common.opt (fgraphite): Fix a typo.
33201
33202 2015-01-19 Felix Yang <felix.yang@huawei.com>
33203
33204 * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
33205 pattern.
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.
33217
33218 2015-01-19 Thomas Schwinge <thomas@codesourcery.com>
33219
33220 PR libgomp/64625
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.
33228
33229 2015-01-19 Ilya Enkovich <ilya.enkovich@intel.com>
33230
33231 * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
33232 callers.
33233
33234 2015-01-19 Ilya Enkovich <ilya.enkovich@intel.com>
33235
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.
33247
33248 2015-01-18 Jan Hubicka <hubicka@ucw.cz>
33249
33250 * cgraph.c (cgraph_node::dump): Dump profile flags.
33251
33252 2015-01-18 Oleg Endo <olegendo@gcc.gnu.org>
33253
33254 PR target/64652
33255 * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
33256 reg appear first in the parallel.
33257
33258 2015-01-18 Jan Hubicka <hubicka@ucw.cz>
33259
33260 * ipa-reference.c (set_reference_optimization_summary,
33261 ipa_reference_get_not_written_global): Do nothing if ipa-reference is
33262 disabled.
33263 (ignore_module_statics): New static var.
33264 (propagate_bits): If ipa-reference is disabled, do not look into local
33265 properties.
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
33270 node flags.
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
33283 Optimization
33284 (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
33285 ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
33286 Optimization.
33287 * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
33288 Fix for IPA.
33289
33290 2015-01-18 Jan Hubicka <hubicka@ucw.cz>
33291
33292 PR ipa/64378
33293 * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
33294 flag correctly.
33295 * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
33296
33297 2015-01-18 Sandra Loosemore <sandra@codesourcery.com>
33298
33299 * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
33300 Remove duplicate option listings.
33301
33302 2015-01-18 Felix Yang <felix.yang@huawei.com>
33303
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.
33310
33311 2015-01-17 Segher Boessenkool <segher@kernel.crashing.org>
33312
33313 * config/rs6000/rs6000.md (probe_stack): Delete.
33314 (probe_stack_address): New.
33315
33316 2015-01-17 Segher Boessenkool <segher@kernel.crashing.org>
33317
33318 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
33319 to test for 32-bit ABIs, not !TARGET_POWERPC64.
33320
33321 2015-01-17 Segher Boessenkool <segher@kernel.crashing.org>
33322
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
33326 snafu.
33327 (rs6000_libcall_value): Use the new function.
33328
33329 2015-01-17 Sandra Loosemore <sandra@codesourcery.com>
33330
33331 * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
33332
33333 2015-01-17 Eric Botcazou <ebotcazou@adacore.com>
33334
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.
33337
33338 2015-01-17 Jan Kratochvil <jan.kratochvil@redhat.com>
33339
33340 * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
33341
33342 2015-01-17 Bernd Schmidt <bernds@codesourcery.com>
33343
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.
33349
33350 2015-01-17 Jeff Law <law@redhat.com>
33351
33352 PR rtl-optimization/32790
33353 * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
33354 not ZERO_EXTEND in SET_DESTs.
33355
33356 2015-01-17 Alan Modra <amodra@gmail.com>
33357
33358 * cprop.c (do_local_cprop): Revert last change.
33359
33360 2015-01-16 DJ Delorie <dj@redhat.com>
33361 Nick Clifton <nickc@redhat.com>
33362
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.
33386 (IBqi): New.
33387 (Wsa): New.
33388 (Wsf): New.
33389 (Cs1): Fix.
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.
33394
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.
33404
33405 * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
33406 * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
33407 address space.
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]
33420 addressing.
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
33428 __far when -mes0.
33429 (rl78_asm_out_integer): New.
33430 * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
33431 * config/rl78/rl78.opt (-mes0): New.
33432
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.
33445 (rl78_sfr_p): New.
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.
33457
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.
33462
33463 2015-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
33464
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.
33495
33496 2015-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
33497
33498 * rtlanal.c (get_base_term): Handle SCRATCH.
33499
33500 2015-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
33501
33502 * config/aarch64/aarch64.c
33503 (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
33504 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
33505 * config/arm/arm.c
33506 (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
33507 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
33508
33509 2015-01-17 Alan Modra <amodra@gmail.com>
33510
33511 * cprop.c (do_local_cprop): Disallow replacement of fixed
33512 hard registers.
33513
33514 2015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33515
33516 PR target/62066
33517 * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
33518 early return 0.
33519
33520 2015-01-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
33521
33522 * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
33523 * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
33524
33525 2015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33526
33527 * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
33528 * config/arm/thumb1.md: ... Here.
33529
33530 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
33531
33532 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
33533 TImode for TARGET_32BIT.
33534
33535 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
33536
33537 * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
33538 TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
33539 as ...
33540 (rs6000_abi_word_mode): New function.
33541
33542 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
33543
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.
33546
33547 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
33548
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.
33552
33553 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
33554
33555 * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
33556 -mpowerpc64 is active.
33557
33558 2015-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
33559
33560 PR middle-end/64353
33561 * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
33562 virtuals on start.
33563
33564 2015-01-16 James Greenhalgh <james.greenhalgh@arm.com>
33565
33566 * config/arm/cortex-a57.md: Remove duplicate of file accidentally
33567 introduced in revision 219724.
33568
33569 2015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33570 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
33571
33572 PR target/64263
33573 * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
33574 destination is not a GP reg.
33575 (*movdi_aarch64): Likewise.
33576
33577 2015-01-16 David Edelsohn <dje.gcc@gmail.com>
33578
33579 PR target/64623
33580 * config/rs6000/default64.h: Revert ISA change.
33581
33582 2015-01-16 Richard Biener <rguenther@suse.de>
33583
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.
33590 Record (x & CST).
33591
33592 2015-01-16 Richard Biener <rguenther@suse.de>
33593
33594 PR tree-optimization/64568
33595 * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
33596 complex load rewriting for TARGET_MEM_REFs.
33597
33598 2015-01-16 Uros Bizjak <ubizjak@gmail.com>
33599
33600 * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
33601
33602 2015-01-16 Matthew Wahab <matthew.wahab@arm.com>
33603
33604 PR target/64149
33605 * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
33606 variable.
33607 * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
33608 (aarch64_lra_p): Remove.
33609
33610 2015-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
33611
33612 PR target/64363
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.
33624
33625 2015-01-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33626
33627 * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
33628 ptr1, ptr2 unused.
33629
33630 2015-01-16 Robert Suchanek <robert.suchanek@imgtec.com>
33631
33632 * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
33633 type OP_OUT to OP_INOUT.
33634
33635 2015-01-16 Robert Suchanek <robert.suchanek@imgtec.com>
33636
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.
33639
33640 2015-01-16 James Greenhalgh <james.greenhalgh@arm.com>
33641
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.
33646
33647 2015-01-16 Zhenqiang Chen <zhenqiang.chen@arm.com>
33648
33649 PR target/64015
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
33660 parameters.
33661 * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
33662
33663 2015-01-16 Ilya Tocar <ilya.tocar@intel.com>
33664
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.
33668
33669 2015-01-15 Jiong Wang <jiong.wang@arm.com>
33670
33671 * expmed.c (store_bit_field_using_insv): Improve warning message.
33672 Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
33673
33674 2015-01-15 Jiong Wang <jiong.wang@arm.com>
33675
33676 PR rtl-optimization/64011
33677 * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
33678 there is partial overflow.
33679
33680 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
33681
33682 * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
33683 prototype.
33684 (nds32_expand_epilogue_v3pop): Likewise.
33685 * config/nds32/nds32.md (sibcall): Define this for sibling call
33686 optimization.
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.
33696
33697 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
33698
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.
33708
33709 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
33710
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.
33715
33716 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
33717
33718 * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
33719 -mforbid-fp-as-gp, and -mex9 options.
33720
33721 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
33722
33723 * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
33724 remove -mgp-direct option.
33725
33726 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
33727
33728 * doc/invoke.texi (--param early-inlining-insns): Update default value.
33729 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
33730
33731 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
33732
33733 * ipa-inline.c (inline_small_functions): Work around hints
33734 cache issue.
33735
33736 2015-01-15 Sandra Loosemore <sandra@codesourcery.com>
33737
33738 PR target/59710
33739 * doc/invoke.texi (Option Summary): Document new Nios II
33740 -mgpopt= syntax.
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=
33750 option choices.
33751
33752 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
33753
33754 PR ipa/64612
33755 * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
33756 of comdat locals.
33757 (inline_call): Fix removal of aliases.
33758
33759 2015-01-15 Jakub Jelinek <jakub@redhat.com>
33760
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
33773 ATTRIBUTE_UNUSED.
33774 (expand_UBSAN_VPTR): New function.
33775 * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
33776 in fn spec.
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
33786 -fsanitize=vptr.
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.
33792
33793 2015-01-15 Vladimir Makarov <vmakarov@redhat.com>
33794
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
33799 constraints.
33800 * ira-costs.c (record_reg_classes): Process the new constraint
33801 '^'.
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.
33805
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>
33815
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):
33825 New macros.
33826 * cgraph.c (cgraph_node::create): Consider flag_openacc next to
33827 flag_openmp.
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.
33849 Dump more 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
33858 appropriate place.
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,
33871 OMP_CLAUSE_SEQ.
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,
33878 OACC_DATA.
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
33895 members.
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
33908 OMP_CLAUSE_MAP_*.
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
33918 flag_openmp.
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
33926 functions.
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
33966 OMP_CLAUSE_MAP_*.
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):
33972 Likewise.
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
33982 to flag_openmp.
33983 * config/i386/intelmic-offload.h: New file.
33984 * config/nvptx/offload.h: Likewise.
33985
33986 2015-01-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
33987
33988 * explow.h: Remove duplicate contents.
33989 * dojump.h: Likewise.
33990
33991 2015-01-15 Richard Earnshaw <rearnsha@arm.com>
33992
33993 * arm.c (arm_xgene_tune): Add default initializer for instruction
33994 fusion.
33995
33996 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
33997
33998 PR ipa/64068
33999 PR ipa/64559
34000 * ipa.c (symbol_table::remove_unreachable_nodes):
34001 Do not put abstract origins into boundary.
34002
34003 2015-01-15 Evgeny Stupachenko <evstupac@gmail.com>
34004
34005 * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
34006 * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
34007
34008 2015-01-15 Steve Ellcey <sellcey@mips.com>
34009
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.
34013
34014 2015-01-15 David Edelsohn <dje.gcc@gmail.com>
34015
34016 * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
34017 ISA 2.7 (POWER8).
34018
34019 2015-01-15 Richard Biener <rguenther@suse.de>
34020
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.
34024
34025 2015-01-15 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
34026
34027 * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
34028 Include xgene1.md.
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.
34034
34035 2015-01-15 Yuri Rumyantsev <ysrumyan@gmail.com>
34036
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
34049 critical.
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.
34080
34081 2015-01-15 Philipp Tomsich <ptomsich@theobroma-systems.com>
34082
34083 * config/aarch64/aarch64.md: Include xgene1.md.
34084 * config/aarch64/xgene1.md: New file.
34085
34086 2015-01-15 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
34087
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.
34093
34094 2015-01-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
34095
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,
34121 stmt.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.
34170 * cse.c: Likewise.
34171 * ddg.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
34182 varasm.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
34201 varasm.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
34237 stmt.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
34245 stmt.h varasm.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
34281 varasm.h.
34282 * init-regs.c: Likewise.
34283 * ira.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
34289 varasm.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.
34313 * ree.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
34326 varasm.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
34356 varasm.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
34359 varasm.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
34362 varasm.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
34391 stmt.h varasm.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
34399 stmt.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
34460 stmt.h.
34461
34462 2015-01-15 Jakub Jelinek <jakub@redhat.com>
34463
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.
34468
34469 2015-01-15 Eric Botcazou <ebotcazou@adacore.com>
34470
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.
34473
34474 2015-01-15 Yuri Rumyantsev <ysrumyan@gmail.com>
34475
34476 PR tree-optimization/64434
34477 * cfgexpand.c (reorder_operands): New function.
34478 (expand_gimple_basic_block): Insert call of reorder_operands if
34479 optimized is true.
34480
34481 2015-01-15 Matthew Fortune <matthew.fortune@imgtec.com>
34482
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
34500 parallel.
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.
34510
34511 2015-01-14 Matthew Fortune <matthew.fortune@imgtec.com>
34512
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
34515 of a const_int.
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.
34520
34521 2015-01-15 Martin Liska <mliska@suse.cz>
34522
34523 PR target/64377
34524 * optc-save-gen.awk: Add support for array types.
34525
34526 2015-01-15 Richard Biener <rguenther@suse.de>
34527
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
34531 overlap.
34532
34533 2015-01-14 Marcos Diaz <marcos.diaz@tallertechnologies.com>
34534
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.
34543
34544 2015-01-14 Oleg Endo <olegendo@gcc.gnu.org>
34545
34546 PR target/53988
34547 * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
34548 reg-reg copies.
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.
34557
34558 2015-01-14 Sandra Loosemore <sandra@codesourcery.com>
34559
34560 * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
34561 option.
34562 (Optimization Options): Move -fuse-ld documentation to...
34563 (Link Options): ...here.
34564
34565 2015-01-14 Matthew Fortune <matthew.fortune@imgtec.com>
34566
34567 * config/mips/constraints.md (ZC): Add support for R6 LL/SC
34568 offsets.
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.
34587
34588 2015-01-14 Andrew MacLeod <amacleod@redhat.com>
34589
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
34594 warnings.
34595 (expand_builtin_atomic_clear): Change invalid model errors to warnings
34596 and issue warning for CONSUME.
34597
34598 2015-01-14 Aldy Hernandez <aldyh@redhat.com>
34599
34600 * lto-cgraph: Update function comments for
34601 lto_symtab_encoder_encode_*.
34602
34603 2015-01-14 Ilya Verbin <ilya.verbin@intel.com>
34604
34605 * Makefile.in (site.exp): Do not set ENABLE_LTO.
34606
34607 2015-01-14 Ilya Verbin <ilya.verbin@intel.com>
34608
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.
34615
34616 2015-01-14 Richard Biener <rguenther@suse.de>
34617
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.
34621
34622 2015-01-14 Andrew MacLeod <amacleod@redhat.com>
34623
34624 PR middle-end/59448
34625 * builtins.c (get_memmodel): Promote consume to acquire always.
34626
34627 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
34628
34629 PR target/64386
34630 * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
34631 V32HImode.
34632
34633 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
34634
34635 PR target/64393
34636 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
34637 Enable AVX512BW.
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.
34641
34642 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
34643
34644 PR target/64387
34645 * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
34646 (vec_unpacks_hi_v16sf): Ditto.
34647
34648 2015-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34649
34650 * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
34651 is not available.
34652
34653 2015-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34654
34655 * doc/invoke.texi (mapcs): Mention deprecation.
34656 (mapcs-frame): Likewise.
34657
34658 2015-01-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
34659
34660 PR target/64453
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.
34665
34666 2015-01-14 Hale Wang <hale.wang@arm.com>
34667
34668 * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
34669 Cortex-M7.
34670
34671 2015-01-14 Richard Biener <rguenther@suse.de>
34672
34673 PR lto/64415
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.
34680
34681 2015-01-14 Martin Liska <mliska@suse.cz>
34682
34683 * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
34684 IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
34685
34686 2015-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34687
34688 PR target/64460
34689 * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
34690 (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
34691
34692 2015-01-14 Matthew Fortune <matthew.fortune@imgtec.com>
34693
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.
34705
34706 2015-01-14 Richard Biener <rguenther@suse.de>
34707
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.
34712
34713 2015-01-14 Joey Ye <joey.ye@arm.com>
34714
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.
34718
34719 2015-01-14 Martin Uecker <uecker@eecs.berkeley.edu>
34720
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=.
34725
34726 2015-01-14 Chung-Ju Wu <jasonwucj@gmail.com>
34727
34728 * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
34729 (mforbid-fp-as-gp): Remove.
34730 (mex9): 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
34735 cases.
34736 * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
34737 fp-as-gp and ex9 cases.
34738
34739 2015-01-13 Jan Hubicka <hubicka@ucw.cz>
34740
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.
34746
34747 2015-01-13 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
34748
34749 * ipa-inline.c (inline_small_functions): Swap the operands in
34750 enum.
34751
34752 2015-01-13 Jan Hubicka <hubicka@ucw.cz>
34753
34754 PR ipa/64481
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.
34770
34771 2015-01-13 Jan Hubicka <hubicka@ucw.cz>
34772
34773 PR ipa/64565
34774 * ipa-inline.c (inline_small_functions): Update callee keys after
34775 resolving speculation
34776 (inline_small_functions): Always check monotonicity of the queue.
34777
34778 2015-01-13 Marek Polacek <polacek@redhat.com>
34779
34780 PR middle-end/64391
34781 * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
34782
34783 2015-01-13 Jakub Jelinek <jakub@redhat.com>
34784
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
34790 vector extensions.
34791
34792 2015-01-13 Renlin Li <renlin.li@arm.com>
34793
34794 * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
34795 (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
34796
34797 2015-01-13 Martin Liska <mliska@suse.cz>
34798
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.
34804
34805 2015-01-13 Richard Sandiford <richard.sandiford@arm.com>
34806
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.
34813
34814 2015-01-13 Andrew Pinski <apinski@cavium.com>
34815
34816 * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
34817 instead of src mode.
34818
34819 2015-01-13 Richard Biener <rguenther@suse.de>
34820
34821 PR lto/64373
34822 * lto-streamer-out.c (tree_is_indexable): Guard for NULL
34823 DECL_CONTEXT.
34824
34825 2015-01-13 Andrew Pinski <apinski@cavium.com>
34826
34827 * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
34828 volatile mems.
34829 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
34830
34831 2015-01-13 Jakub Jelinek <jakub@redhat.com>
34832
34833 PR middle-end/63974
34834 * cfgexpand.c (expand_computed_goto): Don't call
34835 convert_memory_address here.
34836
34837 2015-01-13 Richard Biener <rguenther@suse.de>
34838
34839 PR tree-optimization/64406
34840 * tree-loop-distibution.c (pass_loop_distribution::execute):
34841 Reset the SCEV hashtable if we distributed anything.
34842
34843 2015-01-13 Richard Biener <rguenther@suse.de>
34844
34845 PR tree-optimization/64404
34846 * tree-vect-stmts.c (vectorizable_load): Reject conflicting
34847 SLP types for CSEd loads.
34848
34849 2015-01-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
34850
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.
34856
34857 2015-01-13 Richard Biener <rguenther@suse.de>
34858
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.
34862
34863 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
34864
34865 * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
34866 TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
34867
34868 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
34869
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.
34876
34877 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
34878
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.
34886
34887 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
34888
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.
34894
34895 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
34896
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.
34904
34905 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
34906
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.
34910
34911 2015-01-13 Oleg Endo <olegendo@gcc.gnu.org>
34912
34913 PR target/64479
34914 * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
34915
34916 2015-01-12 Kaz Kojima <kkojima@gcc.gnu.org>
34917
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.
34923
34924 2015-01-12 Sandra Loosemore <sandra@codesourcery.com>
34925
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.
34933
34934 2015-01-12 Sandra Loosemore <sandra@codesourcery.com>
34935
34936 * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
34937 example.
34938
34939 2015-01-12 Jakub Jelinek <jakub@redhat.com>
34940
34941 PR tree-optimization/64563
34942 * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
34943 instead of != VR_VARYING.
34944
34945 PR target/64513
34946 * config/i386/i386.c (ix86_expand_prologue): Add
34947 REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
34948
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.
34955
34956 PR other/64370
34957 * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
34958
34959 2015-01-12 Jeff Law <law@redhat.com>
34960
34961 PR target/64461
34962 * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
34963 (trunchiqi2, truncsihi2): Similarly.
34964
34965 * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
34966 rather than calling F.
34967
34968 2015-01-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
34969
34970 * tsan.c (instrument_expr): Use force_gimple_operand.
34971 Use may_be_nonaddressable_p instead of is_gimple_addressable.
34972
34973 2015-01-12 Richard Biener <rguenther@suse.de>
34974
34975 PR tree-optimization/64530
34976 * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
34977 back dr1.
34978
34979 2015-01-12 Richard Biener <rguenther@suse.de>
34980
34981 PR middle-end/64357
34982 * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
34983 latches properly.
34984
34985 2015-01-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34986
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.
34990
34991 2015-01-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34992
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.
35006
35007 2015-01-12 H.J. Lu <hongjiu.lu@intel.com>
35008
35009 PR bootstrap/64561
35010 * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
35011 test for PIE with copy reloc.
35012 * configure: Regenerated.
35013
35014 2015-01-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35015
35016 * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
35017 in gen_rtx_REG.
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
35023 in gen_rtx_REG.
35024
35025 2015-01-12 Martin Liska <mliska@suse.cz>
35026
35027 PR ipa/64550
35028 * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
35029 volatility for correct operands.
35030
35031 2015-01-12 Martin Liska <mliska@suse.cz>
35032
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.
35036
35037 2015-01-12 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
35038
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.
35043
35044 2015-01-12 Jan Hubicka <hubicka@ucw.cz>
35045
35046 PR ipa/63967
35047 PR ipa/64425
35048 * ipa-inline.c (compute_uninlined_call_time,
35049 compute_inlined_call_time): Use counts for extra precision when
35050 needed possible.
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.
35059
35060 2015-01-12 Jan Hubicka <hubicka@ucw.cz>
35061
35062 PR ipa/63470
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.
35067
35068 2015-01-12 Chen Gang <gang.chen.5i5j@gmail.com>
35069
35070 PR ipa/64551
35071 PR ipa/64552
35072 * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
35073 '||' to fix typo issue.
35074
35075 * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
35076 accept and return NULL.
35077
35078 2015-01-12 Martin Liska <mliska@suse.cz>
35079
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
35084 for being inlined.
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.
35098
35099 2015-01-11 Jan Hubicka <hubicka@ucw.cz>
35100
35101 * ipa-utils.c (estimate_function_body_sizes): Do not
35102 free node params when called late with early=true.
35103
35104 2015-01-11 James Greenhalgh <james.greenhalgh@arm.com>
35105
35106 * doc/md.texi (Instruction Patterns): Rewrite text for
35107 clarity.
35108 (Example): Likewise.
35109
35110 2015-01-10 Sandra Loosemore <sandra@codesourcery.com>
35111
35112 * doc/invoke.texi (Option Summary): Break long lines.
35113 [(-fdiagnostics-color)]: Put long literal in @smallexample
35114 instead of inline.
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.
35121
35122 2015-01-10 Thomas Schwinge <thomas@codesourcery.com>
35123
35124 * doc/install.texi: Update for libgomp being renamed from "GNU
35125 OpenMP Runtime Library" to "GNU Offloading and Multi Processing
35126 Runtime Library".
35127 * doc/sourcebuild.texi: Likewise.
35128
35129 2015-01-10 Anthony Green <green@moxielogic.com>
35130
35131 * config/moxie/moxie.c (moxie_option_override): Fix forcing of
35132 mul.x availability for moxiebox configuration.
35133
35134 2015-01-09 Anthony Green <green@moxielogic.com>
35135
35136 * config/moxie/moxie.md: Tabify assembly output.
35137
35138 2015-01-09 Anthony Green <green@moxielogic.com>
35139
35140 * config/moxie/moxie.md (CC_REG): Correct register definition.
35141
35142 2015-01-09 Sandra Loosemore <sandra@codesourcery.com>
35143
35144 * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
35145 ([-fvtv-debug], [-fvtv-counts]): Likewise. Correct location
35146 of log files.
35147
35148 2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
35149
35150 * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
35151
35152 2015-01-09 Bernd Schmidt <bernds@codesourcery.com>
35153 Jakub Jelinek <jakub@redhat.com>
35154
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.
35172
35173 2015-01-09 Jakub Jelinek <jakub@redhat.com>
35174
35175 PR rtl-optimization/64536
35176 * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
35177 tablejumps.
35178
35179 2015-01-09 Michael Collison <michael.collison@linaro.org>
35180
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.
35184
35185 2015-01-09 Tom de Vries <tom@codesourcery.com>
35186
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.
35191
35192 2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
35193
35194 * ginclude/unwind-arm-common.h: Revert previous commit.
35195
35196 2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
35197
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.
35203
35204 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
35205
35206 * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
35207 for -mcpu=e6500.
35208 * config/rs6000/t-rtems: Add e6500 multilibs.
35209
35210 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
35211
35212 * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
35213 MPC8540.
35214
35215 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
35216
35217 * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
35218 MULTILIB_EXCEPTIONS.
35219
35220 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
35221
35222 * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
35223 MULTILIB_EXCEPTIONS.
35224
35225 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
35226
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.
35232
35233 2015-01-09 Richard Biener <rguenther@suse.de>
35234
35235 PR tree-optimization/64410
35236 * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
35237 on the LHS.
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.
35241
35242 2015-01-09 Martin Liska <mliska@suse.cz>
35243
35244 * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
35245 name comparison.
35246 (func_checker::compare_memory_operand): New function.
35247 (func_checker::compare_operand): Split case to newly
35248 added functions.
35249 (func_checker::compare_cst_or_decl): New function.
35250 (func_checker::compare_gimple_call): Identify
35251 memory operands.
35252 (func_checker::compare_gimple_assign): Likewise.
35253 * ipa-icf-gimple.h: New function.
35254
35255 2015-01-09 Martin Liska <mliska@suse.cz>
35256
35257 PR ipa/64503
35258 * sreal.c (sreal::dump): Change unsigned format to signed for
35259 m_exp value.
35260 (sreal::to_double): Replace exp2 with scalbln.
35261
35262 2015-01-09 Martin Liska <mliska@suse.cz>
35263
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.
35269
35270 2015-01-09 Tom de Vries <tom@codesourcery.com>
35271
35272 * omp-low.c (expand_omp_for_static_chunk): Fix assert.
35273
35274 2015-01-09 Kito Cheng <kito@0xlab.org>
35275
35276 PR rtl-optimization/64348
35277 * lra-constraints.c (split_reg): Fix caller-save store/restore
35278 instruction generation.
35279
35280 2015-01-08 John David Anglin <danglin@gcc.gnu.org>
35281
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.
35286
35287 2015-01-08 Jakub Jelinek <jakub@redhat.com>
35288
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.
35298
35299 PR target/55023
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.
35308
35309 2015-01-08 Jason Merrill <jason@redhat.com>
35310
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.
35315
35316 2015-01-08 Jakub Jelinek <jakub@redhat.com>
35317
35318 PR target/64338
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.
35324
35325 2015-01-08 Mike Stump <mikestump@comcast.net>
35326
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
35330 documentation.
35331
35332 2015-01-08 Thomas Schwinge <thomas@codesourcery.com>
35333
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.
35339
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
35344 ld.
35345
35346 2015-01-08 Oleg Endo <olegendo@gcc.gnu.org>
35347
35348 * config/sh/sh-mem.cc: Use constant as second operand when emitting
35349 tstsi_t insns.
35350
35351 2015-01-08 Oleg Endo <olegendo@gcc.gnu.org>
35352
35353 PR target/55212
35354 * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
35355 constant load if constant operand fits into I08.
35356
35357 2015-01-08 Jakub Jelinek <jakub@redhat.com>
35358
35359 PR sanitizer/64336
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.
35364
35365 2015-01-08 Kaz Kojima <kkojima@gcc.gnu.org>
35366
35367 PR target/64533
35368 * config/sh/sh.md (*addsi3_compact): Use u constraint instead
35369 of r for the second alternative of the destination operand.
35370
35371 2015-01-07 Segher Boessenkool <segher@kernel.crashing.org>
35372
35373 PR target/36557
35374 * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
35375
35376 2015-01-07 Sandra Loosemore <sandra@codesourcery.com>
35377
35378 * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
35379 keywords.
35380 ([-fivar-visibility], [-fvisibility]): Likewise.
35381
35382 2015-01-07 Sandra Loosemore <sandra@codesourcery.com>
35383
35384 * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
35385 the file where @code, @command, etc is more appropriate.
35386
35387 2015-01-06 Sandra Loosemore <sandra@codesourcery.com>
35388
35389 * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
35390 of -mrecip= documentation.
35391
35392 2015-01-06 Michael Meissner <meissner@linux.vnet.ibm.com>
35393
35394 PR target/64505
35395 * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
35396 correct reload handler if -m32 -mpowerpc64 is used.
35397
35398 2015-01-06 Tom de Vries <tom@codesourcery.com>
35399
35400 * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
35401
35402 2015-01-08 Christian Bruel <christian.bruel@st.com>
35403
35404 PR target/64507
35405 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
35406
35407 2015-01-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
35408
35409 PR tree-optimization/63259
35410 * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
35411 if optab exists for 16bit byteswap.
35412
35413 2015-01-06 Jakub Jelinek <jakub@redhat.com>
35414
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.
35422
35423 2015-01-06 Eric Botcazou <ebotcazou@adacore.com>
35424
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.
35434
35435 2015-01-05 Segher Boessenkool <segher@kernel.crashing.org>
35436
35437 * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
35438 for the "(and X (ior (not X) Y) -> (and X Y)" transform.
35439
35440 2015-01-05 Segher Boessenkool <segher@kernel.crashing.org>
35441
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.
35444
35445 2015-01-05 Sandra Loosemore <sandra@codesourcery.com>
35446
35447 Revert parts of r219199.
35448 * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
35449 <inttypes.h>.
35450 ([-Wtraditional]): Restore markup on <limits.h>.
35451
35452 2015-01-05 Trevor Saunders <tsaunders@mozilla.com>
35453
35454 PR c++/31397
35455 * doc/invoke.texi: Document -Wsuggest-override.
35456
35457 2015-01-05 Radovan Obradovic <radovan.obradovic@imgtec.com>
35458
35459 PR rtl-optimization/64287
35460 * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
35461 (process_options): Disable flag_ipa_ra if profiling.
35462
35463 2015-01-05 Eric Botcazou <ebotcazou@adacore.com>
35464
35465 * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
35466
35467 2015-01-05 Max Filippov <jcmvbkbc@gmail.com>
35468
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.
35472
35473 2015-01-05 Uros Bizjak <ubizjak@gmail.com>
35474
35475 * config/i386/i386.c (output_387_binary_op): Use std::swap.
35476
35477 2015-01-05 Oleg Endo <olegendo@gcc.gnu.org>
35478
35479 * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
35480 * rtl.h (refers_to_regno_p): Add overload.
35481 * cse.c: Use it.
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.
35498
35499 2015-01-05 Jakub Jelinek <jakub@redhat.com>
35500
35501 PR sanitizer/64265
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
35509 been found.
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
35513 inlining.
35514
35515 PR sanitizer/64344
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.
35521
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.
35526
35527 2015-01-05 Sandra Loosemore <sandra@codesourcery.com>
35528
35529 * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
35530 etc markup throughout the file.
35531
35532 2015-01-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
35533
35534 Enable experimental TSAN support for Ada.
35535 * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
35536
35537 2015-01-05 Jakub Jelinek <jakub@redhat.com>
35538
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.
35542
35543 2015-01-05 Marek Polacek <polacek@redhat.com>
35544
35545 * doc/extend.texi (Arrays of Length Zero): Add missing comma.
35546
35547 2015-01-05 Jakub Jelinek <jakub@redhat.com>
35548
35549 Update copyright years.
35550
35551 * gcc.c (process_command): Update copyright notice dates.
35552 * gcov-dump.c: Ditto.
35553 * gcov.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.
35561
35562 * auto-profile.c, auto-profile.h: Fix up Copyright line.
35563
35564 2015-01-04 Sandra Loosemore <sandra@codesourcery.com>
35565
35566 * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
35567 verb tense, etc.
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.
35607
35608 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
35609
35610 * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
35611 Fix markup, light copy-editing.
35612 ([-fauto-profile]): Rewrite to fix formatting and content
35613 problems.
35614
35615 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
35616
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.
35623
35624 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
35625
35626 * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
35627 tidy grammar.
35628
35629 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
35630
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.
35671
35672 2015-01-03 John David Anglin <danglin@gcc.gnu.org>
35673
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
35679 after reload.
35680
35681 2015-01-02 Sandra Loosemore <sandra@codesourcery.com>
35682
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.
35692
35693 2015-01-02 Sandra Loosemore <sandra@codesourcery.com>
35694
35695 * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
35696 discussion of defaults, light copy-editing.
35697
35698 2015-01-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
35699
35700 * tsan.c (instrument_expr): corrected previous checkin.
35701
35702 2015-01-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
35703
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.
35710
35711 2015-01-01 Anthony Green <green@moxielogic.com>
35712
35713 * config/moxie/predicates.md (moxie_general_movsrc_operand):
35714 Restrict move source register offsets to 16 bits.
35715 \f
35716 Copyright (C) 2015 Free Software Foundation, Inc.
35717
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.