xref: /netbsd-src/external/gpl3/gcc/dist/gcc/ChangeLog (revision b7b7574d3bf8eeb51a1fa3977b59142ec6434a55)
12014-05-22  Release Manager
2
3	* GCC 4.8.3 released.
4
52014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
6
7	Backport from mainline
8	2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
9
10	PR target/61193
11	* config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
12	(__TM_simple_begin): Use it.
13	(__TM_begin): Likewise.
14
152014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
16
17	* config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
18	Delete.
19	* config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
20	* config/sparc/sparc.md (fptype_ut699): New attribute.
21	(in_branch_delay): Return false if -mfix-ut699 is specified and
22	fptype_ut699 is set to single.
23	(truncdfsf2): Add fptype_ut699 attribute.
24	(fix_truncdfsi2): Likewise.
25	(floatsisf2): Change fptype attribute.
26	(fix_truncsfsi2): Likewise.
27	(negtf2_notv9): Delete.
28	(negtf2_v9): Likewise.
29	(negtf2_hq): New instruction.
30	(negtf2): New instruction and splitter.
31	(negdf2_notv9): Rewrite.
32	(abstf2_notv9): Delete.
33	(abstf2_hq_v9): Likewise.
34	(abstf2_v9): Likewise.
35	(abstf2_hq): New instruction.
36	(abstf2): New instruction and splitter.
37	(absdf2_notv9): Rewrite.
38
392014-05-14  Matthias Klose  <doko@ubuntu.com>
40
41	Revert:
42	2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
43		    Matthias Klose  <doko@ubuntu.com>
44
45	PR driver/61106
46	* optc-gen.awk: Fix option handling for -Wunused-parameter.
47
482014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
49
50	* doc/sourcebuild.texi: (dfp_hw): Document.
51	(p8vector_hw): Likewise.
52	(powerpc_eabi_ok): Likewise.
53	(powerpc_elfv2): Likewise.
54	(powerpc_htm_ok): Likewise.
55	(ppc_recip_hw): Likewise.
56	(vsx_hw): Likewise.
57
582014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
59
60	Backport from mainline
61	2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
62
63	PR target/60991
64	* config/avr/avr.c (avr_out_store_psi): Use correct constant
65	to restore Y.
66
672014-05-09  Georg-Johann Lay  <avr@gjlay.de>
68
69	Backport from 2014-05-09 trunk r210267
70
71	PR target/61055
72	* config/avr/avr.md (cc): Add new attribute set_vzn.
73	(addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
74	Set cc insn attribute to set_vzn instead of set_zn for alternatives
75	with INC, DEC or NEG.
76	* config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
77	(avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
78	INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
79
802014-05-09  Richard Sandiford  <rdsandiford@googlemail.com>
81
82	* builtins.c (expand_builtin_setjmp_receiver): Emit a use of
83	the hard frame pointer.  Synchronize commentary with mainline.
84	* cse.c (cse_insn): Only check for volatile asms.
85	* cselib.c (cselib_process_insn): Likewise.
86	* dse.c (scan_insn): Likewise.
87	* stmt.c (expand_nl_goto_receiver): Emit a use and a clobber of
88	the hard frame pointer.
89
902014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
91	    Matthias Klose  <doko@ubuntu.com>
92
93	PR driver/61106
94	* optc-gen.awk: Fix option handling for -Wunused-parameter.
95
962014-05-08  Uros Bizjak  <ubizjak@gmail.com>
97
98	PR target/59952
99	* config/i386/i386.c (ix86_option_override_internal): Remove PTA_RTM
100	from core-avx2.
101
1022014-05-08  Charles Baylis  <charles.baylis@linaro.org>
103
104	Backport from mainline
105	2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
106
107	PR target/60609
108	* config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
109	(LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
110	ADDR_DIFF_VEC.
111
1122014-05-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
113
114	* config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
115	Do not define target_cpu_default2 to generic.
116
1172014-05-06  Richard Biener  <rguenther@suse.de>
118
119	Backport from mainline
120	2014-04-14  Richard Biener  <rguenther@suse.de>
121
122	PR middle-end/55022
123	* fold-const.c (negate_expr_p): Don't negate directional rounding
124	division.
125	(fold_negate_expr): Likewise.
126
1272014-05-06  Richard Biener  <rguenther@suse.de>
128
129	Backport from mainline
130	2014-04-17  Richard Biener  <rguenther@suse.de>
131
132	PR middle-end/60849
133	* tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
134	boolean results for comparisons.
135
136	2014-04-07  Richard Biener  <rguenther@suse.de>
137
138	PR tree-optimization/60766
139	* tree-ssa-loop-ivopts.c (cand_value_at): Compute in an
140	unsigned type.
141	(may_eliminate_iv): Convert cand_value_at result to desired
142	type.
143
144	2014-04-23  Richard Biener  <rguenther@suse.de>
145
146	PR tree-optimization/60903
147	* tree-ssa-loop-im.c (execute_sm_if_changed): Properly apply
148	IRREDUCIBLE_LOOP loop flags to newly created BBs and edges.
149
1502014-05-05  Richard Biener  <rguenther@suse.de>
151
152	Backport from mainline
153	2014-04-23  Richard Biener  <rguenther@suse.de>
154
155	PR middle-end/60895
156	* tree-inline.c (declare_return_variable): Use mark_addressable.
157
158	2014-04-07  Richard Biener  <rguenther@suse.de>
159
160	PR middle-end/60750
161	* tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
162	for noreturn calls.
163	* tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
164
165	2014-04-14  Richard Biener  <rguenther@suse.de>
166
167	PR tree-optimization/59817
168	PR tree-optimization/60453
169	* graphite-scop-detection.c (graphite_can_represent_scev): Complete
170	recursion to catch all CHRECs in the scalar evolution and restrict
171	the predicate for the remains appropriately.
172
173	2014-04-17  Richard Biener  <rguenther@suse.de>
174
175	PR tree-optimization/60836
176	* tree-vect-loop.c (vect_create_epilog_for_reduction): Force
177	initial PHI args to be gimple values.
178
1792014-05-05  Jakub Jelinek  <jakub@redhat.com>
180
181	Backported from mainline
182	2014-04-25  Jakub Jelinek  <jakub@redhat.com>
183
184	PR tree-optimization/60960
185	* tree-vect-generic.c (expand_vector_operation): Only call
186	expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
187
1882014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
189
190	* config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
191	(RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
192	(TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
193	* config/rs6000/rs6000-builtin.def (BU_MISC_1):
194	Use RS6000_BTM_HARD_FLOAT.
195	(BU_MISC_2): Likewise.
196	* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
197	RS6000_BTM_HARD_FLOAT.
198	(rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
199	is explicitly used.
200	(rs6000_invalid_builtin): Add hard floating builtin support.
201	(rs6000_expand_builtin): Relax the gcc_assert to allow the new
202	hard float builtins.
203	(rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
204
2052014-05-03  Joey Ye  <joey.ye@arm.com>
206
207	Backport from mainline r209463
208	2014-04-17  Joey Ye  <joey.ye@arm.com>
209
210	* opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
211
2122014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
213
214	Back port from mainline
215	PR target/61026
216	* config/sh/sh.c: Include stdlib headers before everything else.
217
2182014-05-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
219
220	PR tree-optimization/60930
221	* gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
222	creating a multiply candidate by folding two constant
223	multiplicands when the result overflows.
224
2252014-05-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
226
227	* config/aarch64/aarch64.h (TARGET_SIMD): Take AARCH64_ISA_SIMD
228	into account.
229	(TARGET_FLOAT): Take AARCH64_ISA_FP into account.
230
2312014-04-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
232
233	Back port from mainline
234	2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
235
236	* doc/extend.texi (PowerPC Built-in Functions): Document new
237	powerpc extended divide, bcd, pack/unpack 128-bit, builtin
238	functions.
239	(PowerPC AltiVec/VSX Built-in Functions): Likewise.
240
241	* config/rs6000/predicates.md (const_0_to_3_operand): New
242	predicate to match 0..3 integer constants.
243
244	* config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
245	to support adding miscellaneous builtin functions.
246	(BU_DFP_MISC_2): Likewise.
247	(BU_P7_MISC_1): Likewise.
248	(BU_P7_MISC_2): Likewise.
249	(BU_P8V_MISC_3): Likewise.
250	(BU_MISC_1): Likewise.
251	(BU_MISC_2): Likewise.
252	(DIVWE): Add extended divide builtin functions.
253	(DIVWEO): Likewise.
254	(DIVWEU): Likewise.
255	(DIVWEUO): Likewise.
256	(DIVDE): Likewise.
257	(DIVDEO): Likewise.
258	(DIVDEU): Likewise.
259	(DIVDEUO): Likewise.
260	(DXEX): Add decimal floating-point builtin functions.
261	(DXEXQ): Likewise.
262	(DDEDPD): Likewise.
263	(DDEDPDQ): Likewise.
264	(DENBCD): Likewise.
265	(DENBCDQ): Likewise.
266	(DIEX): Likewise.
267	(DIEXQ): Likewise.
268	(DSCLI): Likewise.
269	(DSCLIQ): Likewise.
270	(DSCRI): Likewise.
271	(DSCRIQ): Likewise.
272	(CDTBCD): Add new BCD builtin functions.
273	(CBCDTD): Likewise.
274	(ADDG6S): Likewise.
275	(BCDADD): Likewise.
276	(BCDADD_LT): Likewise.
277	(BCDADD_EQ): Likewise.
278	(BCDADD_GT): Likewise.
279	(BCDADD_OV): Likewise.
280	(BCDSUB): Likewise.
281	(BCDSUB_LT): Likewise.
282	(BCDSUB_EQ): Likewise.
283	(BCDSUB_GT): Likewise.
284	(BCDSUB_OV): Likewise.
285	(PACK_TD): Add new pack/unpack 128-bit type builtin functions.
286	(UNPACK_TD): Likewise.
287	(PACK_TF): Likewise.
288	(UNPACK_TF): Likewise.
289	(UNPACK_TF_0): Likewise.
290	(UNPACK_TF_1): Likewise.
291	(PACK_V1TI): Likewise.
292	(UNPACK_V1TI): Likewise.
293
294	* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
295	support for decimal floating point builtin functions.
296	(rs6000_expand_ternop_builtin): Add checks for the new builtin
297	functions that take constant arguments.
298	(rs6000_invalid_builtin): Add decimal floating point builtin
299	support.
300	(rs6000_init_builtins): Setup long double, _Decimal64, and
301	_Decimal128 types for new builtin functions.
302	(builtin_function_type): Set the unsigned flags appropriately for
303	the new builtin functions.
304	(rs6000_opt_masks): Add support for decimal floating point builtin
305	functions.
306
307	* config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
308	floating point builtin functions.
309	(RS6000_BTM_COMMON): Likewise.
310	(RS6000_BTI_long_double): Likewise.
311	(RS6000_BTI_dfloat64): Likewise.
312	(RS6000_BTI_dfloat128): Likewise.
313	(long_double_type_internal_node): Likewise.
314	(dfloat64_type_internal_node): Likewise.
315	(dfloat128_type_internal_node): Likewise.
316
317	* config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
318	2.07 bcd arithmetic instructions.
319	(UNSPEC_BCDSUB): Likewise.
320	(UNSPEC_BCD_OVERFLOW): Likewise.
321	(UNSPEC_BCD_ADD_SUB): Likewise.
322	(bcd_add_sub): Likewise.
323	(BCD_TEST): Likewise.
324	(bcd<bcd_add_sub>): Likewise.
325	(bcd<bcd_add_sub>_test): Likewise.
326	(bcd<bcd_add_sub>_test2): Likewise.
327	(bcd<bcd_add_sub>_<code>): Likewise.
328	(peephole2 for combined bcd ops): Likewise.
329
330	* config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
331	decimal floating point builtin functions.
332	(UNSPEC_DENBCD): Likewise.
333	(UNSPEC_DXEX): Likewise.
334	(UNSPEC_DIEX): Likewise.
335	(UNSPEC_DSCLI): Likewise.
336	(UNSPEC_DSCRI): Likewise.
337	(D64_D128): Likewise.
338	(dfp_suffix): Likewise.
339	(dfp_ddedpd_<mode>): Likewise.
340	(dfp_denbcd_<mode>): Likewise.
341	(dfp_dxex_<mode>): Likewise.
342	(dfp_diex_<mode>): Likewise.
343	(dfp_dscli_<mode>): Likewise.
344	(dfp_dscri_<mode>): Likewise.
345
346	* config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
347	builtin functions.
348	(UNSPEC_CDTBCD): Likewise.
349	(UNSPEC_CBCDTD): Likewise.
350	(UNSPEC_DIVE): Add support for new extended divide builtin
351	functions.
352	(UNSPEC_DIVEO): Likewise.
353	(UNSPEC_DIVEU): Likewise.
354	(UNSPEC_DIVEUO): Likewise.
355	(UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
356	pack/unpack 128-bit types.
357	(UNSPEC_PACK_128BIT): Likewise.
358	(idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
359	(udiv<mode>3): Use idiv_ldiv mode attribute.
360	(div<mode>3): Likewise.
361	(addg6s): Add new BCD builtin functions.
362	(cdtbcd): Likewise.
363	(cbcdtd): Likewise.
364	(UNSPEC_DIV_EXTEND): Add support for new extended divide
365	instructions.
366	(div_extend): Likewise.
367	(div<div_extend>_<mode>"): Likewise.
368	(FP128_64): Add support for new builtin functions to pack/unpack
369	128-bit types.
370	(unpack<mode>): Likewise.
371	(unpacktf_0): Likewise.
372	(unpacktf_1): Likewise.
373	(unpack<mode>_dm): Likewise.
374	(unpack<mode>_nodm): Likewise.
375	(pack<mode>): Likewise.
376	(unpackv1ti): Likewise.
377	(packv1ti): Likewise.
378
3792014-04-29  Pat Haugen  <pthaugen@us.ibm.com>
380
381	Backport from mainline
382	2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
383
384	* config/rs6000/rs6000.md (addti3, subti3): New.
385
3862014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
387
388	Backport from mainline
389	2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
390
391	* config/rs6000/sync.md (AINT mode_iterator): Move definition.
392	(loadsync_<mode>): Change mode.
393	(load_quadpti, store_quadpti): New.
394	(atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
395	* config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
396
3972014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
398
399	* configure.ac: Tweak GAS check for LEON instructions on SPARC.
400	* configure: Regenerate.
401	* config/sparc/sparc.opt (muser-mode): New option.
402	* config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
403	for LEON3.
404	(atomic_compare_and_swap_leon3_1): New instruction for LEON3.
405	* doc/invoke.texi (SPARC options): Document -muser-mode.
406
4072014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
408
409	PR target/60941
410	* config/sparc/sparc.md (ashlsi3_extend): Delete.
411
4122014-04-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
413
414	Back port from main line:
415	2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
416
417	* config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
418	for ISA 2.07.
419
420	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
421	vbpermq builtins.
422
423	* config/rs6000/altivec.md (UNSPEC_VBPERMQ): Add support for the
424	vbpermq instruction.
425	(altivec_vbpermq): Likewise.
426
427	PR target/60672
428	* config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
429	enable use of xxsldwi and xxpermdi builtin functions.
430	(vec_xxpermdi): Likewise.
431
432	* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
433	Document use of vec_xxsldwi and vec_xxpermdi builtins.
434
4352014-04-23  Uros Bizjak  <ubizjak@gmail.com>
436
437	Backport from mainline
438	2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
439
440	PR target/60909
441	* config/i386/i386.c (ix86_expand_builtin)
442	<case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
443	register for target RTX.
444	<case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
445
4462014-04-23  Richard Biener  <rguenther@suse.de>
447
448	Backport from mainline
449	2014-04-02  Richard Biener  <rguenther@suse.de>
450
451	PR middle-end/60729
452	* optabs.c (expand_abs_nojump): Honor flag_trapv only for
453	MODE_INTs.  Properly use negv_optab.
454	(expand_abs): Likewise.
455
456	2014-04-03  Richard Biener  <rguenther@suse.de>
457
458	PR tree-optimization/60740
459	* graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
460	over all GIMPLE_COND operands.
461
4622014-04-23  Richard Biener  <rguenther@suse.de>
463
464	PR middle-end/60635
465	* gimplify.c (gimple_regimplify_operands): Update the
466	re-gimplifed stmt.
467
4682014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
469
470	Back port from the trunk, subversion id 209546.
471
472	2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
473
474	PR target/60735
475	* config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
476	If mode is DDmode and TARGET_E500_DOUBLE allow move.
477
478	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
479	more debug information for E500 if -mdebug=reg.
480
4812014-04-18  Richard Henderson  <rth@redhat.com>
482
483	* config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
484	to GET_MODE_SIZE, not a reg_class_t.
485
4862014-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
487
488	* config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for
489	little-endian.
490	(vsx_xxmrglw_<mode>): Likewise.
491
4922014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
493
494	PR target/60839
495	Revert the following patch
496
497	2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
498
499	Back port mainline subversion id 209025.
500	2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
501
502	PR target/60735
503	* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
504	software floating point or no floating point registers, do not
505	allow any type in the FPRs.  Eliminate a test for SPE SIMD types
506	in GPRs that occurs after we tested for GPRs that would never be
507	true.
508
509	* config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
510	Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
511	since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
512	specifically allow DDmode, since that does not use the SPE SIMD
513	instructions.
514
5152014-04-10  Vladimir Makarov  <vmakarov@redhat.com>
516
517	PR rtl-optimization/60769
518	* lra-constraints.c (simplify_operand_subreg): Force reload of
519	paradoxical subreg if it is not in the class contents.
520
5212014-04-10  Jakub Jelinek  <jakub@redhat.com>
522
523	Backport from mainline
524	2014-03-12  Jakub Jelinek  <jakub@redhat.com>
525		    Marc Glisse  <marc.glisse@inria.fr>
526
527	PR tree-optimization/60502
528	* tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
529	instead of build_low_bits_mask.
530
531	2013-06-13  Marc Glisse  <marc.glisse@inria.fr>
532
533	* tree.c (build_all_ones_cst): New function.
534	* tree.h (build_all_ones_cst): Declare it.
535
536	2013-05-10  Marc Glisse  <marc.glisse@inria.fr>
537
538	* tree.c (build_minus_one_cst): New function.
539	* tree.h (build_minus_one_cst): Declare new function.
540
5412014-04-10  Jakub Jelinek  <jakub@redhat.com>
542
543	Backport from mainline
544	2014-03-28  Jakub Jelinek  <jakub@redhat.com>
545
546	PR target/60693
547	* config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
548	also if addr has VOIDmode.
549
550	2014-03-17  Jakub Jelinek  <jakub@redhat.com>
551
552	PR target/60516
553	* config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
554	note creation for the 2010-08-31 changes.
555
556	2014-03-06  Jakub Jelinek  <jakub@redhat.com>
557		    Meador Inge  <meadori@codesourcery.com>
558
559	PR target/58595
560	* config/arm/arm.c (arm_tls_symbol_p): Remove.
561	(arm_legitimize_address): Call legitimize_tls_address for any
562	arm_tls_referenced_p expression, handle constant addend.  Call it
563	before testing for !TARGET_ARM.
564	(thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
565
5662014-04-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
567
568	Backport from mainline r208750
569	2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
570
571	* config/rs6000/rs6000.c (rs6000_expand_vector_set):  Generate a
572	pattern for vector nor instead of subtract from splat(-1).
573	(altivec_expand_vec_perm_const_le): Likewise.
574
575	Backport from mainline r209235
576	2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
577
578	* config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
579	instead of vnor to exploit possible fusion opportunity in the
580	future.
581	(altivec_expand_vec_perm_const_le): Likewise.
582
5832014-04-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
584
585	Revert following patch
586	2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
587
588	Backport from mainline
589	2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
590
591	* config/rs6000/sync.md (AINT mode_iterator): Move definition.
592	(loadsync_<mode>): Change mode.
593	(load_quadpti, store_quadpti): New.
594	(atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
595	* config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
596
5972014-04-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
598
599	Backport from mainline r202642
600	2013-09-17  Alan Modra  <amodra@gmail.com>
601
602	PR target/57589
603	* config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
604	patch (r199972).
605
6062014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
607
608	Backport from mainline
609	2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
610
611	* config/rs6000/sync.md (AINT mode_iterator): Move definition.
612	(loadsync_<mode>): Change mode.
613	(load_quadpti, store_quadpti): New.
614	(atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
615	* config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
616
6172014-04-07  Martin Jambor  <mjambor@suse.cz>
618
619	PR ipa/60640
620	* ipa-cp.c (propagate_constants_accross_call): Do not propagate
621	accross thunks.
622
6232014-04-07  Dominique d'Humieres <dominiq@lps.ens.fr>
624
625	Backport from mainline
626	2013-09-14  Iain Sandoe <iains@gcc.gnu.org>
627
628	PR target/48094
629	* config/darwin.c (darwin_objc2_section): Note if ObjC Metadata
630	is seen.
631	(darwin_objc1_section): Likewise.
632	(darwin_file_end): Emit Image Info section when required.
633
6342014-04-05  Alan Modra  <amodra@gmail.com>
635
636	Apply from mainline
637	2014-01-28  Alan Modra  <amodra@gmail.com>
638	* Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
639	* configure.ac <recursive call for build != host>: Define
640	GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
641	and LD_FOR_BUILD too.
642	* configure: Regenerate.
643
6442014-04-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
645
646	Backport from mainline r208895:
647	2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
648
649	* config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
650	if it would clobber the stack pointer, even temporarily.
651
6522014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
653
654	Back port from main line:
655	2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
656
657	* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
658	Document vec_vgbbd.
659
6602014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
661
662	Back port mainline subversion id 209025.
663	2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
664
665	PR target/60735
666	* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
667	software floating point or no floating point registers, do not
668	allow any type in the FPRs.  Eliminate a test for SPE SIMD types
669	in GPRs that occurs after we tested for GPRs that would never be
670	true.
671
672	* config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
673	Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
674	since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
675	specifically allow DDmode, since that does not use the SPE SIMD
676	instructions.
677
6782014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
679
680	Backport from mainline r205308
681	2013-11-23  David Edelsohn  <dje.gcc@gmail.com>
682
683	* config/rs6000/rs6000.c (IN_NAMED_SECTION): New macro.
684	(rs6000_xcoff_select_section): Place decls with stricter alignment
685	into named sections.
686	(rs6000_xcoff_unique_section): Allow unique sections for
687	uninitialized data with strict alignment.
688
6892014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
690
691	Backport from mainline
692	2013-11-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
693
694	* gcc/configure: Regenerate.
695
6962014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
697
698	Back port from trunk
699	2013-04-25  Alan Modra  <amodra@gmail.com>
700
701	PR target/57052
702	* config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
703	rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
704	(rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
705	Repeat for many other rotate/shift and mask patterns using subregs.
706	Name lshiftrt insns.
707	(ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
708	on WORDS_BIG_ENDIAN.
709
710	2013-06-07  Alan Modra  <amodra@gmail.com>
711
712	* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
713	override user -mfp-in-toc.
714	(offsettable_ok_by_alignment): Consider just the current access
715	rather than the whole object, unless BLKmode.  Handle
716	CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
717	(use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
718	for -mcmodel=medium.
719	* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
720	override user -mfp-in-toc or -msum-in-toc.  Default to
721	-mno-fp-in-toc for -mcmodel=medium.
722
723	2013-06-18  Alan Modra  <amodra@gmail.com>
724
725	* config/rs6000/rs6000.h (enum data_align): New.
726	(LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
727	(DATA_ABI_ALIGNMENT): Define.
728	(CONSTANT_ALIGNMENT): Correct comment.
729	* config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
730	* config/rs6000/rs6000.c (rs6000_data_alignment): New function.
731
732	2013-07-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
733
734	* config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
735	Require GOT register as additional operand in UNSPEC.
736	("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
737	("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
738	("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
739	("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
740	("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
741	("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
742	("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
743
744	2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
745
746	* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
747	force flag_ira_loop_pressure if set via command line.
748
749	2014-02-06  Alan Modra  <amodra@gmail.com>
750
751	PR target/60032
752	* config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
753	change SDmode to DDmode when lra_in_progress.
754
7552014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
756
757	V1TImode Support
758	Back port from trunk
759	2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
760
761	* config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
762	(VEC_M): Likewise.
763	(VEC_N): Likewise.
764	(VEC_R): Likewise.
765	(VEC_base): Likewise.
766	(mov<MODE>, VEC_M modes): If we are loading TImode into VSX
767	registers, we need to swap double words in little endian mode.
768
769	* config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
770	to be a container mode for 128-bit integer operations added in ISA
771	2.07.  Unlike TImode and PTImode, the preferred register set is
772	the Altivec/VMX registers for the 128-bit operations.
773
774	* config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
775	declarations.
776	(rs6000_split_128bit_ok_p): Likewise.
777
778	* config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
779	macros for creating ISA 2.07 normal and overloaded builtin
780	functions with 3 arguments.
781	(BU_P8V_OVERLOAD_3): Likewise.
782	(VPERM_1T): Add support for V1TImode in 128-bit vector operations
783	for use as overloaded functions.
784	(VPERM_1TI_UNS): Likewise.
785	(VSEL_1TI): Likewise.
786	(VSEL_1TI_UNS): Likewise.
787	(ST_INTERNAL_1ti): Likewise.
788	(LD_INTERNAL_1ti): Likewise.
789	(XXSEL_1TI): Likewise.
790	(XXSEL_1TI_UNS): Likewise.
791	(VPERM_1TI): Likewise.
792	(VPERM_1TI_UNS): Likewise.
793	(XXPERMDI_1TI): Likewise.
794	(SET_1TI): Likewise.
795	(LXVD2X_V1TI): Likewise.
796	(STXVD2X_V1TI): Likewise.
797	(VEC_INIT_V1TI): Likewise.
798	(VEC_SET_V1TI): Likewise.
799	(VEC_EXT_V1TI): Likewise.
800	(EQV_V1TI): Likewise.
801	(NAND_V1TI): Likewise.
802	(ORC_V1TI): Likewise.
803	(VADDCUQ): Add support for 128-bit integer arithmetic instructions
804	added in ISA 2.07.  Add both normal 'altivec' builtins, and the
805	overloaded builtin.
806	(VADDUQM): Likewise.
807	(VSUBCUQ): Likewise.
808	(VADDEUQM): Likewise.
809	(VADDECUQ): Likewise.
810	(VSUBEUQM): Likewise.
811	(VSUBECUQ): Likewise.
812
813	* config/rs6000/rs6000-c.c (__int128_type): New static to hold
814	__int128_t and __uint128_t types.
815	(__uint128_type): Likewise.
816	(altivec_categorize_keyword): Add support for vector __int128_t,
817	vector __uint128_t, vector __int128, and vector unsigned __int128
818	as a container type for TImode operations that need to be done in
819	VSX/Altivec registers.
820	(rs6000_macro_to_expand): Likewise.
821	(altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
822	to support 128-bit integer instructions vaddcuq, vadduqm,
823	vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
824	(altivec_resolve_overloaded_builtin): Add support for V1TImode.
825
826	* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
827	for V1TImode, and set up preferences to use VSX/Altivec
828	registers.  Setup VSX reload handlers.
829	(rs6000_debug_reg_global): Likewise.
830	(rs6000_init_hard_regno_mode_ok): Likewise.
831	(rs6000_preferred_simd_mode): Likewise.
832	(vspltis_constant): Do not allow V1TImode as easy altivec
833	constants.
834	(easy_altivec_constant): Likewise.
835	(output_vec_const_move): Likewise.
836	(rs6000_expand_vector_set): Convert V1TImode set and extract to
837	simple move.
838	(rs6000_expand_vector_extract): Likewise.
839	(reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
840	addressing.
841	(rs6000_const_vec): Add support for V1TImode.
842	(rs6000_emit_le_vsx_load): Swap double words when loading or
843	storing TImode/V1TImode.
844	(rs6000_emit_le_vsx_store): Likewise.
845	(rs6000_emit_le_vsx_move): Likewise.
846	(rs6000_emit_move): Add support for V1TImode.
847	(altivec_expand_ld_builtin): Likewise.
848	(altivec_expand_st_builtin): Likewise.
849	(altivec_expand_vec_init_builtin): Likewise.
850	(altivec_expand_builtin): Likewise.
851	(rs6000_init_builtins): Add support for V1TImode type.  Add
852	support for ISA 2.07 128-bit integer builtins.  Define type names
853	for the VSX/Altivec vector types.
854	(altivec_init_builtins): Add support for overloaded vector
855	functions with V1TImode type.
856	(rs6000_preferred_reload_class): Prefer Altivec registers for
857	V1TImode.
858	(rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
859	external function.
860	(rs6000_split_128bit_ok_p): Likewise.
861	(rs6000_handle_altivec_attribute): Create V1TImode from vector
862	__int128_t and vector __uint128_t.
863
864	* config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
865	and mode attributes.
866	(VSX_M): Likewise.
867	(VSX_M2): Likewise.
868	(VSm): Likewise.
869	(VSs): Likewise.
870	(VSr): Likewise.
871	(VSv): Likewise.
872	(VS_scalar): Likewise.
873	(VS_double): Likewise.
874	(vsx_set_v1ti): New builtin function to create V1TImode from
875	TImode.
876
877	* config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say
878	whether we support the ISA 2.07 128-bit integer arithmetic
879	instructions.
880	(ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
881	(enum rs6000_builtin_type_index): Add fields to hold V1TImode
882	and TImode types for use with the builtin functions.
883	(V1TI_type_node): Likewise.
884	(unsigned_V1TI_type_node): Likewise.
885	(intTI_type_internal_node): Likewise.
886	(uintTI_type_internal_node): Likewise.
887
888	* config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA
889	2.07 128-bit builtin functions.
890	(UNSPEC_VADDEUQM): Likewise.
891	(UNSPEC_VADDECUQ): Likewise.
892	(UNSPEC_VSUBCUQ): Likewise.
893	(UNSPEC_VSUBEUQM): Likewise.
894	(UNSPEC_VSUBECUQ): Likewise.
895	(VM): Add V1TImode to vector mode iterators.
896	(VM2): Likewise.
897	(VI_unit): Likewise.
898	(altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
899	(altivec_vaddcuq): Likewise.
900	(altivec_vsubuqm): Likewise.
901	(altivec_vsubcuq): Likewise.
902	(altivec_vaddeuqm): Likewise.
903	(altivec_vaddecuq): Likewise.
904	(altivec_vsubeuqm): Likewise.
905	(altivec_vsubecuq): Likewise.
906
907	* config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
908	mode iterators.
909	(BOOL_128): Likewise.
910	(BOOL_REGS_OUTPUT): Likewise.
911	(BOOL_REGS_OP1): Likewise.
912	(BOOL_REGS_OP2): Likewise.
913	(BOOL_REGS_UNARY): Likewise.
914	(BOOL_REGS_AND_CR0): Likewise.
915
916	* config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
917	128-bit integer builtin support.
918	(vec_vadduqm): Likewise.
919	(vec_vaddecuq): Likewise.
920	(vec_vaddeuqm): Likewise.
921	(vec_vsubecuq): Likewise.
922	(vec_vsubeuqm): Likewise.
923	(vec_vsubcuq): Likewise.
924	(vec_vsubuqm): Likewise.
925
926	* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
927	Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
928	vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
929	128-bit integer add/subtract to ISA 2.07.
930
9312014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
932
933	Apply mainline r207798
934	2014-02-26  Alan Modra  <amodra@gmail.com>
935	PR target/58675
936	PR target/57935
937	* config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
938	find_replacement on parts of insn rtl that might be reloaded.
939
940	Backport from mainline r208287
941	2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
942
943	* config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
944	reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
945	constraint on constants to permit them being loaded into
946	GENERAL_REGS or BASE_REGS.
947
9482014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
949
950	Backport from mainline r207699.
951	2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
952
953	PR target/60137
954	* config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
955	for VSX/Altivec vectors that land in GPR registers.
956
957	Backport from mainline r207808.
958	2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
959
960	PR target/60203
961	* config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
962	(mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
963	into 64-bit and 32-bit moves.  On 64-bit moves, add support for
964	using direct move instructions on ISA 2.07.  Also adjust
965	instruction length for 64-bit.
966	(mov<mode>_64bit, TFmode/TDmode): Likewise.
967	(mov<mode>_32bit, TFmode/TDmode): Likewise.
968
969	Backport from mainline r207868.
970	2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
971
972	PR target/60203
973	* config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
974	Split 64-bit moves into 2 patterns.  Do not allow the use of
975	direct move for TDmode in little endian, since the decimal value
976	has little endian bytes within a word, but the 64-bit pieces are
977	ordered in a big endian fashion, and normal subreg's of TDmode are
978	not allowed.
979	(mov<mode>_64bit_dm): Likewise.
980	(movtd_64bit_nodm): Likewise.
981
9822014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
983
984	Backport from mainline r207658
985	2014-02-06  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
986
987	* config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
988	big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
989	-mcall-openbsd, or -mcall-linux.
990	(CC1_ENDIAN_BIG_SPEC): Remove.
991	(CC1_ENDIAN_LITTLE_SPEC): Remove.
992	(CC1_ENDIAN_DEFAULT_SPEC): Remove.
993	(CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
994	(SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
995	and %cc1_endian_default.
996	* config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
997
9982014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
999
1000	Little Endian Vector API Support
1001	Backport from mainline r206443
1002	2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1003
1004	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
1005	two duplicate entries.
1006
1007	Backport from mainline r206494
1008	2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1009
1010	* doc/invoke.texi: Add -maltivec={be,le} options, and document
1011	default element-order behavior for -maltivec.
1012	* config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
1013	* config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
1014	that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
1015	when targeting big endian, at least for now.
1016	* config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
1017
1018	Backport from mainline r206541
1019	2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1020
1021	* config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
1022
1023	Backport from mainline r206590
1024	2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1025
1026	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1027	Implement -maltivec=be for vec_insert and vec_extract.
1028
1029	Backport from mainline r206641
1030	2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
1031
1032	* config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
1033	and vmulosh rather than call gen_vec_widen_smult_*.
1034	(vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
1035	than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
1036	(vec_widen_smult_even_v16qi): Likewise.
1037	(vec_widen_umult_even_v8hi): Likewise.
1038	(vec_widen_smult_even_v8hi): Likewise.
1039	(vec_widen_umult_odd_v16qi): Likewise.
1040	(vec_widen_smult_odd_v16qi): Likewise.
1041	(vec_widen_umult_odd_v8hi): Likewise.
1042	(vec_widen_smult_odd_v8hi): Likewise.
1043	(vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
1044	vmuloub rather than call gen_vec_widen_umult_*.
1045	(vec_widen_umult_lo_v16qi): Likewise.
1046	(vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
1047	vmulosb rather than call gen_vec_widen_smult_*.
1048	(vec_widen_smult_lo_v16qi): Likewise.
1049	(vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
1050	rather than call gen_vec_widen_umult_*.
1051	(vec_widen_umult_lo_v8hi): Likewise.
1052	(vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
1053	rather than call gen_vec_widen_smult_*.
1054	(vec_widen_smult_lo_v8hi): Likewise.
1055
1056	Backport from mainline r207062
1057	2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1058
1059	* config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
1060	correction for little endian...
1061	* config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
1062	here.
1063
1064	Backport from mainline r207262
1065	2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1066
1067	* config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
1068	CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
1069	* config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
1070	-maltivec=be with LE targets.
1071	(vsx_mergeh_<mode>): Likewise.
1072	* config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New
1073	unspecs.
1074	(mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
1075	(altivec_vmrghb): Replace with define_expand and new
1076	*altivec_vmrghb_internal insn; adjust for -maltivec=be with LE
1077	targets.
1078	(altivec_vmrghb_direct): New define_insn.
1079	(altivec_vmrghh): Replace with define_expand and new
1080	*altivec_vmrghh_internal insn; adjust for -maltivec=be with LE
1081	targets.
1082	(altivec_vmrghh_direct): New define_insn.
1083	(altivec_vmrghw): Replace with define_expand and new
1084	*altivec_vmrghw_internal insn; adjust for -maltivec=be with LE
1085	targets.
1086	(altivec_vmrghw_direct): New define_insn.
1087	(*altivec_vmrghsf): Adjust for endianness.
1088	(altivec_vmrglb): Replace with define_expand and new
1089	*altivec_vmrglb_internal insn; adjust for -maltivec=be with LE
1090	targets.
1091	(altivec_vmrglb_direct): New define_insn.
1092	(altivec_vmrglh): Replace with define_expand and new
1093	*altivec_vmrglh_internal insn; adjust for -maltivec=be with LE
1094	targets.
1095	(altivec_vmrglh_direct): New define_insn.
1096	(altivec_vmrglw): Replace with define_expand and new
1097	*altivec_vmrglw_internal insn; adjust for -maltivec=be with LE
1098	targets.
1099	(altivec_vmrglw_direct): New define_insn.
1100	(*altivec_vmrglsf): Adjust for endianness.
1101	(vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
1102	(vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
1103	(vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
1104	(vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
1105	(vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
1106	(vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
1107	(vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
1108	(vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
1109
1110	Backport from mainline r207318
1111	2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1112
1113	* gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
1114	gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
1115	remove element index adjustment for endian (now handled in vsx.md
1116	and altivec.md).
1117	(altivec_expand_vec_perm_const): Use
1118	gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
1119	* gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
1120	(vsx_xxspltw_<mode>): Adjust element index for little endian.
1121	* gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
1122	define_expand and a new define_insn *altivec_vspltb_internal;
1123	adjust for -maltivec=be on a little endian target.
1124	(altivec_vspltb_direct): New.
1125	(altivec_vsplth): Divide into a define_expand and a new
1126	define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
1127	little endian target.
1128	(altivec_vsplth_direct): New.
1129	(altivec_vspltw): Divide into a define_expand and a new
1130	define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
1131	little endian target.
1132	(altivec_vspltw_direct): New.
1133	(altivec_vspltsf): Divide into a define_expand and a new
1134	define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
1135	a little endian target.
1136
1137	Backport from mainline r207326
1138	2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1139
1140	* config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
1141	unused variable "field".
1142	* config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
1143	(vsx_mergeh_<mode>): Likewise.
1144	* config/rs6000/altivec.md (altivec_vmrghb): Likewise.
1145	(altivec_vmrghh): Likewise.
1146	(altivec_vmrghw): Likewise.
1147	(altivec_vmrglb): Likewise.
1148	(altivec_vmrglh): Likewise.
1149	(altivec_vmrglw): Likewise.
1150	(altivec_vspltb): Add missing uses.
1151	(altivec_vsplth): Likewise.
1152	(altivec_vspltw): Likewise.
1153	(altivec_vspltsf): Likewise.
1154
1155	Backport from mainline r207414
1156	2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1157
1158	* config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
1159	(altivec_vsumsws): Add handling for -maltivec=be with a little
1160	endian target.
1161	(altivec_vsumsws_direct): New.
1162	(reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
1163	gen_altivec_vsumsws.
1164
1165	Backport from mainline r207415
1166	2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1167
1168	* config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
1169	for vector types other than V16QImode.
1170	* config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
1171	define_expand, and call altivec_expand_vec_perm_le when producing
1172	code with little endian element order.
1173	(*altivec_vperm_<mode>_internal): New insn having previous
1174	behavior of altivec_vperm_<mode>.
1175	(altivec_vperm_<mode>_uns): Change to a define_expand, and call
1176	altivec_expand_vec_perm_le when producing code with little endian
1177	element order.
1178	(*altivec_vperm_<mode>_uns_internal): New insn having previous
1179	behavior of altivec_vperm_<mode>_uns.
1180
1181	Backport from mainline r207520
1182	2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1183
1184	* altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
1185	(UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
1186	(UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
1187	(mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
1188	gen_altivec_vpkuwum.
1189	(altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
1190	BYTES_BIG_ENDIAN.
1191	(altivec_vpks<VI_char>ss): Likewise.
1192	(altivec_vpks<VI_char>us): Likewise.
1193	(altivec_vpku<VI_char>us): Likewise.
1194	(altivec_vpku<VI_char>um): Likewise.
1195	(altivec_vpku<VI_char>um_direct): New (copy of
1196	altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
1197	internal use).
1198	(altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
1199	target is little endian and -maltivec=be is not specified.
1200	(*altivec_vupkhs<VU_char>_direct): New (copy of
1201	altivec_vupkhs<VU_char> that always emits vupkhs*, for internal
1202	use).
1203	(altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
1204	target is little endian and -maltivec=be is not specified.
1205	(*altivec_vupkls<VU_char>_direct): New (copy of
1206	altivec_vupkls<VU_char> that always emits vupkls*, for internal
1207	use).
1208	(altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
1209	little endian and -maltivec=be is not specified.
1210	(altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
1211	little endian and -maltivec=be is not specified.
1212
1213	Backport from mainline r207521
1214	2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1215
1216	* config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
1217	generation for -maltivec=be.
1218	(altivec_vsumsws): Simplify redundant test.
1219
1220	Backport from mainline r207525
1221	2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1222
1223	* config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
1224	CODE_FOR_altivec_vpku[hw]um to
1225	CODE_FOR_altivec_vpku[hw]um_direct.
1226	* config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
1227	UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
1228	(vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
1229	UNSPEC_VUNPACK_LO_SIGN_DIRECT.
1230
1231	Backport from mainline r207814.
1232	2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1233
1234	* config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
1235	endian targets.
1236
1237	Backport from mainline r207815.
1238	2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1239
1240	* config/rs6000/altivec.md (p8_vmrgew): Handle little endian
1241	targets.
1242	(p8_vmrgow): Likewise.
1243
1244	Backport from mainline r207919.
1245	2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1246
1247	* config/rs6000/rs6000.c (vspltis_constant): Fix most significant
1248	bit of zero.
1249
1250	Backport from mainline 208019
1251	2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1252
1253	* config/rs6000/altivec.md (altivec_lvxl): Rename as
1254	*altivec_lvxl_<mode>_internal and use VM2 iterator instead of
1255	V4SI.
1256	(altivec_lvxl_<mode>): New define_expand incorporating
1257	-maltivec=be semantics where needed.
1258	(altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
1259	(altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
1260	semantics where needed.
1261	(altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
1262	(altivec_stvx_<mode>): New define_expand incorporating
1263	-maltivec=be semantics where needed.
1264	(altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
1265	VM2 iterator instead of V4SI.
1266	(altivec_stvxl_<mode>): New define_expand incorporating
1267	-maltivec=be semantics where needed.
1268	* config/rs6000/rs6000-builtin.def: Add new built-in definitions
1269	LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
1270	LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI,
1271	STVX_V2DF, STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI,
1272	STVXL_V2DF, STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI,
1273	STVXL_V16QI.
1274	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
1275	ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
1276	similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
1277	ALTIVEC_BUILTIN_STVXL.
1278	* config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New
1279	prototype.
1280	(altivec_expand_stvx_be): Likewise.
1281	* config/rs6000/rs6000.c (swap_selector_for_mode): New function.
1282	(altivec_expand_lvx_be): Likewise.
1283	(altivec_expand_stvx_be): Likewise.
1284	(altivec_expand_builtin): Add cases for
1285	ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
1286	ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
1287	(altivec_init_builtins): Add definitions for
1288	__builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
1289	__builtin_altivec_stvx_<mode>, and
1290	__builtin_altivec_stvxl_<mode>.
1291
1292	Backport from mainline 208021
1293	2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1294
1295	* config/rs6000/altivec.md (altivec_vsumsws): Replace second
1296	vspltw with vsldoi.
1297	(reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
1298	gen_altivec_vsumsws.
1299
1300	Backport from mainline 208049
1301	2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1302
1303	* config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
1304	define_insn with define_expand and new define_insn
1305	*altivec_lve<VI_char>x_internal.
1306	(altivec_stve<VI_char>x): Replace define_insn with define_expand
1307	and new define_insn *altivec_stve<VI_char>x_internal.
1308	* config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
1309	prototype.
1310	* config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
1311	lve*x built-ins.
1312	(altivec_expand_stvex_be): New function.
1313
1314	Backport from mainline
1315	2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1316	* config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
1317	to permit subregs.
1318
1319	Backport from mainline
1320	2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1321	* config/rs6000/vector.md (*vector_unordered<mode>): Change split
1322	to use canonical form for nor<mode>3.
1323
13242014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1325
1326	Backport from mainline
1327	2014-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
1328
1329	* config/rs6000/rs6000.opt (-mlra): Add switch to enable the LRA
1330	register allocator.
1331
1332	* config/rs6000/rs6000.c (TARGET_LRA_P): Add support for -mlra to
1333	enable the LRA register allocator.  Back port the changes from the
1334	trunk to enable LRA.
1335	(rs6000_legitimate_offset_address_p): Likewise.
1336	(legitimate_lo_sum_address_p): Likewise.
1337	(use_toc_relative_ref): Likewise.
1338	(rs6000_legitimate_address_p): Likewise.
1339	(rs6000_emit_move): Likewise.
1340	(rs6000_secondary_memory_needed_mode): Likewise.
1341	(rs6000_alloc_sdmode_stack_slot): Likewise.
1342	(rs6000_lra_p): Likewise.
1343
1344	* config/rs6000/sync.md (load_lockedti): Copy TI/PTI variables by
1345	64-bit parts to force the register allocator to allocate even/odd
1346	register pairs for the quad word atomic instructions.
1347	(store_conditionalti): Likewise.
1348
13492014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1350
1351	Back port from mainline
1352	2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
1353
1354	PR target/59909
1355	* doc/invoke.texi (RS/6000 and PowerPC Options): Document
1356	-mquad-memory-atomic.  Update -mquad-memory documentation to say
1357	it is only used for non-atomic loads/stores.
1358
1359	* config/rs6000/predicates.md (quad_int_reg_operand): Allow either
1360	-mquad-memory or -mquad-memory-atomic switches.
1361
1362	* config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
1363	-mquad-memory-atomic to ISA 2.07 support.
1364
1365	* config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
1366	to separate support of normal quad word memory operations (ldq,
1367	stq) from the atomic quad word memory operations.
1368
1369	* config/rs6000/rs6000.c (rs6000_option_override_internal): Add
1370	support to separate non-atomic quad word operations from atomic
1371	quad word operations.  Disable non-atomic quad word operations in
1372	little endian mode so that we don't have to swap words after the
1373	load and before the store.
1374	(quad_load_store_p): Add comment about atomic quad word support.
1375	(rs6000_opt_masks): Add -mquad-memory-atomic to the list of
1376	options printed with -mdebug=reg.
1377
1378	* config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
1379	-mquad-memory-atomic as the test for whether we have quad word
1380	atomic instructions.
1381	(TARGET_SYNC_HI_QI): If either -mquad-memory-atomic,
1382	-mquad-memory, or -mp8-vector are used, allow byte/half-word
1383	atomic operations.
1384
1385	* config/rs6000/sync.md (load_lockedti): Insure that the address
1386	is a proper indexed or indirect address for the lqarx instruction.
1387	On little endian systems, swap the hi/lo registers after the lqarx
1388	instruction.
1389	(load_lockedpti): Use indexed_or_indirect_operand predicate to
1390	insure the address is valid for the lqarx instruction.
1391	(store_conditionalti): Insure that the address is a proper indexed
1392	or indirect address for the stqcrx. instruction.  On little endian
1393	systems, swap the hi/lo registers before doing the stqcrx.
1394	instruction.
1395	(store_conditionalpti): Use indexed_or_indirect_operand predicate to
1396	insure the address is valid for the stqcrx. instruction.
1397
1398	* gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
1399	Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
1400	type of quad memory support is available.
1401
14022014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1403
1404	Apply mainline r202190, powerpc64le multilibs and multiarch dir
1405	2013-09-03  Alan Modra  <amodra@gmail.com>
1406
1407	* config.gcc (powerpc*-*-linux*): Add support for little-endian
1408	multilibs to big-endian target and vice versa.
1409	* config/rs6000/t-linux64: Use := assignment on all vars.
1410	(MULTILIB_EXTRA_OPTS): Remove fPIC.
1411	(MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
1412	* config/rs6000/t-linux64le: New file.
1413	* config/rs6000/t-linux64bele: New file.
1414	* config/rs6000/t-linux64lebe: New file.
1415
14162014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1417
1418	Back port from mainline
1419	2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
1420
1421	PR target/59844
1422	* config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
1423	endian support, remove tests for WORDS_BIG_ENDIAN.
1424	(p8_mfvsrd_3_<mode>): Likewise.
1425	(reload_gpr_from_vsx<mode>): Likewise.
1426	(reload_gpr_from_vsxsf): Likewise.
1427	(p8_mfvsrd_4_disf): Likewise.
1428
14292014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1430
1431	Backport from mainline
1432	2013-04-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1433
1434	PR target/56843
1435	* config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
1436	(rs6000_emit_swdiv_low_precision): Remove.
1437	(rs6000_emit_swdiv): Rewrite to handle between one and four
1438	iterations of Newton-Raphson generally; modify required number of
1439	iterations for some cases.
1440	* config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
1441
14422014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1443
1444	Backport from mainline
1445	2013-08-19  Peter Bergner  <bergner@vnet.ibm.com>
1446		    Jakub Jelinek  <jakub@redhat.com>
1447
1448	* builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
1449	(BUILT_IN_FABSD64): Likewise.
1450	(BUILT_IN_FABSD128): Likewise.
1451	* builtins.c (expand_builtin): Add support for
1452	new DFP ABS builtins.
1453	(fold_builtin_1): Likewise.
1454	* config/rs6000/dfp.md
1455	(*abstd2_fpr): Handle non-overlapping destination
1456	and source operands.
1457	(*nabstd2_fpr): Likewise.
1458
14592014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1460
1461	Apply mainline r205060.
1462	2013-11-20  Alan Modra  <amodra@gmail.com>
1463	* config/rs6000/sysv4.h (CC1_ENDIAN_LITTLE_SPEC): Define as empty.
1464	* config/rs6000/rs6000.c (rs6000_option_override_internal): Default
1465	to strict alignment on older processors when little-endian.
1466	* config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to power8
1467	for ELFv2.
1468
14692014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1470
1471	POWER ELFv2 ABI Support
1472	Backport from mainline r204842:
1473
1474	2013-11-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1475
1476	* doc/invoke.texi (-mabi=elfv1, -mabi=elfv2): Document.
1477
1478	Backport from mainline r204809:
1479
1480	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1481
1482	* config/rs6000/sysv4le.h (LINUX64_DEFAULT_ABI_ELFv2): Define.
1483
1484	Backport from mainline r204808:
1485
1486	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1487		    Alan Modra  <amodra@gmail.com>
1488
1489	* config/rs6000/rs6000.h (RS6000_SAVE_AREA): Handle ABI_ELFv2.
1490	(RS6000_SAVE_TOC): Remove.
1491	(RS6000_TOC_SAVE_SLOT): New macro.
1492	* config/rs6000/rs6000.c (rs6000_parm_offset): New function.
1493	(rs6000_parm_start): Use it.
1494	(rs6000_function_arg_advance_1): Likewise.
1495	(rs6000_emit_prologue): Use RS6000_TOC_SAVE_SLOT.
1496	(rs6000_emit_epilogue): Likewise.
1497	(rs6000_call_aix): Likewise.
1498	(rs6000_output_function_prologue): Do not save/restore r11
1499	around calling _mcount for ABI_ELFv2.
1500
1501	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1502		    Alan Modra  <amodra@gmail.com>
1503
1504	* config/rs6000/rs6000-protos.h (rs6000_reg_parm_stack_space):
1505	Add prototype.
1506	* config/rs6000/rs6000.h (RS6000_REG_SAVE): Remove.
1507	(REG_PARM_STACK_SPACE): Call rs6000_reg_parm_stack_space.
1508	* config/rs6000/rs6000.c (rs6000_parm_needs_stack): New function.
1509	(rs6000_function_parms_need_stack): Likewise.
1510	(rs6000_reg_parm_stack_space): Likewise.
1511	(rs6000_function_arg): Do not replace BLKmode by Pmode when
1512	returning a register argument.
1513
1514	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1515		    Michael Gschwind  <mkg@us.ibm.com>
1516
1517	* config/rs6000/rs6000.h (FP_ARG_MAX_RETURN): New macro.
1518	(ALTIVEC_ARG_MAX_RETURN): Likewise.
1519	(FUNCTION_VALUE_REGNO_P): Use them.
1520	* config/rs6000/rs6000.c (TARGET_RETURN_IN_MSB): Define.
1521	(rs6000_return_in_msb): New function.
1522	(rs6000_return_in_memory): Handle ELFv2 homogeneous aggregates.
1523	Handle aggregates of up to 16 bytes for ELFv2.
1524	(rs6000_function_value): Handle ELFv2 homogeneous aggregates.
1525
1526	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1527		    Michael Gschwind  <mkg@us.ibm.com>
1528
1529	* config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define.
1530	* config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function.
1531	(rs6000_discover_homogeneous_aggregate): Likewise.
1532	(rs6000_function_arg_boundary): Handle homogeneous aggregates.
1533	(rs6000_function_arg_advance_1): Likewise.
1534	(rs6000_function_arg): Likewise.
1535	(rs6000_arg_partial_bytes): Likewise.
1536	(rs6000_psave_function_arg): Handle BLKmode arguments.
1537
1538	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1539		    Michael Gschwind  <mkg@us.ibm.com>
1540
1541	* config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define.
1542	* config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function.
1543	(rs6000_discover_homogeneous_aggregate): Likewise.
1544	(rs6000_function_arg_boundary): Handle homogeneous aggregates.
1545	(rs6000_function_arg_advance_1): Likewise.
1546	(rs6000_function_arg): Likewise.
1547	(rs6000_arg_partial_bytes): Likewise.
1548	(rs6000_psave_function_arg): Handle BLKmode arguments.
1549
1550	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1551
1552	* config/rs6000/rs6000.c (machine_function): New member
1553	r2_setup_needed.
1554	(rs6000_emit_prologue): Set r2_setup_needed if necessary.
1555	(rs6000_output_mi_thunk): Set r2_setup_needed.
1556	(rs6000_output_function_prologue): Output global entry point
1557	prologue and local entry point marker if needed for ABI_ELFv2.
1558	Output -mprofile-kernel code here.
1559	(output_function_profiler): Do not output -mprofile-kernel
1560	code here; moved to rs6000_output_function_prologue.
1561	(rs6000_file_start): Output ".abiversion 2" for ABI_ELFv2.
1562
1563	(rs6000_emit_move): Do not handle dot symbols for ABI_ELFv2.
1564	(rs6000_output_function_entry): Likewise.
1565	(rs6000_assemble_integer): Likewise.
1566	(rs6000_elf_encode_section_info): Likewise.
1567	(rs6000_elf_declare_function_name): Do not create dot symbols
1568	or .opd section for ABI_ELFv2.
1569
1570	(rs6000_trampoline_size): Update for ABI_ELFv2 trampolines.
1571	(rs6000_trampoline_init): Likewise.
1572	(rs6000_elf_file_end): Call file_end_indicate_exec_stack
1573	for ABI_ELFv2.
1574
1575	(rs6000_call_aix): Handle ELFv2 indirect calls.  Do not check
1576	for function descriptors in ABI_ELFv2.
1577
1578	* config/rs6000/rs6000.md ("*call_indirect_aix<mode>"): Support
1579	on ABI_AIX only, not ABI_ELFv2.
1580	("*call_value_indirect_aix<mode>"): Likewise.
1581	("*call_indirect_elfv2<mode>"): New pattern.
1582	("*call_value_indirect_elfv2<mode>"): Likewise.
1583
1584	* config/rs6000/predicates.md ("symbol_ref_operand"): Do not
1585	check for function descriptors in ABI_ELFv2.
1586	("current_file_function_operand"): Likewise.
1587
1588	* config/rs6000/ppc-asm.h [__powerpc64__ && _CALL_ELF == 2]:
1589	(toc): Undefine.
1590	(FUNC_NAME): Define ELFv2 variant.
1591	(JUMP_TARGET): Likewise.
1592	(FUNC_START): Likewise.
1593	(HIDDEN_FUNC): Likewise.
1594	(FUNC_END): Likeiwse.
1595
1596	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1597
1598	* config.gcc [powerpc*-*-* | rs6000-*-*]: Support --with-abi=elfv1
1599	and --with-abi=elfv2.
1600	* config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Add "abi".
1601	* config/rs6000/rs6000.opt (mabi=elfv1): New option.
1602	(mabi=elfv2): Likewise.
1603	* config/rs6000/rs6000-opts.h (enum rs6000_abi): Add ABI_ELFv2.
1604	* config/rs6000/linux64.h (DEFAULT_ABI): Do not hard-code to AIX_ABI
1605	if !RS6000_BI_ARCH.
1606	(ELFv2_ABI_CHECK): New macro.
1607	(SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set
1608	rs6000_current_abi to ABI_AIX or ABI_ELFv2.
1609	(GLIBC_DYNAMIC_LINKER64): Support ELFv2 ld.so version.
1610	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
1611	_CALL_ELF and __STRUCT_PARM_ALIGN__ if appropriate.
1612
1613	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Handle ABI_ELFv2.
1614	(debug_stack_info): Likewise.
1615	(rs6000_file_start): Treat ABI_ELFv2 the same as ABI_AIX.
1616	(rs6000_legitimize_tls_address): Likewise.
1617	(rs6000_conditional_register_usage): Likewise.
1618	(rs6000_emit_move): Likewise.
1619	(init_cumulative_args): Likewise.
1620	(rs6000_function_arg_advance_1): Likewise.
1621	(rs6000_function_arg): Likewise.
1622	(rs6000_arg_partial_bytes): Likewise.
1623	(rs6000_output_function_entry): Likewise.
1624	(rs6000_assemble_integer): Likewise.
1625	(rs6000_savres_strategy): Likewise.
1626	(rs6000_stack_info): Likewise.
1627	(rs6000_function_ok_for_sibcall): Likewise.
1628	(rs6000_emit_load_toc_table): Likewise.
1629	(rs6000_savres_routine_name): Likewise.
1630	(ptr_regno_for_savres): Likewise.
1631	(rs6000_emit_prologue): Likewise.
1632	(rs6000_emit_epilogue): Likewise.
1633	(rs6000_output_function_epilogue): Likewise.
1634	(output_profile_hook): Likewise.
1635	(output_function_profiler): Likewise.
1636	(rs6000_trampoline_size): Likewise.
1637	(rs6000_trampoline_init): Likewise.
1638	(rs6000_elf_output_toc_section_asm_op): Likewise.
1639	(rs6000_elf_encode_section_info): Likewise.
1640	(rs6000_elf_reloc_rw_mask): Likewise.
1641	(rs6000_elf_declare_function_name): Likewise.
1642	(rs6000_function_arg_boundary): Treat ABI_ELFv2 the same as ABI_AIX,
1643	except that rs6000_compat_align_parm is always assumed false.
1644	(rs6000_gimplify_va_arg): Likewise.
1645	(rs6000_call_aix): Update comment.
1646	(rs6000_sibcall_aix): Likewise.
1647	* config/rs6000/rs6000.md ("tls_gd_aix<TLSmode:tls_abi_suffix>"):
1648	Treat ABI_ELFv2 the same as ABI_AIX.
1649	("*tls_gd_call_aix<TLSmode:tls_abi_suffix>"): Likewise.
1650	("tls_ld_aix<TLSmode:tls_abi_suffix>"): Likewise.
1651	("*tls_ld_call_aix<TLSmode:tls_abi_suffix>"): Likewise.
1652	("load_toc_aix_si"): Likewise.
1653	("load_toc_aix_di"): Likewise.
1654	("call"): Likewise.
1655	("call_value"): Likewise.
1656	("*call_local_aix<mode>"): Likewise.
1657	("*call_value_local_aix<mode>"): Likewise.
1658	("*call_nonlocal_aix<mode>"): Likewise.
1659	("*call_value_nonlocal_aix<mode>"): Likewise.
1660	("*call_indirect_aix<mode>"): Likewise.
1661	("*call_value_indirect_aix<mode>"): Likewise.
1662	("sibcall"): Likewise.
1663	("sibcall_value"): Likewise.
1664	("*sibcall_aix<mode>"): Likewise.
1665	("*sibcall_value_aix<mode>"): Likewise.
1666	* config/rs6000/predicates.md ("symbol_ref_operand"): Likewise.
1667	("current_file_function_operand"): Likewise.
1668
1669	Backport from mainline r204807:
1670
1671	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1672
1673	* config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Simplify logic
1674	by making use of the fact that for vector / floating point arguments
1675	passed both in VRs/FPRs and in the fixed parameter area, the partial
1676	bytes mechanism is in fact not used.
1677
1678	Backport from mainline r204806:
1679
1680	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1681
1682	* config/rs6000/rs6000.c (rs6000_psave_function_arg): New function.
1683	(rs6000_finish_function_arg): Likewise.
1684	(rs6000_function_arg): Use rs6000_psave_function_arg and
1685	rs6000_finish_function_arg to handle both vector and floating
1686	point arguments that are also passed in GPRs / the stack.
1687
1688	Backport from mainline r204805:
1689
1690	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1691
1692	* config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Remove TYPE argument.
1693	(USE_ALTIVEC_FOR_ARG_P): Likewise.
1694	(rs6000_darwin64_record_arg_advance_recurse): Update uses.
1695	(rs6000_function_arg_advance_1):Likewise.
1696	(rs6000_darwin64_record_arg_recurse): Likewise.
1697	(rs6000_function_arg): Likewise.
1698	(rs6000_arg_partial_bytes): Likewise.
1699
1700	Backport from mainline r204804:
1701
1702	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1703
1704	* config/rs6000/rs6000.c (rs6000_option_override_internal): Replace
1705	"DEFAULT_ABI != ABI_AIX" test by testing for ABI_V4 or ABI_DARWIN.
1706	(rs6000_savres_strategy): Likewise.
1707	(rs6000_return_addr): Likewise.
1708	(rs6000_emit_load_toc_table): Replace "DEFAULT_ABI != ABI_AIX" by
1709	testing for ABI_V4 (since ABI_DARWIN is impossible here).
1710	(rs6000_emit_prologue): Likewise.
1711	(legitimate_lo_sum_address_p): Simplify DEFAULT_ABI test.
1712	(rs6000_elf_declare_function_name): Remove duplicated test.
1713	* config/rs6000/rs6000.md ("load_toc_v4_PIC_1"): Explicitly test
1714	for ABI_V4 (instead of "DEFAULT_ABI != ABI_AIX" test).
1715	("load_toc_v4_PIC_1_normal"): Likewise.
1716	("load_toc_v4_PIC_1_476"): Likewise.
1717	("load_toc_v4_PIC_1b"): Likewise.
1718	("load_toc_v4_PIC_1b_normal"): Likewise.
1719	("load_toc_v4_PIC_1b_476"): Likewise.
1720	("load_toc_v4_PIC_2"): Likewise.
1721	("load_toc_v4_PIC_3b"): Likewise.
1722	("load_toc_v4_PIC_3c"): Likewise.
1723	* config/rs6000/rs6000.h (RS6000_REG_SAVE): Simplify DEFAULT_ABI test.
1724	(RS6000_SAVE_AREA): Likewise.
1725	(FP_ARG_MAX_REG): Likewise.
1726	(RETURN_ADDRESS_OFFSET): Likewise.
1727	* config/rs6000/sysv.h (TARGET_TOC): Test for ABI_V4 instead
1728	of ABI_AIX.
1729	(SUBTARGET_OVERRIDE_OPTIONS): Likewise.
1730	(MINIMAL_TOC_SECTION_ASM_OP): Likewise.
1731
1732	Backport from mainline r204803:
1733
1734	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1735
1736	* config/rs6000/rs6000.c (rs6000_call_indirect_aix): Rename to ...
1737	(rs6000_call_aix): ... this.  Handle both direct and indirect calls.
1738	Create call insn directly instead of via various gen_... routines.
1739	Mention special registers used by the call in CALL_INSN_FUNCTION_USAGE.
1740	(rs6000_sibcall_aix): New function.
1741	* config/rs6000/rs6000.md (TOC_SAVE_OFFSET_32BIT): Remove.
1742	(TOC_SAVE_OFFSET_64BIT): Likewise.
1743	(AIX_FUNC_DESC_TOC_32BIT): Likewise.
1744	(AIX_FUNC_DESC_TOC_64BIT): Likewise.
1745	(AIX_FUNC_DESC_SC_32BIT): Likewise.
1746	(AIX_FUNC_DESC_SC_64BIT): Likewise.
1747	("call" expander): Call rs6000_call_aix.
1748	("call_value" expander): Likewise.
1749	("call_indirect_aix<ptrsize>"): Replace this pattern ...
1750	("call_indirect_aix<ptrsize>_nor11"): ... and this pattern ...
1751	("*call_indirect_aix<mode>"): ... by this insn pattern.
1752	("call_value_indirect_aix<ptrsize>"): Replace this pattern ...
1753	("call_value_indirect_aix<ptrsize>_nor11"): ... and this pattern ...
1754	("*call_value_indirect_aix<mode>"): ... by this insn pattern.
1755	("*call_nonlocal_aix32", "*call_nonlocal_aix64"): Replace by ...
1756	("*call_nonlocal_aix<mode>"): ... this pattern.
1757	("*call_value_nonlocal_aix32", "*call_value_nonlocal_aix64"): Replace
1758	("*call_value_nonlocal_aix<mode>"): ... by this pattern.
1759	("*call_local_aix<mode>"): New insn pattern.
1760	("*call_value_local_aix<mode>"): Likewise.
1761	("sibcall" expander): Call rs6000_sibcall_aix.
1762	("sibcall_value" expander): Likewise.  Move earlier in file.
1763	("*sibcall_nonlocal_aix<mode>"): Replace by ...
1764	("*sibcall_aix<mode>"): ... this pattern.
1765	("*sibcall_value_nonlocal_aix<mode>"): Replace by ...
1766	("*sibcall_value_aix<mode>"): ... this pattern.
1767	* config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): Remove.
1768	(rs6000_call_aix): Add prototype.
1769	(rs6000_sibcall_aix): Likewise.
1770
1771	Backport from mainline r204799:
1772
1773	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1774
1775	* config/rs6000/rs6000.c (rs6000_emit_prologue): Do not place a
1776	RTX_FRAME_RELATED_P marker on the UNSPEC_MOVESI_FROM_CR insn.
1777	Instead, add USEs of all modified call-saved CR fields to the
1778	insn storing the result to the stack slot, and provide an
1779	appropriate REG_FRAME_RELATED_EXPR for that insn.
1780	* config/rs6000/rs6000.md ("*crsave"): New insn pattern.
1781	* config/rs6000/predicates.md ("crsave_operation"): New predicate.
1782
17832014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1784
1785	ELFv2 ABI Call Support
1786	Backport from mainline r204798:
1787
1788	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1789		    Alan Modra  <amodra@gmail.com>
1790
1791	* function.c (assign_parms): Use all.reg_parm_stack_space instead
1792	of re-evaluating REG_PARM_STACK_SPACE target macro.
1793	(locate_and_pad_parm): New parameter REG_PARM_STACK_SPACE.  Use it
1794	instead of evaluating target macro REG_PARM_STACK_SPACE every time.
1795	(assign_parm_find_entry_rtl): Update call.
1796	* calls.c (initialize_argument_information): Update call.
1797	(emit_library_call_value_1): Likewise.
1798	* expr.h (locate_and_pad_parm): Update prototype.
1799
1800	Backport from mainline r204797:
1801
1802	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1803
1804	* calls.c (store_unaligned_arguments_into_pseudos): Skip PARALLEL
1805	arguments.
1806
1807	Backport from mainline r197003:
1808
1809	2013-03-23  Eric Botcazou  <ebotcazou@adacore.com>
1810
1811	* calls.c (expand_call): Add missing guard to code handling return
1812	of non-BLKmode structures in MSB.
1813	* function.c (expand_function_end): Likewise.
1814
18152014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1816
1817	Backport from mainline r201750.
1818	Note: Default setting of -mcompat-align-parm inverted!
1819
1820	2013-08-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1821
1822	PR target/57949
1823	* doc/invoke.texi: Add documentation of mcompat-align-parm
1824	option.
1825	* config/rs6000/rs6000.opt: Add mcompat-align-parm option.
1826	* config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
1827	and Linux, correct BLKmode alignment when 128-bit alignment is
1828	required and compatibility flag is not set.
1829	(rs6000_gimplify_va_arg): For AIX and Linux, honor specified
1830	alignment for zero-size arguments when compatibility flag is not
1831	set.
1832
18332014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1834
1835	Little Endian Vector Support
1836	Backport from mainline r205333
1837	2013-11-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1838
1839	* config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Correct
1840	for little endian.
1841
1842	Backport from mainline r205241
1843	2013-11-21  Bill Schmidt  <wschmidt@vnet.ibm.com>
1844
1845	* config/rs6000/vector.md (vec_pack_trunc_v2df): Revert previous
1846	little endian change.
1847	(vec_pack_sfix_trunc_v2df): Likewise.
1848	(vec_pack_ufix_trunc_v2df): Likewise.
1849	* config/rs6000/rs6000.c (rs6000_expand_interleave): Correct
1850	double checking of endianness.
1851
1852	Backport from mainline r205146
1853	2013-11-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1854
1855	* config/rs6000/vsx.md (vsx_set_<mode>): Adjust for little endian.
1856	(vsx_extract_<mode>): Likewise.
1857	(*vsx_extract_<mode>_one_le): New LE variant on
1858	*vsx_extract_<mode>_zero.
1859	(vsx_extract_v4sf): Adjust for little endian.
1860
1861	Backport from mainline r205080
1862	2013-11-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1863
1864	* config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Adjust
1865	V16QI vector splat case for little endian.
1866
1867	Backport from mainline r205045:
1868
1869	2013-11-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1870
1871	* config/rs6000/vector.md ("mov<mode>"): Do not call
1872	rs6000_emit_le_vsx_move to move into or out of GPRs.
1873	* config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Assert
1874	source and destination are not GPR hard regs.
1875
1876	Backport from mainline r204920
1877	2011-11-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1878
1879	* config/rs6000/rs6000.c (rs6000_frame_related): Add split_reg
1880	parameter and use it in REG_FRAME_RELATED_EXPR note.
1881	(emit_frame_save): Call rs6000_frame_related with extra NULL_RTX
1882	parameter.
1883	(rs6000_emit_prologue): Likewise, but for little endian VSX
1884	stores, pass the source register of the store instead.
1885
1886	Backport from mainline r204862
1887	2013-11-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1888
1889	* config/rs6000/altivec.md (UNSPEC_VPERM_X, UNSPEC_VPERM_UNS_X):
1890	Remove.
1891	(altivec_vperm_<mode>): Revert earlier little endian change.
1892	(*altivec_vperm_<mode>_internal): Remove.
1893	(altivec_vperm_<mode>_uns): Revert earlier little endian change.
1894	(*altivec_vperm_<mode>_uns_internal): Remove.
1895	* config/rs6000/vector.md (vec_realign_load_<mode>): Revise
1896	commentary.
1897
1898	Backport from mainline r204441
1899	2013-11-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1900
1901	* config/rs6000/rs6000.c (rs6000_option_override_internal):
1902	Remove restriction against use of VSX instructions when generating
1903	code for little endian mode.
1904
1905	Backport from mainline r204440
1906	2013-11-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1907
1908	* config/rs6000/altivec.md (mulv4si3): Ensure we generate vmulouh
1909	for both big and little endian.
1910	(mulv8hi3): Swap input operands for merge high and merge low
1911	instructions for little endian.
1912
1913	Backport from mainline r204439
1914	2013-11-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1915
1916	* config/rs6000/altivec.md (vec_widen_umult_even_v16qi): Change
1917	define_insn to define_expand that uses even patterns for big
1918	endian and odd patterns for little endian.
1919	(vec_widen_smult_even_v16qi): Likewise.
1920	(vec_widen_umult_even_v8hi): Likewise.
1921	(vec_widen_smult_even_v8hi): Likewise.
1922	(vec_widen_umult_odd_v16qi): Likewise.
1923	(vec_widen_smult_odd_v16qi): Likewise.
1924	(vec_widen_umult_odd_v8hi): Likewise.
1925	(vec_widen_smult_odd_v8hi): Likewise.
1926	(altivec_vmuleub): New define_insn.
1927	(altivec_vmuloub): Likewise.
1928	(altivec_vmulesb): Likewise.
1929	(altivec_vmulosb): Likewise.
1930	(altivec_vmuleuh): Likewise.
1931	(altivec_vmulouh): Likewise.
1932	(altivec_vmulesh): Likewise.
1933	(altivec_vmulosh): Likewise.
1934
1935	Backport from mainline r204395
1936	2013-11-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1937
1938	* config/rs6000/vector.md (vec_pack_sfix_trunc_v2df): Adjust for
1939	little endian.
1940	(vec_pack_ufix_trunc_v2df): Likewise.
1941
1942	Backport from mainline r204363
1943	2013-11-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1944
1945	* config/rs6000/altivec.md (vec_widen_umult_hi_v16qi): Swap
1946	arguments to merge instruction for little endian.
1947	(vec_widen_umult_lo_v16qi): Likewise.
1948	(vec_widen_smult_hi_v16qi): Likewise.
1949	(vec_widen_smult_lo_v16qi): Likewise.
1950	(vec_widen_umult_hi_v8hi): Likewise.
1951	(vec_widen_umult_lo_v8hi): Likewise.
1952	(vec_widen_smult_hi_v8hi): Likewise.
1953	(vec_widen_smult_lo_v8hi): Likewise.
1954
1955	Backport from mainline r204350
1956	2013-11-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1957
1958	* config/rs6000/vsx.md (*vsx_le_perm_store_<mode> for VSX_D):
1959	Replace the define_insn_and_split with a define_insn and two
1960	define_splits, with the split after reload re-permuting the source
1961	register to its original value.
1962	(*vsx_le_perm_store_<mode> for VSX_W): Likewise.
1963	(*vsx_le_perm_store_v8hi): Likewise.
1964	(*vsx_le_perm_store_v16qi): Likewise.
1965
1966	Backport from mainline r204321
1967	2013-11-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1968
1969	* config/rs6000/vector.md (vec_pack_trunc_v2df):  Adjust for
1970	little endian.
1971
1972	Backport from mainline r204321
1973	2013-11-02  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
1974
1975	* config/rs6000/rs6000.c (rs6000_expand_vector_set): Adjust for
1976	little endian.
1977
1978	Backport from mainline r203980
1979	2013-10-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1980
1981	* config/rs6000/altivec.md (mulv8hi3): Adjust for little endian.
1982
1983	Backport from mainline r203930
1984	2013-10-22  Bill Schmidt  <wschmidt@vnet.ibm.com>
1985
1986	* config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
1987	meaning of merge-high and merge-low masks for little endian; avoid
1988	use of vector-pack masks for little endian for mismatched modes.
1989
1990	Backport from mainline r203877
1991	2013-10-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1992
1993	* config/rs6000/altivec.md (vec_unpacku_hi_v16qi): Adjust for
1994	little endian.
1995	(vec_unpacku_hi_v8hi): Likewise.
1996	(vec_unpacku_lo_v16qi): Likewise.
1997	(vec_unpacku_lo_v8hi): Likewise.
1998
1999	Backport from mainline r203863
2000	2013-10-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2001
2002	* config/rs6000/rs6000.c (vspltis_constant): Make sure we check
2003	all elements for both endian flavors.
2004
2005	Backport from mainline r203714
2006	2013-10-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2007
2008	* gcc/config/rs6000/vector.md (vec_unpacks_hi_v4sf): Correct for
2009	endianness.
2010	(vec_unpacks_lo_v4sf): Likewise.
2011	(vec_unpacks_float_hi_v4si): Likewise.
2012	(vec_unpacks_float_lo_v4si): Likewise.
2013	(vec_unpacku_float_hi_v4si): Likewise.
2014	(vec_unpacku_float_lo_v4si): Likewise.
2015
2016	Backport from mainline r203713
2017	2013-10-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2018
2019	* config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE.
2020	(vsx_concat_v2sf): Likewise.
2021
2022	Backport from mainline r203458
2023	2013-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2024
2025	* config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to
2026	handle vector float as well.
2027	(*vsx_le_perm_load_v4si): Likewise.
2028	(*vsx_le_perm_store_v2di): Likewise.
2029	(*vsx_le_perm_store_v4si): Likewise.
2030
2031	Backport from mainline r203457
2032	2013-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2033
2034	* config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm
2035	directly to circumvent subtract from splat{31} workaround.
2036	* config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New
2037	prototype.
2038	* config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New.
2039	* config/rs6000/altivec.md (define_c_enum "unspec"): Add
2040	UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X.
2041	(altivec_vperm_<mode>): Convert to define_insn_and_split to
2042	separate big and little endian logic.
2043	(*altivec_vperm_<mode>_internal): New define_insn.
2044	(altivec_vperm_<mode>_uns): Convert to define_insn_and_split to
2045	separate big and little endian logic.
2046	(*altivec_vperm_<mode>_uns_internal): New define_insn.
2047	(vec_permv16qi): Add little endian logic.
2048
2049	Backport from mainline r203247
2050	2013-10-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2051
2052	* config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New.
2053	(altivec_expand_vec_perm_const): Call it.
2054
2055	Backport from mainline r203246
2056	2013-10-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2057
2058	* config/rs6000/vector.md (mov<mode>): Emit permuted move
2059	sequences for LE VSX loads and stores at expand time.
2060	* config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New
2061	prototype.
2062	* config/rs6000/rs6000.c (rs6000_const_vec): New.
2063	(rs6000_gen_le_vsx_permute): New.
2064	(rs6000_gen_le_vsx_load): New.
2065	(rs6000_gen_le_vsx_store): New.
2066	(rs6000_gen_le_vsx_move): New.
2067	* config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New.
2068	(*vsx_le_perm_load_v4si): New.
2069	(*vsx_le_perm_load_v8hi): New.
2070	(*vsx_le_perm_load_v16qi): New.
2071	(*vsx_le_perm_store_v2di): New.
2072	(*vsx_le_perm_store_v4si): New.
2073	(*vsx_le_perm_store_v8hi): New.
2074	(*vsx_le_perm_store_v16qi): New.
2075	(*vsx_xxpermdi2_le_<mode>): New.
2076	(*vsx_xxpermdi4_le_<mode>): New.
2077	(*vsx_xxpermdi8_le_V8HI): New.
2078	(*vsx_xxpermdi16_le_V16QI): New.
2079	(*vsx_lxvd2x2_le_<mode>): New.
2080	(*vsx_lxvd2x4_le_<mode>): New.
2081	(*vsx_lxvd2x8_le_V8HI): New.
2082	(*vsx_lxvd2x16_le_V16QI): New.
2083	(*vsx_stxvd2x2_le_<mode>): New.
2084	(*vsx_stxvd2x4_le_<mode>): New.
2085	(*vsx_stxvd2x8_le_V8HI): New.
2086	(*vsx_stxvd2x16_le_V16QI): New.
2087
2088	Backport from mainline r201235
2089	2013-07-24  Bill Schmidt  <wschmidt@linux.ibm.com>
2090	            Anton Blanchard <anton@au1.ibm.com>
2091
2092	* config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
2093	(altivec_vpks<VI_char>ss): Likewise.
2094	(altivec_vpks<VI_char>us): Likewise.
2095	(altivec_vpku<VI_char>us): Likewise.
2096	(altivec_vpku<VI_char>um): Likewise.
2097
2098	Backport from mainline r201208
2099	2013-07-24  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
2100	            Anton Blanchard <anton@au1.ibm.com>
2101
2102	* config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
2103	operands to vperm for little endian.
2104	* config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
2105	of lvsl to create the control mask for a vperm for little endian.
2106
2107	Backport from mainline r201195
2108	2013-07-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2109	            Anton Blanchard <anton@au1.ibm.com>
2110
2111	* config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
2112	two operands for little-endian.
2113
2114	Backport from mainline r201193
2115	2013-07-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2116	            Anton Blanchard <anton@au1.ibm.com>
2117
2118	* config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
2119	selection of field for vector splat in little endian mode.
2120
2121	Backport from mainline r201149
2122	2013-07-22  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
2123	            Anton Blanchard <anton@au1.ibm.com>
2124
2125	* config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
2126	endianness when selecting field to splat.
2127
21282014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2129
2130	Backport from mainline r205123:
2131
2132	2013-11-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2133
2134	* config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Do not
2135	allow subregs of TDmode in FPRs of smaller size in little-endian.
2136	(rs6000_split_multireg_move): When splitting an access to TDmode
2137	in FPRs, do not use simplify_gen_subreg.
2138
2139	Backport from mainline r204927:
2140
2141	2013-11-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2142
2143	* config/rs6000/rs6000.c (rs6000_emit_move): Use low word of
2144	sdmode_stack_slot also in little-endian mode.
2145
21462014-04-04  Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2147
2148	Power8 HTM Support
2149	Backport from mainline
2150	2013-12-03  Peter Bergner  <bergner@vnet.ibm.com>
2151
2152	* config/rs6000/htmintrin.h (_TEXASR_INSTRUCTION_FETCH_CONFLICT): Fix
2153	typo in macro name.
2154	(_TEXASRU_INSTRUCTION_FETCH_CONFLICT): Likewise.
2155
2156	Backport from mainline r205233.
2157	2013-11-21  Peter Bergner  <bergner@vnet.ibm.com>
2158
2159	* doc/extend.texi: Document htm builtins.
2160
2161	Backport from mainline
2162	2013-07-17  Iain Sandoe  <iain@codesourcery.com>
2163
2164	* config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
2165
2166	Backport from mainline
2167	2013-07-16  Peter Bergner <bergner@vnet.ibm.com>
2168
2169	* config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
2170	enable extra ISA flags with TARGET_HTM.
2171
2172	2013-07-16  Jakub Jelinek  <jakub@redhat.com>
2173		    Peter Bergner  <bergner@vnet.ibm.com>
2174
2175	* config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
2176	registers in the comment.
2177	(DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
2178	(DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
2179	rather than FIRST_PSEUDO_REGISTERS.
2180
2181	* config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
2182	* config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
2183	* config/rs6000/rs6000.opt: Add -mhtm option.
2184	* config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
2185	(ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
2186	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
2187	__HTM__ if the HTM instructions are available.
2188	* config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand)
2189	(htm_spr_reg_operand): New define_predicates.
2190	* config/rs6000/rs6000.md (define_attr "type"): Add htm.
2191	(TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
2192	Include htm.md.
2193	* config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2)
2194	(BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
2195	HTM builtin functions.
2196	* config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
2197	(rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
2198	(rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
2199	(rs6000_builtin_mask_calculate): Likewise.
2200	(rs6000_option_override_internal): Likewise.
2201	(bdesc_htm): Add new HTM builtin support.
2202	(htm_spr_num): New function.
2203	(htm_spr_regno): Likewise.
2204	(rs6000_htm_spr_icode): Likewise.
2205	(htm_expand_builtin): Likewise.
2206	(htm_init_builtins): Likewise.
2207	(rs6000_expand_builtin): Add support for HTM builtin functions.
2208	(rs6000_init_builtins): Likewise.
2209	(rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm option.
2210	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
2211	(TARGET_HTM, MASK_HTM): Define macros.
2212	(FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
2213	(FIXED_REGISTERS): Likewise.
2214	(CALL_USED_REGISTERS): Likewise.
2215	(CALL_REALLY_USED_REGISTERS): Likewise.
2216	(REG_ALLOC_ORDER): Likewise.
2217	(enum reg_class): Likewise.
2218	(REG_CLASS_NAMES): Likewise.
2219	(REG_CLASS_CONTENTS): Likewise.
2220	(REGISTER_NAMES): Likewise.
2221	(ADDITIONAL_REGISTER_NAMES): Likewise.
2222	(RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT)
2223	(RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
2224	(RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
2225	* config/rs6000/htm.md: New file.
2226	* config/rs6000/htmintrin.h: New file.
2227	* config/rs6000/htmxlintrin.h: New file.
2228
22292014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2230
2231	Power8 Base Support
2232	Apply mainline
2233	2013-11-23  Alan Modra  <amodra@gmail.com>
2234	* config/rs6000/vsx.md (fusion peepholes): Disable when !TARGET_VSX.
2235
2236	Backport from mainline
2237	2013-11-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
2238
2239	PR target/59054
2240	* config/rs6000/rs6000.md (movdi_internal32): Eliminate
2241	constraints that would allow DImode into the traditional Altivec
2242	registers, but cause undesirable code generation when loading 0 as
2243	a constant.
2244	(movdi_internal64): Likewise.
2245	(cmp<mode>_fpr): Do not use %x for CR register output.
2246	(extendsfdf2_fpr): Fix constraints when -mallow-upper-df and
2247	-mallow-upper-sf debug switches are used.
2248
2249	Backport from mainline
2250	2013-10-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
2251
2252	* config/rs6000/rs6000.c (enum rs6000_reload_reg_type): Add new
2253	fields to the reg_addr array that describes the valid addressing
2254	mode for any register, general purpose registers, floating point
2255	registers, and Altivec registers.
2256	(FIRST_RELOAD_REG_CLASS): Likewise.
2257	(LAST_RELOAD_REG_CLASS): Likewise.
2258	(struct reload_reg_map_type): Likewise.
2259	(reload_reg_map_type): Likewise.
2260	(RELOAD_REG_VALID): Likewise.
2261	(RELOAD_REG_MULTIPLE): Likewise.
2262	(RELOAD_REG_INDEXED): Likewise.
2263	(RELOAD_REG_OFFSET): Likewise.
2264	(RELOAD_REG_PRE_INCDEC): Likewise.
2265	(RELOAD_REG_PRE_MODIFY): Likewise.
2266	(reg_addr): Likewise.
2267	(mode_supports_pre_incdec_p): New helper functions to say whether
2268	a given mode supports PRE_INC, PRE_DEC, and PRE_MODIFY.
2269	(mode_supports_pre_modify_p): Likewise.
2270	(rs6000_debug_vector_unit): Rearrange the -mdebug=reg output to
2271	print the valid address mode bits for each mode.
2272	(rs6000_debug_print_mode): Likewise.
2273	(rs6000_debug_reg_global): Likewise.
2274	(rs6000_setup_reg_addr_masks): New function to set up the address
2275	mask bits for each type.
2276	(rs6000_init_hard_regno_mode_ok): Use memset to clear arrays.
2277	Call rs6000_setup_reg_addr_masks to set up the address mask bits.
2278	(rs6000_legitimate_address_p): Use mode_supports_pre_incdec_p and
2279	mode_supports_pre_modify_p to determine if PRE_INC, PRE_DEC, and
2280	PRE_MODIFY are supported.
2281	(rs6000_output_move_128bit): Change to use {src,dest}_vmx_p for altivec
2282	registers, instead of {src,dest}_av_p.
2283	(rs6000_print_options_internal): Tweak the debug output slightly.
2284
2285	Backport from mainline
2286	2013-10-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
2287
2288	* config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2,
2289	ceildf2, btruncdf2, instead of vsx_* name.
2290
2291	* config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic
2292	iterators to only do V2DF and V4SF here.  Move the DF code to
2293	rs6000.md where it is combined with SF mode.  Replace <VSv> with
2294	just 'v' since only vector operations are handled with these insns
2295	after moving the DF support to rs6000.md.
2296	(vsx_sub<mode>3): Likewise.
2297	(vsx_mul<mode>3): Likewise.
2298	(vsx_div<mode>3): Likewise.
2299	(vsx_fre<mode>2): Likewise.
2300	(vsx_neg<mode>2): Likewise.
2301	(vsx_abs<mode>2): Likewise.
2302	(vsx_nabs<mode>2): Likewise.
2303	(vsx_smax<mode>3): Likewise.
2304	(vsx_smin<mode>3): Likewise.
2305	(vsx_sqrt<mode>2): Likewise.
2306	(vsx_rsqrte<mode>2): Likewise.
2307	(vsx_fms<mode>4): Likewise.
2308	(vsx_nfma<mode>4): Likewise.
2309	(vsx_copysign<mode>3): Likewise.
2310	(vsx_btrunc<mode>2): Likewise.
2311	(vsx_floor<mode>2): Likewise.
2312	(vsx_ceil<mode>2): Likewise.
2313	(vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md.
2314	(vsx_sminsf3): Likewise.
2315	(vsx_fmadf4): Likewise.
2316	(vsx_fmsdf4): Likewise.
2317	(vsx_nfmadf4): Likewise.
2318	(vsx_nfmsdf4): Likewise.
2319	(vsx_cmpdf_internal1): Likewise.
2320
2321	* config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it
2322	simpler to select whether a target has SPE or traditional floating
2323	point support in iterators.
2324	(TARGET_DF_SPE): Likewise.
2325	(TARGET_SF_FPR): Likewise.
2326	(TARGET_DF_FPR): Likewise.
2327	(TARGET_SF_INSN): Macros to say whether floating point support
2328	exists for a given operation for expanders.
2329	(TARGET_DF_INSN): Likewise.
2330
2331	* config/rs6000/rs6000.c (Ftrad): New mode attributes to allow
2332	combining of SF/DF mode operations, using both traditional and VSX
2333	registers.
2334	(Fvsx): Likewise.
2335	(Ff): Likewise.
2336	(Fv): Likewise.
2337	(Fs): Likewise.
2338	(Ffre): Likewise.
2339	(FFRE): Likewise.
2340	(abs<mode>2): Combine SF/DF modes using traditional floating point
2341	instructions.  Add support for using the upper DF registers with
2342	VSX support, and SF registers with power8-vector support.  Update
2343	expanders for operations supported by both the SPE and traditional
2344	floating point units.
2345	(abs<mode>2_fpr): Likewise.
2346	(nabs<mode>2): Likewise.
2347	(nabs<mode>2_fpr): Likewise.
2348	(neg<mode>2): Likewise.
2349	(neg<mode>2_fpr): Likewise.
2350	(add<mode>3): Likewise.
2351	(add<mode>3_fpr): Likewise.
2352	(sub<mode>3): Likewise.
2353	(sub<mode>3_fpr): Likewise.
2354	(mul<mode>3): Likewise.
2355	(mul<mode>3_fpr): Likewise.
2356	(div<mode>3): Likewise.
2357	(div<mode>3_fpr): Likewise.
2358	(sqrt<mode>3): Likewise.
2359	(sqrt<mode>3_fpr): Likewise.
2360	(fre<Fs>): Likewise.
2361	(rsqrt<mode>2): Likewise.
2362	(cmp<mode>_fpr): Likewise.
2363	(smax<mode>3): Likewise.
2364	(smin<mode>3): Likewise.
2365	(smax<mode>3_vsx): Likewise.
2366	(smin<mode>3_vsx): Likewise.
2367	(negsf2): Delete SF operations that are merged with DF.
2368	(abssf2): Likewise.
2369	(addsf3): Likewise.
2370	(subsf3): Likewise.
2371	(mulsf3): Likewise.
2372	(divsf3): Likewise.
2373	(fres): Likewise.
2374	(fmasf4_fpr): Likewise.
2375	(fmssf4_fpr): Likewise.
2376	(nfmasf4_fpr): Likewise.
2377	(nfmssf4_fpr): Likewise.
2378	(sqrtsf2): Likewise.
2379	(rsqrtsf_internal1): Likewise.
2380	(smaxsf3): Likewise.
2381	(sminsf3): Likewise.
2382	(cmpsf_internal1): Likewise.
2383	(copysign<mode>3_fcpsgn): Add VSX/power8-vector support.
2384	(negdf2): Delete DF operations that are merged with SF.
2385	(absdf2): Likewise.
2386	(nabsdf2): Likewise.
2387	(adddf3): Likewise.
2388	(subdf3): Likewise.
2389	(muldf3): Likewise.
2390	(divdf3): Likewise.
2391	(fred): Likewise.
2392	(rsqrtdf_internal1): Likewise.
2393	(fmadf4_fpr): Likewise.
2394	(fmsdf4_fpr): Likewise.
2395	(nfmadf4_fpr): Likewise.
2396	(nfmsdf4_fpr): Likewise.
2397	(sqrtdf2): Likewise.
2398	(smaxdf3): Likewise.
2399	(smindf3): Likewise.
2400	(cmpdf_internal1): Likewise.
2401	(lrint<mode>di2): Use TARGET_<MODE>_FPR macro.
2402	(btrunc<mode>2): Delete separate expander, and combine with the
2403	insn and add VSX instruction support.  Use TARGET_<MODE>_FPR.
2404	(btrunc<mode>2_fpr): Likewise.
2405	(ceil<mode>2): Likewise.
2406	(ceil<mode>2_fpr): Likewise.
2407	(floor<mode>2): Likewise.
2408	(floor<mode>2_fpr): Likewise.
2409	(fma<mode>4_fpr): Combine SF and DF fused multiply/add support.
2410	Add support for using the upper registers with VSX and
2411	power8-vector.  Move insns to be closer to the define_expands. On
2412	VSX systems, prefer the traditional form of FMA over the VSX
2413	version, since the traditional form allows the target not to
2414	overlap with the inputs.
2415	(fms<mode>4_fpr): Likewise.
2416	(nfma<mode>4_fpr): Likewise.
2417	(nfms<mode>4_fpr): Likewise.
2418
2419	Backport from mainline
2420	2013-09-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
2421
2422	* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
2423	DFmode, DImode, and SFmode in the upper VSX registers based on the
2424	-mupper-regs-{df,sf} flags.  Fix wu constraint to be ALTIVEC_REGS
2425	if -mpower8-vector.  Combine -mvsx-timode handling with the rest
2426	of the VSX register handling.
2427
2428	* config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters.
2429	(f32_sv): Likewise.
2430	(zero_extendsidi2_lfiwzx): Add support for loading into the
2431	Altivec registers with -mpower8-vector.  Use wu/wv constraints to
2432	only do VSX memory options on Altivec registers.
2433	(extendsidi2_lfiwax): Likewise.
2434	(extendsfdf2_fpr): Likewise.
2435	(mov<mode>_hardfloat, SF/SD modes): Likewise.
2436	(mov<mode>_hardfloat32, DF/DD modes): Likewise.
2437	(mov<mode>_hardfloat64, DF/DD modes): Likewise.
2438	(movdi_internal64): Likewise.
2439
2440	Backport from mainline
2441	2013-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
2442
2443	* config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
2444	reload helper function arrays into a single array reg_addr.
2445	(reload_fpr_gpr): Likewise.
2446	(reload_gpr_vsx): Likewise.
2447	(reload_vsx_gpr): Likewise.
2448	(struct rs6000_reg_addr): Likewise.
2449	(reg_addr): Likewise.
2450	(rs6000_debug_reg_global): Change rs6000_vector_reload,
2451	reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
2452	(rs6000_init_hard_regno_mode_ok): Likewise.
2453	(rs6000_secondary_reload_direct_move): Likewise.
2454	(rs6000_secondary_reload): Likewise.
2455
2456	* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
2457	constraints: wu, ww, and wy.  Repurpose wv constraint added during
2458	power8 changes.  Put wg constraint in alphabetical order.
2459
2460	* config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
2461	for future work to add ISA 2.07 VSX single precision support.
2462	(-mvsx-scalar-double): Change default from -1 to 1, update
2463	documentation comment.
2464	(-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
2465	(-mupper-regs-df): New debug switch to control whether DF values
2466	can go in the traditional Altivec registers.
2467	(-mupper-regs-sf): New debug switch to control whether SF values
2468	can go in the traditional Altivec registers.
2469
2470	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
2471	and wy constraints.
2472	(rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
2473	loop variables.  Rename -mvsx-scalar-memory to -mupper-regs-df.
2474	Add new constraints, wu/ww/wy.  Repurpose wv constraint.
2475	(rs6000_debug_legitimate_address_p): Print if we are running
2476	before, during, or after reload.
2477	(rs6000_secondary_reload): Add a comment.
2478	(rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
2479
2480	* config/rs6000/constraints.md (wa constraint): Sort w<x>
2481	constraints.  Update documentation string.
2482	(wd constraint): Likewise.
2483	(wf constraint): Likewise.
2484	(wg constraint): Likewise.
2485	(wn constraint): Likewise.
2486	(ws constraint): Likewise.
2487	(wt constraint): Likewise.
2488	(wx constraint): Likewise.
2489	(wz constraint): Likewise.
2490	(wu constraint): New constraint for ISA 2.07 SFmode scalar
2491	instructions.
2492	(ww constraint): Likewise.
2493	(wy constraint): Likewise.
2494	(wv constraint): Repurpose ISA 2.07 constraint that did not use in
2495	the previous submissions.
2496	* doc/md.texi (PowerPC and IBM RS6000): Likewise.
2497
2498	Backport from mainline
2499	2013-10-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
2500
2501	PR target/58673
2502	* config/rs6000/rs6000.c (rs6000_legitimate_address_p): Only
2503	restrict TImode addresses to single indirect registers if both
2504	-mquad-memory and -mvsx-timode are used.
2505	(rs6000_output_move_128bit): Use quad_load_store_p to determine if
2506	we should emit load/store quad.  Remove using %y for quad memory
2507	addresses.
2508
2509	* config/rs6000/rs6000.md (mov<mode>_ppc64, TI/PTImode): Add
2510	constraints to allow load/store quad on machines where TImode is
2511	not allowed in VSX registers.  Use 'n' instead of 'F' constraint
2512	for TImode to load integer constants.
2513
2514	Backport from mainline
2515	2013-10-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
2516
2517	PR target/58587
2518	* config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
2519	setting -mvsx-timode by default until the underlying problem is
2520	fixed.
2521	(RS6000_CPU, power7 defaults): Likewise.
2522
2523	Backport from trunk
2524	2013-08-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
2525
2526	PR target/58160
2527	* config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
2528	memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
2529
2530	* config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
2531	array instead of each individual operand as a separate argument.
2532	(emit_fusion_gpr_load): Likewise.
2533	(expand_fusion_gpr_load): Add new function declaration.
2534
2535	* config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
2536	signature to have the operands passed as an array, instead of as
2537	separate arguments.  Allow ZERO_EXTEND to be in the memory
2538	address, and also SIGN_EXTEND if -mpower8-fusion-sign.  Do not
2539	depend on the register live/dead flags when peepholes are run.
2540	(expand_fusion_gpr_load): New function to be called from the
2541	peephole2 pass, to change the register that addis sets to be the
2542	target register.
2543	(emit_fusion_gpr_load): Change the calling signature to have the
2544	operands passed as an array, instead of as separate arguments.
2545	Allow ZERO_EXTEND to be in the memory address, and also
2546	SIGN_EXTEND if -mpower8-fusion-sign.
2547
2548	* config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
2549	unspec enumeration.
2550	(power8 fusion peephole/peephole2): Rework the fusion peepholes to
2551	adjust the register addis loads up in the peephole2 pass.  Do not
2552	depend on the register live/dead state when the peephole pass is
2553	done.
2554
2555	Backport from trunk
2556	2013-07-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
2557
2558	* config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
2559	expanders to rs6000.md.
2560	(ior<mode>3): Likewise.
2561	(and<mode>3): Likewise.
2562	(one_cmpl<mode>2): Likewise.
2563	(nor<mode>3): Likewise.
2564	(andc<mode>3): Likewise.
2565	(eqv<mode>3): Likewise.
2566	(nand<mode>3): Likewise.
2567	(orc<mode>3): Likewise.
2568
2569	* config/rs6000/rs6000-protos.h (rs6000_split_logical): New
2570	declaration.
2571
2572	* config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
2573	to split multi-word logical operations.
2574	(rs6000_split_logical_di): Likewise.
2575	(rs6000_split_logical): Likewise.
2576
2577	* config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
2578	(vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
2579	and allow TImode operations in 32-bit.
2580	(vsx_and<mode>3_64bit): Likewise.
2581	(vsx_ior<mode>3_32bit): Likewise.
2582	(vsx_ior<mode>3_64bit): Likewise.
2583	(vsx_xor<mode>3_32bit): Likewise.
2584	(vsx_xor<mode>3_64bit): Likewise.
2585	(vsx_one_cmpl<mode>2_32bit): Likewise.
2586	(vsx_one_cmpl<mode>2_64bit): Likewise.
2587	(vsx_nor<mode>3_32bit): Likewise.
2588	(vsx_nor<mode>3_64bit): Likewise.
2589	(vsx_andc<mode>3_32bit): Likewise.
2590	(vsx_andc<mode>3_64bit): Likewise.
2591	(vsx_eqv<mode>3_32bit): Likewise.
2592	(vsx_eqv<mode>3_64bit): Likewise.
2593	(vsx_nand<mode>3_32bit): Likewise.
2594	(vsx_nand<mode>3_64bit): Likewise.
2595	(vsx_orc<mode>3_32bit): Likewise.
2596	(vsx_orc<mode>3_64bit): Likewise.
2597
2598	* config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
2599	logical types in GPRs.
2600
2601	* config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
2602	logical insns to rs6000.md, and allow TImode operations in
2603	32-bit.
2604	(altivec_ior<mode>3): Likewise.
2605	(altivec_xor<mode>3): Likewise.
2606	(altivec_one_cmpl<mode>2): Likewise.
2607	(altivec_nor<mode>3): Likewise.
2608	(altivec_andc<mode>3): Likewise.
2609
2610	* config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
2611	attributes for moving the 128-bit logical operations into
2612	rs6000.md.
2613	(BOOL_REGS_OUTPUT): Likewise.
2614	(BOOL_REGS_OP1): Likewise.
2615	(BOOL_REGS_OP2): Likewise.
2616	(BOOL_REGS_UNARY): Likewise.
2617	(BOOL_REGS_AND_CR0): Likewise.
2618	(one_cmpl<mode>2): Add support for DI logical operations on
2619	32-bit, splitting the operations to 32-bit.
2620	(anddi3): Likewise.
2621	(iordi3): Likewise.
2622	(xordi3): Likewise.
2623	(and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
2624	changes to combine the 32/64-bit code, allow logical operations on
2625	TI mode in 32-bit, and to use similar match_operator patterns like
2626	scalar mode uses.  Combine the Altivec and VSX code for logical
2627	operations, and move it here.
2628	(ior<mode>3, 128-bit types): Likewise.
2629	(xor<mode>3, 128-bit types): Likewise.
2630	(one_cmpl<mode>3, 128-bit types): Likewise.
2631	(nor<mode>3, 128-bit types): Likewise.
2632	(andc<mode>3, 128-bit types): Likewise.
2633	(eqv<mode>3, 128-bit types): Likewise.
2634	(nand<mode>3, 128-bit types): Likewise.
2635	(orc<mode>3, 128-bit types): Likewise.
2636	(and<mode>3_internal): Likewise.
2637	(bool<mode>3_internal): Likewise.
2638	(boolc<mode>3_internal1): Likewise.
2639	(boolc<mode>3_internal2): Likewise.
2640	(boolcc<mode>3_internal1): Likewise.
2641	(boolcc<mode>3_internal2): Likewise.
2642	(eqv<mode>3_internal1): Likewise.
2643	(eqv<mode>3_internal2): Likewise.
2644	(one_cmpl1<mode>3_internal): Likewise.
2645
2646	Back port from mainline:
2647	2013-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
2648		    Pat Haugen <pthaugen@us.ibm.com>
2649		    Peter Bergner <bergner@vnet.ibm.com>
2650
2651	* lib/target-supports.exp (check_p8vector_hw_available) Add power8
2652	support.
2653	(check_effective_target_powerpc_p8vector_ok): Likewise.
2654	(is-effective-target): Likewise.
2655	(check_vect_support_and_set_flags): Likewise.
2656
2657	Backport from mainline
2658	2013-07-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
2659
2660	* config/rs6000/predicates.md (fusion_gpr_addis): New predicates
2661	to support power8 load fusion.
2662	(fusion_gpr_mem_load): Likewise.
2663
2664	* config/rs6000/rs6000-modes.def (PTImode): Update a comment.
2665
2666	* config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
2667	declarations for power8 load fusion.
2668	(emit_fusion_gpr_load): Likewise.
2669
2670	* config/rs6000/rs6000.c (rs6000_option_override_internal): If
2671	tuning for power8, turn on fusion mode by default.  Turn on sign
2672	extending fusion mode if normal fusion mode is on, and we are at
2673	-O2 or -O3.
2674	(fusion_gpr_load_p): New function, return true if we can fuse an
2675	addis instruction with a dependent load to a GPR.
2676	(emit_fusion_gpr_load): Emit the instructions for power8 load
2677	fusion to GPRs.
2678
2679	* config/rs6000/vsx.md (VSX_M2): New iterator for fusion
2680	peepholes.
2681	(VSX load fusion peepholes): New peepholes to fuse together an
2682	addi instruction with a VSX load instruction.
2683
2684	* config/rs6000/rs6000.md (GPR load fusion peepholes): New
2685	peepholes to fuse an addis instruction with a load to a GPR base
2686	register.  If we are supporting sign extending fusions, convert
2687	sign extending loads to zero extending loads and add an explicit
2688	sign extension.
2689
2690	Backport from mainline
2691	2013-07-18  Pat Haugen <pthaugen@us.ibm.com>
2692
2693	* config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
2694	interaction for new Power8 flags and VSX.
2695
2696	Back port from the trunk
2697	2013-06-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
2698
2699	PR target/57744
2700	* config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
2701	to tie with any other modes.  Eliminate Altivec vector mode tests,
2702	since these are a subset of ALTIVEC or VSX vector modes.  Simplify
2703	code, to return 0 if testing MODE2 for a condition, if we've
2704	already tested MODE1 for the same condition.
2705
2706	Backport from mainline
2707	2013-06-28  Pat Haugen <pthaugen@us.ibm.com>
2708
2709	* config/rs6000/rs6000.md (define_insn ""): Fix insn type.
2710
2711	Back port from the trunk
2712	2013-06-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
2713		    Pat Haugen <pthaugen@us.ibm.com>
2714		    Peter Bergner <bergner@vnet.ibm.com>
2715
2716	* config/rs6000/power8.md: New.
2717	* config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
2718	setting for power8 entry.
2719	* config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
2720	* config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
2721	test for Power4/Power5 only.
2722	(insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
2723	support.
2724	(force_new_group): Adjust comment.
2725	* config/rs6000/rs6000.md: Include power8.md.
2726
2727	Back port from the trunk
2728	2013-06-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
2729
2730	PR target/57615
2731	* config/rs6000/rs6000.md (mov<mode>_ppc64): Call
2732	rs6000_output_move_128bit to handle emitting quad memory
2733	operations.  Set attribute length to 8 bytes.
2734
2735	Back port from the trunk
2736	2013-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
2737
2738	* config/rs6000/rs6000.c (rs6000_option_override_internal): Move
2739	test for clearing quad memory on 32-bit later.
2740
2741	Back port from the trunk
2742
2743	2013-06-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
2744		    Pat Haugen <pthaugen@us.ibm.com>
2745		    Peter Bergner <bergner@vnet.ibm.com>
2746
2747	* config/rs6000/rs6000.c (emit_load_locked): Add support for
2748	power8 byte, half-word, and quad-word atomic instructions.
2749	(emit_store_conditional): Likewise.
2750	(rs6000_expand_atomic_compare_and_swap): Likewise.
2751	(rs6000_expand_atomic_op): Likewise.
2752
2753	* config/rs6000/sync.md (larx): Add new modes for power8.
2754	(stcx): Likewise.
2755	(AINT): New mode iterator to include TImode as well as normal
2756	integer modes on power8.
2757	(fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
2758	that VSX registers are not considered.  Use AINT mode iterator
2759	instead of INT1 to allow inclusion of quad word atomic operations
2760	on power8.
2761	(load_locked<mode>): Likewise.
2762	(store_conditional<mode>): Likewise.
2763	(atomic_compare_and_swap<mode>): Likewise.
2764	(atomic_exchange<mode>): Likewise.
2765	(atomic_nand<mode>): Likewise.
2766	(atomic_fetch_<fetchop_name><mode>): Likewise.
2767	(atomic_nand_fetch<mode>): Likewise.
2768	(mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
2769	each type.
2770	(ATOMIC): On power8, add QImode, HImode modes.
2771	(load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
2772	modes that promote to SImode.
2773	(load_lockedti): Convert TImode arguments to PTImode, so that we
2774	get a guaranteed even/odd register pair.
2775	(load_lockedpti): Likewise.
2776	(store_conditionalti): Likewise.
2777	(store_conditionalpti): Likewise.
2778
2779	* config/rs6000/rs6000.md (QHI): New mode iterator for power8
2780	atomic load/store instructions.
2781	(HSI): Likewise.
2782
2783	Back port from the trunk
2784
2785	2013-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
2786		    Pat Haugen <pthaugen@us.ibm.com>
2787		    Peter Bergner <bergner@vnet.ibm.com>
2788
2789	* config/rs6000/vector.md (GPR move splitter): Do not split moves
2790	of vectors in GPRS if they are direct moves or quad word load or
2791	store moves.
2792
2793	* config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
2794	declaration.
2795	(direct_move_p): Likewise.
2796	(quad_load_store_p): Likewise.
2797
2798	* config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
2799	classes into bins based on the physical register type.
2800	(reg_class_to_reg_type): Likewise.
2801	(IS_STD_REG_TYPE): Likewise.
2802	(IS_FP_VECT_REG_TYPE): Likewise.
2803	(reload_fpr_gpr): Arrays to determine what insn to use if we can
2804	use direct move instructions.
2805	(reload_gpr_vsx): Likewise.
2806	(reload_vsx_gpr): Likewise.
2807	(rs6000_init_hard_regno_mode_ok): Precalculate the register type
2808	information that is a simplification of register classes.  Also
2809	precalculate direct move reload helpers.
2810	(direct_move_p): New function to return true if the operation can
2811	be done as a direct move instruciton.
2812	(quad_load_store_p): New function to return true if the operation
2813	is a quad memory operation.
2814	(rs6000_legitimize_address): If quad memory, only allow register
2815	indirect for TImode addresses.
2816	(rs6000_legitimate_address_p): Likewise.
2817	(enum reload_reg_type): Delete, replace with rs6000_reg_type.
2818	(rs6000_reload_register_type): Likewise.
2819	(register_to_reg_type): Return register type.
2820	(rs6000_secondary_reload_simple_move): New helper function for
2821	secondary reload and secondary memory needed to identify anything
2822	that is a simple move, and does not need reloading.
2823	(rs6000_secondary_reload_direct_move): New helper function for
2824	secondary reload to identify cases that can be done with several
2825	instructions via the direct move instructions.
2826	(rs6000_secondary_reload_move): New helper function for secondary
2827	reload to identify moves between register types that can be done.
2828	(rs6000_secondary_reload): Add support for quad memory operations
2829	and for direct move.
2830	(rs6000_secondary_memory_needed): Likewise.
2831	(rs6000_debug_secondary_memory_needed): Change argument names.
2832	(rs6000_output_move_128bit): New function to return the move to
2833	use for 128-bit moves, including knowing about the various
2834	limitations of quad memory operations.
2835
2836	* config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
2837	memory operations.  call rs6000_output_move_128bit for the actual
2838	instruciton(s) to generate.
2839	(vsx_movti_64bit): Likewise.
2840
2841	* config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
2842	(UNSPEC_P8V_MTVSRWZ): Likewise.
2843	(UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
2844	(UNSPEC_P8V_MTVSRD): Likewise.
2845	(UNSPEC_P8V_XXPERMDI): Likewise.
2846	(UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
2847	(UNSPEC_FUSION_GPR): Likewise.
2848	(FMOVE128_GPR): New iterator for direct move.
2849	(f32_lv): New mode attribute for load/store of SFmode/SDmode
2850	values.
2851	(f32_sv): Likewise.
2852	(f32_dm): Likewise.
2853	(zero_extend<mode>di2_internal1): Add support for power8 32-bit
2854	loads and direct move instructions.
2855	(zero_extendsidi2_lfiwzx): Likewise.
2856	(extendsidi2_lfiwax): Likewise.
2857	(extendsidi2_nocell): Likewise.
2858	(floatsi<mode>2_lfiwax): Likewise.
2859	(lfiwax): Likewise.
2860	(floatunssi<mode>2_lfiwzx): Likewise.
2861	(lfiwzx): Likewise.
2862	(fix_trunc<mode>_stfiwx): Likewise.
2863	(fixuns_trunc<mode>_stfiwx): Likewise.
2864	(mov<mode>_hardfloat, 32-bit floating point): Likewise.
2865	(mov<move>_hardfloat64, 64-bit floating point): Likewise.
2866	(parity<mode>2_cmpb): Set length/type attr.
2867	(unnamed shift right patterns, mov<mode>_internal2): Change type attr
2868	for 'mr.' to fast_compare.
2869	(bpermd_<mode>): Change type attr to popcnt.
2870	(p8_fmrgow_<mode>): New insns for power8 direct move support.
2871	(p8_mtvsrwz_1): Likewise.
2872	(p8_mtvsrwz_2): Likewise.
2873	(reload_fpr_from_gpr<mode>): Likewise.
2874	(p8_mtvsrd_1): Likewise.
2875	(p8_mtvsrd_2): Likewise.
2876	(p8_xxpermdi_<mode>): Likewise.
2877	(reload_vsx_from_gpr<mode>): Likewise.
2878	(reload_vsx_from_gprsf): Likewise.
2879	(p8_mfvsrd_3_<mode>): LIkewise.
2880	(reload_gpr_from_vsx<mode>): Likewise.
2881	(reload_gpr_from_vsxsf): Likewise.
2882	(p8_mfvsrd_4_disf): Likewise.
2883	(multi-word GPR splits): Do not split direct moves or quad memory
2884	operations.
2885
2886	Backport from the trunk
2887
2888	2013-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
2889		    Pat Haugen <pthaugen@us.ibm.com>
2890		    Peter Bergner <bergner@vnet.ibm.com>
2891
2892	* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
2893	Document new power8 builtins.
2894
2895	* config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
2896	condition code register, to allow 128-bit logical operations to be
2897	done in the VSX or GPR registers.
2898	(nor<mode>3): Use the canonical form for nor.
2899	(eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
2900	vclz*, and vpopcnt* vector instructions.
2901	(nand<mode>3): Likewise.
2902	(orc<mode>3): Likewise.
2903	(clz<mode>2): LIkewise.
2904	(popcount<mode>2): Likewise.
2905
2906	* config/rs6000/predicates.md (int_reg_operand): Rework tests so
2907	that only the GPRs are recognized.
2908
2909	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2910	support for new power8 builtins.
2911
2912	* config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
2913	builtin functions.
2914	(xscvdpspn): Likewise.
2915	(vclz): Likewise.
2916	(vclzb): Likewise.
2917	(vclzh): Likewise.
2918	(vclzw): Likewise.
2919	(vclzd): Likewise.
2920	(vpopcnt): Likewise.
2921	(vpopcntb): Likewise.
2922	(vpopcnth): Likewise.
2923	(vpopcntw): Likewise.
2924	(vpopcntd): Likewise.
2925	(vgbbd): Likewise.
2926	(vmrgew): Likewise.
2927	(vmrgow): Likewise.
2928	(eqv): Likewise.
2929	(eqv_v16qi3): Likewise.
2930	(eqv_v8hi3): Likewise.
2931	(eqv_v4si3): Likewise.
2932	(eqv_v2di3): Likewise.
2933	(eqv_v4sf3): Likewise.
2934	(eqv_v2df3): Likewise.
2935	(nand): Likewise.
2936	(nand_v16qi3): Likewise.
2937	(nand_v8hi3): Likewise.
2938	(nand_v4si3): Likewise.
2939	(nand_v2di3): Likewise.
2940	(nand_v4sf3): Likewise.
2941	(nand_v2df3): Likewise.
2942	(orc): Likewise.
2943	(orc_v16qi3): Likewise.
2944	(orc_v8hi3): Likewise.
2945	(orc_v4si3): Likewise.
2946	(orc_v2di3): Likewise.
2947	(orc_v4sf3): Likewise.
2948	(orc_v2df3): Likewise.
2949
2950	* config/rs6000/rs6000.c (rs6000_option_override_internal): Only
2951	allow power8 quad mode in 64-bit.
2952	(rs6000_builtin_vectorized_function): Add support to vectorize
2953	ISA 2.07 count leading zeros, population count builtins.
2954	(rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
2955	V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
2956	(builtin_function_type): Add vgbbd builtin function which takes an
2957	unsigned argument.
2958	(altivec_expand_vec_perm_const): Add support for new power8 merge
2959	instructions.
2960
2961	* config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
2962	that does not include TImdoe for use with 32-bit.
2963	(UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
2964	instructions.
2965	(UNSPEC_VSX_CVDPSPN): Likewise.
2966	(vsx_xscvdpspn): Likewise.
2967	(vsx_xscvspdpn): Likewise.
2968	(vsx_xscvdpspn_scalar): Likewise.
2969	(vsx_xscvspdpn_directmove): Likewise.
2970	(vsx_and<mode>3): Split logical operations into 32-bit and
2971	64-bit. Add support to do logical operations on TImode as well as
2972	VSX vector types.  Allow logical operations to be done in either
2973	VSX registers or in general purpose registers in 64-bit mode.  Add
2974	splitters if GPRs were used. For AND, add clobber of CCmode to
2975	allow use of ANDI on GPRs.  Rewrite nor to use the canonical RTL
2976	encoding.
2977	(vsx_and<mode>3_32bit): Likewise.
2978	(vsx_and<mode>3_64bit): Likewise.
2979	(vsx_ior<mode>3): Likewise.
2980	(vsx_ior<mode>3_32bit): Likewise.
2981	(vsx_ior<mode>3_64bit): Likewise.
2982	(vsx_xor<mode>3): Likewise.
2983	(vsx_xor<mode>3_32bit): Likewise.
2984	(vsx_xor<mode>3_64bit): Likewise.
2985	(vsx_one_cmpl<mode>2): Likewise.
2986	(vsx_one_cmpl<mode>2_32bit): Likewise.
2987	(vsx_one_cmpl<mode>2_64bit): Likewise.
2988	(vsx_nor<mode>3): Likewise.
2989	(vsx_nor<mode>3_32bit): Likewise.
2990	(vsx_nor<mode>3_64bit): Likewise.
2991	(vsx_andc<mode>3): Likewise.
2992	(vsx_andc<mode>3_32bit): Likewise.
2993	(vsx_andc<mode>3_64bit): Likewise.
2994	(vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
2995	and xxlorc instructions.
2996	(vsx_eqv<mode>3_64bit): Likewise.
2997	(vsx_nand<mode>3_32bit): Likewise.
2998	(vsx_nand<mode>3_64bit): Likewise.
2999	(vsx_orc<mode>3_32bit): Likewise.
3000	(vsx_orc<mode>3_64bit): Likewise.
3001
3002	* config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
3003
3004	* config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
3005	instruction.
3006	(p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
3007	(p8_vmrgow): Likewise.
3008	(altivec_and<mode>3): Add clobber of CCmode to allow AND using
3009	GPRs to be split under VSX.
3010	(p8v_clz<mode>2): Add power8 count leading zero support.
3011	(p8v_popcount<mode>2): Add power8 population count support.
3012	(p8v_vgbbd): Add power8 gather bits by bytes by doubleword
3013	support.
3014
3015	* config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
3016	instruction.
3017
3018	* config/rs6000/altivec.h (vec_eqv): Add defines to export power8
3019	builtin functions.
3020	(vec_nand): Likewise.
3021	(vec_vclz): Likewise.
3022	(vec_vclzb): Likewise.
3023	(vec_vclzd): Likewise.
3024	(vec_vclzh): Likewise.
3025	(vec_vclzw): Likewise.
3026	(vec_vgbbd): Likewise.
3027	(vec_vmrgew): Likewise.
3028	(vec_vmrgow): Likewise.
3029	(vec_vpopcnt): Likewise.
3030	(vec_vpopcntb): Likewise.
3031	(vec_vpopcntd): Likewise.
3032	(vec_vpopcnth): Likewise.
3033	(vec_vpopcntw): Likewise.
3034
3035	Backport from trunk
3036
3037	2013-05-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
3038		    Pat Haugen <pthaugen@us.ibm.com>
3039		    Peter Bergner <bergner@vnet.ibm.com>
3040
3041	* config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
3042	instructions.
3043	(VEC_A): Likewise.
3044	(VEC_C): Likewise.
3045	(vrotl<mode>3): Likewise.
3046	(vashl<mode>3): Likewise.
3047	(vlshr<mode>3): Likewise.
3048	(vashr<mode>3): Likewise.
3049
3050	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3051	support for power8 V2DI builtins.
3052
3053	* config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
3054	power8 V2DI builtins.
3055	(vupkhsw): Likewise.
3056	(vupklsw): Likewise.
3057	(vaddudm): Likewise.
3058	(vminsd): Likewise.
3059	(vmaxsd): Likewise.
3060	(vminud): Likewise.
3061	(vmaxud): Likewise.
3062	(vpkudum): Likewise.
3063	(vpksdss): Likewise.
3064	(vpkudus): Likewise.
3065	(vpksdus): Likewise.
3066	(vrld): Likewise.
3067	(vsld): Likewise.
3068	(vsrd): Likewise.
3069	(vsrad): Likewise.
3070	(vsubudm): Likewise.
3071	(vcmpequd): Likewise.
3072	(vcmpgtsd): Likewise.
3073	(vcmpgtud): Likewise.
3074	(vcmpequd_p): Likewise.
3075	(vcmpgtsd_p): Likewise.
3076	(vcmpgtud_p): Likewise.
3077	(vupkhsw): Likewise.
3078	(vupklsw): Likewise.
3079	(vaddudm): Likewise.
3080	(vmaxsd): Likewise.
3081	(vmaxud): Likewise.
3082	(vminsd): Likewise.
3083	(vminud): Likewise.
3084	(vpksdss): Likewise.
3085	(vpksdus): Likewise.
3086	(vpkudum): Likewise.
3087	(vpkudus): Likewise.
3088	(vrld): Likewise.
3089	(vsld): Likewise.
3090	(vsrad): Likewise.
3091	(vsrd): Likewise.
3092	(vsubudm): Likewise.
3093
3094	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
3095	support for power8 V2DI instructions.
3096
3097	* config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
3098	power8 V2DI instructions.  Combine pack and unpack insns to use an
3099	iterator for each mode.  Check whether a particular mode supports
3100	Altivec instructions instead of just checking TARGET_ALTIVEC.
3101	(UNSPEC_VPKUWUM): Likewise.
3102	(UNSPEC_VPKSHSS): Likewise.
3103	(UNSPEC_VPKSWSS): Likewise.
3104	(UNSPEC_VPKUHUS): Likewise.
3105	(UNSPEC_VPKSHUS): Likewise.
3106	(UNSPEC_VPKUWUS): Likewise.
3107	(UNSPEC_VPKSWUS): Likewise.
3108	(UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
3109	(UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
3110	(UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
3111	(UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
3112	(UNSPEC_VUPKHSB): Likewise.
3113	(UNSPEC_VUNPACK_HI_SIGN): Likewise.
3114	(UNSPEC_VUNPACK_LO_SIGN): Likewise.
3115	(UNSPEC_VUPKHSH): Likewise.
3116	(UNSPEC_VUPKLSB): Likewise.
3117	(UNSPEC_VUPKLSH): Likewise.
3118	(VI2): Likewise.
3119	(VI_char): Likewise.
3120	(VI_scalar): Likewise.
3121	(VI_unit): Likewise.
3122	(VP): Likewise.
3123	(VP_small): Likewise.
3124	(VP_small_lc): Likewise.
3125	(VU_char): Likewise.
3126	(add<mode>3): Likewise.
3127	(altivec_vaddcuw): Likewise.
3128	(altivec_vaddu<VI_char>s): Likewise.
3129	(altivec_vadds<VI_char>s): Likewise.
3130	(sub<mode>3): Likewise.
3131	(altivec_vsubcuw): Likewise.
3132	(altivec_vsubu<VI_char>s): Likewise.
3133	(altivec_vsubs<VI_char>s): Likewise.
3134	(altivec_vavgs<VI_char>): Likewise.
3135	(altivec_vcmpbfp): Likewise.
3136	(altivec_eq<mode>): Likewise.
3137	(altivec_gt<mode>): Likewise.
3138	(altivec_gtu<mode>): Likewise.
3139	(umax<mode>3): Likewise.
3140	(smax<mode>3): Likewise.
3141	(umin<mode>3): Likewise.
3142	(smin<mode>3): Likewise.
3143	(altivec_vpkuhum): Likewise.
3144	(altivec_vpkuwum): Likewise.
3145	(altivec_vpkshss): Likewise.
3146	(altivec_vpkswss): Likewise.
3147	(altivec_vpkuhus): Likewise.
3148	(altivec_vpkshus): Likewise.
3149	(altivec_vpkuwus): Likewise.
3150	(altivec_vpkswus): Likewise.
3151	(altivec_vpks<VI_char>ss): Likewise.
3152	(altivec_vpks<VI_char>us): Likewise.
3153	(altivec_vpku<VI_char>us): Likewise.
3154	(altivec_vpku<VI_char>um): Likewise.
3155	(altivec_vrl<VI_char>): Likewise.
3156	(altivec_vsl<VI_char>): Likewise.
3157	(altivec_vsr<VI_char>): Likewise.
3158	(altivec_vsra<VI_char>): Likewise.
3159	(altivec_vsldoi_<mode>): Likewise.
3160	(altivec_vupkhsb): Likewise.
3161	(altivec_vupkhs<VU_char>): Likewise.
3162	(altivec_vupkls<VU_char>): Likewise.
3163	(altivec_vupkhsh): Likewise.
3164	(altivec_vupklsb): Likewise.
3165	(altivec_vupklsh): Likewise.
3166	(altivec_vcmpequ<VI_char>_p): Likewise.
3167	(altivec_vcmpgts<VI_char>_p): Likewise.
3168	(altivec_vcmpgtu<VI_char>_p): Likewise.
3169	(abs<mode>2): Likewise.
3170	(vec_unpacks_hi_v16qi): Likewise.
3171	(vec_unpacks_hi_v8hi): Likewise.
3172	(vec_unpacks_lo_v16qi): Likewise.
3173	(vec_unpacks_hi_<VP_small_lc>): Likewise.
3174	(vec_unpacks_lo_v8hi): Likewise.
3175	(vec_unpacks_lo_<VP_small_lc>): Likewise.
3176	(vec_pack_trunc_v8h): Likewise.
3177	(vec_pack_trunc_v4si): Likewise.
3178	(vec_pack_trunc_<mode>): Likewise.
3179
3180	* config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
3181	V2DI builtins.
3182	(vec_vmaxsd): Likewise.
3183	(vec_vmaxud): Likewise.
3184	(vec_vminsd): Likewise.
3185	(vec_vminud): Likewise.
3186	(vec_vpksdss): Likewise.
3187	(vec_vpksdus): Likewise.
3188	(vec_vpkudum): Likewise.
3189	(vec_vpkudus): Likewise.
3190	(vec_vrld): Likewise.
3191	(vec_vsld): Likewise.
3192	(vec_vsrad): Likewise.
3193	(vec_vsrd): Likewise.
3194	(vec_vsubudm): Likewise.
3195	(vec_vupkhsw): Likewise.
3196	(vec_vupklsw): Likewise.
3197
3198	2013-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
3199		    Pat Haugen <pthaugen@us.ibm.com>
3200		    Peter Bergner <bergner@vnet.ibm.com>
3201
3202	* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
3203	documentation for the power8 crypto builtins.
3204
3205	* config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
3206
3207	* config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
3208	macros for defining power8 builtin functions.
3209	(BU_P8V_AV_2): Likewise.
3210	(BU_P8V_AV_P): Likewise.
3211	(BU_P8V_VSX_1): Likewise.
3212	(BU_P8V_OVERLOAD_1): Likewise.
3213	(BU_P8V_OVERLOAD_2): Likewise.
3214	(BU_CRYPTO_1): Likewise.
3215	(BU_CRYPTO_2): Likewise.
3216	(BU_CRYPTO_3): Likewise.
3217	(BU_CRYPTO_OVERLOAD_1): Likewise.
3218	(BU_CRYPTO_OVERLOAD_2): Likewise.
3219	(XSCVSPDP): Fix typo, point to the correct instruction.
3220	(VCIPHER): Add power8 crypto builtins.
3221	(VCIPHERLAST): Likewise.
3222	(VNCIPHER): Likewise.
3223	(VNCIPHERLAST): Likewise.
3224	(VPMSUMB): Likewise.
3225	(VPMSUMH): Likewise.
3226	(VPMSUMW): Likewise.
3227	(VPERMXOR_V2DI): Likewise.
3228	(VPERMXOR_V4SI: Likewise.
3229	(VPERMXOR_V8HI: Likewise.
3230	(VPERMXOR_V16QI: Likewise.
3231	(VSHASIGMAW): Likewise.
3232	(VSHASIGMAD): Likewise.
3233	(VPMSUM): Likewise.
3234	(VPERMXOR): Likewise.
3235	(VSHASIGMA): Likewise.
3236
3237	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
3238	__CRYPTO__ if the crypto instructions are available.
3239	(altivec_overloaded_builtins): Add support for overloaded power8
3240	builtins.
3241
3242	* config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
3243	support for power8 crypto builtins.
3244	(builtin_function_type): Likewise.
3245	(altivec_init_builtins): Add support for builtins that take vector
3246	long long (V2DI) arguments.
3247
3248	* config/rs6000/crypto.md: New file, define power8 crypto
3249	instructions.
3250
3251	2013-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
3252		    Pat Haugen <pthaugen@us.ibm.com>
3253		    Peter Bergner <bergner@vnet.ibm.com>
3254
3255	* doc/invoke.texi (Option Summary): Add power8 options.
3256	(RS/6000 and PowerPC Options): Likewise.
3257
3258	* doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
3259	constraints.md instead of rs6000.h.  Reorder w* constraints.  Add
3260	wm, wn, wr documentation.
3261
3262	* gcc/config/rs6000/constraints.md (wm): New constraint for VSX
3263	registers if direct move instructions are enabled.
3264	(wn): New constraint for no registers.
3265	(wq): New constraint for quad word even GPR registers.
3266	(wr): New constraint if 64-bit instructions are enabled.
3267	(wv): New constraint if power8 vector instructions are enabled.
3268	(wQ): New constraint for quad word memory locations.
3269
3270	* gcc/config/rs6000/predicates.md (const_0_to_15_operand): New
3271	constraint for 0..15 for crypto instructions.
3272	(gpc_reg_operand): If VSX allow registers in VSX registers as well
3273	as GPR and floating point registers.
3274	(int_reg_operand): New predicate to match only GPR registers.
3275	(base_reg_operand): New predicate to match base registers.
3276	(quad_int_reg_operand): New predicate to match even GPR registers
3277	for quad memory operations.
3278	(vsx_reg_or_cint_operand): New predicate to allow vector logical
3279	operations in both GPR and VSX registers.
3280	(quad_memory_operand): New predicate for quad memory operations.
3281	(reg_or_indexed_operand): New predicate for direct move support.
3282
3283	* gcc/config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
3284	Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
3285	(ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
3286	(POWERPC_MASKS): Add power8 options.
3287	(power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
3288	various options.
3289
3290	* gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
3291	Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
3292
3293	* gcc/config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
3294	(-mpower8-fusion): New power8 options.
3295	(-mpower8-fusion-sign): Likewise.
3296	(-mpower8-vector): Likewise.
3297	(-mcrypto): Likewise.
3298	(-mdirect-move): Likewise.
3299	(-mquad-memory): Likewise.
3300
3301	* gcc/config/rs6000/rs6000.c (power8_cost): Initial definition for
3302	power8.
3303	(rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
3304	registers.
3305	(rs6000_debug_reg_print): Print the base register class if
3306	-mdebug=reg.
3307	(rs6000_debug_vector_unit): Add p8_vector.
3308	(rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
3309	definitions.  Also print fusion state.
3310	(rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
3311	(rs6000_builtin_mask_calculate): Add power8 builtin support.
3312	(rs6000_option_override_internal): Add support for power8.
3313	(rs6000_common_init_builtins): Add debugging for skipped builtins
3314	if -mdebug=builtin.
3315	(rs6000_adjust_cost): Add power8 support.
3316	(rs6000_issue_rate): Likewise.
3317	(insn_must_be_first_in_group): Likewise.
3318	(insn_must_be_last_in_group): Likewise.
3319	(force_new_group): Likewise.
3320	(rs6000_register_move_cost): Likewise.
3321	(rs6000_opt_masks): Likewise.
3322
3323	* config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
3324	power8 capable assembler, default to power7 options.
3325	(TARGET_DIRECT_MOVE): Likewise.
3326	(TARGET_CRYPTO): Likewise.
3327	(TARGET_P8_VECTOR): Likewise.
3328	(VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
3329	(VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
3330	(VECTOR_MEM_P8_VECTOR_P): Likewise.
3331	(VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
3332	(VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
3333	(TARGET_XSCVDPSPN): Likewise.
3334	(TARGET_XSCVSPDPN): Likewsie.
3335	(TARGET_SYNC_HI_QI): Likewise.
3336	(TARGET_SYNC_TI): Likewise.
3337	(MASK_CRYPTO): Likewise.
3338	(MASK_DIRECT_MOVE): Likewise.
3339	(MASK_P8_FUSION): Likewise.
3340	(MASK_P8_VECTOR): Likewise.
3341	(REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the
3342	TFmode temporary used by some of the direct move instructions to
3343	get two FP temporary registers does not force creation of a stack
3344	frame.
3345	(VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
3346	(MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
3347	that any VSX registers are tieable, even if they are also an
3348	Altivec vector mode.
3349	(r6000_reg_class_enum): Add wm, wr, wv constraints.
3350	(RS6000_BTM_P8_VECTOR): Power8 builtin support.
3351	(RS6000_BTM_CRYPTO): Likewise.
3352	(RS6000_BTM_COMMON): Likewise.
3353
3354	* config/rs6000/rs6000.md (cpu attribute): Add power8.
3355	* config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
3356	(enum rs6000_vector): Add power8 vector support.
3357
3358
3359	Backport from mainline
3360	2013-03-20  Pat Haugen <pthaugen@us.ibm.com>
3361
3362	* config/rs6000/predicates.md (indexed_address, update_address_mem
3363	update_indexed_address_mem): New predicates.
3364	* config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
3365	attribute for load/store instructions.
3366	* config/rs6000/dfp.md (movsd_store): Likewise.
3367	(movsd_load): Likewise.
3368	* config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
3369	(unnamed HI->DI extend define_insn): Likewise.
3370	(unnamed SI->DI extend define_insn): Likewise.
3371	(unnamed QI->SI extend define_insn): Likewise.
3372	(unnamed QI->HI extend define_insn): Likewise.
3373	(unnamed HI->SI extend define_insn): Likewise.
3374	(unnamed HI->SI extend define_insn): Likewise.
3375	(extendsfdf2_fpr): Likewise.
3376	(movsi_internal1): Likewise.
3377	(movsi_internal1_single): Likewise.
3378	(movhi_internal): Likewise.
3379	(movqi_internal): Likewise.
3380	(movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
3381	attribute for load/store instructions.
3382	(mov<mode>_hardfloat): Set correct "type" attribute for load/store
3383	instructions.
3384	(mov<mode>_softfloat): Likewise.
3385	(mov<mode>_hardfloat32): Likewise.
3386	(mov<mode>_hardfloat64): Likewise.
3387	(mov<mode>_softfloat64): Likewise.
3388	(movdi_internal32): Likewise.
3389	(movdi_internal64): Likewise.
3390	(probe_stack_<mode>): Likewise.
3391
3392	Backport from mainline
3393	2013-03-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
3394
3395	* config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
3396	floating point, and decimal floating point to reload iterator.
3397
3398	* config/rs6000/constraints.md (wl constraint): New constraints to
3399	return FLOAT_REGS if certain options are used to reduce the number
3400	of separate patterns that exist in the file.
3401	(wx constraint): Likewise.
3402	(wz constraint): Likewise.
3403
3404	* config/rs6000/rs6000.c (rs6000_debug_reg_global): If
3405	-mdebug=reg, print wg, wl, wx, and wz constraints.
3406	(rs6000_init_hard_regno_mode_ok): Initialize new constraints.
3407	Initialize the reload functions for 64-bit binary/decimal floating
3408	point types.
3409	(reg_offset_addressing_ok_p): If we are on a power7 or later, use
3410	LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
3411	create the buffer on the stack to overcome not having a 32-bit
3412	load and store.
3413	(rs6000_emit_move): Likewise.
3414	(rs6000_secondary_memory_needed_rtx): Likewise.
3415	(rs6000_alloc_sdmode_stack_slot): Likewise.
3416	(rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
3417	via xxlxor, just like DFmode 0.0.
3418
3419	* config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro)
3420	(define as 1 if we are running on a power7 or newer.
3421	(enum r6000_reg_class_enum): Add new constraints.
3422
3423	* config/rs6000/dfp.md (movsd): Delete, combine with binary
3424	floating point moves in rs6000.md.  Combine power6x (mfpgpr) moves
3425	with other moves by using conditional constraits (wg).  Use LFIWZX
3426	and STFIWX for loading SDmode on power7.  Use xxlxor to create
3427	0.0f.
3428	(movsd splitter): Likewise.
3429	(movsd_hardfloat): Likewise.
3430	(movsd_softfloat): Likewise.
3431
3432	* config/rs6000/rs6000.md (FMOVE32): New iterators to combine
3433	binary and decimal floating point moves.
3434	(fmove_ok): New attributes to combine binary and decimal floating
3435	point moves, and to combine power6x (mfpgpr) moves along normal
3436	floating moves.
3437	(real_value_to_target): Likewise.
3438	(f32_lr): Likewise.
3439	(f32_lm): Likewise.
3440	(f32_li): Likewise.
3441	(f32_sr): Likewise.
3442	(f32_sm): Likewise.
3443	(f32_si): Likewise.
3444	(movsf): Combine binary and decimal floating point moves.  Combine
3445	power6x (mfpgpr) moves with other moves by using conditional
3446	constraits (wg).  Use LFIWZX and STFIWX for loading SDmode on
3447	power7.
3448	(mov<mode> for SFmode/SDmode); Likewise.
3449	(SFmode/SDmode splitters): Likewise.
3450	(movsf_hardfloat): Likewise.
3451	(mov<mode>_hardfloat for SFmode/SDmode): Likewise.
3452	(movsf_softfloat): Likewise.
3453	(mov<mode>_softfloat for SFmode/SDmode): Likewise.
3454
3455	* doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl)
3456	(wx and wz constraints.
3457
3458	* config/rs6000/constraints.md (wg constraint): New constraint to
3459	return FLOAT_REGS if -mmfpgpr (power6x) was used.
3460
3461	* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
3462	constraint.
3463
3464	* config/rs6000/rs6000.c (rs6000_debug_reg_global): If
3465	-mdebug=reg, print wg, wl, wx, and wz constraints.
3466	(rs6000_init_hard_regno_mode_ok): Initialize new constraints.
3467	Initialize the reload functions for 64-bit binary/decimal floating
3468	point types.
3469	(reg_offset_addressing_ok_p): If we are on a power7 or later, use
3470	LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
3471	create the buffer on the stack to overcome not having a 32-bit
3472	load and store.
3473	(rs6000_emit_move): Likewise.
3474	(rs6000_secondary_memory_needed_rtx): Likewise.
3475	(rs6000_alloc_sdmode_stack_slot): Likewise.
3476	(rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
3477	via xxlxor, just like DFmode 0.0.
3478
3479
3480	* config/rs6000/dfp.md (movdd): Delete, combine with binary
3481	floating point moves in rs6000.md.  Combine power6x (mfpgpr) moves
3482	with other moves by using conditional constraits (wg).  Use LFIWZX
3483	and STFIWX for loading SDmode on power7.
3484	(movdd splitters): Likewise.
3485	(movdd_hardfloat32): Likewise.
3486	(movdd_softfloat32): Likewise.
3487	(movdd_hardfloat64_mfpgpr): Likewise.
3488	(movdd_hardfloat64): Likewise.
3489	(movdd_softfloat64): Likewise.
3490
3491	* config/rs6000/rs6000.md (FMOVE64): New iterators to combine
3492	64-bit binary and decimal floating point moves.
3493	(FMOVE64X): Likewise.
3494	(movdf): Combine 64-bit binary and decimal floating point moves.
3495	Combine power6x (mfpgpr) moves with other moves by using
3496	conditional constraits (wg).
3497	(mov<mode> for DFmode/DDmode): Likewise.
3498	(DFmode/DDmode splitters): Likewise.
3499	(movdf_hardfloat32): Likewise.
3500	(mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
3501	(movdf_softfloat32): Likewise.
3502	(movdf_hardfloat64_mfpgpr): Likewise.
3503	(movdf_hardfloat64): Likewise.
3504	(mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
3505	(movdf_softfloat64): Likewise.
3506	(mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
3507	(reload_<mode>_load): Move to later in the file so they aren't in
3508	the middle of the floating point move insns.
3509	(reload_<mode>_store): Likewise.
3510
3511	* doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
3512	constraint.
3513
3514	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
3515	constraint if -mdebug=reg.
3516	(rs6000_initi_hard_regno_mode_ok): Enable wg constraint if
3517	-mfpgpr.  Enable using dd reload support if needed.
3518
3519	* config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
3520	binary and decimal floating point moves in rs6000.md.
3521	(movtd_internal): Likewise.
3522
3523	* config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
3524	decimal floating point moves.
3525	(movtf): Likewise.
3526	(movtf_internal): Likewise.
3527	(mov<mode>_internal, TDmode/TFmode): Likewise.
3528	(movtf_softfloat): Likewise.
3529	(mov<mode>_softfloat, TDmode/TFmode): Likewise.
3530
3531	* config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
3532	movdi_internal64, using wg constraint for move direct operations.
3533	(movdi_internal64): Likewise.
3534
3535	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
3536	MODES_TIEABLE_P for selected modes.  Print the numerical value of
3537	the various virtual registers. Use GPR/FPR first/last values)
3538	(instead of hard coding the register numbers.  Print which modes
3539	have reload functions registered.
3540	(rs6000_option_override_internal): If -mdebug=reg, trace the
3541	options settings before/after setting cpu, target and subtarget
3542	settings.
3543	(rs6000_secondary_reload_trace): Improve the RTL dump for
3544	-mdebug=addr and for secondary reload failures in
3545	rs6000_secondary_reload_inner.
3546	(rs6000_secondary_reload_fail): Likewise.
3547	(rs6000_secondary_reload_inner): Likewise.
3548
3549	* config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
3550	macros for first/last GPR and FPR registers.
3551	(LAST_GPR_REGNO): Likewise.
3552	(FIRST_FPR_REGNO): Likewise.
3553	(LAST_FPR_REGNO): Likewise.
3554
3555	* config/rs6000/vector.md (mul<mode>3): Use the combined macro
3556	VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
3557	VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
3558	(vcond<mode><mode>): Likewise.
3559	(vcondu<mode><mode>): Likewise.
3560	(vector_gtu<mode>): Likewise.
3561	(vector_gte<mode>): Likewise.
3562	(xor<mode>3): Don't allow logical operations on TImode in 32-bit
3563	to prevent the compiler from converting DImode operations to
3564	TImode.
3565	(ior<mode>3): Likewise.
3566	(and<mode>3): Likewise.
3567	(one_cmpl<mode>2): Likewise.
3568	(nor<mode>3): Likewise.
3569	(andc<mode>3): Likewise.
3570
3571	* config/rs6000/constraints.md (wt constraint): New constraint
3572	that returns VSX_REGS if TImode is allowed in VSX registers.
3573
3574	* config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
3575	constant under VSX.
3576
3577	* config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
3578	similar to TImode, but it is restricted to being in the GPRs.
3579
3580	* config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
3581	TImode to occupy a single VSX register.
3582
3583	* config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
3584	-mvsx-timode for power7/power8.
3585	(power7 cpu): Likewise.
3586	(power8 cpu): Likewise.
3587
3588	* config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
3589	sure that TFmode/TDmode take up two registers if they are ever
3590	allowed in the upper VSX registers.
3591	(rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
3592	registers.
3593	(rs6000_init_hard_regno_mode_ok): Likewise.
3594	(rs6000_debug_reg_global): Add debugging for PTImode and wt
3595	constraint.  Print if LRA is turned on.
3596	(rs6000_option_override_internal): Give an error if -mvsx-timode
3597	and VSX is not enabled.
3598	(invalid_e500_subreg): Handle PTImode, restricting it to GPRs.  If
3599	-mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
3600	to reg+offset addressing.  Use PTImode when checking offset
3601	addresses for validity.
3602	(reg_offset_addressing_ok_p): Likewise.
3603	(rs6000_legitimate_offset_address_p): Likewise.
3604	(rs6000_legitimize_address): Likewise.
3605	(rs6000_legitimize_reload_address): Likewise.
3606	(rs6000_legitimate_address_p): Likewise.
3607	(rs6000_eliminate_indexed_memrefs): Likewise.
3608	(rs6000_emit_move): Likewise.
3609	(rs6000_secondary_reload): Likewise.
3610	(rs6000_secondary_reload_inner): Handle PTImode.  Allow 64-bit
3611	reloads to fpr registers to continue to use reg+offset addressing)
3612	(but 64-bit reloads to altivec registers need reg+reg addressing.
3613	Drop test for PRE_MODIFY, since VSX loads/stores no longer support
3614	it.  Treat LO_SUM like a PLUS operation.
3615	(rs6000_secondary_reload_class): If type is 64-bit, prefer to use
3616	FLOAT_REGS instead of VSX_RGS to allow use of reg+offset
3617	addressing.
3618	(rs6000_cannot_change_mode_class): Do not allow TImode in VSX
3619	registers to share a register with a smaller sized type, since VSX
3620	puts scalars in the upper 64-bits.
3621	(print_operand): Add support for PTImode.
3622	(rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
3623	VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
3624	registers, but don't have arithmetic support.
3625	(rs6000_memory_move_cost): Add test for VSX.
3626	(rs6000_opt_masks): Add -mvsx-timode.
3627
3628	* config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
3629	for TImode.
3630	(VSs): Likewise.
3631	(VSr): Use wt constraint for TImode.
3632	(VSv): Drop TImode support.
3633	(vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
3634	(vsx_movti_64bit): Likewise.
3635	(vsx_movti_32bit): Likewise.
3636	(vec_store_<mode>): Use VSX iterator instead of vector iterator.
3637	(vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
3638	one '?' on the appropriate output constraint.  Do not allow TImode
3639	logical operations on 32-bit systems.
3640	(vsx_ior<mode>3): Likewise.
3641	(vsx_xor<mode>3): Likewise.
3642	(vsx_one_cmpl<mode>2): Likewise.
3643	(vsx_nor<mode>3): Likewise.
3644	(vsx_andc<mode>3): Likewise.
3645	(vsx_concat_<mode>): Likewise.
3646	(vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
3647
3648	* config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
3649	OPTION_MASK_VSX_TIMODE.
3650	(enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
3651	(STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
3652
3653	* config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
3654	(TI2 iterator): New iterator for TImode, PTImode.
3655	(wd mode attribute): Add values for vector types.
3656	(movti_string): Replace TI move operations with operations for
3657	TImode and PTImode.  Add support for TImode being allowed in VSX
3658	registers.
3659	(mov<mode>_string, TImode/PTImode): Likewise.
3660	(movti_ppc64): Likewise.
3661	(mov<mode>_ppc64, TImode/PTImode): Likewise.
3662	(TI mode splitters): Likewise.
3663
3664	* doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
3665	constraint.
3666
36672014-04-04  Richard Biener  <rguenther@suse.de>
3668
3669	* tree-ssanames.c (make_ssa_name_fn): Fix assert.
3670
36712014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3672
3673	* config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
3674
36752014-04-01  Richard Biener  <rguenther@suse.de>
3676
3677	* gimple.h (struct gimple_statement_base): Align subcode to
3678	16 bits.
3679
36802014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3681
3682	* doc/invoke.texi (mapp-regs): Clarify.
3683
36842014-03-31  H.J. Lu  <hongjiu.lu@intel.com>
3685
3686	PR rtl-optimization/60700
3687	Backport from mainline
3688	2013-07-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
3689
3690	PR rtl-optimization/57637
3691	* function.c (move_insn_for_shrink_wrap): Also check the
3692	GEN set of the LIVE problem for the liveness analysis
3693	if it exists, otherwise give up.
3694
36952014-03-30  Kaz Kojima  <kkojima@gcc.gnu.org>
3696
3697	Backport from mainline
3698	2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
3699
3700	PR target/60039
3701	* config/sh/sh.md (udivsi3_i1): Clobber R1 register.
3702
37032014-03-26  Martin Jambor  <mjambor@suse.cz>
3704
3705	PR ipa/60419
3706	* ipa.c (symtab_remove_unreachable_nodes): Clear thunk and
3707	alias flags of nodes in the border.
3708
37092014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
3710
3711	PR rtl-optimization/60452
3712	* rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
3713	<case REG>: Return 1 for invalid offsets from the frame pointer.
3714
37152014-03-24  Richard Biener  <rguenther@suse.de>
3716
3717	PR tree-optimization/60429
3718	* tree-ssa-structalias.c (get_constraint_for_ptr_offset): Remove
3719	duplicated line.
3720
37212014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
3722
3723	PR rtl-optimization/60601
3724	* bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
3725
3726	* gcc.c (eval_spec_function): Initialize save_growing_value.
3727
37282014-03-20  Jakub Jelinek  <jakub@redhat.com>
3729
3730	PR target/60568
3731	* config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
3732	into CONST, put pic register as first operand of PLUS.  Use
3733	gen_const_mem for both 32-bit and 64-bit PIC got loads.
3734
37352014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
3736
3737	* config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
3738	around for store forwarding issue in the FPU on the UT699.
3739	* config/sparc/sparc.md (in_branch_delay): Return false for single FP
3740	loads and operations if -mfix-ut699 is specified.
3741	(divtf3_hq): Tweak attribute.
3742	(sqrttf2_hq): Likewise.
3743
37442014-03-18  Kai Tietz  <ktietz@redhat.com>
3745
3746	PR rtl-optimization/56356
3747	* sdbout.c (sdbout_parms): Verify that parms'
3748	incoming argument is valid.
3749	(sdbout_reg_parms): Likewise.
3750
37512014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
3752
3753	* config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
3754	proper constant for the store mode.
3755
37562014-03-17  Mikael Pettersson  <mikpelinux@gmail.com>
3757	    Committed by Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3758
3759	Backport from mainline:
3760
3761	2013-06-20  Joern Rennecke <joern.rennecke@embecosm.com>
3762
3763	PR rtl-optimization/57425
3764	PR rtl-optimization/57569
3765	* alias.c (write_dependence_p): Remove parameters mem_mode and
3766	canon_mem_addr.  Add parameters x_mode, x_addr and x_canonicalized.
3767	Changed all callers.
3768	(canon_anti_dependence): Get comments and semantics in sync.
3769	Add parameter mem_canonicalized.  Changed all callers.
3770	* rtl.h (canon_anti_dependence): Update prototype.
3771
3772	2013-06-16  Joern Rennecke <joern.rennecke@embecosm.com>
3773
3774	PR rtl-optimization/57425
3775	PR rtl-optimization/57569
3776	* alias.c (write_dependence_p): Add new parameters mem_mode,
3777	canon_mem_addr and mem_canonicalized.  Change type of writep to bool.
3778	Changed all callers.
3779	(canon_anti_dependence): New function.
3780	* cse.c (check_dependence): Use canon_anti_dependence.
3781	* cselib.c (cselib_invalidate_mem): Likewise.
3782	* rtl.h (canon_anti_dependence): Declare.
3783
37842014-03-17  Richard Biener  <rguenther@suse.de>
3785
3786	Backport from mainline
3787	2014-03-11  Richard Biener  <rguenther@suse.de>
3788
3789	PR tree-optimization/60429
3790	PR tree-optimization/60485
3791	* tree-ssa-structalias.c (set_union_with_increment): Properly
3792	take into account all fields that overlap the shifted vars.
3793	(do_sd_constraint): Likewise.
3794	(do_ds_constraint): Likewise.
3795	(get_constraint_for_ptr_offset): Likewise.
3796
37972014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
3798
3799	* config/sparc/sparc-protos.h (tls_call_delay): Delete.
3800	(eligible_for_call_delay): New prototype.
3801	* config/sparc/sparc.c (tls_call_delay): Rename into...
3802	(eligible_for_call_delay): ...this.  Return false if the instruction
3803	cannot be put in the delay slot of a branch.
3804	(eligible_for_restore_insn): Simplify.
3805	(eligible_for_return_delay): Return false if the instruction cannot be
3806	put in the delay slot of a branch and simplify.
3807	(eligible_for_sibcall_delay): Return false if the instruction cannot be
3808	put in the delay slot of a branch.
3809	* config/sparc/sparc.md (fix_ut699): New attribute.
3810	(tls_call_delay): Delete.
3811	(in_call_delay): Reimplement.
3812	(eligible_for_sibcall_delay): Rename into...
3813	(in_sibcall_delay): ...this.
3814	(eligible_for_return_delay): Rename into...
3815	(in_return_delay): ...this.
3816	(in_branch_delay): Reimplement.
3817	(in_uncond_branch_delay): Delete.
3818	(in_annul_branch_delay): Delete.
3819
38202014-03-14  Georg-Johann Lay  <avr@gjlay.de>
3821
3822	Backport from 2014-03-14 trunk r208562.
3823
3824	PR target/59396
3825	* config/avr/avr.c (avr_set_current_function): Pass function name
3826	through default_strip_name_encoding before sanity checking instead
3827	of skipping the first char of the assembler name.
3828
38292014-03-13  Georg-Johann Lay  <avr@gjlay.de>
3830
3831	Backport from 2014-03-13 trunk r208532.
3832
3833	PR target/60486
3834	* config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
3835	calls of avr_out_plus_1.
3836
38372014-03-13  Joey Ye  <joey.ye@arm.com>
3838
3839	Backport from mainline
3840	2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3841
3842	PR tree-optimization/60454
3843	* tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
3844
38452014-03-06  Matthias Klose  <doko@ubuntu.com>
3846
3847	* Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
3848	MULTILIB_OSDIRNAMES is not defined.
3849
38502014-03-06  Jakub Jelinek  <jakub@redhat.com>
3851
3852	PR tree-optimization/60276
3853	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Avoid
3854	a -Wsign-compare warning.
3855
3856	* Makefile.in (tree-ssa-uninit.o): Depend on $(PARAMS_H).
3857
3858	Backport from mainline
3859	2014-02-21  Jakub Jelinek  <jakub@redhat.com>
3860
3861	PR tree-optimization/56490
3862	* params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
3863	* tree-ssa-uninit.c: Include params.h.
3864	(compute_control_dep_chain): Add num_calls argument, return false
3865	if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
3866	num_calls to recursive call.
3867	(find_predicates): Change dep_chain into normal array, add num_calls
3868	variable and adjust compute_control_dep_chain caller.
3869	(find_def_preds): Likewise.
3870
3871	2014-02-13  Jakub Jelinek  <jakub@redhat.com>
3872
3873	PR target/43546
3874	* expr.c (compress_float_constant): If x is a hard register,
3875	extend into a pseudo and then move to x.
3876
3877	2014-02-11  Richard Henderson  <rth@redhat.com>
3878		    Jakub Jelinek  <jakub@redhat.com>
3879
3880	PR debug/59776
3881	* tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
3882	around drhs if type conversion to lacc->type is not useless.
3883
3884	2014-02-08  Jakub Jelinek  <jakub@redhat.com>
3885
3886	PR ipa/60026
3887	* ipa-cp.c (determine_versionability): Fail at -O0
3888	or __attribute__((optimize (0))) or -fno-ipa-cp functions.
3889	* tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
3890
3891	2014-02-06  Jakub Jelinek  <jakub@redhat.com>
3892
3893	PR target/60062
3894	* tree.h (opts_for_fn): New inline function.
3895	(opt_for_fn): Define.
3896	* config/i386/i386.c (ix86_function_regparm): Use
3897	opt_for_fn (decl, optimize) instead of optimize.
3898
3899	2014-02-05  Jakub Jelinek  <jakub@redhat.com>
3900
3901	PR middle-end/57499
3902	* tree-eh.c (cleanup_empty_eh): Bail out on totally empty
3903	bb with no successors.
3904
39052014-03-04  Richard Biener  <rguenther@suse.de>
3906
3907	PR tree-optimization/60382
3908	* tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
3909	dead PHIs a reduction.
3910
39112014-02-25  Richard Biener  <rguenther@suse.de>
3912
3913	Backport from mainline
3914	2014-02-21  Richard Biener  <rguenther@suse.de>
3915
3916	PR tree-optimization/60276
3917	* tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
3918	(STMT_VINFO_MIN_NEG_DIST): New macro.
3919	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
3920	STMT_VINFO_MIN_NEG_DIST.
3921	* tree-vect-stmts.c (vectorizable_load): Verify if assumptions
3922	made for negative dependence distances still hold.
3923
39242014-02-25  Richard Biener  <rguenther@suse.de>
3925
3926	Backport from mainline
3927	2014-02-21  Richard Biener  <rguenther@suse.de>
3928
3929	PR middle-end/60291
3930	* tree-ssa-live.c (mark_all_vars_used_1): Do not walk
3931	DECL_INITIAL for globals not in the current function context.
3932
3933	2014-02-20  Richard Biener  <rguenther@suse.de>
3934
3935	PR middle-end/60221
3936	* tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
3937	regions at -O0.
3938
3939	2014-02-14  Richard Biener  <rguenther@suse.de>
3940
3941	PR tree-optimization/60183
3942	* tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating
3943	loads.
3944	(tree_ssa_phiprop): Calculate and free post-dominators.
3945
39462014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3947
3948	PR target/55426
3949	* config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
3950	conversions.
3951
39522014-02-24  John David Anglin  <danglin@gcc.gnu.org>
3953
3954	* config/pa/pa.c (pa_output_move_double): Don't valididate when
3955	adjusting offsetable addresses.
3956
39572014-02-23  David Holsgrove <david.holsgrove@xilinx.com>
3958
3959	* config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg names
3960
39612014-02-23  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
3962
3963	* config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
3964	definition.
3965
39662014-02-23  David Holsgrove <david.holsgrove@xilinx.com>
3967
3968	* /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk
3969	and define TARGET_ASM_OUTPUT_MI_THUNK and
3970	TARGET_ASM_CAN_OUTPUT_MI_THUNK.
3971
39722014-02-23  David Holsgrove <david.holsgrove@xilinx.com>
3973
3974	* config/microblaze/predicates.md: Add cmp_op predicate.
3975	* config/microblaze/microblaze.md: Add branch_compare instruction
3976	which uses cmp_op predicate and emits cmp insn before branch.
3977	* config/microblaze/microblaze.c (microblaze_emit_compare): Rename
3978	to microblaze_expand_conditional_branch and consolidate logic.
3979	(microblaze_expand_conditional_branch): emit branch_compare
3980	insn instead of handling cmp op separate from branch insn.
3981
39822014-02-21  Martin Jambor  <mjambor@suse.cz>
3983
3984	PR ipa/55260
3985	* ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
3986	info when checking whether lattices are bottom.
3987
39882014-02-21  Jakub Jelinek  <jakub@redhat.com>
3989
3990	* config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
3991	mode for mask of V8SFmode permutation.
3992
39932014-02-20  Richard Henderson  <rth@redhat.com>
3994
3995	PR c++/60272
3996	* builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
3997	on failure the store back into EXPECT.  Always make a new pseudo for
3998	OLDVAL.
3999
40002014-02-20  Jakub Jelinek  <jakub@redhat.com>
4001
4002	PR target/57896
4003	* config/i386/i386.c (expand_vec_perm_interleave2): Don't call
4004	gen_reg_rtx if d->testing_p.
4005	(expand_vec_perm_pshufb2, expand_vec_perm_even_odd_1,
4006	expand_vec_perm_broadcast_1): Return early if d->testing_p and
4007	we will certainly return true.
4008
40092014-02-20  Richard Biener  <rguenther@suse.de>
4010
4011	* tree-cfg.c (replace_uses_by): Mark altered BBs before
4012	doing the substitution.
4013
40142014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
4015
4016	Backport from mainline
4017	2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
4018
4019	PR target/60207
4020	* config/i386/i386.c (construct_container): Remove TFmode check
4021	for X86_64_INTEGER_CLASS.
4022
40232014-02-19  Uros Bizjak  <ubizjak@gmail.com>
4024
4025	Backport from mainline
4026	2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
4027
4028	PR target/59794
4029	* config/i386/i386.c (type_natural_mode): Warn for ABI changes
4030	only when -Wpsabi is enabled.
4031
40322014-02-19  Terry Guo  <terry.guo@arm.com>
4033
4034	Backport from mainline
4035	2014-02-08  Terry Guo  <terry.guo@arm.com>
4036
4037	* doc/invoke.texi: Document ARM -march=armv7e-m.
4038
40392014-02-18  Kai Tietz  <ktietz@redhat.com>
4040
4041	Backport from mainline
4042	2014-02-18  Kai Tietz  <ktietz@redhat.com>
4043
4044	PR target/60193
4045	* config/i386/i386.c (ix86_expand_prologue): Use
4046	rax register as displacement for restoring %r10, %rax.
4047	Additional fix wrong offset for restoring both-registers.
4048
40492014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
4050
4051	* ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
4052	assertion with conditional return.
4053
40542014-02-18  Jakub Jelinek  <jakub@redhat.com>
4055	    Uros Bizjak  <ubizjak@gmail.com>
4056
4057	PR driver/60233
4058	* config/i386/driver-i386.c (host_detect_local_cpu): If
4059	YMM state is not saved by the OS, also clear has_f16c.  Move
4060	CPUID 0x80000001 handling before YMM state saving checking.
4061
40622014-02-14  Roland McGrath  <mcgrathr@google.com>
4063
4064	* configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
4065	* configure: Regenerated.
4066	* config.in: Regenerated.
4067	* config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
4068	instead of ASM_SHORT.
4069
40702014-02-13  Uros Bizjak  <ubizjak@gmail.com>
4071
4072	Backport from mainline
4073	2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
4074
4075	* config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
4076	operands[2], not operands[3].
4077
40782014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4079
4080	* config/s390/s390.c (s390_asm_output_function_label): Fix crash
4081	caused by bad second argument to warning_at() with -mhotpatch and
4082	nested functions (e.g. with gfortran).
4083
40842014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
4085
4086	Backport from mainline
4087	2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
4088		    Uros Bizjak  <ubizjak@gmail.com>
4089
4090	PR target/60151
4091	* configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
4092
40932014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
4094
4095	PR rtl-optimization/60116
4096	* combine.c (try_combine): Also remove dangling REG_DEAD notes on the
4097	other_insn once the combination has been validated.
4098
40992014-02-10  Nagaraju Mekala <nagaraju.mekala@xilinx.com>
4100
4101	* config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
4102	* config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
4103
41042014-02-10  Nagaraju Mekala <nagaraju.mekala@xilinx.com>
4105
4106	* config/microblaze/microblaze.c: Extend mcpu version format
4107
41082014-02-10  David Holsgrove <david.holsgrove@xilinx.com>
4109
4110	* config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
4111
41122014-02-10  Richard Biener  <rguenther@suse.de>
4113
4114	Backport from mainline
4115	2014-01-30  Richard Biener  <rguenther@suse.de>
4116
4117	PR tree-optimization/59903
4118	* tree-vect-loop.c (vect_transform_loop): Guard multiple-types
4119	check properly.
4120
4121	2014-02-10  Richard Biener  <rguenther@suse.de>
4122
4123	PR tree-optimization/60115
4124	* tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
4125	MEM_REF handling.  Properly verify that the accesses are not
4126	out of the objects bound.
4127
41282014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
4129
4130	Backport from mainline.
4131	2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
4132
4133	PR target/59718
4134	* doc/invoke.texi (-march): Clarify documentation for ARM.
4135	(-mtune): Likewise.
4136	(-mcpu): Likewise.
4137
41382014-02-04  John David Anglin  <danglin@gcc.gnu.org>
4139
4140	PR target/59777
4141	* config/pa/pa.c (legitimize_tls_address): Return original address
4142	if not passed a SYMBOL_REF rtx.
4143	(hppa_legitimize_address): Call legitimize_tls_address for all TLS
4144	addresses.
4145	(pa_emit_move_sequence): Simplify TLS source operands.
4146	(pa_legitimate_constant_p): Reject all TLS constants.
4147	* config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
4148	(CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
4149
41502014-02-04  Uros Bizjak  <ubizjak@gmail.com>
4151
4152	Backport from mainline
4153	2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
4154
4155	PR target/60017
4156	* config/i386/i386.c (classify_argument): Fix handling of bit_offset
4157	when calculating size of integer atomic types.
4158
41592014-02-02  Uros Bizjak  <ubizjak@gmail.com>
4160
4161	Backport from mainline
4162	2014-01-30  Jakub Jelinek  <jakub@redhat.com>
4163
4164	* config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
4165
41662014-01-31  Richard Henderson  <rth@redhat.com>
4167
4168	PR middle-end/60004
4169	* tree-eh.c (lower_try_finally_switch): Delay lowering finally block
4170	until after else_eh is processed.
4171
41722014-01-30  David Holsgrove <david.holsgrove@xilinx.com>
4173
4174	Backport from mainline
4175	* config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
4176	comparison_operator with ordered_comparison_operator.
4177
41782014-01-25  Walter Lee  <walt@tilera.com>
4179
4180	Backport from mainline
4181	2014-01-25  Walter Lee  <walt@tilera.com>
4182
4183	* config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
4184	avoid clobbering a live register.
4185
41862014-01-25  Walter Lee  <walt@tilera.com>
4187
4188	Backport from mainline
4189	2014-01-25  Walter Lee  <walt@tilera.com>
4190
4191	* config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
4192	Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
4193	* config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
4194	Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
4195
41962014-01-25  Walter Lee  <walt@tilera.com>
4197
4198	Backport from mainline
4199	2014-01-25  Walter Lee  <walt@tilera.com>
4200
4201	* config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
4202	insns before bundling.
4203	* config/tilegx/tilegx.md (tile_network_barrier): Update comment.
4204
42052014-01-25  Walter Lee  <walt@tilera.com>
4206
4207	Backport from mainline
4208	2014-01-25  Walter Lee  <walt@tilera.com>
4209
4210	* config/tilegx/tilegx.c (tilegx_expand_builtin): Set
4211	PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
4212	* config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
4213
42142014-01-25  Walter Lee  <walt@tilera.com>
4215
4216	Backport from mainline
4217	2014-01-25  Walter Lee  <walt@tilera.com>
4218
4219	* config/tilepro/tilepro.md (ctzdi2): Use register_operand
4220	predicate.
4221	(clzdi2): Ditto.
4222	(ffsdi2): Ditto.
4223
42242014-01-25  Walter Lee  <walt@tilera.com>
4225
4226	Backport from mainline
4227	2014-01-25  Walter Lee  <walt@tilera.com>
4228
4229	* config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
4230	(TARGET_EXPAND_TO_RTL_HOOK): Define.
4231
42322014-01-24  H.J. Lu  <hongjiu.lu@intel.com>
4233
4234	Backport from mainline
4235	2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
4236
4237	PR target/59929
4238	* config/i386/i386.md (pushsf splitter): Get stack adjustment
4239	from push operand if code of push isn't PRE_DEC.
4240
42412014-01-23  David Holsgrove <david.holsgrove@xilinx.com>
4242
4243	Backport from mainline.
4244	* config/microblaze/microblaze.md: Add trap insn and attribute
4245
42462014-01-23  Marek Polacek  <polacek@redhat.com>
4247
4248	Backport from mainline
4249	2013-10-21  Marek Polacek  <polacek@redhat.com>
4250
4251	PR middle-end/58809
4252	* fold-const.c (fold_range_test): Return 0 if the type is not
4253	an integral type.
4254
42552014-01-22  David Holsgrove <david.holsgrove@xilinx.com>
4256
4257	* config/microblaze/microblaze.md: Correct bswaphi2 insn.
4258
42592014-01-22  Uros Bizjak  <ubizjak@gmail.com>
4260
4261	Backport from mainline
4262	2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
4263
4264	* config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
4265	for SImode_address_operand operands, having only a REG argument.
4266
4267	2014-01-20  Jakub Jelinek  <jakub@redhat.com>
4268
4269	PR target/59880
4270	* config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
4271	if operands[1] is a REG or ZERO_EXTEND of a REG.
4272
4273	2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
4274		    H.J. Lu  <hongjiu.lu@intel.com>
4275
4276	PR target/59379
4277	* config/i386/i386.md (*lea<mode>): Zero-extend return register
4278	to DImode for zero-extended addresses.
4279
42802014-01-21  Andrew Pinski <apinski@cavium.com>
4281	    Steve Ellcey  <sellcey@mips.com>
4282
4283	PR target/59462
4284	* config/mips/mips.c (mips_print_operand): Check operand mode instead
4285	of operator mode.
4286
42872014-01-21  Andrey Belevantsev  <abel@ispras.ru>
4288
4289	Backport from mainline
4290	2013-12-23  Andrey Belevantsev  <abel@ispras.ru>
4291
4292	PR rtl-optimization/57422
4293	* sel-sched.c (mark_unavailable_hard_regs): Fix typo when calling
4294	add_to_hard_reg_set.
4295
42962014-01-20  Jakub Jelinek  <jakub@redhat.com>
4297
4298	PR middle-end/59860
4299	* tree.h (fold_builtin_strcat): New prototype.
4300	* builtins.c (fold_builtin_strcat): No longer static.  Add len
4301	argument, if non-NULL, don't call c_strlen.  Optimize
4302	directly into __builtin_memcpy instead of __builtin_strcpy.
4303	(fold_builtin_2): Adjust fold_builtin_strcat caller.
4304	* gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
4305
43062014-01-20  Richard Biener  <rguenther@suse.de>
4307
4308	PR middle-end/59860
4309	* builtins.c (fold_builtin_strcat): Remove case better handled
4310	by tree-ssa-strlen.c.
4311
43122014-01-19  John David Anglin  <danglin@gcc.gnu.org>
4313
4314	* config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
4315	long non-pic millicode calls.
4316
43172014-01-17  John David Anglin  <danglin@gcc.gnu.org>
4318
4319	* config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
4320	call to $$dyncall when TARGET_LONG_CALLS is true.
4321
43222014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
4323
4324	Backport from mainline
4325	2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
4326
4327	PR target/59794
4328	* config/i386/i386.c (type_natural_mode): Add a bool parameter
4329	to indicate if type is used for function return value.  Warn
4330	ABI change if the vector mode isn't available for function
4331	return value.
4332	(ix86_function_arg_advance): Pass false to type_natural_mode.
4333	(ix86_function_arg): Likewise.
4334	(ix86_gimplify_va_arg): Likewise.
4335	(function_arg_32): Don't warn ABI change.
4336	(ix86_function_value): Pass true to type_natural_mode.
4337	(ix86_return_in_memory): Likewise.
4338	(ix86_struct_value_rtx): Removed.
4339	(TARGET_STRUCT_VALUE_RTX): Likewise.
4340
43412014-01-17  Charles Baylis  <charles.baylis@linaro.org>
4342
4343	Backport from mainline
4344	2013-12-19  Charles Baylis  <charles.baylis@linaro.org>
4345
4346	PR target/59142
4347	* config/arm/arm-ldmstm.ml: Use low_register_operand for Thumb
4348	patterns.
4349	* config/arm/ldmstm.md: Regenerate.
4350
4351	2013-12-19  Charles Baylis  <charles.baylis@linaro.org>
4352
4353	PR target/59142
4354	* config/arm/predicates.md (arm_hard_general_register_operand):
4355	New predicate.
4356	(arm_hard_register_operand): Remove.
4357	* config/arm/arm-ldmstm.ml: Use arm_hard_general_register_operand
4358	for all patterns.
4359	* config/arm/ldmstm.md: Regenerate.
4360
4361	2013-12-19  Charles Baylis  <charles.baylis@linaro.org>
4362
4363	PR target/59142
4364	* config/arm/predicates.md (vfp_hard_register_operand): New predicate.
4365	* config/arm/arm.md (vfp_pop_multiple_with_writeback): Use
4366	vfp_hard_register_operand.
4367
43682014-01-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
4369
4370	Backport from mainline
4371	2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
4372	    Kugan Vivekanandarajah  <kuganv@linaro.org>
4373
4374	PR target/59695
4375	* config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
4376	truncation.
4377
43782014-01-17  Terry Guo  <terry.guo@arm.com>
4379
4380	PR target/59826
4381	* config/arm/arm.md (prefetch): Set insn type attribute to load1.
4382
43832014-01-16  Jakub Jelinek  <jakub@redhat.com>
4384
4385	PR target/59839
4386	* config/i386/i386.c (ix86_expand_builtin): If target doesn't
4387	satisfy operand 0 predicate for gathers, use a new pseudo as
4388	subtarget.
4389
43902014-01-16  Richard Henderson <rth@redhat.com>
4391
4392	PR debug/54694
4393	* reginfo.c (global_regs_decl): Globalize.
4394	* rtl.h (global_regs_decl): Declare.
4395	* ira.c (do_reload): Diagnose frame_pointer_needed and it
4396	reserved via global_regs.
4397
43982014-01-16  Peter Bergner  <bergner@vnet.ibm.com>
4399
4400	Backport from mainline
4401	2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
4402
4403	* config/i386/i386.c (ix86_hard_regno_mode_ok): Use
4404	VALID_AVX256_REG_OR_OI_MODE.
4405
4406	2013-09-05  Peter Bergner  <bergner@vnet.ibm.com>
4407
4408	PR target/58139
4409	* reginfo.c (choose_hard_reg_mode): Scan through all mode classes
4410	looking for widest mode.
4411
44122014-01-16  Marek Polacek  <polacek@redhat.com>
4413
4414	Backported from mainline
4415	2014-01-16  Marek Polacek  <polacek@redhat.com>
4416
4417	PR middle-end/59827
4418	* gimple-low.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
4419	it is error_mark_node.
4420
44212014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4422
4423	PR target/59803
4424	* config/s390/s390.c (s390_preferred_reload_class): Don't return
4425	ADDR_REGS for invalid symrefs in non-PIC code.
4426
44272014-01-14  Uros Bizjak  <ubizjak@gmail.com>
4428
4429	Revert:
4430	2014-01-08  Uros Bizjak  <ubizjak@gmail.com>
4431
4432	* config/i386/i386.c (ix86_data_alignment): Calculate max_align
4433	from prefetch_block tune setting.
4434
44352014-01-13  Jakub Jelinek  <jakub@redhat.com>
4436
4437	Backported from mainline
4438	2014-01-10  Jakub Jelinek  <jakub@redhat.com>
4439
4440	PR tree-optimization/59745
4441	* tree-predcom.c (tree_predictive_commoning_loop): Call
4442	free_affine_expand_cache if giving up because components is NULL.
4443
44442014-01-10  Yufeng Zhang  <yufeng.zhang@arm.com>
4445
4446	* config/arm/arm.c (arm_expand_neon_args): Call expand_expr
4447	with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
4448	rtx is const0_rtx or not.
4449
44502014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4451
4452	* config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
4453	extraction in good case.
4454
44552014-01-10  Huacai Chen  <chenhc@lemote.com>
4456
4457	* config/mips/driver-native.c (host_detect_local_cpu): Handle new
4458	kernel strings for Loongson-2E/2F/3A.
4459
44602014-01-10  Richard Biener  <rguenther@suse.de>
4461
4462	PR tree-optimization/59715
4463	* tree-flow.h (split_critical_edges): Declare.
4464	* tree-cfg.c (split_critical_edges): Export.
4465	* tree-ssa-sink.c (execute_sink_code): Split critical edges.
4466
44672014-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
4468
4469	* config/mips/mips.h (ISA_HAS_WSBH): Define.
4470	* config/mips/mips.md (UNSPEC_WSBH, UNSPEC_DSBH, UNSPEC_DSHD): New
4471	constants.
4472	(bswaphi2, bswapsi2, bswapdi2, wsbh, dsbh, dshd): New patterns.
4473
44742014-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
4475
4476	PR rtl-optimization/59137
4477	* reorg.c (steal_delay_list_from_target): Call update_block for
4478	elided insns.
4479	(steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
4480
44812014-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
4482
4483	Revert:
4484	2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
4485
4486	* config/mips/mips.c (mips_truncated_op_cost): New function.
4487	(mips_rtx_costs): Adjust test for BADDU.
4488	* config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
4489
4490	2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
4491
4492	* config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
4493	(*baddu_si): ...this new pattern.
4494
44952014-01-09  Richard Biener  <rguenther@suse.de>
4496
4497	Backport from mainline
4498	2013-11-18  Richard Biener  <rguenther@suse.de>
4499
4500	PR tree-optimization/59125
4501	PR tree-optimization/54570
4502	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): When inlining
4503	is not complete do not treat component-references with offset zero
4504	but different fields as equal.
4505	* tree-object-size.c: Include tree-phinodes.h and ssa-iterators.h.
4506	(compute_object_sizes): Apply TLC.  Propagate the constant
4507	results into all uses and fold their stmts.
4508	* passes.def (pass_all_optimizations): Move pass_object_sizes
4509	after the first pass_forwprop and before pass_fre.
4510
4511	2013-12-03  Jakub Jelinek  <jakub@redhat.com>
4512
4513	PR tree-optimization/59362
4514	* tree-object-size.c (object_sizes): Change into array of
4515	vec<unsigned HOST_WIDE_INT>.
4516	(compute_builtin_object_size): Check computed bitmap for
4517	non-NULL instead of object_sizes.  Call safe_grow on object_sizes
4518	vector if new SSA_NAMEs appeared.
4519	(init_object_sizes): Check computed bitmap for non-NULL.
4520	Call safe_grow on object_sizes elements instead of initializing
4521	it with XNEWVEC.
4522	(fini_object_sizes): Call release on object_sizes elements, don't
4523	set it to NULL.
4524
45252014-01-09  Richard Earnshaw  <rearnsha@arm.com>
4526
4527	PR rtl-optimization/54300
4528	* regcprop.c (copyprop_hardreg_forward_1): Ensure any unused
4529	outputs in a single-set are killed from the value chains.
4530
45312014-01-09  Jakub Jelinek  <jakub@redhat.com>
4532
4533	PR rtl-optimization/59724
4534	* ifcvt.c (cond_exec_process_if_block): Don't call
4535	flow_find_head_matching_sequence with 0 longest_match.
4536	* cfgcleanup.c (flow_find_head_matching_sequence): Count even
4537	non-active insns if !stop_after.
4538	(try_head_merge_bb): Revert 2014-01-07 changes.
4539
45402014-01-09  Hans-Peter Nilsson  <hp@axis.com>
4541
4542	Backport from mainline
4543	2013-12-23  Hans-Peter Nilsson  <hp@axis.com>
4544
4545	PR middle-end/59584
4546	* config/cris/predicates.md (cris_nonsp_register_operand):
4547	New define_predicate.
4548	* config/cris/cris.md: Replace register_operand with
4549	cris_nonsp_register_operand for destinations in all
4550	define_splits where a register is set more than once.
4551
45522014-01-08   H.J. Lu  <hongjiu.lu@intel.com>
4553
4554	Backport from mainline
4555	2013-12-25   H.J. Lu  <hongjiu.lu@intel.com>
4556
4557	PR target/59587
4558	* config/i386/i386.c (struct ptt): Add a field for processor name.
4559	(processor_target_table): Sync with processor_type.  Add
4560	processor names.
4561	(cpu_names): Removed.
4562	(ix86_option_override_internal): Default x_ix86_tune_string
4563	to processor_target_table[TARGET_CPU_DEFAULT].name.
4564	(ix86_function_specific_print): Assert arch and tune <
4565	PROCESSOR_max.  Use processor_target_table to print arch and
4566	tune names.
4567	* config/i386/i386.h (TARGET_CPU_DEFAULT): Default to
4568	PROCESSOR_GENERIC32.
4569	(target_cpu_default): Removed.
4570	(processor_type): Reordered.
4571
45722014-01-08  Uros Bizjak  <ubizjak@gmail.com>
4573
4574	Backport from mainline
4575	2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
4576
4577	* config/i386/i386.c (ix86_data_alignment): Calculate max_align
4578	from prefetch_block tune setting.
4579	(nocona_cost): Correct size of prefetch block to 64.
4580
45812014-01-08  Martin Jambor  <mjambor@suse.cz>
4582
4583	PR ipa/59610
4584	* ipa-prop.c (ipa_compute_jump_functions): Bail out if not optimizing.
4585	(parm_preserved_before_stmt_p): Assume modification present when not
4586	optimizing.
4587
45882014-01-07  John David Anglin  <danglin@gcc.gnu.org>
4589
4590	PR target/59652
4591	* config/pa/pa.c (pa_legitimate_address_p): Return false before reload
4592	for 14-bit register offsets when INT14_OK_STRICT is false.
4593
45942014-01-07  Roland Stigge  <stigge@antcom.de>
4595	    Michael Meissner  <meissner@linux.vnet.ibm.com>
4596
4597	PR 57386/target
4598	* config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
4599	Only check TFmode for SPE constants.  Don't check TImode or TDmode.
4600
46012014-01-07  Jakub Jelinek  <jakub@redhat.com>
4602
4603	PR rtl-optimization/58668
4604	* cfgcleanup.c (flow_find_cross_jump): Don't count
4605	any jumps if dir_p is NULL.  Remove p1 variable and make USE/CLOBBER
4606	check consistent with other places.
4607	(flow_find_head_matching_sequence): Don't count USE or CLOBBER insns.
4608	(try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
4609	counting change.
4610	* ifcvt.c (count_bb_insns): Don't count USE or CLOBBER insns.
4611
46122014-01-07  Mike Stump  <mikestump@comcast.net>
4613	    Jakub Jelinek  <jakub@redhat.com>
4614
4615	PR pch/59436
4616	* tree.h (struct tree_optimization_option): Change optabs
4617	type from unsigned char * to void *.
4618	* optabs.c (init_tree_optimization_optabs): Adjust
4619	TREE_OPTIMIZATION_OPTABS initialization.
4620
46212014-01-07  Jakub Jelinek  <jakub@redhat.com>
4622
4623	Backported from mainline
4624	2013-12-16  Jakub Jelinek  <jakub@redhat.com>
4625
4626	PR middle-end/58956
4627	PR middle-end/59470
4628	* gimple.h (walk_stmt_load_store_addr_fn): New typedef.
4629	(walk_stmt_load_store_addr_ops, walk_stmt_load_store_ops): Use it
4630	for callback params.
4631	* gimple.c (walk_stmt_load_store_ops): Likewise.
4632	(walk_stmt_load_store_addr_ops): Likewise.  Adjust all callback
4633	calls to supply the gimple operand containing the base tree
4634	as an extra argument.
4635	* tree-ssa-ter.c (find_ssaname, find_ssaname_in_store): New helper
4636	functions.
4637	(find_replaceable_in_bb): For calls or GIMPLE_ASM, only set
4638	same_root_var if USE is used somewhere in the stores of the stmt.
4639	* ipa-prop.c (visit_ref_for_mod_analysis): Remove name of the stmt
4640	argument and ATTRIBUTE_UNUSED, add another unnamed tree argument.
4641	* ipa-pure-const.c (check_load, check_store, check_ipa_load,
4642	check_ipa_store): Likewise.
4643	* gimple.c (gimple_ior_addresses_taken_1): Likewise.
4644	* ipa-split.c (test_nonssa_use, mark_nonssa_use): Likewise.
4645	(verify_non_ssa_vars, visit_bb): Adjust their callers.
4646	* cfgexpand.c (add_scope_conflicts_1): Use
4647	walk_stmt_load_store_addr_fn type for visit variable.
4648	(visit_op, visit_conflict): Remove name of the stmt
4649	argument and ATTRIBUTE_UNUSED, add another unnamed tree argument.
4650	* tree-sra.c (asm_visit_addr): Likewise.  Remove name of the data
4651	argument and ATTRIBUTE_UNUSED.
4652	* cgraphbuild.c (mark_address, mark_load, mark_store): Add another
4653	unnamed tree argument.
4654
46552014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
4656
4657	* config/m68k/m68k.c (handle_move_double): Handle pushes with
4658	overlapping registers also for registers other than the stack
4659	pointer.
4660
46612014-01-03  Jakub Jelinek  <jakub@redhat.com>
4662
4663	PR target/59625
4664	* config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
4665	asm goto as jump.
4666
46672014-01-01  Jakub Jelinek  <jakub@redhat.com>
4668
4669	PR rtl-optimization/59647
4670	* cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
4671	new_rtx into UNSIGNED_FLOAT rtxes.
4672
46732013-12-28  Eric Botcazou  <ebotcazou@adacore.com>
4674
4675	* doc/invoke.texi (output file options): Document -fada-spec-parent.
4676
46772013-12-26  Uros Bizjak  <ubizjak@gmail.com>
4678
4679	* config/i386/driver-i386.c (decode_caches_intel): Add missing entries.
4680
46812013-12-20  Jakub Jelinek  <jakub@redhat.com>
4682
4683	PR c++/59255
4684	Backported from mainline
4685	2013-08-19  Dehao Chen  <dehao@google.com>
4686
4687	* value-prof.c (gimple_ic): Fix the bug of adding EH edge.
4688
46892013-12-19  James Greenhalgh  <james.greenhalgh@arm.com>
4690
4691	Backport from Mainline.
4692	2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
4693
4694	* config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
4695	(cmgeu): ...This.
4696	(cmhi): Rename to...
4697	(cmgtu): ...This.
4698	* config/aarch64/aarch64-simd.md
4699	(simd_mode): Add SF.
4700	(aarch64_vcond_internal): Use new names for unsigned comparison insns.
4701	(aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
4702	* config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
4703	(cstore<mode>_neg): ...This.
4704	* config/aarch64/iterators.md
4705	(VALLF): new.
4706	(unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
4707	(COMPARISONS): New.
4708	(UCOMPARISONS): Likewise.
4709	(optab): Add missing comparisons.
4710	(n_optab): New.
4711	(cmp_1): Likewise.
4712	(cmp_2): Likewise.
4713	(CMP): Likewise.
4714	(cmp): Remove.
4715	(VCMP_S): Likewise.
4716	(VCMP_U): Likewise.
4717	(V_cmp_result): Add DF, SF modes.
4718	(v_cmp_result): Likewise.
4719	(v): Likewise.
4720	(vmtype): Likewise.
4721	* config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
4722
4723	Partial Backport from mainline.
4724	2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
4725
4726	* config/aarch64/arm_neon.h
4727	(vc<eq, lt, le, gt, ge, tst><qsd>_<u><8,16,32,64>): Remap
4728	to builtins or C as appropriate.
4729
47302013-12-19  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4731	    Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4732
4733	Backport from mainline
4734	2013-12-19  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4735	* config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default): New
4736	constant
4737	(s390_hotpatch_trampoline_halfwords_max): New constant
4738	(s390_hotpatch_trampoline_halfwords): New static variable
4739	(get_hotpatch_attribute): New function
4740	(s390_handle_hotpatch_attribute): New function
4741	(s390_attribute_table): New target specific attribute table to implement
4742	the hotpatch attribute
4743	(s390_option_override): Parse hotpatch options
4744	(s390_function_num_hotpatch_trampoline_halfwords): New function
4745	(s390_can_inline_p): Implement target hook to
4746	suppress hotpatching for explicitly inlined functions
4747	(s390_asm_output_function_label): Generate hotpatch prologue
4748	(TARGET_ATTRIBUTE_TABLE): Define to implement target attribute table
4749	(TARGET_CAN_INLINE_P): Define to implement target hook
4750	* config/s390/s390.opt (mhotpatch): New options -mhotpatch, -mhotpatch=
4751	* config/s390/s390-protos.h (s390_asm_output_function_label): Add
4752	prototype
4753	* config/s390/s390.h (ASM_OUTPUT_FUNCTION_LABEL): Target specific
4754	function label generation for hotpatching
4755	(FUNCTION_BOUNDARY): Align functions to eight bytes
4756	* doc/extend.texi: Document hotpatch attribute
4757	* doc/invoke.texi: Document -mhotpatch option
4758
47592013-12-18  Eric Botcazou  <ebotcazou@adacore.com>
4760
4761	* config/arm/arm.c (arm_expand_epilogue_apcs_frame): Fix thinko.
4762
47632013-12-12  Vladimir Makarov  <vmakarov@redhat.com>
4764
4765	PR middle-end/59470
4766	* lra-coalesce.c (lra_coalesce): Invalidate inheritance pseudo
4767	values if necessary.
4768
47692013-12-12  Jakub Jelinek  <jakub@redhat.com>
4770
4771	PR libgomp/59467
4772	* gimplify.c (omp_check_private): Add copyprivate argument, if it
4773	is true, don't check omp_privatize_by_reference.
4774	(gimplify_scan_omp_clauses): For OMP_CLAUSE_COPYPRIVATE verify
4775	decl is private in outer context.  Adjust omp_check_private caller.
4776
47772013-12-10  Eric Botcazou  <ebotcazou@adacore.com>
4778
4779	PR rtl-optimization/58295
4780	* simplify-rtx.c (simplify_truncation): Restrict the distribution for
4781	WORD_REGISTER_OPERATIONS targets.
4782
47832013-12-10  Kai Tietz  <ktietz@redhat.com>
4784
4785	PR target/56807
4786	* config/i386/i386.c (ix86_expand_prologue): Address saved
4787	registers stack-relative, not via frame-pointer.
4788
47892013-12-09  Alan Modra  <amodra@gmail.com>
4790
4791	Apply from mainline
4792	2013-12-05  Alan Modra  <amodra@gmail.com>
4793	* configure.ac (BUILD_CXXFLAGS) Don't use ALL_CXXFLAGS for
4794	build != host.
4795	<recursive call for build != host>: Clear GMPINC.  Don't bother
4796	saving CFLAGS.
4797	* configure: Regenerate.
4798
47992013-12-08  Uros Bizjak  <ubizjak@gmail.com>
4800
4801	Backport from mainline
4802	2013-12-06  Uros Bizjak  <ubizjak@gmail.com>
4803
4804	PR target/59405
4805	* config/i386/i386.c (type_natural_mode): Properly handle
4806	size 8 for !TARGET_64BIT.
4807
48082013-12-07  Ralf Corsépius  <ralf.corsepius@rtems.org>
4809
4810	* config.gcc (microblaze*-*-rtems*): Add TARGET_BIG_ENDIAN_DEFAULT.
4811
48122013-12-06  Jakub Jelinek  <jakub@redhat.com>
4813
4814	PR tree-optimization/59388
4815	* tree-ssa-reassoc.c (update_range_test): If op == range->exp,
4816	gimplify tem after stmt rather than before it.
4817
48182013-12-06  Oleg Endo  <olegendo@gcc.gnu.org>
4819
4820	Backport from mainline
4821	2013-11-26  Oleg Endo  <olegendo@gcc.gnu.org>
4822
4823	PR target/58314
4824	PR target/50751
4825	* config/sh/sh.c (max_mov_insn_displacement, disp_addr_displacement):
4826	Prefix function names with 'sh_'.  Make them non-static.
4827	* config/sh/sh-protos.h (sh_disp_addr_displacement,
4828	sh_max_mov_insn_displacement): Add declarations.
4829	* config/sh/constraints.md (Q): Reject QImode.
4830	(Sdd): Use match_code "mem".
4831	(Snd): Fix erroneous matching of non-memory operands.
4832	* config/sh/predicates.md (short_displacement_mem_operand): New
4833	predicate.
4834	(general_movsrc_operand): Disallow PC relative QImode loads.
4835	* config/sh/sh.md (*mov<mode>_reg_reg): Remove it.
4836	(*movqi, *movhi): Merge both insns into...
4837	(*mov<mode>): ... this new insn.  Replace generic 'm' constraints with
4838	'Snd' and 'Sdd' constraints.  Calculate insn length dynamically based
4839	on the operand types.
4840
48412013-12-06  Richard Biener  <rguenther@suse.de>
4842
4843	Backport from mainline
4844	2013-11-29  Richard Biener  <rguenther@suse.de>
4845
4846	PR tree-optimization/59334
4847	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Fix bug
4848	in previous commit.
4849
4850	2013-11-28  Richard Biener  <rguenther@suse.de>
4851
4852	PR tree-optimization/59330
4853	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Simplify
4854	and fix delayed marking of free calls not necessary.
4855
48562013-12-06  Richard Biener  <rguenther@suse.de>
4857
4858	Backport from mainline
4859	2013-11-27  Richard Biener  <rguenther@suse.de>
4860
4861	PR tree-optimization/59288
4862	* tree-vect-loop.c (get_initial_def_for_induction): Do not
4863	re-analyze the PHI but use STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
4864
4865	2013-11-19  Richard Biener  <rguenther@suse.de>
4866
4867	PR tree-optimization/59164
4868	* tree-vect-loop.c (vect_analyze_loop_operations): Adjust
4869	check whether we can create an epilogue loop to reflect the
4870	cases where we create one.
4871
4872	2013-09-05  Richard Biener  <rguenther@suse.de>
4873
4874	PR tree-optimization/58137
4875	* tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
4876	Do not create vectors of pointers.
4877	* tree-vect-loop.c (get_initial_def_for_induction): Use proper
4878	types for the components of the vector initializer.
4879	* tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
4880	allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
4881
48822013-12-06  Oleg Endo  <olegendo@gcc.gnu.org>
4883
4884	PR target/51244
4885	PR target/59343
4886	* config/sh/sh.md (*cbranch_t): Check that there are no labels between
4887	the s1 insn and the testing insn.  Remove REG_DEAD note	from s1 insn.
4888
48892013-12-05  Richard Biener  <rguenther@suse.de>
4890
4891	Backport from mainline
4892	2013-11-19  Richard Biener  <rguenther@suse.de>
4893
4894	PR middle-end/58956
4895	* tree-ssa-ter.c (find_replaceable_in_bb): Avoid forwarding
4896	loads into stmts that may clobber it.
4897
48982013-12-04  Jakub Jelinek  <jakub@redhat.com>
4899
4900	PR rtl-optimization/58726
4901	* combine.c (force_to_mode): Fix comment typo.  Don't destructively
4902	modify x for ROTATE, ROTATERT and IF_THEN_ELSE.
4903
49042013-12-04  Jakub Jelinek  <jakub@redhat.com>
4905	    Uros Bizjak  <ubizjak@gmail.com>
4906
4907	PR target/59163
4908	* config/i386/i386.c (ix86_legitimate_combined_insn): If for
4909	!TARGET_AVX there is misaligned MEM operand with vector mode
4910	and get_attr_ssememalign is 0, return false.
4911	(ix86_expand_special_args_builtin): Add get_pointer_alignment
4912	computed alignment and for non-temporal loads/stores also
4913	at least GET_MODE_ALIGNMENT as MEM_ALIGN.
4914	* config/i386/sse.md
4915	(<sse>_loadu<ssemodesuffix><avxsizesuffix>,
4916	<sse>_storeu<ssemodesuffix><avxsizesuffix>,
4917	<sse2>_loaddqu<avxsizesuffix>,
4918	<sse2>_storedqu<avxsizesuffix>, <sse3>_lddqu<avxsizesuffix>,
4919	sse_vmrcpv4sf2, sse_vmrsqrtv4sf2, sse2_cvtdq2pd, sse_movhlps,
4920	sse_movlhps, sse_storehps, sse_loadhps, sse_loadlps,
4921	*vec_interleave_highv2df, *vec_interleave_lowv2df,
4922	*vec_extractv2df_1_sse, sse2_loadhpd, sse2_loadlpd, sse2_movsd,
4923	sse4_1_<code>v8qiv8hi2, sse4_1_<code>v4qiv4si2,
4924	sse4_1_<code>v4hiv4si2, sse4_1_<code>v2qiv2di2,
4925	sse4_1_<code>v2hiv2di2, sse4_1_<code>v2siv2di2, sse4_2_pcmpestr,
4926	*sse4_2_pcmpestr_unaligned, sse4_2_pcmpestri, sse4_2_pcmpestrm,
4927	sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, *sse4_2_pcmpistr_unaligned,
4928	sse4_2_pcmpistri, sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Add
4929	ssememalign attribute.
4930	* config/i386/i386.md (ssememalign): New define_attr.
4931
49322013-12-03  Jakub Jelinek  <jakub@redhat.com>
4933
4934	PR middle-end/59011
4935	* gimplify.c (nonlocal_vla_vars): New variable.
4936	(gimplify_var_or_parm_decl): Put VAR_DECLs for VLAs into
4937	nonlocal_vla_vars chain.
4938	(gimplify_body): Call declare_vars on nonlocal_vla_vars chain
4939	if outer_bind has DECL_INITIAL (current_function_decl) block.
4940
4941	PR target/58864
4942	* optabs.c (emit_conditional_move): Save and restore
4943	pending_stack_adjust and stack_pointer_delta if cmove can't be used.
4944
49452013-12-02  Jakub Jelinek  <jakub@redhat.com>
4946
4947	PR tree-optimization/59358
4948	* tree-vrp.c (union_ranges): To check for the partially
4949	overlapping ranges or adjacent ranges, also compare *vr0max
4950	with vr1max.
4951
49522013-12-02  Richard Biener  <rguenther@suse.de>
4953
4954	PR tree-optimization/59139
4955	* tree-ssa-loop-niter.c (chain_of_csts_start): Properly match
4956	code in get_val_for.
4957	(get_val_for): Use gcc_checking_asserts.
4958
49592013-11-27  Tom de Vries  <tom@codesourcery.com>
4960	    Marc Glisse  <marc.glisse@inria.fr>
4961
4962	PR middle-end/59037
4963	* fold-const.c (fold_indirect_ref_1): Don't create out-of-bounds
4964	BIT_FIELD_REF.
4965	* gimplify.c (gimple_fold_indirect_ref): Same.
4966
49672013-12-01  Eric Botcazou  <ebotcazou@adacore.com>
4968
4969	* config/i386/winnt.c (i386_pe_asm_named_section): Be prepared for an
4970	identifier node.
4971
49722013-12-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4973
4974	* expr.c (emit_group_store): Fix off-by-one BITFIELD_END argument.
4975
49762013-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4977
4978	Backport from mainline
4979	2013-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4980
4981	* config/arm/iterators.md (vrint_conds): New int attribute.
4982	* config/arm/vfp.md (<vrint_pattern><SDF:mode>2): Set conds attribute.
4983	(smax<mode>3): Likewise.
4984	(smin<mode>3): Likewise.
4985
49862013-11-28  Uros Bizjak  <ubizjak@gmail.com>
4987
4988	Backport from mainline
4989	2013-11-27  Uros Bizjak  <ubizjak@gmail.com>
4990		    Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
4991
4992	PR target/56788
4993	* gcc.target/i386/xop-frczX.c: New test.
4994
49952013-11-28  Terry Guo  <terry.guo@arm.com>
4996
4997	Backport mainline r205391
4998	2013-11-26  Terry Guo  <terry.guo@arm.com>
4999
5000	* config/arm/arm.c (require_pic_register): Handle high pic base
5001	register for thumb-1.
5002	(arm_load_pic_register): Also initialize high pic base register.
5003	* doc/invoke.texi: Update documentation for option -mpic-register.
5004
50052013-11-27  Jakub Jelinek  <jakub@redhat.com>
5006
5007	Backported from mainline
5008	2013-11-26  Jakub Jelinek  <jakub@redhat.com>
5009
5010	PR tree-optimization/59014
5011	* tree-vrp.c (register_edge_assert_for_1): Don't look
5012	through conversions from non-integral types or through
5013	narrowing conversions.
5014
50152013-11-27  Eric Botcazou  <ebotcazou@adacore.com>
5016
5017	PR middle-end/59138
5018	* expr.c (emit_group_store): Don't write past the end of the structure.
5019	(store_bit_field): Fix formatting.
5020
50212013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5022
5023	Backport from mainline
5024	2013-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5025
5026	* config/sparc/t-rtems: Add leon3 multilibs.
5027
50282013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5029
5030	Backport from mainline
5031	2013-08-09  Eric Botcazou  <ebotcazou@adacore.com>
5032
5033	* configure.ac: Add GAS check for LEON instructions on SPARC.
5034	* configure: Regenerate.
5035	* config.in: Likewise.
5036	* config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
5037	sparc*-*-* block.
5038	* config/sparc/sparc.opt (LEON, LEON3): New masks.
5039	* config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
5040	for LEON or LEON3.
5041	(ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
5042	(AS_LEON_FLAG): New macro.
5043	* config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
5044	and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
5045	Deal with LEON and LEON3 for the memory model.
5046	* config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
5047	(atomic_compare_and_swap<mode>_1): Likewise.
5048	(*atomic_compare_and_swap<mode>_1): Likewise.
5049
50502013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5051
5052	Backport from mainline
5053	2013-07-23  Eric Botcazou  <ebotcazou@adacore.com>
5054
5055	* doc/invoke.texi (SPARC Options): Document new leon3 processor value.
5056
50572013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5058
5059	Backport from mainline
5060	2013-07-22  Eric Botcazou  <ebotcazou@adacore.com>
5061
5062	* config.gcc (sparc*-*-*): Accept leon3 processor.
5063	(sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
5064	* doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
5065	* config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
5066	* config/sparc/sparc.opt (enum processor_type): Add leon3.
5067	(mfix-ut699): Adjust comment.
5068	* config/sparc/sparc.h (TARGET_CPU_leon3): New define.
5069	(CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
5070	(CPP_CPU_SPEC): Likewise.
5071	(ASM_CPU_SPEC): Likewise.
5072	* config/sparc/sparc.c (leon3_cost): New constant.
5073	(sparc_option_override): Add leon3 support.
5074	(mem_ref): New function.
5075	(sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
5076	(sparc_do_work_around_errata): Look into the instruction in the delay
5077	slot and adjust accordingly.  Add fix for the data cache nullify issues
5078	of the UT699.  Change insertion position for the NOP.
5079	* config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
5080	(leon3_load): New reservation.
5081	(leon_store): Bump latency to 2.
5082	(grfpu): New automaton.
5083	(grfpu_alu): New unit.
5084	(grfpu_ds): Likewise.
5085	(leon_fp_alu): Adjust.
5086	(leon_fp_mult): Delete.
5087	(leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
5088	(leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
5089	* config/sparc/sparc.md (cpu): Add leon3.
5090	* config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
5091	(swapsi): Likewise.
5092	(atomic_test_and_set): Likewise.
5093	(ldstub): Likewise.
5094
50952013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5096
5097	Backport from mainline
5098	2013-04-10  Steven Bosscher  <steven@gcc.gnu.org>
5099
5100	* config/sparc/sparc.c: Include tree-pass.h.
5101	(TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
5102	(sparc_reorg): Rename to sparc_do_work_around_errata.  Move to
5103	head of file.  Change return type.  Split off gate function.
5104	(sparc_gate_work_around_errata): New function.
5105	(pass_work_around_errata): New pass definition.
5106	(insert_pass_work_around_errata) New pass insert definition to
5107	insert pass_work_around_errata just after delayed-branch scheduling.
5108	(sparc_option_override): Insert the pass.
5109	* config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
5110
51112013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5112
5113	Backport from mainline
5114	2013-05-28  Eric Botcazou  <ebotcazou@adacore.com>
5115
5116	* doc/invoke.texi (SPARC Options): Document -mfix-ut699.
5117	* builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
5118	mode if the instruction isn't available in the original mode.
5119	* config/sparc/sparc.opt (mfix-ut699): New option.
5120	* config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
5121	(divdf3): Turn into expander.
5122	(divdf3_nofix): New insn.
5123	(divdf3_fix): Likewise.
5124	(divsf3): Disable if -mfix-ut699.
5125	(sqrtdf2): Turn into expander.
5126	(sqrtdf2_nofix): New insn.
5127	(sqrtdf2_fix): Likewise.
5128	(sqrtsf2): Disable if -mfix-ut699.
5129
51302013-11-22  Eric Botcazou  <ebotcazou@adacore.com>
5131
5132	* print-rtl.c (print_rtx) <case MEM>: Output a space if no MEM_EXPR.
5133
51342013-11-21  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
5135
5136	PR bootstrap/57683
5137	Backport from mainline: r197467 and r198999.
5138	2013-04-03  Jeff Law  <law@redhat.com>
5139
5140	* Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
5141	(lra-eliminations.o): Likewise.
5142
5143	2013-05-16  Jeff Law  <law@redhat.com>
5144
5145	* Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
5146
51472013-11-20  Eric Botcazou  <ebotcazou@adacore.com>
5148
5149	PR target/59207
5150	* config/sparc/sparc.c (sparc_fold_builtin) <case CODE_FOR_pdist_vis>:
5151	Make sure neg2_ovf is set before being used.
5152
51532013-11-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5154	    Dominik Vogt  <vogt@linux.vnet.ibm.com>
5155
5156	Backport from mainline
5157	* config/s390/s390.c (s390_canonicalize_comparison): Don't fold
5158	int comparisons with an out of range condition code.
5159	(s390_optimize_nonescaping_tx): Skip empty BBs.
5160	Generate the new tbegin RTX when removing the FPR clobbers (with
5161	two SETs).
5162	(s390_expand_tbegin): Fix the retry loop counter.  Copy CC to the
5163	result before doing the retry calculations.
5164	(s390_init_builtins): Make tbegin "returns_twice" and tabort
5165	"noreturn".
5166	* config/s390/s390.md (UNSPECV_TBEGIN_TDB): New constant used for
5167	the TDB setting part of an tbegin.
5168	("tbegin_1", "tbegin_nofloat_1"): Add a set for the TDB.
5169	("tx_assist"): Set unused argument to an immediate zero instead of
5170	loading zero into a GPR and pass it as argument.
5171	* config/s390/htmxlintrin.h (__TM_simple_begin, __TM_begin):
5172	Remove inline and related attributes.
5173	(__TM_nesting_depth, __TM_is_user_abort, __TM_is_named_user_abort)
5174	(__TM_is_illegal, __TM_is_footprint_exceeded)
5175	(__TM_is_nested_too_deep, __TM_is_conflict): Fix format value
5176	check.
5177
51782013-11-19  Uros Bizjak  <ubizjak@gmail.com>
5179
5180	Backport from mainline
5181	2013-11-18  Uros Bizjak  <ubizjak@gmail.com>
5182
5183	* config/i386/i386.c (ix86_decompose_address): Use REG_P instead of
5184	ix86_address_subreg_operand.  Move subreg checks to
5185	ix86_validate_address_register.  Move address override check to
5186	ix86_legitimate_address_p.
5187	(ix86_validate_address_register): New function.
5188	(ix86_legitimate_address_p): Call ix86_validate_address_register
5189	to validate base and index registers.  Add address override check
5190	from ix86_decompose_address.
5191	(ix86_decompose_address): Remove.
5192
5193	Backport from mainline
5194	2013-11-17  Uros Bizjak  <ubizjak@gmail.com>
5195
5196	PR target/59153
5197	* config/i386/i386.c (ix86_address_subreg_operand): Do not
5198	reject non-integer subregs.
5199	(ix86_decompose_address): Do not reject invalid CONST_INT RTXes.
5200	Move check for invalid x32 constant addresses ...
5201	(ix86_legitimate_address_p): ... here.
5202
52032013-11-19  Richard Biener  <rguenther@suse.de>
5204
5205	Backport from mainline
5206	2013-11-07  Richard Biener  <rguenther@suse.de>
5207
5208	* tree-dfa.c (get_ref_base_and_extent): Fix casting.
5209
52102013-11-19  Richard Biener  <rguenther@suse.de>
5211
5212	PR tree-optimization/57517
5213	* tree-predcom.c (combinable_refs_p): Verify the combination
5214	is always executed when the refs are.
5215
52162013-11-19  Richard Biener  <rguenther@suse.de>
5217
5218	Backport from mainline
5219	2013-11-05  Richard Biener  <rguenther@suse.de>
5220
5221	PR middle-end/58941
5222	* tree-dfa.c (get_ref_base_and_extent): Merge common code
5223	in MEM_REF and TARGET_MEM_REF handling.  Make sure to
5224	process trailing array detection before diving into the
5225	view-converted object (and possibly apply some extra offset).
5226
52272013-11-18  Richard Biener  <rguenther@suse.de>
5228
5229	Backport from mainline
5230	2013-10-21  Richard Biener  <rguenther@suse.de>
5231
5232	PR tree-optimization/58794
5233	* fold-const.c (operand_equal_p): Compare FIELD_DECL operand
5234	of COMPONENT_REFs with OEP_CONSTANT_ADDRESS_OF left in place.
5235
5236	2013-10-21  Richard Biener  <rguenther@suse.de>
5237
5238	PR middle-end/58742
5239	* fold-const.c (fold_binary_loc): Fold ((T) (X /[ex] C)) * C
5240	to (T) X for sign-changing conversions (or no conversion).
5241
5242	2013-11-06  Richard Biener  <rguenther@suse.de>
5243
5244	PR tree-optimization/58653
5245	* tree-predcom.c (ref_at_iteration): Rewrite to generate
5246	a MEM_REF.
5247	(prepare_initializers_chain): Adjust.
5248
5249	PR tree-optimization/59047
5250	* tree-predcom.c (ref_at_iteration): Handle bitfield accesses
5251	properly.
5252
5253	2013-10-15  Richard Biener  <rguenther@suse.de>
5254
5255	PR tree-optimization/58143
5256	* tree-ssa-loop-im.c (arith_code_with_undefined_signed_overflow):
5257	New function.
5258	(rewrite_to_defined_overflow): Likewise.
5259	(move_computations_dom_walker::before_dom): Rewrite stmts
5260	with undefined signed overflow that are not always executed
5261	into unsigned arithmetic.
5262
52632013-11-14  Uros Bizjak  <ubizjak@gmail.com>
5264
5265	Backport from mainline
5266	2013-11-10  Uros Bizjak  <ubizjak@gmail.com>
5267
5268	* mode-switching.c (optimize_mode_switching): Mark block as
5269	nontransparent, if last_mode at block exit is different from no_mode.
5270
5271	Backport from mainline
5272	2013-11-06  Uros Bizjak  <ubizjak@gmail.com>
5273
5274	PR target/59021
5275	* config/i386/i386.c (ix86_avx_u128_mode_needed): Require
5276	AVX_U128_DIRTY mode for call_insn RTXes that use AVX256 registers.
5277	(ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY mode for call_insn
5278	RTXes that return in AVX256 register.
5279
52802013-11-14  Jakub Jelinek  <jakub@redhat.com>
5281	    Uros Bizjak  <ubizjak@gmail.com>
5282
5283	PR target/59101
5284	* config/i386/i386.md (*anddi_2): Only allow CCZmode if
5285	operands[2] satisfies_constraint_Z that might have bit 31 set.
5286
52872013-11-12  H.J. Lu  <hongjiu.lu@intel.com>
5288
5289	Backported from mainline
5290	2013-11-12  H.J. Lu  <hongjiu.lu@intel.com>
5291
5292	PR target/59088
5293	* config/i386/i386.c (initial_ix86_tune_features): Set
5294	X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and
5295	X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for m_HASWELL.
5296
52972013-11-11  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5298
5299	Backported from mainline
5300	2013-10-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5301
5302	PR target/58854
5303	* config/arm/arm.c (arm_expand_epilogue_apcs_frame): Emit blockage
5304
53052013-11-11  Jakub Jelinek  <jakub@redhat.com>
5306
5307	Backported from mainline
5308	2013-11-06  Jakub Jelinek  <jakub@redhat.com>
5309
5310	PR middle-end/58970
5311	* expr.c (get_bit_range): Handle *offset == NULL_TREE.
5312	(expand_assignment): If *bitpos is negative, set *offset
5313	and adjust *bitpos, so that it is not negative.
5314
5315	2013-11-05  Jakub Jelinek  <jakub@redhat.com>
5316
5317	PR rtl-optimization/58997
5318	* loop-iv.c (iv_subreg): For IV_UNKNOWN_EXTEND, expect
5319	get_iv_value to be in iv->mode rather than iv->extend_mode.
5320	(iv_extend): Likewise.  Otherwise, if iv->extend != extend,
5321	use lowpart_subreg on get_iv_value before calling simplify_gen_unary.
5322	* loop-unswitch.c (may_unswitch_on): Make sure op[i] is in the right
5323	mode.
5324
53252013-11-10  Karlson2k  <k2k@narod.ru>
5326	    Kai Tietz  <ktietz@redhat.com>
5327
5328	Merged from trunk
5329	PR plugins/52872
5330	* configure.ac: Adding for exported symbols check
5331	and for rdynamic-check executable-extension.
5332	* configure: Regenerated.
5333
53342013-11-07  H.J. Lu  <hongjiu.lu@intel.com>
5335
5336	PR target/59034
5337	* config/i386/i386.md (push peepholer/splitter): Use Pmode
5338	with stack_pointer_rtx.
5339
53402013-11-05  Uros Bizjak  <ubizjak@gmail.com>
5341
5342	* config/i386/t-rtems (MULTILIB_MATCHES): Fix option typos.
5343
53442013-11-05  Jakub Jelinek  <jakub@redhat.com>
5345
5346	PR tree-optimization/58984
5347	* ipa-prop.c (ipa_load_from_parm_agg_1): Add SIZE_P argument,
5348	set *SIZE_P if non-NULL on success.
5349	(ipa_load_from_parm_agg, ipa_analyze_indirect_call_uses): Adjust
5350	callers.
5351	(ipcp_transform_function): Likewise.  Punt if size of access
5352	is different from TYPE_SIZE on v->value's type.
5353
53542013-11-03  H.J. Lu  <hongjiu.lu@intel.com>
5355
5356	Backport from mainline
5357	2013-10-12  H.J. Lu  <hongjiu.lu@intel.com>
5358
5359	PR target/58690
5360	* config/i386/i386.c (ix86_copy_addr_to_reg): New function.
5361	(ix86_expand_movmem): Replace copy_addr_to_reg with
5362	ix86_copy_addr_to_reg.
5363	(ix86_expand_setmem): Likewise.
5364
53652013-10-29  Uros Bizjak  <ubizjak@gmail.com>
5366
5367	Backport from mainline
5368	2013-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
5369
5370	PR rtl-optimization/58079
5371	* combine.c (combine_simplify_rtx): Avoid using SUBST if
5372	simplify_comparison has widened a comparison with an integer.
5373
53742013-10-29  Martin Jambor  <mjambor@suse.cz>
5375
5376	PR middle-end/58789
5377	Backport from mainline
5378	2013-05-09  Martin Jambor  <mjambor@suse.cz>
5379
5380	PR lto/57084
5381	* gimple-fold.c (canonicalize_constructor_val): Call
5382	cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
5383
5384	Backport from mainline
5385	2013-03-16  Jan Hubicka  <jh@suse.cz>
5386
5387	* cgraph.h (cgraph_get_create_real_symbol_node): Declare.
5388	* cgraph.c (cgraph_get_create_real_symbol_node): New function.
5389	* cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
5390	of cgraph_get_create_node.
5391	* ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
5392
53932013-10-28  Tom de Vries  <tom@codesourcery.com>
5394
5395	* cfgexpand.c (gimple_expand_cfg): Remove test for parm_birth_insn.
5396	Don't commit insertions after NOTE_INSN_FUNCTION_BEG.
5397
53982013-10-26  Uros Bizjak  <ubizjak@gmail.com>
5399
5400	Backport from mainline
5401	2013-10-22  Uros Bizjak  <ubizjak@gmail.com>
5402
5403	PR target/58779
5404	* config/i386/i386.c (put_condition_code) <case GTU, case LEU>:
5405	Remove CCCmode handling.
5406	<case LTU>: Return 'c' suffix for CCCmode.
5407	<case GEU>: Return 'nc' suffix for CCCmode.
5408	(ix86_cc_mode) <case GTU, case LEU>: Do not generate overflow checks.
5409	* config/i386/i386.md (*sub<mode>3_cconly_overflow): Remove.
5410	(*sub<mode>3_cc_overflow): Ditto.
5411	(*subsi3_zext_cc_overflow): Ditto.
5412
54132013-10-26  Uros Bizjak  <ubizjak@gmail.com>
5414
5415	Backport from mainline
5416	2013-10-19  Uros Bizjak  <ubizjak@gmail.com>
5417
5418	PR target/58792
5419	* config/i386/i386.c (ix86_function_value_regno): Add DX_REG,
5420	ST1_REG and XMM1_REG for 32bit and 64bit targets.  Also add DI_REG
5421	and SI_REG for 64bit SYSV ABI targets.
5422
54232013-08-25  Richard Henderson  <rth@twiddle.net>
5424
5425	PR rtl/58542
5426	* optabs.c (maybe_emit_atomic_exchange): Use create_input_operand
5427	instead of create_convert_operand_to.
5428	(maybe_emit_sync_lock_test_and_set): Likewise.
5429	(expand_atomic_compare_and_swap): Likewise.
5430	(maybe_emit_compare_and_swap_exchange_loop): Don't convert_modes.
5431
54322013-10-25  Eric Botcazou  <ebotcazou@adacore.com>
5433
5434	PR rtl-optimization/58831
5435	* alias.c (init_alias_analysis): At the beginning of each iteration, set
5436	the reg_seen[N] bit if static_reg_base_value[N] is non-null.
5437
54382013-10-25  Eric Botcazou  <ebotcazou@adacore.com>
5439
5440	* recog.c (search_ofs): New static variable moved from...
5441	(peep2_find_free_register): ...here.
5442	(peephole2_optimize): Initialize it.
5443
54442013-10-24  David Edelsohn  <dje.gcc@gmail.com>
5445
5446	Backport from mainline
5447	2013-10-23  David Edelsohn  <dje.gcc@gmail.com>
5448
5449	PR target/58838
5450	* config/rs6000/rs6000.md (mulsi3_internal1 and splitter): Add
5451	TARGET_32BIT final condition.
5452	(mulsi3_internal2 and splitter): Same.
5453
54542013-10-23  Tom de Vries  <tom@codesourcery.com>
5455
5456	PR tree-optimization/58805
5457	* tree-ssa-tail-merge.c (stmt_local_def): Add gimple_vdef check.
5458
54592013-10-23  Richard Biener  <rguenther@suse.de>
5460
5461	Backport from mainline
5462	2013-06-24  Richard Biener  <rguenther@suse.de>
5463
5464	PR tree-optimization/57488
5465	* tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
5466
54672013-10-16  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
5468
5469	Backport from mainline
5470	2013-10-16  Ganesh Gopalasubramanian
5471	            <Ganesh.Gopalasubramanian@amd.com>
5472
5473	* config/i386/i386.c (ix86_option_override_internal): Enable FMA4
5474	for AMD bdver3.
5475
54762013-10-16  Jakub Jelinek  <jakub@redhat.com>
5477
5478	* BASE-VER: Set to 4.8.3.
5479	* DEV-PHASE: Set to prerelease.
5480
54812013-10-16  Release Manager
5482
5483	* GCC 4.8.2 released.
5484
54852013-10-12  James Greenhalgh  <james.greenhalgh@arm.com>
5486
5487	Backport from mainline.
5488	2013-10-12  James Greenhalgh  <james.greenhalgh@arm.com>
5489
5490	* config/aarch64/arm_neon.h
5491	(vtbx<1,3>_<psu>8): Fix register constriants.
5492
54932013-10-10  Jakub Jelinek  <jakub@redhat.com>
5494
5495	PR middle-end/58670
5496	* stmt.c (expand_asm_operands): Add FALLTHRU_BB argument,
5497	if any labels are in FALLTHRU_BB, use a special label emitted
5498	immediately after the asm goto insn rather than label_rtx
5499	of the LABEL_DECL.
5500	(expand_asm_stmt): Adjust caller.
5501	* cfgrtl.c (commit_one_edge_insertion): Force splitting of
5502	edge if the last insn in predecessor is a jump with single successor,
5503	but it isn't simplejump_p.
5504
55052013-10-09  Jakub Jelinek  <jakub@redhat.com>
5506
5507	Backport from mainline
5508	2013-09-26  Richard Biener  <rguenther@suse.de>
5509
5510	PR tree-optimization/58539
5511	* tree-vect-loop.c (vect_create_epilog_for_reduction): Honor
5512	the fact that debug statements are not taking part in loop-closed
5513	SSA construction.
5514
55152013-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5516
5517	* config/s390/s390.c (s390_register_info): Make the call-saved FPR
5518	loop to work also for 31bit ABI.
5519	Save the stack pointer for frame_size > 0.
5520
55212013-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5522
5523	* config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry")
5524	("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove
5525	constraint letters from expanders.
5526	("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the
5527	retry count to general_operand.
5528	("tabort"): Give operand 0 a mode.
5529	("tabort_1"): Add mode and constraint letter for operand 0.
5530	* doc/extend.texi: Fix protoype of __builtin_non_tx_store.
5531
55322013-10-04  Marcus Shawcroft  <marcus.shawcroft@arm.com>
5533
5534	Backport from mainline.
5535
5536	PR target/58460
5537	* config/aarch64/aarch64.md (*add_<shift>_<mode>)
5538	(*add_<shift>_si_uxtw,*add_mul_imm_<mode>)
5539	(*sub_<shift>_<mode>)
5540	(*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw):
5541	Remove k constraint.
5542
55432013-10-02  John David Anglin  <danglin@gcc.gnu.org>
5544
5545	* config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file.
5546
55472013-10-01  Jakub Jelinek  <jakub@redhat.com>
5548	    Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5549
5550	PR target/58574
5551	* config/s390/s390.c (s390_chunkify_start): Handle tablejump_p first,
5552	continue when done, for other jumps look through PARALLEL
5553	unconditionally.
5554
55552013-09-30  Jakub Jelinek  <jakub@redhat.com>
5556
5557	PR middle-end/58564
5558	* fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
5559	optimization, punt if sign_bit_p looked through any zero extension.
5560
55612013-09-27  Paulo Matos  <pmatos@broadcom.com>
5562
5563	Backport from mainline.
5564
5565	PR middle-end/58463
5566	2013-03-27  Richard Biener  <rguenther@suse.de>
5567
5568	PR tree-optimization/56716
5569	* tree-ssa-structalias.c (perform_var_substitution): Adjust
5570	dumping for ref nodes.
5571
55722013-09-27  Paulo Matos  <pmatos@broadcom.com>
5573
5574	Backport from mainline.
5575
5576	2013-09-27  Paulo Matos  <pmatos@broadcom.com>
5577	PR middle-end/58463
5578	* gcc.dg/pr58463.c: New test.
5579
55802013-09-23  Eric Botcazou  <ebotcazou@adacore.com>
5581
5582	* tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
5583	assignment statements.
5584
55852013-09-23  Alan Modra  <amodra@gmail.com>
5586
5587	PR target/58330
5588	* config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
5589
55902013-09-23  Alan Modra  <amodra@gmail.com>
5591
5592	* config/rs6000/predicates.md (add_cint_operand): New.
5593	(reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
5594	* config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
5595	using add_cint_operand.
5596	(largetoc_high_plus_aix): Likewise.
5597	* config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
5598
55992013-09-20  John David Anglin  <danglin@gcc.gnu.org>
5600
5601	PR middle-end/56791
5602	* config/pa/pa.c (pa_option_override): Disable auto increment and
5603	decrement instructions until reload is completed.
5604
5605	* config/pa/pa.md: In "scc" insn patterns, change output template to
5606	handle const0_rtx in reg_or_0_operand operands.
5607
56082013-09-19  Jakub Jelinek  <jakub@redhat.com>
5609
5610	* omp-low.c (expand_omp_sections): Always pass len - 1 to
5611	GOMP_sections_start, even if !exit_reachable.
5612
56132013-09-18  Richard Earnshaw  <rearnsha@arm.com>
5614
5615	* arm.c (arm_expand_prologue): Validate architecture supports
5616	LDRD/STRD before accepting tuning preferences.
5617	(arm_expand_epilogue): Likewise.
5618
56192013-09-18  Daniel Morris  <danielm@ecoscentric.com>
5620	    Paolo Carlini  <paolo.carlini@oracle.com>
5621
5622	PR c++/58458
5623	* doc/implement-cxx.texi: Fix references to the C++ standards.
5624
56252013-09-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5626
5627	PR tree-optimization/58088
5628	* fold-const.c (mask_with_trailing_zeros): New function.
5629	(fold_binary_loc): Make sure we don't recurse infinitely
5630	when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
5631	Use mask_with_trailing_zeros where appropriate.
5632
56332013-09-14  John David Anglin  <danglin@gcc.gnu.org>
5634
5635	PR target/58382
5636	* config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
5637	calls to word_mode.
5638
56392013-09-13  Christian Bruel  <christian.bruel@st.com>
5640
5641	PR target/58314
5642	* config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
5643
56442013-09-11  Andi Kleen  <ak@linux.intel.com>
5645
5646	Backport from mainline
5647	* doc/extend.texi: Use __atomic_store_n instead of
5648	__atomic_store in HLE example.
5649
56502013-09-11  Andi Kleen  <ak@linux.intel.com>
5651
5652	Backport from mainline
5653	* doc/extend.texi: Dont use __atomic_clear in HLE
5654	example.  Fix typo.
5655
56562013-09-11  Andi Kleen  <ak@linux.intel.com>
5657
5658	Backport from mainline
5659	* doc/extend.texi: Document that __atomic_clear and
5660	  __atomic_test_and_set should only be used with bool.
5661
56622013-09-11  Richard Biener  <rguenther@suse.de>
5663
5664	PR middle-end/58377
5665	* passes.c (init_optimization_passes): Split critical edges
5666	before late uninit warning pass in the -Og pipeline.
5667
56682013-09-11  Jakub Jelinek  <jakub@redhat.com>
5669
5670	PR tree-optimization/58385
5671	* fold-const.c (build_range_check): If both low and high are NULL,
5672	use omit_one_operand_loc to preserve exp side-effects.
5673
56742013-09-10  Richard Earnshaw  <rearnsha@arm.com>
5675
5676	PR target/58361
5677	* arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
5678	support conditional execution.
5679	(combine_vcvt_f64_<FCVTI32typename>): Likewise.
5680
56812013-09-10  Jakub Jelinek  <jakub@redhat.com>
5682
5683	PR rtl-optimization/58365
5684	* cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
5685	resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
5686	it differs.
5687
56882013-09-09  Jakub Jelinek  <jakub@redhat.com>
5689
5690	PR tree-optimization/58364
5691	* tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
5692	BOOLEAN_TYPE, only invert in_p and continue with arg0 if
5693	the current range can't be an unconditional true or false.
5694
56952013-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5696
5697	PR target/57735
5698	Backport from mainline
5699	2013-04-30  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
5700
5701	* explow.c (plus_constant): Pass "mode" to immed_double_int_const.
5702	Use gen_int_mode rather than GEN_INT.
5703
57042013-09-09  Richard Biener  <rguenther@suse.de>
5705
5706	Backport from mainline
5707	2013-08-27  Richard Biener  <rguenther@suse.de>
5708
5709	PR tree-optimization/57521
5710	* tree-if-conv.c (if_convertible_bb_p): Verify that at least
5711	one edge is non-critical.
5712	(find_phi_replacement_condition): Make sure to use a non-critical
5713	edge.  Cleanup and remove old bug workarounds.
5714	(bb_postdominates_preds): Remove.
5715	(if_convertible_loop_p_1): Do not compute post-dominators.
5716	(combine_blocks): Do not free post-dominators.
5717	(main_tree_if_conversion): Likewise.
5718
57192013-09-09  Richard Biener  <rguenther@suse.de>
5720
5721	Backport from mainline
5722	2013-09-03  Richard Biener  <rguenther@suse.de>
5723
5724	PR middle-end/57656
5725	* fold-const.c (negate_expr_p): Fix division case.
5726	(negate_expr): Likewise.
5727
57282013-09-09  Richard Biener  <rguenther@suse.de>
5729
5730	Backport from mainline
5731	2013-08-29  Richard Biener  <rguenther@suse.de>
5732
5733	PR tree-optimization/57685
5734	* tree-vrp.c (register_edge_assert_for_1): Recurse only for
5735	single-use operands to avoid exponential complexity.
5736
57372013-09-09  Richard Biener  <rguenther@suse.de>
5738
5739	Backport from mainline
5740	2013-08-30  Richard Biener  <rguenther@suse.de>
5741
5742	PR tree-optimization/58223
5743	* tree-loop-distribution.c (has_anti_dependence): Rename to ...
5744	(has_anti_or_output_dependence): ... this and adjust to also
5745	look for output dependences.
5746	(mark_nodes_having_upstream_mem_writes): Adjust.
5747	(rdg_flag_uses): Likewise.
5748
57492013-09-03  Richard Biener  <rguenther@suse.de>
5750
5751	Backport from mainline
5752	2013-08-29  Richard Biener  <rguenther@suse.de>
5753
5754	PR tree-optimization/58246
5755	* tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
5756	handle the dominance check inside a basic-block.
5757
57582013-09-03  Richard Biener  <rguenther@suse.de>
5759
5760	Backport from mainline
5761	2013-08-30  Richard Biener  <rguenther@suse.de>
5762
5763	PR tree-optimization/58228
5764	* tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
5765	allow invariant loads in nested loop vectorization.
5766
57672013-09-03  Richard Biener  <rguenther@suse.de>
5768
5769	Backport from mainline
5770	2013-08-30  Richard Biener  <rguenther@suse.de>
5771
5772	PR tree-optimization/58010
5773	* tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
5774	assert that we have a loop-closed PHI.
5775
57762013-09-01  Uros Bizjak  <ubizjak@gmail.com>
5777
5778	Backport from mainline
5779	2013-08-31  Uros Bizjak  <ubizjak@gmail.com>
5780
5781	* config/alpha/alpha.c (alpha_emit_conditional_move): Update
5782	"cmp" RTX before signed_comparison_operator check to account
5783	for "code" changes.
5784
57852013-09-01  John David Anglin  <danglin@gcc.gnu.org>
5786
5787	* config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
5788
57892013-08-30  Jakub Jelinek  <jakub@redhat.com>
5790
5791	PR tree-optimization/58277
5792	* tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
5793	after seeing too many stmts with vdef in between dombb and current
5794	bb, invalidate everything.
5795
57962013-08-29  Oleg Endo  <olegendo@gcc.gnu.org>
5797
5798	Backport from mainline
5799	2013-08-05  Oleg Endo  <olegendo@gcc.gnu.org>
5800
5801	PR other/12081
5802	* recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with	new
5803	class insn_gen_fn.
5804	* expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
5805	rtx (*) (rtx, ...) with insn_gen_fn.
5806	* genoutput.c (output_insn_data): Cast gen_? function pointers to
5807	insn_gen_fn::stored_funcptr.  Add initializer braces.
5808
5809	Backport from mainline
5810	2013-08-07  Oleg Endo  <olegendo@gcc.gnu.org>
5811
5812	PR other/12081
5813	* config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
5814	(rs6000_emit_swdiv_high_precision, rs6000_emit_swdiv_low_precision,
5815	rs6000_emit_swrsqrt): Don't cast result of GEN_FCN to gen_2arg_fn_t.
5816
58172013-08-29  Jakub Jelinek  <jakub@redhat.com>
5818
5819	Backported from mainline
5820	2013-05-27  Richard Biener  <rguenther@suse.de>
5821
5822	PR middle-end/57381
5823	PR tree-optimization/57417
5824	* tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
5825	for unchanged base.
5826	(set_ssa_val_to): Compare addresses using
5827	get_addr_base_and_unit_offset.
5828
5829	PR tree-optimization/57396
5830	* tree-affine.c (double_int_constant_multiple_p): Properly
5831	return false for val == 0 and div != 0.
5832
5833	PR tree-optimization/57343
5834	* tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
5835	use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
5836	(number_of_iterations_cond): Do not build the folded tree.
5837
58382013-08-28  Jakub Jelinek  <jakub@redhat.com>
5839
5840	PR middle-end/58257
5841	* omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
5842
58432013-08-28  Richard Biener  <rguenther@suse.de>
5844
5845	Backport from mainline
5846	2013-06-24  Richard Biener  <rguenther@suse.de>
5847
5848	PR middle-end/56977
5849	* passes.c (init_optimization_passes): Move pass_fold_builtins
5850	and pass_dce earlier with -Og.
5851
58522013-08-28  Uros Bizjak  <ubizjak@gmail.com>
5853
5854	Backport from mainline
5855	2013-08-27  H.J. Lu  <hongjiu.lu@intel.com>
5856
5857	* config/i386/driver-i386.c (host_detect_local_cpu): Update
5858	Haswell processor detection.
5859
5860	Backport from mainline
5861	2013-08-27  Christian Widmer  <shadow@umbrox.de>
5862
5863	PR target/57927
5864	* config/i386/driver-i386.c (host_detect_local_cpu): Add detection
5865	of Ivy Bridge and Haswell processors.  Assume core-avx2 for unknown
5866	AVX2 capable processors.
5867
58682013-08-23  Jakub Jelinek  <jakub@redhat.com>
5869
5870	PR target/58218
5871	* config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
5872	* config/i386/i386.c (x86_64_elf_section_type_flags): New function.
5873
5874	PR tree-optimization/58209
5875	* tree-tailcall.c (find_tail_calls): Give up for pointer result types
5876	if m or a is non-NULL.
5877
58782013-08-21  Richard Earnshaw  <rearnsha@arm.com>
5879
5880	PR target/56979
5881	* arm.c (aapcs_vfp_allocate): Decompose the argument if the
5882	suggested mode for the assignment isn't compatible with the
5883	registers required.
5884
58852013-08-20  Alan Modra  <amodra@gmail.com>
5886
5887	PR target/57865
5888	* config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
5889	(rs6000_emit_epilogue): Likewise.
5890
58912013-08-19  Peter Bergner  <bergner@vnet.ibm.com>
5892	    Jakub Jelinek  <jakub@redhat.com>
5893
5894	Backport from mainline
5895	* config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
5896	destination and source operands.
5897
58982013-08-18  Jakub Jelinek  <jakub@redhat.com>
5899
5900	PR tree-optimization/58006
5901	* tree-parloops.c (take_address_of): Don't ICE if get_name
5902	returns NULL.
5903	(eliminate_local_variables_stmt): Remove clobber stmts.
5904
59052013-08-16  Jakub Jelinek  <jakub@redhat.com>
5906
5907	PR tree-optimization/58164
5908	* gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
5909	walk gimple_goto_dest of GIMPLE_GOTO.
5910
5911	PR tree-optimization/58165
5912	* tree-call-cdce.c (shrink_wrap_one_built_in_call): If
5913	bi_call must be the last stmt in a bb, don't split_block, instead
5914	use fallthru edge from it and give up if there is none.
5915	Release conds vector when returning early.
5916
59172013-08-15  David Given  <dg@cowlark.com>
5918
5919	Backport from mainline
5920	2013-04-26  Vladimir Makarov  <vmakarov@redhat.com>
5921
5922	* lra-constraints.c (process_alt_operands): Use #if HAVE_ATTR_enable
5923	instead of #ifdef.
5924
59252013-08-14  Jakub Jelinek  <jakub@redhat.com>
5926
5927	PR tree-optimization/58145
5928	* tree-sra.c (build_ref_for_offset): If prev_base has
5929	TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
5930
59312013-08-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5932
5933	* config/s390/htmxlintrin.h: Add file missing from last commit.
5934	* config/s390/htmintrin.h: Likewise.
5935	* config/s390/s390intrin.h: Likewise.
5936
59372013-08-14  Uros Bizjak  <ubizjak@gmail.com>
5938
5939	Backport from mainline
5940	2013-08-13  Uros Bizjak  <ubizjak@gmail.com>
5941
5942	* config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
5943	when Pmode != word_mode.  Add length_address attribute.
5944	(sse3_monitor_<mode>): Merge from sse3_monitor and
5945	sse3_monitor64_<mode> insn patterns.  Emit addr32 prefix when
5946	Pmode != word_mode.  Update insn length attribute.
5947	* config/i386/i386.c (ix86_option_override_internal): Update
5948	ix86_gen_monitor selection for merged sse3_monitor insn.
5949
59502013-08-14  Jakub Jelinek  <jakub@redhat.com>
5951	    Alexandre Oliva  <aoliva@redhat.com>
5952
5953	PR target/58067
5954	* config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
5955	and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
5956	there also UNSPEC_PLTOFF.
5957
59582013-08-13  Jakub Jelinek  <jakub@redhat.com>
5959
5960	PR sanitizer/56417
5961	* asan.c (instrument_strlen_call): Fix typo in comment.
5962	Use char * type even for the lhs of POINTER_PLUS_EXPR.
5963
59642013-08-13  Vladimir Makarov  <vmakarov@redhat.com>
5965
5966	Backport from mainline
5967	2013-06-06  Vladimir Makarov  <vmakarov@redhat.com>
5968
5969	PR rtl-optimization/57459
5970	* lra-constraints.c (update_ebb_live_info): Fix typo for operand
5971	type when setting live regs.
5972
59732013-08-13  Marek Polacek  <polacek@redhat.com>
5974	    Jakub Jelinek  <jakub@redhat.com>
5975
5976	PR tree-optimization/57980
5977	* tree-tailcall.c (process_assignment): Return false
5978	when not dealing with integers or floats.
5979
59802013-08-12  Andrew Haley  <aph@redhat.com>
5981
5982	Backport from mainline:
5983	* 2013-07-11  Andreas Schwab  <schwab@suse.de>
5984
5985	* config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
5986
59872013-08-13  Uros Bizjak  <ubizjak@gmail.com>
5988
5989	Backport from mainline
5990	2013-08-12  Perez Read  <netfirewall@gmail.com>
5991
5992	PR target/58132
5993	* config/i386/i386.md (*movabs<mode>_1):  Add <ptrsize> PTR before
5994	operand 0 for intel asm alternative.
5995	(*movabs<mode>_2): Ditto for operand 1.
5996
59972013-08-09  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
5998
5999	Backport from mainline:
6000	2013-08-09  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6001
6002	* config/arm/neon.md (vcond): Fix floating-point vector
6003	comparisons against 0.
6004
60052013-08-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6006
6007	Backport from mainline:
6008	2013-08-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6009
6010	* config/arm/neon.md (movmisalign<mode>): Disable when we
6011	don't allow unaligned accesses.
6012	(*movmisalign<mode>_neon_store): Likewise.
6013	(*movmisalign<mode>_neon_load): Likewise.
6014	(*movmisalign<mode>_neon_store): Likewise.
6015	(*movmisalign<mode>_neon_load): Likewise.
6016
60172013-08-06  Martin Jambor  <mjambor@suse.cz>
6018
6019	PR middle-end/58041
6020	* gimple-ssa-strength-reduction.c (replace_ref): Make sure built
6021	MEM_REF has proper alignment information.
6022
60232013-08-05  Richard Earnshaw  <rearnsha@arm.com>
6024
6025	PR rtl-optimization/57708
6026	* recog.c (peep2_find_free_register): Validate all regs in a
6027	multi-reg mode.
6028
60292013-08-02  Eric Botcazou  <ebotcazou@adacore.com>
6030
6031	* config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
6032	the implied StoreLoad barrier for atomic operations if before.
6033
60342013-08-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6035
6036	Backports from mainline:
6037	2013-06-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6038
6039	* config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
6040	UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
6041	(struct machine_function): Add tbegin_p.
6042	(s390_canonicalize_comparison): Fold CC mode compares to
6043	conditional jump if possible.
6044	(s390_emit_jump): Return the emitted jump.
6045	(s390_branch_condition_mask, s390_branch_condition_mnemonic):
6046	Handle CCRAWmode compares.
6047	(s390_option_override): Default to -mhtm if available.
6048	(s390_reg_clobbered_rtx): Handle floating point regs as well.
6049	(s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
6050	FPRs instead of df_regs_ever_live_p.
6051	(s390_optimize_nonescaping_tx): New function.
6052	(s390_init_frame_layout): Extend clobbered_regs array to cover
6053	FPRs as well.
6054	(s390_emit_prologue): Call s390_optimize_nonescaping_tx.
6055	(s390_expand_tbegin): New function.
6056	(enum s390_builtin): New enum definition.
6057	(code_for_builtin): New array definition.
6058	(s390_init_builtins): New function.
6059	(s390_expand_builtin): New function.
6060	(TARGET_INIT_BUILTINS): Define.
6061	(TARGET_EXPAND_BUILTIN): Define.
6062	* common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
6063	* config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
6064	(s390_alc_comparison): Likewise.
6065	* config/s390/s390-modes.def: Add CCRAWmode.
6066	* config/s390/s390.h (processor_flags): Add PF_TX.
6067	(TARGET_CPU_HTM): Define macro.
6068	(TARGET_HTM): Define macro.
6069	(TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
6070	* config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
6071	UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
6072	(UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
6073	(UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum
6074	values.
6075	(TBEGIN_MASK, TBEGINC_MASK): New constants.
6076	("*cc_to_int"): Move up.
6077	("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
6078	constants other than 0.
6079	("*ccraw_to_int"): New insn and splitter definition.
6080	("tbegin", "tbegin_nofloat", "tbegin_retry")
6081	("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
6082	("tx_assist"): New expander.
6083	("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
6084	("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
6085	* config/s390/s390.opt: Add -mhtm option.
6086	* config/s390/s390-protos.h (s390_emit_jump): Add return type.
6087	* config/s390/htmxlintrin.h: New file.
6088	* config/s390/htmintrin.h: New file.
6089	* config/s390/s390intrin.h: New file.
6090	* doc/extend.texi: Document htm builtins.
6091	* config.gcc: Add the new header files to extra_headers.
6092
6093	2013-07-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6094
6095	* config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
6096	enabled without -march=zEC12.
6097	* config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
6098	flags to be set.
6099
61002013-08-01  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
6101
6102	Backport from mainline
6103	2013-05-13  Ganesh Gopalasubramanian
6104		    <Ganesh.Gopalasubramanian@amd.com>
6105
6106	* config/i386/i386.c (processor_target_table): Modified default
6107	alignment values for AMD BD and BT architectures.
6108
61092013-07-31  Sriraman Tallam  <tmsriram@google.com>
6110
6111	* config/i386/i386.c (dispatch_function_versions): Fix array
6112	indexing of function_version_info to match actual_versions.
6113
61142013-07-31  Sebastian Huber  <sebastian.huber@embedded-brains.de>
6115
6116	* config.gcc (*-*-rtems*): Use __cxa_atexit by default.
6117	* config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
6118
61192013-07-31  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6120
6121	Backport from mainline
6122	2013-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6123
6124	* config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
6125
6126	2013-07-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6127
6128	* config/s390/linux-unwind.h: Use the proper dwarf to hard reg
6129	mapping for FPRs when creating the fallback framestate.
6130
6131	2013-07-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
6132
6133	* config/s390/s390.md ("movcc"): Swap load and store instructions.
6134
61352013-07-25  Terry Guo  <terry.guo@arm.com>
6136
6137	Backport from mainline:
6138	2013-07-25  Terry Guo  <terry.guo@arm.com>
6139
6140	* config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
6141	shift_add/shift_sub0/shift_sub1 RTXs.
6142
61432013-07-22  Iain Sandoe  <iain@codesourcery.com>
6144
6145	Backport from mainline:
6146	2013-07-22  Uros Bizjak  <ubizjak@gmail.com>
6147
6148	* config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
6149	it is not needed after split.
6150
6151	2013-07-20  Iain Sandoe  <iain@codesourcery.com>
6152
6153	PR target/51784
6154	* config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
6155	second label for nonlocal goto receivers. Don't output pic base labels
6156	unless we're producing PIC; mark that action unreachable().
6157	(ix86_save_reg): If the function contains a nonlocal label, save the
6158	PIC base reg.
6159	* config/darwin-protos.h (machopic_should_output_picbase_label): New.
6160	* gcc/config/darwin.c (emitted_pic_label_num): New GTY.
6161	(update_pic_label_number_if_needed): New.
6162	(machopic_output_function_base_name): Adjust for nonlocal receiver
6163	case.
6164	(machopic_should_output_picbase_label): New.
6165	* config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
6166	(nonlocal_goto_receiver): New insn and split.
6167
61682013-07-19 Wei Mi  <wmi@google.com>
6169
6170	Backport from mainline:
6171	2013-07-18  Vladimir Makarov  <vmakarov@redhat.com>
6172		    Wei Mi  <wmi@google.com>
6173
6174	PR rtl-optimization/57878
6175	* lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
6176	top. Promote lra_assert to gcc_assert.
6177	(reload_pseudo_compare_func): Check regs first for reload pseudos.
6178
61792013-07-11  Georg-Johann Lay  <avr@gjlay.de>
6180
6181	Backport from 2013-07-19 trunk r201051.
6182
6183	PR target/57516
6184	* config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
6185	* config/avr/avr.md (adjust_len): Add `round'.
6186	* config/avr/avr-protos.h (avr_out_round): New prototype.
6187	(avr_out_plus): Add `out_label' argument.
6188	* config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
6189	(avr_out_plus): Pass down `out_label' to avr_out_plus_1.
6190	Handle the case where `insn' is just a pattern.
6191	(avr_out_bitop): Handle the case where `insn' is just a pattern.
6192	(avr_out_round): New function.
6193	(avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
6194
61952013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
6196
6197	* config/i386/bmiintrin.h (_bextr_u32): New.
6198	(_bextr_u64): Ditto.
6199	(_blsi_u32): New.
6200	(_blsi_u64): Ditto.
6201	(_blsr_u32): Ditto.
6202	(_blsr_u64): Ditto.
6203	(_blsmsk_u32): Ditto.
6204	(_blsmsk_u64): Ditto.
6205	(_tzcnt_u32): Ditto.
6206	(_tzcnt_u64): Ditto.
6207
62082013-07-17  James Greenhalgh  <james.greenhalgh@arm.com>
6209
6210	Backport From mainline:
6211	2013-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
6212
6213	* config/aarch64/aarch64-builtins.c
6214	(aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
6215	* config/aarch64/aarch64-simd-builtins.def (ld1): New.
6216	(st1): Likewise.
6217	* config/aarch64/aarch64-simd.md
6218	(aarch64_ld1<VALL:mode>): New.
6219	(aarch64_st1<VALL:mode>): Likewise.
6220	* config/aarch64/arm_neon.h
6221	(vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
6222
62232013-07-11  Georg-Johann Lay  <avr@gjlay.de>
6224
6225	Backport from 2013-07-11 trunk r200901.
6226
6227	PR target/57631
6228	* config/avr/avr.c (avr_set_current_function): Sanity-check signal
6229	name seen by assembler/linker if available.
6230
62312013-07-10  Georg-Johann Lay  <avr@gjlay.de>
6232
6233	Backport from 2013-07-10 trunk r200872.
6234
6235	PR target/57844
6236	* config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
6237	of my_fp.
6238
62392013-07-10  Georg-Johann Lay  <avr@gjlay.de>
6240
6241	Backport from 2013-07-10 trunk r200870.
6242
6243	PR target/57506
6244	* config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
6245	(atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
6246	(atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
6247	Remove duplicate devices.
6248	* config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
6249	* config/avr/t-multilib: Regenerate.
6250	* config/avr/avr-tables.opt: Regenerate.
6251	* doc/avr-mmcu.texi: Regenerate.
6252
62532013-07-10  Georg-Johann Lay  <avr@gjlay.de>
6254
6255	PR target/56987
6256	* config/avr/avr.opt (Waddr-space-convert): Fix typo.
6257
62582013-07-09  Joseph Myers  <joseph@codesourcery.com>
6259
6260	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
6261	adjust register size for TDmode and TFmode for VSX registers.
6262
62632013-07-08  Kai Tietz  <ktietz@redhat.com>
6264
6265	Backport from mainline
6266	PR target/56892
6267	* config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
6268	hook_bool_const_tree_true.
6269
62702013-07-08  Uros Bizjak  <ubizjak@gmail.com>
6271
6272	Backport from mainline
6273	2013-07-07  Uros Bizjak  <ubizjak@gmail.com>
6274
6275	* config/i386/driver-i386.c (host_detect_local_cpu): Do not check
6276	signature_TM2_ebx, it interferes with signature_INTEL_ebx.
6277
6278	Backport from mainline
6279	2013-07-06  Uros Bizjak  <ubizjak@gmail.com>
6280
6281	* config/i386/sse.md (sse_movlhps): Change alternative 3
6282	of operand 2 to "m".
6283
62842013-07-08  Eric Botcazou  <ebotcazou@adacore.com>
6285
6286	* Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
6287
62882013-07-08  Jakub Jelinek  <jakub@redhat.com>
6289
6290	PR rtl-optimization/57829
6291	* simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
6292	mask bits outside of mode are just sign-extension from mode to HWI.
6293
62942013-07-03  Jakub Jelinek  <jakub@redhat.com>
6295
6296	PR target/57777
6297	* config/i386/predicates.md (vsib_address_operand): Disallow
6298	SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
6299
63002013-06-30  Terry Guo  <terry.guo@arm.com>
6301
6302	Backport from mainline
6303	2013-03-27  Bin Cheng  <bin.cheng@arm.com>
6304
6305	PR target/56102
6306	* config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
6307	rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
6308	mult-word mode.
6309
63102013-06-28  Jakub Jelinek  <jakub@redhat.com>
6311
6312	PR target/57736
6313	* config/i386/i386.c (ix86_expand_builtin): If target == NULL
6314	and mode is VOIDmode, don't create a VOIDmode pseudo to copy result
6315	into.
6316
63172013-06-27  Jakub Jelinek  <jakub@redhat.com>
6318
6319	PR target/57623
6320	* config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
6321	constraints of operand 1 and 2.
6322
6323	PR target/57623
6324	* config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
6325	to match RTL canonicalization.  Swap predicates and
6326	constraints of operand 1 and 2.
6327
6328	* tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
6329	decl before the loop, initialize to NULL.
6330	(vectorizable_load): Initialize ptr_incr to NULL.
6331
63322013-06-24  Martin Jambor  <mjambor@suse.cz>
6333
6334	PR tree-optimization/57358
6335	* ipa-prop.c (parm_ref_data_preserved_p): Always return true when
6336	not optimizing.
6337
63382013-06-24  Alan Modra  <amodra@gmail.com>
6339
6340	* config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
6341	(gen_easy_altivec_constant): Likewise.
6342	* config/rs6000/predicates.md (easy_vector_constant_add_self,
6343	easy_vector_constant_msb): Likewise.
6344
63452013-06-21  Uros Bizjak  <ubizjak@gmail.com>
6346
6347	Backport from mainline
6348	2013-06-20  Uros Bizjak  <ubizjak@gmail.com>
6349
6350	PR target/57655
6351	* config/i386/i386.c (construct_container): Report error if
6352	long double is used with disabled x87 float returns.
6353
63542013-06-20  Wei Mi  <wmi@google.com>
6355
6356	Backport from mainline
6357	2013-06-19  Wei Mi  <wmi@google.com>
6358
6359	PR rtl-optimization/57518
6360	* ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
6361	if regno is used in paradoxical subreg.
6362	(update_equiv_regs): Check pdx_subregs[regno] before
6363	set a reg to be equivalent with a mem.
6364
6365
63662013-06-20  David Edelsohn  <dje.gcc@gmail.com>
6367
6368	Backport from mainline
6369	2013-06-19  David Edelsohn  <dje.gcc@gmail.com>
6370
6371	PR driver/57652
6372	* collect2.c (collect_atexit): New.
6373	(collect_exit): Delete.
6374	(main): Register collect_atexit with atexit.
6375	(collect_wait): Change collect_exit to exit.
6376	(do_wait): Same.
6377	* collect2.h (collect_exit): Delete.
6378	* tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
6379
63802013-06-19  Matthias Klose  <doko@ubuntu.com>
6381
6382	PR driver/57651
6383	* file-find.h (find_a_file): Add a mode parameter.
6384	* file-find.c (find_a_file): Likewise.
6385	* gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
6386	with X_OK for the executables.
6387	* collect2.c (main): Call find_a_file with X_OK.
6388
63892013-06-19  Igor Zamyatin  <igor.zamyatin@intel.com>
6390
6391	* doc/invoke.texi (core-avx2): Document.
6392	(atom): Updated with MOVBE.
6393
63942013-06-19  Jakub Jelinek  <jakub@redhat.com>
6395
6396	PR driver/57651
6397	* gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
6398	PERSONALITY in $PATH derived prefixes.
6399
64002013-06-19  Paolo Carlini  <paolo.carlini@oracle.com>
6401
6402	PR c++/56544
6403	* doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
6404	that now in C++ the value is correct per the C++ standards.
6405
64062013-06-19  Alan Modra  <amodra@gmail.com>
6407
6408	Apply mainline patches
6409	2013-06-13  Alan Modra  <amodra@gmail.com>
6410	* config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
6411	* config/rs6000/rs6000.md (signbittf2): New insn.
6412	(extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
6413	(abstf2_internal, cmptf_internal2): Likewise.
6414	* config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
6415
6416	2013-06-11  Anton Blanchard  <anton@samba.org>
6417	* config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
6418	correct shift value in little-endian mode.
6419
6420	2013-06-07  Alan Modra  <amodra@gmail.com>
6421	* config/rs6000/rs6000.c (setup_incoming_varargs): Round up
6422	va_list_gpr_size.
6423
6424	2013-06-04  Alan Modra  <amodra@gmail.com>
6425	* config/rs6000/rs6000.c (output_toc): Correct little-endian float
6426	constant output.
6427
6428	2013-05-10  Alan Modra  <amodra@gmail.com>
6429	* configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
6430	(HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
6431	* configure: Regenerate.
6432
6433	2013-05-09  Alan Modra  <amodra@gmail.com>
6434	* configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
6435	powerpc64le.
6436	* configure: Regenerate.
6437
6438	2013-05-07  Anton Blanchard  <anton@samba.org>
6439	* configure.ac (HAVE_LD_LARGE_TOC): Use right linker emulation
6440	for powerpc64 little endian.
6441	* configure: Regenerate.
6442
6443	2013-05-06  Alan Modra  <amodra@gmail.com>
6444	* config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
6445	(LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
6446	* config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
6447	* config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
6448	(LINK_TARGET_SPEC): Use ENDIAN_SELECT.
6449	* config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
6450
6451	2013-05-06  Alan Modra  <amodra@gmail.com>
6452	* config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
6453	(ASM_SPEC): ..here.  Emit DEFAULT_ASM_ENDIAN too.
6454	(DEFAULT_ASM_ENDIAN): Define.
6455	(CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
6456	* config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
6457	Update -K PIC clause from sysv4.h.
6458	(ASM_SPEC_COMMON): Use ENDIAN_SELECT.
6459	(LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
6460
6461	2013-05-06  Alan Modra  <amodra@gmail.com>
6462	* config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
6463	twice for little-endian.
6464	(ashrdi3_no_power, ashrdi3): Support little-endian.
6465
6466	2013-04-25  Alan Modra  <amodra@gmail.com>
6467	* config.gcc: Support little-endian powerpc-linux targets.
6468	* config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
6469	(LINK_OS_LINUX_SPEC): Define.
6470	* config/rs6000/linuxspe.h (TARGET_DEFAULT):
6471	Preserve MASK_LITTLE_ENDIAN.
6472	* config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
6473	* config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
6474	* config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
6475	(LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
6476	(LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
6477	* config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
6478	Correct fp word order for little-endian.  Don't shift toc entries
6479	smaller than a word for little-endian.
6480	* config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
6481	(bswapdi2 splits): Correct low-part subreg for little-endian.
6482	Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
6483	low/high where such is correct only for be.
6484	* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
6485	little-endian for -mcall-aixdesc.
6486
64872013-06-12  Martin Jambor  <mjambor@suse.cz>
6488
6489	* ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
6490	within bounds at the beginning of the function.
6491
64922013-06-12  Jakub Jelinek  <jakub@redhat.com>
6493
6494	PR tree-optimization/57537
6495	* tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
6496	vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
6497
64982013-06-10  Uros Bizjak  <ubizjak@gmail.com>
6499
6500	Backport from mainline
6501	2013-06-10  Uros Bizjak  <ubizjak@gmail.com>
6502
6503	* config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
6504	cmp_code to construct REG_EQUAL note.
6505
65062013-06-10  Oleg Endo  <olegendo@gcc.gnu.org>
6507
6508	Backport from mainline
6509	2013-05-20  Oleg Endo  <olegendo@gcc.gnu.org>
6510
6511	PR target/56547
6512	* config/sh/sh.md (fmasf4): Remove empty constraints strings.
6513	(*fmasf4, *fmasf4_media): New insns.
6514
65152013-06-09  Jakub Jelinek  <jakub@redhat.com>
6516
6517	PR target/57568
6518	* config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
6519	that operands[2] doesn't overlap with operands[0].
6520
65212013-06-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
6522
6523	* recog.c (offsettable_address_addr_space_p): Fix calculation of
6524	address mode.  Move pointer mode initialization to the same place.
6525
65262013-06-07  Sofiane Naci  <sofiane.naci@arm.com>
6527
6528	Backport from mainline
6529	* config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
6530
65312013-06-07  Uros Bizjak  <ubizjak@gmail.com>
6532
6533	Backport from mainline
6534	2013-06-05  Uros Bizjak  <ubizjak@gmail.com>
6535
6536	* config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
6537	GE, GT, GEU and GTU compares, modulo DImode compares with zero.
6538
6539	Backport from mainline
6540	2013-05-23  Uros Bizjak  <ubizjak@gmail.com>
6541
6542	PR target/57379
6543	* config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
6544	* config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
6545	REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
6546
65472013-06-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6548
6549	Backport from mainline.
6550	2013-05-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6551
6552	* config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
6553
65542013-06-03  James Greenhalgh  <james.greenhalgh@arm.com>
6555
6556	Backport from mainline.
6557	2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
6558
6559	* config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
6560	format specifier in 'X' case.
6561
65622013-05-31  Richard Henderson  <rth@redhat.com>
6563
6564	PR target/56742
6565	* config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
6566	(ix86_reorg): Call it.
6567
65682012-05-31  Jakub Jelinek  <jakub@redhat.com>
6569
6570	* BASE-VER: Set to 4.8.2.
6571	* DEV-PHASE: Set to prerelease.
6572
65732013-05-31  Release Manager
6574
6575	* GCC 4.8.1 released.
6576
65772013-05-24  Greta Yorsh  <Greta.Yorsh@arm.com>
6578
6579	Backport from mainline
6580	2013-05-02  Greta Yorsh  <Greta.Yorsh@arm.com>
6581
6582	PR target/56732
6583	* config/arm/arm.c (arm_expand_epilogue): Check really_return before
6584	generating simple_return for naked functions.
6585
65862013-05-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
6587
6588	PR tree-ssa/57385
6589	* tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
6590	that index is not negative.
6591
65922013-05-23  Martin Jambor  <mjambor@suse.cz>
6593
6594	PR middle-end/57347
6595	* tree.h (contains_bitfld_component_ref_p): Declare.
6596	* tree-sra.c (contains_bitfld_comp_ref_p): Move...
6597	* tree.c (contains_bitfld_component_ref_p): ...here.  Adjust its caller.
6598	* ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
6599	not access a bit-field.  Assert all final offsets are byte-aligned.
6600
66012013-05-23  Richard Biener  <rguenther@suse.de>
6602
6603	PR rtl-optimization/57341
6604	* ira.c (validate_equiv_mem_from_store): Use anti_dependence
6605	instead of true_dependence.
6606
66072013-05-23  Jakub Jelinek  <jakub@redhat.com>
6608
6609	PR middle-end/57344
6610	* expmed.c (store_split_bit_field): If op0 is a REG or
6611	SUBREG of a REG, don't lower unit.  Handle unit not being
6612	always BITS_PER_WORD.
6613
66142013-05-22  Uros Bizjak  <ubizjak@gmail.com>
6615
6616	PR target/57356
6617	* config/i386/i386.md (*movti_internal_rex64): Emit movaps/movups
6618	for non-sse2 targets.
6619	(*movti_internal): Simplify mode attribute calculation.
6620
66212013-05-22  Richard Biener  <rguenther@suse.de>
6622
6623	Backport from mainline
6624	2013-05-21  Richard Biener  <rguenther@suse.de>
6625
6626	PR tree-optimization/57318
6627	* tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
6628	estimate stmts with side-effects as likely eliminated.
6629
6630	2013-05-21  Richard Biener  <rguenther@suse.de>
6631
6632	PR tree-optimization/57330
6633	* cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
6634	preserve the call stmts fntype.
6635
6636	2013-05-21  Richard Biener  <rguenther@suse.de>
6637
6638	PR tree-optimization/57303
6639	* tree-ssa-sink.c (statement_sink_location): Properly handle
6640	self-assignments.
6641
66422013-05-21  Magnus Granberg  <baldrick@free.fr>
6643
6644	PR plugins/56754
6645	* Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
6646
66472013-05-21  Eric Botcazou  <ebotcazou@adacore.com>
6648
6649	Backport from mainline
6650	2013-05-14  Eric Botcazou  <ebotcazou@adacore.com>
6651
6652	* config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
6653	* config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
6654
66552013-05-17  Jakub Jelinek  <jakub@redhat.com>
6656
6657	PR rtl-optimization/57281
6658	PR rtl-optimization/57300
6659	* config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
6660	(extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
6661	what the other splitter did if the registers are dead.
6662
66632013-05-17  Uros Bizjak  <ubizjak@gmail.com>
6664
6665	Backport from mainline
6666	2013-05-16  Uros Bizjak  <ubizjak@gmail.com>
6667
6668	* config/i386/driver-i386.c (host_detect_local_cpu): Determine
6669	cache parameters using detect_caches_amd also for CYRIX,
6670	NSC and TM2 signatures.
6671
6672	2013-05-16  Uros Bizjak  <ubizjak@gmail.com>
6673		    Dzianis Kahanovich  <mahatma@eu.by>
6674
6675	PR target/45359
6676	PR target/46396
6677	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
6678	VIA/Centaur processors and determine their cache parameters
6679	using detect_caches_amd.
6680
6681	2013-05-15  Uros Bizjak  <ubizjak@gmail.com>
6682
6683	* config/i386/i386.c (ix86_option_override_internal): Update
6684	processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags.  Add
6685	PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
6686	non-SSE 3dNow! targets.  Enable TARGET_PRFCHW for TARGET_3DNOW targets.
6687	* config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
6688	of TARGET_3DNOW.
6689	(*prefetch_3dnow): Enable for TARGET_PRFCHW only.
6690
66912013-05-17  Jakub Jelinek  <jakub@redhat.com>
6692
6693	* gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
6694	linking.
6695
6696	PR tree-optimization/57051
6697	* fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
6698	case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
6699
67002013-05-16  Jakub Jelinek  <jakub@redhat.com>
6701
6702	* omp-low.c (extract_omp_for_data): For collapsed loops,
6703	if at least one of the loops is known at compile time to
6704	iterate zero times, set count to 0.
6705	(expand_omp_regimplify_p): New function.
6706	(expand_omp_for_generic): For collapsed loops, if at least
6707	one of the loops isn't known to iterate at least once,
6708	add runtime check with setting count to 0.
6709	(expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
6710	For unsigned types if it isn't known at compile time that
6711	the loop will iterate at least once, add runtime check to bypass
6712	the whole loop if initial condition isn't true.
6713
67142013-05-14  Jakub Jelinek  <jakub@redhat.com>
6715
6716	PR middle-end/57251
6717	* expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
6718	the case when both op0 and op1 have VOIDmode.
6719
67202013-05-13  Jakub Jelinek  <jakub@redhat.com>
6721
6722	PR tree-optimization/57230
6723	* tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
6724	check.
6725
67262013-05-12  Joern Rennecke  <joern.rennecke@embecosm.com>
6727
6728	* config/epiphany/epiphany.c (epiphany_init): Check size of
6729	NUM_MODES_FOR_MODE_SWITCHING.
6730	(epiphany_expand_prologue):
6731	Remove CONFIG_REGNUM initial value handling code.
6732	(epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
6733	(epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
6734	(emit_set_fp_mode, epiphany_mode_after): Likewise.
6735	(epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
6736	Don't return 1 for FP_MODE_NONE.
6737	* config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
6738	Add value for EPIPHANY_MSW_ENTITY_CONFIG.
6739	(EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
6740	* config/epiphany/epiphany.md (save_config): New pattern.
6741
67422013-05-10  Sebastian Huber  <sebastian.huber@embedded-brains.de>
6743
6744	* config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
6745	Add mthumb/march=armv7-a multilib.
6746	Add mthumb/march=armv7-r multilib.
6747	Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
6748
67492013-05-10  Ralf Corsépius  <ralf.corsepius@rtems.org>
6750
6751	PR target/57237
6752	* config/v850/t-rtems: Add more multilibs.
6753
67542013-05-10  Richard Biener  <rguenther@suse.de>
6755
6756	PR tree-optimization/57214
6757	* tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
6758	not propagate from SSA names that occur in abnormal PHI nodes.
6759
67602013-05-10  Alan Modra  <amodra@gmail.com>
6761
6762	PR target/55033
6763	* varasm.c (default_elf_select_section): Move !DECL_P check..
6764	(get_named_section): ..to here before calling get_section_name.
6765	Adjust assertion.
6766	(default_section_type_flags): Add DECL_P check.
6767	* config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
6768	* config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
6769
67702013-05-09  Joern Rennecke  <joern.rennecke@embecosm.com>
6771
6772	* config/epiphany/epiphany.c (epiphany_expand_prologue):
6773	When using gen_stack_adjust_str with a register offset, add a
6774	REG_FRAME_RELATED_EXPR note.
6775
67762013-05-09  Martin Jambor  <mjambor@suse.cz>
6777
6778	PR middle-end/56988
6779	* ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
6780	* ipa-cp.c (find_aggregate_values_for_callers_subset): Fill in the
6781	by_ref flag of ipa_agg_replacement_value structures.
6782	(known_aggs_to_agg_replacement_list): Likewise.
6783	* ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
6784	(read_agg_replacement_chain): Likewise.
6785	(ipcp_transform_function): Also check that by_ref flags match.
6786
67872013-05-08  Diego Novillo  <dnovillo@google.com>
6788
6789	PR bootstrap/54659
6790
6791	Revert:
6792
6793	2012-08-17  Diego Novillo  <dnovillo@google.com>
6794
6795		PR bootstrap/54281
6796		* configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
6797		* config.in: Regenerate.
6798		* configure: Regenerate.
6799		* intl.h: Always include libintl.h if HAVE_LIBINTL_H is
6800		set.
6801
68022013-05-08  Paolo Carlini  <paolo.carlini@oracle.com>
6803
6804	PR tree-optimization/57200
6805	* tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
6806	Only call inform if the preceding warning_at returns true.
6807
68082013-05-07  Jakub Jelinek  <jakub@redhat.com>
6809
6810	PR tree-optimization/57149
6811	* tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
6812	(can_skip_redundant_opnd, compute_uninit_opnds_pos,
6813	collect_phi_def_edges, execute_late_warn_uninitialized): Use
6814	uninit_undefined_value_p instead of ssa_undefined_value_p.
6815
6816	PR debug/57184
6817	* expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
6818	for modifier == EXPAND_INITIALIZER.
6819
68202013-05-07  Richard Biener  <rguenther@suse.de>
6821
6822	Backport from mainline
6823	2013-05-06  Richard Biener  <rguenther@suse.de>
6824
6825	PR tree-optimization/57185
6826	* tree-parloops.c (add_field_for_reduction): Handle anonymous
6827	SSA names properly.
6828
6829	2013-04-19  Richard Biener  <rguenther@suse.de>
6830
6831	PR tree-optimization/57000
6832	* tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
6833
68342013-05-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
6835
6836	Backport from trunk
6837	2013-05-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
6838
6839	PR target/57150
6840	* config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
6841	to save TFmode registers and DImode to save TImode registers for
6842	caller save operations.
6843	(HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
6844	mark being partially clobbered since they only use the first
6845	double word.
6846
6847	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
6848	and TDmode only use the upper 64-bits of each VSX register.
6849
68502013-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6851
6852	PR target/57108
6853	* config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
6854
68552013-05-06  Uros Bizjak  <ubizjak@gmail.com>
6856
6857	Backport from mainline
6858	2013-05-06  Uros Bizjak  <ubizjak@gmail.com>
6859
6860	PR target/57106
6861	* config/i386/i386.c (add_parameter_dependencies): Add dependence
6862	between "first_arg" and "insn", not "last" and "insn".
6863
68642013-05-03  Jakub Jelinek  <jakub@redhat.com>
6865
6866	PR rtl-optimization/57130
6867	* combine.c (make_compound_operation) <case SUBREG>: Pass
6868	SET instead of COMPARE as in_code to the recursive call
6869	if needed.
6870
6871	Backported from mainline
6872	2013-04-26  Jakub Jelinek  <jakub@redhat.com>
6873
6874	PR tree-optimization/57051
6875	* fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
6876	and VEC_RSHIFT_EXPR if shift count is a multiple of element
6877	bitsize.
6878
6879	2013-04-12  Marc Glisse  <marc.glisse@inria.fr>
6880
6881	* fold-const.c (fold_binary_loc): Call const_binop also for mixed
6882	vector-scalar operations.
6883
68842013-05-03  Marek Polacek  <polacek@redhat.com>
6885
6886	Backport from mainline
6887	2013-04-25  Marek Polacek  <polacek@redhat.com>
6888
6889	PR tree-optimization/57066
6890	* builtins.c (fold_builtin_logb): Return +Inf for -Inf.
6891
68922013-05-02  Vladimir Makarov  <vmakarov@redhat.com>
6893
6894	Backport from mainline
6895	2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>
6896
6897	* lra-constraints.c (process_alt_operands): Add checking alt
6898	number to choose the best alternative.
6899
6900	2013-05-01  Vladimir Makarov  <vmakarov@redhat.com>
6901
6902	PR target/57091
6903	* lra-constraints.c (best_small_class_operands_num): Remove.
6904	(process_alt_operands): Remove small_class_operands_num.  Take
6905	small classes operands into losers and only if the operand is not
6906	matched.  Modify debugging output.
6907	(curr_insn_transform): Remove best_small_class_operands_num.
6908	Print insn name.
6909
69102013-05-02  Vladimir Makarov  <vmakarov@redhat.com>
6911
6912	Backport from mainline
6913	2013-04-29  Vladimir Makarov  <vmakarov@redhat.com>
6914
6915	PR target/57097
6916	* lra-constraints.c (process_alt_operands): Discourage a bit more
6917	using memory for pseudos.  Print cost dump for alternatives.
6918	Modify cost values for conflicts with early clobbers.
6919	(curr_insn_transform): Spill pseudos reassigned to NO_REGS.
6920
69212013-05-02  Vladimir Makarov  <vmakarov@redhat.com>
6922
6923	Backport from mainline
6924	2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>
6925
6926	PR rtl-optimizations/57046
6927	* lra-constraints (split_reg): Set up lra_risky_transformations_p
6928	for multi-reg splits.
6929
69302013-05-02  Vladimir Makarov  <vmakarov@redhat.com>
6931
6932	Backport from mainline
6933	2013-04-22  Vladimir Makarov  <vmakarov@redhat.com>
6934
6935	PR target/57018
6936	* lra-eliminations.c (mark_not_eliminable): Prevent elimination of
6937	a set sp if no stack realignment.
6938
69392013-05-02  Vladimir Makarov  <vmakarov@redhat.com>
6940
6941	Backport from mainline
6942	2013-04-18  Vladimir Makarov  <vmakarov@redhat.com>
6943
6944	PR rtl-optimization/56999
6945	* lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
6946	related code.
6947	(lra_coalesce): Remove split_origin_bitmap and related code.
6948	* lra.c (lra): Coalesce after undoing inheritance. Recreate live
6949	ranges if necessary.
6950
69512013-05-02  Vladimir Makarov  <vmakarov@redhat.com>
6952
6953	Backport from mainline
6954	2013-04-19  Vladimir Makarov  <vmakarov@redhat.com>
6955
6956	PR rtl-optimization/56847
6957	* lra-constraints.c (process_alt_operands): Discourage alternative
6958	with non-matche doffsettable memory constraint fro memory with
6959	known offset.
6960
69612013-05-02  Ian Bolton  <ian.bolton@arm.com>
6962
6963	Backport from mainline
6964	2013-03-28  Ian Bolton  <ian.bolton@arm.com>
6965
6966	* config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
6967	record only when desired or required.
6968
69692013-04-30  Jakub Jelinek  <jakub@redhat.com>
6970
6971	PR tree-optimization/57104
6972	* tsan.c (instrument_expr): Don't instrument accesses to
6973	DECL_HARD_REGISTER VAR_DECLs.
6974
69752013-04-30  Uros Bizjak  <ubizjak@gmail.com>
6976
6977	Backport from mainline
6978	2013-04-29  Uros Bizjak  <ubizjak@gmail.com>
6979
6980	PR target/44578
6981	* config/i386/i386.md (*zero_extendsidi2_rex64): Add "!" to m->?*y
6982	alternative.
6983	(*zero_extendsidi2): Ditto.
6984
6985	Backport from mainline
6986	2013-04-29  Uros Bizjak  <ubizjak@gmail.com>
6987
6988	PR target/57098
6989	* config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
6990
69912013-04-29  Richard Biener  <rguenther@suse.de>
6992
6993	PR middle-end/57103
6994	* tree-cfg.c (move_stmt_op): Fix condition under which to update
6995	TREE_BLOCK.
6996	(move_stmt_r): Remove redundant checking.
6997
69982013-04-29  Christian Bruel  <christian.bruel@st.com>
6999
7000	PR target/57108
7001	* sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
7002
70032013-04-29  Jakub Jelinek  <jakub@redhat.com>
7004
7005	PR tree-optimization/57083
7006	* tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
7007	non-singleton shift count range, zero extend low_bound for uns case.
7008
70092013-04-28  Eric Botcazou  <ebotcazou@gcc.gnu.org>
7010
7011	* stor-layout.c (finalize_size_functions): Allocate a structure and
7012	reset cfun before dumping the functions.
7013
70142013-04-27  Jakub Jelinek  <jakub@redhat.com>
7015
7016	PR target/56866
7017	* config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
7018	use xop_pmacsdqh if uns_p.
7019	* config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
7020	the immediate rotate count.
7021
70222013-04-25  Jakub Jelinek  <jakub@redhat.com>
7023
7024	PR rtl-optimization/57003
7025	* regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
7026	call note_stores with kill_clobbered_value callback again after
7027	killing regs_invalidated_by_call.
7028
70292013-04-25  Ian Bolton  <ian.bolton@arm.com>
7030
7031	Backported from mainline.
7032	2013-03-22  Ian Bolton  <ian.bolton@arm.com>
7033
7034	* config/aarch64/aarch64.c (aarch64_print_operand): New
7035	format specifier for printing a constant in hex.
7036	* config/aarch64/aarch64.md (insv_imm<mode>): Use the X
7037	format specifier for printing second operand.
7038
70392013-04-24  James Greenhalgh  <james.greenhalgh@arm.com>
7040
7041	Backported from mainline.
7042	2013-04-24  James Greenhalgh  <james.greenhalgh@arm.com>
7043
7044	* config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
7045	(vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
7046	(vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
7047
70482013-04-24  Greta Yorsh  <Greta.Yorsh@arm.com>
7049
7050	Backported from mainline.
7051	PR target/56797
7052	* config/arm/arm.c (load_multiple_sequence): Require SP
7053	as base register for loads if SP is in the register list.
7054
70552013-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7056	    Steven Bosscher <steven@gcc.gnu.org>
7057
7058	Backported from mainline.
7059	PR rtl-optimization/56605
7060	* loop-iv.c (implies_p): Handle equal RTXs and subregs.
7061
70622013-04-22  Marek Polacek  <polacek@redhat.com>
7063
7064	Backported from mainline.
7065	2013-04-22  Marek Polacek  <polacek@redhat.com>
7066
7067	PR sanitizer/56990
7068	* tsan.c (instrument_expr): Don't instrument expression
7069	in case its size is zero.
7070
70712013-04-22  Yufeng Zhang  <yufeng.zhang@arm.com>
7072
7073	Backported from mainline.
7074	2013-04-10  Yufeng Zhang  <yufeng.zhang@arm.com>
7075	* config/aarch64/aarch64.c (aarch64_print_extension): New function.
7076	(aarch64_start_file): Use the new function.
7077
70782013-04-18  Jakub Jelinek  <jakub@redhat.com>
7079
7080	PR tree-optimization/56984
7081	* tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
7082	and (x >> M) >= N don't register any assertion if N << M is the
7083	minimum value.
7084
70852013-04-17  David Edelsohn  <dje.gcc@gmail.com>
7086
7087	PR target/56948
7088	* config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
7089
70902013-04-15  Jakub Jelinek  <jakub@redhat.com>
7091
7092	PR tree-optimization/56962
7093	* gimple-ssa-strength-reduction.c (record_increment): Only set
7094	initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
7095	either rhs1 or rhs2 is equal to c->base_expr.
7096
70972013-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7098
7099	* emit-rtl.c (reset_all_used_flags): New function.
7100	(verify_rtl_sharing): Call reset_all_used_flags before and after
7101	performing the checks.
7102
71032013-04-15  Eric Botcazou  <ebotcazou@adacore.com>
7104
7105	PR target/56890
7106	* config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
7107	(S_MODES): Set H_MODE bit.
7108	(SF_MODES): Set only S_MODE and SF_MODE bits.
7109	(DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
7110	(sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
7111	<MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
7112	<MODE_FLOAT>: Likewise.
7113
71142013-04-12  Vladimir Makarov  <vmakarov@redhat.com>
7115
7116	PR target/56903
7117	* config/i386/i386.c (ix86_hard_regno_mode_ok): Add
7118	lra_in_progress for return.
7119
71202013-04-12  Jakub Jelinek  <jakub@redhat.com>
7121
7122	PR tree-optimization/56918
7123	PR tree-optimization/56920
7124	* fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
7125	instead of op1 - op2.  Pass 2 * TYPE_PRECISION (type) as second
7126	argument to rshift method.
7127
71282013-04-12  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7129
7130	* ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as
7131	well.
7132
71332013-04-11  Marek Polacek  <polacek@redhat.com>
7134
7135	PR tree-optimization/48184
7136	* params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum
7137	value to 1.
7138
71392013-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
7140
7141	Backported from mainline.
7142	2013-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
7143
7144	* config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
7145	floating-point vector comparisons against 0.
7146
71472013-04-11  Jakub Jelinek  <jakub@redhat.com>
7148
7149	PR tree-optimization/56899
7150	* fold-const.c (extract_muldiv_1): Apply distributive law
7151	only if TYPE_OVERFLOW_WRAPS (ctype).
7152
71532013-04-10  David S. Miller  <davem@davemloft.net>
7154
7155	* config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
7156	or -mcpu=hypersparc.
7157
71582013-04-10  Jakub Jelinek  <jakub@redhat.com>
7159
7160	Backported from mainline
7161	2013-04-09  Jakub Jelinek  <jakub@redhat.com>
7162
7163	PR middle-end/56883
7164	* omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
7165	expand_omp_for_static_chunk): Use simple_p = true in
7166	force_gimple_operand_gsi calls when assigning to addressable decls.
7167
71682013-04-09  Marek Polacek  <polacek@redhat.com>
7169
7170	PR tree-optimization/48762
7171	* params.def (PARAM_MAX_CSE_INSNS): Increase the minimum
7172	value to 1.
7173
71742013-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7175
7176	* config/s390/s390.c (s390_expand_insv): Only accept insertions
7177	within mode size.
7178
71792013-04-08  Marek Polacek  <polacek@redhat.com>
7180
7181	PR rtl-optimization/48182
7182	* params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
7183	value to 1.
7184
71852013-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7186
7187	PR target/55487
7188	* config/pa/pa.c (legitimize_pic_address): Before incrementing label
7189	nuses, make sure we have a label.
7190
71912013-04-04  Ian Lance Taylor  <iant@google.com>
7192
7193	Backport from mainline:
7194	* doc/standards.texi (Standards): The Go frontend supports the Go
7195	1 language standard.
7196
71972013-04-04  Marek Polacek  <polacek@redhat.com>
7198
7199	Backport from mainline:
7200	2013-04-04  Marek Polacek  <polacek@redhat.com>
7201
7202	PR tree-optimization/48186
7203	* predict.c (maybe_hot_frequency_p): Return false if
7204	HOT_BB_FREQUENCY_FRACTION is 0.
7205	(cgraph_maybe_hot_edge_p): Likewise.
7206
72072013-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7208
7209	Backport from mainline:
7210	2013-03-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7211
7212	PR target/56720
7213	* config/arm/iterators.md (v_cmp_result): New mode attribute.
7214	* config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
7215
72162013-04-04  Richard Biener  <rguenther@suse.de>
7217
7218	PR tree-optimization/56837
7219	* tree-loop-distribution.c (classify_partition): For non-zero
7220	values require that the value has the same precision as its
7221	mode to be useful as memset value.
7222
72232013-04-03  Roland McGrath  <mcgrathr@google.com>
7224
7225	Backport from mainline:
7226	2013-03-26  Roland McGrath  <mcgrathr@google.com>
7227
7228	* config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
7229	than fprintf with a non-constant, non-format string.
7230
72312013-04-03  Marek Polacek  <polacek@redhat.com>
7232
7233	Backport from mainline:
7234	2013-04-03  Marek Polacek  <polacek@redhat.com>
7235
7236	PR sanitizer/55702
7237	* tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN
7238	functions.
7239
72402013-04-03  Richard Biener  <rguenther@suse.de>
7241
7242	PR tree-optimization/56817
7243	* tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
7244	Split out ...
7245	(tree_unroll_loops_completely_1): ... new function to manually
7246	walk the loop tree, properly defering outer loops of unrolled
7247	loops to later iterations.
7248
72492013-04-02  Jakub Jelinek  <jakub@redhat.com>
7250
7251	PR rtl-optimization/56745
7252	* ifcvt.c (cond_exec_find_if_block): Don't try to optimize
7253	if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
7254
72552013-04-02  Wei Mi  <wmi@google.com>
7256
7257	* config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
7258	ashl<mode>3_mask, *<shift_insn><mode>3_mask and
7259	*<rotate_insn><mode>3_mask in i386.md.
7260
72612013-04-01  Wei Mi  <wmi@google.com>
7262
7263	* config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
7264	Truncate operand 2 using %b asm operand modifier.
7265	(*<shift_insn><mode>3_mask): Ditto.
7266	(*<rotate_insn><mode>3_mask): Ditto.
7267
72682013-04-01  Uros Bizjak  <ubizjak@gmail.com>
7269
7270	* config/i386/i386.md (*movsf_internal): Change type of
7271	alternatives 3,4 to imov.
7272
72732013-03-29  Paolo Carlini  <paolo.carlini@oracle.com>
7274
7275	PR lto/56777
7276	* doc/invoke.texi ([-fwhole-program]): Fix typo.
7277
72782013-03-29  Kirill Yukhin  <kirill.yukhin@intel.com>
7279
7280	* config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
7281	Fix declaration name.
7282
72832013-03-28  Gerald Pfeifer  <gerald@pfeifer.com>
7284
7285	* doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
7286	* doc/extend.texi (Named Address Spaces): Ditto.
7287	(Variable Attributes): Ditto.
7288
72892013-03-28  Eric Botcazou  <ebotcazou@adacore.com>
7290
7291	* toplev.c (process_options): Do not disable -fomit-frame-pointer on a
7292	general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
7293	is not enabled.
7294
72952013-03-27  Walter Lee  <walt@tilera.com>
7296
7297	Backport from mainline:
7298	2013-03-27  Walter Lee  <walt@tilera.com>
7299
7300	* config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
7301	double-decrement of next_scratch_regno.
7302
73032013-03-27  Walter Lee  <walt@tilera.com>
7304
7305	Backport from mainline:
7306	2013-03-27  Walter Lee  <walt@tilera.com>
7307
7308	* config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
7309	input operands.
7310	(insn_v1mulus): Ditto.
7311	(insn_v2muls): Ditto.
7312
73132013-03-27  Walter Lee  <walt@tilera.com>
7314
7315	Backport from mainline:
7316	2013-03-27  Walter Lee  <walt@tilera.com>
7317
7318	* config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete
7319	extra tab.
7320	(ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
7321
73222013-03-27  Walter Lee  <walt@tilera.com>
7323
7324	Backport from mainline:
7325	2013-03-27  Walter Lee  <walt@tilera.com>
7326
7327	* config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
7328	(*sibcall_value): Ditto.
7329
73302013-03-27  Walter Lee  <walt@tilera.com>
7331
7332	Backport from mainline:
7333	2013-03-27  Walter Lee  <walt@tilera.com>
7334
7335	* config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
7336	(insn_mnz_v8qi): ... this ...
7337	(insn_mnz_v4hi): ... and this.  Replace (const_int 0) with the
7338	vector equivalent.
7339	(insn_v<n>mnz): Replaced by ...
7340	(insn_v1mnz): ... this ...
7341	(insn_v2mnz): ... and this.  Replace (const_int 0) with the vector
7342	equivalent.
7343	(insn_mz_<mode>): Replaced by ...
7344	(insn_mz_v8qi): ... this ...
7345	(insn_mz_v4hi): ... and this.  Replace (const_int 0) with the
7346	vector equivalent.
7347	(insn_v<n>mz): Replaced by ...
7348	(insn_v1mz): ... this ...
7349	(insn_v2mz): ... and this.  Replace (const_int 0) with the vector
7350	equivalent.
7351
73522013-03-26  Eric Botcazou  <ebotcazou@adacore.com>
7353
7354	* doc/invoke.texi (SPARC options): Remove -mlittle-endian.
7355
73562013-03-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
7357
7358	* config/rtems.opt: Add -pthread option.
7359
73602013-03-26  Sofiane Naci  <sofiane.naci@arm.com>
7361
7362	* config/aarch64/aarch64.c (aarch64_classify_address): Support
7363	PC-relative load in SI modes and above only.
7364
73652013-03-26  Walter Lee  <walt@tilera.com>
7366
7367	Backport from mainline:
7368	2013-03-26  Walter Lee  <walt@tilera.com>
7369
7370	* config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
7371	* config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
7372
73732013-03-26  Walter Lee  <walt@tilera.com>
7374
7375	Backport from mainline:
7376	2013-03-25  Walter Lee  <walt@tilera.com>
7377
7378	* config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
7379	TILEGX_INSN_SHUFFLEBYTES1.
7380	* config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
7381	shufflebytes1.
7382	(tilegx_builtins): Ditto.
7383	* config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
7384
73852013-03-26  Walter Lee  <walt@tilera.com>
7386
7387	Backport from mainline:
7388	2013-03-25  Walter Lee  <walt@tilera.com>
7389
7390	* config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
7391	tests for constraint J, K, N, P.
7392
73932013-03-26  Walter Lee  <walt@tilera.com>
7394
7395	Backport from mainline:
7396	2013-03-25  Walter Lee  <walt@tilera.com>
7397
7398	* config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
7399	Use indirect/pcrel encoding.
7400	* config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
7401	Ditto.
7402
74032013-03-25  Richard Biener  <rguenther@suse.de>
7404
7405	PR middle-end/56694
7406	* tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
7407	must-not-throw stmt location.
7408
74092012-03-22  Jakub Jelinek  <jakub@redhat.com>
7410
7411	* BASE-VER: Set to 4.8.1.
7412	* DEV-PHASE: Set to prerelease.
7413
74142013-03-22  Release Manager
7415
7416	* GCC 4.8.0 released.
7417
74182013-03-21  Walter Lee  <walt@tilera.com>
7419
7420	* config/tilegx/sync.md (atomic_test_and_set): New pattern.
7421
74222013-03-21  Mark Wielaard  <mjw@redhat.com>
7423
7424	* dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
7425
74262013-03-20  Richard Biener  <rguenther@suse.de>
7427
7428	PR tree-optimization/56661
7429	* tree-ssa-sccvn.c (visit_use): Only value-number calls if
7430	the result does not have to be distinct.
7431
74322013-03-20  Jakub Jelinek  <jakub@redhat.com>
7433
7434	PR tree-optimization/56635
7435	* tree-ssa-phiopt.c (cond_if_else_store_replacement_1): Give up
7436	if lhs of then_assign and else_assign don't have compatible types.
7437
74382013-03-17  Jakub Jelinek  <jakub@redhat.com>
7439
7440	PR target/56640
7441	* config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
7442	class names.  Remove trailing comma after "ALL_REGS".
7443
74442013-03-16  Jakub Jelinek  <jakub@redhat.com>
7445
7446	* DEV-PHASE: Set to prerelease.
7447
74482013-03-14  Andi Kleen  <ak@linux.intel.com>
7449
7450	PR target/56619
7451	* doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
7452	__ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
7453	Document _x* TSX intrinsics.
7454
74552013-03-14  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
7456	    David Holsgrove <david.holsgrove@xilinx.com>
7457
7458	* configure.ac: Add MicroBlaze TLS support detection.
7459	* configure: Regenerate.
7460	* config/microblaze/microblaze-protos.h
7461	(microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
7462	symbol_mentioned_p, label_mentioned_p): Add prototypes.
7463	* config/microblaze/microblaze.c (microblaze_address_type): Add
7464	ADDRESS_TLS and tls_reloc address types.
7465	(microblaze_address_info): Add tls_reloc.
7466	(TARGET_HAVE_TLS): Define.
7467	(get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
7468	microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
7469	symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
7470	load_tls_operand, microblaze_call_tls_get_addr,
7471	microblaze_legitimize_tls_address): New functions.
7472	(microblaze_classify_unspec): Handle UNSPEC_TLS.
7473	(get_base_reg): Use microblaze_tls_symbol_p.
7474	(microblaze_classify_address): Handle TLS.
7475	(microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
7476	label_mentioned_p and microblaze_tls_referenced_p.
7477	(microblaze_legitimize_address): Handle TLS.
7478	(microblaze_address_insns): Handle ADDRESS_TLS.
7479	(pic_address_needs_scratch): Handle TLS.
7480	(print_operand_address): Handle TLS.
7481	(microblaze_expand_prologue): Check TLS_NEEDS_GOT.
7482	(microblaze_expand_move): Handle TLS.
7483	(microblaze_legitimate_constant_p): Check
7484	microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
7485	(TARGET_CANNOT_FORCE_CONST_MEM): Define.
7486	* config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
7487	(PIC_OFFSET_TABLE_REGNUM): Set.
7488	* config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
7489	* config/microblaze/microblaze.md (UNSPEC_TLS): Define.
7490	(addsi3, movsi_internal2, movdf_internal): Update constraints
7491	* config/microblaze/predicates.md (arith_plus_operand): Define
7492	(move_operand): Redefine as move_src_operand, check
7493	microblaze_tls_referenced_p.
7494
74952013-03-14  Ian Bolton  <ian.bolton@arm.com>
7496
7497	* config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
7498	(*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
7499
75002013-03-14  Ian Bolton  <ian.bolton@arm.com>
7501
7502	* config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
7503	CC mode for AND.
7504
75052013-03-14  Jakub Jelinek  <jakub@redhat.com>
7506
7507	PR tree-optimization/53265
7508	* common.opt (Waggressive-loop-optimizations): New option.
7509	* tree-ssa-loop-niter.c: Include tree-pass.h.
7510	(do_warn_aggressive_loop_optimizations): New function.
7511	(record_estimate): Call it.  Don't add !is_exit bounds to loop->bounds
7512	if number_of_latch_executions returned constant.
7513	(estimate_numbers_of_iterations_loop): Call number_of_latch_executions
7514	early.  If number_of_latch_executions returned constant, set
7515	nb_iterations_upper_bound back to it.
7516	* cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
7517	field.
7518	* Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
7519	* doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
7520
7521	* config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
7522	(MULTILIB_OSDIRNAMES): Set.
7523	* genmultilib: If defaultosdirname doesn't start with :: , set
7524	defaultosdirname2 instead, clear it and emit two . multilib_raw
7525	entries instead of just one.
7526
75272013-03-14  Kaz Kojima  <kkojima@gcc.gnu.org>
7528
7529	* config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
7530	(SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
7531	* config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
7532	(SUBTARGET_OVERRIDE_OPTIONS): New.
7533
75342013-03-13  Oleg Endo  <olegendo@gcc.gnu.org>
7535
7536	PR target/49880
7537	* config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
7538	(musermode): Convert to Var(TARGET_USERMODE).
7539	* config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
7540	MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
7541	* config/sh/sh.c (sh_option_override): Use
7542	TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
7543	* config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
7544	condition.
7545	(udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
7546	TARGET_SH4.
7547	(udivsi3_i4_single, divsi3_i4_single): Use
7548	TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
7549
75502013-03-13  Dave Korn  <dave.korn.cygwin@....>
7551
7552	* config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
7553	default setting.
7554
75552013-03-13  Richard Biener  <rguenther@suse.de>
7556
7557	PR tree-optimization/56608
7558	* tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
7559	calls when vectorizing basic-blocks.
7560
75612013-03-13  Jakub Jelinek  <jakub@redhat.com>
7562
7563	PR plugins/45078
7564	* config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
7565	tm_file.
7566
75672013-03-12  Jakub Jelinek  <jakub@redhat.com>
7568
7569	* doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
7570
75712013-03-11  Jan Hubicka  <jh@suse.cz>
7572
7573	PR lto/56557
7574	* lto-streamer-out.c (output_symbol_p): Skip references from
7575	constructors of external variables.
7576
75772013-03-11  Jan Hubicka  <jh@suse.cz>
7578
7579	PR middle-end/56571
7580	* valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
7581	from pseudos.
7582	* emit-rtl.c (verify_rtx_sharing): Likewise.
7583	(copy_insn_1): Likewise.
7584	* rtl.c (copy_rtx): Likewise.
7585
75862013-03-11  Georg-Johann Lay  <avr@gjlay.de>
7587
7588	PR target/56591
7589	* config/avr/avr.c (avr_print_operand): Add space after '%c' in
7590	output_operand_lossage message.
7591
75922013-03-11  Richard Earnshaw  <rearnsha@arm.com>
7593
7594	PR target/56470
7595	* arm.c (shift_op): Validate RTL pattern on the fly.
7596	(arm_print_operand, case 'S'): Don't use shift_operator to validate
7597	the RTL.
7598
75992013-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7600
7601	PR target/56347
7602	* config/pa/pa.md (call_value): Check for calls to powf and direct to
7603	new call patterns that clobber %fr12.
7604	(call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
7605	split and postreload patterns.
7606	* config/pa/pa.c (pa_conditional_register_usage): Revert marking
7607	registers %fr12 and %fr12R as call used.
7608
76092013-03-09  Steven Bosscher  <steven@gcc.gnu.org>
7610
7611	* dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
7612	(canon_address, record_store, replace_read, check_mem_read_rtx,
7613	scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
7614	dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
7615	rest_of_handle_dse): Likewise.
7616
76172013-03-09  Richard Sandiford  <rdsandiford@googlemail.com>
7618
7619	PR middle-end/56524
7620	* tree.h (tree_optimization_option): Rename target_optabs to optabs.
7621	Add base_optabs.
7622	(TREE_OPTIMIZATION_OPTABS): Update after previous field change.
7623	(TREE_OPTIMIZATION_BASE_OPTABS): New macro.
7624	(save_optabs_if_changed): Replace with...
7625	(init_tree_optimization_optabs): ...this.
7626	* optabs.c (save_optabs_if_changed): Rename to...
7627	(init_tree_optimization_optabs): ...this.  Take the optimization node
7628	as argument.  Do nothing if the base optabs are already correct.
7629	Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
7630	to recompute optabs.
7631	* function.h (function): Remove optabs field.
7632	* function.c (invoke_set_current_function_hook): Call
7633	init_tree_optimization_optabs.  Use the result to initialize
7634	this_fn_optabs.
7635
76362013-02-27  Aldy Hernandez  <aldyh@redhat.com>
7637
7638	* trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
7639	if GTMA_HAS_NO_INSTRUMENTATION.
7640	(generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
7641	(ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
7642	* gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
7643	* gimple-pretty-print.c (dump_gimple_transaction): Handle
7644	GTMA_HAS_NO_INSTRUMENTATION.
7645
76462013-03-08  Jakub Jelinek  <jakub@redhat.com>
7647
7648	* config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
7649	libasan_preinit.o.
7650
76512013-03-08  Marek Polacek  <polacek@redhat.com>
7652	    Jakub Jelinek  <jakub@redhat.com>
7653
7654	PR tree-optimization/56478
7655	* predict.c (is_comparison_with_loop_invariant_p): Change the
7656	type of loop_step to tree.
7657	(predict_loops): Adjust.
7658	(predict_iv_comparison): Perform the computations on double_ints.
7659
76602013-03-08  Richard Biener  <rguenther@suse.de>
7661
7662	PR tree-optimization/56570
7663	* tree-cfg.c (verify_expr_location_1): Verify locations for
7664	DECL_DEBUG_EXPR.
7665	* tree-sra.c (create_access_replacement): Strip locations
7666	from DECL_DEBUG_EXPRs.
7667
76682013-03-08  Richard Biener  <rguenther@suse.de>
7669
7670	* tree-inline.c (expand_call_inline): Do not associate
7671	a BLOCK with the location in BLOCK_SOURCE_LOCATION.
7672	* tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
7673
76742013-03-08  Richard Biener  <rguenther@suse.de>
7675
7676	* tree-ssa-ter.c (is_replaceable_p): Do not TER across location
7677	or block changes with -Og.  Fix for location / block encoding
7678	changes and PHI arguments with locations.
7679
76802013-03-07  Steven Bosscher  <steven@gcc.gnu.org>
7681
7682	* bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
7683	for all counters.
7684	(struct output_info): Likewise.
7685	(register_overhead): Remove bad gcc_assert.
7686	(bitmap_find_bit): If there is only a single bitmap element, do not
7687	count a miss as a search.
7688	(print_statistics): Update for counter type changes.
7689	(dump_bitmap_statistics): Likewise.  Print headers such that they
7690	are properly lined up with the printed counters.
7691
76922013-03-07  Jakub Jelinek  <jakub@redhat.com>
7693
7694	PR tree-optimization/56559
7695	* tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
7696	check that it has only a single use.
7697
76982013-03-07  Richard Biener  <rguenther@suse.de>
7699
7700	* doc/invoke.texi (fwhole-program): Discourage use in combination
7701	with -flto.
7702
77032013-03-06  Jakub Jelinek  <jakub@redhat.com>
7704
7705	* config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
7706
7707	PR tree-optimization/56539
7708	* tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
7709	instead of GSI_CONTINUE_LINKING as last argument to
7710	force_gimple_operand_gsi.  Adjust function comment.
7711
7712	* config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
7713	aarch64-cores.def.
7714
7715	PR middle-end/56548
7716	* expr.c (expand_cond_expr_using_cmove): When expanding cmove in
7717	promoted mode, convert the result back to the original mode.
7718
77192013-03-06  Richard Biener  <rguenther@suse.de>
7720
7721	PR middle-end/56294
7722	* tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
7723	(insert_updated_phi_nodes_compare_uids): New function.
7724	(update_ssa): Sort symbols_to_rename after UID before
7725	traversing it to insert PHI nodes.
7726
77272013-03-06  Richard Biener  <rguenther@suse.de>
7728
7729	PR middle-end/50494
7730	* tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
7731	Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
7732
7733	Revert
7734	2013-02-13  Richard Biener  <rguenther@suse.de>
7735
7736	PR lto/50494
7737	* varasm.c (output_constant_def_1): Get the decl representing
7738	the constant as argument.
7739	(output_constant_def): Wrap output_constant_def_1.
7740	(make_decl_rtl): Use output_constant_def_1 with the decl
7741	representing the constant.
7742	(build_constant_desc): Optionally re-use a decl already
7743	representing the constant.
7744	(tree_output_constant_def): Adjust.
7745
77462013-03-06  Joey Ye  <joey.ye@arm.com>
7747
7748	PR lto/50293
7749	* gcc.c (convert_white_space): New function.
7750	(main): Handles white space in function name.
7751
77522013-03-06  Oleg Endo  <olegendo@gcc.gnu.org>
7753
7754	PR target/56529
7755	* config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
7756	instead of TARGET_SH2 for call-table case.  Do not set sh_div_strategy
7757	to SH_DIV_CALL_TABLE for TARGET_SH2.
7758	* config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
7759	list.
7760	* doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
7761	call-table options.
7762
77632013-03-05  Sterling Augustine  <saugustine@google.com>
7764	    Cary Coutant  <ccoutant@google.com>
7765
7766	PR debug/55364
7767	* dwarf2out.c (resolve_addr): Don't call
7768	remove_loc_list_addr_table_entries a second time for the same
7769	expression.
7770
77712013-03-05  Jakub Jelinek  <jakub@redhat.com>
7772
7773	PR debug/56510
7774	* cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
7775	(avoid_complex_debug_insns): New function.
7776	(expand_debug_locations): Call it.
7777
7778	PR rtl-optimization/56484
7779	* ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
7780	lifetimes of hard registers on small register class machines.
7781
77822013-03-05  David Holsgrove  <david.holsgrove@xilinx.com>
7783
7784	* config/microblaze/microblaze-protos.h: Rename
7785	microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
7786	* config/microblaze/microblaze.c (microblaze_attribute_table): Add
7787	fast_interrupt.
7788	(microblaze_fast_interrupt_function_p): New function.
7789	(microblaze_is_interrupt_handler): Rename to
7790	microblaze_is_interrupt_variant and add fast_interrupt check.
7791	(microblaze_must_save_register): Use microblaze_is_interrupt_variant.
7792	(save_restore_insns): Likewise.
7793	(compute_frame_size): Likewise.
7794	(microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
7795	(microblaze_globalize_label): Likewise.
7796	* config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
7797	* config/microblaze/microblaze.md: Use wrapper
7798	microblaze_is_interrupt_variant.
7799
78002013-03-05  Kai Tietz  <ktietz@redhat.com>
7801
7802	* sdbout.c (sdbout_one_type): Switch to current function's section
7803	supporting cold/hot.
7804
78052013-03-05  David Holsgrove  <david.holsgrove@xilinx.com>
7806
7807	* doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
7808	-mxl-reorder.
7809
78102013-03-05  Jakub Jelinek  <jakub@redhat.com>
7811
7812	PR middle-end/56461
7813	* ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
7814	if VALGRIND_GET_VBITS is defined, temporarily make object
7815	memory all defined, and restore previous valgrind addressability
7816	and definability afterwards.  Free this_object at the end.
7817
7818	PR middle-end/56461
7819	* lra.c (lra): Call lra_clear_live_ranges if live_p,
7820	right before calling lra_create_live_ranges, also call it
7821	when clearing live_p.  Only call lra_clear_live_ranges
7822	at the end if live_p.
7823
7824	PR middle-end/56461
7825	* sched-deps.c (delete_dep_node): Free DEP_REPLACE.
7826
78272013-03-05  Richard Biener  <rguenther@suse.de>
7828
7829	PR tree-optimization/56521
7830	* tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
7831	value-id.
7832
78332013-03-05  Steven Bosscher  <steven@gcc.gnu.org>
7834
7835	PR c++/55135
7836	* except.h (remove_unreachable_eh_regions): New prototype.
7837	* except.c (remove_eh_handler_splicer): New function, split out
7838	of remove_eh_handler.
7839	(remove_eh_handler): Use remove_eh_handler_splicer.  Add comment
7840	warning about running it on many EH regions one at a time.
7841	(remove_unreachable_eh_regions_worker): New function, walk the
7842	EH tree in depth-first order and remove non-marked regions.
7843	(remove_unreachable_eh_regions): New function.
7844	* tree-eh.c (mark_reachable_handlers): New function, split out
7845	from remove_unreachable_handlers.
7846	(remove_unreachable_handlers): Use mark_reachable_handlers and
7847	remove_unreachable_eh_regions.
7848	(remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
7849	and remove_unreachable_eh_regions.
7850
78512013-03-05  Richard Biener  <rguenther@suse.de>
7852
7853	PR middle-end/56525
7854	* loop-init.c (fix_loop_structure): Remove loops in two stages,
7855	not freeing them until the end.
7856
78572013-03-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7858
7859	* config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
7860
78612013-03-05  Richard Biener  <rguenther@suse.de>
7862
7863	PR tree-optimization/56270
7864	* tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
7865	of loads after scheduling an SLP instance.
7866
78672013-03-05  Jakub Jelinek  <jakub@redhat.com>
7868
7869	* Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
7870	tic6x.exp.
7871	(check_gcc_parallelize): Run guality.exp as a separate job from
7872	vect.exp with unsorted.exp and $(dg_target_exps) separately from
7873	struct-layout-1.exp with stackalign.exp.
7874
7875	* alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
7876
7877	PR middle-end/56461
7878	* tree-vect-slp.c (vect_supported_load_permutation_p): Free
7879	load_index sbitmap even if some bit in it isn't set.
7880
7881	PR middle-end/56461
7882	* tree-ssa-loop-niter.c (bb_queue): Remove typedef.
7883	(discover_iteration_bound_by_body_walk): Change queues to
7884	vec<vec<basic_block> > and queue to vec<basic_block>.  Fix up
7885	spelling in comment.  Call safe_push on queues[bound_index] directly.
7886	Release queues[queue_index] in every iteration unconditionally.
7887	Release bounds vector.
7888
7889	PR middle-end/56461
7890	* tree-vect-stmts.c (free_stmt_vec_info_vec): Call
7891	free_stmt_vec_info on any left-over stmt_vec_info in the vector.
7892	* tree-vect-loop.c (vect_create_epilog_for_reduction): Release
7893	inner_phis vector.
7894
78952013-03-05  Richard Biener  <rguenther@suse.de>
7896
7897	PR lto/56515
7898	* tree-inline.c (remap_blocks_to_null): New function.
7899	(expand_call_inline): When expanding a call stmt without
7900	an associated block inline remap all callee blocks to NULL.
7901
79022013-03-05  Jakub Jelinek  <jakub@redhat.com>
7903
7904	PR rtl-optimization/56494
7905	* simplify-rtx.c (simplify_truncation): If C is narrower than A,
7906	optimize (truncate:A (subreg:B (truncate:C X) 0)) into
7907	(subreg:A (truncate:C X) 0) instead of (truncate:A X).
7908
7909	PR middle-end/56461
7910	* sel-sched-ir.c (free_sched_pools): Release
7911	succs_info_pool.stack[succs_info_pool.max_top] vectors too
7912	if succs_info_pool.max_top isn't -1.
7913
7914	PR bootstrap/56509
7915	* opts.c (opts_obstack, opts_concat): Moved to...
7916	* opts-common.c (opts_obstack, opts_concat): ... here.
7917
79182013-03-04  Jakub Jelinek  <jakub@redhat.com>
7919
7920	PR middle-end/56461
7921	* diagnostic.c (diagnostic_append_note): Save and restore old prefix.
7922
79232013-03-04  Martin Jambor  <mjambor@suse.cz>
7924
7925	* tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
7926	all appropriate places.
7927
79282013-01-04  Eric Botcazou  <ebotcazou@adacore.com>
7929
7930	PR tree-optimization/56424
7931	* ipa-split.c (split_function): Do not set the RSO flag if result is
7932	not by reference and its type is a register type.
7933
79342013-03-04  David Holsgrove  <david.holsgrove@xilinx.com>
7935
7936	* config/microblaze/microblaze.c (microblaze_valid_pic_const): New.
7937	(microblaze_legitimate_pic_operand): Likewise.
7938	* config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): Call
7939	new function microblaze_legitimate_pic_operand.
7940	* config/microblaze/microblaze-protos.h
7941	(microblaze_legitimate_pic_operand): Declare.
7942
79432013-03-04  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
7944
7945	* config/microblaze/predicates.md (call_insn_simple_operand):
7946	New predicate for supported rtx code types.
7947	* config/microblaze/microblaze.md (call_internal1): Use
7948	call_insn_simple_operand predicate.
7949
79502013-03-04  Jakub Jelinek  <jakub@redhat.com>
7951
7952	PR middle-end/56461
7953	* tree-loop-distribution.c (ldist_gen): Call partition_free after each
7954	partitions.ordered_remove.
7955
7956	PR middle-end/56461
7957	* tree-vect-stmts.c (vectorizable_conversion): Don't call
7958	vec_oprnds0.create (1) for modifier == NONE.
7959
7960	PR middle-end/56461
7961	* tree-vect-stmts.c (vectorizable_shift): Don't call create methods
7962	on vec_oprnds0 or vec_oprnds1 before loop, only call it on
7963	vec_oprnds1 right before pushing anything to it for
7964	scalar_shift_arg.
7965
7966	PR middle-end/56461
7967	* tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
7968	set nbbs to 0 instead of having separate code path.
7969	(vect_analyze_loop_form): Call destroy_loop_vec_info with true
7970	instead of false as last argument if returning NULL.
7971
79722013-03-03  Sandra Loosemore  <sandra@codesourcery.com>
7973
7974	* target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
7975	the attribute is now called "target" instead of "option".
7976	(TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
7977	* doc/tm.texi.in (Target Attributes):  Likewise document the correct
7978	attribute/pragma name for TARGET_OPTION_VALID_P and
7979	TARGET_OPTION_PRAGMA_PARSE.  Also copy-edit and correct markup.
7980	* doc/tm.texi: Regenerated.
7981
79822013-03-02  David Holsgrove  <david.holsgrove@xilinx.com>
7983
7984	* config/microblaze/microblaze.c:
7985	Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
7986	* config/microblaze/microblaze.h: Add -mxl-reorder to
7987	DRIVER_SELF_SPECS.
7988	* config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
7989	instructions emitted if TARGET_REORDER.
7990	* config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
7991	or 0 for -m/-mno case, but initialises as 2 to detect default use case
7992	separately.
7993
79942013-03-01  Xinliang David Li  <davidxl@google.com>
7995
7996	* tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
7997	walk length.
7998
79992013-03-01  Jakub Jelinek  <jakub@redhat.com>
8000
8001	PR middle-end/56461
8002	* tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
8003	vector even when returning true.  Fix up function comment formatting.
8004
8005	PR middle-end/56461
8006	* ira-build.c (ira_loop_nodes_count): New variable.
8007	(create_loop_tree_nodes): Initialize it.
8008	(finish_loop_tree_nodes): Use it instead of looking at current_loops.
8009
8010	PR middle-end/56461
8011	* tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
8012	method on dr_chain and result_chain.
8013	* tree-vect-stmts.c (vectorizable_store): Only call
8014	result_chain.create if j == 0.
8015
8016	PR middle-end/56461
8017	* tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
8018	vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
8019	before overwriting it.
8020
80212013-03-01  Tobias Burnus  <burnus@net-b.de>
8022
8023	* doc/extended.texi (C Extensions): Change order in @menu
8024	to match @node.
8025	(Other MIPS Built-in Functions): Move last MIPS entry before
8026	"picoChip Built-in Functions".
8027	(SH Built-in Functions): Move after RX Built-in Functions.
8028	* doc/gcc.texi (Introduction): Change order in @menu to match @node.
8029	* doc/md.texi (Constraints): Ditto.
8030	* gty.texi (Type Information): Ditto.
8031	(User-provided marking routines for template types): Make subsection.
8032	* doc/invoke.texi (AArch64 Options): Move before
8033	"Adapteva Epiphany Options".
8034
80352013-02-28  Konstantin Serebryany  <konstantin.s.serebryany@gmail.com>
8036	    Jakub Jelinek  <jakub@redhat.com>
8037
8038	PR sanitizer/56454
8039	* asan.c (gate_asan): Lookup no_sanitize_address instead of
8040	no_address_safety_analysis attribute.
8041	* doc/extend.texi (no_address_safety_attribute): Rename to
8042	no_sanitize_address attribute, mention no_address_safety_analysis
8043	attribute as deprecated alias.
8044
80452013-02-28  Jakub Jelinek  <jakub@redhat.com>
8046
8047	PR middle-end/56461
8048	* tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
8049	type to vec<vec<tree> > *.
8050	* tree-vect-slp.c (vect_get_slp_defs): Likewise.  Change vec_defs
8051	to be vec<tree> instead of vec<tree> *, set vec_defs
8052	to vNULL and call vec_defs.create (number_of_vects), adjust other
8053	uses of vec_defs.
8054	* tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
8055	vectorizable_condition): Adjust vect_get_slp_defs callers.
8056
80572013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>
8058
8059	* config/aarch64/aarch64.c
8060	(aarch64_float_const_representable): Remove unused variable.
8061
80622013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>
8063
8064	* config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
8065
80662013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>
8067
8068	* config/aarch64/aarch64-builtins.c
8069	(aarch64_init_simd_builtins): Make static.
8070
80712013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>
8072
8073	* config/aarch64/aarch64.c
8074	(aarch64_simd_make_constant): Make static.
8075
80762013-02-28  Martin Jambor  <mjambor@suse.cz>
8077
8078	* tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
8079	with no initialization to the RHS of debug statements.
8080
80812013-02-28  Martin Jambor  <mjambor@suse.cz>
8082
8083	PR tree-optimization/56294
8084	* tree-sra.c (analyze_access_subtree): Create replacement declarations.
8085	Adjust dumping.
8086	(get_access_replacement): Do not call create_access_replacement.
8087	Assert a replacement exists.
8088	(get_repl_default_def_ssa_name): Create the replacement declaration
8089	itself.
8090
80912013-02-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8092
8093	* config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
8094	final_end_function.
8095
80962013-02-28  Marek Polacek  <polacek@redhat.com>
8097
8098	PR rtl-optimization/56466
8099	* loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
8100	if we're changing a loop.
8101	(peel_loops_completely): Likewise.
8102
81032013-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
8104
8105	PR c++/55813
8106	* doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
8107
81082013-02-28  Georg-Johann Lay  <avr@gjlay.de>
8109
8110	PR target/56445
8111	* config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
8112	macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
8113	INTX_FTYPE_FX, FX_FTYPE_INTX.
8114	* config/avr/builtins.def: Adjust respective DEF_BUILTIN.
8115
81162013-02-28  Georg-Johann Lay  <avr@gjlay.de>
8117
8118	* avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
8119	(ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
8120	(atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
8121	(atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
8122	(atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
8123	(atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
8124	(atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
8125	(atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
8126	(atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
8127	(atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
8128	(atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
8129	(atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
8130	(atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
8131	(atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
8132	(atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
8133	(avrxmega6): Increase max flash segments from 5 to 6.
8134	* config/avr/t-multilib: Regenerate.
8135	* config/avr/avr-tables.opt: Regenerate.
8136	* doc/avr-mmcu.texi: Regenerate.
8137
81382013-02-28  Georg-Johann Lay  <avr@gjlay.de>
8139
8140	* config/avr/avr.h (device_to_arch): Rename to device_to_ld.
8141	(avr_device_to_arch): Rename to avr_device_to_ld.
8142	(avr_device_to_as): New prototype.
8143	(EXTRA_SPEC_FUNCTIONS): Add device_to_as.
8144	(ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
8145	* config/avr/driver-avr.c (avr_device_to_as): New.
8146	(avr_device_to_arch): Rename to avr_device_to_ld.
8147
81482013-02-27  Jakub Jelinek  <jakub@redhat.com>
8149
8150	PR middle-end/56461
8151	* tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
8152	method on dr_chain and result_chain.
8153
8154	PR middle-end/56461
8155	* tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
8156	pointer_set_destroy on not_executed_last_iteration.
8157
8158	PR middle-end/56461
8159	* tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
8160
8161	PR middle-end/56461
8162	* ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
8163	FOR_EACH_DEFINED_FUNCTION when freeing state.
8164
8165	PR middle-end/56461
8166	* df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
8167	pool_free.
8168	(df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
8169	overwriting it.
8170
8171	PR middle-end/56461
8172	* ipa-cp.c (decide_whether_version_node): Call vec_free on
8173	known_aggs[i].items and release known_aggs vector.
8174
8175	PR middle-end/56461
8176	* ipa-reference.c (propagate): Free node_info even for alias nodes.
8177
81782013-02-27  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
8179
8180	* config/microblaze/microblaze.c (microblaze_emit_compare):
8181	Use xor for EQ/NE comparisions.
8182	* config/microblaze/microblaze.md (cstoresf4): Add constraints
8183	(cbranchsf4): Adjust operator to comparison_operator.
8184
81852013-02-27  Jakub Jelinek  <jakub@redhat.com>
8186
8187	PR middle-end/56461
8188	* tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
8189	vector.
8190	* tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
8191	vec_safe_push, always update *slot.
8192	(redirect_edge_var_map_clear): Use vec_free.
8193	(redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
8194	(free_var_map_entry): Use vec_free.
8195	* tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
8196	FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
8197
81982013-02-27  Andrey Belevantsev  <abel@ispras.ru>
8199
8200	PR middle-end/45472
8201	* sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
8202	when the may_trap_p bit of the exprs being merged differs.
8203	Reorder tests for speculativeness in the logical and operator.
8204
82052013-02-27  Jakub Jelinek  <jakub@redhat.com>
8206
8207	* incpath.c (add_standard_paths): Use reconcat instead of concat
8208	where appropriate and avoid leaking memory.
8209
8210	* opts.h: Include obstack.h.
8211	(opts_concat): New prototype.
8212	(opts_obstack): New declaration.
8213	* opts.c (opts_concat): New function.
8214	(opts_obstack): New variable.
8215	(init_options_struct): Call gcc_init_obstack on opts_obstack.
8216	(finish_options): Use opts_concat instead of concat
8217	and XOBNEWVEC instead of XNEWVEC.
8218	* opts-common.c (generate_canonical_option, decode_cmdline_option,
8219	generate_option): Likewise.
8220	* Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
8221	* lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
8222
8223	PR target/56455
8224	* stmt.c (expand_switch_as_decision_tree_p): If flag_pic
8225	and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
8226
82272013-02-26  Jakub Jelinek  <jakub@redhat.com>
8228
8229	PR middle-end/56461
8230	* lra-spills.c (lra_spill): Free spill_hard_reg at the end.
8231
82322013-02-26  Joern Rennecke  <joern.rennecke@embecosm.com>
8233
8234	* config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
8235	(arm_block_move_unaligned_straight): Likewise.
8236	(arm_adjust_block_mem): Likewise.
8237
82382013-02-26  Joern Rennecke  <joern.rennecke@embecosm.com>
8239
8240	PR target/48901
8241	* config/lm32/lm32.c (gen_int_relational): Remove unused variables
8242	temp, cond and label.
8243	* config/lm32/lm32.md (ashlsi3): Remove unused variable one.
8244
8245	PR target/52500
8246	* config/c6x/c6x.c (dbx_register_map): Change to unsigned.
8247	* config/c6x/c6x.h (dbx_register_map): Update declaration.
8248
8249	PR target/52501
8250	* config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
8251	of prologue/epilogue functions.
8252
8253	PR target/52550
8254	* config/tilegx/tilegx.c (tilegx_expand_prologue):
8255	Remove unused variable cfa_offset.
8256	* config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
8257
8258	PR target/54639
8259	* config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
8260	type promotion to unsigned.
8261
8262	PR target/54640
8263	* config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
8264	for HOST_WIDE_INT of 32 bit / same size as int.
8265	(arm_block_move_unaligned_straight): Likewise.
8266	(arm_adjust_block_mem): Likewise.
8267
8268	PR target/54662
8269	* config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
8270	ALL_CFLAGS.
8271
82722013-02-26  Marek Polacek  <polacek@redhat.com>
8273
8274	PR tree-optimization/56426
8275	* tree-ssa-loop.c (tree_ssa_loop_init): Always call
8276	scev_initialize.
8277
82782013-02-26  Richard Biener  <rguenther@suse.de>
8279
8280	PR target/56444
8281	* config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
8282	unused variable loops.
8283
82842013-02-26  Jakub Jelinek  <jakub@redhat.com>
8285
8286	PR tree-optimization/56448
8287	* fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
8288	TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
8289	Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
8290	later operands of the references, or even first operand for
8291	INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
8292
8293	PR tree-optimization/56443
8294	* tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
8295	overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
8296	to type_for_mode langhook.
8297
82982013-02-25  Matt Turner  <mattst88@gmail.com>
8299
8300	* doc/invoke.texi: Document r4700.
8301
83022013-02-25  Richard Biener  <rguenther@suse.de>
8303
8304	PR tree-optimization/56175
8305	* tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
8306	split out from ...
8307	(simplify_bitwise_binary): ... here.  Also guard the conversion
8308	of (type) X op CST to (type) (X op ((type-x) CST)) with it.
8309
83102013-02-25  Catherine Moore  <clm@codesourcery.com>
8311
8312	Revert:
8313	2013-02-24  Catherine Moore  <clm@codesourcery.com>
8314	    Maciej W. Rozycki  <macro@codesourcery.com>
8315	    Tom de Vries  <tom@codesourcery.com>
8316	    Nathan Sidwell  <nathan@codesourcery.com>
8317	    Iain Sandoe  <iain@codesourcery.com>
8318	    Nathan Froyd  <froydnj@codesourcery.com>
8319	    Chao-ying Fu  <fu@mips.com>
8320
8321	* doc/extend.texi (micromips, nomicromips, nocompression):
8322	Document new function attributes.
8323	* doc/invoke.texi (minterlink-compressed, mmicromips,
8324	m14k, m14ke, m14kec): Document new options.
8325	(minterlink-mips16): Update documentation.
8326	* doc/md.texi (ZC, ZD): Document new constraints.
8327	* configure.ac (gcc_cv_as_micromips): Check if linker
8328	supports the .set micromips directive.
8329	* configure: Regenerate.
8330	* config.in: Regenerate.
8331	* config/mips/mips-tables.opt: Regenerate.
8332	* config/mips/micromips.md: New file.
8333	* constraints.md (ZC, AD): New constraints.
8334	* config/mips/predicates.md (movep_src_register): New predicate.
8335	(movep_src_operand): New predicate.
8336	(non_volatile_mem_operand): New predicate.
8337	* config/mips/mips.md (multimem): New type.
8338	(length): Differentiate between 17-bit and 18-bit branch offsets.
8339	(MOVEP1, MOVEP2): New mode iterator.
8340	(mov_<load>l): Use ZC constraint.
8341	(mov_<load>r): Likewise.
8342	(mov_<store>l): Likewise.
8343	(mov_<store>r): Likewise.
8344	(*branch_equality<mode>_inverted): Add microMIPS support.
8345	(*branch_equality<mode>): Likewise.
8346	(*jump_absolute): Likewise.
8347	(indirect_jump_<mode>): Likewise.
8348	(tablejump_<mode>): Likewise.
8349	(<optab>_internal): Likewise.
8350	(sibcall_internal): Likewise.
8351	(sibcall_value_internal): Likewise.
8352	(prefetch): Use constraint ZD.
8353	* config/mips/mips.opt (minterlink-compressed): New option.
8354	(minterlink-mips16): Now an alias for minterlink-compressed.
8355	(mmicromips): New option.
8356	* config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
8357	(compare_and_swap_12): Likewise.
8358	(sync_add<mode>): Likewise.
8359	(sync_<optab>_12): Likewise.
8360	(sync_old_<optab>_12): Likewise.
8361	(sync_new_<optab>_12): Likewise.
8362	(sync_nand_12): Likewise.
8363	(sync_old_nand_12): Likewise.
8364	(sync_new_nand_12): Likewise.
8365	(sync_sub<mode>): Likewise.
8366	(sync_old_add<mode>): Likewise.
8367	(sync_old_sub<mode>): Likewise.
8368	(sync_new_add<mode>): Likewise.
8369	(sync_new_sub<mode>): Likewise.
8370	(sync_<optab><mode>): Likewise.
8371	(sync_old_<optab><mode>): Likewise.
8372	(sync_new_<optab><mode>): Likewise.
8373	(sync_nand<mode>): Likewise.
8374	(sync_old_nand<mode>): Likewise.
8375	(sync_new_nand<mode>): Likewise.
8376	(sync_lock_test_and_set<mode>): Likewise.
8377	(test_and_set_12): Likewise.
8378	(atomic_compare_and_swap<mode>): Likewise.
8379	(atomic_exchange<mode>_llsc): Likewise.
8380	(atomic_fetch_add<mode>_llsc): Likewise.
8381	* config/mips/mips-cpus.def (m14kc, m14k): New processors.
8382	* config/mips/mips-protos.h (umips_output_save_restore): New prototype.
8383	(umips_save_restore_pattern_p): Likewise.
8384	(umips_load_store_pair_p): Likewise.
8385	(umips_output_load_store_pair): Likewise.
8386	(umips_movep_target_p): Likewise.
8387	(umips_12bit_offset_address_p): Likewise.
8388	* config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
8389	(mips_base_mips16): Rename this...
8390	(mips_base_compression_flags): ...to this. Update all uses.
8391	(mips_attribute_table): Add micromips, nomicromips and nocompression.
8392	(mips_mips16_decl_p): Delete.
8393	(mips_nomips16_decl_p): Delete.
8394	(mips_get_compress_on_flags): New function.
8395	(mips_get_compress_off_flags): New function.
8396	(mips_get_compress_mode): New function.
8397	(mips_get_compress_on_name): New function.
8398	(mips_get_compress_off_name): New function.
8399	(mips_insert_attributes): Support multiple compression types.
8400	(mips_merge_decl_attributes): Likewise.
8401	(umips_12bit_offset_address_p): New function.
8402	(mips_start_function_definition): Emit .set micromips directive.
8403	(mips_call_may_need_jalx_p): New function.
8404	(mips_function_ok_for_sibcall): Add microMIPS support.
8405	(mips_print_operand_punctuation): Support short delay slots and
8406	compact jumps.
8407	(umips_swm_mask, umips_swm_encoding): New.
8408	(umips_build_save_restore): New function.
8409	(mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
8410	(was_mips16_p): Remove.
8411	(old_compression_mode): New.
8412	(mips_set_compression_mode): New function.
8413	(mips_set_current_function): Add microMIPS support.
8414	(mips_option_override): Likewise.
8415	(umips_save_restore_pattern_p): New function.
8416	(umips_output_save_restore): New function.
8417	(umips_load_store_pair_p_1): New function.
8418	(umips_load_store_pair_p): New function.
8419	(umips_output_load_store_pair_1): New function.
8420	(umips_output_load_store_pair): New function.
8421	(umips_movep_target_p) New function.
8422	(mips_prepare_pch_save): Add microMIPS support.
8423	* config/mips/mips.h (TARGET_COMPRESSION): New.
8424	(TARGET_CPU_CPP_BUILTINS): Update macro
8425	to use new compression flags and to support microMIPS.
8426	(MIPS_ISA_LEVEL_SPEC): Add m14k processors.
8427	(MIPS_ARCH_FLOAT_SPEC): Likewise.
8428	(ISA_HAS_LWXS): Include TARGET_MICROMIPS.
8429	(ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
8430	(ASM_SPEC): Support mmicromips and mno-micromips.
8431	(M16STORE_REG_P): New macro.
8432	(MIPS_CALL): Support TARGET_MICROMIPS.
8433	(MICROMIPS_J): New macro.
8434	(mips_base_mips16): Rename this...
8435	(mips_base_compression_flags): ...to this.
8436	(UMIPS_12BIT_OFFSET_P): New macro.
8437	* config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
8438	(MULTILIB_DIRNAMES): Likewise.
8439
84402013-02-25  Tom de Vries  <tom@codesourcery.com>
8441
8442	PR rtl-optimization/56131
8443	* insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
8444	* cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
8445	NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
8446
84472013-02-25  Tobias Burnus  <burnus@net-b.de>
8448
8449	* doc/invoke.texi (-fsanitize=): Move from optimization
8450	to debugging options.
8451
84522013-02-25  Andrey Belevantsev  <abel@ispras.ru>
8453
8454	* sched-deps.c (sched_analyze_insn): Fix typo in comment.
8455
84562013-02-25  Andrey Belevantsev  <abel@ispras.ru>
8457	    Alexander Monakov  <amonakov@ispras.ru>
8458
8459	PR middle-end/56077
8460	* sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
8461	flush pending lists also on non-jumps.  Adjust comment.
8462
84632013-02-24  Catherine Moore  <clm@codesourcery.com>
8464	    Maciej W. Rozycki  <macro@codesourcery.com>
8465	    Tom de Vries  <tom@codesourcery.com>
8466	    Nathan Sidwell  <nathan@codesourcery.com>
8467	    Iain Sandoe  <iain@codesourcery.com>
8468	    Nathan Froyd  <froydnj@codesourcery.com>
8469	    Chao-ying Fu  <fu@mips.com>
8470
8471	* doc/extend.texi (micromips, nomicromips, nocompression):
8472	Document new function attributes.
8473	* doc/invoke.texi (minterlink-compressed, mmicromips,
8474	m14k, m14ke, m14kec): Document new options.
8475	(minterlink-mips16): Update documentation.
8476	* doc/md.texi (ZC, ZD): Document new constraints.
8477	* configure.ac (gcc_cv_as_micromips): Check if linker
8478	supports the .set micromips directive.
8479	* configure: Regenerate.
8480	* config.in: Regenerate.
8481	* config/mips/mips-tables.opt: Regenerate.
8482	* config/mips/micromips.md: New file.
8483	* constraints.md (ZC, AD): New constraints.
8484	* config/mips/predicates.md (movep_src_register): New predicate.
8485	(movep_src_operand): New predicate.
8486	(non_volatile_mem_operand): New predicate.
8487	* config/mips/mips.md (multimem): New type.
8488	(length): Differentiate between 17-bit and 18-bit branch offsets.
8489	(MOVEP1, MOVEP2): New mode iterator.
8490	(mov_<load>l): Use ZC constraint.
8491	(mov_<load>r): Likewise.
8492	(mov_<store>l): Likewise.
8493	(mov_<store>r): Likewise.
8494	(*branch_equality<mode>_inverted): Add microMIPS support.
8495	(*branch_equality<mode>): Likewise.
8496	(*jump_absolute): Likewise.
8497	(indirect_jump_<mode>): Likewise.
8498	(tablejump_<mode>): Likewise.
8499	(<optab>_internal): Likewise.
8500	(sibcall_internal): Likewise.
8501	(sibcall_value_internal): Likewise.
8502	(prefetch): Use constraint ZD.
8503	* config/mips/mips.opt (minterlink-compressed): New option.
8504	(minterlink-mips16): Now an alias for minterlink-compressed.
8505	(mmicromips): New option.
8506	* config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
8507	(compare_and_swap_12): Likewise.
8508	(sync_add<mode>): Likewise.
8509	(sync_<optab>_12): Likewise.
8510	(sync_old_<optab>_12): Likewise.
8511	(sync_new_<optab>_12): Likewise.
8512	(sync_nand_12): Likewise.
8513	(sync_old_nand_12): Likewise.
8514	(sync_new_nand_12): Likewise.
8515	(sync_sub<mode>): Likewise.
8516	(sync_old_add<mode>): Likewise.
8517	(sync_old_sub<mode>): Likewise.
8518	(sync_new_add<mode>): Likewise.
8519	(sync_new_sub<mode>): Likewise.
8520	(sync_<optab><mode>): Likewise.
8521	(sync_old_<optab><mode>): Likewise.
8522	(sync_new_<optab><mode>): Likewise.
8523	(sync_nand<mode>): Likewise.
8524	(sync_old_nand<mode>): Likewise.
8525	(sync_new_nand<mode>): Likewise.
8526	(sync_lock_test_and_set<mode>): Likewise.
8527	(test_and_set_12): Likewise.
8528	(atomic_compare_and_swap<mode>): Likewise.
8529	(atomic_exchange<mode>_llsc): Likewise.
8530	(atomic_fetch_add<mode>_llsc): Likewise.
8531	* config/mips/mips-cpus.def (m14kc, m14k): New processors.
8532	* config/mips/mips-protos.h (umips_output_save_restore): New prototype.
8533	(umips_save_restore_pattern_p): Likewise.
8534	(umips_load_store_pair_p): Likewise.
8535	(umips_output_load_store_pair): Likewise.
8536	(umips_movep_target_p): Likewise.
8537	(umips_12bit_offset_address_p): Likewise.
8538	* config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
8539	(mips_base_mips16): Rename this...
8540	(mips_base_compression_flags): ...to this. Update all uses.
8541	(mips_attribute_table): Add micromips, nomicromips and nocompression.
8542	(mips_mips16_decl_p): Delete.
8543	(mips_nomips16_decl_p): Delete.
8544	(mips_get_compress_on_flags): New function.
8545	(mips_get_compress_off_flags): New function.
8546	(mips_get_compress_mode): New function.
8547	(mips_get_compress_on_name): New function.
8548	(mips_get_compress_off_name): New function.
8549	(mips_insert_attributes): Support multiple compression types.
8550	(mips_merge_decl_attributes): Likewise.
8551	(umips_12bit_offset_address_p): New function.
8552	(mips_start_function_definition): Emit .set micromips directive.
8553	(mips_call_may_need_jalx_p): New function.
8554	(mips_function_ok_for_sibcall): Add microMIPS support.
8555	(mips_print_operand_punctuation): Support short delay slots and
8556	compact jumps.
8557	(umips_swm_mask, umips_swm_encoding): New.
8558	(umips_build_save_restore): New function.
8559	(mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
8560	(was_mips16_p): Remove.
8561	(old_compression_mode): New.
8562	(mips_set_compression_mode): New function.
8563	(mips_set_current_function): Add microMIPS support.
8564	(mips_option_override): Likewise.
8565	(umips_save_restore_pattern_p): New function.
8566	(umips_output_save_restore): New function.
8567	(umips_load_store_pair_p_1): New function.
8568	(umips_load_store_pair_p): New function.
8569	(umips_output_load_store_pair_1): New function.
8570	(umips_output_load_store_pair): New function.
8571	(umips_movep_target_p) New function.
8572	(mips_prepare_pch_save): Add microMIPS support.
8573	* config/mips/mips.h (TARGET_COMPRESSION): New.
8574	(TARGET_CPU_CPP_BUILTINS): Update macro
8575	to use new compression flags and to support microMIPS.
8576	(MIPS_ISA_LEVEL_SPEC): Add m14k processors.
8577	(MIPS_ARCH_FLOAT_SPEC): Likewise.
8578	(ISA_HAS_LWXS): Include TARGET_MICROMIPS.
8579	(ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
8580	(ASM_SPEC): Support mmicromips and mno-micromips.
8581	(M16STORE_REG_P): New macro.
8582	(MIPS_CALL): Support TARGET_MICROMIPS.
8583	(MICROMIPS_J): New macro.
8584	(mips_base_mips16): Rename this...
8585	(mips_base_compression_flags): ...to this.
8586	(UMIPS_12BIT_OFFSET_P): New macro.
8587	* config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
8588	(MULTILIB_DIRNAMES): Likewise.
8589
85902013-02-24  Jakub Jelinek  <jakub@redhat.com>
8591
8592	PR target/52555
8593	* target-globals.c (save_target_globals): For init_reg_sets and
8594	target_reinit remporarily set this_fn_optabs to this_target_optabs.
8595
85962013-02-22  James Grennahlgh  <james.greenhalgh@arm.com>
8597
8598	* config/aarch64/aarch64-simd-builtins.def: Add copyright header.
8599	* config/aarch64/t-aarch64
8600	(aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
8601
86022013-02-22  Vladimir Makarov  <vmakarov@redhat.com>
8603
8604	PR inline-asm/56148
8605	* lra-constraints.c (process_alt_operands): Reload operand
8606	conflicting with earlier clobber only if no more other conflicting
8607	operands.
8608
86092013-02-22  Jakub Jelinek  <jakub@redhat.com>
8610
8611	PR sanitizer/56393
8612	* config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
8613	if not linking a shared library.
8614
86152013-02-22  Seth LaForge  <sethml@google.com>
8616
8617	* config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
8618
86192013-02-22  Greta Yorsh  <Greta.Yorsh@arm.com>
8620
8621	* config/arm/arm.md (split for extendsidi): Update condition.
8622	(zero_extend<mode>di2,extend<mode>di2): Add an alternative.
8623	* config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
8624	(qhs_zextenddi_cstr): Likewise.
8625
86262013-02-21  Jakub Jelinek  <jakub@redhat.com>
8627
8628	PR middle-end/56420
8629	* expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
8630	avoid signed wrapping.
8631	(expand_mult): Handle properly multiplication by
8632	((dword_type) -1) << (BITS_PER_WORD - 1).  Improve multiplication by
8633	((dword_type) 1) << (BITS_PER_WORD - 1).  Avoid undefined behavior
8634	in the compiler if coeff is HOST_WIDE_INT_MIN.
8635	(expand_divmod): Don't make ext_op1 static, change it's type to uhwi.
8636	Avoid undefined behavior in -INTVAL (op1).
8637
8638	PR rtl-optimization/50339
8639	* lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
8640	field.
8641	* lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
8642	(compute_costs): Call compute_splitting_shift also for ASHIFTRT
8643	into splitting_ashiftrt field.
8644	(find_decomposable_shift_zext, resolve_shift_zext): Handle also
8645	ASHIFTRT.
8646	(dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
8647	choices.
8648
86492013-02-20  Aldy Hernandez  <aldyh@redhat.com>
8650
8651	PR middle-end/56108
8652	* trans-mem.c (execute_tm_mark): Do not expand transactions that
8653	are sure to go irrevocable.
8654
86552013-02-21  Hans-Peter Nilsson  <hp@axis.com>
8656
8657	* doc/rtl.texi (vec_concat, vec_duplicate): Mention that
8658	scalars are valid operands.
8659
86602013-02-21  Martin Jambor  <mjambor@suse.cz>
8661
8662	PR tree-optimization/56310
8663	* ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
8664	only matching indices and non-negative final offsets.
8665	(intersect_aggregates_with_edge): Pass src_idx to
8666	agg_replacements_to_vector.  Pass src_idx insstead of index to
8667	intersect_with_agg_replacements.
8668
86692013-02-21  Martin Jambor  <mjambor@suse.cz>
8670
8671	* ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
8672	instead of hard-wired defaults.
8673
86742013-02-21  Maciej W. Rozycki  <macro@codesourcery.com>
8675
8676	* doc/invoke.texi (MIPS Options): Update documentation of the
8677	floating-point multiply-accumulate instruction restrictions.
8678
86792013-02-21  Kostya Serebryany  <kcc@google.com>
8680
8681	* config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
8682	asan_shadow_offset on x86_64 linux.
8683
86842013-02-21  Richard Biener  <rguenther@suse.de>
8685
8686	PR tree-optimization/56415
8687	Revert
8688	2013-02-11  Richard Biener  <rguenther@suse.de>
8689
8690	PR tree-optimization/56273
8691	* tree-vrp.c (simplify_cond_using_ranges): Disable for the
8692	first VRP run.
8693
86942013-02-21  Jakub Jelinek  <jakub@redhat.com>
8695
8696	PR bootstrap/56258
8697	* doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
8698	instead of @itemx.
8699
8700	PR inline-asm/56405
8701	* expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
8702	use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
8703
87042013-02-20  Jan Hubicka  <jh@suse.cz>
8705
8706	PR tree-optimization/56265
8707	* ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph when
8708	target is referenced for first time.
8709
87102013-02-20  Richard Biener  <rguenther@suse.de>
8711
8712	* tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
8713	* tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
8714	* tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
8715	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
8716	not return anything.
8717	(rename_ssa_copies): Do not remove unused locals.
8718	* tree-ssa-ccp.c (do_ssa_ccp): Likewise.
8719	* tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
8720	* passes.c (execute_function_todo): Do not schedule unused locals
8721	removal if cleanup_tree_cfg did something.
8722	* tree-ssa-live.c (remove_unused_locals): Dump statistics
8723	about the number of removed locals.
8724
87252013-02-20  Richard Biener  <rguenther@suse.de>
8726
8727	PR tree-optimization/56398
8728	* tree-vect-loop-manip.c (adjust_debug_stmts): Skip
8729	SSA default defs.
8730
87312013-02-20  Martin Jambor  <mjambor@suse.cz>
8732
8733	PR tree-optimization/55334
8734	* ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
8735	restricted pointers to arrays.
8736
87372013-02-20  Richard Biener  <rguenther@suse.de>
8738	Jakub Jelinek  <jakub@redhat.com>
8739
8740	PR tree-optimization/56396
8741	* tree-ssa-ccp.c (n_const_val): New static variable.
8742	(get_value): Return NULL for SSA names we don't have a lattice
8743	entry for.
8744	(ccp_initialize): Initialize n_const_val.
8745	* tree-ssa-copy.c (n_copy_of): New static variable.
8746	(init_copy_prop): Initialize n_copy_of.
8747	(get_value): Return NULL_TREE for SSA names we don't have a
8748	lattice entry for.
8749
87502013-02-20  Martin Jambor  <mjambor@suse.cz>
8751
8752	* ipa-cp.c (initialize_node_lattices): Fix dumping condition.
8753
87542013-02-20  Richard Biener  <rguenther@suse.de>
8755
8756	* genpreds.c (write_lookup_constraint): Do not compare first
8757	letter of the constraint again.
8758
87592013-02-20  Richard Biener  <rguenther@suse.de>
8760
8761	* tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
8762	and ceil_log2.
8763	(get_use_iv_cost): Terminate hashtable walk when coming across
8764	an empty entry.
8765
87662013-02-20  Igor Zamyatin  <igor.zamyatin@intel.com>
8767
8768	* config/i386/i386.c (initial_ix86_tune_features): Turn on fp
8769	reassociation for avx2 targets.
8770
87712012-02-19  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
8772
8773	* config/microblaze/microblaze.c: microblaze_has_clz = 0
8774	Add version check for v8.10.a to enable microblaze_has_clz
8775	* config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
8776	version and TARGET_PATTERN_COMPARE check
8777	* config/microblaze/microblaze.md: New clzsi2 instruction
8778
87792012-02-19  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
8780
8781	* config/microblaze/microblaze.md (call_value_intern): Check symbol is
8782	function before branching.
8783
87842012-02-19  Andrey Belevantsev  <abel@ispras.ru>
8785
8786	* sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
8787	DUMP_INSN_RTX_UID.
8788	(dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
8789
87902012-02-19  Andrey Belevantsev  <abel@ispras.ru>
8791
8792	PR middle-end/55889
8793	* sel-sched.c: Include ira.h.
8794	(implicit_clobber_conflict_p): New function.
8795	(moveup_expr): Use it.
8796	* Makefile.in (sel-sched.o): Depend on ira.h.
8797
87982013-02-19  Richard Biener  <rguenther@suse.de>
8799
8800	PR tree-optimization/56384
8801	* tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
8802	(vn_hash_type): Split out from ...
8803	(vn_hash_constant_with_type): ... here.
8804	* tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
8805	(vn_phi_eq): Compare types from vn_phi_s structure.
8806	(vn_phi_lookup): Populate vn_phi_s type.
8807	(vn_phi_insert): Likewise.
8808
88092013-02-19  Jakub Jelinek  <jakub@redhat.com>
8810
8811	PR tree-optimization/56350
8812	* tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
8813	if haven't found reduction or nested cycle operand, rather than
8814	asserting we must find it.
8815
8816	PR tree-optimization/56381
8817	* tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
8818	to fold_build3.
8819
88202013-02-18  Aldy Hernandez  <aldyh@redhat.com>
8821	    Jakub Jelinek  <jakub@redhat.com>
8822
8823	PR target/52555
8824	* genopinit.c (raw_optab_handler): Use this_fn_optabs.
8825	(swap_optab_enable): Same.
8826	(init_all_optabs): Use argument instead of global.
8827	* tree.h (struct tree_optimization_option): New field target_optabs.
8828	* expr.h (init_all_optabs): Add argument to prototype.
8829	(TREE_OPTIMIZATION_OPTABS): New.
8830	(save_optabs_if_changed): Protoize.
8831	* optabs.h: Declare this_fn_optabs.
8832	* optabs.c (save_optabs_if_changed): New.
8833	Declare this_fn_optabs.
8834	(init_optabs): Add argument to init_all_optabs() call.
8835	* function.c (invoke_set_current_function_hook): Handle per
8836	function optabs.
8837	* function.h (struct function): New field optabs.
8838	* config/mips/mips.c (mips_set_mips16_mode): Handle when
8839	optimization_current_node has changed.
8840	* target-globals.h (save_target_globals_default_opts): Protoize.
8841	* target-globals.c (save_target_globals_default_opts): New.
8842
88432013-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8844
8845	PR target/56347
8846	* config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
8847	registers %fr12 and %fr12R as call used.
8848
8849	PR target/56214
8850	* config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
8851	and HImode, require all displacements to be an integer multiple of
8852	their mode size.
8853	* config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
8854	only allow QImode and HImode when reload is in progress and strict is
8855	true.  Likewise for symbolic addresses.  Use base14_operand to check
8856	displacements in REG+BASE addresses.
8857
88582013-02-18  Richard Biener  <rguenther@suse.de>
8859
8860	PR tree-optimization/56366
8861	* tree-vect-loop.c (get_initial_def_for_induction): Properly
8862	handle sign-conversion of outer-loop initial induction value.
8863
88642013-02-18  Richard Biener  <rguenther@suse.de>
8865
8866	PR middle-end/56349
8867	* cfghooks.c (merge_blocks): If we merge a latch into another
8868	block adjust references to it.
8869	* cfgloop.c (flow_loops_find): Reset latch before recomputing it.
8870	(verify_loop_structure): Verify that a recorded latch is in fact
8871	a latch.
8872
88732013-02-18  Richard Biener  <rguenther@suse.de>
8874
8875	PR tree-optimization/56321
8876	* tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
8877	order SSA name release and virtual operand unlinking.
8878
88792013-02-17  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
8880
8881	* config/microblaze/microblaze.md (save_stack_block): Define.
8882	(restore_stack_block): Likewise.
8883
88842013-02-16  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
8885
8886	* config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
8887	* config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
8888	* config/microblaze/microblaze.c (microblaze_option_override):
8889	Bail out early for PIC modes when target does not support PIC.
8890
88912013-02-16  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
8892
8893	* config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8894	Replace with a microblaze version.
8895	(microblaze_trampoline_init): Adapt for microblaze.
8896	* config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8897	microblaze.
8898
88992013-02-16  Jakub Jelinek  <jakub@redhat.com>
8900	    Dodji Seketeli  <dodji@redhat.com>
8901
8902	PR asan/56330
8903	* asan.c (get_mem_refs_of_builtin_call): White space and style
8904	cleanup.
8905	(instrument_mem_region_access): Do not forget to always put
8906	instrumentation of the of 'base' and 'base + len' in a "if (len !=
8907	0) statement, even for cases where either 'base' or 'base + len'
8908	are not instrumented -- because they have been previously
8909	instrumented.  Simplify the logic by putting all the statements
8910	instrument 'base + len' inside a sequence, and then insert that
8911	sequence right before the current insertion point.  Then, to
8912	instrument 'base + len', just get an iterator on that statement.
8913	And do not forget to update the pointer to iterator the function
8914	received as argument.
8915
89162013-02-15  Vladimir Makarov  <vmakarov@redhat.com>
8917
8918	PR rtl-optimization/56348
8919	* lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
8920
89212013-02-15  Steven Bosscher  <steven@gcc.gnu.org>
8922
8923	* graph.c (start_graph_dump): Print dumpfile base as digraph label.
8924	(clean_graph_dump_file): Pass base to start_graph_dump.
8925
89262013-02-14  Richard Henderson  <rth@redhat.com>
8927
8928	PR target/55941
8929	* lower-subreg.c (simple_move): Check dest mode instead of src mode.
8930
89312013-02-14  Steven Bosscher  <steven@gcc.gnu.org>
8932
8933	* collect2-aix.h: Define F_LOADONLY.
8934
89352013-02-14  Richard Biener  <rguenther@suse.de>
8936
8937	PR lto/50494
8938	* varasm.c (output_constant_def_1): Get the decl representing
8939	the constant as argument.
8940	(output_constant_def): Wrap output_constant_def_1.
8941	(make_decl_rtl): Use output_constant_def_1 with the decl
8942	representing the constant.
8943	(build_constant_desc): Optionally re-use a decl already
8944	representing the constant.
8945	(tree_output_constant_def): Adjust.
8946
89472013-02-14  Dodji Seketeli  <dodji@redhat.com>
8948
8949	Fix an asan crash
8950	* asan.c (instrument_builtin_call):  Really put the length of the
8951	second source argument into src1_len.
8952
89532013-02-13  Jakub Jelinek  <jakub@redhat.com>
8954
8955	* asan.c (create_cond_insert_point): Add create_then_fallthru_edge
8956	argument.  If it is false, don't create edge from then_bb to
8957	fallthru_bb.
8958	(insert_if_then_before_iter): Pass true to it.
8959	(build_check_stmt): Pass false to it.
8960	(transform_statements): Flush hash table only on extended basic
8961	block boundaries, rather than at the beginning of every bb.
8962	Don't flush hash table on nonfreeing_call_p calls.
8963	* tree-flow.h (nonfreeing_call_p): New prototype.
8964	* tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
8965
89662013-02-13  David S. Miller  <davem@davemloft.net>
8967
8968	* expmed.c (expand_shift_1): Only strip scalar integer subregs.
8969
89702013-02-13  Vladimir Makarov  <vmakarov@redhat.com>
8971
8972	PR target/56184
8973	* ira.c (max_regno_before_ira): Move from ...
8974	(ira): ... here.
8975	(fix_reg_equiv_init): Use max_regno_before_ira instead of
8976	vec_safe_length.
8977
89782013-02-13  Jakub Jelinek  <jakub@redhat.com>
8979
8980	* config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
8981
89822013-02-13  Richard Biener  <rguenther@suse.de>
8983
8984	PR lto/56295
8985	* gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
8986	globals in MEM_REFs.
8987
89882013-02-13  Richard Biener  <rguenther@suse.de>
8989
8990	* loop-init.c (loop_optimizer_init): Clear loop state when
8991	re-initializing preserved loops.
8992	* loop-unswitch.c (unswitch_single_loop): Return whether
8993	we unswitched the loop.  Do not verify loop state here.
8994	(unswitch_loops): When we unswitched a loop discover new
8995	loops.
8996
89972013-02-13  Kostya Serebryany  <kcc@google.com>
8998
8999	* config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset on x86_64
9000	linux.
9001	* sanitizer.def: Rename __asan_init to __asan_init_v1.
9002
90032013-02-12  Dodji Seketeli  <dodji@redhat.com>
9004
9005	Avoid instrumenting duplicated memory access in the same basic block
9006	* Makefile.in (asan.o): Add new dependency on hash-table.h
9007	* asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
9008	(asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
9009	(has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
9010	(free_mem_ref_resources, has_mem_ref_been_instrumented)
9011	(has_stmt_been_instrumented_p, update_mem_ref_hash_table)
9012	(get_mem_ref_of_assignment): New functions.
9013	(get_mem_refs_of_builtin_call): Extract from
9014	instrument_builtin_call and tweak a little bit to make it fit with
9015	the new signature.
9016	(instrument_builtin_call): Use the new
9017	get_mem_refs_of_builtin_call.  Use gimple_call_builtin_p instead
9018	of is_gimple_builtin_call.
9019	(instrument_derefs, instrument_mem_region_access): Insert the
9020	instrumented memory reference into the hash table.
9021	(maybe_instrument_assignment): Renamed instrument_assignment into
9022	this, and change it to advance the iterator when instrumentation
9023	actually happened and return true in that case.  This makes it
9024	homogeneous with maybe_instrument_assignment, and thus give a
9025	chance to callers to be more 'regular'.
9026	(transform_statements): Clear the memory reference hash table
9027	whenever we enter a new BB, when we cross a function call, or when
9028	we are done transforming statements.  Use
9029	maybe_instrument_assignment instead of instrumentation.  No more
9030	need to special case maybe_instrument_assignment and advance the
9031	iterator after calling it; it's now handled just like
9032	maybe_instrument_call.  Update comment.
9033
90342013-02-13  Richard Biener  <rguenther@suse.de>
9035
9036	* config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
9037	Fix loop discovery code.
9038
90392013-02-12  Vladimir Makarov  <vmakarov@redhat.com>
9040
9041	PR inline-asm/56148
9042	* lra-constraints.c (process_alt_operands): Match early clobber
9043	operand with itself.  Check conflicts with earlyclobber only if
9044	the operand is not reloaded.  Prefer to reload conflicting operand
9045	if earlyclobber and matching operands are the same.
9046
90472013-02-12  Richard Biener  <rguenther@suse.de>
9048
9049	PR lto/56297
9050	* lto-streamer-out.c (write_symbol): Do not output symbols
9051	for hard register variables.
9052
90532013-02-12  Georg-Johann Lay  <avr@gjlay.de>
9054
9055	PR target/54222
9056	* config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
9057	(umulsidi3_insn, mulsidi3_insn): New insns.
9058
90592013-02-12  Christophe Lyon  <christophe.lyon@linaro.org>
9060
9061	* config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
9062	(struct tune_params): Add vec_costs field.
9063	* config/arm/arm.c (arm_builtin_vectorization_cost)
9064	(arm_add_stmt_cost): New functions.
9065	(TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
9066	(TARGET_VECTORIZE_ADD_STMT_COST): Define.
9067	(arm_default_vec_cost): New struct of type cpu_vec_costs.
9068	(arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
9069	(arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
9070	(arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
9071	(arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
9072
90732013-02-12  Richard Biener  <rguenther@suse.de>
9074
9075	PR lto/56295
9076	* gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
9077	decls again if possible.
9078
90792013-02-12  Richard Biener  <rguenther@suse.de>
9080
9081	PR middle-end/56288
9082	* tree-ssa.c (verify_ssa_name): Fix check, move
9083	SSA_NAME_IN_FREE_LIST check up.
9084
90852013-02-12  Jakub Jelinek  <jakub@redhat.com>
9086	    Steven Bosscher   <steven@gcc.gnu.org>
9087
9088	PR rtl-optimization/56151
9089	* optabs.c (add_equal_note): Don't return 0 if target is a MEM,
9090	equal to op0 or op1, and last_insn pattern is CODE operation
9091	with MEM dest and one of the operands matches that MEM.
9092
90932013-02-11  Sriraman Tallam  <tmsriramgoogle.com>
9094
9095	* doc/extend.texi: Document Function Multiversioning and "default"
9096	parameter string to target attribute.
9097	* config/i386/i386.c (get_builtin_code_for_version): Return 0 if
9098	target attribute parameter is "default".
9099	(ix86_compare_version_priority): Remove checks for target attribute.
9100	(ix86_mangle_function_version_assembler_name): Change error to sorry.
9101	Remove check for target attribute equal to NULL. Add assert.
9102	(ix86_generate_version_dispatcher_body): Change error to sorry.
9103
91042013-02-11  Iain Sandoe  <iain@codesourcery.com>
9105	    Jack Howarth  <howarth@bromo.med.uc.edu>
9106	    Patrick Marlier  <patrick.marlier@gmail.com>
9107
9108	PR libitm/55693
9109	* config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
9110	define ENDFILE_SPEC as TM_DESTRUCTOR.
9111	* config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
9112
91132013-02-11  Alexander Potapenko  <glider@google.com>
9114	    Jack Howarth  <howarth@bromo.med.uc.edu>
9115	    Jakub Jelinek  <jakub@redhat.com>
9116
9117	PR sanitizer/55617
9118	* config/darwin.c (cdtor_record): Rename ctor_record.
9119	(sort_cdtor_records): Rename sort_ctor_records.
9120	(finalize_dtors): New routine to sort destructors by
9121	priority before use in assemble_integer.
9122	(machopic_asm_out_destructor): Use finalize_dtors if needed.
9123
91242013-02-11  Uros Bizjak  <ubizjak@gmail.com>
9125
9126	PR rtl-optimization/56275
9127	* simplify-rtx.c (avoid_constant_pool_reference): Check that
9128	offset is non-negative and less than cmode size before
9129	calling simplify_subreg.
9130
91312013-02-11  Richard Biener  <rguenther@suse.de>
9132
9133	PR tree-optimization/56264
9134	* cfgloop.h (fix_loop_structure): Adjust prototype.
9135	* loop-init.c (fix_loop_structure): Return the number of
9136	newly discovered loops.
9137	* tree-cfgcleanup.c (repair_loop_structures): When new loops
9138	are discovered, do a full loop-closed SSA rewrite.
9139
91402013-02-11  Richard Biener  <rguenther@suse.de>
9141
9142	PR tree-optimization/56273
9143	* tree-vrp.c (simplify_cond_using_ranges): Disable for the
9144	first VRP run.
9145	(check_array_ref): Fix missing newline in dumps.
9146	(search_for_addr_array): Likewise.
9147
91482013-02-09  David Edelsohn  <dje.gcc@gmail.com>
9149
9150	* config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
9151
91522013-02-09  Jakub Jelinek  <jakub@redhat.com>
9153
9154	PR target/56256
9155	* config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
9156
91572013-02-08  Vladimir Makarov  <vmakarov@redhat.com>
9158
9159	PR rtl-optimization/56246
9160	* lra-constraints.c (simplify_operand_subreg): Try to reuse
9161	reload pseudo.
9162	* lra.c (lra): Clear lra_optional_reload_pseudos only when all
9163	constraints are satisfied.
9164
91652013-02-08  Jeff Law  <law@redhat.com>
9166
9167	PR debug/53948
9168	* emit-rtl.c (reg_is_parm_p): New function.
9169	* regs.h (reg_is_parm_p): New prototype.
9170	* ira-conflicts.c (ira_build_conflicts): Allow parameters in
9171	callee-clobbered registers.
9172
91732013-02-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
9174
9175	PR target/56043
9176	* config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
9177	If there is no implicit builtin declaration, just return NULL.
9178
91792013-02-08  Uros Bizjak  <ubizjak@gmail.com>
9180
9181	* config/i386/sse.md (FMAMODEM): New mode iterator.
9182	(fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
9183	mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
9184
91852013-02-08  Uros Bizjak  <ubizjak@gmail.com>
9186
9187	* config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
9188	when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
9189	* config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
9190
91912013-02-08  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
9192
9193	* config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
9194	(microblaze*-*-elf): Likewise.
9195	* config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
9196	LINK_SPEC.
9197	* config/microblaze/microblaze-c.c: Add builtin defines for
9198	_LITTLE_ENDIAN and _BIG_ENDIAN.
9199	* config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
9200	add to TARGET_DEFAULT flags.
9201	Expand ASM_SPEC and LINK_SPEC.
9202	Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
9203	* config/microblaze/microblaze.md: Update extendsidi2 and
9204	movdi_internal instructions to use low-order / high-order reg
9205	print_operands.
9206	* config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
9207	options and inversemask / mask of LITTLE_ENDIAN.
9208	* config/microblaze/t-microblaze: Expand multilib options to
9209	include mlittle-endian (le) and update exceptions patterns.
9210
92112013-02-08  Jakub Jelinek  <jakub@redhat.com>
9212
9213	PR rtl-optimization/56195
9214	* lra-constraints.c (get_reload_reg): Don't reuse regs
9215	if they have smaller mode than requested, if they have
9216	wider mode than requested, try to return a SUBREG.
9217
9218	PR tree-optimization/56250
9219	* fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
9220	if type is unsigned and code isn't MULT_EXPR.
9221
92222013-02-08  Georg-Johann Lay  <avr@gjlay.de>
9223
9224	PR tree-optimization/56064
9225	* fixed-value.c (fixed_from_double_int): Sign/zero extend payload
9226	bits according to mode.
9227	* fixed-value.h (fixed_from_double_int)
9228	(const_fixed_from_double_int): Adjust comments.
9229
92302013-02-08  Richard Biener  <rguenther@suse.de>
9231
9232	PR lto/56231
9233	* lto-streamer.h (struct data_in): Remove current_file, current_line
9234	and current_col members.
9235	* lto-streamer-out.c (lto_output_location): Stream changed bits
9236	en-block for efficiency.
9237	* lto-streamer-in.c (clear_line_info): Remove.
9238	(lto_input_location): Cache current file, line and column
9239	globally via local statics.  Read changed bits en-block.
9240	(input_function): Do not call clear_line_info.
9241	(lto_read_body): Likewise.
9242	(lto_input_toplevel_asms): Likewise.
9243
92442013-02-08  Michael Matz  <matz@suse.de>
9245
9246	PR tree-optimization/52448
9247	* tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
9248	(nt_call_phase): New static.
9249	(add_or_mark_expr): Only mark accesses with newer phase than any
9250	call seen.
9251	(nonfreeing_call_p): New.
9252	(nt_init_block): Update nt_call_phase, mark blocks as visited.
9253	(nt_fini_block): Keep blocks marked as visited.
9254	(get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
9255
92562013-02-08  Richard Biener  <rguenther@suse.de>
9257
9258	* ira.c (ira): Free broken dominator information.
9259
92602013-02-08  Uros Bizjak  <ubizjak@gmail.com>
9261
9262	* config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
9263
92642013-02-08  Marek Polacek  <polacek@redhat.com>
9265
9266	* cfgloop.c (verify_loop_structure): Add more checking of headers.
9267
92682013-02-08  Richard Biener  <rguenther@suse.de>
9269
9270	PR middle-end/56181
9271	* cfgloop.h (flow_loops_find): Adjust.
9272	(bb_loop_header_p): Declare.
9273	* cfgloop.c (bb_loop_header_p): New function split out from ...
9274	(flow_loops_find): ... here.  Adjust function signature,
9275	support incremental loop structure update.
9276	(verify_loop_structure): Cleanup.  Verify a loop is a loop.
9277	* cfgloopmanip.c (fix_loop_structure): Move ...
9278	* loop-init.c (fix_loop_structure): ... here.
9279	(apply_loop_flags): Split out from ...
9280	(loop_optimizer_init): ... here.
9281	(fix_loop_structure): Use apply_loop_flags.  Use flow_loops_find
9282	in incremental mode, only remove dead loops here.
9283
92842013-02-08  Georg-Johann Lay  <avr@gjlay.de>
9285
9286	PR target/54222
9287	* config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
9288	* config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
9289	(round<mode>3, round<mode>3_const): New expanders for fixed-mode.
9290	(*round<mode>3.libgcc): New insns for fixed-modes.
9291	* config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
9292	(ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
9293	(ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
9294	* config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
9295	implementations.  Define to __builtin_avr_absFX,
9296	__builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
9297	(roundFX, countlsFX): Define to __builtin_avr_roundFX,
9298	__builtin_avr_countlsFX, respectively.
9299	* config/avr/avr-c.c (target.h): Include it.
9300	(enum avr_builtin_id): New enum.
9301	(avr_resolve_overloaded_builtin): New static function.
9302	(avr_register_target_pragmas): Use it to set
9303	targetm.resolve_overloaded_builtin.
9304	* config/avr/avr.c (avr_init_builtins): Supply myriads of local
9305	tree nodes used by DEF_BUILTIN.
9306	(avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
9307	(avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
9308	<AVR_BUILTIN_xxBITS>: Same.
9309
93102013-02-08  Richard Biener  <rguenther@suse.de>
9311
9312	* cfgloop.c (verify_loop_structure): Properly handle
9313	a loop exiting to another loop header.
9314	* ira-int.h (ira_loops): Remove.
9315	* ira.c (ira_loops): Remove.
9316	(ira): Use loop_optimizer_init and loop_optimizer_finalize.
9317	(do_reload): Use loop_optimizer_finalize.
9318	* ira-build.c (create_loop_tree_nodes): Use get_loops and
9319	number_of_loops to access the loop tree.
9320	(more_one_region_p): Likewise.
9321	(finish_loop_tree_nodes): Likewise.
9322	(rebuild_regno_allocno_maps): Likewise.
9323	(mark_loops_for_removal): Likewise.
9324	(mark_all_loops_for_removal): Likewise.
9325	(remove_unnecessary_regions): Likewise.
9326	(ira_build): Likewise.
9327	* ira-emit.c (setup_entered_from_non_parent_p): Likewise.
9328
93292013-02-08  Richard Biener  <rguenther@suse.de>
9330
9331	* Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
9332	* ipa-pure-const.c (analyze_function): Avoid calling
9333	mark_irreducible_loops twice.
9334	* tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
9335
93362013-02-07  David S. Miller  <davem@davemloft.net>
9337
9338	* dwarf2out.c (based_loc_descr): Perform leaf register remapping
9339	on 'reg'.
9340	* var-tracking.c (vt_add_function_parameter): Test the presence of
9341	HAVE_window_save properly and do not remap argument registers when
9342	we have a leaf function.
9343
93442013-02-07  Uros Bizjak  <ubizjak@gmail.com>
9345
9346	PR bootstrap/56227
9347	* ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
9348	instead of "ll".
9349	* config/i386/i386.c (ix86_print_operand): Ditto.
9350
93512013-02-07  Vladimir Makarov  <vmakarov@redhat.com>
9352
9353	* lra-constraints.c (process_alt_operands): Fix recently added comment.
9354
93552013-02-07  Vladimir Makarov  <vmakarov@redhat.com>
9356
9357	PR rtl-optimization/56225
9358	* lra-constraints.c (process_alt_operands): Check that reload hard
9359	reg can hold value for strict_low_part.
9360
93612013-02-07  Jakub Jelinek  <jakub@redhat.com>
9362
9363	PR debug/56154
9364	* dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
9365	dwarf2out_end_function.
9366	(in_first_function_p, maybe_at_text_label_p,
9367	first_loclabel_num_not_at_text_label): New variables.
9368	(dwarf2out_var_location): In the first function find out
9369	lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
9370	(find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
9371	functions.
9372
93732013-02-07  Eric Botcazou  <ebotcazou@adacore.com>
9374
9375	PR rtl-optimization/56178
9376	* cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
9377	SUBREG of a register.  Tidy up related block of code.
9378	* fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
9379	note if the source is a register or a SUBREG of a register.
9380
93812013-02-07  Jakub Jelinek  <jakub@redhat.com>
9382
9383	PR target/56228
9384	* config/rs6000/rs6000.md (ptrm): New mode attr.
9385	(call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
9386	call_value_indirect_aix<pttrsize>,
9387	call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
9388	m in constraints.
9389
93902013-02-07  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
9391
9392	* collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
9393	if -bnortl. Convert to strcmp and strncmp.
9394
93952013-02-07  Alan Modra  <amodra@gmail.com>
9396
9397	PR target/54009
9398	* config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
9399	addresses won't wrap when offsetting.
9400	(rs6000_secondary_reload): Provide secondary reloads needed for
9401	wrapping LO_SUM addresses.
9402
94032013-02-06  Thomas Schwinge  <thomas@codesourcery.com>
9404
9405	* config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
9406	MACH, just __MACH__.
9407
94082013-02-06  Richard Biener  <rguenther@suse.de>
9409
9410	* tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
9411	instead of calling fix_loop_structure.
9412
94132013-02-06  Jakub Jelinek  <jakub@redhat.com>
9414
9415	PR middle-end/56217
9416	* omp-low.c (use_pointer_for_field): Return false if
9417	lower_send_shared_vars doesn't generate any copy-out code.
9418
94192013-02-06  Tom de Vries  <tom@codesourcery.com>
9420
9421	PR rtl-optimization/56131
9422	* cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
9423	to get the bb of a NOTE_INSN_BASIC_BLOCK.  Handle the case that the bb
9424	of the label is NULL.  Add comment.
9425
94262013-02-05  Jakub Jelinek  <jakub@redhat.com>
9427
9428	* tree.h (struct tree_decl_with_vis): Remove thread_local field.
9429
9430	PR sanitizer/55374
9431	* config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
9432	(STATIC_LIBTSAN_LIBS): Likewise.
9433	* gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
9434	(LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
9435	is defined, don't add anything else beyond that.
9436	(SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
9437	(LINK_COMMAND_SPEC): Use them.
9438
9439	PR tree-optimization/56205
9440	* tree-stdarg.c (check_all_va_list_escapes): Return true if
9441	there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
9442	and some va_list_escape_vars SSA_NAME appears in some PHI argument.
9443
94442013-02-05  Richard Biener  <rguenther@suse.de>
9445
9446	PR tree-optimization/53342
9447	PR tree-optimization/53185
9448	* tree-vectorizer.h (vect_check_strided_load): Remove.
9449	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
9450	not disallow peeling for vectorized strided loads.
9451	(vect_check_strided_load): Make static and simplify.
9452	(vect_analyze_data_refs): Adjust.
9453	* tree-vect-stmts.c (vectorizable_load): Handle peeled loops
9454	correctly when vectorizing strided loads.
9455
94562013-02-05  Richard Biener  <rguenther@suse.de>
9457
9458	* doc/install.texi: Refer to ISL, not PPL.
9459
94602013-02-05  Jan Hubicka  <jh@suse.cz>
9461
9462	PR tree-optimization/55789
9463	* params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
9464
94652013-02-05  Jan Hubicka  <jh@suse.cz>
9466
9467	PR tree-optimization/55789
9468	* cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
9469	the dead call anyway.
9470
94712013-02-05  Eric Botcazou  <ebotcazou@adacore.com>
9472
9473	PR sanitizer/55374
9474	* config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
9475
94762013-02-04  Alexander Potapenko  <glider@google.com>
9477	    Jack Howarth  <howarth@bromo.med.uc.edu>
9478	    Jakub Jelinek  <jakub@redhat.com>
9479
9480	PR sanitizer/55617
9481	* config/darwin.c (sort_ctor_records): Stabilized qsort
9482	on constructor priority by using original position.
9483	(finalize_ctors): New routine to sort constructors by
9484	priority before use in assemble_integer.
9485	(machopic_asm_out_constructor): Use finalize_ctors if needed.
9486
94872013-02-04  Jakub Jelinek  <jakub@redhat.com>
9488
9489	PR libstdc++/54314
9490	* config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
9491	about visibility on artificial decls.
9492	* config/sol2.c (solaris_assemble_visibility): Likewise.
9493
94942013-02-04  Kai Tietz  <ktietz@redhat.com>
9495
9496	PR target/56186
9497	* config/i386/i386.c (function_value_ms_64): Add additional valtype
9498	argument and improve checking of return-argument types for 16-byte
9499	modes.
9500	(ix86_function_value_1): Add additional valtype argument on call
9501	of function_value_64.
9502	(return_in_memory_ms_64): Sync 16-byte sized mode handling with
9503	handling infunction_value_64 function.
9504
95052013-02-04  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
9506
9507	* reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
9508
95092013-02-04  Richard Biener  <rguenther@suse.de>
9510
9511	PR tree-optimization/56188
9512	* tree-ssa-structalias.c (label_visit): Consider case with
9513	initially non-empty points-to set.
9514	(perform_var_substitution): Dump node mapping and clean up.
9515
95162013-02-04  Richard Guenther  <rguenther@suse.de>
9517
9518	PR lto/56168
9519	* lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
9520	node prevail as last resort.
9521	(lto_symtab_merge_decls): Remove guard on LTRANS here.
9522	(lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
9523
95242013-02-04  Richard Biener  <rguenther@suse.de>
9525
9526	PR tree-optimization/56113
9527	* tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
9528	Merge into ...
9529	(equiv_class_lookup_or_add): ... this.
9530	(label_visit): Adjust and fix error in previous patch.
9531	(perform_var_substitution): Adjust.
9532
95332013-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
9534
9535	* config/sh/divtab.c: Fix formatting and comments throughout the file.
9536	* config/sh/sh4-300.md: Likewise.
9537	* config/sh/sh4a.md: Likewise.
9538	* config/sh/constraints.md: Likewise.
9539	* config/sh/sh.md: Likewise.
9540	* config/sh/netbsd-elf.h: Likewise.
9541	* config/sh/predicates.md: Likewise.
9542	* config/sh/sh-protos.h: Likewise.
9543	* config/sh/ushmedia.h: Likewise.
9544	* config/sh/linux.h: Likewise.
9545	* config/sh/sh.c: Likewise.
9546	* config/sh/superh.h: Likewise.
9547	* config/sh/elf.h: Likewise.
9548	* config/sh/sh4.md: Likewise.
9549	* config/sh/sh.h: Likewise.
9550
95512013-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9552
9553	* config/pa/constraints.md: Adjust unused letters.  Change "T"
9554	constraint to match_test floating_point_store_memory_operand().
9555	* config/pa/predicates.md (reg_plus_base_memory_operand): New.
9556	(base14_operand): New.
9557	(floating_point_store_memory_operand): New.
9558	(integer_store_memory_operand): Revise to use base14_operand and
9559	reg_plus_base_memory_operand.
9560	(move_dest_operand): Allow symbolic_memory_operands.
9561	(symbolic_memory_operand): Check for LO_SOM.
9562	(symbolic_operand): Change default case to break.
9563	* config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
9564	CONST_DOUBLE values to be reloaded by putting them into memory when
9565	the destination is a floating point register.
9566	(movdf): Remove code to handle CONST_DOUBLE.
9567	(movsf): Likewise.
9568	(reload_indf_r1): New.
9569	(reload_insf_r1): New.
9570	Consistently use "Q" and "T" constraints with integer and floating
9571	point move instructions, respectively.
9572	(movdi): Remove FAIL.
9573	Change predicate for source operand unamed DImode move from
9574	general_operand to move_src_operand.
9575	(umulsidi3): Change predicate for destination operand to
9576	register_operand.
9577	Likewise for similar unamed patterns.
9578	* config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
9579	* config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
9580	(hppa_legitimize_address): Simplify mask calculation.
9581	(pa_emit_move_sequence): Revised handling of secondary reloads from
9582	REG+D addresses for floating point loads and stores.  Directly handle
9583	loading CONST0_RTX (mode) to a floating point register.
9584	(pa_secondary_reload): Handle reloading DF and SFmode constant values
9585	to floating point registers.  Don't restrict secondary reloads to
9586	floating point registers to integer modes.  Revise some comments and
9587	cleanup some code.
9588	(TARGET_LEGITIMATE_ADDRESS_P): Define.
9589	(pa_legitimate_address_p): New.
9590	(pa_legitimize_reload_address): New.
9591	* config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
9592	(STRICT_REG_OK_FOR_BASE_P): New.
9593	(GO_IF_LEGITIMATE_ADDRESS): Delete.  Update some related comments.
9594	(LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
9595
95962013-02-03  David Edelsohn  <dje.gcc@gmail.com>
9597	    Andrew Dixie  <andrewd@gentrack.com>
9598
9599	* collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
9600	flag set.
9601
96022013-02-03  Richard Sandiford  <rdsandiford@googlemail.com>
9603
9604	* expmed.c (extract_bit_field_1): Pass the full width of the
9605	structure to get_best_reg_extraction_insn.
9606
96072013-02-01  David Edelsohn  <dje.gcc@gmail.com>
9608
9609	PR target/54601
9610	* configure.ac (use_cxa_atexit): Add AIX.
9611	* configure: Regenerate.
9612
9613	* config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
9614
96152013-02-01  Jakub Jelinek  <jakub@redhat.com>
9616
9617	PR debug/54793
9618	* final.c (need_profile_function): New variable.
9619	(final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
9620	If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
9621	is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
9622	notes, targetm.asm_out.function_prologue doesn't emit anything,
9623	HAVE_prologue and profiler should be emitted before prologue,
9624	set need_profile_function instead of emitting it.
9625	(final_scan_insn): If need_profile_function, emit
9626	profile_function on the first NOTE_INSN_BASIC_BLOCK or
9627	NOTE_INSN_FUNCTION_BEG note.
9628
96292013-02-01  Richard Henderson  <rth@redhat.com>
9630
9631	* config/rs6000/rs6000.md (smulditi3): New.
9632	(umulditi3): New.
9633
9634	* config/alpha/alpha.md (umulditi3): New.
9635
96362013-02-01  David Edelsohn  <dje.gcc@gmail.com>
9637
9638	* config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
9639	(ASM_OUTPUT_ALIGNED_LOCAL): New.
9640
96412013-02-01  Richard Biener  <rguenther@suse.de>
9642
9643	PR tree-optimization/56113
9644	* tree-ssa-structalias.c (label_visit): Reduce work for
9645	single-predecessor nodes.
9646
96472013-02-01  Eric Botcazou  <ebotcazou@adacore.com>
9648
9649	* fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
9650	range isn't testing for zero.
9651
96522013-01-31  Steven Bosscher  <steven@gcc.gnu.org>
9653
9654	PR middle-end/56113
9655	* fwprop.c (fwprop_init): Set up loops without CFG modifications.
9656
96572013-01-31  Hiroyuki Ono  <hiroyuki.ono.jc@renesas.com>
9658	    Nick Clifton  <nickc@redhat.com>
9659
9660	* config/v850/constraints.md (Q): Define as a memory constraint.
9661	* config/v850/predicates.md (label_ref_operand): New predicate.
9662	(e3v5_shift_operand): New predicate.
9663	(ior_operator): New predicate.
9664	* config/v850/t-v850: Add e3v5 multilib.
9665	* config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
9666	(v850_gen_movdi): Prototype.
9667	* config/v850/v850.c: Add support for e3v5 architecture.
9668	Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
9669	TARGET_V850E_UP.
9670	(construct_save_jarl): Add e3v5 long JARL support.
9671	(v850_adjust_insn_length): New function.  Adjust length of call
9672	insns when using e3v5 instructions.
9673	(v850_gen_movdi): New function: Generate instructions to move a
9674	DImode value.
9675	* config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
9676	(CPP_SPEC): Define __v850e3v5__ as appropriate.
9677	(TARGET_USE_FPU): Enable for e3v5.
9678	(CONST_OK_FOR_W): New macro.
9679	(ADJUST_INSN_LENGTH): Define.
9680	* config/v850/v850.md (UNSPEC_LOOP): Define.
9681	(attr cpu): Add v850e3v5.
9682	Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
9683	(movdi): New pattern.
9684	(movdi_internal): New pattern.
9685	(cbranchsf4): Conditionalize on TARGET_USE_FPU.
9686	(cbranchdf4): Conditionalize on TARGET_USE_FPU.
9687	(cstoresf4): Likewise.
9688	(cstoredf4): Likewise.
9689	(insv): New pattern.
9690	(rotlso3_a): New pattern.
9691	(rotlsi3_b): New pattern
9692	(rotlsi3_v850e3v5): New pattern.
9693	(doloop_begin): New pattern.
9694	(fix_loop_counter): New pattern.
9695	(doloop_end): New pattern.
9696	(branch_normal): Add e3v5 long branch support.
9697	(branch_invert): Likewise.
9698	(branch_z_normal): Likewise.
9699	(branch_z_invert): Likewise.
9700	(branch_nz_normal): Likewise.
9701	(branch_nz_invert): Likewise.
9702	(call_internal_short): Add e3v5 register-indirect JARL support.
9703	(call_internal_long): Likewise.
9704	(call_value_internal_short): Likewise.
9705	(call_value_internal_long): Likewise.
9706	* config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
9707	(mloop): New option.
9708	* config.gcc: Add support for configuring v840e3v5 target.
9709	* doc/invoke.texi: Document new v850 specific command line options.
9710
97112013-01-31  Paul Koning  <ni1d@arrl.net>
9712
9713	PR debug/55059
9714	PR debug/54508
9715	* dwarf2out.c (prune_unused_types_mark): Mark all of parent's
9716	children if parent is a class.
9717	(prune_unused_types_prune): Don't add DW_AT_declaration.
9718
97192013-01-31  Richard Biener  <rguenther@suse.de>
9720
9721	PR tree-optimization/56157
9722	* tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
9723	match up operand with SLP child.
9724
97252013-01-31  Jason Merrill  <jason@redhat.com>
9726
9727	PR debug/54410
9728	* dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
9729	parameters the first time.
9730	(gen_scheduled_generic_parms_dies): Check completeness here.
9731
97322013-01-31  Richard Biener  <rguenther@suse.de>
9733
9734	PR middle-end/53073
9735	* common.opt (faggressive-loop-optimizations): New flag,
9736	enabled by default.
9737	* doc/invoke.texi (faggressive-loop-optimizations): Document.
9738	* tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
9739	infer_loop_bounds_from_undefined by it.
9740
97412013-01-31  Richard Biener  <rguenther@suse.de>
9742
9743	PR tree-optimization/56150
9744	* tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
9745	visit virtual operands.
9746	(find_uses_to_rename_bb): Likewise.
9747
97482013-01-31  Richard Biener  <rguenther@suse.de>
9749
9750	PR tree-optimization/56150
9751	* tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
9752	mixed store non-store stmts.
9753
97542013-01-30  Jakub Jelinek  <jakub@redhat.com>
9755
9756	PR sanitizer/55374
9757	* gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
9758	LIBASAN_EARLY_SPEC is defined.
9759	(LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
9760	(LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
9761	before %o.
9762	* config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
9763
9764	PR c++/55742
9765	* config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
9766	invalid args instead of ICEing on it.
9767	(ix86_valid_target_attribute_tree): Return error_mark_node if
9768	ix86_valid_target_attribute_inner_p failed.
9769	(ix86_valid_target_attribute_p): Return false only if
9770	ix86_valid_target_attribute_tree returned error_mark_node.  Allow
9771	target("default") attribute.
9772	(sorted_attr_string): Change argument from const char * to tree,
9773	merge in all target attribute arguments rather than just one.
9774	Formatting fix.  Use XNEWVEC instead of xmalloc and XDELETEVEC
9775	instead of free.  Avoid using strcat.
9776	(ix86_mangle_function_version_assembler_name): Mangle
9777	target("default") as if no target attribute is present.  Adjust
9778	sorted_attr_string caller.  Avoid leaking memory.  Use XNEWVEC
9779	instead of xmalloc and XDELETEVEC instead of free.
9780	(ix86_function_versions): Don't return true if one of the decls
9781	doesn't have target attribute.  If they don't and one of the decls
9782	is DECL_FUNCTION_VERSIONED, report an error.  Adjust
9783	sorted_attr_string caller.  Use XDELETEVEC instead of free.
9784	(ix86_supports_function_versions): Remove.
9785	(make_name): Fix up formatting.
9786	(make_dispatcher_decl): Remove resolver_name and its initialization.
9787	Avoid leaking memory.
9788	(is_function_default_version): Return true if there is
9789	target("default") attribute rather than no target attribute at all.
9790	(make_resolver_func): Avoid leaking memory.
9791	(ix86_generate_version_dispatcher_body): Likewise.
9792	(TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
9793	* target.def (supports_function_versions): Remove.
9794	* doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
9795	* doc/tm.texi: Regenerated.
9796
97972013-01-30  Vladimir Makarov  <vmakarov@redhat.com>
9798
9799	PR rtl-optimization/56144
9800	* lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
9801	for values with side effects.
9802
98032013-01-30  Richard Biener  <rguenther@suse.de>
9804
9805	* sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
9806	(sparseset_pop): Likewise.
9807	* cfganal.c (compute_idf): Likewise.  Increase work-stack size
9808	to be able to use quick_push in the worker loop.
9809
98102013-01-30  Marek Polacek  <polacek@redhat.com>
9811
9812	* cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
9813
98142013-01-30  Richard Biener  <rguenther@suse.de>
9815
9816	PR lto/56147
9817	* lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
9818
98192013-01-30  Georg-Johann Lay  <avr@gjlay.de>
9820
9821	PR tree-optimization/56064
9822	* fixed-value.c (fixed_from_double_int): New function.
9823	* fixed-value.h (fixed_from_double_int): New prototype.
9824	(const_fixed_from_double_int): New static inline function.
9825	* fold-const.c (native_interpret_fixed): New static function.
9826	(native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
9827	(can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
9828	(native_encode_fixed): New static function.
9829	(native_encode_expr) <FIXED_CST>: Use it.
9830	(native_interpret_int): Move double_int worker code to...
9831	* double-int.c (double_int::from_buffer): ...this new static method.
9832	* double-int.h (double_int::from_buffer): Prototype it.
9833
98342013-01-30  Richard Biener  <rguenther@suse.de>
9835
9836	* tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
9837	New pointer-map and obstack.
9838	(init_alias_vars): Allocate pointer-map and obstack.
9839	(delete_points_to_sets): Free them.
9840	(find_what_var_points_to): Cache result.
9841	(find_what_p_points_to): Adjust for changed interface of
9842	find_what_var_points_to.
9843	(compute_points_to_sets): Likewise.
9844	(ipa_pta_execute): Likewise.
9845
98462013-01-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9847
9848	* configure.ac (HAVE_AS_SPARC_NOBITS): New test.
9849	* configure: Regenerate.
9850	* config.in: Regenerate.
9851	* config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
9852	#nobits/#progbits if supported.
9853
98542013-01-29  Oleg Endo  <olegendo@gcc.gnu.org>
9855
9856	PR target/56121
9857	* config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
9858	bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
9859	bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
9860
98612013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
9862
9863	* config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
9864	(cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
9865
98662013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
9867
9868	* config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
9869	* config/arm/cortex-a7.md (cortex_a7_call): Update required units.
9870
98712013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
9872
9873	* config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
9874	declaration.
9875	* config/arm/arm.c (arm_mac_accumulator_is_result): New function.
9876	* config/arm/cortex-a7.md: New bypasses using
9877	arm_mac_accumulator_is_result.
9878
98792013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
9880
9881	* config/arm/cortex-a7.md (cortex_a7_neon_mul):  New reservation.
9882	(cortex_a7_neon_mla): Likewise.
9883	(cortex_a7_fpfmad): New reservation.
9884	(cortex_a7_fpmacs): Use ffmas and update required units.
9885	(cortex_a7_fpmuld): Update required units and latency.
9886	(cortex_a7_fpmacd): Likewise.
9887	(cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
9888	(cortex_a7_neon). Likewise.
9889	(bypass) Update participating units.
9890
98912013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
9892
9893	* config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
9894	* config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
9895	from fmac to ffma.
9896	* config/arm/vfp11.md (vfp_farith): Use ffmas.
9897	(vfp_fmul): Use ffmad.
9898	* config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
9899	(cortex_r4_fmacd): Use ffmad.
9900	* config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
9901	* config/arm/cortex-a9.md (cortex_a9_fmacs):  Use ffmas.
9902	(cortex_a9_fmacd): Use ffmad.
9903	* config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
9904	(cortex_a8_vfp_macd): Use ffmad.
9905	* config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
9906	(cortex_a5_fpmacd): Use ffmad.
9907	* config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
9908	(cortex_a15_vfp_macd): Use ffmad.
9909	* config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
9910
99112013-01-29  Jason Merrill  <jason@redhat.com>
9912
9913	PR libstdc++/54314
9914	* varasm.c (default_assemble_visibility): Don't warn about
9915	visibility on artificial decls.
9916
99172013-01-29  Richard Biener  <rguenther@suse.de>
9918
9919	PR tree-optimization/56113
9920	* tree-ssa-structalias.c (equiv_class_lookup): Also return
9921	the bitmap leader.
9922	(label_visit): Free duplicate bitmaps and record the leader instead.
9923	(perform_var_substitution): Adjust.
9924
99252013-01-29  Richard Biener  <rguenther@suse.de>
9926
9927	PR tree-optimization/55270
9928	* tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
9929	the CFG, schedule loops for fixup.
9930
99312013-01-29  Nick Clifton  <nickc@redhat.com>
9932
9933	* config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
9934	SP_REG.
9935
99362013-01-28  Leif Ekblad  <leif@rdos.net>
9937
9938	* config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
9939	* config/i386/i386.h (TARGET_RDOS): New macro.
9940	(DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
9941	* config/i386/i386.c (ix86_option_override_internal): For 64bit
9942	TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
9943	* config/i386/i386.opt (mlarge-data-threshold): Initialize to
9944	DEFAULT_LARGE_SECTION_THRESHOLD.
9945	* config/i386/i386.md (R14_REG, R15_REG): New constants.
9946	* config/i386/rdos.h: New file.
9947	* config/i386/rdos64.h: New file.
9948
99492013-01-28  Bernd Schmidt  <bernds@codesourcery.com>
9950
9951	PR other/54814
9952	* reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
9953	TEST_HARD_REG_BIT.
9954
99552013-01-28  Jakub Jelinek  <jakub@redhat.com>
9956
9957	PR rtl-optimization/56117
9958	* sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
9959	call cselib_lookup_from_insn on the MEM before calling
9960	add_insn_mem_dependence.
9961
99622013-01-28  Richard Biener  <rguenther@suse.de>
9963
9964	* tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
9965	to a stmt that didn't have one.
9966	(copy_phis_for_bb): Likewise for PHI arguments.
9967	(copy_debug_stmt): Likewise for debug stmts.
9968
99692013-01-28  Richard Biener  <rguenther@suse.de>
9970
9971	PR tree-optimization/56034
9972	* tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
9973	(partition_builtin_p): Adjust.
9974	(generate_code_for_partition): Handle PKIND_REDUCTION.  Assert
9975	it is the last partition.
9976	(rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
9977	up the vertex for the definition.
9978	(classify_partition): Classify whether a partition is a
9979	PKIND_REDUCTION, thus has uses outside of the loop.
9980	(ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
9981	Merge all PKIND_REDUCTION partitions into the last partition.
9982	(tree_loop_distribution): Seed partitions from reductions as well.
9983
99842013-01-28  Jakub Jelinek  <jakub@redhat.com>
9985
9986	PR tree-optimization/56125
9987	* tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
9988	pow(x,c) into sqrt(x) * powi(x, n/2) or
9989	1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
9990	optimizing for size.
9991	Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
9992	1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
9993	integer.
9994
9995	PR tree-optimization/56094
9996	* gimplify.c (force_gimple_operand_1): Temporarily set input_location
9997	to UNKNOWN_LOCATION while gimplifying expr.
9998
99992013-01-27  Uros Bizjak  <ubizjak@gmail.com>
10000
10001	PR target/56114
10002	* config/i386/i386.md (*movabs<mode>_1): Add square brackets around
10003	operand 0 in movabs insn template for -masm=intel asm alternative.
10004	(*movabs<mode>_2): Ditto for operand 1.
10005
100062013-01-26  David Holsgrove  <david.holsgrove@xilinx.com>
10007
10008	PR target/54663
10009	* config.gcc (microblaze*-linux*): Add tmake_file to allow building
10010	of microblaze-c.o
10011
100122013-01-26  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
10013
10014	* config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
10015	tm_file.
10016
100172013-01-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
10018
10019	* config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
10020	Undef to avoid warning.
10021
100222013-01-25  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
10023
10024	* configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
10025	* configure: Regenerate.
10026
100272013-01-25  Jakub Jelinek  <jakub@redhat.com>
10028
10029	PR tree-optimization/56098
10030	* tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
10031	for stmts with volatile ops.
10032	(cond_store_replacement): Don't optimize if assign has volatile ops.
10033	(cond_if_else_store_replacement_1): Don't optimize if either
10034	then_assign or else_assign have volatile ops.
10035	(hoist_adjacent_loads): Don't optimize if either def1 or def2 have
10036	volatile ops.
10037
100382013-01-25  Georg-Johann Lay  <avr@gjlay.de>
10039
10040	* doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
10041
100422013-01-25  Georg-Johann Lay  <avr@gjlay.de>
10043
10044	* doc/extend.texi (Example of asm with clobbered asm reg): Fix
10045	missing ':' in asm example.
10046
100472013-01-25  Tejas Belagod  <tejas.belagod@arm.com>
10048
10049	* config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
10050	entries into lane and laneq entries.
10051	* config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
10052	Remove AdvSIMD scalar modes.
10053	(aarch64_sq<r>dmulh_laneq<mode>): New.
10054	(aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
10055	modes.
10056	* config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
10057	builtin implementations to relfect changes in RTL in aarch64-simd.md.
10058	* config/aarch64/iterators.md (VCOND): New.
10059	(VCONQ): New.
10060
100612013-01-25  Georg-Johann Lay  <avr@gjlay.de>
10062
10063	PR target/54222
10064	* config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
10065	Add NULL LIBNAME argument to existing definitions.
10066	(ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
10067	* config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
10068	* config/avr/avr.c (DEF_BUILTIN): Same.
10069	(avr_init_builtins): Pass down LIBNAME to add_builtin_function.
10070	(avr_expand_builtin): Expand to a vanilla call if a libgcc
10071	implementation is available (DECL_ASSEMBLER_NAME is set).
10072	(avr_fold_absfx): New static function.
10073	(avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
10074	AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
10075	AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
10076	AVR_BUILTIN_ABSLLK.
10077	* config/avr/stdfix.h (abshr, absr, abslr, absllr)
10078	(abshk, absk, abslk, absllk): Provide as static inline functions.
10079
100802013-01-25  Marek Polacek  <polacek@redhat.com>
10081
10082	PR tree-optimization/56035
10083	* cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
10084
100852012-01-24  Uros Bizjak  <ubizjak@gmail.com>
10086
10087	* config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
10088	(*movtf_internal_rex64): Add (!o,C) alternative
10089	(*movxf_internal_rex64): Ditto.
10090	(*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
10091
100922013-01-24  Shenghou Ma  <minux.ma@gmail.com>
10093
10094	* doc/invoke.texi: fix typo.
10095	* doc/objc.texi: fix typo.
10096
100972013-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
10098
10099	* config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
10100	for the first two alternatives.
10101
101022013-01-24  Diego Novillo  <dnovillo@google.com>
10103
10104	* Makefile.in (GGC): Remove.  Replace all instances with ggc-page.o.
10105	(ggc-zone.o): Remove.
10106	* configure.ac: Remove option --with-gc.
10107	* configure: Re-generate.
10108	* doc/install.texi: Remove documentation for --with-gc.
10109	* gengtype.c (write_enum_defn): Remove.  Update all users.
10110	(write_Types_process_field): Remove generation of gt_e_* argument.
10111	(output_type_enum): Remove.  Update all users.
10112	(write_enum_defn): Remove.  Update all users.
10113	(enum alloc_zone): Remove.  Update all users.
10114	(write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
10115	* ggc-common.c (ggc_splay_alloc): Remove first argument.
10116	Update all callers.
10117	(struct ptr_data): Remove field TYPE.  Update all users.
10118	(gt_pch_note_object): Remove argument TYPE.  Update all users.
10119	* ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
10120	Update all users.
10121	* ggc-none.c (ggc_alloc_typed_stat): Remove.
10122	(struct alloc_zone): Remove.
10123	(ggc_internal_alloc_zone_stat): Remove.
10124	(ggc_internal_cleared_alloc_zone_stat): Remove.
10125	* ggc-page.c (ggc_alloc_typed_stat): Remove.
10126	(ggc_pch_count_object): Remove last argument.  Update all users.
10127	(ggc_pch_alloc_object): Remove last argument.  Update all users.
10128	(struct alloc_zone): Remove.
10129	* ggc-zone.c: Remove.
10130	* ggc.h (gt_pch_note_object): Remove last argument.  Update all users.
10131	(struct alloc_zone): Remove.
10132	(ggc_alloc_typed_stat): Remove.
10133	(ggc_alloc_typed): Remove.
10134	(ggc_splay_alloc): Remove first argument.
10135	(rtl_zone): Remove.  Update all users.
10136	(tree_zone): Remove.  Update all users.
10137	(tree_id_zone): Remove.  Update all users.
10138	(ggc_internal_zone_alloc_stat): Remove.  Update all users.
10139	(ggc_internal_zone_cleared_alloc_stat): Remove.  Update all users.
10140	(ggc_internal_zone_vec_alloc_stat): Remove.  Update all users.
10141	* tree-ssanames.c: Remove references to zone allocator in comments.
10142
101432013-01-24  Georg-Johann Lay  <avr@gjlay.de>
10144
10145	* config/avr/avr.c (avr_out_fract): Make register numbers that
10146	might be outside of source operand signed.
10147
101482013-01-24  Uros Bizjak  <ubizjak@gmail.com>
10149
10150	* config/i386/constraints.md (Yf): New constraint.
10151	* config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
10152	of f constraint to conditionaly disable x87 register preferences.
10153	(*movdf_internal): Ditto.
10154	(*movsf_internal): Ditto.
10155
101562013-01-24  Steven Bosscher  <steven@gcc.gnu.org>
10157
10158	PR inline-asm/55934
10159	* lra-assigns.c (assign_by_spills): Throw away the pattern of asms
10160	that have operands with impossible constraints.
10161	Add a FIXME for a speed-up opportunity.
10162	* lra-constraints.c (process_alt_operands): Verify that a class
10163	selected from constraints on asms is valid for the operand mode.
10164	(curr_insn_transform): Remove incorrect comment.
10165
101662013-01-23  David Edelsohn  <dje.gcc@gmail.com>
10167
10168	* config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
10169	TOC operand is a valid symbol ref in the constant pool.
10170
101712013-01-23  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
10172
10173	* config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
10174
101752013-01-23  Georg-Johann Lay  <avr@gjlay.de>
10176
10177	PR target/54222
10178	* config/avr/stdfix.h: New file.
10179	* t-avr (stdfix-gcc.h): New rule to build it.
10180	(EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
10181
101822013-01-23  Kostya Serebryany  <kcc@google.com>
10183
10184	* config/darwin.h: remove dependency on
10185	CoreFoundation (asan on Mac OS).
10186
101872013-01-23  Jakub Jelinek  <jakub@redhat.com>
10188
10189	PR target/49069
10190	* config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
10191	instead of cmpdi_operand for first comparison operand.
10192	Don't assert that comparison operands aren't both constants.
10193
101942013-01-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
10195
10196	* doc/install.texi (Downloading the Source): Update references to
10197	downloading separate components.
10198
101992013-01-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
10200
10201	* doc/extend.texi (__int128): Improve grammar.
10202
102032013-01-22  Uros Bizjak  <ubizjak@gmail.com>
10204
10205	PR target/56028
10206	* config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
10207	alternative to (o,r).
10208	(*movdi_internal_rex64): Remove (!o,n) alternative.
10209	(DImode immediate->memory splitter): Remove.
10210	(DImode immediate->memory peephole2): Remove.
10211	(movtf): Enable for TARGET_64BIT || TARGET_SSE.
10212	(*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
10213	alternative to (!o,*r).
10214	(*movtf_internal_sse): New pattern.
10215	(*movxf_internal_rex64): New pattern.
10216	(*movxf_internal): Disable for TARGET_64BIT.
10217	(*movdf_internal_rex64): Remove (!o,F) alternative.
10218
102192013-01-22  Jakub Jelinek  <jakub@redhat.com>
10220
10221	PR middle-end/56074
10222	* dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
10223	isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
10224	* tree-vect-loop-manip.c (find_loop_location): Also ignore
10225	stmt locations where LOCATION_LOCUS of the stmt location is
10226	UNKNOWN_LOCATION or BUILTINS_LOCATION.
10227
10228	PR target/55686
10229	* config/i386/i386.md (UNSPEC_STOS): New.
10230	(strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
10231	*strsetqi_1): Add UNSPEC_STOS.
10232
102332013-01-22  Paolo Carlini  <paolo.carlini@oracle.com>
10234
10235	PR c++/56067
10236	* doc/invoke.texi: Remove left over -Wsynth example.
10237
102382013-01-21  Jakub Jelinek  <jakub@redhat.com>
10239
10240	PR tree-optimization/56051
10241	* fold-const.c (fold_binary_loc): Don't fold
10242	X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
10243	a narrowing conversion, or widening conversion from signed
10244	to unsigned.
10245
102462013-01-21  Uros Bizjak  <ubizjak@gmail.com>
10247
10248	PR rtl-optimization/56023
10249	* haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
10250	dependent on debug instruction.
10251
102522013-01-21  Martin Jambor  <mjambor@suse.cz>
10253
10254	PR middle-end/56022
10255	* function.c (allocate_struct_function): Call
10256	invoke_set_current_function_hook earlier.
10257
102582013-01-21  Jakub Jelinek  <jakub@redhat.com>
10259
10260	* reload1.c (init_reload): Only initialize reload_obstack
10261	during the first call.
10262
102632013-01-21  Marek Polacek  <polacek@redhat.com>
10264
10265	* cfgloop.c (verify_loop_structure): Fix up grammar.
10266
102672013-01-21  Yi-Hsiu Hsu  <ahsu@marvell.com>
10268
10269	* config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
10270	pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
10271
102722013-01-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10273
10274	PR target/56058
10275	* config/arm/marvell-pj4.md: Update copyright year.
10276	Fix up use of alu to alu_reg and simple_alu_imm.
10277
102782013-01-21  Uros Bizjak  <ubizjak@gmail.com>
10279
10280	* config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
10281
102822013-01-20  Vladimir Makarov  <vmakarov@redhat.com>
10283
10284	PR target/55433
10285	* lra-constraints.c (curr_insn_transform): Don't reuse original
10286	insn for secondary memory move when memory mode should be different.
10287
102882013-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10289
10290	* config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
10291	atomic_storedi_1): New patterns.
10292
102932013-01-20  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
10294
10295	btver2 pipeline descriptions.
10296	* config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
10297	descriptions.
10298	* config/i386/i386.md (btver2_decode): New type attributes.
10299	* config/i386/sse.md (btver2_decode, btver2_sse_attr): New
10300	type attributes.
10301	* config/i386/btver2.md: New file describing btver2 pipelines.
10302
103032013-01-19  Andrew Pinski  <apinski@cavium.com>
10304
10305	PR tree-optimization/52631
10306	* tree-ssa-sccvn (visit_use): Before looking up the original
10307	statement, try looking up the simplified expression.
10308
103092013-01-19  Anthony Green  <green@moxielogic.com>
10310
10311	* config/moxie/moxie.c (moxie_expand_prologue): Set
10312	current_function_static_stack_size.
10313
103142013-01-18  Jakub Jelinek  <jakub@redhat.com>
10315
10316	PR tree-optimization/56029
10317	* tree-phinodes.c (reserve_phi_args_for_new_edge): Set
10318	gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
10319
103202013-01-18  Sharad Singhai  <singhai@google.com>
10321
10322	PR tree-optimization/55995
10323	* dumpfile.c (dump_loc): Print location only if available.
10324	* tree-vectorizer.c (increase_alignment): Intialize vect_location.
10325
103262013-01-18  Vladimir Makarov  <vmakarov@redhat.com>
10327
10328	PR target/55433
10329	* lra-constraints.c (curr_insn_transform): Reuse original insn for
10330	secondary memory move.
10331	(inherit_reload_reg): Use rclass instead of cl for
10332	check_secondary_memory_needed_p.
10333
103342013-01-18  Jakub Jelinek  <jakub@redhat.com>
10335
10336	PR middle-end/56015
10337	* expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
10338	the case where writing real complex part of target modifies op1.
10339
103402013-01-18  James Greenhalgh  <james.greenhalgh@arm.com>
10341
10342	* config/aarch64/aarch64-simd.md
10343	(aarch64_vcond_internal<mode>): Handle unordered cases.
10344	* config/aarch64/iterators.md (v_cmp_result): New.
10345
103462013-01-18  Yi-Hsiu Hsu  <ahsu@marvell.com>
10347	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10348
10349	* config/arm/marvell-pj4.md: New file.
10350	* config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
10351	* config/arm/arm.md (generic_sched): Add marvell_pj4.
10352	(generic_vfp): Likewise.
10353	* config/arm/arm-cores.def: Add marvell-pj4.
10354	* config/arm/arm-tune.md: Regenerate.
10355	* config/arm/arm-tables.opt: Regenerate.
10356	* config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
10357	* doc/invoke.texi: Document marvell-pj4.
10358
103592013-01-18  Tejas Belagod  <tejas.belagod@arm.com>
10360
10361	* config/aarch64/arm_neon.h: Map scalar types to standard types.
10362
103632013-01-18  Alexandre Oliva  <aoliva@redhat.com>
10364
10365	PR debug/54114
10366	PR debug/54402
10367	PR debug/49888
10368	* var-tracking.c (negative_power_of_two_p): New.
10369	(global_get_addr_cache, local_get_addr_cache): New.
10370	(get_addr_from_global_cache, get_addr_from_local_cache): New.
10371	(vt_canonicalize_addr): Rewrite using the above.  Adjust the
10372	heading comment.
10373	(vt_stack_offset_p): Remove.
10374	(vt_canon_true_dep): Always canonicalize loc's address.
10375	(clobber_overlapping_mems): Make sure we have a MEM.
10376	(local_get_addr_clear_given_value): New.
10377	(val_reset): Clear local cached entries.
10378	(compute_bb_dataflow): Create and release the local cache.
10379	Disable duplicate MEMs clobbering.
10380	(emit_notes_in_bb): Clobber MEMs likewise.
10381	(vt_emit_notes): Create and release the local cache.
10382	(vt_initialize, vt_finalize): Create and release the global
10383	cache, respectively.
10384	* alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
10385
103862013-01-18  Alexandre Oliva  <aoliva@redhat.com>
10387
10388	PR libmudflap/53359
10389	* tree-mudflap.c (mudflap_finish_file): Skip deferred decls
10390	not found in the symtab.
10391
103922013-01-18  Alexandre Oliva  <aoliva@redhat.com>
10393
10394	PR debug/56006
10395	PR rtl-optimization/55547
10396	PR rtl-optimization/53827
10397	PR debug/53671
10398	PR debug/49888
10399	* alias.c (offset_overlap_p): New, factored out of...
10400	(memrefs_conflict_p): ... this.  Use absolute sizes.  Retain
10401	the conservative special case for symbolic constants.  Don't
10402	adjust zero sizes on alignment.
10403
104042013-01-18  Bernd Schmidt  <bernds@codesourcery.com>
10405
10406	PR rtl-optimization/52573
10407	* regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
10408	REG_UNUSED for the same register.
10409
104102013-01-17  Richard Biener  <rguenther@suse.de>
10411	    Marek Polacek  <polacek@redhat.com>
10412
10413	PR rtl-optimization/55833
10414	* loop-unswitch.c (unswitch_loops): Move loop verification...
10415	(unswitch_single_loop): ...here.  Call mark_irreducible_loops.
10416	* cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
10417	Set it to true when we're removing a loop from hierarchy tree in
10418	an irreducible region.
10419	(fix_bb_placements): Adjust caller.
10420	(fix_loop_placements): Likewise.
10421
104222013-01-17  Georg-Johann Lay  <avr@gjlay.de>
10423
10424	* config/avr/builtins.def (DEF_BUILTIN): Factor out
10425	"__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
10426	Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
10427	Remove ID.  Adjust comments.
10428	* config/avr/avr-c.c (avr_builtin_name): Remove.
10429	(avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
10430	* config/avr/avr.c (avr_tolower): New static function.
10431	(DEF_BUILTIN): Remove parameter ID.  Prefix ICODE by 'CODE_FOR_'.
10432	Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
10433	(avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
10434	default expansion.
10435
104362013-01-17  Jan Hubicka  <jh@suse.cz>
10437
10438	PR tree-optimization/55273
10439	* loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
10440
104412013-01-17  Uros Bizjak  <ubizjak@gmail.com>
10442
10443	PR target/55981
10444	* config/i386/sync.md (atomic_store<mode>): Always generate SWImode
10445	store through atomic_store<mode>_1.
10446	(atomic_store<mode>_1): Macroize insn using SWI mode iterator.
10447
104482013-01-17  Martin Jambor  <mjambor@suse.cz>
10449
10450	PR tree-optimizations/55264
10451	* ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
10452	for virtual methods.
10453	* ipa.c (symtab_remove_unreachable_nodes): Never return true for
10454	virtual methods before inlining is over.
10455	* cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
10456	virtual functions.
10457	* cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
10458	non-virtual.
10459
104602013-01-16  Vladimir Makarov  <vmakarov@redhat.com>
10461
10462	PR rtl-optimization/56005
10463	* sched-deps.c (sched_analyze_2): Check deps->readonly for adding
10464	pending reads for prefetch.
10465
104662013-01-16  Ian Bolton  <ian.bolton@arm.com>
10467
10468	* config/aarch64/aarch64.md
10469	(*cstoresi_neg_uxtw): New pattern.
10470	(*cmovsi_insn_uxtw): New pattern.
10471	(*<optab>si3_uxtw): New pattern.
10472	(*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
10473	(*<optab>si3_insn_uxtw): New pattern.
10474	(*bswapsi2_uxtw): New pattern.
10475
104762013-01-16  Richard Biener  <rguenther@suse.de>
10477
10478	* tree-inline.c (tree_function_versioning): Remove set but
10479	never used variable.
10480
104812013-01-16  Richard Biener  <rguenther@suse.de>
10482
10483	PR tree-optimization/55964
10484	* tree-flow.h (rename_variables_in_loop): Remove.
10485	(rename_variables_in_bb): Likewise.
10486	* tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
10487	(copy_loop_before): Adjust and delete update-ssa status.
10488	* tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
10489	(rename_variables_in_bb): Likewise.  Properly walk over predecessors.
10490	(rename_variables_in_loop): Remove.
10491	(slpeel_update_phis_for_duplicate_loop): Likewise.
10492	(slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
10493	use available cfg machinery instead of duplicating it.
10494	Update PHI nodes and perform poor-mans SSA update here.
10495	(slpeel_tree_peel_loop_to_edge): Adjust.
10496
104972013-01-16  Richard Biener  <rguenther@suse.de>
10498
10499	PR tree-optimization/54767
10500	PR tree-optimization/53465
10501	* tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
10502	(vrp_visit_phi_node): For PHI arguments coming via backedges
10503	drop all symbolical range information.
10504	(execute_vrp): Compute backedges.
10505
105062013-01-16  Richard Biener  <rguenther@suse.de>
10507
10508	* doc/install.texi: Update CLooG and ISL requirements to
10509	0.18.0 and 0.11.1.
10510
105112013-01-16  Christian Bruel  <christian.bruel@st.com>
10512
10513	PR target/55301
10514	* config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
10515	(broken_move): Handle UNSPECV_SP_SWITCH_B.
10516	* config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
10517
105182013-01-16  DJ Delorie  <dj@redhat.com>
10519
10520	* config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
10521	(UNSPECV_SP_SWITCH_E): New.
10522	(sp_switch_1): Change to an unspec.
10523	(sp_switch_2): Change to an unspec.  Don't use post-inc when we
10524	replace $r15.
10525
105262013-01-16  Uros Bizjak  <ubizjak@gmail.com>
10527
10528	* emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
10529	with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
10530	* optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
10531	(expand_mem_thread_fence): Ditto.
10532	(expand_mem_signal_fence): Ditto.
10533	(expand_atomic_load): Ditto.
10534	(expand_atomic_store): Ditto.
10535
105362013-01-16  Alexandre Oliva  <aoliva@redhat.com>
10537
10538	PR rtl-optimization/55547
10539	PR rtl-optimization/53827
10540	PR debug/53671
10541	PR debug/49888
10542	* alias.c (memrefs_conflict_p): Set sizes to negative after
10543	AND adjustments.
10544
105452013-01-15  Jakub Jelinek  <jakub@redhat.com>
10546
10547	PR target/55940
10548	* function.c (thread_prologue_and_epilogue_insns): Always
10549	add crtl->drap_reg to set_up_by_prologue.set, even if
10550	stack_realign_drap is false.
10551
105522013-01-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
10553
10554	* config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
10555	and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
10556	*call): Fix indention.
10557
105582013-01-15  Tom de Vries  <tom@codesourcery.com>
10559
10560	PR target/55876
10561	* optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
10562	Update comment.
10563
105642013-01-15  Vladimir Makarov  <vmakarov@redhat.com>
10565
10566	PR rtl-optimization/55153
10567	* sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
10568
105692013-01-15  Martin Jambor  <mjambor@suse.cz>
10570
10571	PR tree-optimization/55920
10572	* tree-sra.c (analyze_access_subtree): Do not mark non-removable
10573	accesses as grp_to_be_debug_replaced.
10574
105752013-01-15  Jakub Jelinek  <jakub@redhat.com>
10576
10577	PR tree-optimization/55920
10578	* tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
10579	there is non-useless type conversion needed from debug rhs to lhs,
10580	use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
10581
105822013-01-15  Joseph Myers  <joseph@codesourcery.com>
10583	    Mikael Pettersson  <mikpe@it.uu.se>
10584
10585	PR target/43961
10586	* config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
10587	Thumb.
10588	(ASM_OUTPUT_CASE_LABEL): Remove.
10589	(ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
10590	* final.c (shorten_branches): Update alignment of labels before
10591	jump tables if CASE_VECTOR_SHORTEN_MODE.
10592
105932013-01-15  Richard Biener  <rguenther@suse.de>
10594
10595	PR bootstrap/55961
10596	* system.h: Do not include gmp.h for building host tools.
10597
105982013-01-15  Richard Biener  <rguenther@suse.de>
10599
10600	PR middle-end/55882
10601	* emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
10602	account for bitpos when computing alignment.
10603
106042013-01-15  Vladimir Yakovlev  <vladimir.b.yakovlev@intel.com>
10605
10606	* config/i386/i386-c.c (ix86_target_macros_internal): New case.
10607	(ix86_target_macros_internal): Likewise.
10608
10609	* config/i386/i386.c (m_CORE2I7): Removed.
10610	(m_CORE_HASWELL): New macro.
10611	(m_CORE_ALL): Likewise.
10612	(initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
10613	(initial_ix86_arch_features): Likewise.
10614	(processor_target_table): Initializations for Core avx2.
10615	(cpu_names): New names "core-avx2".
10616	(ix86_option_override_internal): Changed PROCESSOR_COREI7 by
10617	PROCESSOR_CORE_HASWELL.
10618	(ix86_issue_rate): New case.
10619	(ia32_multipass_dfa_lookahead): Likewise.
10620	(ix86_sched_init_global): Likewise.
10621
10622	* config/i386/i386.h (TARGET_HASWELL): New macro.
10623	(target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
10624	(processor_type): New PROCESSOR_HASWELL.
10625
106262013-01-15  Jakub Jelinek  <jakub@redhat.com>
10627
10628	PR tree-optimization/55955
10629	* tree-vect-loop.c (vectorizable_reduction): Give up early on
10630	*SHIFT_EXPR and *ROTATE_EXPR codes.
10631
10632	PR tree-optimization/48766
10633	* opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
10634	-ftrapv disable -fwrapv.
10635
106362013-01-14  Georg-Johann Lay  <avr@gjlay.de>
10637
10638	PR target/55974
10639	* config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
10640	etc. to 1 and not to __flash.
10641	Use LL suffix for __INT24_MAX__ with -mint8.
10642	Use ULL suffix for __UINT24_MAX__ with -mint8.
10643
106442013-01-14  Georg-Johann Lay  <avr@gjlay.de>
10645
10646	* config/avr/avr-arch.h
10647	(struct base_arch_s): Use typedef avr_arch_t instead.
10648	(struct arch_info_s): Use typedef avr_arch_info_t instead.
10649	(struct mcu_type_s): Use typedef avr_mcu_t instead.
10650	* config/avr/avr.c: Same.
10651	* config/avr/avr-devices.c: Same.
10652	* config/avr/driver-avr.c: Same.
10653	* config/avr/gen-avr-mmcu-texi.c: Same.
10654	* config/avr/avr-mcus.def: Adjust comment.
10655
106562013-01-14  Tejas Belagod  <tejas.belagod@arm.com>
10657
10658	* config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
10659	* config/aarch64/iterators.md (VALLDI): New.
10660
106612013-01-14  Uros Bizjak  <ubizjak@gmail.com>
10662	    Andi Kleen  <ak@linux.intel.com>
10663
10664	PR target/55948
10665	* config/i386/sync.md (atomic_store<mode>_1): New pattern.
10666	(atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
10667	memmodel flag.
10668
106692013-01-14  Georg-Johann Lay  <avr@gjlay.de>
10670
10671	* config/avr/avr-stdint.h: Remove trailing blanks.
10672	* config/avr/avr-log.h: Same.
10673	* config/avr/avr-arch.h: Same.
10674	* config/avr/avr-devices.c: Same.
10675	* config/avr/avr-dimode.md: Same.
10676	* config/avr/predicates.md: Same.
10677	* config/avr/avr-c.c: Same.  And fix typo.
10678
10679	* config/avr/avr-protos.h: Same.  And:
10680	(function_arg_regno_p): Rename to avr_function_arg_regno_p.
10681	(init_cumulative_args): Rename to avr_init_cumulative_args.
10682	(expand_prologue): Rename to avr_expand_prologue.
10683	(expand_epilogue): Rename to avr_expand_epilogue.
10684	(adjust_insn_length): Rename to avr_adjust_insn_length.
10685	(notice_update_cc): Rename to avr_notice_update_cc.
10686	(final_prescan_insn): Rename to avr_final_prescan_insn.
10687	* config/avr/avr.c: Same.
10688	* config/avr/avr.h: Same.
10689	* config/avr/avr.md: Remove trailing blanks.
10690	(prologue): Use avr_expand_prologue.
10691	(epilogue, sibcall_epilogue): Use avr_expand_epilogue.
10692
106932013-01-14  Richard Biener  <rguenther@suse.de>
10694
10695	* tree-cfg.c (verify_expr_location, verify_expr_location_1,
10696	verify_location, collect_subblocks): New functions.
10697	(verify_gimple_in_cfg): Verify that locations only reference
10698	BLOCKs in the functions BLOCK tree.
10699
107002013-01-14  Richard Biener  <rguenther@suse.de>
10701
10702	* tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
10703	PHI argument.
10704	* graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
10705	unshare reference.
10706	(insert_out_of_ssa_copy_on_edge): Likewise.
10707	(rewrite_close_phi_out_of_ssa): Likewise.
10708	* tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
10709	debug expressions.
10710	* tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
10711	propagated constants.
10712	* tree-cfg.c (tree_node_can_be_shared): Handled component-refs
10713	can not be shared.
10714
107152013-01-14  Georg-Johann Lay  <avr@gjlay.de>
10716
10717	* config/avr/avr-modes.def: Add GPL copyright notice.
10718
107192013-01-13  Uros Bizjak  <ubizjak@gmail.com>
10720
10721	* config/i386/sync.md (mem_thread_fence): Mask operands[0] with
10722	MEMMODEL_MASK to determine memory model.
10723	(atomic_store<mode>): Ditto from operands[2].
10724	* config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
10725
107262013-01-13  Jakub Jelinek  <jakub@redhat.com>
10727
10728	PR fortran/55935
10729	* gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
10730	(fold_gimple_assign): Don't call unshare_expr here.
10731	(fold_ctor_reference): Call unshare_expr.
10732
107332013-01-13  Terry Guo  <terry.guo@arm.com>
10734
10735	* Makefile.in (s-mlib): New argument MULTILIB_REUSE.
10736	* doc/fragments.texi: Document MULTILIB_REUSE.
10737	* gcc.c (multilib_reuse): New internal spec.
10738	(set_multilib_dir): Also search multilib from multilib_reuse.
10739	* genmultilib (tmpmultilib3): Refactor code.
10740	(tmpmultilib4): Ditto.
10741	(multilib_reuse): New multilib argument.
10742
107432013-01-13  Richard Sandiford  <rdsandiford@googlemail.com>
10744
10745	* Makefile.in: Update copyright.
10746
107472013-01-12  Tom de Vries  <tom@codesourcery.com>
10748
10749	PR middle-end/55890
10750	* calls.c (expand_call): Check if arg_nr is valid.
10751
107522013-01-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
10753
10754	* doc/extend.texi (X86 Built-in Functions): Add whitespace in
10755	__builtin_ia32_paddb256 and __builtin_ia32_pavgb256
10756	documentation.  Add missing '__' in front of
10757	__builtin_ia32_packssdw256.
10758
107592013-01-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10760
10761	PR target/55719
10762	* config/s390/s390.c (s390_preferred_reload_class): Do not return
10763	NO_REGS for larl operands.
10764	(s390_reload_larl_operand): Use s390_load_address instead of
10765	emit_move_insn.
10766
107672013-01-11  Richard Biener  <rguenther@suse.de>
10768
10769	* tree-cfg.c (verify_node_sharing_1): Split out from ...
10770	(verify_node_sharing): ... here.
10771	(verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
10772
107732013-01-11  Eric Botcazou  <ebotcazou@adacore.com>
10774
10775	* configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
10776	Substitute TREECHECKING.
10777	* configure: Regenerate.
10778	* Makefile.in (TREECHECKING): New.
10779
107802013-01-11  Richard Guenther  <rguenther@suse.de>
10781
10782	PR tree-optimization/44061
10783	* tree-vrp.c (extract_range_basic): Compute zero as
10784	value-range for __builtin_constant_p of function parameters.
10785
107862013-01-10  Richard Sandiford  <rdsandiford@googlemail.com>
10787
10788	Update copyright years.
10789
107902013-01-10  Vladimir Makarov  <vmakarov@redhat.com>
10791
10792	PR rtl-optimization/55672
10793	* lra-eliminations.c (mark_not_eliminable): Permit addition with
10794	const to be eliminable.
10795
107962013-01-10  David Edelsohn  <dje.gcc@gmail.com>
10797
10798	* configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
10799	* configure: Regenerate.
10800
108012013-01-10  Richard Biener  <rguenther@suse.de>
10802
10803	* builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
10804
108052013-01-10  Richard Biener  <rguenther@suse.de>
10806
10807	PR bootstrap/55792
10808	* tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
10809	locations for virtual PHI arguments.
10810	(rewrite_update_phi_arguments): Likewise.
10811
108122013-01-10  Joel Sherrill  <joel.sherrill@OARcorp.com>
10813
10814	* config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
10815	on to assembler.
10816
108172013-01-10  Jakub Jelinek  <jakub@redhat.com>
10818
10819	PR tree-optimization/55921
10820	* tree-complex.c (expand_complex_asm): New function.
10821	(expand_complex_operations_1): Call it for GIMPLE_ASM.
10822
108232013-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10824
10825	PR target/55718
10826	* config/s390/s390.c (s390_symref_operand_p)
10827	(s390_loadrelative_operand_p): Merge the two functions.
10828	(s390_check_qrst_address, print_operand_address): Add parameters
10829	to s390_loadrelative_operand_p invokation.
10830	(s390_check_symref_alignment): Use s390_loadrelative_operand_p.
10831	(s390_reload_larl_operand, s390_secondary_reload): Use
10832	s390_loadrelative_operand_p instead of s390_symref_operand_p.
10833	(legitimize_pic_address): Handle @GOTENT and @PLT + addend.
10834
108352013-01-09  Mike Stump  <mikestump@comcast.net>
10836
10837	* dse.c (record_store): Remove unnecessary assert.
10838
108392013-01-09  Jan Hubicka  <jh@suse.cz>
10840
10841	PR tree-optimization/55569
10842	* cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
10843	* cfgloop.h (scale_loop_profile): Likewise.
10844
108452013-01-09  Jan Hubicka  <jh@suse.cz>
10846
10847	PR lto/45375
10848	* ipa-inline.c (ipa_inline): Remove extern inlines and virtual
10849	functions.
10850	* cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
10851
108522013-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
10853
10854	PR middle-end/55114
10855	* expr.h (maybe_emit_group_store): Declare.
10856	* expr.c (maybe_emit_group_store): New function.
10857	* builtins.c (expand_builtin_int_roundingfn): Call it.
10858	(expand_builtin_int_roundingfn_2): Likewise.
10859
108602013-01-09  Vladimir Makarov  <vmakarov@redhat.com>
10861
10862	PR rtl-optimization/55829
10863	* lra-constraints.c (match_reload): Add code for absent output.
10864	(curr_insn_transform): Add code for reloads of matched inputs
10865	without output.
10866
108672013-01-09  Uros Bizjak  <ubizjak@gmail.com>
10868
10869	* config/i386/sse.md (*vec_interleave_highv2df): Change mode
10870	attribute of movddup insn to DF.
10871	(*vec_interleave_lowv2df): Ditto.
10872	(vec_dupv2df): Ditto.
10873
108742013-01-09  Jan Hubicka  <jh@suse.cz>
10875
10876	PR tree-optimiation/55875
10877	* tree-ssa-loop-niter.c (number_of_iterations_cond): Add
10878	EVERY_ITERATION parameter.
10879	(number_of_iterations_exit): Check if exit is executed every iteration.
10880	(idx_infer_loop_bounds): Similarly here.
10881	(n_of_executions_at_most): Simplify
10882	to only test for cases where statement is dominated by the
10883	particular bound; handle correctly the "postdominance" test.
10884	(scev_probably_wraps_p): Use max loop iterations info
10885	as a global bound first.
10886
108872013-01-09  Nguyen Duy Dat  <dat.nguyen.yn@rvc.renesas.com>
10888	    Nick Clifton  <nickc@redhat.com>
10889
10890	* config/v850/v850.md (cbranchsf4): New pattern.
10891	(cstoresf4): New pattern.
10892	(cbranchdf4): New pattern.
10893	(cstoredf4): New pattern.
10894	(movsicc): Disallow floating point comparisons.
10895	(cmpsf_le_insn): Fix order of operators.
10896	(cmpsf_lt_insn): Likewise.
10897	(cmpsf_eq_insn): Likewise.
10898	(cmpdf_le_insn): Likewise.
10899	(cmpdf_lt_insn): Likewise.
10900	(cmpdf_eq_insn): Likewise.
10901	(cmpsf_ge_insn): Use LE comparison.
10902	(cmpdf_ge_insn): Likewise.
10903	(cmpsf_gt_insn): Use LT comparison.
10904	(cmpdf_gt_insn): Likewise.
10905	(cmpsf_ne_insn): Delete pattern.
10906	(cmpdf_ne_insn): Delete pattern.
10907	* config/v850/v850.c (v850_gen_float_compare): Use
10908	gen_cmpdf_eq_insn for NE comparison.
10909	(v850_float_z_comparison_operator)
10910	(v850_float_nz_comparison_operator): Move from here ...
10911	* config/v850/predicates.md: ... to here.  Move GT and GE
10912	comparisons into v850_float_z_comparison_operator.
10913	* config/v850/v850-protos.h (v850_float_z_comparison_operator):
10914	Delete prototype.
10915	(v850_float_nz_comparison_operator): Likewise.
10916
109172013-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10918
10919	* config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
10920	with calls to gen_insvsi/gen_insvdi.
10921
109222013-01-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
10923
10924	* config/i386/i386.c (initial_ix86_tune_features): Set up
10925	X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
10926
109272013-01-09  Steven Bosscher  <steven@gcc.gnu.org>
10928	    Jakub Jelinek  <jakub@redhat.com>
10929
10930	PR tree-optimization/48189
10931	* predict.c (predict_loops): If max is 0, don't call compare_tree_int.
10932	If nitercst is 0, don't predict the exit edge.
10933
109342013-01-08  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
10935
10936	* config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
10937	in asm_fprintf with reg_names.
10938	(aarch64_print_operand_address): Likewise.
10939	(aarch64_return_addr): Likewise.
10940	* config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
10941
109422013-01-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10943
10944	* config/pa/pa.h (VAL_U6_BITS_P): Define.
10945	(INT_U6_BITS): Likewise.
10946	* config/pa/predicates.md (uint6_operand): New predicate.
10947	(shift5_operand, shift6_operand): Likewise.
10948	* config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
10949	arith32_operand.
10950	(lshrdi3): Use shift6_operand.
10951	(shrpsi4, shrpdi4): New insn patterns.
10952	(extzv): Delete expander.
10953	(extzvsi, extzvdi): New expanders.  Use uint5_operand and uint6_operand
10954	predicates in unamed zero extract patterns.  Tighten common constraint.
10955	(extv): Delete expander.
10956	(extvsi, extvdi): New expanders.  Use uint5_operand and uint6_operand
10957	predicates in unamed sign extract patterns.  Tighten common constraint.
10958	(insv): Delete expander.
10959	(insvsi, insvdi): New expanders.  Use uint5_operand and uint6_operand
10960	predicates in unamed insert patterns.  Tighten common constraint.
10961	Change uint32_operand predicate to uint6_operand predicate in unamed
10962	DImode pattern to insert constant values of type 1...1xxxx.
10963
109642013-01-04  Jan Hubicka  <jh@suse.cz>
10965
10966	PR tree-optimization/55823
10967	* ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
10968	issue.
10969
109702013-01-08  Jakub Jelinek  <jakub@redhat.com>
10971	    Uros Bizjak  <ubizjak@gmail.com>
10972
10973	PR rtl-optimization/55845
10974	* df-problems.c (can_move_insns_across): Stop scanning at
10975	volatile_insn_p source instruction or give up if
10976	across_from .. across_to range contains any volatile_insn_p
10977	instructions.
10978
109792013-01-08  Tejas Belagod  <tejas.belagod@arm.com>
10980
10981	* config/aarch64/aarch64-simd.md (vec_init<mode>): New.
10982	* config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
10983	Declare.
10984	* config/aarch64/aarch64.c (aarch64_simd_dup_constant,
10985	aarch64_simd_make_constant, aarch64_expand_vector_init): New.
10986
109872013-01-08  Jakub Jelinek  <jakub@redhat.com>
10988
10989	PR fortran/55341
10990	* asan.c (asan_clear_shadow): New function.
10991	(asan_emit_stack_protection): Use it.
10992
109932013-01-08  Tejas Belagod  <tejas.belagod@arm.com>
10994
10995	* config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
10996	aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
10997	with tab instead of space.
10998
109992013-01-08  Nick Clifton  <nickc@redhat.com>
11000
11001	* config/rl78/rl78.c (rl78_expand_prologue): Always select
11002	register bank 0 at the start of an interrupt handler.
11003	* config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
11004	MDBH registers.
11005
110062013-01-08  James Greenhalgh  <james.greenhalgh@arm.com>
11007
11008	* config/aarch64/aarch64-simd.md
11009	(aarch64_simd_bsl<mode>_internal): Add floating-point modes.
11010	(aarch64_simd_bsl): Likewise.
11011	(aarch64_vcond_internal<mode>): Likewise.
11012	(vcond<mode><mode>): Likewise.
11013	(aarch64_cm<cmp><mode>): Fix constraints, add new modes.
11014	* config/aarch64/iterators.md (V_cmp_result): Add V2DF.
11015
110162013-01-08  James Greenhalgh  <james.greenhalgh@arm.com>
11017
11018	* config/aarch64/aarch64-builtins.c
11019	(aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
11020
110212013-01-08  Martin Jambor  <mjambor@suse.cz>
11022
11023	PR debug/55579
11024	* tree-sra.c (analyze_access_subtree): Return true also after
11025	potentially creating a debug-only replacement.
11026
110272013-01-08  Jakub Jelinek  <jakub@redhat.com>
11028
11029	PR middle-end/55890
11030	* tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
11031
11032	PR tree-optimization/54120
11033	* tree-vrp.c (range_fits_type_p): Don't allow
11034	src_precision < precision from signed vr to unsigned_p
11035	if vr->min or vr->max is negative.
11036	(simplify_float_conversion_using_ranges): Test can_float_p
11037	against CODE_FOR_nothing.
11038
110392013-01-08  Jakub Jelinek  <jakub@redhat.com>
11040	    Richard Biener  <rguenther@suse.de>
11041
11042	PR middle-end/55851
11043	* fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
11044	types instead of just INTEGER_TYPE types.
11045
110462013-01-07  Mark Kettenis  <kettenis@openbsd.org>
11047
11048	* config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
11049	TF_SIZE): Define.
11050
110512013-01-07  Steve Ellcey  <sellcey@mips.com>
11052
11053	PR target/42661
11054	* config/mips/mips.opt: Change mad to mmad to match documentation.
11055
110562013-01-07  Georg-Johann Lay  <avr@gjlay.de>
11057
11058	PR target/55897
11059	* doc/extend.texi (AVR Named Address Spaces): __memx goes into
11060	.progmemx.data now.
11061
110622013-01-07  Georg-Johann Lay  <avr@gjlay.de>
11063
11064	PR target/55897
11065	* config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
11066	(avr_addrspace_t): Add .section_name field.
11067	* config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
11068	array size.
11069	(avr_addrspace): Same.  Initialize .section_name.  Remove last
11070	NULL entry.  Put __memx into .progmemx.data.
11071	(progmem_section_prefix): Remove.
11072	(avr_asm_init_sections): No need to initialize progmem_section.
11073	(avr_asm_named_section): Use avr_addrspace[].section_name to get
11074	section name prefix.
11075	(avr_asm_select_section): Ditto.  And use get_unnamed_section to
11076	retrieve the progmem section.
11077	* avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
11078	boundary to run over avr_addrspace[].
11079	(avr_register_target_pragmas): Ditto.
11080
110812013-01-06  Jakub Jelinek  <jakub@redhat.com>
11082
11083	* varasm.c (output_constant_def_contents): For asan_protect_global
11084	protected strings, adjust DECL_ALIGN if needed, before testing for
11085	anchored symbols.
11086	(place_block_symbol): Adjust size for asan protected STRING_CSTs if
11087	TREE_CONSTANT_POOL_ADDRESS_P.  Increase alignment for asan protected
11088	normal decls.
11089	(output_object_block): For asan protected decls, emit asan padding
11090	after their contents.
11091	* asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
11092	(asan_finish_file): Test it here instead.
11093
110942013-01-07  Nick Clifton  <nickc@redhat.com>
11095	    Matthias Klose  <doko@debian.org>
11096	    Doug Kwan  <dougkwan@google.com>
11097	    H.J. Lu  <hongjiu.lu@intel.com>
11098
11099	PR driver/55470
11100	* collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
11101
11102	* common.opt: Add fuse-ld=bfd and fuse-ld=gold.
11103
11104	* gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
11105
11106	* opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
11107
11108	* doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
11109
111102013-01-07  Georg-Johann Lay  <avr@gjlay.de>
11111
11112	PR target/54461
11113	* doc/install.texi (Cross-Compiler-Specific Options): Document
11114	--with-avrlibc.
11115
111162013-01-07  Tejas Belagod  <tejas.belagod@arm.com>
11117
11118	* config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
11119	vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
11120	vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
11121	vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
11122	vqmovun_high_s64): Fix source operand number and update copyright.
11123
111242013-01-07  Richard Biener  <rguenther@suse.de>
11125
11126	PR middle-end/55890
11127	* gimple.h (gimple_call_builtin_p): New overload.
11128	* gimple.c (validate_call): New function.
11129	(gimple_call_builtin_p): Likewise.
11130	* tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
11131	Use gimple_call_builtin_p.
11132	(find_func_clobbers): Likewise.
11133	* tree-ssa-strlen.c (adjust_last_stmt): Likewise.
11134	(strlen_optimize_stmt): Likewise.
11135
111362013-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
11137
11138	* config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
11139	(vld1q_dup_*): Likewise.
11140	(vld1_*): Likewise.
11141	(vld1q_*): Likewise.
11142	(vld1_lane_*): Likewise.
11143	(vld1q_lane_*): Likewise.
11144
111452013-01-07  Richard Biener  <rguenther@suse.de>
11146
11147	* lto-streamer.h (LTO_minor_version): Bump to 2.
11148
111492013-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
11150
11151	* config/aarch64/aarch64-protos.h
11152	(aarch64_const_double_zero_rtx_p): Rename to...
11153	(aarch64_float_const_zero_rtx_p): ...this.
11154	(aarch64_float_const_representable_p): New.
11155	(aarch64_output_simd_mov_immediate): Likewise.
11156	* config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
11157	move immediate case.
11158	* config/aarch64/aarch64.c
11159	(aarch64_const_double_zero_rtx_p): Rename to...
11160	(aarch64_float_const_zero_rtx_p): ...this.
11161	(aarch64_print_operand): Allow printing of new constants.
11162	(aarch64_valid_floating_const): New.
11163	(aarch64_legitimate_constant_p): Check for valid floating-point
11164	constants.
11165	(aarch64_simd_valid_immediate): Likewise.
11166	(aarch64_vect_float_const_representable_p): New.
11167	(aarch64_float_const_representable_p): Likewise.
11168	(aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
11169	(aarch64_output_simd_mov_immediate): New.
11170	* config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
11171	(*movdf_aarch64): Likewise.
11172	* config/aarch64/constraints.md (Ufc): New.
11173	(Y): call aarch64_float_const_zero_rtx.
11174	* config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
11175
111762013-01-07  Richard Biener  <rguenther@suse.de>
11177
11178	PR tree-optimization/55888
11179	PR tree-optimization/55862
11180	* tree-ssa-pre.c (phi_translate_1): Revert previous change.
11181	(valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
11182	not if it is contained therein.
11183
111842013-01-07  Georg-Johann Lay  <avr@gjlay.de>
11185
11186	* config/avr/t-avr: Typo.
11187
111882013-01-07  Georg-Johann Lay  <avr@gjlay.de>
11189
11190	PR55243
11191	* config/avr/t-avr: Don't automatically rebuild
11192	$(srcdir)/config/avr/t-multilib
11193	$(srcdir)/config/avr/avr-tables.opt
11194	$(srcdir)/doc/avr-mmcu.texi
11195	(avr-mcus): New phony target to build them on request.
11196	(s-avr-mlib, s-avr-mmcu-texi): Remove.
11197	* avr/avr-mcus.def: Adjust comments.
11198
111992013-01-07  Uros Bizjak  <ubizjak@gmail.com>
11200
11201	* config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
11202
112032013-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
11204
11205	* file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
11206
112072013-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
11208
11209	* config/tilepro/gen-mul-tables.cc: Put copyright on one line.
11210
112112013-01-05  David Edelsohn  <dje.gcc@gmail.com>
11212
11213	* config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
11214	to generate profiling.
11215	* config/rs6000/aix64.h (LIB_SPEC): Same.
11216
112172013-01-04  Andrew Pinski  <apinski@cavium.com>
11218
11219	* config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
11220	New function.
11221	(TARGET_FIXED_CONDITION_CODE_REGS): Define.
11222
112232013-01-04  Uros Bizjak  <ubizjak@gmail.com>
11224
11225	* config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
11226	unconditionally.
11227	(ix86_expand_move): Ditto.
11228	(ix86_zero_extend_to_Pmode): Ditto.
11229	(ix86_expand_call): Ditto.
11230	(ix86_expand_special_args_builtin): Ditto.
11231	(ix86_expand_builtin): Ditto.
11232
112332013-01-04  Richard Biener  <rguenther@suse.de>
11234
11235	PR tree-optimization/55862
11236	* tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
11237	translating them through PHI nodes.
11238
112392013-01-04  Martin Jambor  <mjambor@suse.cz>
11240
11241	PR tree-optimization/55755
11242	* tree-sra.c (sra_modify_assign): Do not check that an access has no
11243	children when trying to avoid producing a VIEW_CONVERT_EXPR.
11244
112452013-01-04  Marek Polacek  <polacek@redhat.com>
11246
11247	PR middle-end/55859
11248	* opts.c (default_options_optimization): Clarify error message.
11249
112502013-01-04  Richard Biener  <rguenther@suse.de>
11251
11252	PR middle-end/55863
11253	* fold-const.c (split_tree): Undo -X - 1 to ~X folding for
11254	reassociation.
11255
112562013-01-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11257
11258	PR target/53789
11259	* config/pa/pa.md (movsi): Revert previous change.
11260	* config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
11261	references.
11262
112632013-01-03  Richard Henderson  <rth@redhat.com>
11264
11265	* config/i386/i386.c (ix86_expand_move): Always assign to op1
11266	after eliminating TLS symbols.
11267
112682013-01-03  Marc Glisse  <marc.glisse@inria.fr>
11269
11270	PR bootstrap/50167
11271	* graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
11272	* graphite-poly.c (debug_gmp_value): Likewise.
11273
112742013-01-03  Uros Bizjak  <ubizjak@gmail.com>
11275
11276	PR target/55712
11277	* config/i386/i386-c.c (ix86_target_macros_internal): Depending on
11278	selected code model, define __code_mode_small__, __code_model_medium__,
11279	__code_model_large__, __code_model_32__ or __code_model_kernel__.
11280	* config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
11281	xchg temporary register with %k.  Declare temporary register as
11282	early clobbered.
11283	[__x86_64__]: For medium and large code models, preserve %rbx register.
11284
112852013-01-03  Richard Biener  <rguenther@suse.de>
11286
11287	* tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
11288	(dump_subscript): Adjust.
11289	(finalize_ddr_dependent): Do not dump redundant info.
11290	(analyze_siv_subscript): Adjust.
11291	(subscript_dependence_tester): Likewise.
11292	(compute_affine_dependence): Likewise.
11293
112942013-01-03  Richard Biener  <rguenther@suse.de>
11295
11296	Revert
11297	2013-01-03  Richard Biener  <rguenther@suse.de>
11298
11299	PR tree-optimization/55857
11300	* tree-vect-stmts.c (vectorizable_load): Do not setup
11301	re-alignment for invariant loads.
11302
11303	2013-01-02  Richard Biener  <rguenther@suse.de>
11304
11305	* tree-vect-stmts.c (vectorizable_load): When vectorizing an
11306	invariant load do not generate a vector load from the scalar location.
11307
113082013-01-03  Richard Biener  <rguenther@suse.de>
11309
11310	* tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
11311	for not vectorizing.
11312	* tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
11313	not build INDIRECT_REFs, call get_name once only.
11314	(vect_create_data_ref_ptr): Likewise.  Dump base object kind
11315	based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
11316
113172013-01-03  Richard Biener  <rguenther@suse.de>
11318
11319	PR tree-optimization/55857
11320	* tree-vect-stmts.c (vectorizable_load): Do not setup
11321	re-alignment for invariant loads.
11322
113232013-01-03  Richard Biener  <rguenther@suse.de>
11324
11325	PR lto/55848
11326	* lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
11327	prefer a built-in decl.
11328
113292013-01-03  Jakub Jelinek  <jakub@redhat.com>
11330
11331	* gcc.c (process_command): Update copyright notice dates.
11332	* gcov.c (print_version): Likewise.
11333	* gcov-dump.c (print_version): Likewise.
11334
11335	PR rtl-optimization/55838
11336	* loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
11337	iv0.step, iv1.step and step.
11338
113392013-01-03  Jakub Jelinek  <jakub@redhat.com>
11340	    Marc Glisse  <marc.glisse@inria.fr>
11341
11342	PR tree-optimization/55832
11343	* fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
11344	ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
11345	integer_{one,zero}_node.
11346
113472013-01-03  Jakub Jelinek  <jakub@redhat.com>
11348
11349	PR debug/54402
11350	* params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
11351	* var-tracking.c (reverse_op): Don't add reverse ops to
11352	VALUEs that have already
11353	PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
11354
113552013-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
11356
11357	* doc/contrib.texi: Note years as release manager for Mark Mitchell.
11358
113592013-01-02  Teresa Johnson  <tejohnson@google.com>
11360
11361	* dumpfile.c (dump_loc): Print filename with location.
11362	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
11363	new location_t parameter to emit complete unroll message with
11364	new dump framework.
11365	(canonicalize_loop_induction_variables): Compute loops location
11366	and pass to try_unroll_loop_completely.
11367	* loop-unroll.c (report_unroll_peel): New function.
11368	(peel_loops_completely): Use new dump format with location
11369	for main dumpfile message, and invoke report_unroll_peel on success.
11370	(decide_unrolling_and_peeling): Ditto.
11371	(decide_peel_once_rolling): Remove old dumpfile message subsumed
11372	by report_unroll_peel.
11373	(decide_peel_completely): Ditto.
11374	(decide_unroll_constant_iterations): Ditto.
11375	(decide_unroll_runtime_iterations): Ditto.
11376	(decide_peel_simple): Ditto.
11377	(decide_unroll_stupid): Ditto.
11378	* cfgloop.c (get_loop_location): New function.
11379	* cfgloop.h (get_loop_location): Declare.
11380
113812013-01-02  Sriraman Tallam  <tmsriram@google.com>
11382
11383	* config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
11384	NULL.
11385
113862013-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11387
11388	PR middle-end/55198
11389	* expr.c (expand_expr_real_1): Don't use bitfield extraction for non
11390	BLKmode objects when EXPAND_MEMORY is specified.
11391
113922013-01-02  Sriraman Tallam  <tmsriram@google.com>
11393
11394	* config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
11395	in loop predicate.
11396	(fold_builtin_cpu): Do not share cpu model decls across statements.
11397
113982013-01-02  Jason Merrill  <jason@redhat.com>
11399
11400	PR c++/55804
11401	* tree.c (build_array_type_1): Revert earlier change.
11402
114032013-01-02  Yufeng Zhang  <yufeng.zhang@arm.com>
11404
11405	* config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
11406	"cortex-a57".
11407	* config/aarch64/aarch64-tune.md: Re-generate.
11408
114092013-01-02  Richard Biener  <rguenther@suse.de>
11410
11411	* tree-vect-stmts.c (vectorizable_load): When vectorizing an
11412	invariant load do not generate a vector load from the scalar location.
11413
114142013-01-02  Richard Biener  <rguenther@suse.de>
11415
11416	PR bootstrap/55784
11417	* configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
11418	* configure: Regenerate.
11419
114202013-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
11421
11422	* builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
11423	(expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
11424	(expand_builtin_int_roundingfn_2): Keep the original target around
11425	for the fallback case.
11426
114272013-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
11428
11429	* tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
11430	to be clear for sign changes.
11431
114322013-01-01  Jan Hubicka  <jh@suse.cz>
11433
11434	* ipa-inline-analysis.c: Fix formatting.
11435
114362013-01-01  Jakub Jelinek  <jakub@redhat.com>
11437
11438	PR tree-optimization/55831
11439	* tree-vect-loop.c (get_initial_def_for_induction): Use
11440	gsi_after_labels instead of gsi_start_bb.
11441
11442Copyright (C) 2013 Free Software Foundation, Inc.
11443
11444Copying and distribution of this file, with or without modification,
11445are permitted in any medium without royalty provided the copyright
11446notice and this notice are preserved.
11447