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