2eef3cf1d03578c725f7a4bc600e8b885430db6e
[platform/upstream/gcc49.git] / gcc / ChangeLog
1 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
2             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
3
4         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
5         logical operations.
6
7 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
8             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
9
10         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
11         costs when costing loads and stores to memory.
12
13 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
14             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
15
16         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
17         for SET RTX.
18
19 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20
21         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
22
23 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
24             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25
26         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
27         to...
28         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
29         well formed.
30         (aarch64_rtx_mult_cost): New.
31         (aarch64_rtx_costs): Use it, refactor as appropriate.
32
33 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
34             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
35
36         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
37         emit instructions, return number of instructions which would
38         be emitted.
39         (aarch64_add_constant): Update call to aarch64_build_constant.
40         (aarch64_output_mi_thunk): Likewise.
41         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost
42         a CONST_DOUBLE.
43
44 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
45
46         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
47         (TARGET_RTX_COSTS): Call it.
48
49 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
50
51         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
52         (cortexa57_vector_cost): Likewise.
53         (cortexa57_tunings): Use them.
54
55 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
56
57         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
58         (cpu_addrcost_table): Use it.
59         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
60         (aarch64_address_cost): Rewrite using aarch64_classify_address,
61         move it.
62
63 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
64
65         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
66
67 2014-10-30  Release Manager
68
69         * GCC 4.9.2 released.
70
71 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
72
73         * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
74         recog state after aarch64_prev_real_insn call.
75
76 2014-10-27  Guozhi Wei  <carrot@google.com>
77
78         PR tree-optimization/63530
79         tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
80         pointer alignment according to DR_MISALIGNMENT.
81
82 2014-10-25  Yury Gribov  <y.gribov@samsung.com>
83
84         PR sanitizer/63638
85         * asan.c (enum asan_check_flags): Fixed ASAN_CHECK_LAST.
86
87 2014-10-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
88
89         PR bootstrap/63632
90         * collect2.c (main): Filter out -fno-lto.
91
92 2014-10-22  Richard Biener  <rguenther@suse.de>
93             Tobias Burnus <burnus@net-b.de>
94
95         PR lto/63603
96         * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
97
98 2014-10-21  Jakub Jelinek  <jakub@redhat.com>
99
100         PR tree-optimization/63563
101         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
102         if either dra or drb stmts are not normal loads/stores.
103
104 2014-10-17  Jakub Jelinek  <jakub@redhat.com>
105
106         * asan.c (instrument_derefs): Allow instrumentation of odd-sized
107         accesses even for -fsanitize=address.
108         (execute_sanopt): Only allow use_calls for -fsanitize=kernel-address.
109
110         PR tree-optimization/63302
111         * tree-ssa-reassoc.c (optimize_range_tests_xor,
112         optimize_range_tests_diff): Use !integer_pow2p () instead of
113         tree_log2 () < 0.
114
115 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
116
117         * asan.c (instrument_derefs): Enable unaligned path for KASan.
118
119 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
120
121         Backport from mainline
122         2014-10-03  Yury Gribov  <y.gribov@samsung.com>
123
124         * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
125         don't emit empty ctors.
126
127 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
128
129         Backport from mainline
130         2014-09-01  Yury Gribov  <y.gribov@samsung.com>
131
132         PR sanitizer/61897
133         PR sanitizer/62140
134
135         * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
136         (build_check_stmt): Likewise.
137         (instrument_strlen_call): Likewise.
138         (asan_expand_check_ifn): Likewise and fix types.
139         (maybe_cast_to_ptrmode): New function.
140
141 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
142
143         Backport from mainline
144         2014-08-18  Yury Gribov  <y.gribov@samsung.com>
145
146         PR sanitizer/62089
147
148         * asan.c (instrument_derefs): Fix bitfield check.
149
150 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
151
152         Backport from mainline
153         2014-08-11  Yury Gribov  <y.gribov@samsung.com>
154
155         * asan.c (asan_check_flags): New enum.
156         (build_check_stmt_with_calls): Removed function.
157         (build_check_stmt): Split inlining logic to
158         asan_expand_check_ifn.
159         (instrument_derefs): Rename parameter.
160         (instrument_mem_region_access): Rename parameter.
161         (instrument_strlen_call): Likewise.
162         (asan_expand_check_ifn): New function.
163         (asan_instrument): Remove old code.
164         (pass_sanopt::execute): Change handling of
165         asan-instrumentation-with-call-threshold.
166         (asan_clear_shadow): Fix formatting.
167         (asan_function_start): Likewise.
168         (asan_emit_stack_protection): Likewise.
169         * doc/invoke.texi (asan-instrumentation-with-call-threshold):
170         Update description.
171         * internal-fn.c (expand_ASAN_CHECK): New function.
172         * internal-fn.def (ASAN_CHECK): New internal function.
173         * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
174         Update description.
175         (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
176         * tree.c: Small comment fix.
177
178 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
179
180         Backport from mainline
181         2014-08-11  Yury Gribov  <y.gribov@samsung.com>
182
183         * gimple.c (gimple_call_fnspec): Support internal functions.
184         (gimple_call_return_flags): Use const.
185         * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
186         * internal-fn.def: Add fnspec information.
187         * internal-fn.h (internal_fn_fnspec): New function.
188         (init_internal_fns): Declare new function.
189         * internal-fn.c (internal_fn_fnspec_array): New global variable.
190         (init_internal_fns): New function.
191         * tree-core.h: Update macro call.
192         * tree.c (build_common_builtin_nodes): Initialize internal fns.
193
194         Backport from mainline
195         2014-08-12  Yury Gribov  <y.gribov@samsung.com>
196
197         * internal-fn.c (init_internal_fns): Fix off-by-one.
198
199 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
200
201         Backport from mainline
202         2014-07-31  Yury Gribov  <y.gribov@samsung.com>
203
204         * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
205         * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
206         * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
207         New enums.
208         * gcc.c (sanitize_spec_function): Support new option.
209         (SANITIZER_SPEC): Remove now redundant check.
210         * opts.c (common_handle_option): Support new option.
211         (finish_options): Check for incompatibilities.
212         * toplev.c (process_options): Split userspace-specific checks.
213
214 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
215
216         Backport from mainline
217         2014-06-24  Max Ostapenko  <m.ostapenko@partner.samsung.com>
218
219         * asan.c (instrument_strlen_call): Do not instrument first byte in strlen
220         if already instrumented.
221
222 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
223
224         Backport from mainline
225         2014-06-16  Yury Gribov  <y.gribov@samsung.com>
226
227         * asan.c (check_func): New function.
228         (maybe_create_ssa_name): Likewise.
229         (build_check_stmt_with_calls): Likewise.
230         (use_calls_p): Likewise.
231         (report_error_func): Change interface.
232         (build_check_stmt): Allow non-integer lengths; add support
233         for new parameter.
234         (asan_instrument): Likewise.
235         (instrument_mem_region_access): Moved code to
236         build_check_stmt.
237         (instrument_derefs): Likewise.
238         (instrument_strlen_call): Likewise.
239         * cfgcleanup.c (old_insns_match_p): Add support for new
240         functions.
241         * doc/invoke.texi: Describe new parameter.
242         * params.def: Define new parameter.
243         * params.h: Likewise.
244         * sanitizer.def: Describe new builtins.
245
246         Backport from mainline
247         2014-06-16  Yury Gribov  <y.gribov@samsung.com>
248
249         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
250
251         Backport from mainline
252         2014-06-18  Yury Gribov  <y.gribov@samsung.com>
253
254         PR sanitizer/61530
255
256         * asan.c (build_check_stmt): Add condition.
257
258         Backport from mainline
259         2014-06-18  Yury Gribov  <y.gribov@samsung.com>
260
261         PR sanitizer/61547
262
263         * asan.c (instrument_strlen_call): Fixed instrumentation of
264         trailing byte.
265
266 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
267
268         Backport from mainline
269         2014-05-30  Jakub Jelinek  <jakub@redhat.com>
270
271         * asan.c (report_error_func): Add SLOW_P argument, use
272         BUILT_IN_ASAN_*_N if set.
273         (build_check_stmt): Likewise.
274         (instrument_derefs): If T has insufficient alignment,
275         force same handling as for odd sizes.
276
277 2014-10-16  Yury Gribov  <y.gribov@samsung.com>
278
279         Backport from mainline
280         2014-05-30  Jakub Jelinek  <jakub@redhat.com>
281
282         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
283         BUILT_IN_ASAN_REPORT_STORE_N): New.
284         * asan.c (struct asan_mem_ref): Change access_size type to
285         HOST_WIDE_INT.
286         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
287         update_mem_ref_hash_table): Likewise.
288         (asan_mem_ref_hasher::hash): Hash in a HWI.
289         (report_error_func): Change size_in_bytes argument to HWI.
290         Use *_N builtins if size_in_bytes is larger than 16 or not power of
291         two.
292         (build_shadow_mem_access): New function.
293         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
294         Handle size_in_bytes not power of two or larger than 16.
295         (instrument_derefs): Don't give up if size_in_bytes is not
296         power of two or is larger than 16.
297
298 2014-10-15  Vladimir Makarov  <vmakarov@redhat.com>
299
300         PR rtl-optimization/63448
301         * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
302         (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
303         (LRA_MAX_INHERITANCE_PASSES): Use it.
304         (lra_constraint_iter_after_spill): Remove.
305         (lra_assignment_iter): New.
306         (lra_assignment_iter_after_spill): New.
307         * lra-assigns.c (lra_assignment_iter): New.
308         (lra_assignment_iter_after_spill): New.
309         (former_reload_pseudo_spill_p): New.
310         (spill_for): Set up former_reload_pseudo_spill_p.
311         (setup_live_pseudos_and_spill_after_risky): Ditto.
312         (assign_by_spills): Ditto.
313         (lra_assign): Increment lra_assignment_iter.  Print the iteration
314         number.  Reset former_reload_pseudo_spill_p.  Check
315         lra_assignment_iter_after_spill.
316         * lra.c (lra): Remove lra_constraint_iter_after_spill.  Initialize
317         lra_assignment_iter and lra_assignment_iter_after_spill.
318         * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
319         (lra_constraints): Remove code with
320         lra_assignment_iter_after_spill.
321
322 2014-10-15  Eric Botcazou  <ebotcazou@adacore.com>
323
324         * stor-layout.c (self_referential_size): Do not promote arguments.
325
326 2014-10-15  Richard Biener  <rguenther@suse.de>
327
328         Backport from mainline
329         2014-08-15  Richard Biener  <rguenther@suse.de>
330
331         PR tree-optimization/62031
332         * tree-data-ref.c (dr_analyze_indices): Do not set
333         DR_UNCONSTRAINED_BASE.
334         (dr_may_alias_p): All indirect accesses have to go the
335         formerly DR_UNCONSTRAINED_BASE path.
336         * tree-data-ref.h (struct indices): Remove
337         unconstrained_base member.
338         (DR_UNCONSTRAINED_BASE): Remove.
339
340 2014-10-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
341
342         Backport from mainline r215880
343         2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
344
345         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
346         Issue a warning message when vec_lvsl or vec_lvsr is used with a
347         little endian target.
348
349         Backport from mainline r215882
350         2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
351
352         * altivec.md (altivec_lvsl): New define_expand.
353         (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
354         (altivec_lvsr): New define_expand.
355         (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
356         * rs6000.c (rs6000_expand_builtin): Change to use
357         altivec_lvs[lr]_direct; remove commented-out code.
358
359 2014-10-10  Richard Biener  <rguenther@suse.de>
360
361         PR tree-optimization/63379
362         * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
363         a neutral operand for min/max when it is not a reduction chain.
364
365 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
366
367         Backport from mainline
368         2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
369
370         * configure.ac: Add --enable-fix-cortex-a53-835769 option.
371         * configure: Regenerate.
372         * config/aarch64/aarch64.c (aarch64_override_options): Handle
373         TARGET_FIX_ERR_A53_835769_DEFAULT.
374         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
375         value to 2.
376         * doc/install.texi (aarch64*-*-*): Document new
377         --enable-fix-cortex-a53-835769 option.
378
379 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
380
381         Backport from mainline
382         2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
383                     Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
384
385         * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
386         (ADJUST_INSN_LENGTH): Define.
387         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
388         * config/aarch64/aarch64.c (is_mem_p): New function.
389         (is_memory_op): Likewise.
390         (aarch64_prev_real_insn): Likewise.
391         (is_madd_op): Likewise.
392         (dep_between_memop_and_curr): Likewise.
393         (aarch64_madd_needs_nop): Likewise.
394         (aarch64_final_prescan_insn): Likewise.
395         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
396         and -mno-fix-cortex-a53-835769 options.
397
398 2014-10-10  Richard Biener  <rguenther@suse.de>
399
400         PR tree-optimization/63380
401         * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
402         may trap.
403
404 2014-10-09  Richard Biener  <rguenther@suse.de>
405
406         PR tree-optimization/61969
407         * tree-nrv.c (pass_nrv::execute): Properly test for automatic
408         variables.
409
410 2014-10-09  Uros Bizjak  <ubizjak@gmail.com>
411
412         Backport from mainline
413         2014-10-09  Uros Bizjak  <ubizjak@gmail.com>
414
415         PR rtl-optimization/57003
416         * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
417         also check CALL_INSN_FUNCTION_USAGE for clobbers again after
418         killing regs_invalidated_by_call.
419
420 2014-10-08  Oleg Endo  <olegendo@gcc.gnu.org>
421
422         Backport from mainline
423         2014-10-08  Oleg Endo  <olegendo@gcc.gnu.org>
424
425         PR target/52941
426         * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
427         atomic_fetch_<fetchop_name>si_hard,
428         atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
429         atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
430         atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
431         atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
432
433 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
434
435         PR ipa/61144
436         * varpool.c (ctor_for_folding): Do not fold WEAK symbols.
437
438 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
439
440         PR ipa/62121
441         * ipa-devirt.c (restrict_to_inner_class): Do not ICE when type is
442         unknown.
443
444 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
445
446         PR lto/62026
447         * lto-streamer-out.c (lto_output): Handle thunks correctly.
448         * cgraphclones.c (duplicate_thunk_for_node): Get thunk's arguments.
449
450 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
451
452         PR libgomp/61200
453         * omp-low.c (taskreg_contexts): New variable.
454         (scan_omp_parallel): Push newly created context into taskreg_contexts
455         vector and move record layout code to finish_taskreg_scan.
456         (scan_omp_task): Likewise.
457         (finish_taskreg_scan): New function.
458         (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
459         vector elements and release it.
460
461 2014-10-02  Martin Jambor  <mjambor@suse.cz>
462
463         PR tree-optimization/63375
464         * tree-sra.c (build_access_from_expr_1): Disqualify volatile
465         references.
466
467 2014-10-01  Jakub Jelinek  <jakub@redhat.com>
468
469         PR debug/63342
470         * dwarf2out.c (loc_list_from_tree): Handle TARGET_MEM_REF and
471         SSA_NAME.
472
473         PR target/63428
474         * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
475         argument to avx2_permv2ti.
476
477         PR c++/63306
478         Backported from mainline
479         2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
480
481         PR regression/61510
482         * cgraphunit.c (analyze_functions): Use get_create rather than get
483         for decls which are clones of abstract functions.
484
485 2014-10-01  Jakub Jelinek  <jakub@redhat.com>
486
487         Backported from mainline
488         2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
489
490         PR debug/63285
491         * haifa-sched.c (schedule_block): Advance cycle at the end of BB
492         if advance != 0.
493
494         2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
495
496         PR tree-optimization/63186
497         * ipa-split.c (test_nonssa_use): Skip nonforced labels.
498         (mark_nonssa_use): Likewise.
499         (verify_non_ssa_vars): Verify all header blocks for label
500         definitions.
501
502 2014-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
503
504         Backport from mainline
505         2014-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
506
507         * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
508
509 2014-10-01  Uros Bizjak  <ubizjak@gmail.com>
510
511         Backport from mainline
512         2014-09-30  Uros Bizjak  <ubizjak@gmail.com>
513
514         * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
515         (fmod<mode>3): Ditto.
516         (fpremxf4_i387): Ditto.
517         (reminderxf3): Ditto.
518         (reminder<mode>3): Ditto.
519         (fprem1xf4_i387): Ditto.
520
521 2014-09-30  David Malcolm  <dmalcolm@redhat.com>
522
523         PR plugins/63410
524         * Makefile.in (PLUGIN_HEADERS): Add pass-instances.def.
525
526 2014-09-30  Jakub Jelinek  <jakub@redhat.com>
527
528         PR inline-asm/63282
529         * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
530         or invert_jump_1 if jump isn't any_condjump_p.
531
532 2014-09-29  James Clarke  <jrtc27@jrtc27.com>
533             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
534
535         PR target/61407
536         * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
537         and above.
538         * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
539         kernel version check to avoid incrementing it after every major OS X
540         release.
541         (darwin_default_min_version): Avoid static memory buffer.
542
543 2014-09-29  Charles Baylis  <charles.baylis@linaro.org>
544
545         Backport from mainline r212303
546         PR target/49423
547         * config/arm/arm-protos.h (arm_legitimate_address_p,
548         arm_is_constant_pool_ref): Add prototypes.
549         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
550         (arm_is_constant_pool_ref) New function.
551         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
552         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
553         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
554         operand and remove pool_range and neg_pool_range attributes.
555         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
556         pool_range and neg_pool_range attributes.
557         * config/arm/constraints.md (Uh): New constraint. (Uq): Don't allow
558         constant pool references.
559
560 2014-09-29  Jakub Jelinek  <jakub@redhat.com>
561
562         PR middle-end/63247
563         * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
564         of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
565         use the alignment of avar rather than ovar.
566
567 2014-09-28  John David Anglin  <danglin@gcc.gnu.org>
568
569         * config/pa/pa.c (pa_output_function_epilogue): Only update
570         last_address when a nonnote insn is found.
571
572 2014-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
573
574         Backport from mainline
575         2014-09-25  Nick Clifton  <nickc@redhat.com>
576         2014-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
577
578         PR target/62218
579         * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask,
580         atomic_test_and_set_soft_imask): Fix typo in instruction sequence.
581
582 2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
583
584         Backport from mainline r215559
585         2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
586
587         PR target/63335
588         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
589         Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
590
591 2014-09-25  Jakub Jelinek  <jakub@redhat.com>
592
593         PR tree-optimization/63341
594         * tree-vectorizer.h (vect_create_data_ref_ptr,
595         vect_create_addr_base_for_vector_ref): Add another tree argument
596         defaulting to NULL_TREE.
597         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
598         argument, pass it down to vect_create_addr_base_for_vector_ref.
599         (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
600         add that to base_offset too if non-NULL.
601         * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
602         for dr_explicit_realign_optimized set it to vector byte size
603         - 1 instead of setting offset, pass byte_offset down to
604         vect_create_data_ref_ptr.
605
606 2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
607
608         Backport from mainline
609         2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
610
611         * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
612         refine the constraints used on 32/64-bit floating point moves.
613         (f32_av): Likewise.
614         (f64_vsx): Likewise.
615         (f64_dm): Likewise.
616         (f64_av): Likewise.
617         (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
618         (BOOL_REGS_OP1): Likewise.
619         (BOOL_REGS_OP2): Likewise.
620         (BOOL_REGS_UNARY): Likewise.
621         (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
622         32/64-bit floating point moves.  Do not use wa, instead use ww/ws
623         for moves involving VSX registers.  Do not use constraints that
624         target VSX registers for decimal types.
625         (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
626         (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
627
628 2014-09-22  Marek Polacek  <polacek@redhat.com>
629
630         Backport from mainline
631         2014-05-21  Marek Polacek  <polacek@redhat.com>
632
633         PR sanitizer/61272
634         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
635
636 2014-09-22  Jakub Jelinek  <jakub@redhat.com>
637
638         PR debug/63328
639         * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
640         insert a debug source bind stmt setting DEBUG_EXPR_DECL
641         instead of a normal gimple assignment stmt.
642
643 2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
644
645         Back port from trunk:
646         2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
647
648         * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
649         for base_reg_operand to be common between LO_SUM and PLUS.
650         (fusion_gpr_mem_combo): New predicate to match a fused address
651         that combines the addis and memory offset address.
652
653         * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
654         calling signature.
655         (emit_fusion_gpr_load): Likewise.
656
657         * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
658         signature to pass each argument separately, rather than
659         using an operands array.  Rewrite the insns found by peephole2 to
660         be a single insn, rather than hoping the insns will still be
661         together when the peephole pass is done.  Drop being called via a
662         normal peephole.
663         (emit_fusion_gpr_load): Change calling signature to be called from
664         the fusion_gpr_load_<mode> insns with a combined memory address
665         instead of the peephole pass passing the addis and offset
666         separately.
667
668         * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
669         fusion.
670         (power8 fusion peephole): Drop support for doing power8 via a
671         normal peephole that was created by the peephole2 pass.
672         (power8 fusion peephole2): Create a new insn with the fused
673         address, so that the fused operation is kept together after
674         register allocation is done.
675         (fusion_gpr_load_<mode>): Likewise.
676
677 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
678
679         PR c++/62017
680         * asan.c (transform_statements): Don't instrument clobber statements.
681
682 2014-09-17  Jakub Jelinek  <jakub@redhat.com>
683
684         PR debug/63284
685         * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
686         if there are only debug stmts after the noreturn call, instead
687         remove the debug stmts.
688
689 2014-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
690
691         * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
692         Enable selection of 'posix' or no thread model.
693
694 2014-09-16  John David Anglin  <danglin@gcc.gnu.org>
695
696         PR target/61853
697         * config/pa/pa.c (pa_function_value): Directly handle aggregates
698         that fit exactly in a word or double word.
699
700 2014-09-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
701
702         * doc/install.texi (Options specification): add
703         --disable-libsanitizer item.
704
705 2014-09-12  DJ Delorie  <dj@redhat.com>
706
707         * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
708         (extend_and_shift1_hipsi2): Likewise.
709         (extend_and_shift2_hipsi2): Likewise.
710
711 2014-09-12  Martin Jambor  <mjambor@suse.cz>
712
713         PR ipa/61654
714         * cgraph.h (cgraph_analyze_function): Declare.
715         * cgraphunit.c: (analyze_function): Remove forward declaration,
716         rename to cgraph_analyze_function, made external.
717         * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
718         new decl properly.  Analyze the new thunk if it is expanded.
719
720 2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
721
722         Backport from mainline
723         2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
724
725         PR target/63228
726         * config/i386/i386.c (ix86_option_override_internal): Also turn
727         off OPTION_MASK_ABI_X32 for -m16.
728
729 2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
730
731         Backport from mainline.
732         2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
733
734         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
735         types.
736         (vmull_high_lane_s32): Likewise.
737         (vmull_high_lane_u16): Likewise.
738         (vmull_high_lane_u32): Likewise.
739
740 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
741
742         Backport r214946 from mainline
743         2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
744
745         * config/aarch64/aarch64.md (adddi3_aarch64): Set type to neon_add.
746
747 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
748
749         Backport r214953 from mainline
750         2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
751
752         * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
753         uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
754
755         (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
756         vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
757         vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
758         vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
759         vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
760         vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
761         vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
762         vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
763         vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
764         vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
765         vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
766         vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
767         vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
768         vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
769         vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
770         vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
771         vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
772         vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
773         vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
774         vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
775         with int{32,16,8}_t.
776
777 2014-09-11  Jason Merrill  <jason@redhat.com>
778
779         PR c++/58678
780         * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
781
782 2014-09-11  Georg-Johann Lay  <avr@gjlay.de>
783
784         Backport from 2014-09-11 trunk r215152.
785
786         PR target/63223
787         * config/avr/avr.md (*tablejump.3byte-pc): New insn.
788         (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
789         (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
790
791 2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
792
793         Backport from mainline
794         2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
795
796         * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
797         V2DF, V4SF, DF, and DI modes.
798         (vsx_fmav2df2): Likewise.
799         (vsx_float_fix_<mode>2): Likewise.
800         (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
801
802 2014-09-10  Xinliang David Li  <davidxl@google.com>
803
804         Backport from mainline
805         PR target/63209
806         * config/arm/arm.md (movcond_addsi): Handle case where source
807         and target operands are the same.
808
809 2014-09-10  Alan Modra  <amodra@gmail.com>
810
811         PR debug/60655
812         * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
813         can't be output.
814
815 2014-09-09  Bill Schmidt  <wschmidt@us.ibm.com>
816
817         Backported from mainline
818         2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
819
820         * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
821         selection of 0th memory doubleword, regardless of endianness.
822
823 2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
824
825         Backport from mainline
826         2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
827
828         * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
829         (-mtune): Likewise.
830         (-mcpu): Likewise.
831
832 2014-09-09  Jason Merrill  <jason@redhat.com>
833
834         PR c++/61214
835         PR c++/62224
836         * gimple-fold.c (can_refer_decl_in_current_unit_p): Don't allow
837         reference to a DECL_EXTERNAL COMDAT.
838
839 2014-09-09  Richard Biener  <rguenther@suse.de>
840
841         Backport from mainline
842         2014-08-05  Richard Biener  <rguenther@suse.de>
843
844         PR rtl-optimization/61672
845         * emit-rtl.h (mem_attrs_eq_p): Declare.
846         * emit-rtl.c (mem_attrs_eq_p): Export.  Handle NULL mem-attrs.
847         * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
848         * cfgcleanup.c (merge_memattrs): Likewise.
849         Include emit-rtl.h.
850
851         2014-08-11  Richard Biener  <rguenther@suse.de>
852
853         PR tree-optimization/62075
854         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
855         handle uses in patterns.
856
857         2014-08-14  Richard Biener  <rguenther@suse.de>
858
859         PR rtl-optimization/62079
860         * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
861         run cleanup_cfg.
862
863         2014-08-26  Richard Biener  <rguenther@suse.de>
864
865         PR tree-optimization/62175
866         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
867         expand possibly trapping operations.
868
869 2014-09-08  DJ Delorie  <dj@redhat.com>
870
871         * doc/invoke.texi (MSP430 Options): Add -minrt.
872
873 2014-09-05  Easwaran Raman  <eraman@google.com>
874
875         Backport from mainline
876         PR rtl-optimization/62146
877         * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
878         hoisted instruction unconditional.
879
880 2014-09-04  Guozhi Wei  <carrot@google.com>
881
882         PR target/62040
883         * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
884         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
885         it into two patterns.
886         (move_lo_quad_internal_be_<mode>): Likewise.
887
888 2014-09-03  Martin Jambor  <mjambor@suse.cz>
889
890         PR ipa/62015
891         * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
892         pass-trough jump functions correctly.
893
894 2014-09-03  Martin Jambor  <mjambor@suse.cz>
895
896         PR ipa/61986
897         * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
898         created replacements in ascending order of offsets.
899         (known_aggs_to_agg_replacement_list): Likewise.
900
901 2014-09-02  Kaz Kojima  <kkojima@gcc.gnu.org>
902
903         Backport from mainline
904         2014-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
905
906         PR target/62261
907         * config/sh/sh.md (ashlsi3): Handle negative shift count for
908         TARGET_SHMEDIA.
909         (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
910
911 2014-09-02  Kaz Kojima  <kkojima@gcc.gnu.org>
912
913         Backport from mainline
914         2014-08-25  Kaz Kojima  <kkojima@gcc.gnu.org>
915
916         PR target/62111
917         * config/sh/predicates.md (general_extend_operand): Disable
918         TRUNCATE before reload completes.
919
920 2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
921
922         Backport from mainline
923         2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
924
925         PR target/62312
926         * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
927
928 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
929
930         PR target/62025
931         * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
932         returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
933         (find_inc): Revert 2014-08-12 change.
934
935         * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
936         * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
937         (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
938
939 2014-09-01  Marek Polacek  <polacek@redhat.com>
940
941         Backport from mainline
942         2014-08-21  Marek Polacek  <polacek@redhat.com>
943
944         PR c/61271
945         * expr.c (is_aligning_offset): Remove logical not.
946
947 2014-09-01  Marek Polacek  <polacek@redhat.com>
948
949         Backport from mainline
950         2014-08-19  Marek Polacek  <polacek@redhat.com>
951
952         PR c/61271
953         * cgraphunit.c (handle_alias_pairs): Fix condition.
954
955 2014-08-30  John David Anglin  <danglin@gcc.gnu.org>
956
957         * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
958         prefix to function labels when generating fast indirect calls.
959
960 2014-08-29  Yvan Roux  <yvan.roux@linaro.org>
961
962         Backport from mainline
963         2014-08-27  Yvan Roux  <yvan.roux@linaro.org>
964
965         PR other/62248
966         * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
967
968 2014-08-27  Guozhi Wei  <carrot@google.com>
969
970         PR target/62262
971         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
972         amount before using it.
973
974 2014-08-26  Joel Sherrill <joel.sherrill@oarcorp.com>
975
976         * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
977
978 2014-08-26  Marek Polacek  <polacek@redhat.com>
979
980         Backport from mainline
981         2014-08-26  Marek Polacek  <polacek@redhat.com>
982
983         PR c/61271
984         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
985         LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
986
987 2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
988
989         Backport from mainline
990         2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
991
992         PR target/61996
993         * config/sh/sh.opt (musermode): Allow negative form.
994         * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
995         targets that don't support it.
996         * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
997         Document -mno-usermode option.
998
999 2014-08-23  John David Anglin  <danglin@gcc.gnu.org>
1000
1001         PR target/62038
1002         * config/pa/pa.c (pa_output_function_epilogue): Don't set
1003         last_address when the current function is a thunk.
1004         (pa_asm_output_mi_thunk): When we don't have named sections or they
1005         are not being used, check that thunk can reach the stub table with a
1006         short branch.
1007
1008 2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
1009
1010         Backport from mainline
1011         2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
1012
1013         PR target/62195
1014         * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
1015         documentation to state it is only for VSX operations.
1016
1017         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
1018         constraint only active if VSX.
1019
1020         * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
1021         wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
1022         (lfiwzx): Likewise.
1023
1024 2014-08-21  Uros Bizjak  <ubizjak@gmail.com>
1025
1026         Backport from mainline
1027         2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
1028
1029         * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
1030         destination if it is used in source.
1031         (*clz<mode>2_lzcnt_falsedep_1): Likewise.
1032         (*popcount<mode>2_falsedep_1): Likewise.
1033
1034         Backport from mainline
1035         2014-08-18  Uros Bizjak  <ubizjak@gmail.com>
1036
1037         PR target/62011
1038         * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
1039         New tune flag.
1040         * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
1041         * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
1042         (ffs<mode>2): Do not expand with tzcnt for
1043         TARGET_AVOID_FALSE_DEP_FOR_BMI.
1044         (ffssi2_no_cmove): Ditto.
1045         (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
1046         (ctz<mode>2): New expander.
1047         (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
1048         (*ctz<mode>2_falsedep): New insn.
1049         (*ctz<mode>2): Rename from ctz<mode>2.
1050         (clz<mode>2_lzcnt): New expander.
1051         (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
1052         (*clz<mode>2_lzcnt_falsedep): New insn.
1053         (*clz<mode>2): Rename from ctz<mode>2.
1054         (popcount<mode>2): New expander.
1055         (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
1056         (*popcount<mode>2_falsedep): New insn.
1057         (*popcount<mode>2): Rename from ctz<mode>2.
1058         (*popcount<mode>2_cmp): Remove.
1059         (*popcountsi2_cmp_zext): Ditto.
1060
1061 2014-08-20  Martin Jambor  <mjambor@suse.cz>
1062             Wei Mi  <wmi@google.com>
1063
1064         PR ipa/60449
1065         PR middle-end/61776
1066         * tree-ssa-operands.c (update_stmt_operands): Remove
1067         MODIFIED_NORETURN_CALLS.
1068         * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
1069         (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
1070         (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
1071         (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
1072         * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
1073         * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
1074         (gimple_call_set_ctrl_altering): New func.
1075         (gimple_call_ctrl_altering_p): Ditto.
1076         * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
1077         (make_blocks): Use gimple_call_initialize_ctrl_altering.
1078         (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
1079         (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
1080         remove MODIFIED_NORETURN_CALLS.
1081
1082 2014-08-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1083
1084         Backport from mainline.
1085         2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1086         PR target/62098
1087         * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
1088         Remove unnecessary attributes.
1089
1090 2014-08-16  John David Anglin  <danglin@gcc.gnu.org>
1091
1092         PR target/61641
1093         * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
1094         Declare.
1095         * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
1096         (pa_output_addr_vec, pa_output_addr_diff_vec): New.
1097         * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
1098         Define.
1099         * config/pa/pa.md (begin_brtab): Delete insn.
1100         (end_brtab): Likewise.
1101
1102 2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
1103
1104         Backport from mainline:
1105         2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
1106
1107         * doc/invoke.texi (SH options): Document missing processor variant
1108         options.  Remove references to Hitachi.  Undocument deprecated mspace
1109         option.
1110
1111 2014-08-15  Tom de Vries  <tom@codesourcery.com>
1112
1113         Backport from mainline:
1114         2014-08-14  Tom de Vries  <tom@codesourcery.com>
1115
1116         PR rtl-optimization/62004
1117         PR rtl-optimization/62030
1118         * ifcvt.c (rtx_interchangeable_p): New function.
1119         (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
1120
1121         2014-08-05  Richard Biener  <rguenther@suse.de>
1122
1123         * emit-rtl.h (mem_attrs_eq_p): Declare.
1124         * emit-rtl.c (mem_attrs_eq_p): Export.
1125
1126 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
1127
1128         PR middle-end/62092
1129         * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
1130         OMP_CLAUSE_SHARED for global vars if the global var is mentioned
1131         in OMP_CLAUSE_MAP in some outer target region.
1132
1133 2014-08-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1134
1135         Backport from mainline
1136         2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1137
1138         PR target/61713
1139         * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
1140         move to subtarget in serial version if result is ignored.
1141
1142 2014-08-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1143
1144         Backport from mainline
1145         2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1146
1147         PR middle-end/62103
1148         * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
1149         bitfields, that is when size doesn't match the size of type or the
1150         size of the constructor.
1151
1152 2014-08-12  Felix Yang  <fei.yang0953@gmail.com>
1153
1154         PR tree-optimization/62073
1155         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
1156         a basic block.
1157
1158 2014-08-12  Jakub Jelinek  <jakub@redhat.com>
1159
1160         PR target/62025
1161         * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
1162         any registers that are used in mem_insn.
1163
1164 2014-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
1165
1166         Backport patch from mainline
1167         2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
1168
1169         * config/rs6000/constraints.md (wh constraint): New constraint,
1170         for FP registers if direct move is available.
1171         (wi constraint): New constraint, for VSX/FP registers that can
1172         handle 64-bit integers.
1173         (wj constraint): New constraint for VSX/FP registers that can
1174         handle 64-bit integers for direct moves.
1175         (wk constraint): New constraint for VSX/FP registers that can
1176         handle 64-bit doubles for direct moves.
1177         (wy constraint): Make documentation match implementation.
1178
1179         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
1180         scalar_in_vmx_p field to simplify tests of whether SFmode or
1181         DFmode can go in the Altivec registers.
1182         (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
1183         (rs6000_setup_reg_addr_masks): Likewise.
1184         (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
1185         field, and wh/wi/wj/wk constraints.
1186         (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
1187         the wh/wi/wj/wk constraints.
1188         (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
1189         upper registers, prefer VSX registers unless the operation is a
1190         memory operation with REG+OFFSET addressing.
1191
1192         * config/rs6000/vsx.md (VSr mode attribute): Add support for
1193         DImode.  Change SFmode to use ww constraint instead of d to allow
1194         SF registers in the upper registers.
1195         (VSr2): Likewise.
1196         (VSr3): Likewise.
1197         (VSr5): Fix thinko in comment.
1198         (VSa): New mode attribute that is an alternative to wa, that
1199         returns the VSX register class that a mode can go in, but may not
1200         be the preferred register class.
1201         (VS_64dm): New mode attribute for appropriate register classes for
1202         referencing 64-bit elements of vectors for direct moves and normal
1203         moves.
1204         (VS_64reg): Likewise.
1205         (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
1206         register allocator to only registers the data type can handle.
1207         (vsx_le_perm_load_<mode>): Likewise.
1208         (vsx_le_perm_store_<mode>): Likewise.
1209         (vsx_xxpermdi2_le_<mode>): Likewise.
1210         (vsx_xxpermdi4_le_<mode>): Likewise.
1211         (vsx_lxvd2x2_le_<mode>): Likewise.
1212         (vsx_lxvd2x4_le_<mode>): Likewise.
1213         (vsx_stxvd2x2_le_<mode>): Likewise.
1214         (vsx_add<mode>3): Likewise.
1215         (vsx_sub<mode>3): Likewise.
1216         (vsx_mul<mode>3): Likewise.
1217         (vsx_div<mode>3): Likewise.
1218         (vsx_tdiv<mode>3_internal): Likewise.
1219         (vsx_fre<mode>2): Likewise.
1220         (vsx_neg<mode>2): Likewise.
1221         (vsx_abs<mode>2): Likewise.
1222         (vsx_nabs<mode>2): Likewise.
1223         (vsx_smax<mode>3): Likewise.
1224         (vsx_smin<mode>3): Likewise.
1225         (vsx_sqrt<mode>2): Likewise.
1226         (vsx_rsqrte<mode>2): Likewise.
1227         (vsx_tsqrt<mode>2_internal): Likewise.
1228         (vsx_fms<mode>4): Likewise.
1229         (vsx_nfma<mode>4): Likewise.
1230         (vsx_eq<mode>): Likewise.
1231         (vsx_gt<mode>): Likewise.
1232         (vsx_ge<mode>): Likewise.
1233         (vsx_eq<mode>_p): Likewise.
1234         (vsx_gt<mode>_p): Likewise.
1235         (vsx_ge<mode>_p): Likewise.
1236         (vsx_xxsel<mode>): Likewise.
1237         (vsx_xxsel<mode>_uns): Likewise.
1238         (vsx_copysign<mode>3): Likewise.
1239         (vsx_float<VSi><mode>2): Likewise.
1240         (vsx_floatuns<VSi><mode>2): Likewise.
1241         (vsx_fix_trunc<mode><VSi>2): Likewise.
1242         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
1243         (vsx_x<VSv>r<VSs>i): Likewise.
1244         (vsx_x<VSv>r<VSs>ic): Likewise.
1245         (vsx_btrunc<mode>2): Likewise.
1246         (vsx_b2trunc<mode>2): Likewise.
1247         (vsx_floor<mode>2): Likewise.
1248         (vsx_ceil<mode>2): Likewise.
1249         (vsx_<VS_spdp_insn>): Likewise.
1250         (vsx_xscvspdp): Likewise.
1251         (vsx_xvcvspuxds): Likewise.
1252         (vsx_float_fix_<mode>2): Likewise.
1253         (vsx_set_<mode>): Likewise.
1254         (vsx_extract_<mode>_internal1): Likewise.
1255         (vsx_extract_<mode>_internal2): Likewise.
1256         (vsx_extract_<mode>_load): Likewise.
1257         (vsx_extract_<mode>_store): Likewise.
1258         (vsx_splat_<mode>): Likewise.
1259         (vsx_xxspltw_<mode>): Likewise.
1260         (vsx_xxspltw_<mode>_direct): Likewise.
1261         (vsx_xxmrghw_<mode>): Likewise.
1262         (vsx_xxmrglw_<mode>): Likewise.
1263         (vsx_xxsldwi_<mode>): Likewise.
1264         (vsx_xscvdpspn): Tighten constraints to only use register classes
1265         the types use.
1266         (vsx_xscvspdpn): Likewise.
1267         (vsx_xscvdpspn_scalar): Likewise.
1268
1269         * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
1270         wj, and wk constraints.
1271         (GPR_REG_CLASS_P): New helper macro for register classes targeting
1272         general purpose registers.
1273
1274         * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
1275         direct moves.
1276         (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
1277         DImode instead of wm.  Use wk constraint for direct move of DFmode
1278         instead of wm.
1279         (extendsidi2_lfiwax): Likewise.
1280         (lfiwax): Likewise.
1281         (lfiwzx): Likewise.
1282         (movdi_internal64): Likewise.
1283
1284         * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
1285         wk constraints. Make the wy constraint documentation match them
1286         implementation.
1287
1288 2014-08-12  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
1289
1290         Backport from mainline
1291         2014-08-04 Ganesh Gopalasubramanian
1292                    <Ganesh.Gopalasubramanian@amd.com>
1293
1294         * config/i386/i386.c (ix86_option_override_internal): Add
1295         PTA_RDRND and PTA_MOVBE for bdver4.
1296
1297 2014-08-12  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
1298
1299         Backport from mainline
1300         2014-08-04  Ganesh Gopalasubramanian 
1301                     <Ganesh.Gopalasubramanian@amd.com>
1302
1303         * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
1304         family information. Handle BTVER2 cpu with cpuid family value.
1305
1306 2014-08-12  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
1307
1308         Backport from mainline
1309         2014-06-16  Ganesh Gopalasubramanian 
1310                     <Ganesh.Gopalasubramanian@amd.com>
1311
1312         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
1313         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
1314         handling 32-bit multiplication.
1315
1316 2014-08-08  Guozhi Wei  <carrot@google.com>
1317
1318         * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
1319
1320 2014-08-07  Ilya Tocar  <ilya.tocar@intel.com>
1321
1322         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
1323         constraint.
1324
1325 2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>
1326
1327         PR debug/61923
1328         * haifa-sched.c (advance_one_cycle): Fix dump.
1329         (schedule_block): Don't advance cycle if we are already at the
1330         beginning of the cycle.
1331
1332 2014-08-06  Richard Biener  <rguenther@suse.de>
1333
1334         PR tree-optimization/61320
1335         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
1336         handle misaligned loads.
1337
1338 2014-08-04  Rohit  <rohitarulraj@freescale.com>
1339
1340         PR target/60102
1341         * config/rs6000/rs6000.c
1342         (rs6000_reg_names): Add SPE high register names.
1343         (alt_reg_names): Likewise.
1344         (rs6000_dwarf_register_span): For SPE high registers, replace
1345         dwarf register numbers with GCC hard register numbers.
1346         (rs6000_init_dwarf_reg_sizes_extra): Likewise.
1347         (rs6000_dbx_register_number): For SPE high registers, return dwarf
1348         register number for the corresponding GCC hard register number.
1349         * config/rs6000/rs6000.h
1350         (FIRST_PSEUDO_REGISTER): Update based on 32 newly added GCC hard
1351         register numbers for SPE high registers.
1352         (DWARF_FRAME_REGISTERS):  Likewise.
1353         (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
1354         (DWARF_FRAME_REGNUM): Likewise.
1355         (FIXED_REGISTERS): Likewise.
1356         (CALL_USED_REGISTERS): Likewise.
1357         (CALL_REALLY_USED_REGISTERS): Likewise.
1358         (REG_ALLOC_ORDER): Likewise.
1359         (enum reg_class): Likewise.
1360         (REG_CLASS_NAMES): Likewise.
1361         (REG_CLASS_CONTENTS): Likewise.
1362         (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
1363
1364 2014-08-01  Vladimir Makarov  <vmakarov@redhat.com>
1365
1366         * lra-constraints.c (remove_inheritance_pseudos): Process
1367         destination pseudo too.
1368
1369 2014-08-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1370
1371         Backport from mainline
1372         2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1373
1374         PR tree-optimization/61375
1375         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Cancel optimization if
1376         symbolic number cannot be represented in an unsigned HOST_WIDE_INT.
1377         (execute_optimize_bswap): Cancel optimization if CHAR_BIT != 8.
1378
1379 2014-08-01  Richard Biener  <rguenther@suse.de>
1380
1381         PR tree-optimization/61964
1382         * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
1383         by structural equality.
1384
1385 2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
1386
1387         Backport from mainline
1388         2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
1389
1390         PR target/61844
1391         * config/sh/sh.c (sh_legitimate_address_p,
1392         sh_legitimize_reload_address): Handle reg+reg address modes when
1393         ALLOW_INDEXED_ADDRESS is false.
1394         * config/sh/predicates.md (general_movsrc_operand,
1395         general_movdst_operand): Likewise.
1396
1397 2014-07-25  Uros Bizjak  <ubizjak@gmail.com>
1398
1399         Backport from mainline
1400         2014-07-14  Jakub Jelinek  <jakub@redhat.com>
1401
1402         PR target/61656
1403         * config/i386/i386.c (classify_argument): Don't merge classes above
1404         number of words.
1405
1406 2014-07-25  Uros Bizjak  <ubizjak@gmail.com>
1407
1408         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
1409
1410 2014-07-24  Kyle McMartin  <kyle@redhat.com>
1411
1412         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
1413
1414 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1415
1416         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
1417         Add prototype.
1418         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
1419         function.  Issue -Wpsabi warning if future GCC releases will use
1420         different field alignment rules for this type.
1421         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
1422         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
1423         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
1424
1425 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1426
1427         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): Issue
1428         -Wpsabi note when encountering a type where future GCC releases
1429         will apply different alignment requirements.
1430
1431 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1432
1433         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
1434         does not fit fully into floating-point registers, and there is still
1435         space in the register parameter area, issue -Wpsabi note that the ABI
1436         will change in a future GCC release.
1437
1438 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1439
1440         * config/arm/t-rtems-eabi: Add
1441         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
1442         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
1443         mbig-endian/mthumb/march=armv7-r, and
1444         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
1445         multilibs.
1446
1447 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1448             Chris Johns <chrisj@rtems.org>
1449             Joel Sherrill <joel.sherrill@oarcorp.com>
1450
1451         * config.gcc: Add nios2-*-rtems*.
1452         * config/nios2/rtems.h: New file.
1453         * gcc/config/nios2/t-rtems: New file.
1454
1455 2014-07-21  Peter Bergner  <bergner@vnet.ibm.com>
1456
1457         * config/rs6000/sysv4.h (LIBASAN_EARLY_SPEC): Define.
1458         (LIBTSAN_EARLY_SPEC): Likewise.
1459
1460 2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
1461
1462         Backport from mainline
1463         2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
1464
1465         PR target/61855
1466         * config/i386/avx512fintrin.h: Move constants for mantissa extraction
1467         out of #ifdef __OPTIMIZE__.
1468
1469 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
1470
1471         * expr.c (store_field): Handle VOIDmode for calls that return values
1472         in multiple locations.
1473
1474 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
1475
1476         * toplev.c (output_stack_usage): Adjust the location of the warning.
1477
1478 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
1479
1480         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
1481         (*membar_storeload): Disable for LEON3.
1482
1483 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
1484
1485         Backport from mainline
1486         2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
1487
1488         PR target/61662
1489         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
1490
1491 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
1492
1493         Backport from mainline
1494         2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
1495
1496         PR target/61794
1497         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
1498         Fix instruction constraint.
1499         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
1500
1501 2014-07-17  Richard Biener  <rguenther@suse.de>
1502
1503         Backport from mainline
1504         2014-07-14  Richard Biener  <rguenther@suse.de>
1505
1506         PR tree-optimization/61779
1507         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
1508         simplifying a condition.
1509
1510 2014-07-17  Richard Biener  <rguenther@suse.de>
1511
1512         PR rtl-optimization/61801
1513         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
1514         don't set reg_pending_barrier if it appears in a debug-insn.
1515
1516 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
1517
1518         Backport from trunk.
1519         PR target/61737.
1520         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
1521         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
1522         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
1523         functions.
1524         (cris_print_index, cris_print_operand, cris_constant_index_p)
1525         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
1526         (cris_address_cost): Ditto last CONSTANT_P.
1527         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
1528         callers changed.  Yield cris_offsettable_symbol for non-PIC
1529         constant symbolic expressions including labels.  Yield cris_unspec
1530         for all unspecs.
1531         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
1532         target to pic_offset_table_rtx for calls that will likely go
1533         through PLT, const0_rtx when they can't.  All callers changed.
1534         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
1535         symbolic expressions to be PICified.  Remove second, redundant,
1536         assert on can_create_pseudo_p returning non-zero.  Use
1537         replace_equiv_address_nv, not replace_equiv_address, for final
1538         operand update.
1539         * config/cris/cris.md ("movsi"): Move variable t to pattern
1540         toplevel. Adjust assert for new cris_symbol_type member.  Use
1541         CONSTANT_P instead of CONSTANT_ADDRESS_P.
1542         ("*movsi_internal") <case 9>: Make check for valid unspec operands
1543         for lapc stricter.
1544         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
1545         ("call", "call_value"): Use second incoming operand as a marker
1546         for pic-offset-table-register being used.
1547         ("*expanded_call_non_v32", "*expanded_call_v32")
1548         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
1549         second incoming operand to CALL, match cris_call_type_marker.
1550         ("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
1551         ("*expanded_call_side"): Ditto.  Fix typo in comment.
1552         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
1553         CONSTANT_P.
1554         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
1555         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
1556         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
1557         users changed.  Add members cris_offsettable_symbol and cris_unspec.
1558         (cris_symbol_type): Rename from cris_pic_symbol_type.
1559         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
1560         just CONSTANT_P.
1561         * config/cris/cris-protos.h (cris_symbol_type_of,
1562         cris_expand_pic_call_address): Adjust prototypes.
1563         (cris_legitimate_constant_p): New prototype.
1564
1565         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
1566         an existing tmake_file.  Don't add t-slibgcc and t-linux.
1567
1568 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
1569
1570         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
1571         on the FUNCTION_DECL.
1572
1573         * BASE-VER: Set to 4.9.1.
1574         * DEV-PHASE: Set to prerelease.
1575
1576 2014-07-16  Release Manager
1577
1578         * GCC 4.9.1 released.
1579
1580 2014-07-10  Cary Coutant  <ccoutant@google.com>
1581
1582         Backport from trunk at r212211.
1583
1584         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
1585         lookup.
1586         (resolve_addr_in_expr): When replacing the rtx in a location list
1587         entry, get a new address table entry.
1588         (dwarf2out_finish): Call index_location_lists even if there are no
1589         addr_index_table entries yet.
1590
1591 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
1592
1593         * doc/install.texi: Remove links to defunct package providers for
1594         Solaris.
1595
1596 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
1597
1598         PR middle-end/53590
1599         * function.c (allocate_struct_function): Revert r188667 change.
1600
1601         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
1602
1603 2014-07-09  Alan Lawrence  <alan.lawrence@arm.com>
1604
1605         Backport r211369 from trunk.
1606         2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
1607
1608         PR target/61062
1609         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
1610         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
1611         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
1612         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
1613         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
1614         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
1615         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
1616         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
1617         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
1618
1619
1620 2014-07-09  Alan Lawrence  <alan.lawrence@arm.com>
1621
1622         Backport r210219 from trunk.
1623         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1624
1625         * config/arm/arm_neon.h: Update comment.
1626         * config/arm/neon-docgen.ml: Delete.
1627         * config/arm/neon-gen.ml: Delete.
1628         * doc/arm-neon-intrinsics.texi: Update comment.
1629
1630 2014-07-09  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
1631
1632         Backport r211775 from trunk.
1633         2014-06-18  Terry Guo  <terry.guo@arm.com>
1634
1635         PR target/61544
1636         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
1637         reach the head.
1638
1639 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
1640
1641         PR rtl-optimization/61673
1642         * combine.c (simplify_comparison): Test just mode's sign bit
1643         in tmode rather than the sign bit and any bits above it.
1644
1645 2014-07-08  James Greenhalgh  <james.greenhalgh@arm.com>
1646
1647         Backport r212298 from trunk.
1648         2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
1649
1650         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
1651         (move_lo_quad_internal_be_<mode>): Likewise.
1652         (move_lo_quad_<mode>): Convert to define_expand.
1653         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
1654         (aarch64_simd_move_hi_quad_be_<mode>): New.
1655         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
1656         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
1657         (aarch64_combinez_be<mode>): New.
1658         (aarch64_combine<mode>): Convert to define_expand.
1659         (aarch64_combine_internal<mode>): New.
1660         (aarch64_simd_combine<mode>): Remove bogus RTL description.
1661
1662 2014-07-08  Richard Biener  <rguenther@suse.de>
1663
1664         PR tree-optimization/61680
1665         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
1666         Handle properly all read-write dependences with group accesses.
1667
1668         PR tree-optimization/61681
1669         * tree-ssa-structalias.c (find_what_var_points_to): Expand
1670         NONLOCAL inside ESCAPED.
1671
1672 2014-07-08  Alan Lawrence  <alan.lawrence@arm.com>
1673
1674         Backport r211502 from mainline.
1675         2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
1676
1677         PR target/59843
1678         * config/aarch64/aarch64-modes.def: Add V1DFmode.
1679         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
1680         Support V1DFmode.
1681
1682 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
1683
1684         PR tree-optimization/61725
1685         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
1686         range, use range_includes_zerop_p instead of integer_zerop on
1687         vr0->min, only use log2 of max if min is not negative.
1688
1689 2014-07-06  Gerald Pfeifer  <gerald@pfeifer.com>
1690
1691         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
1692
1693 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
1694
1695         PR middle-end/61654
1696         * cgraphunit.c (expand_thunk): Call free_dominance_info.
1697
1698         PR tree-optimization/61684
1699         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
1700         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
1701
1702 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
1703
1704         Backported from mainline
1705         2014-06-27  Jakub Jelinek  <jakub@redhat.com>
1706
1707         PR tree-optimization/57233
1708         PR tree-optimization/61299
1709         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
1710         functions.
1711         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
1712         would be lowered to scalar shifts, check if corresponding
1713         shifts and vector BIT_IOR_EXPR are supported and don't lower
1714         or lower just to narrower vector type in that case.
1715         * expmed.c (expand_shift_1): Fix up handling of vector
1716         shifts and rotates.
1717
1718         2014-06-25  Jakub Jelinek  <jakub@redhat.com>
1719
1720         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
1721         (LANG_HOOKS_DECLS): Add it.
1722         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
1723         has correct type.
1724         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
1725         * langhooks.h (struct lang_hooks_for_decls): Add
1726         omp_clause_linear_ctor hook.
1727         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
1728         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
1729         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
1730         combined simd loop use omp_clause_linear_ctor hook.
1731
1732         2014-06-24  Jakub Jelinek  <jakub@redhat.com>
1733
1734         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
1735         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is non-NULL.
1736         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
1737         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is non-NULL.
1738         (gimplify_adjust_omp_clauses): Likewise.
1739         * omp-low.c (lower_rec_simd_input_clauses,
1740         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
1741         safelen the same as safelen(1).
1742         * tree-nested.c (convert_nonlocal_omp_clauses,
1743         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
1744         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
1745         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
1746         Fixup handling of GIMPLE_OMP_TARGET.
1747         (convert_tramp_reference_stmt, convert_gimple_call): Handle
1748         GIMPLE_OMP_TARGET.
1749
1750         2014-06-18  Jakub Jelinek  <jakub@redhat.com>
1751
1752         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
1753         change in ORT_TARGET region, don't jump to do_outer.
1754         (struct gimplify_adjust_omp_clauses_data): New type.
1755         (gimplify_adjust_omp_clauses_1): Adjust for data being
1756         a struct gimplify_adjust_omp_clauses_data pointer instead
1757         of tree *.  Pass pre_p as a new argument to
1758         lang_hooks.decls.omp_finish_clause hook.
1759         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
1760         splay_tree_foreach to pass both list_p and pre_p.
1761         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
1762         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
1763         gimplify_adjust_omp_clauses callers.
1764         * langhooks.c (lhd_omp_finish_clause): New function.
1765         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
1766         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
1767         * langhooks.h (struct lang_hooks_for_decls): Add a new
1768         gimple_seq * argument to omp_finish_clause hook.
1769         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
1770         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
1771         (scan_omp_parallel, lower_omp_for): When adding _LOOPTEMP_ clause var,
1772         add it to outer ctx's decl_map as identity.
1773         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
1774         * tree-nested.c (convert_nonlocal_omp_clauses,
1775         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
1776         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
1777
1778         2014-06-10  Jakub Jelinek  <jakub@redhat.com>
1779
1780         PR fortran/60928
1781         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
1782         Set lastprivate_firstprivate even if omp_private_outer_ref
1783         langhook returns true.
1784         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
1785         langhook, call unshare_expr on new_var and call
1786         build_outer_var_ref to get the last argument.
1787
1788         2014-05-11  Jakub Jelinek  <jakub@redhat.com>
1789
1790         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
1791         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
1792         number of operands to 3.
1793         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
1794         * tree-nested.c (convert_nonlocal_omp_clauses,
1795         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
1796         * gimplify.c (gimplify_scan_omp_clauses): Handle
1797         OMP_CLAUSE_LINEAR_STMT.
1798         * omp-low.c (lower_rec_input_clauses): Fix typo.
1799         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
1800         cast between Fortran boolean_type_node and C _Bool if needed.
1801
1802 2014-06-30  Jason Merrill  <jason@redhat.com>
1803
1804         PR c++/51253
1805         PR c++/61382
1806         * gimplify.c (gimplify_arg): Non-static.
1807         * gimplify.h: Declare it.
1808
1809 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1810
1811         Backport from Mainline
1812         2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1813
1814         PR target/61633
1815         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
1816         Add alternative; make early clobber.  Adjust both split patterns
1817         to use operand 0 as the working register.
1818
1819 2014-06-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1820
1821         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
1822         Update comments.
1823         (VCONQ): Make comment more helpful.
1824         (VCON): Delete.
1825         * config/aarch64/aarch64-simd.md
1826         (aarch64_sqdmulh_lane<mode>):
1827         Use VCOND for operands 2.  Update lane checking and flipping logic.
1828         (aarch64_sqrdmulh_lane<mode>): Likewise.
1829         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
1830         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
1831         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
1832         attribute of operand 3 to VCOND.
1833         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
1834         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
1835         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
1836         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
1837         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
1838         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
1839         define_insn.
1840         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
1841         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
1842         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
1843         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
1844         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
1845         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
1846         operand to VCOND.  Update lane flipping and bounds checking logic.
1847         (aarch64_sqdmlal2_lane<mode>): Likewise.
1848         (aarch64_sqdmlsl_lane<mode>): Likewise.
1849         (aarch64_sqdmull_lane<mode>): Likewise.
1850         (aarch64_sqdmull2_lane<mode>): Likewise.
1851         (aarch64_sqdmlal_laneq<mode>): Replace VCON usage with VCONQ.
1852         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
1853         (aarch64_sqdmlal2_laneq<mode>): Emit
1854         aarch64_sqdmlal2_laneq<mode>_internal insn.
1855         Replace VCON with VCONQ.
1856         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
1857         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
1858         (aarch64_sqdmull_laneq<mode>): Emit
1859         aarch64_sqdmull_laneq<mode>_internal insn.
1860         Replace VCON with VCONQ.
1861         (aarch64_sqdmull2_laneq<mode>): Emit
1862         aarch64_sqdmull2_laneq<mode>_internal insn.
1863         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
1864         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
1865         of 3rd argument to int16x4_t.
1866         (vqdmlalh_lane_s16): Likewise.
1867         (vqdmlslh_lane_s16): Likewise.
1868         (vqdmull_high_lane_s16): Likewise.
1869         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
1870         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
1871         (vqdmlsl_lane_s16): Likewise.
1872         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
1873         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
1874         (vqdmlals_lane_s32): Likewise.
1875         (vqdmlsls_lane_s32): Likewise.
1876         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
1877         (vqdmulls_lane_s32): Likewise.
1878         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
1879         (vqdmlsl_lane_s32): Likewise.
1880         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
1881         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
1882         (vqrdmulhh_lane_s16): Likewise.
1883         (vqdmlsl_high_lane_s16): Likewise.
1884         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
1885         (vqdmlsl_high_lane_s32): Likewise.
1886         (vqrdmulhs_lane_s32): Likewise.
1887
1888 2014-06-30  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1889
1890         Backport from Mainline
1891         2014-06-20  Jakub Jelinek  <jakub@redhat.com>
1892         2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1893
1894         PR tree-optimization/61306
1895         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
1896         expression instead of its size.
1897         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
1898         false to prevent optimization when the result is unpredictable due to
1899         arithmetic right shift of signed type with highest byte is set.
1900         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
1901         (find_bswap_1): Likewise. Return NULL to prevent optimization when the
1902         result is unpredictable due to sign extension.
1903         (find_bswap): Adapt to change in struct symbolic_number.
1904
1905 2014-06-27  Martin Jambor  <mjambor@suse.cz>
1906
1907         PR ipa/61160
1908         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
1909         args_to_skip, use those from node instead.  Copy args_to_skip and
1910         combined_args_to_skip from node to the new thunk.
1911         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
1912         (cgraph_create_virtual_clone): Moved computation of
1913         combined_args_to_skip...
1914         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
1915
1916 2014-06-27  Uros Bizjak  <ubizjak@gmail.com>
1917
1918         Backport from mainline
1919         2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
1920
1921         PR target/61586
1922         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
1923
1924 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1925
1926         PR target/61542
1927         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
1928         extraction other than index 3.
1929
1930 2014-06-26  Marc Glisse  <marc.glisse@inria.fr>
1931
1932         PR target/61503
1933         * config/i386/i386.md (x86_64_shrd, x86_shrd,
1934         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
1935
1936 2014-06-26  Martin Jambor  <mjambor@suse.cz>
1937
1938         Backport from mainline
1939         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
1940         renamed to ipa_impossible_devirt_target.  Fix typo.
1941         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
1942         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
1943         ipa_impossible_devirt_target.
1944
1945 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
1946
1947         PR target/61570
1948         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
1949         model family 6 CPU with has_longmode never use a CPU without
1950         64-bit support.
1951
1952         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
1953         not mentioned in clauses use private clause if the iterator is
1954         declared in #pragma omp for simd, and when adding lastprivate
1955         instead, add it to the outer #pragma omp for too.  Diagnose
1956         if the variable is private in outer context.  For simd collapse > 1
1957         loops, replace all iterators with temporaries.
1958         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
1959         same even in collapse > 1 loops.
1960
1961 2014-06-23  Alan Modra  <amodra@gmail.com>
1962
1963         PR bootstrap/61583
1964         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
1965         to zero on debug statements.
1966
1967 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1968
1969         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
1970         New expander.
1971         (aarch64_sqrdmulh_lane<mode>): Likewise.
1972         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
1973         (aarch64_sq<r>dmulh_lane<mode>_interna): ...this.
1974         (aarch64_sqdmulh_laneq<mode>): New expander.
1975         (aarch64_sqrdmulh_laneq<mode>): Likewise.
1976         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
1977         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
1978         (aarch64_sqdmulh_lane<mode>): New expander.
1979         (aarch64_sqrdmulh_lane<mode>): Likewise.
1980         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
1981         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
1982         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
1983         (aarch64_sqdmlal_laneq<mode>): Likewise.
1984         (aarch64_sqdmlsl_lane<mode>): Likewise.
1985         (aarch64_sqdmlsl_laneq<mode>): Likewise.
1986         (aarch64_sqdmlal2_lane<mode>): Likewise.
1987         (aarch64_sqdmlal2_laneq<mode>): Likewise.
1988         (aarch64_sqdmlsl2_lane<mode>): Likewise.
1989         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
1990         (aarch64_sqdmull_lane<mode>): Likewise.
1991         (aarch64_sqdmull_laneq<mode>): Likewise.
1992         (aarch64_sqdmull2_lane<mode>): Likewise.
1993         (aarch64_sqdmull2_laneq<mode>): Likewise.
1994
1995 2014-06-20  Martin Jambor  <mjambor@suse.cz>
1996
1997         PR ipa/61540
1998         * ipa-prop.c (impossible_devirt_target): New function.
1999         (try_make_edge_direct_virtual_call): Use it, also instead of
2000         asserting.
2001
2002 2014-06-20  Martin Jambor  <mjambor@suse.cz>
2003
2004         PR ipa/61211
2005         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
2006         expanded clones.
2007
2008 2014-06-20  Chung-Lin Tang  <cltang@codesourcery.com>
2009
2010         Backport from mainline
2011
2012         2014-06-20  Julian Brown  <julian@codesourcery.com>
2013                     Chung-Lin Tang  <cltang@codesourcery.com>
2014
2015         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
2016         TARGET_THUMB1_ONLY. Add comments.
2017
2018 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
2019
2020         Backport from mainline
2021         2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
2022
2023         * config/i386/i386.c (decide_alg): Correctly handle
2024         maximum size of stringop algorithm.
2025
2026 2014-06-18  Richard Henderson  <rth@redhat.com>
2027
2028         PR target/61545
2029         * config/aarch64/aarch64.md (tlsdesc_small): Clobber CC_REGNUM.
2030
2031 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
2032
2033         PR target/61483
2034         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
2035         variable 'size'; calculate 'size' right in the front; use
2036         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
2037         pcum->aapcs_stack_words.
2038
2039 2014-06-17  Nick Clifton  <nickc@redhat.com>
2040
2041         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
2042         (umulhi3, mulsidi3, umulsidi3): Likewise.
2043
2044 2014-06-17  Uros Bizjak  <ubizjak@gmail.com>
2045
2046         Backport from mainline
2047         2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
2048
2049         PR target/61423
2050         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
2051         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
2052         and corresponding splitters.  Zero extend general register
2053         or memory input operand to XMM temporary.  Enable for
2054         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
2055         (floatunssi<mode>2): Update expander predicate.
2056
2057 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
2058
2059         PR rtl-optimization/61325
2060         * lra-constraints.c (valid_address_p): Add forward declaration.
2061         (simplify_operand_subreg): Check address validity before and after
2062         alter_reg of memory subreg.
2063
2064 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
2065
2066         PR plugins/45078
2067         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
2068
2069 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
2070
2071         Backport from mainline
2072
2073         2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
2074         PR target/61415
2075         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
2076         (BU_MISC_2): Rename to ...
2077         (BU_LDBL128_2): ... this.
2078         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
2079         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
2080         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
2081         RS6000_BTM_LDBL128.
2082         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
2083         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
2084         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
2085         (unpacktf_1): Likewise.
2086         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
2087         (__builtin_longdouble_dw1): Likewise.
2088         * doc/sourcebuild.texi (longdouble128): Document.
2089
2090 2014-06-13  Jeff Law  <law@redhat.com>
2091
2092         Backports from mainline:
2093         2014-06-13  Jeff Law  <law@redhat.com>
2094
2095         PR rtl-optimization/61094
2096         PR rtl-optimization/61446
2097         * ree.c (combine_reaching_defs): Get the mode for the copy from
2098         the extension insn rather than the defining insn.
2099
2100         2014-06-02  Jeff Law  <law@redhat.com>
2101
2102         PR rtl-optimization/61094
2103         * ree.c (combine_reaching_defs): Do not reextend an insn if it
2104         was marked as do_no_reextend.  If a copy is needed to eliminate
2105         an extension, then mark it as do_not_reextend.
2106
2107 2014-06-13  Martin Jambor  <mjambor@suse.cz>
2108
2109         PR ipa/61186
2110         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
2111         cache_token if returning early.
2112
2113 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
2114
2115         PR middle-end/61486
2116         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
2117         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
2118         if outer combined construct is distribute.
2119         (gimplify_omp_for): For OMP_DISTRIBUTE set
2120         gimplify_omp_ctxp->distribute.
2121         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
2122         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
2123         mapping into decl map.
2124
2125 2014-06-12  Jeff Law  <law@redhat.com>
2126
2127         Backports from mainline:
2128
2129         2014-06-12  Jeff Law  <law@redhat.com>
2130
2131         PR tree-optimization/61009
2132         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
2133         value when we stop processing a block due to problematic PHIs.
2134
2135         2014-06-05  Jeff Law  <law@redhat.com>
2136
2137         PR tree-optimization/61289
2138         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
2139         DST_MAP parameters.   Invalidate by walking all the SSA_NAME_VALUES
2140         looking for those which match LHS.  All callers changed.
2141         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
2142         parameters and code which manipulated them.  All callers changed.
2143         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
2144         and DST_MAP parameters.  Simplify invalidation code by just calling
2145         invalidate_equivalences.  All callers changed.
2146         (thread_across_edge): Simplify now that we don't need to maintain
2147         the map of equivalences to invalidate.
2148
2149 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
2150
2151         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
2152
2153 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
2154
2155         Backport from 2014-05-14 trunk r210418
2156         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
2157         shifted values to avoid build warning.
2158
2159 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
2160
2161         Backport from 2014-05-09 trunk r210272
2162
2163         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
2164         unsigned int initializers for regno_in, regno_out.
2165
2166         Backport from 2014-06-12 trunk r211491
2167
2168         PR target/61443
2169         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
2170         loading from address spaces.
2171
2172 2014-06-12  Alan Modra  <amodra@gmail.com>
2173
2174         PR target/61300
2175         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
2176         * doc/tm.texi: Regenerate.
2177         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
2178         Use throughout in place of REG_PARM_STACK_SPACE.
2179         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
2180         "incoming" param.  Pass to rs6000_function_parms_need_stack.
2181         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
2182         prototype_p when incoming.  Use function decl when incoming
2183         to handle K&R style functions.
2184         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
2185         (INCOMING_REG_PARM_STACK_SPACE): Define.
2186
2187 2014-06-11  Richard Biener  <rguenther@suse.de>
2188
2189         PR tree-optimization/61452
2190         * tree-ssa-sccvn.c (visit_phi): Remove pointless setting of
2191         expr and has_constants in case we found a leader.
2192         (simplify_binary_expression): Always valueize operands first.
2193         (simplify_unary_expression): Likewise.
2194
2195 2014-06-11  Richard Biener  <rguenther@suse.de>
2196
2197         PR middle-end/61456
2198         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
2199         Do not use the main variant for the type comparison.
2200
2201 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2202
2203         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
2204         available.
2205         Simplify description of __crc32d and __crc32cd intrinsics.
2206         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
2207         availability.
2208
2209 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
2210
2211         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
2212         call statement, if any.
2213         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
2214         statements, if any.  Tidy up.
2215
2216 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
2217
2218         Back port from trunk
2219         2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
2220
2221         PR target/61431
2222         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
2223         iterators, VSX_D that handles 64-bit types, and VSX_LE that
2224         handles swapping the two 64-bit double words on little endian
2225         systems.  Include V1TImode and optionally TImode in VSX_LE so that
2226         these types are properly swapped.  Change all of the insns and
2227         splits that do the 64-bit swaps to use VSX_LE.
2228         (vsx_le_perm_load_<mode>): Likewise.
2229         (vsx_le_perm_store_<mode>): Likewise.
2230         (splitters for little endian memory operations): Likewise.
2231         (vsx_xxpermdi2_le_<mode>): Likewise.
2232         (vsx_lxvd2x2_le_<mode>): Likewise.
2233         (vsx_stxvd2x2_le_<mode>): Likewise.
2234
2235 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
2236
2237         PR rtl-optimization/61325
2238         * lra-constraints.c (process_address_1): Check scale equal to one
2239         to prevent transformation: base + scale * index => base + new_reg.
2240
2241 2014-06-05  Martin Jambor  <mjambor@suse.cz>
2242
2243         PR ipa/61393
2244         * ipa-cp.c (determine_versionability): Pretend that tm_clones are
2245         not versionable.
2246
2247 2014-06-04  Richard Biener  <rguenther@suse.de>
2248
2249         PR tree-optimization/61383
2250         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
2251         stmts can't trap.
2252
2253 2014-06-02  Jason Merrill  <jason@redhat.com>
2254
2255         PR c++/61020
2256         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
2257
2258 2014-06-03  Martin Jambor  <mjambor@suse.cz>
2259
2260         PR ipa/61160
2261         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
2262         thunks.
2263
2264 2014-06-03  Andrey Belevantsev  <abel@ispras.ru>
2265
2266         Backport from mainline
2267         2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
2268
2269         PR rtl-optimization/60866
2270         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
2271         Default it to -1.  Pass it down to init_simplejump_data.
2272         (init_simplejump_data): New parameter old_seqno.  Pass it down
2273         to get_seqno_for_a_jump.
2274         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
2275         initializing new jump seqno as a last resort.  Add comment.
2276         (sel_redirect_edge_and_branch): Save old seqno of the conditional
2277         jump and pass it down to sel_init_new_insn.
2278         (sel_redirect_edge_and_branch_force): Likewise.
2279
2280 2014-06-03  Andrey Belevantsev  <abel@ispras.ru>
2281
2282         Backport from mainline
2283         2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
2284
2285         PR rtl-optimization/60901
2286         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
2287         bb predecessor belongs to the same scheduling region.  Adjust comment.
2288
2289 2014-06-03  Uros Bizjak  <ubizjak@gmail.com>
2290
2291         Backport from mainline
2292         2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
2293
2294         PR target/61239
2295         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
2296         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
2297
2298 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
2299
2300         PR rtl-optimization/61325
2301         * lra-constraints.c (process_address): Rename to
2302         process_address_1.
2303         (process_address): New function.
2304
2305 2014-05-29  Uros Bizjak  <ubizjak@gmail.com>
2306
2307         Backport from mainline
2308         2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
2309
2310         PR target/61271
2311         * config/i386/i386.c (ix86_rtx_costs)
2312         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
2313         Fix condition.
2314
2315 2014-05-28  Eric Botcazou  <ebotcazou@adacore.com>
2316
2317         Backport from mainline
2318         2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
2319
2320         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
2321         predicate to detect a negative quotient.
2322
2323 2014-05-28  Richard Biener  <rguenther@suse.de>
2324
2325         Backport from mainline
2326         2014-05-28  Richard Biener  <rguenther@suse.de>
2327
2328         PR middle-end/61045
2329         * fold-const.c (fold_comparison): When folding
2330         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
2331         the sign of the remaining constant operand stays the same.
2332
2333         2014-05-05  Richard Biener  <rguenther@suse.de>
2334
2335         PR middle-end/61010
2336         * fold-const.c (fold_binary_loc): Consistently avoid
2337         canonicalizing X & CST away from a CST that is the mask
2338         of a mode.
2339
2340         2014-04-28  Richard Biener  <rguenther@suse.de>
2341
2342         PR tree-optimization/60979
2343         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
2344         SCOPs that end in a block with a successor with abnormal
2345         predecessors.
2346
2347 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2348
2349         * configure.ac ($gcc_cv_ld_clearcap): New test.
2350         * configure: Regenerate.
2351         * config.in: Regenerate.
2352         * config/sol2.opt (mclear-hwcap): New option.
2353         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
2354         * config/sol2-clearcap.map: Moved here from
2355         testsuite/gcc.target/i386/clearcap.map.
2356         * config/sol2-clearcapv2.map: Move here from
2357         gcc.target/i386/clearcapv2.map.
2358         * config/t-sol2 (install): Depend on install-clearcap-map.
2359         (install-clearcap-map): New target.
2360         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
2361         -mclear-hwcap.
2362
2363 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
2364
2365         PR libgcc/61152
2366         * config/dbx.h (License): Add Runtime Library Exception.
2367         * config/newlib-stdint.h (License): Same.
2368         * config/rtems.h (License): Same
2369         * config/initfini-array.h (License): Same
2370         * config/v850/v850.h (License): Same.
2371         * config/v850/v850-opts.h (License): Same
2372         * config/v850/rtems.h (License): Same.
2373
2374 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
2375
2376         PR target/61044
2377         * doc/extend.texi (Local Labels): Note that label differences are
2378         not supported for AVR.
2379
2380 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
2381
2382         Backport from 2014-05-12 mainline r210322.
2383         Backport from 2014-05-27 mainline r210959, r210969.
2384
2385         PR libgcc/61152
2386         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
2387         * config/arm/arm-cores.def (License): Same.
2388         * config/arm/arm-opts.h (License): Same.
2389         * config/arm/aout.h (License): Same.
2390         * config/arm/bpabi.h (License): Same.
2391         * config/arm/elf.h (License): Same.
2392         * config/arm/linux-elf.h (License): Same.
2393         * config/arm/linux-gas.h (License): Same.
2394         * config/arm/netbsd-elf.h (License): Same.
2395         * config/arm/uclinux-eabi.h (License): Same.
2396         * config/arm/uclinux-elf.h (License): Same.
2397         * config/arm/vxworks.h (License): Same.
2398
2399 2014-05-26  Michael Tautschnig  <mt@debian.org>
2400
2401         PR target/61249
2402         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
2403         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
2404
2405 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
2406
2407         PR rtl-optimization/61215
2408         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
2409         simplify_gen_subreg until final substitution.
2410
2411 2014-05-23  Alan Modra  <amodra@gmail.com>
2412
2413         PR target/61231
2414         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
2415         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
2416         Use "Y" constraint rather than "m".
2417
2418 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
2419
2420         PR rtl-optimization/60969
2421         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
2422         constraints.  Set up mem cost for NO_REGS case.
2423
2424 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
2425
2426         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
2427
2428 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
2429
2430         PR target/61208
2431         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
2432
2433 2014-05-22  Nick Clifton  <nickc@redhat.com>
2434
2435         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
2436
2437 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
2438
2439         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
2440         all padding bits in REAL_VALUE_TYPE are cleared.
2441
2442 2014-05-21  Guozhi Wei  <carrot@google.com>
2443
2444         PR target/61202
2445         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
2446         constraint.
2447         (vqdmulhq_n_s16): Likewise.
2448
2449 2014-05-21  Martin Jambor  <mjambor@suse.cz>
2450
2451         * doc/invoke.texi (Optimize Options): Document parameters
2452         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
2453         ipa-cp-array-index-hint-bonus.
2454
2455 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
2456
2457         PR middle-end/61252
2458         * omp-low.c (handle_simd_reference): New function.
2459         (lower_rec_input_clauses): Use it.  Defer adding reference
2460         initialization even for reduction without placeholder if in simd,
2461         handle it properly later on.
2462
2463 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
2464
2465         PR bootstrap/60984
2466         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
2467         parameter.
2468         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
2469         (ipa_inline): Loop inline_to_all_callers until no more aliases
2470         are removed.
2471
2472 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
2473
2474         PR lto/60820
2475         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
2476
2477 2014-05-20  DJ Delorie  <dj@redhat.com>
2478
2479         * config/msp430/msp430.md (split): Don't allow subregs when
2480         splitting SImode adds.
2481         (andneghi): Fix subtraction logic.
2482         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
2483
2484 2014-05-20  Nick Clifton  <nickc@redhat.com>
2485
2486         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2487         (msp430_gimplify_va_arg_expr): New function.
2488         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
2489
2490         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
2491         operand 0 in order to prevent confusion about the number of
2492         registers involved.
2493
2494 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2495
2496         * config/arm/arm.md (arith_shiftsi): Do not predicate for
2497         arm_restrict_it.
2498
2499 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
2500
2501         * arm.c (thumb1_reorg): When scanning backwards skip anything
2502         that's not a proper insn.
2503
2504 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
2505
2506         * ipa.c (symtab_remove_unreachable_nodes): Remove
2507         symbol from comdat group if its body was eliminated.
2508         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
2509         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
2510         (symtab_unregister_node): ... this one.
2511         (verify_symtab_base): More strict checking of comdats.
2512         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
2513
2514 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
2515
2516         * opts.c (common_handle_option): Disable -fipa-reference coorectly
2517         with -fuse-profile.
2518
2519 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
2520
2521         PR ipa/60854
2522         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
2523         external aliases alive, too.
2524
2525 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
2526
2527         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
2528
2529 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
2530
2531         Backport from mainline
2532         2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
2533
2534         PR target/60969
2535         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
2536         alternative 12.
2537
2538 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
2539
2540         PR rtl-optimization/60969
2541         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
2542         Calculate costs for this case.
2543
2544 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
2545
2546         PR target/61193
2547         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
2548         (__TM_simple_begin): Use it.
2549         (__TM_begin): Likewise.
2550
2551 2014-05-15  Martin Jambor  <mjambor@suse.cz>
2552
2553         PR ipa/61085
2554         * ipa-prop.c (update_indirect_edges_after_inlining): Check
2555         type_preserved flag when the indirect edge is polymorphic.
2556
2557 2014-05-15  Martin Jambor  <mjambor@suse.cz>
2558
2559         PR ipa/60897
2560         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
2561
2562 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
2563
2564         PR tree-optimization/61158
2565         * fold-const.c (fold_binary_loc): If X is zero-extended and
2566         shiftc >= prec, make sure zerobits is all ones instead of
2567         invoking undefined behavior.
2568
2569 2014-05-14  Cary Coutant  <ccoutant@google.com>
2570
2571         PR debug/61013
2572         * opts.c (common_handle_option): Don't special-case "-g".
2573         (set_debug_level): Default to at least level 2 with "-g".
2574
2575 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
2576
2577         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
2578         Delete.
2579         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
2580         * config/sparc/sparc.md (fptype_ut699): New attribute.
2581         (in_branch_delay): Return false if -mfix-ut699 is specified and
2582         fptype_ut699 is set to single.
2583         (truncdfsf2): Add fptype_ut699 attribute.
2584         (fix_truncdfsi2): Likewise.
2585         (floatsisf2): Change fptype attribute.
2586         (fix_truncsfsi2): Likewise.
2587         (negtf2_notv9): Delete.
2588         (negtf2_v9): Likewise.
2589         (negtf2_hq): New instruction.
2590         (negtf2): New instruction and splitter.
2591         (negdf2_notv9): Rewrite.
2592         (abstf2_notv9): Delete.
2593         (abstf2_hq_v9): Likewise.
2594         (abstf2_v9): Likewise.
2595         (abstf2_hq): New instruction.
2596         (abstf2): New instruction and splitter.
2597         (absdf2_notv9): Rewrite.
2598
2599 2014-05-14  Matthias Klose  <doko@ubuntu.com>
2600
2601         Revert:
2602         2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2603                     Matthias Klose  <doko@ubuntu.com>
2604
2605         PR driver/61106
2606         * optc-gen.awk: Fix option handling for -Wunused-parameter.
2607
2608 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
2609
2610         * doc/sourcebuild.texi: (dfp_hw): Document.
2611         (p8vector_hw): Likewise.
2612         (powerpc_eabi_ok): Likewise.
2613         (powerpc_elfv2): Likewise.
2614         (powerpc_htm_ok): Likewise.
2615         (ppc_recip_hw): Likewise.
2616         (vsx_hw): Likewise.
2617
2618 2014-05-13  Jeff Law  <law@redhat.com>
2619
2620         Backports fromm mainline:
2621
2622         2014-05-08  Jeff Law  <law@redhat.com>
2623
2624         PR tree-optimization/61009
2625         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
2626         tri-state rather than a boolean.  When a block is too big to
2627         thread through, inform caller via negative return value.
2628         (thread_across_edge): If a block was too big for normal threading,
2629         then it's too big for a joiner too, so remove temporary equivalences
2630         and return immediately.
2631
2632         2014-04-28  Jeff Law  <law@redhat.com>
2633
2634         PR tree-optimization/60902
2635         * tree-ssa-threadedge.c
2636         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
2637         over real defs when invalidating outputs from statements that do not
2638         produce useful outputs for threading.
2639
2640         2014-04-23  Jeff Law  <law@redhat.com>
2641
2642         PR tree-optimization/60902
2643         * tree-ssa-threadedge.c
2644         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
2645         invalidate outputs from statements that do not produce useful
2646         outputs for threading.
2647
2648 2014-05-13  Richard Biener  <rguenther@suse.de>
2649
2650         PR ipa/60973
2651         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
2652         it needs revisiting whether the call still may be tail-called.
2653
2654 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
2655
2656         PR target/61060
2657         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
2658         is const0_rtx, return immediately.  Don't test count == 0 when
2659         it is always true.
2660
2661 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
2662
2663         Backport from mainline
2664         2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
2665
2666         PR target/60991
2667         * config/avr/avr.c (avr_out_store_psi): Use correct constant
2668         to restore Y.
2669
2670 2014-05-09  Uros Bizjak  <ubizjak@gmail.com>
2671
2672         Backport from mainline
2673         2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
2674
2675         PR target/61092
2676         * config/alpha/alpha.c: Include gimple-iterator.h.
2677         (alpha_gimple_fold_builtin): New function.  Move
2678         ALPHA_BUILTIN_UMULH folding from ...
2679         (alpha_fold_builtin): ... here.
2680         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
2681
2682 2014-05-09  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
2683
2684         Backport from 2014-04-16 trunk r209446
2685         2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
2686
2687         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
2688
2689 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
2690
2691         Backport from 2014-05-09 trunk r210267
2692
2693         PR target/61055
2694         * config/avr/avr.md (cc): Add new attribute set_vzn.
2695         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
2696         Set cc insn attribute to set_vzn instead of set_zn for alternatives
2697         with INC, DEC or NEG.
2698         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
2699         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
2700         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
2701
2702 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2703             Matthias Klose  <doko@ubuntu.com>
2704
2705         PR driver/61106
2706         * optc-gen.awk: Fix option handling for -Wunused-parameter.
2707
2708 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
2709
2710         PR target/59952
2711         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
2712
2713 2014-05-05  Marek Polacek  <polacek@redhat.com>
2714
2715         Back port from mainline
2716         2014-05-05  Marek Polacek  <polacek@redhat.com>
2717
2718         PR driver/61065
2719         * opts.c (common_handle_option): Call error_at instead of warning_at.
2720
2721 2014-05-04  Jan Hubicka  <hubicka@ucw.cz>
2722
2723         PR ipa/60965
2724         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
2725
2726 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
2727
2728         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
2729         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
2730         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
2731         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
2732         Use RS6000_BTM_HARD_FLOAT.
2733         (BU_MISC_2): Likewise.
2734         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
2735         RS6000_BTM_HARD_FLOAT.
2736         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
2737         is explicitly used.
2738         (rs6000_invalid_builtin): Add hard floating builtin support.
2739         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
2740         hard float builtins.
2741         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
2742
2743 2014-05-03  Joey Ye  <joey.ye@arm.com>
2744
2745         Backport from mainline r209463
2746         2014-04-17  Joey Ye  <joey.ye@arm.com>
2747
2748         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
2749
2750 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
2751
2752         Back port from mainline
2753         PR target/61026
2754         * config/sh/sh.c: Include stdlib headers before everything else.
2755
2756 2014-05-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2757
2758         PR tree-optimization/60930
2759         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
2760         creating a multiply candidate by folding two constant
2761         multiplicands when the result overflows.
2762
2763 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
2764
2765         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
2766         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
2767         (gimplify_adjust_omp_clauses): Simd region is never
2768         directly nested in combined parallel.  Instead, for linear
2769         with copyin/copyout, if in combined for simd loop, make decl
2770         firstprivate/lastprivate on OMP_FOR.
2771         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
2772         expand_omp_for_static_chunk): When setting endvar, also set
2773         fd->loop.v to the same value.
2774
2775 2014-05-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2776
2777         Back port from mainline
2778         2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2779
2780         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
2781         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
2782         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
2783         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
2784         (TARGET_CRYPTO): Take TARGET_SIMD into account.
2785
2786 2014-04-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
2787
2788         Back port from mainline
2789         2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
2790
2791         * doc/extend.texi (PowerPC Built-in Functions): Document new
2792         powerpc extended divide, bcd, pack/unpack 128-bit, builtin
2793         functions.
2794         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
2795
2796         * config/rs6000/predicates.md (const_0_to_3_operand): New
2797         predicate to match 0..3 integer constants.
2798
2799         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
2800         to support adding miscellaneous builtin functions.
2801         (BU_DFP_MISC_2): Likewise.
2802         (BU_P7_MISC_1): Likewise.
2803         (BU_P7_MISC_2): Likewise.
2804         (BU_P8V_MISC_3): Likewise.
2805         (BU_MISC_1): Likewise.
2806         (BU_MISC_2): Likewise.
2807         (DIVWE): Add extended divide builtin functions.
2808         (DIVWEO): Likewise.
2809         (DIVWEU): Likewise.
2810         (DIVWEUO): Likewise.
2811         (DIVDE): Likewise.
2812         (DIVDEO): Likewise.
2813         (DIVDEU): Likewise.
2814         (DIVDEUO): Likewise.
2815         (DXEX): Add decimal floating-point builtin functions.
2816         (DXEXQ): Likewise.
2817         (DDEDPD): Likewise.
2818         (DDEDPDQ): Likewise.
2819         (DENBCD): Likewise.
2820         (DENBCDQ): Likewise.
2821         (DIEX): Likewise.
2822         (DIEXQ): Likewise.
2823         (DSCLI): Likewise.
2824         (DSCLIQ): Likewise.
2825         (DSCRI): Likewise.
2826         (DSCRIQ): Likewise.
2827         (CDTBCD): Add new BCD builtin functions.
2828         (CBCDTD): Likewise.
2829         (ADDG6S): Likewise.
2830         (BCDADD): Likewise.
2831         (BCDADD_LT): Likewise.
2832         (BCDADD_EQ): Likewise.
2833         (BCDADD_GT): Likewise.
2834         (BCDADD_OV): Likewise.
2835         (BCDSUB): Likewise.
2836         (BCDSUB_LT): Likewise.
2837         (BCDSUB_EQ): Likewise.
2838         (BCDSUB_GT): Likewise.
2839         (BCDSUB_OV): Likewise.
2840         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
2841         (UNPACK_TD): Likewise.
2842         (PACK_TF): Likewise.
2843         (UNPACK_TF): Likewise.
2844         (UNPACK_TF_0): Likewise.
2845         (UNPACK_TF_1): Likewise.
2846         (PACK_V1TI): Likewise.
2847         (UNPACK_V1TI): Likewise.
2848
2849         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
2850         support for decimal floating point builtin functions.
2851         (rs6000_expand_ternop_builtin): Add checks for the new builtin
2852         functions that take constant arguments.
2853         (rs6000_invalid_builtin): Add decimal floating point builtin
2854         support.
2855         (rs6000_init_builtins): Setup long double, _Decimal64, and
2856         _Decimal128 types for new builtin functions.
2857         (builtin_function_type): Set the unsigned flags appropriately for
2858         the new builtin functions.
2859         (rs6000_opt_masks): Add support for decimal floating point builtin
2860         functions.
2861
2862         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
2863         floating point builtin functions.
2864         (RS6000_BTM_COMMON): Likewise.
2865         (RS6000_BTI_long_double): Likewise.
2866         (RS6000_BTI_dfloat64): Likewise.
2867         (RS6000_BTI_dfloat128): Likewise.
2868         (long_double_type_internal_node): Likewise.
2869         (dfloat64_type_internal_node): Likewise.
2870         (dfloat128_type_internal_node): Likewise.
2871
2872         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
2873         2.07 bcd arithmetic instructions.
2874         (UNSPEC_BCDSUB): Likewise.
2875         (UNSPEC_BCD_OVERFLOW): Likewise.
2876         (UNSPEC_BCD_ADD_SUB): Likewise.
2877         (bcd_add_sub): Likewise.
2878         (BCD_TEST): Likewise.
2879         (bcd<bcd_add_sub>): Likewise.
2880         (bcd<bcd_add_sub>_test): Likewise.
2881         (bcd<bcd_add_sub>_test2): Likewise.
2882         (bcd<bcd_add_sub>_<code>): Likewise.
2883         (peephole2 for combined bcd ops): Likewise.
2884
2885         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
2886         decimal floating point builtin functions.
2887         (UNSPEC_DENBCD): Likewise.
2888         (UNSPEC_DXEX): Likewise.
2889         (UNSPEC_DIEX): Likewise.
2890         (UNSPEC_DSCLI): Likewise.
2891         (UNSPEC_DSCRI): Likewise.
2892         (D64_D128): Likewise.
2893         (dfp_suffix): Likewise.
2894         (dfp_ddedpd_<mode>): Likewise.
2895         (dfp_denbcd_<mode>): Likewise.
2896         (dfp_dxex_<mode>): Likewise.
2897         (dfp_diex_<mode>): Likewise.
2898         (dfp_dscli_<mode>): Likewise.
2899         (dfp_dscri_<mode>): Likewise.
2900
2901         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
2902         builtin functions.
2903         (UNSPEC_CDTBCD): Likewise.
2904         (UNSPEC_CBCDTD): Likewise.
2905         (UNSPEC_DIVE): Add support for new extended divide builtin
2906         functions.
2907         (UNSPEC_DIVEO): Likewise.
2908         (UNSPEC_DIVEU): Likewise.
2909         (UNSPEC_DIVEUO): Likewise.
2910         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
2911         pack/unpack 128-bit types.
2912         (UNSPEC_PACK_128BIT): Likewise.
2913         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
2914         (udiv<mode>3): Use idiv_ldiv mode attribute.
2915         (div<mode>3): Likewise.
2916         (addg6s): Add new BCD builtin functions.
2917         (cdtbcd): Likewise.
2918         (cbcdtd): Likewise.
2919         (UNSPEC_DIV_EXTEND): Add support for new extended divide
2920         instructions.
2921         (div_extend): Likewise.
2922         (div<div_extend>_<mode>"): Likewise.
2923         (FP128_64): Add support for new builtin functions to pack/unpack
2924         128-bit types.
2925         (unpack<mode>): Likewise.
2926         (unpacktf_0): Likewise.
2927         (unpacktf_1): Likewise.
2928         (unpack<mode>_dm): Likewise.
2929         (unpack<mode>_nodm): Likewise.
2930         (pack<mode>): Likewise.
2931         (unpackv1ti): Likewise.
2932         (packv1ti): Likewise.
2933
2934 2014-04-29  Pat Haugen  <pthaugen@us.ibm.com>
2935
2936         Backport from mainline
2937         2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
2938
2939         * config/rs6000/rs6000.md (addti3, subti3): New.
2940
2941 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
2942
2943         PR tree-optimization/60971
2944         * tree-tailcall.c (process_assignment): Reject conversions which
2945         reduce precision.
2946
2947 2014-04-29  Nick Clifton  <nickc@redhat.com>
2948
2949         * config/msp430/msp430.md (umulsidi): Fix typo.
2950         (mulhisi3): Enable even inside interrupt handlers.
2951         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
2952         bigger return address pushed in large mode.
2953
2954 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
2955
2956         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
2957         (loadsync_<mode>): Change mode.
2958         (load_quadpti, store_quadpti): New.
2959         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
2960         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
2961
2962 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
2963
2964         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
2965         * configure: Regenerate.
2966         * config/sparc/sparc.opt (muser-mode): New option.
2967         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
2968         for LEON3.
2969         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
2970         * doc/invoke.texi (SPARC options): Document -muser-mode.
2971
2972 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
2973
2974         * doc/install.texi (Building with profile feedback): Remove
2975         outdated sentence.
2976
2977 2014-04-26  Tom de Vries  <tom@codesourcery.com>
2978
2979         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
2980         array accesses.
2981
2982 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
2983
2984         PR tree-optimization/60960
2985         * tree-vect-generic.c (expand_vector_operation): Only call
2986         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
2987
2988 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
2989
2990         PR target/60941
2991         * config/sparc/sparc.md (ashlsi3_extend): Delete.
2992
2993 2014-04-25  Richard Biener  <rguenther@suse.de>
2994
2995         PR ipa/60912
2996         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
2997         call stmt use/clobber sets during stmt walk instead of
2998         walking the possibly incomplete set of caller edges.
2999
3000 2014-04-25  Richard Biener  <rguenther@suse.de>
3001
3002         PR ipa/60911
3003         * passes.c (apply_ipa_transforms): Inline into only caller ...
3004         (execute_one_pass): ... here.  Properly bring in function
3005         bodies for nodes we want to apply IPA transforms to.
3006
3007 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
3008
3009         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
3010         * gimplify.c (omp_is_private): Change last argument's type to int.
3011         Only diagnose lastprivate if the simd argument is 1, only diagnose
3012         linear if the simd argument is 2.
3013         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
3014         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
3015         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
3016         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
3017         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
3018         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
3019         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
3020         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
3021         * tree-nested.c (convert_nonlocal_omp_clauses,
3022         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
3023
3024 2014-04-23  Uros Bizjak  <ubizjak@gmail.com>
3025
3026         Backport from mainline
3027         2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
3028
3029         PR target/60909
3030         * config/i386/i386.c (ix86_expand_builtin)
3031         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
3032         register for target RTX.
3033         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
3034
3035 2014-04-23  Richard Biener  <rguenther@suse.de>
3036
3037         PR tree-optimization/60903
3038         * tree-ssa-loop-im.c (analyze_memory_references): Remove
3039         commented code block.
3040         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
3041         loop flags to newly created BBs and edges.
3042
3043 2014-04-23  Nick Clifton  <nickc@redhat.com>
3044
3045         * config/msp430/msp430.c (msp430_handle_option): Move function
3046         to msp430-common.c
3047         (msp430_option_override): Simplify mcu and mcpu option handling.
3048         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
3049         support for -mhwmult command line option.
3050         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
3051         -mhwmult command line option.
3052         (msp430_hwmult_enabled): Delete.
3053         (msp43o_output_labelref): Add support for -mhwmult command line
3054         option.
3055         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
3056         (umulsidi3): Likewise.
3057         * config/msp430/msp430.opt (mmcu): Add Report attribute.
3058         (mcpu, mlarge, msmall): Likewise.
3059         (mhwmult): New option.
3060         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
3061         prototype.
3062         (msp430_is_f5_mcu): Remove prototype.
3063         (msp430_use_f5_series_hwmult): Add prototype.
3064         * config/msp430/msp430-opts.h: New file.
3065         * common/config/msp430: New directory.
3066         * common/config/msp430/msp430-common.c: New file.
3067         * config.gcc (msp430): Remove target_has_targetm_common.
3068         * doc/invoke.texi: Document -mhwmult command line option.
3069
3070 2014-04-23  Nick Clifton  <nickc@redhat.com>
3071
3072         * config/i386/cygwin.h (ENDFILE_SPEC): Include
3073         default-manifest.o if it can be found in the search path.
3074         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
3075
3076 2014-04-23  Richard Biener  <rguenther@suse.de>
3077
3078         Backport from mainline
3079         2014-04-14  Richard Biener  <rguenther@suse.de>
3080
3081         PR lto/60720
3082         * lto-streamer-out.c (wrap_refs): New function.
3083         (lto_output): Wrap symbol references in global initializes in
3084         type-preserving MEM_REFs.
3085
3086 2014-04-23  Richard Biener  <rguenther@suse.de>
3087
3088         PR middle-end/60895
3089         * tree-inline.c (declare_return_variable): Use mark_addressable.
3090
3091 2014-04-23  Richard Biener  <rguenther@suse.de>
3092
3093         PR middle-end/60891
3094         * loop-init.c (loop_optimizer_init): Make sure to apply
3095         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
3096
3097 2014-04-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
3098
3099         Backport from mainline
3100         2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
3101
3102         PR target/60735
3103         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
3104         If mode is DDmode and TARGET_E500_DOUBLE allow move.
3105
3106         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
3107         more debug information for E500 if -mdebug=reg.
3108
3109 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
3110
3111         Backport from mainline
3112         2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
3113
3114         PR target/60868
3115         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
3116         on count_exp to get mode.
3117
3118 2014-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3119
3120         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for
3121         little-endian.
3122         (vsx_xxmrglw_<mode>): Likewise.
3123
3124 2014-04-22  Richard Biener  <rguenther@suse.de>
3125
3126         Backport from mainline
3127         2014-04-14  Richard Biener  <rguenther@suse.de>
3128
3129         PR middle-end/55022
3130         * fold-const.c (negate_expr_p): Don't negate directional rounding
3131         division.
3132         (fold_negate_expr): Likewise.
3133
3134 2014-04-22  Richard Biener  <rguenther@suse.de>
3135
3136         Backport from mainline
3137         2014-04-17  Richard Biener  <rguenther@suse.de>
3138
3139         PR middle-end/60849
3140         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
3141         boolean results for comparisons.
3142
3143 2014-04-22   Richard Biener  <rguenther@suse.de>
3144
3145         Backport from mainline
3146         2014-04-17   Richard Biener  <rguenther@suse.de>
3147
3148         PR tree-optimization/60841
3149         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
3150         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
3151         of stmts to SLP build.
3152         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
3153         (vect_analyze_slp): Likewise.
3154         (vect_analyze_slp_instance): Likewise.
3155         (vect_build_slp_tree): Limit overall SLP tree growth.
3156         * tree-vectorizer.h (vect_analyze_data_refs,
3157         vect_analyze_slp): Adjust prototypes.
3158
3159 2014-04-22  Richard Biener  <rguenther@suse.de>
3160
3161         Backport from mainline
3162         2014-04-17  Richard Biener  <rguenther@suse.de>
3163
3164         PR tree-optimization/60836
3165         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
3166         initial PHI args to be gimple values.
3167
3168 2014-04-22  Richard Biener  <rguenther@suse.de>
3169
3170         Backport from mainline
3171         2014-04-14  Richard Biener  <rguenther@suse.de>
3172
3173         PR tree-optimization/59817
3174         PR tree-optimization/60453
3175         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
3176         recursion to catch all CHRECs in the scalar evolution and restrict
3177         the predicate for the remains appropriately.
3178
3179 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
3180
3181         PR tree-optimization/60823
3182         * omp-low.c (ipa_simd_modify_function_body): Go through
3183         all SSA_NAMEs and for those refering to vector arguments
3184         which are going to be replaced adjust SSA_NAME_VAR and,
3185         if it is a default definition, change it into a non-default
3186         definition assigned at the beginning of function from new_decl.
3187         (ipa_simd_modify_stmt_ops): Rewritten.
3188         * tree-dfa.c (set_ssa_default_def): When removing default def,
3189         check for NULL loc instead of NULL *loc.
3190
3191 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
3192
3193         PR middle-end/60281
3194         * asan.c (asan_emit_stack_protection): Force the base to align to
3195         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
3196         appropriate bits if STRICT_ALIGNMENT.
3197         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
3198         when asan is on.
3199         (expand_used_vars): Leave a space in the stack frame for alignment
3200         if STRICT_ALIGNMENT.
3201
3202 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
3203
3204         Backported from mainline
3205         2014-04-16  Jakub Jelinek  <jakub@redhat.com>
3206
3207         PR tree-optimization/60844
3208         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
3209         (propagate_op_to_single_use, remove_visited_stmt_chain,
3210         linearize_expr, repropagate_negates, reassociate_bb): Use it
3211         instead of gsi_remove.
3212
3213 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
3214
3215         * BASE-VER: Set to 4.9.1.
3216         * DEV-PHASE: Set to prerelease.
3217
3218 2014-04-22  Release Manager
3219
3220         * GCC 4.9.0 released.
3221
3222 2014-04-18  Richard Henderson  <rth@redhat.com>
3223
3224         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
3225         to GET_MODE_SIZE, not a reg_class_t.
3226
3227 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
3228
3229         PR target/60847
3230         Forward port from 4.8 branch
3231         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
3232
3233         * config/i386/bmiintrin.h (_blsi_u32): New.
3234         (_blsi_u64): Ditto.
3235         (_blsr_u32): Ditto.
3236         (_blsr_u64): Ditto.
3237         (_blsmsk_u32): Ditto.
3238         (_blsmsk_u64): Ditto.
3239         (_tzcnt_u32): Ditto.
3240         (_tzcnt_u64): Ditto.
3241
3242 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3243
3244         PR target/60839
3245         Revert the following patch
3246
3247         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
3248
3249         PR target/60735
3250         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
3251         software floating point or no floating point registers, do not
3252         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
3253         in GPRs that occurs after we tested for GPRs that would never be
3254         true.
3255
3256         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
3257         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
3258         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
3259         specifically allow DDmode, since that does not use the SPE SIMD
3260         instructions.
3261
3262 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
3263
3264         PR plugins/59335
3265         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
3266         added in 4.9.
3267
3268 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
3269
3270         * doc/invoke.texi (free): Document AArch64.
3271
3272 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
3273
3274         * DEV-PHASE: Set to prerelease.
3275
3276 2014-04-11  Tobias Burnus  <burnus@net-b.de>
3277
3278         PR other/59055
3279         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
3280         * doc/gcc.texi (Service): Update description in the @menu
3281         * doc/invoke.texi (Option Summary): Remove misplaced and
3282         duplicated @menu.
3283
3284 2014-04-11  Steve Ellcey  <sellcey@mips.com>
3285             Jakub Jelinek  <jakub@redhat.com>
3286
3287         PR middle-end/60556
3288         * expr.c (convert_move): Use emit_store_flag_force instead of
3289         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
3290         argument to it.
3291
3292 2014-04-11  Richard Biener  <rguenther@suse.de>
3293
3294         PR middle-end/60797
3295         * varasm.c (assemble_alias): Avoid endless error reporting
3296         recursion by setting TREE_ASM_WRITTEN.
3297
3298 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3299
3300         * config/s390/s390.md: Add a splitter for NOT rtx.
3301
3302 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
3303
3304         PR rtl-optimization/60663
3305         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
3306
3307 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
3308             Jakub Jelinek  <jakub@redhat.com>
3309
3310         PR lto/60567
3311         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
3312         flag from decl_node to node.
3313
3314 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3315
3316         PR debug/60655
3317         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
3318         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
3319         ameliorating the cases where it can be.
3320
3321 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
3322
3323         Revert
3324         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
3325
3326         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
3327         (loadsync_<mode>): Change mode.
3328         (load_quadpti, store_quadpti): New.
3329         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
3330         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
3331         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
3332
3333 2014-04-09  Cong Hou  <congh@google.com>
3334
3335         PR testsuite/60773
3336         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
3337         documentation.
3338
3339 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3340
3341         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
3342         instead of vnor to exploit possible fusion opportunity in the
3343         future.
3344         (altivec_expand_vec_perm_const_le): Likewise.
3345
3346 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
3347
3348         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
3349         (loadsync_<mode>): Change mode.
3350         (load_quadpti, store_quadpti): New.
3351         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
3352         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
3353
3354 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
3355
3356         PR target/60763
3357         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
3358         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
3359         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
3360
3361 2014-04-08  Richard Biener  <rguenther@suse.de>
3362
3363         PR middle-end/60706
3364         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
3365         a 64bit widest int print double-int similar to on HWI64 hosts.
3366
3367 2014-04-08  Richard Biener  <rguenther@suse.de>
3368
3369         PR tree-optimization/60785
3370         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
3371         default defs properly.
3372
3373 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
3374
3375         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
3376         (Weffc++): Likewise.
3377
3378 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
3379
3380         * ipa-devirt.c (maybe_record_node): When node is not recorded,
3381         set completep to false rather than true.
3382
3383 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
3384
3385         PR target/60504
3386         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
3387         ARM_TARGET2_DWARF_FORMAT.
3388
3389 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
3390
3391         PR target/60609
3392         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
3393         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
3394         ADDR_DIFF_VEC.
3395
3396 2014-04-07  Richard Biener  <rguenther@suse.de>
3397
3398         PR tree-optimization/60766
3399         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
3400         (may_eliminate_iv): Convert cand_value_at result to desired type.
3401
3402 2014-04-07  Jason Merrill  <jason@redhat.com>
3403
3404         PR c++/60731
3405         * common.opt (-fno-gnu-unique): Add.
3406         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
3407
3408 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3409
3410         * haifa-sched.c: Fix outdated function reference and minor
3411         grammar errors in introductory comment.
3412
3413 2014-04-07  Richard Biener  <rguenther@suse.de>
3414
3415         PR middle-end/60750
3416         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
3417         for noreturn calls.
3418         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
3419
3420 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
3421
3422         PR debug/55794
3423         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
3424         size accounting for thunks.
3425         (pa_asm_output_mi_thunk): Use final_start_function() and
3426         final_end_function() to output function start and end directives.
3427
3428 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
3429
3430         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
3431         device specific ISA/ feature information. Remove short_sp and
3432         errata_skip ds.  Add avr_device_specific_features enum to have device
3433         specific info.
3434         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
3435         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
3436         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
3437         updated device specific info.
3438         * config/avr/avr-mcus.def: Merge device specific details to
3439         dev_attribute field.
3440         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
3441         errata_skip.
3442         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
3443         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
3444         assembler if RMW isa supported by current device.
3445         * config/avr/genmultilib.awk: Update as device info structure changed.
3446         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
3447
3448 2014-04-04  Cong Hou  <congh@google.com>
3449
3450         PR tree-optimization/60656
3451         * tree-vect-stmts.c (supportable_widening_operation):
3452         Fix a bug that elements in a vector with vect_used_by_reduction
3453         property are incorrectly reordered when the operation on it is not
3454         consistant with the one in reduction operation.
3455
3456 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
3457
3458         PR rtl-optimization/60155
3459         * gcse.c (record_set_data): New function.
3460         (single_set_gcse): New function.
3461         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
3462         (hoist_code): Likewise.
3463         (get_pressure_class_and_nregs): Likewise.
3464
3465 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
3466
3467         * explow.c (probe_stack_range): Emit a final optimization blockage.
3468
3469 2014-04-04  Anthony Green  <green@moxielogic.com>
3470
3471         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
3472         typos.
3473
3474 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
3475
3476         PR ipa/59626
3477         * lto-cgraph.c (input_overwrite_node): Check that partitioning
3478         flags are set only during streaming.
3479         * ipa.c (process_references, walk_polymorphic_call_targets,
3480         symtab_remove_unreachable_nodes): Drop bodies of always inline
3481         after early inlining.
3482         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
3483
3484 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
3485         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3486
3487         PR debug/60655
3488         * dwarf2out.c (const_ok_for_output_1): Reject expressions
3489         containing a NOT.
3490
3491 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3492
3493         PR bootstrap/60743
3494         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
3495         duration.
3496         (cortex_a53_fdivd): Likewise.
3497
3498 2014-04-04  Martin Jambor  <mjambor@suse.cz>
3499
3500         PR ipa/60640
3501         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
3502         Adjust all callers.
3503         * cgraph.c (clone_of_p): Also return true if thunks match.
3504         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
3505         cgraph_function_or_thunk_node and an obsolete comment.
3506         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
3507         file.
3508         (build_function_decl_skip_args): Likewise.
3509         (set_new_clone_decl_and_node_flags): New function.
3510         (duplicate_thunk_for_node): Likewise.
3511         (redirect_edge_duplicating_thunks): Likewise.
3512         (cgraph_clone_node): New parameter args_to_skip, pass it to
3513         redirect_edge_duplicating_thunks which is called instead of
3514         cgraph_redirect_edge_callee.
3515         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
3516         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
3517
3518 2014-04-04  Jeff Law  <law@redhat.com>
3519
3520         PR target/60657
3521         * config/arm/predicates.md (const_int_I_operand): New predicate.
3522         (const_int_M_operand): Similarly.
3523         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
3524         const_int_operand.
3525         (insv_t2, extv_reg, extzv_t2): Likewise.
3526         (load_multiple_with_writeback): Similarly for const_int_I_operand.
3527         (pop_multiple_with_writeback_and_return): Likewise.
3528         (vfp_pop_multiple_with_writeback): Likewise
3529
3530 2014-04-04  Richard Biener  <rguenther@suse.de>
3531
3532         PR ipa/60746
3533         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
3534         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
3535         non-GIMPLE_LABELs.
3536         * gimplify.h (gimple_add_tmp_var_fn): Declare.
3537         * gimplify.c (gimple_add_tmp_var_fn): New function.
3538         * gimple-expr.h (create_tmp_reg_fn): Declare.
3539         * gimple-expr.c (create_tmp_reg_fn): New function.
3540         * gimple-low.c (record_vars_into): Don't change cfun.
3541         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
3542         code generation without cfun.
3543
3544 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
3545
3546         PR bootstrap/60719
3547         * Makefile.in (install-driver): Fix shell scripting.
3548
3549 2014-04-03  Cong Hou  <congh@google.com>
3550
3551         PR tree-optimization/60505
3552         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
3553         threshold of number of iterations below which no vectorization
3554         will be done.
3555         * tree-vect-loop.c (new_loop_vec_info):
3556         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
3557         * tree-vect-loop.c (vect_analyze_loop_operations):
3558         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
3559         * tree-vect-loop.c (vect_transform_loop):
3560         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
3561         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
3562         of iterations of the loop and see if we should build the epilogue.
3563
3564 2014-04-03  Richard Biener  <rguenther@suse.de>
3565
3566         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
3567         (streamer_tree_cache_create): Adjust.
3568         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
3569         to allow optional nodes array.
3570         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
3571         (streamer_tree_cache_append): Likewise.
3572         (streamer_tree_cache_create): Create nodes array optionally
3573         as specified by parameter.
3574         * lto-streamer-out.c (create_output_block): Avoid maintaining
3575         the node array in the writer cache.
3576         (DFS_write_tree): Remove assertion.
3577         (produce_asm_for_decls): Free the out decl state hash table early.
3578         * lto-streamer-in.c (lto_data_in_create): Adjust for
3579         streamer_tree_cache_create prototype change.
3580
3581 2014-04-03  Richard Biener  <rguenther@suse.de>
3582
3583         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
3584         set TREE_CHAIN to NULL_TREE.
3585
3586 2014-04-03  Richard Biener  <rguenther@suse.de>
3587
3588         PR tree-optimization/60740
3589         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
3590         over all GIMPLE_COND operands.
3591
3592 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
3593
3594         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
3595         (Weffc++): Remove Scott's numbering, merge lists and reference
3596         Wnon-virtual-dtor.
3597
3598 2014-04-03  Nick Clifton  <nickc@redhat.com>
3599
3600         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
3601         properly.
3602
3603 2014-04-03  Martin Jambor  <mjambor@suse.cz>
3604
3605         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
3606         mention gcc_unreachable before failing.
3607         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
3608         removed symbols.
3609
3610 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
3611
3612         PR ipa/60659
3613         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
3614         inconsistent code and instead mark the context inconsistent.
3615         (possible_polymorphic_call_targets): For inconsistent contexts
3616         return empty complete list.
3617
3618 2014-04-02  Anthony Green  <green@moxielogic.com>
3619
3620         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
3621         (extendqisi2, extendhisi2): Define.
3622         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
3623         (WCHAR_TYPE): Change to unsigned int.
3624
3625 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3626
3627         PR tree-optimization/60733
3628         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
3629         insertion point for PHI candidates to be the end of the feeding
3630         block for the PHI argument.
3631
3632 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
3633
3634         PR rtl-optimization/60650
3635         * lra-constraints.c (process_alt_operands): Decrease reject for
3636         earlyclobber matching.
3637
3638 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3639
3640         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
3641
3642 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3643
3644         * config/spu/spu.c (pad_bb): Do not crash when the last
3645         insn is CODE_FOR_blockage.
3646
3647 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3648
3649         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
3650         lies outside the target mode.
3651
3652 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
3653
3654         PR target/60735
3655         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
3656         software floating point or no floating point registers, do not
3657         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
3658         in GPRs that occurs after we tested for GPRs that would never be
3659         true.
3660
3661         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
3662         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
3663         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
3664         specifically allow DDmode, since that does not use the SPE SIMD
3665         instructions.
3666
3667 2014-04-02  Richard Biener  <rguenther@suse.de>
3668
3669         PR middle-end/60729
3670         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
3671         MODE_INTs.  Properly use negv_optab.
3672         (expand_abs): Likewise.
3673
3674 2014-04-02  Richard Biener  <rguenther@suse.de>
3675
3676         PR bootstrap/60719
3677         * Makefile.in (install-driver): Guard extra installs with special
3678         names properly.
3679
3680 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
3681
3682         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
3683         Document vec_vgbbd.
3684
3685 2014-04-01  Richard Henderson  <rth@redhat.com>
3686
3687         PR target/60704
3688         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
3689         alternative enabled before register allocation.
3690
3691 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
3692
3693         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
3694         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
3695         typo.
3696         (nios2_large_got_address): Remove unneeded 'sym' parameter.
3697         (nios2_got_address): Update nios2_large_got_address call site.
3698         (nios2_delegitimize_address): New function.
3699         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
3700         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
3701         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
3702
3703 2014-04-01  Martin Husemann  <martin@duskware.de>
3704
3705         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
3706         for -mabi=32.
3707
3708 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
3709
3710         PR rtl-optimization/60604
3711         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
3712         check from register_operand.
3713         (register_operand): Redefine in terms of general_operand.
3714         (nonmemory_operand): Use register_operand for the non-constant cases.
3715
3716 2014-04-01  Richard Biener  <rguenther@suse.de>
3717
3718         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
3719
3720 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3721
3722         * doc/invoke.texi (mapp-regs): Clarify.
3723
3724 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
3725
3726         * config/i386/avx512fintrin.h (__v32hi): Define type.
3727         (__v64qi): Likewise.
3728         (_mm512_set1_epi8): Define.
3729         (_mm512_set1_epi16): Define.
3730         (_mm512_set4_epi32): Define.
3731         (_mm512_set4_epi64): Define.
3732         (_mm512_set4_pd): Define.
3733         (_mm512_set4_ps): Define.
3734         (_mm512_setr4_epi64): Define.
3735         (_mm512_setr4_epi32): Define.
3736         (_mm512_setr4_pd): Define.
3737         (_mm512_setr4_ps): Define.
3738         (_mm512_setzero_epi32): Define.
3739
3740 2014-03-31  Martin Jambor  <mjambor@suse.cz>
3741
3742         PR middle-end/60647
3743         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
3744         callsite_arguments_match_p.  Updated all callers.  Also check types of
3745         corresponding formal parameters and actual arguments.
3746         (not_all_callers_have_enough_arguments_p) Renamed to
3747         some_callers_have_mismatched_arguments_p.
3748
3749 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
3750
3751         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
3752
3753 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
3754
3755         PR target/60034
3756         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
3757         section anchor.
3758
3759 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
3760
3761         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
3762         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
3763         Split out
3764         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
3765         Use FMAMODE_NOVF512 mode iterator.
3766         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
3767         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
3768         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
3769         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
3770         Split out
3771         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
3772         Use VF_128_256 mode iterator.
3773         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
3774         Ditto.
3775
3776 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
3777
3778         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
3779         static chain if needed.
3780
3781 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
3782
3783         PR target/60697
3784         * lra-constraints.c (index_part_to_reg): New.
3785         (process_address): Use it.
3786
3787 2014-03-27  Jeff Law  <law@redhat.com>
3788             Jakub Jelinek  <jakub@redhat.com>
3789
3790         PR target/60648
3791         * expr.c (do_tablejump): Use simplify_gen_binary rather than
3792         gen_rtx_{PLUS,MULT} to build up the address expression.
3793
3794         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
3795         creating non-canonical RTL.
3796
3797 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
3798
3799         PR ipa/60243
3800         * ipa-inline.c (want_inline_small_function_p): Short circuit large
3801         functions; reorganize to make cheap checks first.
3802         (inline_small_functions): Do not estimate growth when dumping;
3803         it is expensive.
3804         * ipa-inline.h (inline_summary): Add min_size.
3805         (growth_likely_positive): New function.
3806         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
3807         (set_cond_stmt_execution_predicate): Cleanup.
3808         (estimate_edge_size_and_time): Compute min_size.
3809         (estimate_calls_size_and_time): Likewise.
3810         (estimate_node_size_and_time): Likewise.
3811         (inline_update_overall_summary): Update min_size.
3812         (do_estimate_edge_time): Likewise.
3813         (do_estimate_edge_size): Update.
3814         (do_estimate_edge_hints): Update.
3815         (growth_likely_positive): New function.
3816
3817 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
3818
3819         PR target/60693
3820         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
3821         also if addr has VOIDmode.
3822
3823 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3824
3825         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
3826         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
3827         Declare extern.
3828         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
3829         instructions as well as AdvancedSIMD loads.
3830
3831 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3832
3833         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
3834         Use crypto_aese type.
3835         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
3836         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
3837         crypto_aese, crypto_aesmc.  Move to types.md.
3838         * config/arm/types.md (crypto_aes): Split into crypto_aese,
3839         crypto_aesmc.
3840         * config/arm/iterators.md (crypto_type): Likewise.
3841
3842 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
3843
3844         * cgraph.c: Include expr.h and tree-dfa.h.
3845         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
3846         remove LHS.
3847
3848 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
3849
3850         PR target/60675
3851         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
3852         regs from checking multi-reg pseudos.
3853
3854 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3855
3856         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
3857
3858 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3859
3860         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
3861         if it would clobber the stack pointer, even temporarily.
3862
3863 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
3864
3865         * mode-switching.c: Make small adjustments to the top comment.
3866
3867 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
3868
3869         * config/rs6000/constraints.md (wD constraint): New constraint to
3870         match the constant integer to get the top DImode/DFmode out of a
3871         vector in a VSX register.
3872
3873         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
3874         match the constant integer to get the top DImode/DFmode out of a
3875         vector in a VSX register.
3876
3877         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
3878         for ISA 2.07.
3879
3880         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3881         vbpermq builtins.
3882
3883         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
3884         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
3885
3886         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
3887         Optimize vec_extract of 64-bit values, where the value being
3888         extracted is in the top word, where we can use scalar
3889         instructions.  Add direct move and store support.  Combine the big
3890         endian/little endian vector select load support into a single insn.
3891         (vsx_extract_<mode>_internal1): Likewise.
3892         (vsx_extract_<mode>_internal2): Likewise.
3893         (vsx_extract_<mode>_load): Likewise.
3894         (vsx_extract_<mode>_store): Likewise.
3895         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
3896         combined into vsx_extract_<mode>_load.
3897         (vsx_extract_<mode>_one_le): Likewise.
3898
3899         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
3900         define the top 64-bit vector element.
3901
3902         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
3903         constraint.
3904
3905         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
3906         Document vec_vbpermq builtin.
3907
3908         PR target/60672
3909         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
3910         enable use of xxsldwi and xxpermdi builtin functions.
3911         (vec_xxpermdi): Likewise.
3912
3913         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
3914         Document use of vec_xxsldwi and vec_xxpermdi builtins.
3915
3916 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
3917
3918         PR rtl-optimization/60650
3919         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
3920         first_p.  Use it.
3921         (find_spills_for): New.
3922         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
3923         Spill all pseudos on the second iteration.
3924
3925 2014-03-27  Marek Polacek  <polacek@redhat.com>
3926
3927         PR c/50347
3928         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
3929         types.
3930
3931 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3932
3933         * config/s390/s390.c (s390_can_use_return_insn): Check for
3934         call-saved FPRs on 31 bit.
3935
3936 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
3937
3938         PR middle-end/60682
3939         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
3940         if they need regimplification, just drop them instead of
3941         calling gimple_regimplify_operands on them.
3942
3943 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
3944
3945         PR target/60580
3946         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
3947         (aarch64_frame_pointer_required): Adjust logic.
3948         (aarch64_can_eliminate): Adjust logic.
3949         (aarch64_override_options_after_change): Adjust logic.
3950
3951 2014-03-27  Dehao Chen  <dehao@google.com>
3952
3953         * ipa-inline.c (early_inliner): Update node's inline info.
3954
3955 2014-03-26  Dehao Chen  <dehao@google.com>
3956
3957         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
3958         compiler inserted conditional jumps for NAN float check.
3959
3960 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
3961
3962         * ubsan.h (ubsan_create_data): Change second argument's type
3963         to const location_t *.
3964         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
3965         _("<unknown>").
3966         (ubsan_create_data): Change second argument to const location_t *PLOC.
3967         Create Loc field whenever PLOC is non-NULL.
3968         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
3969         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
3970         callers.
3971
3972         PR other/59545
3973         * real.c (real_to_integer2): Change type of low to UHWI.
3974
3975 2014-03-26  Tobias Burnus  <burnus@net-b.de>
3976
3977         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
3978         (CILK_SELF_SPECS): New define.
3979         (driver_self_specs): Use it.
3980
3981 2014-03-26  Richard Biener  <rguenther@suse.de>
3982
3983         * tree-pretty-print.c (percent_K_format): Implement special
3984         case for LTO and its stripped down BLOCK tree.
3985
3986 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
3987
3988         PR sanitizer/60636
3989         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
3990
3991         * tree-vrp.c (simplify_internal_call_using_ranges): If only
3992         one range is range_int_cst_p, but not both, at least optimize
3993         addition/subtraction of 0 and multiplication by 0 or 1.
3994         * gimple-fold.c (gimple_fold_call): Fold
3995         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
3996         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
3997         INTEGER_CSTs, try to fold at least x * 0 and y - y.
3998
3999 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
4000
4001         PR rtl-optimization/60452
4002         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
4003         <case REG>: Return 1 for invalid offsets from the frame pointer.
4004
4005 2014-03-26  Marek Polacek  <polacek@redhat.com>
4006
4007         PR c/37428
4008         * doc/extend.texi (C Extensions): Mention variable-length arrays in
4009         a structure/union.
4010
4011 2014-03-26  Marek Polacek  <polacek@redhat.com>
4012
4013         PR c/39525
4014         * doc/extend.texi (Designated Inits): Describe what happens to omitted
4015         field members.
4016
4017 2014-03-26  Marek Polacek  <polacek@redhat.com>
4018
4019         PR other/59545
4020         * ira-color.c (update_conflict_hard_regno_costs): Perform the
4021         multiplication in unsigned type.
4022
4023 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
4024
4025         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
4026
4027 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
4028
4029         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
4030
4031 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
4032
4033         PR ipa/60315
4034         * cif-code.def (UNREACHABLE) New code.
4035         * ipa-inline.c (inline_small_functions): Skip edges to
4036         __builtlin_unreachable.
4037         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
4038         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
4039         predicate to __bulitin_unreachable.
4040         (set_cond_stmt_execution_predicate): Fix issue when
4041         invert_tree_comparison returns ERROR_MARK.
4042         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
4043         propagate to inline clones.
4044         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
4045         to unreachable.
4046         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
4047         * cgraphclones.c (cgraph_clone_node): If call destination is already
4048         ureachable, do not redirect it back.
4049         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
4050         unreachable.
4051
4052 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
4053
4054         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
4055         Do not modify inline clones.
4056
4057 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
4058
4059         * config/i386/i386.md (general_sext_operand): New mode attr.
4060         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
4061         don't generate (sign_extend (const_int)).
4062         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
4063         operands[2].  Use We constraint instead of <i> and
4064         <general_sext_operand> predicate instead of <general_operand>.
4065         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
4066         * config/i386/constraints.md (We): New constraint.
4067         * config/i386/predicates.md (x86_64_sext_operand,
4068         sext_operand): New predicates.
4069
4070 2014-03-25  Martin Jambor  <mjambor@suse.cz>
4071
4072         PR ipa/60600
4073         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
4074         inconsistent devirtualizations to __builtin_unreachable.
4075
4076 2014-03-25  Marek Polacek  <polacek@redhat.com>
4077
4078         PR c/35449
4079         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
4080
4081 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
4082
4083         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
4084         order of elements for big-endian.
4085
4086 2014-03-25  Richard Biener  <rguenther@suse.de>
4087
4088         PR middle-end/60635
4089         * gimplify-me.c (gimple_regimplify_operands): Update the
4090         re-gimplifed stmt.
4091
4092 2014-03-25  Martin Jambor  <mjambor@suse.cz>
4093
4094         PR ipa/59176
4095         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
4096         (lto_output_varpool_node): Likewise.
4097         (input_overwrite_node): Likewise.
4098         (input_varpool_node): Likewise.
4099
4100 2014-03-25  Richard Biener  <rguenther@suse.de>
4101
4102         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
4103         (run_gcc): Likewise.
4104
4105 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
4106
4107         * combine.c (simplify_compare_const): Add MODE argument.
4108         Handle mode_width 0 as very large mode_width.
4109         (try_combine, simplify_comparison): Adjust callers.
4110
4111         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
4112         type to avoid signed integer overflow.
4113         * explow.c (plus_constant): Likewise.
4114
4115 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4116
4117         * doc/generic.texi: Correct typos.
4118
4119 2014-03-24  Tobias Burnus  <burnus@net-b.de>
4120
4121         * doc/invoke.texi (-flto): Expand section about
4122         using static libraries with LTO.
4123
4124 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4125
4126         PR rtl-optimization/60501
4127         * optabs.def (addptr3_optab): New optab.
4128         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
4129         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
4130         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
4131
4132         * lra.c (emit_add3_insn): Use the addptr pattern if available.
4133
4134         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
4135
4136 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
4137
4138         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
4139         _mm512_set1_pd.
4140
4141         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
4142         (_mm256_undefined_ps): Define.
4143         (_mm256_undefined_pd): Define.
4144         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
4145         (_mm_undefined_pd): Define.
4146         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
4147         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
4148         (_mm512_undefined_ps): Define.
4149         (_mm512_undefined_pd): Define.
4150         Use _mm*_undefined_*.
4151         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
4152
4153 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
4154
4155         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
4156         (lshr_simd): DI mode added.
4157         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
4158         (aarch64_ushr_simddi): Likewise.
4159         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
4160         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
4161         (vshrd_n_u64): Likewise.
4162
4163 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4164
4165         * Makefile.in (s-macro_list): Depend on cc1.
4166
4167 2014-03-23  Teresa Johnson  <tejohnson@google.com>
4168
4169         * ipa-utils.c (ipa_print_order): Use specified dump file.
4170
4171 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
4172
4173         PR rtl-optimization/60601
4174         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
4175
4176         * gcc.c (eval_spec_function): Initialize save_growing_value.
4177
4178 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
4179
4180         PR sanitizer/60613
4181         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
4182         code == MINUS_EXPR, never swap op0 with op1.
4183
4184         * toplev.c (init_local_tick): Avoid signed integer multiplication
4185         overflow.
4186         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
4187         shift by first operand's bitsize.
4188
4189 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
4190
4191         PR target/60610
4192         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
4193         redefine to 1 or 0.
4194         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
4195         TARGET_ISA_64BIT_P(x).
4196
4197 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4198
4199         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
4200         pattern for vector nor instead of subtract from splat(-1).
4201         (altivec_expand_vec_perm_const_le): Likewise.
4202
4203 2014-03-21  Richard Henderson  <rth@twiddle.net>
4204
4205         PR target/60598
4206         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
4207         related insns after epilogue_completed.
4208
4209 2014-03-21  Martin Jambor  <mjambor@suse.cz>
4210
4211         PR ipa/59176
4212         * cgraph.h (symtab_node): New flag body_removed.
4213         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
4214         when removing bodies.
4215         * symtab.c (dump_symtab_base): Dump body_removed flag.
4216         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
4217         had their bodies removed.
4218
4219 2014-03-21  Martin Jambor  <mjambor@suse.cz>
4220
4221         PR ipa/60419
4222         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
4223         in the border.
4224
4225 2014-03-21  Richard Biener  <rguenther@suse.de>
4226
4227         PR tree-optimization/60577
4228         * tree-core.h (struct tree_base): Document nothrow_flag use
4229         in DECL_NONALIASED.
4230         * tree.h (DECL_NONALIASED): New.
4231         (may_be_aliased): Adjust.
4232         * coverage.c (build_var): Set DECL_NONALIASED.
4233
4234 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
4235
4236         * expr.c (expand_expr_real_1): Remove outdated comment.
4237
4238 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
4239
4240         PR middle-end/60597
4241         * ira.c (adjust_cleared_regs): Call copy_rtx on
4242         *reg_equiv[REGNO (loc)].src_p before passing it to
4243         simplify_replace_fn_rtx.
4244
4245         PR target/60568
4246         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
4247         into CONST, put pic register as first operand of PLUS.  Use
4248         gen_const_mem for both 32-bit and 64-bit PIC got loads.
4249
4250 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4251
4252         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
4253
4254 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
4255
4256         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
4257         around for store forwarding issue in the FPU on the UT699.
4258         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
4259         loads and operations if -mfix-ut699 is specified.
4260         (divtf3_hq): Tweak attribute.
4261         (sqrttf2_hq): Likewise.
4262
4263 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
4264
4265         * calls.c (store_one_arg): Remove incorrect const qualification on the
4266         type of the temporary.
4267         * cfgexpand.c (expand_return): Likewise.
4268         * expr.c (expand_constructor): Likewise.
4269         (expand_expr_real_1): Likewise.
4270
4271 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
4272
4273         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
4274         of parts.
4275
4276 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
4277
4278         PR target/60039
4279         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
4280
4281 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
4282
4283         * config/arm/aarch-common-protos.h
4284         (alu_cost_table): Fix spelling of "extend".
4285         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
4286
4287 2014-03-19  Richard Biener  <rguenther@suse.de>
4288
4289         PR middle-end/60553
4290         * tree-core.h (tree_type_common): Re-order pointer members
4291         to reduce recursion depth during GC walks.
4292
4293 2014-03-19  Marek Polacek  <polacek@redhat.com>
4294
4295         PR sanitizer/60569
4296         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
4297         before accessing it.
4298
4299 2014-03-19  Richard Biener  <rguenther@suse.de>
4300
4301         PR lto/59543
4302         * lto-streamer-in.c (input_function): In WPA stage do not drop
4303         debug stmts.
4304
4305 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
4306
4307         PR tree-optimization/60559
4308         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
4309         with build_zero_cst assignment.
4310
4311 2014-03-18  Kai Tietz  <ktietz@redhat.com>
4312
4313         PR rtl-optimization/56356
4314         * sdbout.c (sdbout_parms): Verify that parms'
4315         incoming argument is valid.
4316         (sdbout_reg_parms): Likewise.
4317
4318 2014-03-18  Richard Henderson  <rth@redhat.com>
4319
4320         PR target/60562
4321         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
4322         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
4323         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
4324
4325 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
4326
4327         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
4328         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
4329         Italicize plugin event names in description.  Explain that
4330         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
4331         Remind that no GCC functions should be called after PLUGIN_FINISH.
4332         Explain what pragmas with expansion are.
4333
4334 2014-03-18  Martin Liska  <mliska@suse.cz>
4335
4336         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
4337         gimple call statement is update.
4338         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
4339         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
4340
4341 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
4342
4343         PR sanitizer/60557
4344         * ubsan.c (ubsan_instrument_unreachable): Call
4345         initialize_sanitizer_builtins.
4346         (ubsan_pass): Likewise.
4347
4348         PR sanitizer/60535
4349         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
4350         varpool_finalize_decl instead of rest_of_decl_compilation.
4351
4352 2014-03-18  Richard Biener  <rguenther@suse.de>
4353
4354         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
4355         by using bitmap_and_compl instead of bitmap_and_compl_into.
4356         (df_rd_transfer_function): Likewise.
4357
4358 2014-03-18  Richard Biener  <rguenther@suse.de>
4359
4360         * doc/lto.texi (fresolution): Fix typo.
4361
4362 2014-03-18  Richard Biener  <rguenther@suse.de>
4363
4364         * doc/invoke.texi (flto): Update for changes in 4.9.
4365
4366 2014-03-18  Richard Biener  <rguenther@suse.de>
4367
4368         * doc/loop.texi: Remove section on the removed lambda framework.
4369         Update loop docs with recent changes in preserving loop structure.
4370
4371 2014-03-18  Richard Biener  <rguenther@suse.de>
4372
4373         * doc/lto.texi (-fresolution): Document.
4374
4375 2014-03-18  Richard Biener  <rguenther@suse.de>
4376
4377         * doc/contrib.texi: Adjust my name.
4378
4379 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
4380
4381         PR ipa/58721
4382         * internal-fn.c: Include diagnostic-core.h.
4383         (expand_BUILTIN_EXPECT): New function.
4384         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
4385         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
4386         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
4387         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
4388         IFN_BUILTIN_EXPECT.
4389         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
4390         Revert 3 argument __builtin_expect code.
4391         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
4392         * gimple-fold.c (gimple_fold_call): Likewise.
4393         * tree.h (fold_builtin_expect): New prototype.
4394         * builtins.c (build_builtin_expect_predicate): Add predictor
4395         argument, if non-NULL, create 3 argument __builtin_expect.
4396         (fold_builtin_expect): No longer static.  Add ARG2 argument,
4397         pass it through to build_builtin_expect_predicate.
4398         (fold_builtin_2): Adjust caller.
4399         (fold_builtin_3): Handle BUILT_IN_EXPECT.
4400         * internal-fn.def (BUILTIN_EXPECT): New.
4401
4402 2014-03-18  Tobias Burnus  <burnus@net-b.de>
4403
4404         PR ipa/58721
4405         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
4406         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
4407         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
4408
4409 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
4410
4411         PR ipa/58721
4412         * predict.c (combine_predictions_for_bb): Fix up formatting.
4413         (expr_expected_value_1, expr_expected_value): Add predictor argument,
4414         fill what it points to if non-NULL.
4415         (tree_predict_by_opcode): Adjust caller, use the predictor.
4416         * predict.def (PRED_COMPARE_AND_SWAP): Add.
4417
4418 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
4419
4420         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
4421         proper constant for the store mode.
4422
4423 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
4424
4425         * symtab.c (change_decl_assembler_name): Fix transparent alias
4426         chain construction.
4427
4428 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
4429
4430         * config/aarch64/aarch64.c: Correct the comments about the
4431         aarch64 stack layout.
4432
4433 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
4434
4435         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
4436         check for GF_OMP_FOR_KIND_FOR.
4437
4438 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
4439
4440         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
4441         ymm and zmm register names.
4442
4443 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
4444
4445         PR target/60516
4446         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
4447         note creation for the 2010-08-31 changes.
4448
4449 2014-03-17  Marek Polacek  <polacek@redhat.com>
4450
4451         PR middle-end/60534
4452         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
4453         as -fno-tree-loop-vectorize.
4454         (expand_omp_simd): Likewise.
4455
4456 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
4457
4458         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
4459         (eligible_for_call_delay): New prototype.
4460         * config/sparc/sparc.c (tls_call_delay): Rename into...
4461         (eligible_for_call_delay): ...this.  Return false if the instruction
4462         cannot be put in the delay slot of a branch.
4463         (eligible_for_restore_insn): Simplify.
4464         (eligible_for_return_delay): Return false if the instruction cannot be
4465         put in the delay slot of a branch and simplify.
4466         (eligible_for_sibcall_delay): Return false if the instruction cannot be
4467         put in the delay slot of a branch.
4468         * config/sparc/sparc.md (fix_ut699): New attribute.
4469         (tls_call_delay): Delete.
4470         (in_call_delay): Reimplement.
4471         (eligible_for_sibcall_delay): Rename into...
4472         (in_sibcall_delay): ...this.
4473         (eligible_for_return_delay): Rename into...
4474         (in_return_delay): ...this.
4475         (in_branch_delay): Reimplement.
4476         (in_uncond_branch_delay): Delete.
4477         (in_annul_branch_delay): Delete.
4478
4479 2014-03-14  Richard Henderson  <rth@redhat.com>
4480
4481         PR target/60525
4482         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
4483         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
4484         (*floathi<X87MODEF>2_i387_with_temp): Remove.
4485         (floathi splitters): Remove.
4486         (float<SWI48x>xf2): New pattern.
4487         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
4488         code that tried to handle DImode for 32-bit, but which was excluded
4489         by the pattern's condition.  Drop allocation of stack temporary.
4490         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
4491         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
4492         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
4493         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
4494         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
4495         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
4496         (*float<SWI48><MODEF>2_sse_interunit): Remove.
4497         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
4498         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
4499         (*float<SWI48x><X87MODEF>2_i387): Remove.
4500         (all float _with_temp splitters): Remove.
4501         (*float<SWI48x><MODEF>2_i387): New pattern.
4502         (*float<SWI48><MODEF>2_sse): New pattern.
4503         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
4504         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
4505
4506 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
4507             Marek Polacek  <polacek@redhat.com>
4508
4509         PR middle-end/60484
4510         * common.opt (dump_base_name_prefixed): New Variable.
4511         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
4512         if x_dump_base_name_prefixed is already set, set it at the end.
4513
4514 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
4515
4516         PR rtl-optimization/60508
4517         * lra-constraints.c (get_reload_reg): Add new parameter
4518         in_subreg_p.
4519         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
4520         Pass the new parameter values.
4521
4522 2014-03-14  Richard Biener  <rguenther@suse.de>
4523
4524         * common.opt: Revert unintented changes from r205065.
4525         * opts.c: Likewise.
4526
4527 2014-03-14  Richard Biener  <rguenther@suse.de>
4528
4529         PR middle-end/60518
4530         * cfghooks.c (split_block): Properly adjust all loops the
4531         block was a latch of.
4532
4533 2014-03-14  Martin Jambor  <mjambor@suse.cz>
4534
4535         PR lto/60461
4536         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
4537         and simplify it.
4538
4539 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
4540
4541         PR target/59396
4542         * config/avr/avr.c (avr_set_current_function): Pass function name
4543         through default_strip_name_encoding before sanity checking instead
4544         of skipping the first char of the assembler name.
4545
4546 2014-03-13  Richard Henderson  <rth@redhat.com>
4547
4548         PR debug/60438
4549         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
4550         (ix86_force_to_memory, ix86_free_from_memory): Remove.
4551         * config/i386/i386-protos.h: Likewise.
4552         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
4553         in the expander instead of a splitter.
4554         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
4555         any possibility of requiring a memory.
4556         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
4557         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
4558         (fp branch splitters): Update for ix86_split_fp_branch.
4559         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
4560         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
4561         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
4562         (*fop_<MODEF>_2_i387): Remove f/r alternative.
4563         (*fop_<MODEF>_3_i387): Likewise.
4564         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
4565         (splitters for the fop_* register patterns): Remove.
4566         (fscalexf4_i387): Rename from *fscalexf4_i387.
4567         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
4568
4569 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
4570
4571         PR tree-optimization/59779
4572         * tree-dfa.c (get_ref_base_and_extent): Use double_int
4573         type for bitsize and maxsize instead of HOST_WIDE_INT.
4574
4575 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
4576
4577         PR rtl-optimization/57320
4578         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
4579         the CFG after thread_prologue_and_epilogue_insns.
4580
4581 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
4582
4583         PR rtl-optimization/57189
4584         * lra-constraints.c (process_alt_operands): Disfavor spilling
4585         vector pseudos.
4586
4587 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
4588
4589         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
4590
4591 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
4592
4593         PR tree-optimization/59025
4594         PR middle-end/60418
4595         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
4596         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
4597
4598 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
4599
4600         PR target/60486
4601         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
4602         calls of avr_out_plus_1.
4603
4604 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
4605
4606         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
4607         BB's single pred and update the father loop's latch info later.
4608
4609 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
4610
4611         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
4612         (VEC_M): Likewise.
4613         (VEC_N): Likewise.
4614         (VEC_R): Likewise.
4615         (VEC_base): Likewise.
4616         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
4617         registers, we need to swap double words in little endian mode.
4618
4619         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
4620         to be a container mode for 128-bit integer operations added in ISA
4621         2.07.  Unlike TImode and PTImode, the preferred register set is
4622         the Altivec/VMX registers for the 128-bit operations.
4623
4624         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
4625         declarations.
4626         (rs6000_split_128bit_ok_p): Likewise.
4627
4628         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
4629         macros for creating ISA 2.07 normal and overloaded builtin
4630         functions with 3 arguments.
4631         (BU_P8V_OVERLOAD_3): Likewise.
4632         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
4633         for use as overloaded functions.
4634         (VPERM_1TI_UNS): Likewise.
4635         (VSEL_1TI): Likewise.
4636         (VSEL_1TI_UNS): Likewise.
4637         (ST_INTERNAL_1ti): Likewise.
4638         (LD_INTERNAL_1ti): Likewise.
4639         (XXSEL_1TI): Likewise.
4640         (XXSEL_1TI_UNS): Likewise.
4641         (VPERM_1TI): Likewise.
4642         (VPERM_1TI_UNS): Likewise.
4643         (XXPERMDI_1TI): Likewise.
4644         (SET_1TI): Likewise.
4645         (LXVD2X_V1TI): Likewise.
4646         (STXVD2X_V1TI): Likewise.
4647         (VEC_INIT_V1TI): Likewise.
4648         (VEC_SET_V1TI): Likewise.
4649         (VEC_EXT_V1TI): Likewise.
4650         (EQV_V1TI): Likewise.
4651         (NAND_V1TI): Likewise.
4652         (ORC_V1TI): Likewise.
4653         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
4654         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
4655         overloaded builtin.
4656         (VADDUQM): Likewise.
4657         (VSUBCUQ): Likewise.
4658         (VADDEUQM): Likewise.
4659         (VADDECUQ): Likewise.
4660         (VSUBEUQM): Likewise.
4661         (VSUBECUQ): Likewise.
4662
4663         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
4664         __int128_t and __uint128_t types.
4665         (__uint128_type): Likewise.
4666         (altivec_categorize_keyword): Add support for vector __int128_t,
4667         vector __uint128_t, vector __int128, and vector unsigned __int128
4668         as a container type for TImode operations that need to be done in
4669         VSX/Altivec registers.
4670         (rs6000_macro_to_expand): Likewise.
4671         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
4672         to support 128-bit integer instructions vaddcuq, vadduqm,
4673         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
4674         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
4675
4676         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
4677         for V1TImode, and set up preferences to use VSX/Altivec registers.
4678         Setup VSX reload handlers.
4679         (rs6000_debug_reg_global): Likewise.
4680         (rs6000_init_hard_regno_mode_ok): Likewise.
4681         (rs6000_preferred_simd_mode): Likewise.
4682         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
4683         (easy_altivec_constant): Likewise.
4684         (output_vec_const_move): Likewise.
4685         (rs6000_expand_vector_set): Convert V1TImode set and extract to
4686         simple move.
4687         (rs6000_expand_vector_extract): Likewise.
4688         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
4689         addressing.
4690         (rs6000_const_vec): Add support for V1TImode.
4691         (rs6000_emit_le_vsx_load): Swap double words when loading or
4692         storing TImode/V1TImode.
4693         (rs6000_emit_le_vsx_store): Likewise.
4694         (rs6000_emit_le_vsx_move): Likewise.
4695         (rs6000_emit_move): Add support for V1TImode.
4696         (altivec_expand_ld_builtin): Likewise.
4697         (altivec_expand_st_builtin): Likewise.
4698         (altivec_expand_vec_init_builtin): Likewise.
4699         (altivec_expand_builtin): Likewise.
4700         (rs6000_init_builtins): Add support for V1TImode type.  Add
4701         support for ISA 2.07 128-bit integer builtins.  Define type names
4702         for the VSX/Altivec vector types.
4703         (altivec_init_builtins): Add support for overloaded vector
4704         functions with V1TImode type.
4705         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
4706         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
4707         external function.
4708         (rs6000_split_128bit_ok_p): Likewise.
4709         (rs6000_handle_altivec_attribute): Create V1TImode from vector
4710         __int128_t and vector __uint128_t.
4711
4712         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
4713         and mode attributes.
4714         (VSX_M): Likewise.
4715         (VSX_M2): Likewise.
4716         (VSm): Likewise.
4717         (VSs): Likewise.
4718         (VSr): Likewise.
4719         (VSv): Likewise.
4720         (VS_scalar): Likewise.
4721         (VS_double): Likewise.
4722         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
4723
4724         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
4725         we support the ISA 2.07 128-bit integer arithmetic instructions.
4726         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
4727         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
4728         and TImode types for use with the builtin functions.
4729         (V1TI_type_node): Likewise.
4730         (unsigned_V1TI_type_node): Likewise.
4731         (intTI_type_internal_node): Likewise.
4732         (uintTI_type_internal_node): Likewise.
4733
4734         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
4735         128-bit builtin functions.
4736         (UNSPEC_VADDEUQM): Likewise.
4737         (UNSPEC_VADDECUQ): Likewise.
4738         (UNSPEC_VSUBCUQ): Likewise.
4739         (UNSPEC_VSUBEUQM): Likewise.
4740         (UNSPEC_VSUBECUQ): Likewise.
4741         (VM): Add V1TImode to vector mode iterators.
4742         (VM2): Likewise.
4743         (VI_unit): Likewise.
4744         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
4745         (altivec_vaddcuq): Likewise.
4746         (altivec_vsubuqm): Likewise.
4747         (altivec_vsubcuq): Likewise.
4748         (altivec_vaddeuqm): Likewise.
4749         (altivec_vaddecuq): Likewise.
4750         (altivec_vsubeuqm): Likewise.
4751         (altivec_vsubecuq): Likewise.
4752
4753         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
4754         mode iterators.
4755         (BOOL_128): Likewise.
4756         (BOOL_REGS_OUTPUT): Likewise.
4757         (BOOL_REGS_OP1): Likewise.
4758         (BOOL_REGS_OP2): Likewise.
4759         (BOOL_REGS_UNARY): Likewise.
4760         (BOOL_REGS_AND_CR0): Likewise.
4761
4762         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
4763         128-bit integer builtin support.
4764         (vec_vadduqm): Likewise.
4765         (vec_vaddecuq): Likewise.
4766         (vec_vaddeuqm): Likewise.
4767         (vec_vsubecuq): Likewise.
4768         (vec_vsubeuqm): Likewise.
4769         (vec_vsubcuq): Likewise.
4770         (vec_vsubuqm): Likewise.
4771
4772         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
4773         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
4774         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
4775         128-bit integer add/subtract to ISA 2.07.
4776
4777 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
4778
4779         * config/arc/arc.c (arc_predicate_delay_insns):
4780         Fix third argument passed to conditionalize_nonjump.
4781
4782 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
4783
4784         * config/aarch64/aarch64-builtins.c
4785         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
4786         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
4787         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
4788         instead of __builtin_lfloor.
4789         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
4790
4791 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
4792
4793         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
4794         (tree_ssa_ifcombine_bb_1): New function.
4795         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
4796         is an empty forwarder block to then_bb or vice versa and then_bb
4797         and else_bb are effectively swapped.
4798
4799 2014-03-12  Christian Bruel  <christian.bruel@st.com>
4800
4801         PR target/60264
4802         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
4803         REG_CFA_DEF_CFA note.
4804         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
4805         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
4806
4807 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4808
4809         PR tree-optimization/60454
4810         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
4811
4812 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4813
4814         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
4815         Do not define target_cpu_default2 to generic.
4816         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
4817         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
4818         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
4819
4820 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
4821             Marc Glisse  <marc.glisse@inria.fr>
4822
4823         PR tree-optimization/60502
4824         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
4825         instead of build_low_bits_mask.
4826
4827 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
4828
4829         PR middle-end/60482
4830         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
4831         if there are multiple uses, but op doesn't live on E edge.
4832         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
4833         clobber stmts before __builtin_unreachable.
4834
4835 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
4836
4837         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
4838         hard_frame_pointer_rtx.
4839         * cse.c (cse_insn): Remove volatile check.
4840         * cselib.c (cselib_process_insn): Likewise.
4841         * dse.c (scan_insn): Likewise.
4842
4843 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
4844
4845         * config/arc/arc.c (conditionalize_nonjump): New function,
4846         broken out of ...
4847         (arc_ifcvt): ... this.
4848         (arc_predicate_delay_insns): Use it.
4849
4850 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
4851
4852         * config/arc/predicates.md (extend_operand): During/after reload,
4853         allow const_int_operand.
4854         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
4855         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
4856         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
4857         to "i".
4858         (umulsi3_highpart_i): Likewise.
4859
4860 2014-03-11  Richard Biener  <rguenther@suse.de>
4861
4862         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
4863         Add asserts to guard possible wrong-code bugs.
4864
4865 2014-03-11  Richard Biener  <rguenther@suse.de>
4866
4867         PR tree-optimization/60429
4868         PR tree-optimization/60485
4869         * tree-ssa-structalias.c (set_union_with_increment): Properly
4870         take into account all fields that overlap the shifted vars.
4871         (do_sd_constraint): Likewise.
4872         (do_ds_constraint): Likewise.
4873         (get_constraint_for_ptr_offset): Likewise.
4874
4875 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
4876
4877         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
4878         (nios2_compute_frame_layout):
4879         Add calculation of cfun->machine->fp_save_offset.
4880         (nios2_expand_prologue): Correct setting of frame pointer register
4881         in prologue.
4882         (nios2_expand_epilogue): Update recovery of stack pointer from
4883         frame pointer accordingly.
4884         (nios2_initial_elimination_offset): Update calculation of offset
4885         for eliminating to HARD_FRAME_POINTER_REGNUM.
4886
4887 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
4888
4889         PR ipa/60457
4890         * ipa.c (symtab_remove_unreachable_nodes): Don't call
4891         cgraph_get_create_node on VAR_DECLs.
4892
4893 2014-03-10  Richard Biener  <rguenther@suse.de>
4894
4895         PR middle-end/60474
4896         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
4897
4898 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
4899
4900         * config/vms/vms.opt (vms_float_format): New variable.
4901
4902 2014-03-08  Tobias Burnus  <burnus@net-b.de>
4903
4904         * doc/invoke.texi (-fcilkplus): Update implementation status.
4905
4906 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
4907             Richard Biener  <rguenther@suse.de>
4908
4909         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
4910         consistently accross all TUs.
4911         (run_gcc): Enable -fshort-double automatically at link at link-time
4912         and disallow override.
4913
4914 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
4915
4916         PR target/58271
4917         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
4918         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
4919         if they can't be used.
4920
4921 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4922
4923         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
4924         for Solaris 11/x86 ld.
4925         * configure: Regenerate.
4926
4927 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4928
4929         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
4930         (LIB_TLS_SPEC): Save as ld_tls_libs.
4931         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
4932         (HAVE_AS_IX86_TLSLDM): New test.
4933         * configure, config.in: Regenerate.
4934         * config/i386/i386.c (legitimize_tls_address): Fall back to
4935         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
4936         cannot support TLS_MODEL_LOCAL_DYNAMIC.
4937         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
4938         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
4939
4940 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
4941
4942         * common.opt (fira-loop-pressure): Mark as optimization.
4943
4944 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
4945
4946         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
4947         an OpenMP mappable type.
4948
4949 2014-03-06  Matthias Klose  <doko@ubuntu.com>
4950
4951         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
4952         MULTILIB_OSDIRNAMES is not defined.
4953
4954 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
4955             Meador Inge  <meadori@codesourcery.com>
4956
4957         PR target/58595
4958         * config/arm/arm.c (arm_tls_symbol_p): Remove.
4959         (arm_legitimize_address): Call legitimize_tls_address for any
4960         arm_tls_referenced_p expression, handle constant addend.  Call it
4961         before testing for !TARGET_ARM.
4962         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
4963
4964 2014-03-06  Richard Biener  <rguenther@suse.de>
4965
4966         PR middle-end/60445
4967         PR lto/60424
4968         PR lto/60427
4969         Revert
4970         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
4971
4972         * tree-streamer.c (record_common_node): Assert we don't record
4973         nodes with type double.
4974         (preload_common_node): Skip type double, complex double and double
4975         pointer since it is now frontend dependent due to fshort-double option.
4976
4977 2014-03-06  Richard Biener  <rguenther@suse.de>
4978
4979         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
4980         or -fno-lto is specified and the linker has full plugin support.
4981         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
4982         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
4983         * lto-wrapper.c (merge_and_complain): Merge compile-time
4984         optimization levels.
4985         (run_gcc): And pass it through to the link options.
4986
4987 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
4988
4989         PR debug/60381
4990         Revert:
4991         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
4992         PR debug/59992
4993         * cselib.c (remove_useless_values): Skip to avoid quadratic
4994         behavior if the condition moved from...
4995         (cselib_process_insn): ... here holds.
4996
4997 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
4998
4999         PR plugins/59335
5000         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
5001         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
5002
5003         PR plugins/59335
5004         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
5005         (TM_H): Add x86-tune.def.
5006
5007 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5008
5009         * config/aarch64/aarch64.c (generic_tunings):
5010         Use cortexa57_extra_costs.
5011
5012 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
5013
5014         PR lto/60404
5015         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
5016         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
5017         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
5018         cost for in_lto_p.
5019
5020 2014-03-04  Heiher  <r@hev.cc>
5021
5022         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
5023         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
5024
5025 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
5026
5027         * config/i386/predicates.md (const2356_operand): Change to ...
5028         (const2367_operand): ... this.
5029         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
5030         const2367_operand.
5031         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
5032         (*avx512pf_scatterpf<mode>sf): Ditto.
5033         (avx512pf_scatterpf<mode>df): Ditto.
5034         (*avx512pf_scatterpf<mode>df_mask): Ditto.
5035         (*avx512pf_scatterpf<mode>df): Ditto.
5036         * config/i386/i386.c (ix86_expand_builtin): Update
5037         incorrect hint operand error message.
5038
5039 2014-03-04  Richard Biener  <rguenther@suse.de>
5040
5041         * lto-section-in.c (lto_get_section_data): Fix const cast.
5042
5043 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
5044
5045         * tree-streamer.c (record_common_node): Assert we don't record
5046         nodes with type double.
5047         (preload_common_node): Skip type double, complex double and double
5048         pointer since it is now frontend dependent due to fshort-double option.
5049
5050 2014-03-04  Richard Biener  <rguenther@suse.de>
5051
5052         PR lto/60405
5053         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
5054         (lto_input_toplevel_asms): Likewise.
5055         * lto-section-in.c (lto_get_section_data): Instead do it here
5056         for every section.
5057
5058 2014-03-04  Richard Biener  <rguenther@suse.de>
5059
5060         PR tree-optimization/60382
5061         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
5062         dead PHIs a reduction.
5063
5064 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
5065
5066         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
5067         hint value.
5068         (_mm_prefetch): Move out of GCC target("sse") pragma.
5069         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
5070         GCC target("prfchw") pragma.
5071         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
5072         for locality <= 2.
5073         * config/i386/i386.c (ix86_option_override_internal): Enable
5074         -mprfchw with -mprefetchwt1.
5075
5076 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
5077
5078         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
5079         Mark as varying.
5080
5081 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
5082
5083         * opts.h (CL_PCH_IGNORE): Define.
5084         * targhooks.c (option_affects_pch_p):
5085         Return false for options that have CL_PCH_IGNORE set.
5086         * opt-functions.awk: Process PchIgnore.
5087         * doc/options.texi: Document PchIgnore.
5088
5089         * config/arc/arc.opt (misize): Add PchIgnore property.
5090
5091 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5092
5093         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
5094         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
5095         constraint on constants to permit them being loaded into
5096         GENERAL_REGS or BASE_REGS.
5097
5098 2014-03-03  Nick Clifton  <nickc@redhat.com>
5099
5100         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
5101         anti-cacnonical alternatives.
5102         (negandhi3_real): New pattern.
5103         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
5104
5105 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
5106
5107         * config/avr/avr-mcus.def: Remove atxmega16x1.
5108         * config/avr/avr-tables.opt: Regenerate.
5109         * config/avr/t-multilib: Regenerate.
5110         * doc/avr-mmcu.texi: Regenerate.
5111
5112 2014-03-03  Tobias Grosser  <tobias@grosser.es>
5113             Mircea Namolaru  <mircea.namolaru@inria.fr>
5114
5115         PR tree-optimization/58028
5116         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
5117         scalar dimensions.
5118
5119 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5120
5121         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
5122         not handled by recognizers.
5123
5124 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
5125
5126         PR middle-end/60175
5127         * function.c (expand_function_end): Don't emit
5128         clobber_return_register sequence if clobber_after is a BARRIER.
5129         * cfgexpand.c (construct_exit_block): Append instructions before
5130         return_label to prev_bb.
5131
5132 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5133
5134         * config/rs6000/constraints.md: Document reserved use of "wc".
5135
5136 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
5137
5138         PR ipa/60150
5139         * ipa.c (function_and_variable_visibility): When dissolving comdat
5140         group, also set all symbols to local.
5141
5142 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
5143
5144         PR ipa/60306
5145
5146         Revert:
5147         2013-12-14   Jan Hubicka  <jh@suse.cz>
5148         PR middle-end/58477
5149         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
5150
5151 2014-03-02  Jon Beniston  <jon@beniston.com>
5152
5153         PR bootstrap/48230
5154         PR bootstrap/50927
5155         PR bootstrap/52466
5156         PR target/46898
5157         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
5158           (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
5159         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
5160         (simple_return, *simple_return): New patterns
5161         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
5162         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
5163
5164 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
5165
5166         * dwarf2out.c (gen_subprogram_die): Tidy.
5167
5168 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
5169
5170         PR target/60071
5171         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
5172         (*mov_t_msb_neg_negc): ... this new insn.
5173
5174 2014-02-28  Jason Merrill  <jason@redhat.com>
5175
5176         PR c++/58678
5177         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
5178         function.
5179
5180 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
5181
5182         PR c++/60314
5183         * dwarf2out.c (decltype_auto_die): New static.
5184         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
5185         (gen_type_die_with_usage): Handle 'decltype(auto)'.
5186         (is_cxx_auto): Likewise.
5187
5188 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
5189
5190         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
5191         we are not using general regs only.
5192
5193 2014-02-28  Richard Biener  <rguenther@suse.de>
5194
5195         PR target/60280
5196         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
5197         previous fix and only allow to remove trivial pre-headers
5198         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
5199         (remove_forwarder_block): Properly update the latch of a loop.
5200
5201 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
5202
5203         PR debug/59992
5204         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
5205         (cselib_preserved_hash_table): New.
5206         (preserve_constants_and_equivs): Move preserved vals to it.
5207         (cselib_find_slot): Look it up first.
5208         (cselib_init): Initialize it.
5209         (cselib_finish): Release it.
5210         (dump_cselib_table): Dump it.
5211
5212 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
5213
5214         PR debug/59992
5215         * cselib.c (remove_useless_values): Skip to avoid quadratic
5216         behavior if the condition moved from...
5217         (cselib_process_insn): ... here holds.
5218
5219 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
5220
5221         PR debug/57232
5222         * var-tracking.c (vt_initialize): Apply the same condition to
5223         preserve the CFA base value.
5224
5225 2014-02-28  Joey Ye  <joey.ye@arm.com>
5226
5227         PR target/PR60169
5228         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
5229         if reload in progress or completed.
5230
5231 2014-02-28  Tobias Burnus  <burnus@net-b.de>
5232
5233         PR middle-end/60147
5234         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
5235         NAMELIST_DECL.
5236
5237 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
5238
5239         * doc/tm.texi.in (Condition Code Status): Update documention for
5240         relative locations of cc0-setter and cc0-user.
5241
5242 2014-02-27  Jeff Law  <law@redhat.com>
5243
5244         PR rtl-optimization/52714
5245         * combine.c (try_combine): When splitting an unrecognized PARALLEL
5246         into two independent simple sets, if I3 is a jump, ensure the
5247         pattern we place into I3 is a (set (pc) ...).
5248
5249 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
5250             Jeff Law  <law@redhat.com>
5251
5252         PR rtl-optimization/49847
5253         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
5254         are in different blocks.
5255         * doc/tm.texi (Condition Code Status): Update documention for
5256         relative locations of cc0-setter and cc0-user.
5257
5258 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
5259
5260         PR target/59222
5261         * lra.c (lra_emit_add): Check SUBREG too.
5262
5263 2014-02-27  Andreas Schwab  <schwab@suse.de>
5264
5265         * config/m68k/m68k.c (m68k_option_override): Disable
5266         -flive-range-shrinkage for classic m68k.
5267         (m68k_override_options_after_change): Likewise.
5268
5269 2014-02-27  Marek Polacek  <polacek@redhat.com>
5270
5271         PR middle-end/59223
5272         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
5273         -Wmaybe-uninitialized.
5274
5275 2014-02-27  Alan Modra  <amodra@gmail.com>
5276
5277         PR target/57936
5278         * reload1.c (emit_input_reload_insns): When reload_override_in,
5279         set old to rl->in_reg when rl->in_reg is a subreg.
5280
5281 2014-02-26  Richard Biener  <rguenther@suse.de>
5282
5283         PR bootstrap/60343
5284         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
5285
5286 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
5287
5288         * common/config/i386/predicates.md (const1256_operand): Remove.
5289         (const2356_operand): New.
5290         (const_1_to_2_operand): Remove.
5291         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
5292         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
5293         (*avx512pf_gatherpf<mode>sf): Ditto.
5294         (avx512pf_gatherpf<mode>df): Ditto.
5295         (*avx512pf_gatherpf<mode>df_mask): Ditto.
5296         (*avx512pf_gatherpf<mode>df): Ditto.
5297         (avx512pf_scatterpf<mode>sf): Ditto.
5298         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
5299         (*avx512pf_scatterpf<mode>sf): Ditto.
5300         (avx512pf_scatterpf<mode>df): Ditto.
5301         (*avx512pf_scatterpf<mode>df_mask): Ditto.
5302         (*avx512pf_scatterpf<mode>df): Ditto.
5303         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
5304
5305 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
5306
5307         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
5308         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
5309         (_mm512_mask_testn_epi64_mask): Move to ...
5310         * config/i386/avx512cdintrin.h: Here.
5311         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
5312         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
5313         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
5314         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
5315         TARGET_AVX512F from TARGET_AVX512CD.
5316
5317 2014-02-26  Richard Biener  <rguenther@suse.de>
5318
5319         PR ipa/60327
5320         * ipa.c (walk_polymorphic_call_targets): Properly guard
5321         call to inline_update_overall_summary.
5322
5323 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
5324
5325         PR target/60280
5326         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
5327         and latches only if requested.  Fix latch if it is removed.
5328         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
5329         LOOPS_HAVE_PREHEADERS.
5330
5331 2014-02-25  Andrew Pinski  <apinski@cavium.com>
5332
5333         * builtins.c (expand_builtin_thread_pointer): Create a new target
5334         when the target is NULL.
5335
5336 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
5337
5338         PR rtl-optimization/60317
5339         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
5340         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
5341         * lra-assigns.c: Include params.h.
5342         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
5343         other reload pseudos considerations.
5344
5345 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5346
5347         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
5348         to use canonical form for nor<mode>3.
5349
5350 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5351
5352         PR target/55426
5353         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
5354         conversions.
5355
5356 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
5357
5358         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
5359         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
5360         (ix86_handle_option): Handle OPT_mprefetchwt1.
5361         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
5362         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
5363         PREFETCHWT1 CPUID.
5364         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
5365         OPTION_MASK_ISA_PREFETCHWT1.
5366         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
5367         (PTA_PREFETCHWT1): New.
5368         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
5369         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
5370         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
5371         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
5372         (*prefetch_avx512pf_<mode>_: Change into ...
5373         (*prefetch_prefetchwt1_<mode>: This.
5374         * config/i386/i386.opt (mprefetchwt1): New.
5375         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
5376         (_mm_prefetch): Handle intent to write.
5377         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
5378
5379 2014-02-25  Richard Biener  <rguenther@suse.de>
5380
5381         PR middle-end/60291
5382         * emit-rtl.c (mem_attrs_htab): Remove.
5383         (mem_attrs_htab_hash): Likewise.
5384         (mem_attrs_htab_eq): Likewise.
5385         (set_mem_attrs): Always allocate new mem-attrs when something changed.
5386         (init_emit_once): Do not allocate mem_attrs_htab.
5387
5388 2014-02-25  Richard Biener  <rguenther@suse.de>
5389
5390         PR lto/60319
5391         * lto-opts.c (lto_write_options): Output non-explicit conservative
5392         -fwrapv, -fno-trapv and -fno-strict-overflow.
5393         * lto-wrapper.c (merge_and_complain): Handle merging those options.
5394         (run_gcc): And pass them through.
5395
5396 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
5397
5398         * sel-sched.c (calculate_new_fences): New parameter ptime.
5399         Calculate it as a maximum over all fence cycles.
5400         (sel_sched_region_2): Adjust the call to calculate_new_fences.
5401         Print the final schedule timing when sched_verbose.
5402
5403 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
5404
5405         PR rtl-optimization/60292
5406         * sel-sched.c (fill_vec_av_set): Do not reset target availability
5407         bit fot the fence instruction.
5408
5409 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
5410
5411         * calls.h: Fix typo in comment.
5412
5413 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
5414
5415         * config/pa/pa.c (pa_output_move_double): Don't valididate when
5416         adjusting offsetable addresses.
5417
5418 2014-02-24  Guozhi Wei  <carrot@google.com>
5419
5420         * sparseset.h (sparseset_pop): Fix the wrong index.
5421
5422 2014-02-24  Walter Lee  <walt@tilera.com>
5423
5424         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
5425         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
5426         triplet.
5427         * common/config/tilegx/tilegx-common.c
5428         (TARGET_DEFAULT_TARGET_FLAGS): Define.
5429         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
5430         (LINK_SPEC): Ditto.
5431         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
5432         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
5433         (tilegx_gimplify_va_arg_expr): Handle big endian.
5434         (tilegx_expand_unaligned_load): Ditto.
5435         (tilegx_expand_unaligned_store): Ditto.
5436         (TARGET_RETURN_IN_MSB): New.
5437         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
5438         (TARGET_ENDIAN_DEFAULT): New.
5439         (TARGET_BIG_ENDIAN): Handle big endian.
5440         (BYTES_BIG_ENDIAN): Ditto.
5441         (WORDS_BIG_ENDIAN): Ditto.
5442         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
5443         (ENDIAN_SPEC): New.
5444         (EXTRA_SPECS): New.
5445         * config/tilegx/tilegx.md (extv): Handle big endian.
5446         (extzv): Ditto.
5447         (insn_st<n>): Ditto.
5448         (insn_st<n>_add<bitsuffix>): Ditto.
5449         (insn_stnt<n>): Ditto.
5450         (insn_stnt<n>_add<bitsuffix>):Ditto.
5451         (vec_interleave_highv8qi): Handle big endian.
5452         (vec_interleave_highv8qi_be): New.
5453         (vec_interleave_highv8qi_le): New.
5454         (insn_v1int_h): Handle big endian.
5455         (vec_interleave_lowv8qi): Handle big endian.
5456         (vec_interleave_lowv8qi_be): New.
5457         (vec_interleave_lowv8qi_le): New.
5458         (insn_v1int_l): Handle big endian.
5459         (vec_interleave_highv4hi): Handle big endian.
5460         (vec_interleave_highv4hi_be): New.
5461         (vec_interleave_highv4hi_le): New.
5462         (insn_v2int_h): Handle big endian.
5463         (vec_interleave_lowv4hi): Handle big endian.
5464         (vec_interleave_lowv4hi_be): New.
5465         (vec_interleave_lowv4hi_le): New.
5466         (insn_v2int_l): Handle big endian.
5467         (vec_interleave_highv2si): Handle big endian.
5468         (vec_interleave_highv2si_be): New.
5469         (vec_interleave_highv2si_le): New.
5470         (insn_v4int_h): Handle big endian.
5471         (vec_interleave_lowv2si): Handle big endian.
5472         (vec_interleave_lowv2si_be): New.
5473         (vec_interleave_lowv2si_le): New.
5474         (insn_v4int_l): Handle big endian.
5475         * config/tilegx/tilegx.opt (mbig-endian): New option.
5476         (mlittle-endian): New option.
5477         * doc/install.texi: Document tilegxbe-linux.
5478         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
5479
5480 2014-02-24  Martin Jambor  <mjambor@suse.cz>
5481
5482         PR ipa/60266
5483         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
5484         there are no parameter descriptors.
5485
5486 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
5487
5488         PR rtl-optimization/60268
5489         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
5490         initialization to ...
5491         (sched_rgn_init): ... here.
5492         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
5493
5494 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
5495
5496         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
5497         names.
5498
5499 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
5500
5501         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
5502         definition.
5503
5504 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
5505
5506         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
5507         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
5508
5509 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
5510
5511         * config/microblaze/predicates.md: Add cmp_op predicate.
5512         * config/microblaze/microblaze.md: Add branch_compare instruction
5513         which uses cmp_op predicate and emits cmp insn before branch.
5514         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
5515         to microblaze_expand_conditional_branch and consolidate logic.
5516         (microblaze_expand_conditional_branch): emit branch_compare
5517         insn instead of handling cmp op separate from branch insn.
5518
5519 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5520
5521         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
5522         to permit subregs.
5523
5524 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5525
5526         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
5527         define_insn with define_expand and new define_insn
5528         *altivec_lve<VI_char>x_internal.
5529         (altivec_stve<VI_char>x): Replace define_insn with define_expand
5530         and new define_insn *altivec_stve<VI_char>x_internal.
5531         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
5532         prototype.
5533         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
5534         lve*x built-ins.
5535         (altivec_expand_stvex_be): New function.
5536
5537 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
5538
5539         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
5540         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
5541         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
5542         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
5543
5544 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
5545
5546         PR target/60298
5547         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
5548         instead of emit_move_insn.
5549
5550 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5551
5552         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
5553         vspltw with vsldoi.
5554         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
5555         gen_altivec_vsumsws.
5556
5557 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5558
5559         * config/rs6000/altivec.md (altivec_lvxl): Rename as
5560         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
5561         (altivec_lvxl_<mode>): New define_expand incorporating
5562         -maltivec=be semantics where needed.
5563         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
5564         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
5565         semantics where needed.
5566         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
5567         (altivec_stvx_<mode>): New define_expand incorporating
5568         -maltivec=be semantics where needed.
5569         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
5570         VM2 iterator instead of V4SI.
5571         (altivec_stvxl_<mode>): New define_expand incorporating
5572         -maltivec=be semantics where needed.
5573         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
5574         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
5575         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
5576         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
5577         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
5578         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
5579         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
5580         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
5581         ALTIVEC_BUILTIN_STVXL.
5582         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
5583         (altivec_expand_stvx_be): Likewise.
5584         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
5585         (altivec_expand_lvx_be): Likewise.
5586         (altivec_expand_stvx_be): Likewise.
5587         (altivec_expand_builtin): Add cases for
5588         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
5589         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
5590         (altivec_init_builtins): Add definitions for
5591         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
5592         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
5593
5594 2014-02-21  Catherine Moore  <clm@codesourcery.com>
5595
5596         * doc/invoke.texi (mvirt, mno-virt): Document.
5597         * config/mips/mips.opt (mvirt): New option.
5598         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
5599
5600 2014-02-21  Richard Biener  <rguenther@suse.de>
5601
5602         PR tree-optimization/60276
5603         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
5604         (STMT_VINFO_MIN_NEG_DIST): New macro.
5605         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
5606         STMT_VINFO_MIN_NEG_DIST.
5607         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
5608         made for negative dependence distances still hold.
5609
5610 2014-02-21  Richard Biener  <rguenther@suse.de>
5611
5612         PR middle-end/60291
5613         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
5614         DECL_INITIAL for globals not in the current function context.
5615
5616 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
5617
5618         PR tree-optimization/56490
5619         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
5620         * tree-ssa-uninit.c: Include params.h.
5621         (compute_control_dep_chain): Add num_calls argument, return false
5622         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
5623         num_calls to recursive call.
5624         (find_predicates): Change dep_chain into normal array,
5625         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
5626         variable and adjust compute_control_dep_chain caller.
5627         (find_def_preds): Likewise.
5628
5629 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
5630
5631         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
5632         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
5633
5634 2014-02-21  Nick Clifton  <nickc@redhat.com>
5635
5636         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
5637         (pushhi1): Likewise.
5638         (popqi1): Add mode to pre_dec.
5639         (pophi1): Likewise.
5640
5641 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
5642
5643         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
5644         mode for mask of V8SFmode permutation.
5645
5646 2014-02-20  Richard Henderson  <rth@redhat.com>
5647
5648         PR c++/60272
5649         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
5650         a new pseudo for OLDVAL.
5651
5652 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
5653
5654         PR target/57896
5655         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
5656         gen_reg_rtx if d->testing_p.
5657         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
5658         if d->testing_p and we will certainly return true.
5659         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
5660         if d->testing_p.
5661
5662 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
5663
5664         * emit-rtl.c (gen_reg_rtx): Assert that
5665         crtl->emit.regno_pointer_align_length is non-zero.
5666
5667 2014-02-20  Richard Henderson  <rth@redhat.com>
5668
5669         PR c++/60272
5670         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
5671         on failure the store back into EXPECT.
5672
5673 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
5674             Sandra Loosemore  <sandra@codesourcery.com>
5675
5676         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
5677         * config/nios2/nios2.c (nios2_function_profiler): Add
5678         -fPIC (flag_pic == 2) support.
5679         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
5680         (nios2_large_offset_p): New function.
5681         (nios2_unspec_reloc_p): Move up position, update to use
5682         nios2_large_offset_p.
5683         (nios2_unspec_address): Remove function.
5684         (nios2_unspec_offset): New function.
5685         (nios2_large_got_address): New function.
5686         (nios2_got_address): Add large offset support.
5687         (nios2_legitimize_tls_address): Update usage of removed and new
5688         functions.
5689         (nios2_symbol_binds_local_p): New function.
5690         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
5691         (nios2_legitimize_address): Update to use nios2_large_offset_p.
5692         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
5693         (nios2_print_operand): Merge H/L processing, add hiadj/lo
5694         processing for (const (unspec ...)).
5695         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
5696
5697 2014-02-20  Richard Biener  <rguenther@suse.de>
5698
5699         * tree-cfg.c (replace_uses_by): Mark altered BBs before
5700         doing the substitution.
5701         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
5702
5703 2014-02-20  Martin Jambor  <mjambor@suse.cz>
5704
5705         PR ipa/55260
5706         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
5707         info when checking whether lattices are bottom.
5708
5709 2014-02-20  Richard Biener  <rguenther@suse.de>
5710
5711         PR middle-end/60221
5712         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
5713         regions at -O0.
5714
5715 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
5716
5717         PR ipa/58555
5718         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
5719         parameter specifying the scaling.
5720         (inline_call): Update.
5721         (want_inline_recursively): Guard division by zero.
5722         (recursive_inlining): Update.
5723         * ipa-inline.h (clone_inlined_nodes): Update.
5724
5725 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
5726
5727         PR target/60204
5728         * config/i386/i386.c (classify_argument): Pass structures of size
5729         64 bytes or less in register.
5730
5731 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
5732             Kirill Yukhin  <kirill.yukhin@intel.com>
5733
5734         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
5735         (_mm_rcp28_round_ss): Ditto.
5736         (_mm_rsqrt28_round_sd): Ditto.
5737         (_mm_rsqrt28_round_ss): Ditto.
5738         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
5739         (_mm_rcp14_round_ss): Ditto.
5740         (_mm_rsqrt14_round_sd): Ditto.
5741         (_mm_rsqrt14_round_ss): Ditto.
5742         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
5743         the first input operand, get rid of match_dup.
5744         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
5745         attribute to sse.
5746         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
5747         Ditto.
5748         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
5749         operand as the first input operand, set type attribute.
5750         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
5751         Set type attribute.
5752         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
5753         operand as the first input operand, set type attribute.
5754
5755 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5756
5757         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
5758         bit of zero.
5759
5760 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
5761
5762         PR target/60207
5763         * config/i386/i386.c (construct_container): Remove TFmode check
5764         for X86_64_INTEGER_CLASS.
5765
5766 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
5767
5768         PR target/59794
5769         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
5770         only when -Wpsabi is enabled.
5771
5772 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
5773
5774          PR target/59799
5775         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
5776         passing arrays in registers are the same as for structs, so remove the
5777         special case for them.
5778
5779 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
5780
5781         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
5782         destination type, extract only the valid bits if the source type is not
5783         integral and has a different mode.
5784
5785 2014-02-19  Richard Biener  <rguenther@suse.de>
5786
5787         PR ipa/60243
5788         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
5789         for all calls.
5790
5791 2014-02-19  Richard Biener  <rguenther@suse.de>
5792
5793         PR ipa/60243
5794         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
5795         (ipa_modify_call_arguments): Emit an argument load explicitely and
5796         preserve virtual SSA form there and for the replacement call.
5797         Do not update SSA form nor free dominance info.
5798
5799 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
5800
5801         * ipa.c (function_and_variable_visibility): Also clear WEAK
5802         flag when disolving COMDAT_GROUP.
5803
5804 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
5805
5806         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
5807         * ipa-prop.c (ipa_set_jf_known_type): Return early when
5808         not devirtualizing.
5809         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
5810         do more sanity checks.
5811         (detect_type_change): Return true when giving up early.
5812         (compute_complex_assign_jump_func): Fix type parameter of
5813         ipa_set_ancestor_jf.
5814         (compute_complex_ancestor_jump_func): Likewise.
5815         (update_jump_functions_after_inlining): Fix updating of
5816         ancestor function.
5817         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
5818
5819 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
5820
5821         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
5822         inline clones when edge disappears.
5823
5824 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
5825
5826         PR target/60203
5827         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
5828         Split 64-bit moves into 2 patterns.  Do not allow the use of
5829         direct move for TDmode in little endian, since the decimal value
5830         has little endian bytes within a word, but the 64-bit pieces are
5831         ordered in a big endian fashion, and normal subreg's of TDmode are
5832         not allowed.
5833         (mov<mode>_64bit_dm): Likewise.
5834         (movtd_64bit_nodm): Likewise.
5835
5836 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
5837
5838         PR tree-optimization/60174
5839         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
5840         statement of an SSA_NAME that occurs in an abnormal PHI node.
5841
5842 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
5843
5844         PR sanitizer/60142
5845         * final.c (SEEN_BB): Remove.
5846         (SEEN_NOTE, SEEN_EMITTED): Renumber.
5847         (final_scan_insn): Don't force_source_line on second
5848         NOTE_INSN_BASIC_BLOCK.
5849
5850 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
5851
5852         PR target/60205
5853         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
5854         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
5855         (type_natural_mode): Warn ABI change when %zmm register is not
5856         available for AVX512F vector value passing.
5857
5858 2014-02-18  Kai Tietz  <ktietz@redhat.com>
5859
5860         PR target/60193
5861         * config/i386/i386.c (ix86_expand_prologue): Use value in
5862         rax register as displacement when restoring %r10 or %rax.
5863         Fix wrong offset when restoring both registers.
5864
5865 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
5866
5867         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
5868         assertion with conditional return.
5869
5870 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
5871             Uros Bizjak  <ubizjak@gmail.com>
5872
5873         PR driver/60233
5874         * config/i386/driver-i386.c (host_detect_local_cpu): If
5875         YMM state is not saved by the OS, also clear has_f16c.  Move
5876         CPUID 0x80000001 handling before YMM state saving checking.
5877
5878 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
5879
5880         PR rtl-optimization/58960
5881         * haifa-sched.c (alloc_global_sched_pressure_data): New,
5882         factored out from ...
5883         (sched_init): ... here.
5884         (free_global_sched_pressure_data): New, factored out from ...
5885         (sched_finish): ... here.
5886         * sched-int.h (free_global_sched_pressure_data): Declare.
5887         * sched-rgn.c (nr_regions_initial): New static global.
5888         (haifa_find_rgns): Initialize it.
5889         (schedule_region): Disable sched-pressure for the newly
5890         generated regions.
5891
5892 2014-02-17  Richard Biener  <rguenther@suse.de>
5893
5894         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
5895         release SSA defs of pattern stmts.
5896
5897 2014-02-17  Richard Biener  <rguenther@suse.de>
5898
5899         * tree-inline.c (expand_call_inline): Release the virtual
5900         operand defined by the call we are about to inline.
5901
5902 2014-02-17  Richard Biener  <rguenther@suse.de>
5903
5904         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
5905
5906 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
5907             Ilya Tocar  <ilya.tocar@intel.com>
5908
5909         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
5910         arguments order in builtin.
5911         (_mm512_permutexvar_epi64): Ditto.
5912         (_mm512_mask_permutexvar_epi64): Ditto
5913         (_mm512_maskz_permutexvar_epi32): Ditto
5914         (_mm512_permutexvar_epi32): Ditto
5915         (_mm512_mask_permutexvar_epi32): Ditto
5916
5917 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5918
5919         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
5920         (p8_vmrgow): Likewise.
5921
5922 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5923
5924         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
5925         endian targets.
5926
5927 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
5928
5929         PR target/60203
5930         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
5931         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
5932         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
5933         using direct move instructions on ISA 2.07.  Also adjust
5934         instruction length for 64-bit.
5935         (mov<mode>_64bit, TFmode/TDmode): Likewise.
5936         (mov<mode>_32bit, TFmode/TDmode): Likewise.
5937
5938 2014-02-15  Alan Modra  <amodra@gmail.com>
5939
5940         PR target/58675
5941         PR target/57935
5942         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
5943         find_replacement on parts of insn rtl that might be reloaded.
5944
5945 2014-02-15  Richard Biener  <rguenther@suse.de>
5946
5947         PR tree-optimization/60183
5948         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
5949         (tree_ssa_phiprop): Calculate and free post-dominators.
5950
5951 2014-02-14  Jeff Law  <law@redhat.com>
5952
5953         PR rtl-optimization/60131
5954         * ree.c (get_extended_src_reg): New function.
5955         (combine_reaching_defs): Use it rather than assuming location of REG.
5956         (find_and_remove_re): Verify first operand of extension is
5957         a REG before adding the insns to the copy list.
5958
5959 2014-02-14  Roland McGrath  <mcgrathr@google.com>
5960
5961         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
5962         * configure: Regenerated.
5963         * config.in: Regenerated.
5964         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
5965         instead of ASM_SHORT.
5966
5967 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
5968             Richard Earnshaw  <rearnsha@arm.com>
5969
5970         PR rtl-optimization/59535
5971         * lra-constraints.c (process_alt_operands): Encourage alternative
5972         when unassigned pseudo class is superset of the alternative class.
5973         (inherit_reload_reg): Don't inherit when optimizing for code size.
5974         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
5975         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
5976         modes not less than 4 for Thumb1.
5977
5978 2014-02-14  Kyle McMartin  <kyle@redhat.com>
5979
5980         PR pch/60010
5981         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
5982
5983 2014-02-14  Richard Biener  <rguenther@suse.de>
5984
5985         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
5986         (get_frame_arg): Drop the assert with langhook types_compatible_p.
5987         Do not strip INDIRECT_REFs.
5988
5989 2014-02-14  Richard Biener  <rguenther@suse.de>
5990
5991         PR lto/60179
5992         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
5993         DECL_FUNCTION_SPECIFIC_TARGET.
5994         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
5995         * tree-streamer-out.c (pack_ts_target_option): Remove.
5996         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
5997         (write_ts_function_decl_tree_pointers): Do not stream
5998         DECL_FUNCTION_SPECIFIC_TARGET.
5999         * tree-streamer-in.c (unpack_ts_target_option): Remove.
6000         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
6001         (lto_input_ts_function_decl_tree_pointers): Do not stream
6002         DECL_FUNCTION_SPECIFIC_TARGET.
6003
6004 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
6005
6006         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
6007         (get_initial_def_for_induction, vectorizable_induction): Ignore
6008         debug stmts when looking for exit_phi.
6009         (vectorizable_live_operation): Fix up condition.
6010
6011 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
6012
6013         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
6014         nreverse() because it changes the content of original tree list.
6015
6016 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
6017
6018         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
6019         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
6020
6021 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
6022
6023         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
6024         GNU coding standards.
6025
6026 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
6027
6028         PR debug/60152
6029         * dwarf2out.c (gen_subprogram_die): Don't call
6030         add_calling_convention_attribute if subr_die is old_die.
6031
6032 2014-02-13  Sharad Singhai  <singhai@google.com>
6033
6034         * doc/optinfo.texi: Fix order of nodes.
6035
6036 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
6037
6038         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
6039         operands[2], not operands[3].
6040
6041 2014-02-13  Richard Biener  <rguenther@suse.de>
6042
6043         PR bootstrap/59878
6044         * doc/install.texi (ISL): Update recommended version to 0.12.2,
6045         mention the possibility of an in-tree build.
6046         (CLooG): Update recommended version to 0.18.1, mention the
6047         possibility of an in-tree build and clarify that the ISL
6048         bundled with CLooG does not work.
6049
6050 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
6051
6052         PR target/43546
6053         * expr.c (compress_float_constant): If x is a hard register,
6054         extend into a pseudo and then move to x.
6055
6056 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
6057
6058         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
6059         caused by bad second argument to warning_at() with -mhotpatch and
6060         nested functions (e.g. with gfortran).
6061
6062 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
6063
6064         * opts.c (option_name): Remove "enabled by default" rider.
6065
6066 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
6067
6068         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
6069
6070 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
6071             Uros Bizjak  <ubizjak@gmail.com>
6072
6073         PR target/60151
6074         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
6075         * configure: Regenerated.
6076
6077 2014-02-12  Richard Biener  <rguenther@suse.de>
6078
6079         * vec.c (vec_prefix::calculate_allocation): Move as
6080         inline variant to vec.h.
6081         (vec_prefix::calculate_allocation_1): New out-of-line version.
6082         * vec.h (vec_prefix::calculate_allocation_1): Declare.
6083         (vec_prefix::m_has_auto_buf): Rename to ...
6084         (vec_prefix::m_using_auto_storage): ... this.
6085         (vec_prefix::calculate_allocation): Inline the easy cases
6086         and dispatch to calculate_allocation_1 which doesn't need the
6087         prefix address.
6088         (va_heap::reserve): Use gcc_checking_assert.
6089         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
6090         m_using_auto_storage.
6091         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
6092         member and adjust.
6093         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
6094         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
6095         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
6096
6097 2014-02-12  Richard Biener  <rguenther@suse.de>
6098
6099         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
6100         when we found a dependence.
6101
6102 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
6103
6104         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
6105         common code...
6106         (maybe_fold_stmt): ... into this new function.
6107         * omp-low.c (lower_omp): Update comment.
6108
6109         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
6110         last use.
6111
6112         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
6113         dereference.
6114
6115 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
6116
6117         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
6118         identifiers in comments.
6119         (cortexa53_extra_costs): Likewise.
6120         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
6121         (cortexa7_extra_costs): Likewise.
6122         (cortexa12_extra_costs): Likewise.
6123         (cortexa15_extra_costs): Likewise.
6124         (v7m_extra_costs): Likewise.
6125
6126 2014-02-12  Richard Biener  <rguenther@suse.de>
6127
6128         PR middle-end/60092
6129         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
6130         of posix_memalign being successful.
6131         (lower_stmt): Restrict lowering of posix_memalign to when
6132         -ftree-bit-ccp is enabled.
6133
6134 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6135
6136         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
6137         arg_loc.
6138         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
6139
6140 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
6141
6142         PR rtl-optimization/60116
6143         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
6144         other_insn once the combination has been validated.
6145
6146 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
6147
6148         PR lto/59468
6149         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
6150         and wrapper.
6151         * ipa-devirt.c: Include demangle.h
6152         (odr_violation_reported): New static variable.
6153         (add_type_duplicate): Update odr_violations.
6154         (maybe_record_node): Add completep parameter; update it.
6155         (record_target_from_binfo): Add COMPLETEP parameter;
6156         update it as needed.
6157         (possible_polymorphic_call_targets_1): Likewise.
6158         (struct polymorphic_call_target_d): Add nonconstruction_targets;
6159         rename FINAL to COMPLETE.
6160         (record_targets_from_bases): Sanity check we found the binfo;
6161         fix COMPLETEP updating.
6162         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
6163         parameter, fix computing of COMPLETEP.
6164         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
6165         at LTO time do demangling.
6166         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
6167         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
6168         parameter.
6169         (gimple_get_virt_method_for_binfo): Likewise.
6170         * gimple-fold.h (gimple_get_virt_method_for_binfo,
6171         gimple_get_virt_method_for_vtable): Update prototypes.
6172
6173 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
6174
6175         PR target/49008
6176         * genautomata.c (add_presence_absence): Fix typo with
6177         {final_}presence_list.
6178
6179 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
6180
6181         PR target/60137
6182         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
6183         for VSX/Altivec vectors that land in GPR registers.
6184
6185 2014-02-11  Richard Henderson  <rth@redhat.com>
6186             Jakub Jelinek  <jakub@redhat.com>
6187
6188         PR debug/59776
6189         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
6190         around drhs if type conversion to lacc->type is not useless.
6191
6192 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6193
6194         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
6195         tuning struct.
6196         (cortex-a57.cortex-a53): Likewise.
6197         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
6198
6199 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6200
6201         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
6202         arm_restrict_it.
6203
6204 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
6205
6206         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
6207         add_options_for_arm_vfp3.
6208
6209 2014-02-11  Jeff Law  <law@redhat.com>
6210
6211         PR middle-end/54041
6212         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
6213         object with an undesirable mode.
6214
6215 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6216
6217         PR libgomp/60107
6218         * config/i386/sol2-9.h: New file.
6219         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
6220         *-*-solaris2.9*): Use it.
6221
6222 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
6223
6224         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
6225         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
6226
6227 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
6228
6229         * config/microblaze/microblaze.c: Extend mcpu version format
6230
6231 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
6232
6233         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
6234
6235 2014-02-10  Richard Henderson  <rth@redhat.com>
6236
6237         PR target/59927
6238         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
6239         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
6240         ms-abi vs -mno-accumulate-outgoing-args.
6241         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
6242         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
6243         respect to ms-abi.
6244
6245 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6246
6247         PR middle-end/60080
6248         * cfgexpand.c (expand_asm_operands): Attach source location to
6249         ASM_INPUT rtx objects.
6250         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
6251
6252 2014-02-10  Nick Clifton  <nickc@redhat.com>
6253
6254         * config/mn10300/mn10300.c (popcount): New function.
6255         (mn10300_expand_prologue): Include saved registers in stack usage
6256         count.
6257
6258 2014-02-10  Jeff Law  <law@redhat.com>
6259
6260         PR middle-end/52306
6261         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
6262         when changing the SET_DEST of a prior insn to avoid an input reload.
6263
6264 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6265
6266         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
6267         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
6268         -mcall-openbsd, or -mcall-linux.
6269         (CC1_ENDIAN_BIG_SPEC): Remove.
6270         (CC1_ENDIAN_LITTLE_SPEC): Remove.
6271         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
6272         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
6273         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
6274         and %cc1_endian_default.
6275         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
6276
6277 2014-02-10  Richard Biener  <rguenther@suse.de>
6278
6279         PR tree-optimization/60115
6280         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
6281         MEM_REF handling.  Properly verify that the accesses are not
6282         out of the objects bound.
6283
6284 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6285
6286         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
6287         coretex to cortex.
6288
6289 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
6290
6291         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
6292         proper constants and fix formatting.
6293         (possible_polymorphic_call_targets): Fix formatting.
6294
6295 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
6296             Ilya Tocar  <ilya.tocar@intel.com>
6297
6298         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
6299         (_mm512_loadu_epi32): Renamed into...
6300         (_mm512_loadu_si512): This.
6301         (_mm512_storeu_epi32): Renamed into...
6302         (_mm512_storeu_si512): This.
6303         (_mm512_maskz_ceil_ps): Removed.
6304         (_mm512_maskz_ceil_pd): Ditto.
6305         (_mm512_maskz_floor_ps): Ditto.
6306         (_mm512_maskz_floor_pd): Ditto.
6307         (_mm512_floor_round_ps): Ditto.
6308         (_mm512_floor_round_pd): Ditto.
6309         (_mm512_ceil_round_ps): Ditto.
6310         (_mm512_ceil_round_pd): Ditto.
6311         (_mm512_mask_floor_round_ps): Ditto.
6312         (_mm512_mask_floor_round_pd): Ditto.
6313         (_mm512_mask_ceil_round_ps): Ditto.
6314         (_mm512_mask_ceil_round_pd): Ditto.
6315         (_mm512_maskz_floor_round_ps): Ditto.
6316         (_mm512_maskz_floor_round_pd): Ditto.
6317         (_mm512_maskz_ceil_round_ps): Ditto.
6318         (_mm512_maskz_ceil_round_pd): Ditto.
6319         (_mm512_expand_pd): Ditto.
6320         (_mm512_expand_ps): Ditto.
6321         * config/i386/i386.c (ix86_builtins): Remove
6322         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
6323         (bdesc_args): Ditto.
6324         * config/i386/predicates.md (const1256_operand): New.
6325         (const_1_to_2_operand): Ditto.
6326         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
6327         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
6328         (*avx512pf_gatherpf<mode>sf): Ditto.
6329         (avx512pf_gatherpf<mode>df): Ditto.
6330         (*avx512pf_gatherpf<mode>df_mask): Ditto.
6331         (*avx512pf_gatherpf<mode>df): Ditto.
6332         (avx512pf_scatterpf<mode>sf): Ditto.
6333         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
6334         (*avx512pf_scatterpf<mode>sf): Ditto.
6335         (avx512pf_scatterpf<mode>df): Ditto.
6336         (*avx512pf_scatterpf<mode>df_mask): Ditto.
6337         (*avx512pf_scatterpf<mode>df): Ditto.
6338         (avx512f_expand<mode>): Removed.
6339         (<shift_insn><mode>3<mask_name>): Change predicate type.
6340
6341 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
6342
6343         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
6344         not at the end of datarefs vector use ordered_remove to avoid
6345         reordering datarefs vector.
6346
6347         PR c/59984
6348         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
6349         mark local addressable non-static vars as GOVD_PRIVATE
6350         instead of GOVD_LOCAL.
6351         * omp-low.c (lower_omp_for): Move gimple_bind_vars
6352         and BLOCK_VARS of gimple_bind_block to new_stmt rather
6353         than copying them.
6354
6355         PR middle-end/60092
6356         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
6357         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
6358         assume_aligned or alloc_align attributes.
6359         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
6360         arguments.  Handle also assume_aligned and alloc_align attributes.
6361         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
6362         calls to functions with assume_aligned or alloc_align attributes.
6363         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
6364
6365 2014-02-08  Terry Guo  <terry.guo@arm.com>
6366
6367         * doc/invoke.texi: Document ARM -march=armv7e-m.
6368
6369 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
6370
6371         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
6372         flag on __cilkrts_rethrow builtin.
6373
6374         PR ipa/60026
6375         * ipa-cp.c (determine_versionability): Fail at -O0
6376         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
6377         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
6378
6379         Revert:
6380         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
6381
6382         PR ipa/60026
6383         * tree-inline.c (copy_forbidden): Fail for
6384         __attribute__((optimize (0))) functions.
6385
6386 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
6387
6388         * varpool.c: Include pointer-set.h.
6389         (varpool_remove_unreferenced_decls): Variables in other partitions
6390         will not be output; be however careful to not lose information
6391         about partitioning.
6392
6393 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
6394
6395         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
6396         lookup in the vtable constructor.
6397
6398 2014-02-07  Jeff Law  <law@redhat.com>
6399
6400         PR target/40977
6401         * config/m68k/m68k.md (ashldi_extsi): Turn into a
6402         define_insn_and_split.
6403
6404         * ipa-inline.c (inline_small_functions): Fix typos.
6405
6406 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
6407
6408         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
6409         (s390_can_use_return_insn): Declare.
6410         * config/s390/s390.h (EPILOGUE_USES): Define.
6411         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
6412         instructions.
6413         (s390_chunkify_start): Handle return JUMP_LABELs.
6414         (s390_early_mach): Emit a main_pool instruction on the entry edge.
6415         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
6416         (s390_can_use_return_insn): New functions.
6417         (s390_fix_long_loop_prediction): Handle conditional returns.
6418         (TARGET_SET_UP_BY_PROLOGUE): Define.
6419         * config/s390/s390.md (ANY_RETURN): New code iterator.
6420         (*creturn, *csimple_return, return, simple_return): New patterns.
6421
6422 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
6423
6424         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
6425         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
6426         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
6427         REG_CFA_RESTORE list when deciding not to restore a register.
6428
6429 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
6430
6431         * config/s390/s390.c: Include tree-pass.h and context.h.
6432         (s390_early_mach): New function, split out from...
6433         (s390_emit_prologue): ...here.
6434         (pass_data_s390_early_mach): New pass structure.
6435         (pass_s390_early_mach): New class.
6436         (s390_option_override): Create and register early_mach pass.
6437         Move to end of file.
6438
6439 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
6440
6441         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
6442         to match for the exit block.
6443
6444 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6445
6446         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
6447         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
6448         Reject misaligned operands.
6449
6450 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6451
6452         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
6453
6454 2014-02-07  Richard Biener  <rguenther@suse.de>
6455
6456         PR middle-end/60092
6457         * gimple-low.c (lower_builtin_posix_memalign): New function.
6458         (lower_stmt): Call it to lower posix_memalign in a way
6459         to make alignment info accessible.
6460
6461 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
6462
6463         PR c++/60082
6464         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
6465         __builtin_setjmp_receiver.
6466
6467 2014-02-07  Richard Biener  <rguenther@suse.de>
6468
6469         PR middle-end/60092
6470         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
6471         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
6472         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
6473         Handle BUILT_IN_POSIX_MEMALIGN.
6474         (find_func_clobbers): Likewise.
6475         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
6476         (call_may_clobber_ref_p_1): Likewise.
6477
6478 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
6479
6480         PR ipa/59918
6481         * ipa-devirt.c (record_target_from_binfo): Remove overactive
6482         sanity check.
6483
6484 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
6485
6486         PR ipa/59469
6487         * lto-cgraph.c (lto_output_node): Use
6488         symtab_get_symbol_partitioning_class.
6489         (lto_output_varpool_node): likewise.
6490         (symtab_get_symbol_partitioning_class): Move here from
6491         lto/lto-partition.c
6492         * cgraph.h (symbol_partitioning_class): Likewise.
6493         (symtab_get_symbol_partitioning_class): Declare.
6494
6495 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
6496
6497         * ggc.h (ggc_internal_cleared_alloc): New macro.
6498         * vec.h (vec_safe_copy): Handle memory stats.
6499         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
6500         * target-globals.c (save_target_globals): Likewise.
6501
6502 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
6503
6504         PR target/60077
6505         * expr.c (emit_move_resolve_push): Export; be bit more selective
6506         on when to clear alias set.
6507         * expr.h (emit_move_resolve_push): Declare.
6508         * function.h (struct function): Add tail_call_marked.
6509         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
6510         * config/i386/i386-protos.h (ix86_expand_push): Remove.
6511         * config/i386/i386.md (TImode move expander): De not call
6512         ix86_expand_push.
6513         (FP push expanders): Preserve memory attributes.
6514         * config/i386/sse.md (push<mode>1): Remove.
6515         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
6516         (ix86_expand_push): Remove.
6517         * config/i386/mmx.md (push<mode>1): Remove.
6518
6519 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
6520
6521         PR rtl-optimization/60030
6522         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
6523         lopart with paradoxical subreg before shifting it up by hprec.
6524
6525 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6526
6527         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
6528         Remove extra newline at end of file.
6529         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
6530         (arm_issue_rate): Handle cortexa57.
6531         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
6532         (cortex-a57.cortex-a53): Likewise.
6533
6534 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
6535
6536         PR target/59575
6537         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
6538         don't record in REG_FRAME_RELATED_EXPR registers not set in that
6539         bitmask.
6540         (arm_expand_prologue): Adjust all callers.
6541         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
6542         info, registers also at the lowest numbered registers side.  Use
6543         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
6544         XEXP.
6545
6546         PR debug/59992
6547         * var-tracking.c (adjust_mems): Before adding a SET to
6548         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
6549
6550 2014-02-06  Alan Modra  <amodra@gmail.com>
6551
6552         PR target/60032
6553         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
6554         change SDmode to DDmode when lra_in_progress.
6555
6556 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
6557
6558         PR middle-end/59150
6559         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
6560         free_data_ref on the dr first, and before goto again also set dr
6561         to the next dr.  For simd_lane_access, free old datarefs[i] before
6562         overwriting it.  For get_vectype_for_scalar_type failure, don't
6563         free_data_ref if simd_lane_access.
6564
6565         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
6566
6567         PR target/60062
6568         * tree.h (opts_for_fn): New inline function.
6569         (opt_for_fn): Define.
6570         * config/i386/i386.c (ix86_function_regparm): Use
6571         opt_for_fn (decl, optimize) instead of optimize.
6572
6573 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6574
6575         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
6576         for SYMBOL_REF in large memory model.
6577
6578 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6579
6580         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
6581         and crypto support.
6582         (cortex-a57): Likewise.
6583         (cortex-a57.cortex-a53): Likewise.
6584
6585 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
6586             Kugan Vivekanandarajah  <kuganv@linaro.org>
6587
6588         * config/arm/arm.c (arm_vector_alignment_reachable): Check
6589         unaligned_access.
6590         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
6591
6592 2014-02-06  Richard Biener  <rguenther@suse.de>
6593
6594         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
6595         set_loop_copy and initialize_original_copy_tables.
6596
6597 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
6598
6599         * config/aarch64/aarch64-simd.md
6600         (aarch64_ashr_simddi): Change QI to SI.
6601
6602 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
6603             Jakub Jelinek  <jakub@redhat.com>
6604
6605         PR middle-end/60013
6606         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
6607         of the dataflow.
6608
6609 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6610
6611         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
6612         CODE_FOR_altivec_vpku[hw]um to
6613         CODE_FOR_altivec_vpku[hw]um_direct.
6614         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
6615         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
6616         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
6617         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
6618
6619 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6620
6621         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
6622         generation for -maltivec=be.
6623         (altivec_vsumsws): Simplify redundant test.
6624
6625 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6626
6627         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
6628         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
6629         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
6630         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
6631         gen_altivec_vpkuwum.
6632         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
6633         BYTES_BIG_ENDIAN.
6634         (altivec_vpks<VI_char>ss): Likewise.
6635         (altivec_vpks<VI_char>us): Likewise.
6636         (altivec_vpku<VI_char>us): Likewise.
6637         (altivec_vpku<VI_char>um): Likewise.
6638         (altivec_vpku<VI_char>um_direct): New (copy of
6639         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
6640         internal use).
6641         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
6642         target is little endian and -maltivec=be is not specified.
6643         (*altivec_vupkhs<VU_char>_direct): New (copy of
6644         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
6645         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
6646         target is little endian and -maltivec=be is not specified.
6647         (*altivec_vupkls<VU_char>_direct): New (copy of
6648         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
6649         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
6650         little endian and -maltivec=be is not specified.
6651         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
6652         little endian and -maltivec=be is not specified.
6653
6654 2014-02-05  Richard Henderson  <rth@redhat.com>
6655
6656         PR debug/52727
6657         * combine-stack-adj.c: Revert r206943.
6658         * sched-int.h (struct deps_desc): Add last_args_size.
6659         * sched-deps.c (init_deps): Initialize it.
6660         (sched_analyze_insn): Add OUTPUT dependencies between insns that
6661         contain REG_ARGS_SIZE notes.
6662
6663 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
6664
6665         * lto-cgraph.c (asm_nodes_output): Make global.
6666         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
6667         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
6668         (driver_handle_option): Handle OPT_fwpa.
6669
6670 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
6671
6672         PR ipa/59947
6673         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
6674         a comment typo and formatting issue.  If odr_hash hasn't been
6675         created, return vNULL and set *completep to false.
6676
6677         PR middle-end/57499
6678         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
6679         bb with no successors.
6680
6681 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
6682
6683         PR target/59718
6684         * doc/invoke.texi (-march): Clarify documentation for ARM.
6685         (-mtune): Likewise.
6686         (-mcpu): Likewise.
6687
6688 2014-02-05  Richard Biener  <rguenther@suse.de>
6689
6690         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
6691         when not vectorizing because of too many alias checks.
6692         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
6693         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
6694
6695 2014-02-05  Nick Clifton  <nickc@redhat.com>
6696
6697         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
6698         accept extended registers in any mode when compiling for the MN10300.
6699
6700 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
6701
6702         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
6703         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
6704         sanitization attributes.
6705         (can_inline_edge_p): Likewise.
6706         (sanitize_attrs_match_for_inline_p): New function.
6707
6708 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
6709
6710         * ipa-prop.c (detect_type_change): Shor circuit testing of
6711         type changes on THIS pointer.
6712
6713 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
6714
6715         PR target/59777
6716         * config/pa/pa.c (legitimize_tls_address): Return original address
6717         if not passed a SYMBOL_REF rtx.
6718         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
6719         addresses.
6720         (pa_emit_move_sequence): Simplify TLS source operands.
6721         (pa_legitimate_constant_p): Reject all TLS constants.
6722         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
6723         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
6724
6725 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
6726
6727         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
6728         groups when we know they are controlled by LTO.
6729         * varasm.c (default_binds_local_p_1): If object is in other partition,
6730         it will be resolved locally.
6731
6732 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6733
6734         * config/host-linux.c (linux_gt_pch_use_address): Don't
6735         use SSIZE_MAX because it is not always defined.
6736
6737 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
6738
6739         PR bootstrap/59913
6740         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
6741         threshold for pseudo splitting.
6742         (update_ebb_live_info): Process call argument hard registers and
6743         hard registers from insn definition too.
6744         (max_small_class_regs_num): New constant.
6745         (inherit_in_ebb): Update live hard regs through EBBs.  Update
6746         reloads_num only for small register classes.  Don't split for
6747         outputs of jumps.
6748
6749 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
6750
6751         PR ipa/60058
6752         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
6753         is non-null.
6754
6755 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
6756
6757         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
6758         visibility is safe.
6759
6760 2014-02-04  Marek Polacek  <polacek@redhat.com>
6761
6762         * gdbinit.in (pel): Define.
6763
6764 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6765
6766         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
6767         behavior.
6768
6769 2014-02-04  Richard Biener  <rguenther@suse.de>
6770
6771         PR lto/59723
6772         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
6773         in function context local.
6774         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
6775         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
6776         similar to LTO_imported_decl_ref.
6777
6778 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
6779
6780         PR tree-optimization/60002
6781         * cgraphclones.c (build_function_decl_skip_args): Clear
6782         DECL_LANG_SPECIFIC.
6783
6784         PR tree-optimization/60023
6785         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
6786         false to gsi_replace.
6787         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
6788         has been in some EH region and vec_stmt could throw, add
6789         vec_stmt into the same EH region.
6790         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
6791         has no lhs, ignore it.
6792         * internal-fn.c (expand_MASK_LOAD): Likewise.
6793
6794         PR ipa/60026
6795         * tree-inline.c (copy_forbidden): Fail for
6796         __attribute__((optimize (0))) functions.
6797
6798         PR other/58712
6799         * omp-low.c (simd_clone_struct_copy): If from->inbranch
6800         is set, copy one less argument.
6801         (expand_simd_clones): Don't subtract clone_info->inbranch
6802         from simd_clone_struct_alloc argument.
6803
6804         PR rtl-optimization/57915
6805         * recog.c (simplify_while_replacing): If all unary/binary/relational
6806         operation arguments are constant, attempt to simplify those.
6807
6808         PR middle-end/59261
6809         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
6810         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
6811
6812 2014-02-04  Richard Biener  <rguenther@suse.de>
6813
6814         PR tree-optimization/60012
6815         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
6816         TBAA disambiguation to all DDRs.
6817
6818 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6819
6820         PR target/59788
6821         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
6822         (LINK_SPEC): Use it for -shared, -shared-libgcc.
6823
6824 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
6825
6826         PR ipa/59882
6827         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
6828
6829 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
6830
6831         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
6832         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
6833
6834 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
6835
6836         PR ipa/59831
6837         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
6838         to figure out targets of polymorphic calls with known decl.
6839         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
6840         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
6841         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
6842         (get_polymorphic_call_info): ... here.
6843         (get_polymorphic_call_info_from_invariant): New function.
6844
6845 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
6846
6847         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
6848         lookup via vtable pointer; check for type consistency
6849         and turn inconsitent facts into UNREACHABLE.
6850         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
6851         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
6852         type inconsistent querries; return UNREACHABLE instead.
6853
6854 2014-02-03  Richard Henderson  <rth@twiddle.net>
6855
6856         PR tree-opt/59924
6857         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
6858         already processed this node.
6859         (normalize_one_pred_1): Pass along mark_set.
6860         (normalize_one_pred): Create and destroy a pointer_set_t.
6861         (normalize_one_pred_chain): Likewise.
6862
6863 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
6864
6865         PR gcov-profile/58602
6866         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
6867
6868 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
6869
6870         PR ipa/59831
6871         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
6872         -fno-devirtualize; try to devirtualize by the knowledge of
6873         virtual table pointer given by aggregate propagation.
6874         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
6875         (ipa_print_node_jump_functions): Dump also offset that
6876         is relevant for polymorphic calls.
6877         (determine_known_aggregate_parts): Add arg_type parameter; use it
6878         instead of determining the type from pointer type.
6879         (ipa_compute_jump_functions_for_edge): Update call of
6880         determine_known_aggregate_parts.
6881         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
6882         (gimple_get_virt_method_for_binfo): ... here; simplify using
6883         vtable_pointer_value_to_vtable.
6884         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
6885         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
6886         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
6887         (vtable_pointer_value_to_vtable): Break out from ...; handle also
6888         POINTER_PLUS_EXPR.
6889         (vtable_pointer_value_to_binfo): ... here.
6890         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
6891
6892 2014-02-03  Teresa Johnson  <tejohnson@google.com>
6893
6894         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
6895         redef of outer loop index variable.
6896
6897 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
6898
6899         PR c++/53017
6900         PR c++/59211
6901         * doc/extend.texi (Function Attributes): Typo.
6902
6903 2014-02-03  Cong Hou  <congh@google.com>
6904
6905         PR tree-optimization/60000
6906         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
6907         if the vectorized statement is a store.  A store statement can only
6908         appear at the end of pattern statements.
6909
6910 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
6911
6912         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
6913         (ix86_option_override_internal): Default long double to 64-bit for
6914         32-bit Bionic and to 128-bit for 64-bit Bionic.
6915
6916         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
6917         TARGET_LONG_DOUBLE_128 is true.
6918         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
6919
6920         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
6921         (mlong-double-64): Negate -mlong-double-128.
6922         (mlong-double-128): New option.
6923
6924         * config/i386/i386-c.c (ix86_target_macros): Define
6925         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
6926
6927         * doc/invoke.texi: Document -mlong-double-128.
6928
6929 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
6930
6931         PR rtl-optimization/60024
6932         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
6933
6934 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
6935
6936         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
6937
6938 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
6939
6940         PR rtl-optimization/57662
6941         * sel-sched.c (code_motion_path_driver): Do not mark already not
6942         existing blocks in the visiting bitmap.
6943
6944 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
6945
6946         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
6947         on the insn being emitted.
6948
6949 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
6950             Will Deacon  <will.deacon@arm.com>
6951
6952         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
6953
6954 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6955
6956         * config/arm/arm-tables.opt: Regenerate.
6957
6958 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6959
6960         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
6961         for vector types other than V16QImode.
6962         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
6963         define_expand, and call altivec_expand_vec_perm_le when producing
6964         code with little endian element order.
6965         (*altivec_vperm_<mode>_internal): New insn having previous
6966         behavior of altivec_vperm_<mode>.
6967         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
6968         altivec_expand_vec_perm_le when producing code with little endian
6969         element order.
6970         (*altivec_vperm_<mode>_uns_internal): New insn having previous
6971         behavior of altivec_vperm_<mode>_uns.
6972
6973 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6974
6975         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
6976         (altivec_vsumsws): Add handling for -maltivec=be with a little
6977         endian target.
6978         (altivec_vsumsws_direct): New.
6979         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
6980         gen_altivec_vsumsws.
6981
6982 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
6983
6984         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
6985         vtable_pointer_value_to_binfo): New functions.
6986         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
6987         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
6988
6989 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
6990
6991         * config/nios2/nios2.md (load_got_register): Initialize GOT
6992         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
6993         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
6994
6995 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
6996
6997         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
6998         preserverd by passthrough, do not propagate the type.
6999
7000 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
7001
7002         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
7003         (mips_atomic_assign_expand_fenv): New function.
7004         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
7005
7006 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
7007
7008         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
7009         (__builtin_mips_set_fcsr): Likewise.
7010         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
7011         MIPS_USI_FTYPE_VOID.
7012         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
7013         (mips16_expand_set_fcsr): Likewise.
7014         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
7015         (mips16_set_fcsr_stub): Likewise.
7016         (mips16_get_fcsr_one_only_stub): New class.
7017         (mips16_set_fcsr_one_only_stub): Likewise.
7018         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
7019         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
7020         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
7021         (hard_float): New availability predicate.
7022         (mips_builtins): Add get_fcsr and set_fcsr.
7023         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
7024         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
7025         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
7026         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
7027         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
7028         patterns.
7029
7030 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
7031
7032         * config/mips/mips.c (mips_one_only_stub): New class.
7033         (mips_need_mips16_rdhwr_p): Replace with...
7034         (mips16_rdhwr_stub): ...this new variable.
7035         (mips16_stub_call_address): New function.
7036         (mips16_rdhwr_one_only_stub): New class.
7037         (mips_expand_thread_pointer): Use mips16_stub_call_address.
7038         (mips_output_mips16_rdhwr): Delete.
7039         (mips_finish_stub): New function.
7040         (mips_code_end): Use it to handle rdhwr stubs.
7041
7042 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
7043
7044         PR target/60017
7045         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
7046         when calculating size of integer atomic types.
7047
7048 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
7049
7050         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
7051
7052 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
7053
7054         PR tree-optimization/60003
7055         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
7056         * profile.c (branch_prob): Use gimple_call_builtin_p
7057         to check for BUILT_IN_SETJMP_RECEIVER.
7058         * tree-inline.c (copy_bb): Call notice_special_calls.
7059
7060 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
7061
7062         PR bootstrap/59985
7063         * lra-constraints.c (process_alt_operands): Update reload_sum only
7064         on the first pass.
7065
7066 2014-01-31  Richard Henderson  <rth@redhat.com>
7067
7068         PR middle-end/60004
7069         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
7070         until after else_eh is processed.
7071
7072 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
7073
7074         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
7075         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
7076         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
7077         in smmintrin.h, remove them.
7078         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
7079         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
7080         * config/i386/i386.md (ROUND_SAE): Fix value.
7081         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
7082         (const48_operand): New.
7083         * config/i386/subst.md (round), (round_expand): Use
7084         const_4_or_8_to_11_operand.
7085         (round_saeonly), (round_saeonly_expand): Use const48_operand.
7086
7087 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
7088
7089         * config/i386/constraints.md (Yk): Swap meaning with k.
7090         * config/i386/i386.md (movhi_internal): Change Yk to k.
7091         (movqi_internal): Ditto.
7092         (*k<logic><mode>): Ditto.
7093         (*andhi_1): Ditto.
7094         (*andqi_1): Ditto.
7095         (kandn<mode>): Ditto.
7096         (*<code>hi_1): Ditto.
7097         (*<code>qi_1): Ditto.
7098         (kxnor<mode>): Ditto.
7099         (kortestzhi): Ditto.
7100         (kortestchi): Ditto.
7101         (kunpckhi): Ditto.
7102         (*one_cmplhi2_1): Ditto.
7103         (*one_cmplqi2_1): Ditto.
7104         * config/i386/sse.md (): Change k to Yk.
7105         (avx512f_load<mode>_mask): Ditto.
7106         (avx512f_blendm<mode>): Ditto.
7107         (avx512f_store<mode>_mask): Ditto.
7108         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
7109         (avx512f_storedqu<mode>_mask): Ditto.
7110         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
7111         Ditto.
7112         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
7113         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
7114         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
7115         (avx512f_maskcmp<mode>3): Ditto.
7116         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
7117         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
7118         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
7119         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
7120         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
7121         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
7122         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
7123         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
7124         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
7125         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
7126         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
7127         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
7128         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
7129         (vec_extract_lo_<mode>_maskm): Ditto.
7130         (vec_extract_hi_<mode>_maskm): Ditto.
7131         (avx512f_vternlog<mode>_mask): Ditto.
7132         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
7133         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
7134         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
7135         (avx512f_<code>v8div16qi2_mask): Ditto.
7136         (avx512f_<code>v8div16qi2_mask_store): Ditto.
7137         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
7138         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
7139         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
7140         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
7141         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
7142         (*avx512pf_gatherpf<mode>df_mask): Ditto.
7143         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
7144         (*avx512pf_scatterpf<mode>df_mask): Ditto.
7145         (avx512cd_maskb_vec_dupv8di): Ditto.
7146         (avx512cd_maskw_vec_dupv16si): Ditto.
7147         (avx512f_vpermi2var<mode>3_maskz): Ditto.
7148         (avx512f_vpermi2var<mode>3_mask): Ditto.
7149         (avx512f_vpermi2var<mode>3_mask): Ditto.
7150         (avx512f_vpermt2var<mode>3_maskz): Ditto.
7151         (*avx512f_gathersi<mode>): Ditto.
7152         (*avx512f_gathersi<mode>_2): Ditto.
7153         (*avx512f_gatherdi<mode>): Ditto.
7154         (*avx512f_gatherdi<mode>_2): Ditto.
7155         (*avx512f_scattersi<mode>): Ditto.
7156         (*avx512f_scatterdi<mode>): Ditto.
7157         (avx512f_compress<mode>_mask): Ditto.
7158         (avx512f_compressstore<mode>_mask): Ditto.
7159         (avx512f_expand<mode>_mask): Ditto.
7160         * config/i386/subst.md (mask): Change k to Yk.
7161         (mask_scalar_merge): Ditto.
7162         (sd): Ditto.
7163
7164 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
7165
7166         * doc/extend.texi (Vector Extensions): Document ?: in C++.
7167
7168 2014-01-31  Richard Biener  <rguenther@suse.de>
7169
7170         PR middle-end/59990
7171         * builtins.c (fold_builtin_memory_op): Make sure to not
7172         use a floating-point mode or a boolean or enumeral type for
7173         the copy operation.
7174
7175 2014-01-30  DJ Delorie  <dj@redhat.com>
7176
7177         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
7178         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
7179         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
7180         whenever main() has an epilogue.
7181
7182 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7183
7184         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
7185         unused variable "field".
7186         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
7187         (vsx_mergeh_<mode>): Likewise.
7188         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
7189         (altivec_vmrghh): Likewise.
7190         (altivec_vmrghw): Likewise.
7191         (altivec_vmrglb): Likewise.
7192         (altivec_vmrglh): Likewise.
7193         (altivec_vmrglw): Likewise.
7194         (altivec_vspltb): Add missing uses.
7195         (altivec_vsplth): Likewise.
7196         (altivec_vspltw): Likewise.
7197         (altivec_vspltsf): Likewise.
7198
7199 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
7200
7201         PR target/59923
7202         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
7203         frame related instructions.
7204
7205 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
7206
7207         PR rtl-optimization/59959
7208         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
7209         any reload of register whose subreg is invalid.
7210
7211 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
7212
7213         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
7214         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
7215         Add missing return type - void.
7216
7217 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7218
7219         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
7220         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
7221         remove element index adjustment for endian (now handled in vsx.md
7222         and altivec.md).
7223         (altivec_expand_vec_perm_const): Use
7224         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
7225         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
7226         (vsx_xxspltw_<mode>): Adjust element index for little endian.
7227         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
7228         define_expand and a new define_insn *altivec_vspltb_internal;
7229         adjust for -maltivec=be on a little endian target.
7230         (altivec_vspltb_direct): New.
7231         (altivec_vsplth): Divide into a define_expand and a new
7232         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
7233         little endian target.
7234         (altivec_vsplth_direct): New.
7235         (altivec_vspltw): Divide into a define_expand and a new
7236         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
7237         little endian target.
7238         (altivec_vspltw_direct): New.
7239         (altivec_vspltsf): Divide into a define_expand and a new
7240         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
7241         a little endian target.
7242
7243 2014-01-30  Richard Biener  <rguenther@suse.de>
7244
7245         PR tree-optimization/59993
7246         * tree-ssa-forwprop.c (associate_pointerplus): Check we
7247         can propagate form the earlier stmt and avoid the transform
7248         when the intermediate result is needed.
7249
7250 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
7251
7252         * README.Portability: Fix typo.
7253
7254 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
7255
7256         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
7257         comparison_operator with ordered_comparison_operator.
7258
7259 2014-01-30  Nick Clifton  <nickc@redhat.com>
7260
7261         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
7262         Rename to mn10300_store_multiple_regs.
7263         * config/mn10300/mn10300.c: Likewise.
7264         * config/mn10300/mn10300.md (store_movm): Fix typo: call
7265         store_multiple_regs.
7266         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
7267         Call mn10300_store_multiple_regs.
7268
7269 2014-01-30  Nick Clifton  <nickc@redhat.com>
7270             DJ Delorie  <dj@redhat.com>
7271
7272         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
7273         %fp 2 to keep registers after it properly word-aligned.
7274         (rl78_alloc_physical_registers_umul): Handle the case where both
7275         input operands are the same.
7276
7277 2014-01-30  Richard Biener  <rguenther@suse.de>
7278
7279         PR tree-optimization/59903
7280         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
7281         check properly.
7282
7283 2014-01-30  Jason Merrill  <jason@redhat.com>
7284
7285         PR c++/59633
7286         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
7287
7288         PR c++/59645
7289         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
7290
7291 2014-01-30  Richard Biener  <rguenther@suse.de>
7292
7293         PR tree-optimization/59951
7294         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
7295
7296 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
7297
7298         PR target/59784
7299         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
7300         SFmode to DFmode case.
7301
7302 2014-01-29  DJ Delorie  <dj@redhat.com>
7303
7304         * config/msp430/msp430.opt (-minrt): New.
7305         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
7306         if -minrt given.
7307         (ENDFILE_SPEC): Likewise.
7308
7309 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
7310
7311         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
7312         (estimate_function_body_sizes): Use it.
7313
7314 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
7315
7316         PR c++/58561
7317         * dwarf2out.c (is_cxx_auto): New.
7318         (is_base_type): Use it.
7319         (gen_type_die_with_usage): Likewise.
7320
7321 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7322
7323         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
7324         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
7325         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
7326         -maltivec=be with LE targets.
7327         (vsx_mergeh_<mode>): Likewise.
7328         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
7329         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
7330         (altivec_vmrghb): Replace with define_expand and new
7331         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
7332         (altivec_vmrghb_direct): New define_insn.
7333         (altivec_vmrghh): Replace with define_expand and new
7334         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
7335         (altivec_vmrghh_direct): New define_insn.
7336         (altivec_vmrghw): Replace with define_expand and new
7337         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
7338         (altivec_vmrghw_direct): New define_insn.
7339         (*altivec_vmrghsf): Adjust for endianness.
7340         (altivec_vmrglb): Replace with define_expand and new
7341         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
7342         (altivec_vmrglb_direct): New define_insn.
7343         (altivec_vmrglh): Replace with define_expand and new
7344         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
7345         (altivec_vmrglh_direct): New define_insn.
7346         (altivec_vmrglw): Replace with define_expand and new
7347         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
7348         (altivec_vmrglw_direct): New define_insn.
7349         (*altivec_vmrglsf): Adjust for endianness.
7350         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
7351         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
7352         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
7353         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
7354         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
7355         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
7356         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
7357         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
7358
7359 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
7360
7361         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
7362         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
7363         whitespace.
7364
7365 2014-01-29  Richard Biener  <rguenther@suse.de>
7366
7367         PR tree-optimization/58742
7368         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
7369         associate_pointerplus_align.
7370         (associate_pointerplus_diff): New function.
7371         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
7372         and associate_pointerplus_diff.
7373
7374 2014-01-29  Richard Biener  <rguenther@suse.de>
7375
7376         * lto-streamer.h (LTO_major_version): Bump to 3.
7377         (LTO_minor_version): Reset to 0.
7378
7379 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
7380
7381         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
7382         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
7383         (arm_file_start): Generate correct asm header for armv7ve.
7384         * config/arm/bpabi.h: Add multilib support for armv7ve.
7385         * config/arm/driver-arm.c: Change the architectures of cortex-a7
7386         and cortex-a15 to armv7ve.
7387         * config/arm/t-aprofile: Add multilib support for armv7ve.
7388         * doc/invoke.texi: Document -march=armv7ve.
7389
7390 2014-01-29  Richard Biener  <rguenther@suse.de>
7391
7392         PR tree-optimization/58742
7393         * tree-ssa-forwprop.c (associate_plusminus): Return true
7394         if we changed sth, defer EH cleanup to ...
7395         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
7396         (simplify_mult): New function.
7397
7398 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
7399
7400         PR middle-end/59917
7401         PR tree-optimization/59920
7402         * tree.c (build_common_builtin_nodes): Remove
7403         __builtin_setjmp_dispatcher initialization.
7404         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
7405         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
7406         instead of gsi_after_labels + manually skipping debug stmts.
7407         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
7408         ignore bbs with IFN_ABNORMAL_DISPATCHER.
7409         * tree-inline.c (copy_edges_for_bb): Remove
7410         can_make_abnormal_goto argument, instead add abnormal_goto_dest
7411         argument.  Ignore computed_goto_p stmts.  Don't call
7412         make_abnormal_goto_edges.  If a call might need abnormal edges
7413         for non-local gotos, see if it already has an edge to
7414         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
7415         with true argument, don't do anything then, otherwise add
7416         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
7417         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
7418         caller.
7419         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
7420         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
7421         (lower_stmt): Don't set data->calls_builtin_setjmp.
7422         (lower_builtin_setjmp): Adjust comment.
7423         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
7424         * tree-cfg.c (found_computed_goto): Remove.
7425         (factor_computed_gotos): Remove.
7426         (make_goto_expr_edges): Return bool, true for computed gotos.
7427         Don't call make_abnormal_goto_edges.
7428         (build_gimple_cfg): Don't set found_computed_goto, don't call
7429         factor_computed_gotos.
7430         (computed_goto_p): No longer static.
7431         (make_blocks): Don't set found_computed_goto.
7432         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
7433         (make_edges): If make_goto_expr_edges returns true, push bb
7434         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
7435         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
7436         vector.  Record mapping between bbs and OpenMP regions if there
7437         are any, adjust make_gimple_omp_edges caller.  Call
7438         handle_abnormal_edges.
7439         (make_abnormal_goto_edges): Remove.
7440         * tree-cfg.h (make_abnormal_goto_edges): Remove.
7441         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
7442         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
7443         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
7444         * internal-fn.def (ABNORMAL_DISPATCHER): New.
7445         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
7446         filling *region also set *region_idx to (*region)->entry->index.
7447
7448         PR other/58712
7449         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
7450         For REGs set ORIGINAL_REGNO.
7451
7452 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
7453
7454         * doc/md.texi: Mention that a target shouldn't implement
7455         vec_widen_(s|u)mul_even/odd pair if it is less efficient
7456         than hi/lo pair.
7457
7458 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
7459
7460         PR tree-optimization/59594
7461         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
7462         a copy of the datarefs vector rather than the vector itself.
7463
7464 2014-01-28  Jason Merrill  <jason@redhat.com>
7465
7466         PR c++/53756
7467         * dwarf2out.c (auto_die): New static.
7468         (gen_type_die_with_usage): Handle C++1y 'auto'.
7469         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
7470         on definition.
7471
7472 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
7473
7474         PR target/59672
7475         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
7476         (SPEC_X32): Likewise.
7477         (SPEC_64): Likewise.
7478         * config/i386/i386.c (ix86_option_override_internal): Turn off
7479         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
7480         for TARGET_16BIT.
7481         (x86_file_start): Output .code16gcc for TARGET_16BIT.
7482         * config/i386/i386.h (TARGET_16BIT): New macro.
7483         (TARGET_16BIT_P): Likewise.
7484         * config/i386/i386.opt: Add m16.
7485         * doc/invoke.texi: Document -m16.
7486
7487 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
7488
7489         PR preprocessor/59935
7490         * input.c (location_get_source_line): Bail out on when line number
7491         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
7492
7493 2014-01-28  Richard Biener  <rguenther@suse.de>
7494
7495         PR tree-optimization/58742
7496         * tree-ssa-forwprop.c (associate_plusminus): Handle
7497         pointer subtraction of the form (T)(P + A) - (T)P.
7498
7499 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7500
7501         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
7502         at const_int_cost.
7503
7504 2014-01-28  Richard Biener  <rguenther@suse.de>
7505
7506         Revert
7507         2014-01-28  Richard Biener  <rguenther@suse.de>
7508
7509         PR rtl-optimization/45364
7510         PR rtl-optimization/59890
7511         * var-tracking.c (local_get_addr_clear_given_value): Handle
7512         already cleared slot.
7513         (val_reset): Handle not allocated local_get_addr_cache.
7514         (vt_find_locations): Use post-order on the inverted CFG.
7515
7516 2014-01-28  Richard Biener  <rguenther@suse.de>
7517
7518         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
7519
7520 2014-01-28  Richard Biener  <rguenther@suse.de>
7521
7522         PR rtl-optimization/45364
7523         PR rtl-optimization/59890
7524         * var-tracking.c (local_get_addr_clear_given_value): Handle
7525         already cleared slot.
7526         (val_reset): Handle not allocated local_get_addr_cache.
7527         (vt_find_locations): Use post-order on the inverted CFG.
7528
7529 2014-01-28  Alan Modra  <amodra@gmail.com>
7530
7531         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
7532         * configure.ac <recursive call for build != host>: Define
7533         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
7534         and LD_FOR_BUILD too.
7535         * configure: Regenerate.
7536
7537 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
7538
7539         * config/i386/i386.c (get_builtin_code_for_version): Separate
7540         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
7541         Broadwell from Haswell.
7542
7543 2014-01-27  Steve Ellcey  <sellcey@mips.com>
7544
7545         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
7546         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
7547         * config/mips/mips.c (mips_option_override): Change setting
7548         of TARGET_DSP.
7549         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
7550         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
7551         Change from Mask to Var.
7552
7553 2014-01-27  Jeff Law  <law@redhat.com>
7554
7555         * ipa-inline.c (inline_small_functions): Fix typo.
7556
7557 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
7558
7559         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
7560         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
7561         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
7562         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
7563         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
7564         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
7565         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
7566         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
7567         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
7568         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
7569         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
7570         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
7571         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
7572         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
7573         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
7574         (_mm512_storeu_epi64): Ditto.
7575         (_mm512_cmpge_epi32_mask): Ditto.
7576         (_mm512_cmpge_epu32_mask): Ditto.
7577         (_mm512_cmpge_epi64_mask): Ditto.
7578         (_mm512_cmpge_epu64_mask): Ditto.
7579         (_mm512_cmple_epi32_mask): Ditto.
7580         (_mm512_cmple_epu32_mask): Ditto.
7581         (_mm512_cmple_epi64_mask): Ditto.
7582         (_mm512_cmple_epu64_mask): Ditto.
7583         (_mm512_cmplt_epi32_mask): Ditto.
7584         (_mm512_cmplt_epu32_mask): Ditto.
7585         (_mm512_cmplt_epi64_mask): Ditto.
7586         (_mm512_cmplt_epu64_mask): Ditto.
7587         (_mm512_cmpneq_epi32_mask): Ditto.
7588         (_mm512_cmpneq_epu32_mask): Ditto.
7589         (_mm512_cmpneq_epi64_mask): Ditto.
7590         (_mm512_cmpneq_epu64_mask): Ditto.
7591         (_mm512_expand_pd): Ditto.
7592         (_mm512_expand_ps): Ditto.
7593         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
7594         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
7595         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
7596         * config/i386/i386.c (ix86_builtins): Add
7597         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
7598         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
7599         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
7600         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
7601         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
7602         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
7603         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
7604         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
7605         IX86_BUILTIN_PMOVUSQW512_MEM.
7606         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
7607         __builtin_ia32_pmovsqd512mem_mask,
7608         __builtin_ia32_pmovqd512mem_mask,
7609         __builtin_ia32_pmovusqw512mem_mask,
7610         __builtin_ia32_pmovsqw512mem_mask,
7611         __builtin_ia32_pmovqw512mem_mask,
7612         __builtin_ia32_pmovusdw512mem_mask,
7613         __builtin_ia32_pmovsdw512mem_mask,
7614         __builtin_ia32_pmovdw512mem_mask,
7615         __builtin_ia32_pmovqb512mem_mask,
7616         __builtin_ia32_pmovusqb512mem_mask,
7617         __builtin_ia32_pmovsqb512mem_mask,
7618         __builtin_ia32_pmovusdb512mem_mask,
7619         __builtin_ia32_pmovsdb512mem_mask,
7620         __builtin_ia32_pmovdb512mem_mask.
7621         (bdesc_args): Add __builtin_ia32_expanddf512,
7622         __builtin_ia32_expandsf512.
7623         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
7624         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
7625         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
7626         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
7627         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
7628         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
7629         (avx512f_<code>v8div16qi2_mask_store): This.
7630         (avx512f_expand<mode>): New.
7631
7632 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
7633
7634         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
7635         New.
7636         (_mm512_mask_prefetch_i64gather_pd): Ditto.
7637         (_mm512_prefetch_i32scatter_pd): Ditto.
7638         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
7639         (_mm512_prefetch_i64scatter_pd): Ditto.
7640         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
7641         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
7642         (_mm512_mask_prefetch_i64gather_ps): Ditto.
7643         (_mm512_prefetch_i32scatter_ps): Ditto.
7644         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
7645         (_mm512_prefetch_i64scatter_ps): Ditto.
7646         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
7647         * config/i386/i386-builtin-types.def: Define
7648         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
7649         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
7650         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
7651         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
7652         IX86_BUILTIN_SCATTERPFQPD.
7653         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
7654         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
7655         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
7656         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
7657         __builtin_ia32_scatterpfqps.
7658         (ix86_expand_builtin): Expand new built-ins.
7659         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
7660         fix memory access data type.
7661         (*avx512pf_gatherpf<mode>_mask): Ditto.
7662         (*avx512pf_gatherpf<mode>): Ditto.
7663         (avx512pf_scatterpf<mode>): Ditto.
7664         (*avx512pf_scatterpf<mode>_mask): Ditto.
7665         (*avx512pf_scatterpf<mode>): Ditto.
7666         (GATHER_SCATTER_SF_MEM_MODE): New.
7667         (avx512pf_gatherpf<mode>df): Ditto.
7668         (*avx512pf_gatherpf<mode>df_mask): Ditto.
7669         (*avx512pf_scatterpf<mode>df): Ditto.
7670
7671 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
7672
7673         PR bootstrap/59934
7674         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
7675         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
7676         reached.
7677
7678 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
7679
7680         * common/config/arm/arm-common.c
7681         (arm_rewrite_mcpu): Handle multiple names.
7682         * config/arm/arm.h
7683         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
7684
7685 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
7686
7687         * gimple-builder.h (create_gimple_tmp): Delete.
7688
7689 2014-01-27  Christian Bruel  <christian.bruel@st.com>
7690
7691         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
7692         words comparisons.
7693
7694 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
7695
7696         * config/pa/pa.md (call): Generate indirect long calls to non-local
7697         functions when outputing 32-bit code.
7698         (call_value): Likewise except for special call to buggy powf function.
7699
7700         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
7701         portable runtime and PIC indirect calls.
7702         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
7703         and PIC call sequences.  Use ldo instead of blr to set return register
7704         in PIC call sequence.
7705
7706 2014-01-25  Walter Lee  <walt@tilera.com>
7707
7708         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
7709         avoid clobbering a live register.
7710
7711 2014-01-25  Walter Lee  <walt@tilera.com>
7712
7713         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
7714         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
7715         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
7716         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
7717
7718 2014-01-25  Walter Lee  <walt@tilera.com>
7719
7720         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
7721         arguments on even registers.
7722         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
7723         STACK_BOUNDARY.
7724         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
7725         (BIGGEST_ALIGNMENT): Ditto.
7726         (BIGGEST_FIELD_ALIGNMENT): Ditto.
7727
7728 2014-01-25  Walter Lee  <walt@tilera.com>
7729
7730         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
7731         insns before bundling.
7732         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
7733
7734 2014-01-25  Walter Lee  <walt@tilera.com>
7735
7736         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
7737         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
7738         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
7739
7740 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
7741
7742         * config/mips/constraints.md (kl): Delete.
7743         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
7744         define expands, using...
7745         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
7746         instructions for MIPS16.
7747         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
7748         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
7749
7750 2014-01-25  Walter Lee  <walt@tilera.com>
7751
7752         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
7753         (clzdi2): Ditto.
7754         (ffsdi2): Ditto.
7755
7756 2014-01-25  Walter Lee  <walt@tilera.com>
7757
7758         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
7759         (TARGET_EXPAND_TO_RTL_HOOK): Define.
7760
7761 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
7762
7763         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
7764         Handle XOR.
7765
7766 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
7767
7768         * print-rtl.c (in_call_function_usage): New var.
7769         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
7770         EXPR_LIST mode as mode and not as reg note name.
7771
7772         PR middle-end/59561
7773         * cfgloopmanip.c (copy_loop_info): If
7774         loop->warned_aggressive_loop_optimizations, make sure
7775         the flag is set in target loop too.
7776
7777 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
7778
7779         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
7780         flag_cilkplus.
7781         * builtins.def: Likewise.
7782         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
7783         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
7784         * ira.c (ira_setup_eliminable_regset): Likewise.
7785         * omp-low.c (gate_expand_omp): Likewise.
7786         (execute_lower_omp): Likewise.
7787         (diagnose_sb_0): Likewise.
7788         (gate_diagnose_omp_blocks): Likewise.
7789         (simd_clone_clauses_extract): Likewise.
7790         (gate): Likewise.
7791
7792 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7793
7794         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
7795         correction for little endian...
7796         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
7797         here.
7798
7799 2014-01-24  Jeff Law  <law@redhat.com>
7800
7801         PR tree-optimization/59919
7802         * tree-vrp.c (find_assert_locations_1): Do not register asserts
7803         for non-returning calls.
7804
7805 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
7806
7807         * common/config/aarch64/aarch64-common.c
7808         (aarch64_rewrite_mcpu): Handle multiple names.
7809         * config/aarch64/aarch64.h
7810         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
7811
7812 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
7813
7814         * input.c (add_file_to_cache_tab): Handle the case where fopen
7815         returns NULL.
7816
7817 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
7818
7819         PR target/59929
7820         * config/i386/i386.md (pushsf splitter): Get stack adjustment
7821         from push operand if code of push isn't PRE_DEC.
7822
7823 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
7824
7825         PR target/59909
7826         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
7827         -mquad-memory-atomic.  Update -mquad-memory documentation to say
7828         it is only used for non-atomic loads/stores.
7829
7830         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
7831         -mquad-memory or -mquad-memory-atomic switches.
7832
7833         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
7834         -mquad-memory-atomic to ISA 2.07 support.
7835
7836         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
7837         to separate support of normal quad word memory operations (ldq, stq)
7838         from the atomic quad word memory operations.
7839
7840         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
7841         support to separate non-atomic quad word operations from atomic
7842         quad word operations.  Disable non-atomic quad word operations in
7843         little endian mode so that we don't have to swap words after the
7844         load and before the store.
7845         (quad_load_store_p): Add comment about atomic quad word support.
7846         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
7847         options printed with -mdebug=reg.
7848
7849         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
7850         -mquad-memory-atomic as the test for whether we have quad word
7851         atomic instructions.
7852         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
7853         or -mp8-vector are used, allow byte/half-word atomic operations.
7854
7855         * config/rs6000/sync.md (load_lockedti): Insure that the address
7856         is a proper indexed or indirect address for the lqarx instruction.
7857         On little endian systems, swap the hi/lo registers after the lqarx
7858         instruction.
7859         (load_lockedpti): Use indexed_or_indirect_operand predicate to
7860         insure the address is valid for the lqarx instruction.
7861         (store_conditionalti): Insure that the address is a proper indexed
7862         or indirect address for the stqcrx. instruction.  On little endian
7863         systems, swap the hi/lo registers before doing the stqcrx.
7864         instruction.
7865         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
7866         insure the address is valid for the stqcrx. instruction.
7867
7868         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
7869         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
7870         type of quad memory support is available.
7871
7872 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
7873
7874         PR regression/59915
7875         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
7876         there is a danger of looping.
7877
7878 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
7879
7880         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
7881         force flag_ira_loop_pressure if set via command line.
7882
7883 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
7884
7885         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
7886         (ashr_simd): New builtin handling DI mode.
7887         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
7888         (aarch64_sshr_simddi): New match pattern.
7889         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
7890         (vshrd_n_s64): Likewise.
7891         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
7892
7893 2014-01-23  Nick Clifton  <nickc@redhat.com>
7894
7895         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
7896         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
7897         favour of mcu specific scripts.
7898         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
7899         430x multilibs.
7900
7901 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
7902             Alex Velenko  <Alex.Velenko@arm.com>
7903
7904         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
7905         (vaddv_s16): Likewise.
7906         (vaddv_s32): Likewise.
7907         (vaddv_u8): Likewise.
7908         (vaddv_u16): Likewise.
7909         (vaddv_u32): Likewise.
7910         (vaddvq_s8): Likewise.
7911         (vaddvq_s16): Likewise.
7912         (vaddvq_s32): Likewise.
7913         (vaddvq_s64): Likewise.
7914         (vaddvq_u8): Likewise.
7915         (vaddvq_u16): Likewise.
7916         (vaddvq_u32): Likewise.
7917         (vaddvq_u64): Likewise.
7918         (vaddv_f32): Likewise.
7919         (vaddvq_f32): Likewise.
7920         (vaddvq_f64): Likewise.
7921         (vmaxv_f32): Likewise.
7922         (vmaxv_s8): Likewise.
7923         (vmaxv_s16): Likewise.
7924         (vmaxv_s32): Likewise.
7925         (vmaxv_u8): Likewise.
7926         (vmaxv_u16): Likewise.
7927         (vmaxv_u32): Likewise.
7928         (vmaxvq_f32): Likewise.
7929         (vmaxvq_f64): Likewise.
7930         (vmaxvq_s8): Likewise.
7931         (vmaxvq_s16): Likewise.
7932         (vmaxvq_s32): Likewise.
7933         (vmaxvq_u8): Likewise.
7934         (vmaxvq_u16): Likewise.
7935         (vmaxvq_u32): Likewise.
7936         (vmaxnmv_f32): Likewise.
7937         (vmaxnmvq_f32): Likewise.
7938         (vmaxnmvq_f64): Likewise.
7939         (vminv_f32): Likewise.
7940         (vminv_s8): Likewise.
7941         (vminv_s16): Likewise.
7942         (vminv_s32): Likewise.
7943         (vminv_u8): Likewise.
7944         (vminv_u16): Likewise.
7945         (vminv_u32): Likewise.
7946         (vminvq_f32): Likewise.
7947         (vminvq_f64): Likewise.
7948         (vminvq_s8): Likewise.
7949         (vminvq_s16): Likewise.
7950         (vminvq_s32): Likewise.
7951         (vminvq_u8): Likewise.
7952         (vminvq_u16): Likewise.
7953         (vminvq_u32): Likewise.
7954         (vminnmv_f32): Likewise.
7955         (vminnmvq_f32): Likewise.
7956         (vminnmvq_f64): Likewise.
7957
7958 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
7959
7960         * config/aarch64/aarch64-simd.md
7961         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
7962         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
7963         (*aarch64_mul3_elt<mode>): Likewise.
7964         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
7965         (*aarch64_mul3_elt_to_64v2df): Likewise.
7966         (*aarch64_mla_elt<mode>): Likewise.
7967         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
7968         (*aarch64_mls_elt<mode>): Likewise.
7969         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
7970         (*aarch64_fma4_elt<mode>): Likewise.
7971         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
7972         (*aarch64_fma4_elt_to_64v2df): Likewise.
7973         (*aarch64_fnma4_elt<mode>): Likewise.
7974         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
7975         (*aarch64_fnma4_elt_to_64v2df): Likewise.
7976         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
7977         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
7978         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
7979         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
7980         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
7981         (aarch64_sqdmull_lane<mode>_internal): Likewise.
7982         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
7983
7984 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
7985
7986         * config/aarch64/aarch64-simd.md
7987         (aarch64_be_checked_get_lane<mode>): New define_expand.
7988         * config/aarch64/aarch64-simd-builtins.def
7989         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
7990         New builtin definition.
7991         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
7992         Use new safe be builtin.
7993
7994 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
7995
7996         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
7997         New define_insn.
7998         (aarch64_be_st1<mode>): Likewise.
7999         (aarch_ld1<VALL:mode>): Define_expand modified.
8000         (aarch_st1<VALL:mode>): Likewise.
8001         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
8002         (UNSPEC_ST1): Likewise.
8003
8004 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
8005
8006         * config/microblaze/microblaze.md: Add trap insn and attribute
8007
8008 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
8009
8010         PR preprocessor/58580
8011         * input.h (location_get_source_line): Take an additional line_size
8012         parameter.
8013         (void diagnostics_file_cache_fini): Declare new function.
8014         * input.c (struct fcache): New type.
8015         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
8016         New static constants.
8017         (diagnostic_file_cache_init, total_lines_num)
8018         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
8019         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
8020         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
8021         (get_next_line, read_next_line, goto_next_line, read_line_num):
8022         New static function definitions.
8023         (diagnostic_file_cache_fini): New function.
8024         (location_get_source_line): Take an additional output line_len
8025         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
8026         read_line_num.
8027         * diagnostic.c (diagnostic_finish): Call
8028         diagnostic_file_cache_fini.
8029         (adjust_line): Take an additional input parameter for the length
8030         of the line, rather than calculating it with strlen.
8031         (diagnostic_show_locus): Adjust the use of
8032         location_get_source_line and adjust_line with respect to their new
8033         signature.  While displaying a line now, do not stop at the first
8034         null byte.  Rather, display the zero byte as a space and keep
8035         going until we reach the size of the line.
8036         * Makefile.in: Add vec.o to OBJS-libcommon
8037
8038 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
8039             Ilya Tocar     <ilya.tocar@intel.com>
8040
8041         * config/i386/avx512fintrin.h (_mm512_kmov): New.
8042         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
8043         (__builtin_ia32_kmov16): Ditto.
8044         * config/i386/i386.md (UNSPEC_KMOV): New.
8045         (kmovw): Ditto.
8046
8047 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
8048
8049         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
8050         (_mm512_storeu_si512): Ditto.
8051
8052 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
8053
8054         PR target/52125
8055         * rtl.h (get_referenced_operands): Declare.
8056         * recog.c (get_referenced_operands): New function.
8057         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
8058         operands have been referenced when recording LO_SUM references.
8059
8060 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
8061
8062         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
8063
8064 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
8065
8066         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
8067         Enable for generic and recent AMD targets.
8068
8069 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
8070
8071         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
8072         ARG_SIZE note when adjustment was eliminated.
8073
8074 2014-01-22  Jeff Law  <law@redhat.com>
8075
8076         PR tree-optimization/59597
8077         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
8078         in file.  Accept new argument REGISTERING and use it to modify
8079         dump output appropriately.
8080         (register_jump_thread): Corresponding changes.
8081         (mark_threaded_blocks): Reinstate code to cancel unprofitable
8082         thread paths involving joiner blocks.  Add code to dump cancelled
8083         jump threading paths.
8084
8085 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
8086
8087         PR rtl-optimization/59477
8088         * lra-constraints.c (inherit_in_ebb): Process call for living hard
8089         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
8090
8091 2014-01-22  Tom Tromey  <tromey@redhat.com>
8092
8093         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
8094         PARAMS.
8095         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
8096
8097 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
8098
8099         PR rtl-optimization/59896
8100         * lra-constraints.c (process_alt_operands): Check unused note for
8101         matched operands of insn with no output reloads.
8102
8103 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
8104
8105         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
8106         (mips_move_from_gpr_cost): Likewise.
8107
8108 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
8109
8110         PR rtl-optimization/59858
8111         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
8112         ira_class_hard_regs_num.
8113         (process_alt_operands): Increase reject for dying matched operand.
8114
8115 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
8116
8117         PR target/59003
8118         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
8119         smaller than size, perform several stores or loads and stores
8120         at dst + count - size to store or copy all of size bytes, rather
8121         than just last modesize bytes.
8122
8123 2014-01-20  DJ Delorie  <dj@redhat.com>
8124
8125         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
8126         that CLOBBERs are REGs before propogating their values.
8127
8128 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
8129
8130         PR middle-end/59789
8131         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
8132         (cgraph_inline_failed_type): New function.
8133         * cgraph.h (DEFCIFCODE): Add type.
8134         (cgraph_inline_failed_type_t): New enum.
8135         (cgraph_inline_failed_type): New prototype.
8136         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
8137         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
8138         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
8139         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
8140         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
8141         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
8142         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
8143         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
8144         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
8145         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
8146         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
8147         OPTIMIZATION_MISMATCH.
8148         * tree-inline.c (expand_call_inline): Emit errors during
8149         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
8150
8151 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
8152
8153         PR target/59685
8154         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
8155         mode attribute in insn output.
8156
8157 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
8158
8159         * output.h (output_constant): Delete.
8160         * varasm.c (output_constant): Make private.
8161
8162 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
8163
8164         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
8165
8166 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
8167
8168         PR middle-end/59860
8169         * tree.h (fold_builtin_strcat): New prototype.
8170         * builtins.c (fold_builtin_strcat): No longer static.  Add len
8171         argument, if non-NULL, don't call c_strlen.  Optimize
8172         directly into __builtin_memcpy instead of __builtin_strcpy.
8173         (fold_builtin_2): Adjust fold_builtin_strcat caller.
8174         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
8175
8176 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
8177
8178         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
8179         for SImode_address_operand operands, having only a REG argument.
8180
8181 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
8182
8183         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
8184         loader name using mbig-endian.
8185         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
8186
8187 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
8188
8189         * doc/invoke.texi (-march): Clarify documentation for AArch64.
8190         (-mtune): Likewise.
8191         (-mcpu): Likewise.
8192
8193 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
8194
8195         * config/aarch64/aarch64-protos.h
8196         (aarch64_cannot_change_mode_class_ptr): Declare.
8197         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
8198         aarch64_cannot_change_mode_class_ptr): New.
8199         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
8200         backend hook aarch64_cannot_change_mode_class.
8201
8202 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
8203
8204         * common/config/aarch64/aarch64-common.c
8205         (aarch64_handle_option): Don't handle any option order logic here.
8206         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
8207         selected_cpu, warn on architecture version mismatch.
8208         (aarch64_override_options): Fix parsing order for option strings.
8209
8210 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
8211             Iain Sandoe  <iain@codesourcery.com>
8212
8213         PR bootstrap/59496
8214         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
8215         warning.  Amend comment to reflect current functionality.
8216
8217 2014-01-20  Richard Biener  <rguenther@suse.de>
8218
8219         PR middle-end/59860
8220         * builtins.c (fold_builtin_strcat): Remove case better handled
8221         by tree-ssa-strlen.c.
8222
8223 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
8224
8225         * config/aarch64/aarch64.opt
8226         (mcpu, march, mtune): Make case-insensitive.
8227
8228 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
8229
8230         PR target/59880
8231         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
8232         if operands[1] is a REG or ZERO_EXTEND of a REG.
8233
8234 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
8235
8236         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
8237
8238 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
8239
8240         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
8241         long non-pic millicode calls.
8242
8243 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
8244
8245         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
8246
8247 2014-01-19  Kito Cheng  <kito@0xlab.org>
8248
8249         * builtins.c (expand_movstr): Check movstr expand done or fail.
8250
8251 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
8252             H.J. Lu  <hongjiu.lu@intel.com>
8253
8254         PR target/59379
8255         * config/i386/i386.md (*lea<mode>): Zero-extend return register
8256         to DImode for zero-extended addresses.
8257
8258 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
8259
8260         PR rtl-optimization/57763
8261         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
8262         on the new indirect jump_insn and increment LABEL_NUSES (label).
8263
8264 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
8265
8266         PR bootstrap/59580
8267         PR bootstrap/59583
8268         * config.gcc (x86_archs): New variable.
8269         (x86_64_archs): Likewise.
8270         (x86_cpus): Likewise.
8271         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
8272         --with-arch/--with-cpu= options.
8273         Support --with-arch=/--with-cpu={nehalem,westmere,
8274         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
8275
8276 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
8277
8278         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
8279         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
8280
8281 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
8282
8283         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
8284
8285 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
8286
8287         PR target/58944
8288         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
8289         clear cpp_get_options (parse_in)->warn_unused_macros for
8290         ix86_target_macros_internal with cpp_define.
8291
8292 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
8293
8294         * jump.c (delete_related_insns): Keep (use (insn))s.
8295         * reorg.c (redundant_insn): Check for barriers too.
8296
8297 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
8298
8299         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
8300
8301 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
8302
8303         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
8304         call to $$dyncall when TARGET_LONG_CALLS is true.
8305
8306 2014-01-17  Jeff Law  <law@redhat.com>
8307
8308         * ree.c (combine_set_extension): Temporarily disable test for
8309         changing number of hard registers.
8310
8311 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
8312
8313         PR middle-end/58125
8314         * ipa-inline-analysis.c (inline_free_summary):
8315         Do not free summary of aliases.
8316
8317 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
8318
8319         PR middle-end/59706
8320         * gimplify.c (gimplify_expr): Use create_tmp_var
8321         instead of create_tmp_var_raw.  If cond doesn't have
8322         integral type, don't add the IFN_ANNOTATE builtin at all.
8323
8324 2014-01-17  Martin Jambor  <mjambor@suse.cz>
8325
8326         PR ipa/59736
8327         * ipa-cp.c (prev_edge_clone): New variable.
8328         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
8329         Also resize prev_edge_clone vector.
8330         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
8331         (ipcp_edge_removal_hook): New function.
8332         (ipcp_driver): Register ipcp_edge_removal_hook.
8333
8334 2014-01-17  Andrew Pinski  <apinski@cavium.com>
8335             Steve Ellcey  <sellcey@mips.com>
8336
8337         PR target/59462
8338         * config/mips/mips.c (mips_print_operand): Check operand mode instead
8339         of operator mode.
8340
8341 2014-01-17  Jeff Law  <law@redhat.com>
8342
8343         PR middle-end/57904
8344         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
8345         so that pass_ccp runs first.
8346
8347 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
8348
8349         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
8350         (ix86_adjust_cost): Use !TARGET_XXX.
8351         (do_reorder_for_imul): Likewise.
8352         (swap_top_of_ready_list): Likewise.
8353         (ix86_sched_reorder): Likewise.
8354
8355 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
8356
8357         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
8358         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
8359         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
8360         (intel_memset): New.  Duplicate slm_memset.
8361         (intel_cost): New.  Duplicate slm_cost.
8362         (m_INTEL): New macro.
8363         (processor_target_table): Add "intel".
8364         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
8365         with PROCESSOR_INTEL for "intel".
8366         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
8367         PROCESSOR_SILVERMONT.
8368         (ix86_issue_rate): Likewise.
8369         (ix86_adjust_cost): Likewise.
8370         (ia32_multipass_dfa_lookahead): Likewise.
8371         (swap_top_of_ready_list): Likewise.
8372         (ix86_sched_reorder): Likewise.
8373         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
8374         instead of TARGET_OPT_AGU.
8375         * config/i386/i386.h (TARGET_INTEL): New.
8376         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
8377         (processor_type): Add PROCESSOR_INTEL.
8378         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
8379         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
8380
8381 2014-01-17  Marek Polacek  <polacek@redhat.com>
8382
8383         PR c/58346
8384         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
8385         size is zero.
8386
8387 2014-01-17  Richard Biener  <rguenther@suse.de>
8388
8389         PR tree-optimization/46590
8390         * opts.c (default_options_table): Add entries for
8391         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
8392         all enabled at -O1 but not for -Og.
8393         * common.opt (fbranch-count-reg): Remove Init(1).
8394         (fmove-loop-invariants): Likewise.
8395         (ftree-pta): Likewise.
8396
8397 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
8398
8399         * config/i386/i386.c (ix86_data_alignment): For compatibility with
8400         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
8401         decls to at least the GCC 4.8 used alignments.
8402
8403         PR fortran/59440
8404         * tree-nested.c (convert_nonlocal_reference_stmt,
8405         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
8406         of GIMPLE_BIND stmts, adjust associated decls.
8407
8408 2014-01-17  Richard Biener  <rguenther@suse.de>
8409
8410         PR tree-optimization/46590
8411         * vec.h (vec<>::bseach): New member function implementing
8412         binary search according to C89 bsearch.
8413         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
8414         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
8415         bitmap pointer again.  Make accesses_in_loop a flat array.
8416         (mem_ref_obstack): New global.
8417         (outermost_indep_loop): Adjust for mem_ref->stored changes.
8418         (mark_ref_stored): Likewise.
8419         (ref_indep_loop_p_2): Likewise.
8420         (set_ref_stored_in_loop): New helper function.
8421         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
8422         (memref_free): Adjust.
8423         (record_mem_ref_loc): Simplify.
8424         (gather_mem_refs_stmt): Adjust.
8425         (sort_locs_in_loop_postorder_cmp): New function.
8426         (analyze_memory_references): Sort accesses_in_loop after
8427         loop postorder number.
8428         (find_ref_loc_in_loop_cmp): New function.
8429         (for_all_locs_in_loop): Find relevant cluster of locs in
8430         accesses_in_loop and iterate without recursion.
8431         (execute_sm): Avoid uninit warning.
8432         (struct ref_always_accessed): Simplify.
8433         (ref_always_accessed::operator ()): Likewise.
8434         (ref_always_accessed_p): Likewise.
8435         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
8436         loop postorder numbers here.
8437         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
8438         numbers.
8439
8440 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
8441
8442         PR c++/57945
8443         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
8444         on decls for which assemble_alias has been called.
8445
8446 2014-01-17  Nick Clifton  <nickc@redhat.com>
8447
8448         * config/msp430/msp430.opt: (mcpu): New option.
8449         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
8450         (msp430_option_override): Parse target_cpu.  If the MCU name
8451         matches a generic string, clear target_mcu.
8452         (msp430_attr): Allow numeric interrupt values up to 63.
8453         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
8454         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
8455         option.
8456         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
8457         Add mcpu matches.
8458         * config/msp430/msp430.md (popm): Use %J rather than %I.
8459         (addsi3): Use msp430_nonimmediate_operand for operand 2.
8460         (addhi_cy_i): Use immediate_operand for operand 2.
8461         * doc/invoke.texi: Document -mcpu option.
8462
8463 2014-01-17  Richard Biener  <rguenther@suse.de>
8464
8465         PR rtl-optimization/38518
8466         * df.h (df_analyze_loop): Declare.
8467         * df-core.c: Include cfgloop.h.
8468         (df_analyze_1): Split out main part of df_analyze.
8469         (df_analyze): Adjust.
8470         (loop_inverted_post_order_compute): New function.
8471         (loop_post_order_compute): Likewise.
8472         (df_analyze_loop): New function avoiding whole-function
8473         postorder computes.
8474         * loop-invariant.c (find_defs): Use df_analyze_loop.
8475         (find_invariants): Adjust.
8476         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
8477
8478 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
8479
8480         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
8481         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
8482
8483 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
8484
8485         * ipa-ref.c (ipa_remove_stmt_references): Fix references
8486         traversal when removing references.
8487
8488 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
8489
8490         PR ipa/59775
8491         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
8492
8493 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
8494
8495         PR middle-end/56791
8496         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
8497         pushing a reload for an autoinc when we had previously reloaded an
8498         inner part of the address.
8499
8500 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
8501
8502         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
8503         field.
8504         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
8505         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
8506         when not giving up or versioning for alias only because of
8507         loop->safelen.
8508         (vect_analyze_data_ref_dependences): Set to true.
8509         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
8510         is a GIMPLE_PHI.
8511         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
8512         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
8513         to the condition.
8514
8515         PR middle-end/58344
8516         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
8517
8518         PR target/59839
8519         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
8520         operand 0 predicate for gathers, use a new pseudo as subtarget.
8521
8522 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
8523
8524         PR middle-end/59609
8525         * lra-constraints.c (process_alt_operands): Add printing debug info.
8526         Check absence of input/output reloads for matched operands too.
8527
8528 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
8529
8530         PR rtl-optimization/59835
8531         * ira.c (ira_init_register_move_cost): Increase cost for
8532         impossible modes.
8533
8534 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
8535
8536         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
8537
8538 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
8539
8540         PR target/59780
8541         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
8542         non-register objects.  Use gen_(high/low)part more consistently.
8543         Fix assertions.
8544
8545 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
8546
8547         PR target/59844
8548         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
8549         endian support, remove tests for WORDS_BIG_ENDIAN.
8550         (p8_mfvsrd_3_<mode>): Likewise.
8551         (reload_gpr_from_vsx<mode>): Likewise.
8552         (reload_gpr_from_vsxsf): Likewise.
8553         (p8_mfvsrd_4_disf): Likewise.
8554
8555 2014-01-16  Richard Biener  <rguenther@suse.de>
8556
8557         PR rtl-optimization/46590
8558         * lcm.c (compute_antinout_edge): Use postorder iteration.
8559         (compute_laterin): Use inverted postorder iteration.
8560
8561 2014-01-16  Nick Clifton  <nickc@redhat.com>
8562
8563         PR middle-end/28865
8564         * varasm.c (output_constant): Return the number of bytes actually
8565         emitted.
8566         (output_constructor_array_range): Update the field size with the
8567         number of bytes emitted by output_constant.
8568         (output_constructor_regular_field): Likewise.  Also do not
8569         complain if the total number of bytes emitted is now greater
8570         than the expected fieldpos.
8571         * output.h (output_constant): Update prototype and descriptive comment.
8572
8573 2014-01-16  Marek Polacek  <polacek@redhat.com>
8574
8575         PR middle-end/59827
8576         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
8577         it is error_mark_node.
8578
8579 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
8580
8581         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
8582         VALID_AVX256_REG_OR_OI_MODE.
8583
8584 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
8585
8586         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
8587         current procedure should be profiled.
8588
8589 2014-01-15  Andrew Pinski  <apinski@cavium.com>
8590
8591         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
8592         of moving from/to the STACK_REG register class.
8593
8594 2014-01-15  Richard Henderson  <rth@redhat.com>
8595
8596         PR debug/54694
8597         * reginfo.c (global_regs_decl): Globalize.
8598         * rtl.h (global_regs_decl): Declare.
8599         * ira.c (do_reload): Diagnose frame_pointer_needed and it
8600         reserved via global_regs.
8601
8602 2014-01-15  Teresa Johnson  <tejohnson@google.com>
8603
8604         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
8605
8606 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
8607
8608         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
8609         and vmulosh rather than call gen_vec_widen_smult_*.
8610         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
8611         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
8612         (vec_widen_smult_even_v16qi): Likewise.
8613         (vec_widen_umult_even_v8hi): Likewise.
8614         (vec_widen_smult_even_v8hi): Likewise.
8615         (vec_widen_umult_odd_v16qi): Likewise.
8616         (vec_widen_smult_odd_v16qi): Likewise.
8617         (vec_widen_umult_odd_v8hi): Likewise.
8618         (vec_widen_smult_odd_v8hi): Likewise.
8619         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
8620         vmuloub rather than call gen_vec_widen_umult_*.
8621         (vec_widen_umult_lo_v16qi): Likewise.
8622         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
8623         vmulosb rather than call gen_vec_widen_smult_*.
8624         (vec_widen_smult_lo_v16qi): Likewise.
8625         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
8626         rather than call gen_vec_widen_umult_*.
8627         (vec_widen_umult_lo_v8hi): Likewise.
8628         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
8629         rather than call gen_vec_widen_smult_*.
8630         (vec_widen_smult_lo_v8hi): Likewise.
8631
8632 2014-01-15  Jeff Law  <law@redhat.com>
8633
8634         PR tree-optimization/59747
8635         * ree.c (find_and_remove_re): Properly handle case where a second
8636         eliminated extension requires widening a copy created for elimination
8637         of a prior extension.
8638         (combine_set_extension): Ensure that the number of hard regs needed
8639         for a destination register does not change when we widen it.
8640
8641 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
8642
8643         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
8644         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
8645         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
8646         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
8647         (avr-*-rtems*): Likewise.
8648         (bfin*-rtems*): Likewise.
8649         (moxie-*-rtems*): Likewise.
8650         (h8300-*-rtems*): Likewise.
8651         (i[34567]86-*-rtems*): Likewise.
8652         (lm32-*-rtems*): Likewise.
8653         (m32r-*-rtems*): Likewise.
8654         (m68k-*-rtems*): Likewise.
8655         (microblaze*-*-rtems*): Likewise.
8656         (mips*-*-rtems*): Likewise.
8657         (powerpc-*-rtems*): Likewise.
8658         (sh-*-rtems*): Likewise.
8659         (sparc-*-rtems*): Likewise.
8660         (sparc64-*-rtems*): Likewise.
8661         (v850-*-rtems*): Likewise.
8662         (m32c-*-rtems*): Likewise.
8663
8664 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
8665
8666         PR rtl-optimization/59511
8667         * ira.c (ira_init_register_move_cost): Use memory costs for some
8668         cases of register move cost calculations.
8669         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
8670         instead of BB frequency.
8671         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
8672         * lra-assigns.c (find_hard_regno_for): Ditto.
8673
8674 2014-01-15  Richard Biener  <rguenther@suse.de>
8675
8676         PR tree-optimization/59822
8677         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
8678         (vectorizable_load): Use it to hoist defs of uses of invariant
8679         loads out of the loop.
8680
8681 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
8682             Kugan Vivekanandarajah  <kuganv@linaro.org>
8683
8684         PR target/59695
8685         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
8686         truncation.
8687
8688 2014-01-15  Richard Biener  <rguenther@suse.de>
8689
8690         PR rtl-optimization/59802
8691         * lcm.c (compute_available): Use inverted postorder to seed
8692         the initial worklist.
8693
8694 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8695
8696         PR target/59803
8697         * config/s390/s390.c (s390_preferred_reload_class): Don't return
8698         ADDR_REGS for invalid symrefs in non-PIC code.
8699
8700 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
8701
8702         PR other/58712
8703         * builtins.c (determine_block_size): Initialize *probable_max_size
8704         even if len_rtx is CONST_INT.
8705
8706 2014-01-14  Andrew Pinski  <apinski@cavium.com>
8707
8708         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
8709         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
8710         (cortexa53_tunings): Likewise.
8711         (aarch64_sched_issue_rate): New function.
8712         (TARGET_SCHED_ISSUE_RATE): Define.
8713
8714 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
8715
8716         * ira-costs.c (find_costs_and_classes): Add missed
8717         ira_init_register_move_cost_if_necessary.
8718
8719 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
8720
8721         PR target/59787
8722         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
8723
8724 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
8725
8726         PR target/59794
8727         * config/i386/i386.c (type_natural_mode): Add a bool parameter
8728         to indicate if type is used for function return value.  Warn ABI
8729         change if the vector mode isn't available for function return value.
8730         (ix86_function_arg_advance): Pass false to type_natural_mode.
8731         (ix86_function_arg): Likewise.
8732         (ix86_gimplify_va_arg): Likewise.
8733         (function_arg_32): Don't warn ABI change.
8734         (ix86_function_value): Pass true to type_natural_mode.
8735         (ix86_return_in_memory): Likewise.
8736         (ix86_struct_value_rtx): Removed.
8737         (TARGET_STRUCT_VALUE_RTX): Likewise.
8738
8739 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
8740
8741         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
8742         converting a conditional jump into a conditional return.
8743
8744 2014-01-14  Richard Biener  <rguenther@suse.de>
8745
8746         PR tree-optimization/58921
8747         PR tree-optimization/59006
8748         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
8749         hoisting invariant stmts.
8750         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
8751         invariant loads on the preheader edge if possible.
8752
8753 2014-01-14  Joey Ye  <joey.ye@arm.com>
8754
8755         * doc/plugin.texi (Building GCC plugins): Update to C++.
8756
8757 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
8758
8759         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
8760         (_mm_rcp28_round_ss): Ditto.
8761         (_mm_rsqrt28_round_sd): Ditto.
8762         (_mm_rsqrt28_round_ss): Ditto.
8763         (_mm_rcp28_sd): Ditto.
8764         (_mm_rcp28_ss): Ditto.
8765         (_mm_rsqrt28_sd): Ditto.
8766         (_mm_rsqrt28_ss): Ditto.
8767         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
8768         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
8769         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
8770         (IX86_BUILTIN_RCP28SD): Ditto.
8771         (IX86_BUILTIN_RCP28SS): Ditto.
8772         (IX86_BUILTIN_RSQRT28SD): Ditto.
8773         (IX86_BUILTIN_RSQRT28SS): Ditto.
8774         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
8775         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
8776         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
8777         (ix86_expand_special_args_builtin): Expand new FTYPE.
8778         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
8779         (srcp14<mode>): Make insn unary.
8780         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
8781         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
8782         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
8783         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
8784         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
8785         Fix rounding: make it SAE only.
8786         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
8787         Ditto.
8788         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
8789         Ditto.
8790         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
8791         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
8792         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
8793         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
8794         (round_saeonly_mask_scalar_operand4): Ditto.
8795         (round_saeonly_mask_scalar_op3): Ditto.
8796         (round_saeonly_mask_scalar_op4): Ditto.
8797
8798 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8799
8800         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8801         Implement -maltivec=be for vec_insert and vec_extract.
8802
8803 2014-01-10  DJ Delorie  <dj@redhat.com>
8804
8805         * config/msp430/msp430.md (call_internal): Don't allow memory
8806         references with SP as the base register.
8807         (call_value_internal): Likewise.
8808         * config/msp430/constraints.md (Yc): New.  For memory references
8809         that don't use SP as a base register.
8810
8811         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
8812         "an integer without a # prefix"
8813         * config/msp430/msp430.md (epilogue_helper): Use it.
8814
8815 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
8816
8817         PR target/59617
8818         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
8819         AVX512F gather builtins.
8820         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
8821         on gather decls with INTEGER_TYPE masktype.
8822         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
8823         directly into the builtin rather than hoisting it before loop.
8824
8825         PR tree-optimization/59387
8826         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
8827         (scev_const_prop): If folded_casts and type has undefined overflow,
8828         use force_gimple_operand instead of force_gimple_operand_gsi and
8829         for each added stmt if it is assign with
8830         arith_code_with_undefined_signed_overflow, call
8831         rewrite_to_defined_overflow.
8832         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
8833         gimple-fold.h instead.
8834         (arith_code_with_undefined_signed_overflow,
8835         rewrite_to_defined_overflow): Moved to ...
8836         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
8837         rewrite_to_defined_overflow): ... here.  No longer static.
8838         Include gimplify-me.h.
8839         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
8840         rewrite_to_defined_overflow): New prototypes.
8841
8842 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8843
8844         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
8845
8846 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
8847
8848         * builtins.c (get_object_alignment_2): Minor tweak.
8849         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
8850
8851 2014-01-13  Christian Bruel  <christian.bruel@st.com>
8852
8853         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
8854         optimized non constant lengths.
8855
8856 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
8857
8858         PR libgomp/59194
8859         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
8860         load as __atomic_load_N if possible.
8861
8862 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
8863
8864         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
8865         target parameter.
8866         (rs6000_expand_builtin): Adjust call.
8867
8868 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
8869
8870         PR target/58115
8871         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
8872         * config/rs6000/rs6000.c: Include target-globals.h.
8873         (rs6000_set_current_function): Instead of doing target_reinit
8874         unconditionally, use save_target_globals_default_opts and
8875         restore_target_globals.
8876
8877         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
8878         FPSCR.
8879         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
8880         (rs6000_expand_builtin): Handle mffs and mtfsf.
8881         (rs6000_init_builtins): Define mffs and mtfsf.
8882         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
8883         (rs6000_mffs): New pattern.
8884         (rs6000_mtfsf): New pattern.
8885
8886 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
8887
8888         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
8889         Start narrowing with START.  Apply candidate-use pair
8890         and check overall cost in narrowing.
8891         (iv_ca_prune): Pass new argument.
8892
8893 2014-01-10  Jeff Law  <law@redhat.com>
8894
8895         PR middle-end/59743
8896         * ree.c (combine_reaching_defs): Ensure the defining statement
8897         occurs before the extension when optimizing extensions with
8898         different source and destination hard registers.
8899
8900 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
8901
8902         PR ipa/58585
8903         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
8904         vtables into the type inheritance graph.
8905
8906 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
8907
8908         PR rtl-optimization/59754
8909         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
8910         modes in the REGNO != REGNO case.
8911
8912 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8913
8914         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
8915
8916 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
8917
8918         PR tree-optimization/59745
8919         * tree-predcom.c (tree_predictive_commoning_loop): Call
8920         free_affine_expand_cache if giving up because components is NULL.
8921
8922         * target-globals.c (save_target_globals): Allocate < 4KB structs using
8923         GC in payload of target_globals struct instead of allocating them on
8924         the heap and the larger structs separately using GC.
8925         * target-globals.h (struct target_globals): Make regs, hard_regs,
8926         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
8927         of GTY((skip)) and change type to void *.
8928         (reset_target_globals): Cast loads from those fields to corresponding
8929         types.
8930
8931 2014-01-10  Steve Ellcey  <sellcey@mips.com>
8932
8933         PR plugins/59335
8934         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
8935         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
8936         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
8937
8938 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
8939
8940         PR target/59744
8941         * aarch64-modes.def (CC_Zmode): New flags mode.
8942         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
8943         represents an equality.
8944         (aarch64_get_condition_code): Handle CC_Zmode.
8945         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
8946
8947 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8948
8949         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
8950         extraction in good case.
8951
8952 2014-01-10  Richard Biener  <rguenther@suse.de>
8953
8954         PR tree-optimization/59374
8955         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
8956         checking after SLP discovery.  Mark stmts not participating
8957         in any SLP instance properly.
8958
8959 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8960
8961         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
8962         when handling a SET rtx.
8963
8964 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8965
8966         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
8967         (cortex-a57): Likewise.
8968         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
8969
8970 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8971
8972         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
8973         non-iwmmxt builtins.
8974
8975 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
8976
8977         PR ipa/58252
8978         PR ipa/59226
8979         * ipa-devirt.c record_target_from_binfo): Take as argument
8980         stack of binfos and lookup matching one for virtual inheritance.
8981         (possible_polymorphic_call_targets_1): Update.
8982
8983 2014-01-10  Huacai Chen  <chenhc@lemote.com>
8984
8985         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
8986         kernel strings for Loongson-2E/2F/3A.
8987
8988 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
8989
8990         PR middle-end/59670
8991         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
8992         is_gimple_call before calling gimple_call_internal_p.
8993
8994 2014-01-09  Steve Ellcey  <sellcey@mips.com>
8995
8996         * Makefile.in (TREE_FLOW_H): Remove.
8997         (TREE_SSA_H): Add file names from tree-flow.h.
8998         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
8999         * tree.h: Remove tree-flow.h reference.
9000         * hash-table.h: Remove tree-flow.h reference.
9001         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
9002         reference with tree-ssa-loop.h.
9003
9004 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9005
9006         * doc/invoke.texi: Add -maltivec={be,le} options, and document
9007         default element-order behavior for -maltivec.
9008         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
9009         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
9010         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
9011         when targeting big endian, at least for now.
9012         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
9013
9014 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
9015
9016         PR middle-end/47735
9017         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
9018         var satisfies use_register_for_decl, just take into account type
9019         alignment, rather than decl alignment.
9020
9021         PR tree-optimization/59622
9022         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
9023         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
9024         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
9025         Don't devirtualize for inplace at all.  For targets.length () == 1,
9026         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
9027
9028 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
9029
9030         * config/i386/i386.md (cpu): Remove the unused btver1.
9031
9032 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
9033
9034         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
9035
9036 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
9037
9038         PR target/58115
9039         * tree-core.h (struct target_globals): New forward declaration.
9040         (struct tree_target_option): Add globals field.
9041         * tree.h (TREE_TARGET_GLOBALS): Define.
9042         (prepare_target_option_nodes_for_pch): New prototype.
9043         * target-globals.h (struct target_globals): Define even if
9044         !SWITCHABLE_TARGET.
9045         * tree.c (prepare_target_option_node_for_pch,
9046         prepare_target_option_nodes_for_pch): New functions.
9047         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
9048         * config/i386/i386.c: Include target-globals.h.
9049         (ix86_set_current_function): Instead of doing target_reinit
9050         unconditionally, use save_target_globals_default_opts and
9051         restore_target_globals.
9052
9053 2014-01-09  Richard Biener  <rguenther@suse.de>
9054
9055         PR tree-optimization/59715
9056         * tree-cfg.h (split_critical_edges): Declare.
9057         * tree-cfg.c (split_critical_edges): Export.
9058         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
9059
9060 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
9061
9062         * cfgexpand.c (expand_stack_vars): Optionally disable
9063         asan stack protection.
9064         (expand_used_vars): Likewise.
9065         (partition_stack_vars): Likewise.
9066         * asan.c (asan_emit_stack_protection): Optionally disable
9067         after return stack usage.
9068         (instrument_derefs): Optionally disable memory access instrumentation.
9069         (instrument_builtin_call): Likewise.
9070         (instrument_strlen_call): Likewise.
9071         (asan_protect_global): Optionally disable global variables protection.
9072         * doc/invoke.texi: Added doc for new options.
9073         * params.def: Added new options.
9074         * params.h: Likewise.
9075
9076 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
9077
9078         PR rtl-optimization/59724
9079         * ifcvt.c (cond_exec_process_if_block): Don't call
9080         flow_find_head_matching_sequence with 0 longest_match.
9081         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
9082         non-active insns if !stop_after.
9083         (try_head_merge_bb): Revert 2014-01-07 changes.
9084
9085 2014-01-08  Jeff Law  <law@redhat.com>
9086
9087         * ree.c (get_sub_rtx): New function, extracted from...
9088         (merge_def_and_ext): Here.
9089         (combine_reaching_defs): Use get_sub_rtx.
9090
9091 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
9092
9093         * cgraph.h (varpool_variable_node): Do not choke on null node.
9094
9095 2014-01-08  Catherine Moore  <clm@codesourcery.com>
9096
9097         * config/mips/mips.md (simple_return): Attempt to use JRC
9098         for microMIPS.
9099         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
9100
9101 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
9102
9103         PR rtl-optimization/59137
9104         * reorg.c (steal_delay_list_from_target): Call update_block for
9105         elided insns.
9106         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
9107
9108 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9109
9110         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
9111         two duplicate entries.
9112
9113 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
9114
9115         Revert:
9116         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
9117
9118         * config/mips/mips.c (mips_truncated_op_cost): New function.
9119         (mips_rtx_costs): Adjust test for BADDU.
9120         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
9121
9122         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
9123
9124         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
9125         (*baddu_si): ...this new pattern.
9126
9127 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
9128
9129         PR ipa/59722
9130         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
9131
9132 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9133
9134         PR middle-end/57748
9135         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
9136         inner_reference_p.
9137         (expand_expr, expand_normal): Adjust.
9138         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
9139         inner_reference_p. Use inner_reference_p to expand inner references.
9140         (store_expr): Adjust.
9141         * cfgexpand.c (expand_call_stmt): Adjust.
9142
9143 2014-01-08  Rong Xu  <xur@google.com>
9144
9145         * gcov-io.c (gcov_var): Move from gcov-io.h.
9146         (gcov_position): Ditto.
9147         (gcov_is_error): Ditto.
9148         (gcov_rewrite): Ditto.
9149         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
9150         only part to libgcc/libgcov.h.
9151
9152 2014-01-08  Marek Polacek  <polacek@redhat.com>
9153
9154         PR middle-end/59669
9155         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
9156
9157 2014-01-08  Marek Polacek  <polacek@redhat.com>
9158
9159         PR sanitizer/59667
9160         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
9161
9162 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
9163
9164         PR rtl-optimization/59649
9165         * stor-layout.c (get_mode_bounds): For BImode return
9166         0 and STORE_FLAG_VALUE.
9167
9168 2014-01-08  Richard Biener  <rguenther@suse.de>
9169
9170         PR middle-end/59630
9171         * gimple.h (is_gimple_builtin_call): Remove.
9172         (gimple_builtin_call_types_compatible_p): New.
9173         (gimple_call_builtin_p): New overload.
9174         * gimple.c (is_gimple_builtin_call): Remove.
9175         (validate_call): Rename to ...
9176         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
9177         check return types.
9178         (validate_type): New static function.
9179         (gimple_call_builtin_p): New overload and adjust.
9180         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
9181         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
9182         (gimple_fold_stmt_to_constant_1): Likewise.
9183         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
9184
9185 2014-01-08  Richard Biener  <rguenther@suse.de>
9186
9187         PR middle-end/59471
9188         * gimplify.c (gimplify_expr): Gimplify register-register type
9189         VIEW_CONVERT_EXPRs to separate stmts.
9190
9191 2014-01-07  Jeff Law  <law@redhat.com>
9192
9193         PR middle-end/53623
9194         * ree.c (combine_set_extension): Handle case where source
9195         and destination registers in an extension insn are different.
9196         (combine_reaching_defs): Allow source and destination registers
9197         in extension to be different under limited circumstances.
9198         (add_removable_extension): Remove restriction that the
9199         source and destination registers in the extension are the same.
9200         (find_and_remove_re): Emit a copy from the extension's
9201         destination to its source after the defining insn if
9202         the source and destination registers are different.
9203
9204         PR middle-end/59285
9205         * ifcvt.c (merge_if_block): If we are merging a block with more than
9206         one successor with a block with no successors, remove any BARRIER
9207         after the second block.
9208
9209 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
9210
9211         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
9212
9213 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
9214
9215         PR target/59652
9216         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
9217         for 14-bit register offsets when INT14_OK_STRICT is false.
9218
9219 2014-01-07  Roland Stigge  <stigge@antcom.de>
9220             Michael Meissner  <meissner@linux.vnet.ibm.com>
9221
9222         PR 57386/target
9223         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
9224         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
9225
9226 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
9227
9228         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
9229         -mcpu.
9230
9231 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
9232
9233         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
9234         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
9235         rtx is const0_rtx or not.
9236
9237 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
9238
9239         PR target/58115
9240         * target-globals.c (save_target_globals): Remove this_fn_optab
9241         handling.
9242         * toplev.c: Include optabs.h.
9243         (target_reinit): Temporarily restore the global options if another
9244         set of options are in force.
9245
9246 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
9247
9248         PR rtl-optimization/58668
9249         * cfgcleanup.c (flow_find_cross_jump): Don't count
9250         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
9251         to determine what is counted.
9252         (flow_find_head_matching_sequence): Use active_insn_p to determine
9253         what is counted.
9254         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
9255         counting change.
9256         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
9257         determine what is counted.
9258
9259         PR tree-optimization/59643
9260         * tree-predcom.c (split_data_refs_to_components): If one dr is
9261         read and one write, determine_offset fails and the write isn't
9262         in the bad component, just put the read into the bad component.
9263
9264 2014-01-07  Mike Stump  <mikestump@comcast.net>
9265             Jakub Jelinek  <jakub@redhat.com>
9266
9267         PR pch/59436
9268         * tree-core.h (struct tree_optimization_option): Change optabs
9269         type from unsigned char * to void *.
9270         * optabs.c (init_tree_optimization_optabs): Adjust
9271         TREE_OPTIMIZATION_OPTABS initialization.
9272
9273 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
9274
9275         PR target/59644
9276         * config/i386/i386.h (struct machine_function): Add
9277         no_drap_save_restore field.
9278         * config/i386/i386.c (ix86_save_reg): Use
9279         !cfun->machine->no_drap_save_restore instead of
9280         crtl->stack_realign_needed.
9281         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
9282         this function clears frame_pointer_needed.  Set
9283         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
9284         and DRAP reg is needed.
9285
9286 2014-01-06  Marek Polacek  <polacek@redhat.com>
9287
9288         PR c/57773
9289         * doc/implement-c.texi: Mention that other integer types are
9290         permitted as bit-field types in strictly conforming mode.
9291
9292 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
9293
9294         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
9295         is newly allocated.
9296
9297 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
9298
9299         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
9300
9301 2014-01-06  Martin Jambor  <mjambor@suse.cz>
9302
9303         PR ipa/59008
9304         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
9305         to int.
9306         * ipa-prop.c (ipa_print_node_params): Fix indentation.
9307
9308 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
9309
9310         PR debug/59350
9311         PR debug/59510
9312         * var-tracking.c (add_stores): Preserve the value of the source even if
9313         we don't record the store.
9314
9315 2014-01-06  Terry Guo  <terry.guo@arm.com>
9316
9317         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
9318
9319 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
9320
9321         PR bootstrap/59541
9322         * config/darwin.c (darwin_function_section): Adjust return values to
9323         correspond to optimisation changes made in r206070.
9324
9325 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
9326
9327         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
9328         from prefetch_block tune setting.
9329         (nocona_cost): Correct size of prefetch block to 64.
9330
9331 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
9332
9333         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
9334         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
9335         used to save the static chain register in the computation of the offset
9336         from which the FP registers need to be restored.
9337
9338 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
9339
9340         PR tree-optimization/59519
9341         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
9342         ICE if get_current_def (current_new_name) is already non-NULL, as long
9343         as it is a phi result of some other phi in *new_exit_bb that has
9344         the same argument.
9345
9346         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
9347         or vmovdqu* for misaligned_operand.
9348         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
9349         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
9350         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
9351         aligned_mem for AVX512F masked aligned load and store builtins and for
9352         non-temporal moves.
9353
9354 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
9355
9356         PR tree-optimization/59651
9357         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
9358         Address range for negative step should be added by TYPE_SIZE_UNIT.
9359
9360 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
9361
9362         * config/m68k/m68k.c (handle_move_double): Handle pushes with
9363         overlapping registers also for registers other than the stack pointer.
9364
9365 2014-01-03  Marek Polacek  <polacek@redhat.com>
9366
9367         PR other/59661
9368         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
9369         __builtin_FILE.
9370
9371 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
9372
9373         PR target/59625
9374         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
9375         asm goto as jump.
9376
9377         * config/i386/i386.md (MODE_SIZE): New mode attribute.
9378         (push splitter): Use <P:MODE_SIZE> instead of
9379         GET_MODE_SIZE (<P:MODE>mode).
9380         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
9381         (mov -1, reg peephole2): Likewise.
9382         * config/i386/sse.md (*mov<mode>_internal,
9383         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
9384         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
9385         *<code><mode>3, *andnot<mode>3<mask_name>,
9386         <mask_codefor><code><mode>3<mask_name>): Likewise.
9387         * config/i386/subst.md (mask_mode512bit_condition,
9388         sd_mask_mode512bit_condition): Likewise.
9389
9390 2014-01-02  Xinliang David Li  <davidxl@google.com>
9391
9392         PR tree-optimization/59303
9393         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
9394         (dump_predicates): Better output format.
9395         (pred_equal_p): New function.
9396         (is_neq_relop_p): Ditto.
9397         (is_neq_zero_form_p): Ditto.
9398         (pred_expr_equal_p): Ditto.
9399         (pred_neg_p): Ditto.
9400         (simplify_pred): Ditto.
9401         (simplify_preds_2): Ditto.
9402         (simplify_preds_3): Ditto.
9403         (simplify_preds_4): Ditto.
9404         (simplify_preds): Ditto.
9405         (push_pred): Ditto.
9406         (push_to_worklist): Ditto.
9407         (get_pred_info_from_cmp): Ditto.
9408         (is_degenerated_phi): Ditto.
9409         (normalize_one_pred_1): Ditto.
9410         (normalize_one_pred): Ditto.
9411         (normalize_one_pred_chain): Ditto.
9412         (normalize_preds): Ditto.
9413         (normalize_cond_1): Remove function.
9414         (normalize_cond): Ditto.
9415         (is_gcond_subset_of): Ditto.
9416         (is_subset_of_any): Ditto.
9417         (is_or_set_subset_of): Ditto.
9418         (is_and_set_subset_of): Ditto.
9419         (is_norm_cond_subset_of): Ditto.
9420         (pred_chain_length_cmp): Ditto.
9421         (convert_control_dep_chain_into_preds): Type change.
9422         (find_predicates): Ditto.
9423         (find_def_preds): Ditto.
9424         (destroy_predicates_vecs): Ditto.
9425         (find_matching_predicates_in_rest_chains): Ditto.
9426         (use_pred_not_overlap_with_undef_path_pred): Ditto.
9427         (is_pred_expr_subset): Ditto.
9428         (is_pred_chain_subset_of): Ditto.
9429         (is_included_in): Ditto.
9430         (is_superset_of): Ditto.
9431
9432 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
9433
9434         Update copyright years.
9435
9436 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
9437
9438         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
9439         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
9440         config/arc/arc.md, config/arc/arc.opt,
9441         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
9442         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
9443         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
9444         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
9445         config/linux-protos.h, config/linux.c, config/winnt-c.c,
9446         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
9447         vtable-verify.c, vtable-verify.h: Use the standard form for the
9448         copyright notice.
9449
9450 2014-01-02  Tobias Burnus  <burnus@net-b.de>
9451
9452         * gcc.c (process_command): Update copyright notice dates.
9453         * gcov-dump.c: Ditto.
9454         * gcov.c: Ditto.
9455         * doc/cpp.texi: Bump @copying's copyright year.
9456         * doc/cppinternals.texi: Ditto.
9457         * doc/gcc.texi: Ditto.
9458         * doc/gccint.texi: Ditto.
9459         * doc/gcov.texi: Ditto.
9460         * doc/install.texi: Ditto.
9461         * doc/invoke.texi: Ditto.
9462
9463 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9464
9465         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
9466
9467 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
9468
9469         * config/i386/sse.md (*mov<mode>_internal): Guard
9470         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
9471
9472         PR rtl-optimization/59647
9473         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
9474         new_rtx into UNSIGNED_FLOAT rtxes.
9475 \f
9476 Copyright (C) 2014 Free Software Foundation, Inc.
9477
9478 Copying and distribution of this file, with or without modification,
9479 are permitted in any medium without royalty provided the copyright
9480 notice and this notice are preserved.