85060d1d5db1dc6c520369a24aad0c11305f49e8
[gcc.git] / gcc / ChangeLog
1 2014-03-18 Jakub Jelinek <jakub@redhat.com>
2
3 PR ipa/58721
4 * internal-fn.c: Include diagnostic-core.h.
5 (expand_BUILTIN_EXPECT): New function.
6 * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
7 (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
8 IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
9 * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
10 IFN_BUILTIN_EXPECT.
11 * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
12 Revert 3 argument __builtin_expect code.
13 (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
14 * gimple-fold.c (gimple_fold_call): Likewise.
15 * tree.h (fold_builtin_expect): New prototype.
16 * builtins.c (build_builtin_expect_predicate): Add predictor
17 argument, if non-NULL, create 3 argument __builtin_expect.
18 (fold_builtin_expect): No longer static. Add ARG2 argument,
19 pass it through to build_builtin_expect_predicate.
20 (fold_builtin_2): Adjust caller.
21 (fold_builtin_3): Handle BUILT_IN_EXPECT.
22 * internal-fn.def (BUILTIN_EXPECT): New.
23
24 2014-03-18 Tobias Burnus <burnus@net-b.de>
25
26 PR ipa/58721
27 * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
28 PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
29 PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
30
31 2014-03-18 Jan Hubicka <hubicka@ucw.cz>
32
33 PR ipa/58721
34 * predict.c (combine_predictions_for_bb): Fix up formatting.
35 (expr_expected_value_1, expr_expected_value): Add predictor argument,
36 fill what it points to if non-NULL.
37 (tree_predict_by_opcode): Adjust caller, use the predictor.
38 * predict.def (PRED_COMPARE_AND_SWAP): Add.
39
40 2014-03-18 Eric Botcazou <ebotcazou@adacore.com>
41
42 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
43 proper constant for the store mode.
44
45 2014-03-18 Ilya Enkovich <ilya.enkovich@intel.com>
46
47 * symtab.c (change_decl_assembler_name): Fix transparent alias
48 chain construction.
49
50 2014-03-16 Renlin Li <Renlin.Li@arm.com>
51
52 * config/aarch64/aarch64.c: Correct the comments about the
53 aarch64 stack layout.
54
55 2014-03-18 Thomas Schwinge <thomas@codesourcery.com>
56
57 * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
58 check for GF_OMP_FOR_KIND_FOR.
59
60 2013-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
61
62 * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
63 ymm and zmm register names.
64
65 2014-03-17 Jakub Jelinek <jakub@redhat.com>
66
67 PR target/60516
68 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
69 note creation for the 2010-08-31 changes.
70
71 2014-03-17 Marek Polacek <polacek@redhat.com>
72
73 PR middle-end/60534
74 * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
75 as -fno-tree-loop-vectorize.
76 (expand_omp_simd): Likewise.
77
78 2014-03-15 Eric Botcazou <ebotcazou@adacore.com>
79
80 * config/sparc/sparc-protos.h (tls_call_delay): Delete.
81 (eligible_for_call_delay): New prototype.
82 * config/sparc/sparc.c (tls_call_delay): Rename into...
83 (eligible_for_call_delay): ...this. Return false if the instruction
84 cannot be put in the delay slot of a branch.
85 (eligible_for_restore_insn): Simplify.
86 (eligible_for_return_delay): Return false if the instruction cannot be
87 put in the delay slot of a branch and simplify.
88 (eligible_for_sibcall_delay): Return false if the instruction cannot be
89 put in the delay slot of a branch.
90 * config/sparc/sparc.md (fix_ut699): New attribute.
91 (tls_call_delay): Delete.
92 (in_call_delay): Reimplement.
93 (eligible_for_sibcall_delay): Rename into...
94 (in_sibcall_delay): ...this.
95 (eligible_for_return_delay): Rename into...
96 (in_return_delay): ...this.
97 (in_branch_delay): Reimplement.
98 (in_uncond_branch_delay): Delete.
99 (in_annul_branch_delay): Delete.
100
101 2014-03-14 Richard Henderson <rth@redhat.com>
102
103 PR target/60525
104 * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
105 define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
106 (*floathi<X87MODEF>2_i387_with_temp): Remove.
107 (floathi splitters): Remove.
108 (float<SWI48x>xf2): New pattern.
109 (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2. Drop
110 code that tried to handle DImode for 32-bit, but which was excluded
111 by the pattern's condition. Drop allocation of stack temporary.
112 (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
113 (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
114 (*float<SWI48><MODEF>2_mixed_interunit): Remove.
115 (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
116 (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
117 (*float<SWI48><MODEF>2_sse_with_temp): Remove.
118 (*float<SWI48><MODEF>2_sse_interunit): Remove.
119 (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
120 (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
121 (*float<SWI48x><X87MODEF>2_i387): Remove.
122 (all float _with_temp splitters): Remove.
123 (*float<SWI48x><MODEF>2_i387): New pattern.
124 (*float<SWI48><MODEF>2_sse): New pattern.
125 (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
126 (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
127
128 2014-03-14 Jakub Jelinek <jakub@redhat.com>
129 Marek Polacek <polacek@redhat.com>
130
131 PR middle-end/60484
132 * common.opt (dump_base_name_prefixed): New Variable.
133 * opts.c (finish_options): Don't prepend directory to x_dump_base_name
134 if x_dump_base_name_prefixed is already set, set it at the end.
135
136 2014-03-14 Vladimir Makarov <vmakarov@redhat.com>
137
138 PR rtl-optimization/60508
139 * lra-constraints.c (get_reload_reg): Add new parameter
140 in_subreg_p.
141 (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
142 Pass the new parameter values.
143
144 2014-03-14 Richard Biener <rguenther@suse.de>
145
146 * common.opt: Revert unintented changes from r205065.
147 * opts.c: Likewise.
148
149 2014-03-14 Richard Biener <rguenther@suse.de>
150
151 PR middle-end/60518
152 * cfghooks.c (split_block): Properly adjust all loops the
153 block was a latch of.
154
155 2014-03-14 Martin Jambor <mjambor@suse.cz>
156
157 PR lto/60461
158 * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
159 and simplify it.
160
161 2014-03-14 Georg-Johann Lay <avr@gjlay.de>
162
163 PR target/59396
164 * config/avr/avr.c (avr_set_current_function): Pass function name
165 through default_strip_name_encoding before sanity checking instead
166 of skipping the first char of the assembler name.
167
168 2014-03-13 Richard Henderson <rth@redhat.com>
169
170 PR debug/60438
171 * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
172 (ix86_force_to_memory, ix86_free_from_memory): Remove.
173 * config/i386/i386-protos.h: Likewise.
174 * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
175 in the expander instead of a splitter.
176 (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
177 any possibility of requiring a memory.
178 (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
179 (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
180 (fp branch splitters): Update for ix86_split_fp_branch.
181 (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
182 (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
183 (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
184 (*fop_<MODEF>_2_i387): Remove f/r alternative.
185 (*fop_<MODEF>_3_i387): Likewise.
186 (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
187 (splitters for the fop_* register patterns): Remove.
188 (fscalexf4_i387): Rename from *fscalexf4_i387.
189 (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
190
191 2014-03-13 Jakub Jelinek <jakub@redhat.com>
192
193 PR tree-optimization/59779
194 * tree-dfa.c (get_ref_base_and_extent): Use double_int
195 type for bitsize and maxsize instead of HOST_WIDE_INT.
196
197 2014-03-13 Steven Bosscher <steven@gcc.gnu.org>
198
199 PR rtl-optimization/57320
200 * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
201 the CFG after thread_prologue_and_epilogue_insns.
202
203 2014-03-13 Vladimir Makarov <vmakarov@redhat.com>
204
205 PR rtl-optimization/57189
206 * lra-constraints.c (process_alt_operands): Disfavor spilling
207 vector pseudos.
208
209 2014-03-13 Cesar Philippidis <cesar@codesourcery.com>
210
211 * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic
212 messages.
213
214 2014-03-13 Jakub Jelinek <jakub@redhat.com>
215
216 PR tree-optimization/59025
217 PR middle-end/60418
218 * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
219 same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
220
221 2014-03-13 Georg-Johann Lay <avr@gjlay.de>
222
223 PR target/60486
224 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
225 calls of avr_out_plus_1.
226
227 2014-03-13 Bin Cheng <bin.cheng@arm.com>
228
229 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
230 BB's single pred and update the father loop's latch info later.
231
232 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
233
234 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
235 (VEC_M): Likewise.
236 (VEC_N): Likewise.
237 (VEC_R): Likewise.
238 (VEC_base): Likewise.
239 (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
240 registers, we need to swap double words in little endian mode.
241
242 * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
243 to be a container mode for 128-bit integer operations added in ISA
244 2.07. Unlike TImode and PTImode, the preferred register set is
245 the Altivec/VMX registers for the 128-bit operations.
246
247 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
248 declarations.
249 (rs6000_split_128bit_ok_p): Likewise.
250
251 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
252 macros for creating ISA 2.07 normal and overloaded builtin
253 functions with 3 arguments.
254 (BU_P8V_OVERLOAD_3): Likewise.
255 (VPERM_1T): Add support for V1TImode in 128-bit vector operations
256 for use as overloaded functions.
257 (VPERM_1TI_UNS): Likewise.
258 (VSEL_1TI): Likewise.
259 (VSEL_1TI_UNS): Likewise.
260 (ST_INTERNAL_1ti): Likewise.
261 (LD_INTERNAL_1ti): Likewise.
262 (XXSEL_1TI): Likewise.
263 (XXSEL_1TI_UNS): Likewise.
264 (VPERM_1TI): Likewise.
265 (VPERM_1TI_UNS): Likewise.
266 (XXPERMDI_1TI): Likewise.
267 (SET_1TI): Likewise.
268 (LXVD2X_V1TI): Likewise.
269 (STXVD2X_V1TI): Likewise.
270 (VEC_INIT_V1TI): Likewise.
271 (VEC_SET_V1TI): Likewise.
272 (VEC_EXT_V1TI): Likewise.
273 (EQV_V1TI): Likewise.
274 (NAND_V1TI): Likewise.
275 (ORC_V1TI): Likewise.
276 (VADDCUQ): Add support for 128-bit integer arithmetic instructions
277 added in ISA 2.07. Add both normal 'altivec' builtins, and the
278 overloaded builtin.
279 (VADDUQM): Likewise.
280 (VSUBCUQ): Likewise.
281 (VADDEUQM): Likewise.
282 (VADDECUQ): Likewise.
283 (VSUBEUQM): Likewise.
284 (VSUBECUQ): Likewise.
285
286 * config/rs6000/rs6000-c.c (__int128_type): New static to hold
287 __int128_t and __uint128_t types.
288 (__uint128_type): Likewise.
289 (altivec_categorize_keyword): Add support for vector __int128_t,
290 vector __uint128_t, vector __int128, and vector unsigned __int128
291 as a container type for TImode operations that need to be done in
292 VSX/Altivec registers.
293 (rs6000_macro_to_expand): Likewise.
294 (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
295 to support 128-bit integer instructions vaddcuq, vadduqm,
296 vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
297 (altivec_resolve_overloaded_builtin): Add support for V1TImode.
298
299 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
300 for V1TImode, and set up preferences to use VSX/Altivec registers.
301 Setup VSX reload handlers.
302 (rs6000_debug_reg_global): Likewise.
303 (rs6000_init_hard_regno_mode_ok): Likewise.
304 (rs6000_preferred_simd_mode): Likewise.
305 (vspltis_constant): Do not allow V1TImode as easy altivec constants.
306 (easy_altivec_constant): Likewise.
307 (output_vec_const_move): Likewise.
308 (rs6000_expand_vector_set): Convert V1TImode set and extract to
309 simple move.
310 (rs6000_expand_vector_extract): Likewise.
311 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
312 addressing.
313 (rs6000_const_vec): Add support for V1TImode.
314 (rs6000_emit_le_vsx_load): Swap double words when loading or
315 storing TImode/V1TImode.
316 (rs6000_emit_le_vsx_store): Likewise.
317 (rs6000_emit_le_vsx_move): Likewise.
318 (rs6000_emit_move): Add support for V1TImode.
319 (altivec_expand_ld_builtin): Likewise.
320 (altivec_expand_st_builtin): Likewise.
321 (altivec_expand_vec_init_builtin): Likewise.
322 (altivec_expand_builtin): Likewise.
323 (rs6000_init_builtins): Add support for V1TImode type. Add
324 support for ISA 2.07 128-bit integer builtins. Define type names
325 for the VSX/Altivec vector types.
326 (altivec_init_builtins): Add support for overloaded vector
327 functions with V1TImode type.
328 (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
329 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
330 external function.
331 (rs6000_split_128bit_ok_p): Likewise.
332 (rs6000_handle_altivec_attribute): Create V1TImode from vector
333 __int128_t and vector __uint128_t.
334
335 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
336 and mode attributes.
337 (VSX_M): Likewise.
338 (VSX_M2): Likewise.
339 (VSm): Likewise.
340 (VSs): Likewise.
341 (VSr): Likewise.
342 (VSv): Likewise.
343 (VS_scalar): Likewise.
344 (VS_double): Likewise.
345 (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
346
347 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
348 we support the ISA 2.07 128-bit integer arithmetic instructions.
349 (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
350 (enum rs6000_builtin_type_index): Add fields to hold V1TImode
351 and TImode types for use with the builtin functions.
352 (V1TI_type_node): Likewise.
353 (unsigned_V1TI_type_node): Likewise.
354 (intTI_type_internal_node): Likewise.
355 (uintTI_type_internal_node): Likewise.
356
357 * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
358 128-bit builtin functions.
359 (UNSPEC_VADDEUQM): Likewise.
360 (UNSPEC_VADDECUQ): Likewise.
361 (UNSPEC_VSUBCUQ): Likewise.
362 (UNSPEC_VSUBEUQM): Likewise.
363 (UNSPEC_VSUBECUQ): Likewise.
364 (VM): Add V1TImode to vector mode iterators.
365 (VM2): Likewise.
366 (VI_unit): Likewise.
367 (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
368 (altivec_vaddcuq): Likewise.
369 (altivec_vsubuqm): Likewise.
370 (altivec_vsubcuq): Likewise.
371 (altivec_vaddeuqm): Likewise.
372 (altivec_vaddecuq): Likewise.
373 (altivec_vsubeuqm): Likewise.
374 (altivec_vsubecuq): Likewise.
375
376 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
377 mode iterators.
378 (BOOL_128): Likewise.
379 (BOOL_REGS_OUTPUT): Likewise.
380 (BOOL_REGS_OP1): Likewise.
381 (BOOL_REGS_OP2): Likewise.
382 (BOOL_REGS_UNARY): Likewise.
383 (BOOL_REGS_AND_CR0): Likewise.
384
385 * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
386 128-bit integer builtin support.
387 (vec_vadduqm): Likewise.
388 (vec_vaddecuq): Likewise.
389 (vec_vaddeuqm): Likewise.
390 (vec_vsubecuq): Likewise.
391 (vec_vsubeuqm): Likewise.
392 (vec_vsubcuq): Likewise.
393 (vec_vsubuqm): Likewise.
394
395 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
396 Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
397 vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
398 128-bit integer add/subtract to ISA 2.07.
399
400 2014-03-12 Joern Rennecke <joern.rennecke@embecosm.com>
401
402 * config/arc/arc.c (arc_predicate_delay_insns):
403 Fix third argument passed to conditionalize_nonjump.
404
405 2014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
406
407 * config/aarch64/aarch64-builtins.c
408 (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
409 BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
410 * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
411 instead of __builtin_lfloor.
412 (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
413
414 2014-03-12 Jakub Jelinek <jakub@redhat.com>
415
416 * tree-ssa-ifcombine.c (forwarder_block_to): New function.
417 (tree_ssa_ifcombine_bb_1): New function.
418 (tree_ssa_ifcombine_bb): Use it. Handle also cases where else_bb
419 is an empty forwarder block to then_bb or vice versa and then_bb
420 and else_bb are effectively swapped.
421
422 2014-03-12 Christian Bruel <christian.bruel@st.com>
423
424 PR target/60264
425 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
426 REG_CFA_DEF_CFA note.
427 (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
428 (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
429
430 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
431
432 PR tree-optimization/60454
433 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
434
435 2014-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
436
437 * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
438 Do not define target_cpu_default2 to generic.
439 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
440 * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
441 * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
442
443 2014-03-12 Jakub Jelinek <jakub@redhat.com>
444 Marc Glisse <marc.glisse@inria.fr>
445
446 PR tree-optimization/60502
447 * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
448 instead of build_low_bits_mask.
449
450 2014-03-12 Jakub Jelinek <jakub@redhat.com>
451
452 PR middle-end/60482
453 * tree-vrp.c (register_edge_assert_for_1): Don't add assert
454 if there are multiple uses, but op doesn't live on E edge.
455 * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
456 clobber stmts before __builtin_unreachable.
457
458 2014-03-11 Richard Sandiford <rdsandiford@googlemail.com>
459
460 * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
461 hard_frame_pointer_rtx.
462 * cse.c (cse_insn): Remove volatile check.
463 * cselib.c (cselib_process_insn): Likewise.
464 * dse.c (scan_insn): Likewise.
465
466 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
467
468 * config/arc/arc.c (conditionalize_nonjump): New function,
469 broken out of ...
470 (arc_ifcvt): ... this.
471 (arc_predicate_delay_insns): Use it.
472
473 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
474
475 * config/arc/predicates.md (extend_operand): During/after reload,
476 allow const_int_operand.
477 * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
478 (umulsidi3_700): Likewise. Change operand 2 constraint back to "cL".
479 (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
480 to "i".
481 (umulsi3_highpart_i): Likewise.
482
483 2014-03-11 Richard Biener <rguenther@suse.de>
484
485 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
486 Add asserts to guard possible wrong-code bugs.
487
488 2014-03-11 Richard Biener <rguenther@suse.de>
489
490 PR tree-optimization/60429
491 PR tree-optimization/60485
492 * tree-ssa-structalias.c (set_union_with_increment): Properly
493 take into account all fields that overlap the shifted vars.
494 (do_sd_constraint): Likewise.
495 (do_ds_constraint): Likewise.
496 (get_constraint_for_ptr_offset): Likewise.
497
498 2014-03-11 Chung-Lin Tang <cltang@codesourcery.com>
499
500 * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
501 (nios2_compute_frame_layout):
502 Add calculation of cfun->machine->fp_save_offset.
503 (nios2_expand_prologue): Correct setting of frame pointer register
504 in prologue.
505 (nios2_expand_epilogue): Update recovery of stack pointer from
506 frame pointer accordingly.
507 (nios2_initial_elimination_offset): Update calculation of offset
508 for eliminating to HARD_FRAME_POINTER_REGNUM.
509
510 2014-03-10 Jakub Jelinek <jakub@redhat.com>
511
512 PR ipa/60457
513 * ipa.c (symtab_remove_unreachable_nodes): Don't call
514 cgraph_get_create_node on VAR_DECLs.
515
516 2014-03-10 Richard Biener <rguenther@suse.de>
517
518 PR middle-end/60474
519 * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
520
521 2014-03-08 Douglas B Rupp <rupp@gnat.com>
522
523 * config/vms/vms.opt (vms_float_format): New variable.
524
525 2014-03-08 Tobias Burnus <burnus@net-b.de>
526
527 * doc/invoke.texi (-fcilkplus): Update implementation status.
528
529 2014-03-08 Paulo Matos <paulo@matos-sorge.com>
530 Richard Biener <rguenther@suse.de>
531
532 * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
533 consistently accross all TUs.
534 (run_gcc): Enable -fshort-double automatically at link at link-time
535 and disallow override.
536
537 2014-03-08 Richard Sandiford <rdsandiford@googlemail.com>
538
539 PR target/58271
540 * config/mips/mips.c (mips_option_override): Promote -mpaired-single
541 warning to an error. Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
542 if they can't be used.
543
544 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
545
546 * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
547 for Solaris 11/x86 ld.
548 * configure: Regenerate.
549
550 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
551
552 * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
553 (LIB_TLS_SPEC): Save as ld_tls_libs.
554 (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
555 (HAVE_AS_IX86_TLSLDM): New test.
556 * configure, config.in: Regenerate.
557 * config/i386/i386.c (legitimize_tls_address): Fall back to
558 TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
559 cannot support TLS_MODEL_LOCAL_DYNAMIC.
560 * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
561 instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
562
563 2014-03-07 Paulo Matos <paulo@matos-sorge.com>
564
565 * common.opt (fira-loop-pressure): Mark as optimization.
566
567 2014-03-07 Thomas Schwinge <thomas@codesourcery.com>
568
569 * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
570 an OpenMP mappable type.
571
572 2014-03-06 Matthias Klose <doko@ubuntu.com>
573
574 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
575 MULTILIB_OSDIRNAMES is not defined.
576
577 2014-03-06 Jakub Jelinek <jakub@redhat.com>
578 Meador Inge <meadori@codesourcery.com>
579
580 PR target/58595
581 * config/arm/arm.c (arm_tls_symbol_p): Remove.
582 (arm_legitimize_address): Call legitimize_tls_address for any
583 arm_tls_referenced_p expression, handle constant addend. Call it
584 before testing for !TARGET_ARM.
585 (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
586
587 2014-03-06 Richard Biener <rguenther@suse.de>
588
589 PR middle-end/60445
590 PR lto/60424
591 PR lto/60427
592 Revert
593 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
594
595 * tree-streamer.c (record_common_node): Assert we don't record
596 nodes with type double.
597 (preload_common_node): Skip type double, complex double and double
598 pointer since it is now frontend dependent due to fshort-double option.
599
600 2014-03-06 Richard Biener <rguenther@suse.de>
601
602 * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
603 or -fno-lto is specified and the linker has full plugin support.
604 * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
605 (main): Remove -flto processing, adjust lto_mode using use_plugin late.
606 * lto-wrapper.c (merge_and_complain): Merge compile-time
607 optimization levels.
608 (run_gcc): And pass it through to the link options.
609
610 2014-03-06 Alexandre Oliva <aoliva@redhat.com>
611
612 PR debug/60381
613 Revert:
614 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
615 PR debug/59992
616 * cselib.c (remove_useless_values): Skip to avoid quadratic
617 behavior if the condition moved from...
618 (cselib_process_insn): ... here holds.
619
620 2014-03-05 Jakub Jelinek <jakub@redhat.com>
621
622 PR plugins/59335
623 * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
624 ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
625
626 PR plugins/59335
627 * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
628 (TM_H): Add x86-tune.def.
629
630 2014-03-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
631
632 * config/aarch64/aarch64.c (generic_tunings):
633 Use cortexa57_extra_costs.
634
635 2014-03-05 Jakub Jelinek <jakub@redhat.com>
636
637 PR lto/60404
638 * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
639 of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
640 * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
641 cost for in_lto_p.
642
643 2014-03-04 Heiher <r@hev.cc>
644
645 * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
646 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
647
648 2014-03-04 Uros Bizjak <ubizjak@gmail.com>
649
650 * config/i386/predicates.md (const2356_operand): Change to ...
651 (const2367_operand): ... this.
652 * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
653 const2367_operand.
654 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
655 (*avx512pf_scatterpf<mode>sf): Ditto.
656 (avx512pf_scatterpf<mode>df): Ditto.
657 (*avx512pf_scatterpf<mode>df_mask): Ditto.
658 (*avx512pf_scatterpf<mode>df): Ditto.
659 * config/i386/i386.c (ix86_expand_builtin): Update
660 incorrect hint operand error message.
661
662 2014-03-04 Richard Biener <rguenther@suse.de>
663
664 * lto-section-in.c (lto_get_section_data): Fix const cast.
665
666 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
667
668 * tree-streamer.c (record_common_node): Assert we don't record
669 nodes with type double.
670 (preload_common_node): Skip type double, complex double and double
671 pointer since it is now frontend dependent due to fshort-double option.
672
673 2014-03-04 Richard Biener <rguenther@suse.de>
674
675 PR lto/60405
676 * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
677 (lto_input_toplevel_asms): Likewise.
678 * lto-section-in.c (lto_get_section_data): Instead do it here
679 for every section.
680
681 2014-03-04 Richard Biener <rguenther@suse.de>
682
683 PR tree-optimization/60382
684 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
685 dead PHIs a reduction.
686
687 2014-03-03 Uros Bizjak <ubizjak@gmail.com>
688
689 * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
690 hint value.
691 (_mm_prefetch): Move out of GCC target("sse") pragma.
692 * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
693 GCC target("prfchw") pragma.
694 * config/i386/i386.md (prefetch): Emit prefetchwt1 only
695 for locality <= 2.
696 * config/i386/i386.c (ix86_option_override_internal): Enable
697 -mprfchw with -mprefetchwt1.
698
699 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
700
701 * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
702 Mark as varying.
703
704 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
705
706 * opts.h (CL_PCH_IGNORE): Define.
707 * targhooks.c (option_affects_pch_p):
708 Return false for options that have CL_PCH_IGNORE set.
709 * opt-functions.awk: Process PchIgnore.
710 * doc/options.texi: Document PchIgnore.
711
712 * config/arc/arc.opt (misize): Add PchIgnore property.
713
714 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
715
716 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
717 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
718 constraint on constants to permit them being loaded into
719 GENERAL_REGS or BASE_REGS.
720
721 2014-03-03 Nick Clifton <nickc@redhat.com>
722
723 * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
724 anti-cacnonical alternatives.
725 (negandhi3_real): New pattern.
726 * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
727
728 2014-03-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
729
730 * config/avr/avr-mcus.def: Remove atxmega16x1.
731 * config/avr/avr-tables.opt: Regenerate.
732 * config/avr/t-multilib: Regenerate.
733 * doc/avr-mmcu.texi: Regenerate.
734
735 2014-03-03 Tobias Grosser <tobias@grosser.es>
736 Mircea Namolaru <mircea.namolaru@inria.fr>
737
738 PR tree-optimization/58028
739 * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
740 scalar dimensions.
741
742 2014-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
743
744 * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
745 not handled by recognizers.
746
747 2014-03-03 Jakub Jelinek <jakub@redhat.com>
748
749 PR middle-end/60175
750 * function.c (expand_function_end): Don't emit
751 clobber_return_register sequence if clobber_after is a BARRIER.
752 * cfgexpand.c (construct_exit_block): Append instructions before
753 return_label to prev_bb.
754
755 2014-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
756
757 * config/rs6000/constraints.md: Document reserved use of "wc".
758
759 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
760
761 PR ipa/60150
762 * ipa.c (function_and_variable_visibility): When dissolving comdat
763 group, also set all symbols to local.
764
765 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
766
767 PR ipa/60306
768
769 Revert:
770 2013-12-14 Jan Hubicka <jh@suse.cz>
771 PR middle-end/58477
772 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
773
774 2014-03-02 Jon Beniston <jon@beniston.com>
775
776 PR bootstrap/48230
777 PR bootstrap/50927
778 PR bootstrap/52466
779 PR target/46898
780 * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
781 (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
782 * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
783 (simple_return, *simple_return): New patterns
784 * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
785 * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
786
787 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
788
789 * dwarf2out.c (gen_subprogram_die): Tidy.
790
791 2014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
792
793 PR target/60071
794 * config/sh/sh.md (*mov_t_msb_neg): Split into ...
795 (*mov_t_msb_neg_negc): ... this new insn.
796
797 2014-02-28 Jason Merrill <jason@redhat.com>
798
799 PR c++/58678
800 * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
801 function.
802
803 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
804
805 PR c++/60314
806 * dwarf2out.c (decltype_auto_die): New static.
807 (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
808 (gen_type_die_with_usage): Handle 'decltype(auto)'.
809 (is_cxx_auto): Likewise.
810
811 2014-02-28 Ian Bolton <ian.bolton@arm.com>
812
813 * config/aarch64/aarch64.h: Define __ARM_NEON by default if
814 we are not using general regs only.
815
816 2014-02-28 Richard Biener <rguenther@suse.de>
817
818 PR target/60280
819 * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
820 previous fix and only allow to remove trivial pre-headers
821 and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
822 (remove_forwarder_block): Properly update the latch of a loop.
823
824 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
825
826 PR debug/59992
827 * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
828 (cselib_preserved_hash_table): New.
829 (preserve_constants_and_equivs): Move preserved vals to it.
830 (cselib_find_slot): Look it up first.
831 (cselib_init): Initialize it.
832 (cselib_finish): Release it.
833 (dump_cselib_table): Dump it.
834
835 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
836
837 PR debug/59992
838 * cselib.c (remove_useless_values): Skip to avoid quadratic
839 behavior if the condition moved from...
840 (cselib_process_insn): ... here holds.
841
842 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
843
844 PR debug/57232
845 * var-tracking.c (vt_initialize): Apply the same condition to
846 preserve the CFA base value.
847
848 2014-02-28 Joey Ye <joey.ye@arm.com>
849
850 PR target/PR60169
851 * config/arm/arm.c (thumb_far_jump_used_p): Don't change
852 if reload in progress or completed.
853
854 2014-02-28 Tobias Burnus <burnus@net-b.de>
855
856 PR middle-end/60147
857 * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
858 NAMELIST_DECL.
859
860 2014-02-27 H.J. Lu <hongjiu.lu@intel.com>
861
862 * doc/tm.texi.in (Condition Code Status): Update documention for
863 relative locations of cc0-setter and cc0-user.
864
865 2014-02-27 Jeff Law <law@redhat.com>
866
867 PR rtl-optimization/52714
868 * combine.c (try_combine): When splitting an unrecognized PARALLEL
869 into two independent simple sets, if I3 is a jump, ensure the
870 pattern we place into I3 is a (set (pc) ...).
871
872 2014-02-27 Mikael Pettersson <mikpe@it.uu.se>
873 Jeff Law <law@redhat.com>
874
875 PR rtl-optimization/49847
876 * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
877 are in different blocks.
878 * doc/tm.texi (Condition Code Status): Update documention for
879 relative locations of cc0-setter and cc0-user.
880
881 2014-02-27 Vladimir Makarov <vmakarov@redhat.com>
882
883 PR target/59222
884 * lra.c (lra_emit_add): Check SUBREG too.
885
886 2014-02-27 Andreas Schwab <schwab@suse.de>
887
888 * config/m68k/m68k.c (m68k_option_override): Disable
889 -flive-range-shrinkage for classic m68k.
890 (m68k_override_options_after_change): Likewise.
891
892 2014-02-27 Marek Polacek <polacek@redhat.com>
893
894 PR middle-end/59223
895 * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
896 -Wmaybe-uninitialized.
897
898 2014-02-27 Alan Modra <amodra@gmail.com>
899
900 PR target/57936
901 * reload1.c (emit_input_reload_insns): When reload_override_in,
902 set old to rl->in_reg when rl->in_reg is a subreg.
903
904 2014-02-26 Richard Biener <rguenther@suse.de>
905
906 PR bootstrap/60343
907 * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
908
909 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
910
911 * common/config/i386/predicates.md (const1256_operand): Remove.
912 (const2356_operand): New.
913 (const_1_to_2_operand): Remove.
914 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
915 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
916 (*avx512pf_gatherpf<mode>sf): Ditto.
917 (avx512pf_gatherpf<mode>df): Ditto.
918 (*avx512pf_gatherpf<mode>df_mask): Ditto.
919 (*avx512pf_gatherpf<mode>df): Ditto.
920 (avx512pf_scatterpf<mode>sf): Ditto.
921 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
922 (*avx512pf_scatterpf<mode>sf): Ditto.
923 (avx512pf_scatterpf<mode>df): Ditto.
924 (*avx512pf_scatterpf<mode>df_mask): Ditto.
925 (*avx512pf_scatterpf<mode>df): Ditto.
926 * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
927
928 2014-02-26 Ilya Tocar <ilya.tocar@intel.com>
929
930 * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
931 (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
932 (_mm512_mask_testn_epi64_mask): Move to ...
933 * config/i386/avx512cdintrin.h: Here.
934 * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
935 * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
936 (avx512f_scalef<mode><mask_name><round_name>): Ditto.
937 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
938 TARGET_AVX512F from TARGET_AVX512CD.
939
940 2014-02-26 Richard Biener <rguenther@suse.de>
941
942 PR ipa/60327
943 * ipa.c (walk_polymorphic_call_targets): Properly guard
944 call to inline_update_overall_summary.
945
946 2014-02-26 Bin Cheng <bin.cheng@arm.com>
947
948 PR target/60280
949 * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
950 and latches only if requested. Fix latch if it is removed.
951 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
952 LOOPS_HAVE_PREHEADERS.
953
954 2014-02-25 Andrew Pinski <apinski@cavium.com>
955
956 * builtins.c (expand_builtin_thread_pointer): Create a new target
957 when the target is NULL.
958
959 2014-02-25 Vladimir Makarov <vmakarov@redhat.com>
960
961 PR rtl-optimization/60317
962 * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
963 * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
964 * lra-assigns.c: Include params.h.
965 (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
966 other reload pseudos considerations.
967
968 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
969
970 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
971 to use canonical form for nor<mode>3.
972
973 2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
974
975 PR target/55426
976 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
977 conversions.
978
979 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
980
981 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
982 (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
983 (ix86_handle_option): Handle OPT_mprefetchwt1.
984 * config/i386/cpuid.h (bit_PREFETCHWT1): New.
985 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
986 PREFETCHWT1 CPUID.
987 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
988 OPTION_MASK_ISA_PREFETCHWT1.
989 * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
990 (PTA_PREFETCHWT1): New.
991 (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
992 (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
993 * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
994 * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
995 (*prefetch_avx512pf_<mode>_: Change into ...
996 (*prefetch_prefetchwt1_<mode>: This.
997 * config/i386/i386.opt (mprefetchwt1): New.
998 * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
999 (_mm_prefetch): Handle intent to write.
1000 * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
1001
1002 2014-02-25 Richard Biener <rguenther@suse.de>
1003
1004 PR middle-end/60291
1005 * emit-rtl.c (mem_attrs_htab): Remove.
1006 (mem_attrs_htab_hash): Likewise.
1007 (mem_attrs_htab_eq): Likewise.
1008 (set_mem_attrs): Always allocate new mem-attrs when something changed.
1009 (init_emit_once): Do not allocate mem_attrs_htab.
1010
1011 2014-02-25 Richard Biener <rguenther@suse.de>
1012
1013 PR lto/60319
1014 * lto-opts.c (lto_write_options): Output non-explicit conservative
1015 -fwrapv, -fno-trapv and -fno-strict-overflow.
1016 * lto-wrapper.c (merge_and_complain): Handle merging those options.
1017 (run_gcc): And pass them through.
1018
1019 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
1020
1021 * sel-sched.c (calculate_new_fences): New parameter ptime.
1022 Calculate it as a maximum over all fence cycles.
1023 (sel_sched_region_2): Adjust the call to calculate_new_fences.
1024 Print the final schedule timing when sched_verbose.
1025
1026 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
1027
1028 PR rtl-optimization/60292
1029 * sel-sched.c (fill_vec_av_set): Do not reset target availability
1030 bit fot the fence instruction.
1031
1032 2014-02-24 Alangi Derick <alangiderick@gmail.com>
1033
1034 * calls.h: Fix typo in comment.
1035
1036 2014-02-24 John David Anglin <danglin@gcc.gnu.org>
1037
1038 * config/pa/pa.c (pa_output_move_double): Don't valididate when
1039 adjusting offsetable addresses.
1040
1041 2014-02-24 Guozhi Wei <carrot@google.com>
1042
1043 * sparseset.h (sparseset_pop): Fix the wrong index.
1044
1045 2014-02-24 Walter Lee <walt@tilera.com>
1046
1047 * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
1048 (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
1049 triplet.
1050 * common/config/tilegx/tilegx-common.c
1051 (TARGET_DEFAULT_TARGET_FLAGS): Define.
1052 * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
1053 (LINK_SPEC): Ditto.
1054 * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
1055 * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
1056 (tilegx_gimplify_va_arg_expr): Handle big endian.
1057 (tilegx_expand_unaligned_load): Ditto.
1058 (tilegx_expand_unaligned_store): Ditto.
1059 (TARGET_RETURN_IN_MSB): New.
1060 * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
1061 (TARGET_ENDIAN_DEFAULT): New.
1062 (TARGET_BIG_ENDIAN): Handle big endian.
1063 (BYTES_BIG_ENDIAN): Ditto.
1064 (WORDS_BIG_ENDIAN): Ditto.
1065 (FLOAT_WORDS_BIG_ENDIAN): Ditto.
1066 (ENDIAN_SPEC): New.
1067 (EXTRA_SPECS): New.
1068 * config/tilegx/tilegx.md (extv): Handle big endian.
1069 (extzv): Ditto.
1070 (insn_st<n>): Ditto.
1071 (insn_st<n>_add<bitsuffix>): Ditto.
1072 (insn_stnt<n>): Ditto.
1073 (insn_stnt<n>_add<bitsuffix>):Ditto.
1074 (vec_interleave_highv8qi): Handle big endian.
1075 (vec_interleave_highv8qi_be): New.
1076 (vec_interleave_highv8qi_le): New.
1077 (insn_v1int_h): Handle big endian.
1078 (vec_interleave_lowv8qi): Handle big endian.
1079 (vec_interleave_lowv8qi_be): New.
1080 (vec_interleave_lowv8qi_le): New.
1081 (insn_v1int_l): Handle big endian.
1082 (vec_interleave_highv4hi): Handle big endian.
1083 (vec_interleave_highv4hi_be): New.
1084 (vec_interleave_highv4hi_le): New.
1085 (insn_v2int_h): Handle big endian.
1086 (vec_interleave_lowv4hi): Handle big endian.
1087 (vec_interleave_lowv4hi_be): New.
1088 (vec_interleave_lowv4hi_le): New.
1089 (insn_v2int_l): Handle big endian.
1090 (vec_interleave_highv2si): Handle big endian.
1091 (vec_interleave_highv2si_be): New.
1092 (vec_interleave_highv2si_le): New.
1093 (insn_v4int_h): Handle big endian.
1094 (vec_interleave_lowv2si): Handle big endian.
1095 (vec_interleave_lowv2si_be): New.
1096 (vec_interleave_lowv2si_le): New.
1097 (insn_v4int_l): Handle big endian.
1098 * config/tilegx/tilegx.opt (mbig-endian): New option.
1099 (mlittle-endian): New option.
1100 * doc/install.texi: Document tilegxbe-linux.
1101 * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
1102
1103 2014-02-24 Martin Jambor <mjambor@suse.cz>
1104
1105 PR ipa/60266
1106 * ipa-cp.c (propagate_constants_accross_call): Bail out early if
1107 there are no parameter descriptors.
1108
1109 2014-02-24 Andrey Belevantsev <abel@ispras.ru>
1110
1111 PR rtl-optimization/60268
1112 * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
1113 initialization to ...
1114 (sched_rgn_init): ... here.
1115 (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
1116
1117 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
1118
1119 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
1120 names.
1121
1122 2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
1123
1124 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
1125 definition.
1126
1127 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
1128
1129 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
1130 define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
1131
1132 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
1133
1134 * config/microblaze/predicates.md: Add cmp_op predicate.
1135 * config/microblaze/microblaze.md: Add branch_compare instruction
1136 which uses cmp_op predicate and emits cmp insn before branch.
1137 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
1138 to microblaze_expand_conditional_branch and consolidate logic.
1139 (microblaze_expand_conditional_branch): emit branch_compare
1140 insn instead of handling cmp op separate from branch insn.
1141
1142 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1143
1144 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
1145 to permit subregs.
1146
1147 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1148
1149 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
1150 define_insn with define_expand and new define_insn
1151 *altivec_lve<VI_char>x_internal.
1152 (altivec_stve<VI_char>x): Replace define_insn with define_expand
1153 and new define_insn *altivec_stve<VI_char>x_internal.
1154 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
1155 prototype.
1156 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
1157 lve*x built-ins.
1158 (altivec_expand_stvex_be): New function.
1159
1160 2014-02-22 Joern Rennecke <joern.rennecke@embecosm.com>
1161
1162 * config/avr/avr.c (avr_can_eliminate): Allow elimination from
1163 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
1164 * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
1165 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
1166
1167 2014-02-21 Vladimir Makarov <vmakarov@redhat.com>
1168
1169 PR target/60298
1170 * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
1171 instead of emit_move_insn.
1172
1173 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1174
1175 * config/rs6000/altivec.md (altivec_vsumsws): Replace second
1176 vspltw with vsldoi.
1177 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
1178 gen_altivec_vsumsws.
1179
1180 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1181
1182 * config/rs6000/altivec.md (altivec_lvxl): Rename as
1183 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
1184 (altivec_lvxl_<mode>): New define_expand incorporating
1185 -maltivec=be semantics where needed.
1186 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
1187 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
1188 semantics where needed.
1189 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
1190 (altivec_stvx_<mode>): New define_expand incorporating
1191 -maltivec=be semantics where needed.
1192 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
1193 VM2 iterator instead of V4SI.
1194 (altivec_stvxl_<mode>): New define_expand incorporating
1195 -maltivec=be semantics where needed.
1196 * config/rs6000/rs6000-builtin.def: Add new built-in definitions
1197 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
1198 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
1199 STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
1200 STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
1201 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
1202 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
1203 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
1204 ALTIVEC_BUILTIN_STVXL.
1205 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
1206 (altivec_expand_stvx_be): Likewise.
1207 * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
1208 (altivec_expand_lvx_be): Likewise.
1209 (altivec_expand_stvx_be): Likewise.
1210 (altivec_expand_builtin): Add cases for
1211 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
1212 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
1213 (altivec_init_builtins): Add definitions for
1214 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
1215 __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
1216
1217 2014-02-21 Catherine Moore <clm@codesourcery.com>
1218
1219 * doc/invoke.texi (mvirt, mno-virt): Document.
1220 * config/mips/mips.opt (mvirt): New option.
1221 * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
1222
1223 2014-02-21 Richard Biener <rguenther@suse.de>
1224
1225 PR tree-optimization/60276
1226 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
1227 (STMT_VINFO_MIN_NEG_DIST): New macro.
1228 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
1229 STMT_VINFO_MIN_NEG_DIST.
1230 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
1231 made for negative dependence distances still hold.
1232
1233 2014-02-21 Richard Biener <rguenther@suse.de>
1234
1235 PR middle-end/60291
1236 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
1237 DECL_INITIAL for globals not in the current function context.
1238
1239 2014-02-21 Jakub Jelinek <jakub@redhat.com>
1240
1241 PR tree-optimization/56490
1242 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
1243 * tree-ssa-uninit.c: Include params.h.
1244 (compute_control_dep_chain): Add num_calls argument, return false
1245 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
1246 num_calls to recursive call.
1247 (find_predicates): Change dep_chain into normal array,
1248 cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
1249 variable and adjust compute_control_dep_chain caller.
1250 (find_def_preds): Likewise.
1251
1252 2014-02-21 Thomas Schwinge <thomas@codesourcery.com>
1253
1254 * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
1255 <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
1256
1257 2014-02-21 Nick Clifton <nickc@redhat.com>
1258
1259 * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
1260 (pushhi1): Likewise.
1261 (popqi1): Add mode to pre_dec.
1262 (pophi1): Likewise.
1263
1264 2014-02-21 Jakub Jelinek <jakub@redhat.com>
1265
1266 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
1267 mode for mask of V8SFmode permutation.
1268
1269 2014-02-20 Richard Henderson <rth@redhat.com>
1270
1271 PR c++/60272
1272 * builtins.c (expand_builtin_atomic_compare_exchange): Always make
1273 a new pseudo for OLDVAL.
1274
1275 2014-02-20 Jakub Jelinek <jakub@redhat.com>
1276
1277 PR target/57896
1278 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
1279 gen_reg_rtx if d->testing_p.
1280 (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
1281 if d->testing_p and we will certainly return true.
1282 (expand_vec_perm_even_odd_1): Likewise. Don't call gen_reg_rtx
1283 if d->testing_p.
1284
1285 2014-02-20 Uros Bizjak <ubizjak@gmail.com>
1286
1287 * emit-rtl.c (gen_reg_rtx): Assert that
1288 crtl->emit.regno_pointer_align_length is non-zero.
1289
1290 2014-02-20 Richard Henderson <rth@redhat.com>
1291
1292 PR c++/60272
1293 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
1294 on failure the store back into EXPECT.
1295
1296 2014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
1297 Sandra Loosemore <sandra@codesourcery.com>
1298
1299 * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
1300 * config/nios2/nios2.c (nios2_function_profiler): Add
1301 -fPIC (flag_pic == 2) support.
1302 (nios2_handle_custom_fpu_cfg): Fix warning parameter.
1303 (nios2_large_offset_p): New function.
1304 (nios2_unspec_reloc_p): Move up position, update to use
1305 nios2_large_offset_p.
1306 (nios2_unspec_address): Remove function.
1307 (nios2_unspec_offset): New function.
1308 (nios2_large_got_address): New function.
1309 (nios2_got_address): Add large offset support.
1310 (nios2_legitimize_tls_address): Update usage of removed and new
1311 functions.
1312 (nios2_symbol_binds_local_p): New function.
1313 (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
1314 (nios2_legitimize_address): Update to use nios2_large_offset_p.
1315 (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
1316 (nios2_print_operand): Merge H/L processing, add hiadj/lo
1317 processing for (const (unspec ...)).
1318 (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
1319
1320 2014-02-20 Richard Biener <rguenther@suse.de>
1321
1322 * tree-cfg.c (replace_uses_by): Mark altered BBs before
1323 doing the substitution.
1324 (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
1325
1326 2014-02-20 Martin Jambor <mjambor@suse.cz>
1327
1328 PR ipa/55260
1329 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
1330 info when checking whether lattices are bottom.
1331
1332 2014-02-20 Richard Biener <rguenther@suse.de>
1333
1334 PR middle-end/60221
1335 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
1336 regions at -O0.
1337
1338 2014-02-20 Jan Hubicka <hubicka@ucw.cz>
1339
1340 PR ipa/58555
1341 * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
1342 parameter specifying the scaling.
1343 (inline_call): Update.
1344 (want_inline_recursively): Guard division by zero.
1345 (recursive_inlining): Update.
1346 * ipa-inline.h (clone_inlined_nodes): Update.
1347
1348 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
1349
1350 PR target/60204
1351 * config/i386/i386.c (classify_argument): Pass structures of size
1352 64 bytes or less in register.
1353
1354 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
1355 Kirill Yukhin <kirill.yukhin@intel.com>
1356
1357 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
1358 (_mm_rcp28_round_ss): Ditto.
1359 (_mm_rsqrt28_round_sd): Ditto.
1360 (_mm_rsqrt28_round_ss): Ditto.
1361 * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
1362 (_mm_rcp14_round_ss): Ditto.
1363 (_mm_rsqrt14_round_sd): Ditto.
1364 (_mm_rsqrt14_round_ss): Ditto.
1365 * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
1366 the first input operand, get rid of match_dup.
1367 (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
1368 attribute to sse.
1369 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
1370 Ditto.
1371 (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
1372 operand as the first input operand, set type attribute.
1373 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
1374 Set type attribute.
1375 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
1376 operand as the first input operand, set type attribute.
1377
1378 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1379
1380 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
1381 bit of zero.
1382
1383 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
1384
1385 PR target/60207
1386 * config/i386/i386.c (construct_container): Remove TFmode check
1387 for X86_64_INTEGER_CLASS.
1388
1389 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
1390
1391 PR target/59794
1392 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
1393 only when -Wpsabi is enabled.
1394
1395 2014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
1396
1397 PR target/59799
1398 * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
1399 passing arrays in registers are the same as for structs, so remove the
1400 special case for them.
1401
1402 2014-02-19 Eric Botcazou <ebotcazou@adacore.com>
1403
1404 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
1405 destination type, extract only the valid bits if the source type is not
1406 integral and has a different mode.
1407
1408 2014-02-19 Richard Biener <rguenther@suse.de>
1409
1410 PR ipa/60243
1411 * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
1412 for all calls.
1413
1414 2014-02-19 Richard Biener <rguenther@suse.de>
1415
1416 PR ipa/60243
1417 * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
1418 (ipa_modify_call_arguments): Emit an argument load explicitely and
1419 preserve virtual SSA form there and for the replacement call.
1420 Do not update SSA form nor free dominance info.
1421
1422 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
1423
1424 * ipa.c (function_and_variable_visibility): Also clear WEAK
1425 flag when disolving COMDAT_GROUP.
1426
1427 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
1428
1429 * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
1430 * ipa-prop.c (ipa_set_jf_known_type): Return early when
1431 not devirtualizing.
1432 (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
1433 do more sanity checks.
1434 (detect_type_change): Return true when giving up early.
1435 (compute_complex_assign_jump_func): Fix type parameter of
1436 ipa_set_ancestor_jf.
1437 (compute_complex_ancestor_jump_func): Likewise.
1438 (update_jump_functions_after_inlining): Fix updating of
1439 ancestor function.
1440 * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
1441
1442 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
1443
1444 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
1445 inline clones when edge disappears.
1446
1447 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
1448
1449 PR target/60203
1450 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
1451 Split 64-bit moves into 2 patterns. Do not allow the use of
1452 direct move for TDmode in little endian, since the decimal value
1453 has little endian bytes within a word, but the 64-bit pieces are
1454 ordered in a big endian fashion, and normal subreg's of TDmode are
1455 not allowed.
1456 (mov<mode>_64bit_dm): Likewise.
1457 (movtd_64bit_nodm): Likewise.
1458
1459 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
1460
1461 PR tree-optimization/60174
1462 * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
1463 statement of an SSA_NAME that occurs in an abnormal PHI node.
1464
1465 2014-02-18 Jakub Jelinek <jakub@redhat.com>
1466
1467 PR sanitizer/60142
1468 * final.c (SEEN_BB): Remove.
1469 (SEEN_NOTE, SEEN_EMITTED): Renumber.
1470 (final_scan_insn): Don't force_source_line on second
1471 NOTE_INSN_BASIC_BLOCK.
1472
1473 2014-02-18 Uros Bizjak <ubizjak@gmail.com>
1474
1475 PR target/60205
1476 * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
1477 * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
1478 (type_natural_mode): Warn ABI change when %zmm register is not
1479 available for AVX512F vector value passing.
1480
1481 2014-02-18 Kai Tietz <ktietz@redhat.com>
1482
1483 PR target/60193
1484 * config/i386/i386.c (ix86_expand_prologue): Use value in
1485 rax register as displacement when restoring %r10 or %rax.
1486 Fix wrong offset when restoring both registers.
1487
1488 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
1489
1490 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
1491 assertion with conditional return.
1492
1493 2014-02-18 Jakub Jelinek <jakub@redhat.com>
1494 Uros Bizjak <ubizjak@gmail.com>
1495
1496 PR driver/60233
1497 * config/i386/driver-i386.c (host_detect_local_cpu): If
1498 YMM state is not saved by the OS, also clear has_f16c. Move
1499 CPUID 0x80000001 handling before YMM state saving checking.
1500
1501 2014-02-18 Andrey Belevantsev <abel@ispras.ru>
1502
1503 PR rtl-optimization/58960
1504 * haifa-sched.c (alloc_global_sched_pressure_data): New,
1505 factored out from ...
1506 (sched_init): ... here.
1507 (free_global_sched_pressure_data): New, factored out from ...
1508 (sched_finish): ... here.
1509 * sched-int.h (free_global_sched_pressure_data): Declare.
1510 * sched-rgn.c (nr_regions_initial): New static global.
1511 (haifa_find_rgns): Initialize it.
1512 (schedule_region): Disable sched-pressure for the newly
1513 generated regions.
1514
1515 2014-02-17 Richard Biener <rguenther@suse.de>
1516
1517 * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
1518 release SSA defs of pattern stmts.
1519
1520 2014-02-17 Richard Biener <rguenther@suse.de>
1521
1522 * tree-inline.c (expand_call_inline): Release the virtual
1523 operand defined by the call we are about to inline.
1524
1525 2014-02-17 Richard Biener <rguenther@suse.de>
1526
1527 * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
1528
1529 2014-02-17 Kirill Yukhin <kirill.yukhin@intel.com>
1530 Ilya Tocar <ilya.tocar@intel.com>
1531
1532 * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
1533 arguments order in builtin.
1534 (_mm512_permutexvar_epi64): Ditto.
1535 (_mm512_mask_permutexvar_epi64): Ditto
1536 (_mm512_maskz_permutexvar_epi32): Ditto
1537 (_mm512_permutexvar_epi32): Ditto
1538 (_mm512_mask_permutexvar_epi32): Ditto
1539
1540 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1541
1542 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
1543 (p8_vmrgow): Likewise.
1544
1545 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1546
1547 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
1548 endian targets.
1549
1550 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
1551
1552 PR target/60203
1553 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
1554 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
1555 into 64-bit and 32-bit moves. On 64-bit moves, add support for
1556 using direct move instructions on ISA 2.07. Also adjust
1557 instruction length for 64-bit.
1558 (mov<mode>_64bit, TFmode/TDmode): Likewise.
1559 (mov<mode>_32bit, TFmode/TDmode): Likewise.
1560
1561 2014-02-15 Alan Modra <amodra@gmail.com>
1562
1563 PR target/58675
1564 PR target/57935
1565 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
1566 find_replacement on parts of insn rtl that might be reloaded.
1567
1568 2014-02-15 Richard Biener <rguenther@suse.de>
1569
1570 PR tree-optimization/60183
1571 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
1572 (tree_ssa_phiprop): Calculate and free post-dominators.
1573
1574 2014-02-14 Jeff Law <law@redhat.com>
1575
1576 PR rtl-optimization/60131
1577 * ree.c (get_extended_src_reg): New function.
1578 (combine_reaching_defs): Use it rather than assuming location of REG.
1579 (find_and_remove_re): Verify first operand of extension is
1580 a REG before adding the insns to the copy list.
1581
1582 2014-02-14 Roland McGrath <mcgrathr@google.com>
1583
1584 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
1585 * configure: Regenerated.
1586 * config.in: Regenerated.
1587 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
1588 instead of ASM_SHORT.
1589
1590 2014-02-14 Vladimir Makarov <vmakarov@redhat.com>
1591 Richard Earnshaw <rearnsha@arm.com>
1592
1593 PR rtl-optimization/59535
1594 * lra-constraints.c (process_alt_operands): Encourage alternative
1595 when unassigned pseudo class is superset of the alternative class.
1596 (inherit_reload_reg): Don't inherit when optimizing for code size.
1597 * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
1598 returning CORE_REGS for anything but Thumb1 and BASE_REGS for
1599 modes not less than 4 for Thumb1.
1600
1601 2014-02-14 Kyle McMartin <kyle@redhat.com>
1602
1603 PR pch/60010
1604 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
1605
1606 2014-02-14 Richard Biener <rguenther@suse.de>
1607
1608 * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
1609 (get_frame_arg): Drop the assert with langhook types_compatible_p.
1610 Do not strip INDIRECT_REFs.
1611
1612 2014-02-14 Richard Biener <rguenther@suse.de>
1613
1614 PR lto/60179
1615 * lto-streamer-out.c (DFS_write_tree_body): Do not follow
1616 DECL_FUNCTION_SPECIFIC_TARGET.
1617 (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
1618 * tree-streamer-out.c (pack_ts_target_option): Remove.
1619 (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
1620 (write_ts_function_decl_tree_pointers): Do not stream
1621 DECL_FUNCTION_SPECIFIC_TARGET.
1622 * tree-streamer-in.c (unpack_ts_target_option): Remove.
1623 (unpack_value_fields): Do not stream TS_TARGET_OPTION.
1624 (lto_input_ts_function_decl_tree_pointers): Do not stream
1625 DECL_FUNCTION_SPECIFIC_TARGET.
1626
1627 2014-02-14 Jakub Jelinek <jakub@redhat.com>
1628
1629 * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
1630 (get_initial_def_for_induction, vectorizable_induction): Ignore
1631 debug stmts when looking for exit_phi.
1632 (vectorizable_live_operation): Fix up condition.
1633
1634 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
1635
1636 * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
1637 nreverse() because it changes the content of original tree list.
1638
1639 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
1640
1641 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
1642 * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
1643
1644 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
1645
1646 * config/nds32/nds32.c (nds32_naked_function_p): Follow the
1647 GNU coding standards.
1648
1649 2014-02-13 Jakub Jelinek <jakub@redhat.com>
1650
1651 PR debug/60152
1652 * dwarf2out.c (gen_subprogram_die): Don't call
1653 add_calling_convention_attribute if subr_die is old_die.
1654
1655 2014-02-13 Sharad Singhai <singhai@google.com>
1656
1657 * doc/optinfo.texi: Fix order of nodes.
1658
1659 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
1660
1661 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
1662 operands[2], not operands[3].
1663
1664 2014-02-13 Richard Biener <rguenther@suse.de>
1665
1666 PR bootstrap/59878
1667 * doc/install.texi (ISL): Update recommended version to 0.12.2,
1668 mention the possibility of an in-tree build.
1669 (CLooG): Update recommended version to 0.18.1, mention the
1670 possibility of an in-tree build and clarify that the ISL
1671 bundled with CLooG does not work.
1672
1673 2014-02-13 Jakub Jelinek <jakub@redhat.com>
1674
1675 PR target/43546
1676 * expr.c (compress_float_constant): If x is a hard register,
1677 extend into a pseudo and then move to x.
1678
1679 2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
1680
1681 * config/s390/s390.c (s390_asm_output_function_label): Fix crash
1682 caused by bad second argument to warning_at() with -mhotpatch and
1683 nested functions (e.g. with gfortran).
1684
1685 2014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
1686
1687 * opts.c (option_name): Remove "enabled by default" rider.
1688
1689 2014-02-12 John David Anglin <danglin@gcc.gnu.org>
1690
1691 * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
1692
1693 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
1694 Uros Bizjak <ubizjak@gmail.com>
1695
1696 PR target/60151
1697 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
1698 * configure: Regenerated.
1699
1700 2014-02-12 Richard Biener <rguenther@suse.de>
1701
1702 * vec.c (vec_prefix::calculate_allocation): Move as
1703 inline variant to vec.h.
1704 (vec_prefix::calculate_allocation_1): New out-of-line version.
1705 * vec.h (vec_prefix::calculate_allocation_1): Declare.
1706 (vec_prefix::m_has_auto_buf): Rename to ...
1707 (vec_prefix::m_using_auto_storage): ... this.
1708 (vec_prefix::calculate_allocation): Inline the easy cases
1709 and dispatch to calculate_allocation_1 which doesn't need the
1710 prefix address.
1711 (va_heap::reserve): Use gcc_checking_assert.
1712 (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
1713 m_using_auto_storage.
1714 (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
1715 member and adjust.
1716 (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
1717 (vec<T, va_heap, vl_ptr>::release): Avoid casting.
1718 (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
1719
1720 2014-02-12 Richard Biener <rguenther@suse.de>
1721
1722 * gcse.c (compute_transp): break from loop over canon_modify_mem_list
1723 when we found a dependence.
1724
1725 2014-02-12 Thomas Schwinge <thomas@codesourcery.com>
1726
1727 * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
1728 common code...
1729 (maybe_fold_stmt): ... into this new function.
1730 * omp-low.c (lower_omp): Update comment.
1731
1732 * omp-low.c (lower_omp_target): Add clobber for sizes array, after
1733 last use.
1734
1735 * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
1736 dereference.
1737
1738 2014-02-12 James Greenhalgh <james.greenhalgh@arm.com>
1739
1740 * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
1741 identifiers in comments.
1742 (cortexa53_extra_costs): Likewise.
1743 * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
1744 (cortexa7_extra_costs): Likewise.
1745 (cortexa12_extra_costs): Likewise.
1746 (cortexa15_extra_costs): Likewise.
1747 (v7m_extra_costs): Likewise.
1748
1749 2014-02-12 Richard Biener <rguenther@suse.de>
1750
1751 PR middle-end/60092
1752 * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
1753 of posix_memalign being successful.
1754 (lower_stmt): Restrict lowering of posix_memalign to when
1755 -ftree-bit-ccp is enabled.
1756
1757 2014-02-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
1758
1759 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
1760 arg_loc.
1761 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
1762
1763 2014-02-12 Eric Botcazou <ebotcazou@adacore.com>
1764
1765 PR rtl-optimization/60116
1766 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
1767 other_insn once the combination has been validated.
1768
1769 2014-02-11 Jan Hubicka <hubicka@ucw.cz>
1770
1771 PR lto/59468
1772 * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
1773 and wrapper.
1774 * ipa-devirt.c: Include demangle.h
1775 (odr_violation_reported): New static variable.
1776 (add_type_duplicate): Update odr_violations.
1777 (maybe_record_node): Add completep parameter; update it.
1778 (record_target_from_binfo): Add COMPLETEP parameter;
1779 update it as needed.
1780 (possible_polymorphic_call_targets_1): Likewise.
1781 (struct polymorphic_call_target_d): Add nonconstruction_targets;
1782 rename FINAL to COMPLETE.
1783 (record_targets_from_bases): Sanity check we found the binfo;
1784 fix COMPLETEP updating.
1785 (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
1786 parameter, fix computing of COMPLETEP.
1787 (dump_possible_polymorphic_call_targets): Imrove readability of dump;
1788 at LTO time do demangling.
1789 (ipa_devirt): Use nonconstruction_targets; Improve dumps.
1790 * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
1791 parameter.
1792 (gimple_get_virt_method_for_binfo): Likewise.
1793 * gimple-fold.h (gimple_get_virt_method_for_binfo,
1794 gimple_get_virt_method_for_vtable): Update prototypes.
1795
1796 2014-02-11 Vladimir Makarov <vmakarov@redhat.com>
1797
1798 PR target/49008
1799 * genautomata.c (add_presence_absence): Fix typo with
1800 {final_}presence_list.
1801
1802 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
1803
1804 PR target/60137
1805 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
1806 for VSX/Altivec vectors that land in GPR registers.
1807
1808 2014-02-11 Richard Henderson <rth@redhat.com>
1809 Jakub Jelinek <jakub@redhat.com>
1810
1811 PR debug/59776
1812 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
1813 around drhs if type conversion to lacc->type is not useless.
1814
1815 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1816
1817 * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
1818 tuning struct.
1819 (cortex-a57.cortex-a53): Likewise.
1820 * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
1821
1822 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1823
1824 * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
1825 arm_restrict_it.
1826
1827 2014-02-11 Renlin Li <Renlin.Li@arm.com>
1828
1829 * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
1830 add_options_for_arm_vfp3.
1831
1832 2014-02-11 Jeff Law <law@redhat.com>
1833
1834 PR middle-end/54041
1835 * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
1836 object with an undesirable mode.
1837
1838 2014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1839
1840 PR libgomp/60107
1841 * config/i386/sol2-9.h: New file.
1842 * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
1843 *-*-solaris2.9*): Use it.
1844
1845 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
1846
1847 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
1848 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
1849
1850 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
1851
1852 * config/microblaze/microblaze.c: Extend mcpu version format
1853
1854 2014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
1855
1856 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
1857
1858 2014-02-10 Richard Henderson <rth@redhat.com>
1859
1860 PR target/59927
1861 * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
1862 * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
1863 ms-abi vs -mno-accumulate-outgoing-args.
1864 (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
1865 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
1866 respect to ms-abi.
1867
1868 2014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
1869
1870 PR middle-end/60080
1871 * cfgexpand.c (expand_asm_operands): Attach source location to
1872 ASM_INPUT rtx objects.
1873 * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
1874
1875 2014-02-10 Nick Clifton <nickc@redhat.com>
1876
1877 * config/mn10300/mn10300.c (popcount): New function.
1878 (mn10300_expand_prologue): Include saved registers in stack usage
1879 count.
1880
1881 2014-02-10 Jeff Law <law@redhat.com>
1882
1883 PR middle-end/52306
1884 * reload1.c (emit_input_reload_insns): Do not create invalid RTL
1885 when changing the SET_DEST of a prior insn to avoid an input reload.
1886
1887 2014-02-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1888
1889 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
1890 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
1891 -mcall-openbsd, or -mcall-linux.
1892 (CC1_ENDIAN_BIG_SPEC): Remove.
1893 (CC1_ENDIAN_LITTLE_SPEC): Remove.
1894 (CC1_ENDIAN_DEFAULT_SPEC): Remove.
1895 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
1896 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
1897 and %cc1_endian_default.
1898 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
1899
1900 2014-02-10 Richard Biener <rguenther@suse.de>
1901
1902 PR tree-optimization/60115
1903 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
1904 MEM_REF handling. Properly verify that the accesses are not
1905 out of the objects bound.
1906
1907 2014-02-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1908
1909 * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
1910 coretex to cortex.
1911
1912 2014-02-10 Eric Botcazou <ebotcazou@adacore.com>
1913
1914 * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
1915 proper constants and fix formatting.
1916 (possible_polymorphic_call_targets): Fix formatting.
1917
1918 2014-02-10 Kirill Yukhin <kirill.yukhin@intel.com>
1919 Ilya Tocar <ilya.tocar@intel.com>
1920
1921 * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
1922 (_mm512_loadu_epi32): Renamed into...
1923 (_mm512_loadu_si512): This.
1924 (_mm512_storeu_epi32): Renamed into...
1925 (_mm512_storeu_si512): This.
1926 (_mm512_maskz_ceil_ps): Removed.
1927 (_mm512_maskz_ceil_pd): Ditto.
1928 (_mm512_maskz_floor_ps): Ditto.
1929 (_mm512_maskz_floor_pd): Ditto.
1930 (_mm512_floor_round_ps): Ditto.
1931 (_mm512_floor_round_pd): Ditto.
1932 (_mm512_ceil_round_ps): Ditto.
1933 (_mm512_ceil_round_pd): Ditto.
1934 (_mm512_mask_floor_round_ps): Ditto.
1935 (_mm512_mask_floor_round_pd): Ditto.
1936 (_mm512_mask_ceil_round_ps): Ditto.
1937 (_mm512_mask_ceil_round_pd): Ditto.
1938 (_mm512_maskz_floor_round_ps): Ditto.
1939 (_mm512_maskz_floor_round_pd): Ditto.
1940 (_mm512_maskz_ceil_round_ps): Ditto.
1941 (_mm512_maskz_ceil_round_pd): Ditto.
1942 (_mm512_expand_pd): Ditto.
1943 (_mm512_expand_ps): Ditto.
1944 * config/i386/i386.c (ix86_builtins): Remove
1945 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
1946 (bdesc_args): Ditto.
1947 * config/i386/predicates.md (const1256_operand): New.
1948 (const_1_to_2_operand): Ditto.
1949 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
1950 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
1951 (*avx512pf_gatherpf<mode>sf): Ditto.
1952 (avx512pf_gatherpf<mode>df): Ditto.
1953 (*avx512pf_gatherpf<mode>df_mask): Ditto.
1954 (*avx512pf_gatherpf<mode>df): Ditto.
1955 (avx512pf_scatterpf<mode>sf): Ditto.
1956 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
1957 (*avx512pf_scatterpf<mode>sf): Ditto.
1958 (avx512pf_scatterpf<mode>df): Ditto.
1959 (*avx512pf_scatterpf<mode>df_mask): Ditto.
1960 (*avx512pf_scatterpf<mode>df): Ditto.
1961 (avx512f_expand<mode>): Removed.
1962 (<shift_insn><mode>3<mask_name>): Change predicate type.
1963
1964 2014-02-08 Jakub Jelinek <jakub@redhat.com>
1965
1966 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
1967 not at the end of datarefs vector use ordered_remove to avoid
1968 reordering datarefs vector.
1969
1970 PR c/59984
1971 * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
1972 mark local addressable non-static vars as GOVD_PRIVATE
1973 instead of GOVD_LOCAL.
1974 * omp-low.c (lower_omp_for): Move gimple_bind_vars
1975 and BLOCK_VARS of gimple_bind_block to new_stmt rather
1976 than copying them.
1977
1978 PR middle-end/60092
1979 * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
1980 if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
1981 assume_aligned or alloc_align attributes.
1982 (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
1983 arguments. Handle also assume_aligned and alloc_align attributes.
1984 (evaluate_stmt): Adjust bit_value_assume_aligned caller. Handle
1985 calls to functions with assume_aligned or alloc_align attributes.
1986 * doc/extend.texi: Document assume_aligned and alloc_align attributes.
1987
1988 2014-02-08 Terry Guo <terry.guo@arm.com>
1989
1990 * doc/invoke.texi: Document ARM -march=armv7e-m.
1991
1992 2014-02-08 Jakub Jelinek <jakub@redhat.com>
1993
1994 * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
1995 flag on __cilkrts_rethrow builtin.
1996
1997 PR ipa/60026
1998 * ipa-cp.c (determine_versionability): Fail at -O0
1999 or __attribute__((optimize (0))) or -fno-ipa-cp functions.
2000 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
2001
2002 Revert:
2003 2014-02-04 Jakub Jelinek <jakub@redhat.com>
2004
2005 PR ipa/60026
2006 * tree-inline.c (copy_forbidden): Fail for
2007 __attribute__((optimize (0))) functions.
2008
2009 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
2010
2011 * varpool.c: Include pointer-set.h.
2012 (varpool_remove_unreferenced_decls): Variables in other partitions
2013 will not be output; be however careful to not lose information
2014 about partitioning.
2015
2016 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
2017
2018 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
2019 lookup in the vtable constructor.
2020
2021 2014-02-07 Jeff Law <law@redhat.com>
2022
2023 PR target/40977
2024 * config/m68k/m68k.md (ashldi_extsi): Turn into a
2025 define_insn_and_split.
2026
2027 * ipa-inline.c (inline_small_functions): Fix typos.
2028
2029 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
2030
2031 * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
2032 (s390_can_use_return_insn): Declare.
2033 * config/s390/s390.h (EPILOGUE_USES): Define.
2034 * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
2035 instructions.
2036 (s390_chunkify_start): Handle return JUMP_LABELs.
2037 (s390_early_mach): Emit a main_pool instruction on the entry edge.
2038 (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
2039 (s390_can_use_return_insn): New functions.
2040 (s390_fix_long_loop_prediction): Handle conditional returns.
2041 (TARGET_SET_UP_BY_PROLOGUE): Define.
2042 * config/s390/s390.md (ANY_RETURN): New code iterator.
2043 (*creturn, *csimple_return, return, simple_return): New patterns.
2044
2045 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
2046
2047 * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
2048 notes to each restore. Also add REG_CFA_DEF_CFA when restoring %r15.
2049 (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P. Update the
2050 REG_CFA_RESTORE list when deciding not to restore a register.
2051
2052 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
2053
2054 * config/s390/s390.c: Include tree-pass.h and context.h.
2055 (s390_early_mach): New function, split out from...
2056 (s390_emit_prologue): ...here.
2057 (pass_data_s390_early_mach): New pass structure.
2058 (pass_s390_early_mach): New class.
2059 (s390_option_override): Create and register early_mach pass.
2060 Move to end of file.
2061
2062 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
2063
2064 * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
2065 to match for the exit block.
2066
2067 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2068
2069 * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
2070 ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
2071 Reject misaligned operands.
2072
2073 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2074
2075 * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
2076
2077 2014-02-07 Richard Biener <rguenther@suse.de>
2078
2079 PR middle-end/60092
2080 * gimple-low.c (lower_builtin_posix_memalign): New function.
2081 (lower_stmt): Call it to lower posix_memalign in a way
2082 to make alignment info accessible.
2083
2084 2014-02-07 Jakub Jelinek <jakub@redhat.com>
2085
2086 PR c++/60082
2087 * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
2088 __builtin_setjmp_receiver.
2089
2090 2014-02-07 Richard Biener <rguenther@suse.de>
2091
2092 PR middle-end/60092
2093 * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
2094 * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
2095 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
2096 Handle BUILT_IN_POSIX_MEMALIGN.
2097 (find_func_clobbers): Likewise.
2098 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
2099 (call_may_clobber_ref_p_1): Likewise.
2100
2101 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
2102
2103 PR ipa/59918
2104 * ipa-devirt.c (record_target_from_binfo): Remove overactive
2105 sanity check.
2106
2107 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
2108
2109 PR ipa/59469
2110 * lto-cgraph.c (lto_output_node): Use
2111 symtab_get_symbol_partitioning_class.
2112 (lto_output_varpool_node): likewise.
2113 (symtab_get_symbol_partitioning_class): Move here from
2114 lto/lto-partition.c
2115 * cgraph.h (symbol_partitioning_class): Likewise.
2116 (symtab_get_symbol_partitioning_class): Declare.
2117
2118 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
2119
2120 * ggc.h (ggc_internal_cleared_alloc): New macro.
2121 * vec.h (vec_safe_copy): Handle memory stats.
2122 * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
2123 * target-globals.c (save_target_globals): Likewise.
2124
2125 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
2126
2127 PR target/60077
2128 * expr.c (emit_move_resolve_push): Export; be bit more selective
2129 on when to clear alias set.
2130 * expr.h (emit_move_resolve_push): Declare.
2131 * function.h (struct function): Add tail_call_marked.
2132 * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
2133 * config/i386/i386-protos.h (ix86_expand_push): Remove.
2134 * config/i386/i386.md (TImode move expander): De not call
2135 ix86_expand_push.
2136 (FP push expanders): Preserve memory attributes.
2137 * config/i386/sse.md (push<mode>1): Remove.
2138 * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
2139 (ix86_expand_push): Remove.
2140 * config/i386/mmx.md (push<mode>1): Remove.
2141
2142 2014-02-06 Jakub Jelinek <jakub@redhat.com>
2143
2144 PR rtl-optimization/60030
2145 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
2146 lopart with paradoxical subreg before shifting it up by hprec.
2147
2148 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2149
2150 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
2151 Remove extra newline at end of file.
2152 * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
2153 (arm_issue_rate): Handle cortexa57.
2154 * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
2155 (cortex-a57.cortex-a53): Likewise.
2156
2157 2014-02-06 Jakub Jelinek <jakub@redhat.com>
2158
2159 PR target/59575
2160 * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
2161 don't record in REG_FRAME_RELATED_EXPR registers not set in that
2162 bitmask.
2163 (arm_expand_prologue): Adjust all callers.
2164 (arm_unwind_emit_sequence): Allow saved, but not important for unwind
2165 info, registers also at the lowest numbered registers side. Use
2166 gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
2167 XEXP.
2168
2169 PR debug/59992
2170 * var-tracking.c (adjust_mems): Before adding a SET to
2171 amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
2172
2173 2014-02-06 Alan Modra <amodra@gmail.com>
2174
2175 PR target/60032
2176 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
2177 change SDmode to DDmode when lra_in_progress.
2178
2179 2014-02-06 Jakub Jelinek <jakub@redhat.com>
2180
2181 PR middle-end/59150
2182 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
2183 free_data_ref on the dr first, and before goto again also set dr
2184 to the next dr. For simd_lane_access, free old datarefs[i] before
2185 overwriting it. For get_vectype_for_scalar_type failure, don't
2186 free_data_ref if simd_lane_access.
2187
2188 * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
2189
2190 PR target/60062
2191 * tree.h (opts_for_fn): New inline function.
2192 (opt_for_fn): Define.
2193 * config/i386/i386.c (ix86_function_regparm): Use
2194 opt_for_fn (decl, optimize) instead of optimize.
2195
2196 2014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
2197
2198 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
2199 for SYMBOL_REF in large memory model.
2200
2201 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2202
2203 * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
2204 and crypto support.
2205 (cortex-a57): Likewise.
2206 (cortex-a57.cortex-a53): Likewise.
2207
2208 2014-02-06 Yury Gribov <y.gribov@samsung.com>
2209 Kugan Vivekanandarajah <kuganv@linaro.org>
2210
2211 * config/arm/arm.c (arm_vector_alignment_reachable): Check
2212 unaligned_access.
2213 * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
2214
2215 2014-02-06 Richard Biener <rguenther@suse.de>
2216
2217 * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
2218 set_loop_copy and initialize_original_copy_tables.
2219
2220 2014-02-06 Alex Velenko <Alex.Velenko@arm.com>
2221
2222 * config/aarch64/aarch64-simd.md
2223 (aarch64_ashr_simddi): Change QI to SI.
2224
2225 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
2226 Jakub Jelinek <jakub@redhat.com>
2227
2228 PR middle-end/60013
2229 * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
2230 of the dataflow.
2231
2232 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2233
2234 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
2235 CODE_FOR_altivec_vpku[hw]um to
2236 CODE_FOR_altivec_vpku[hw]um_direct.
2237 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
2238 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
2239 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
2240 UNSPEC_VUNPACK_LO_SIGN_DIRECT.
2241
2242 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2243
2244 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
2245 generation for -maltivec=be.
2246 (altivec_vsumsws): Simplify redundant test.
2247
2248 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2249
2250 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
2251 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
2252 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
2253 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
2254 gen_altivec_vpkuwum.
2255 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
2256 BYTES_BIG_ENDIAN.
2257 (altivec_vpks<VI_char>ss): Likewise.
2258 (altivec_vpks<VI_char>us): Likewise.
2259 (altivec_vpku<VI_char>us): Likewise.
2260 (altivec_vpku<VI_char>um): Likewise.
2261 (altivec_vpku<VI_char>um_direct): New (copy of
2262 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
2263 internal use).
2264 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
2265 target is little endian and -maltivec=be is not specified.
2266 (*altivec_vupkhs<VU_char>_direct): New (copy of
2267 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
2268 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
2269 target is little endian and -maltivec=be is not specified.
2270 (*altivec_vupkls<VU_char>_direct): New (copy of
2271 altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
2272 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
2273 little endian and -maltivec=be is not specified.
2274 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
2275 little endian and -maltivec=be is not specified.
2276
2277 2014-02-05 Richard Henderson <rth@redhat.com>
2278
2279 PR debug/52727
2280 * combine-stack-adj.c: Revert r206943.
2281 * sched-int.h (struct deps_desc): Add last_args_size.
2282 * sched-deps.c (init_deps): Initialize it.
2283 (sched_analyze_insn): Add OUTPUT dependencies between insns that
2284 contain REG_ARGS_SIZE notes.
2285
2286 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
2287
2288 * lto-cgraph.c (asm_nodes_output): Make global.
2289 * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
2290 * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
2291 (driver_handle_option): Handle OPT_fwpa.
2292
2293 2014-02-05 Jakub Jelinek <jakub@redhat.com>
2294
2295 PR ipa/59947
2296 * ipa-devirt.c (possible_polymorphic_call_targets): Fix
2297 a comment typo and formatting issue. If odr_hash hasn't been
2298 created, return vNULL and set *completep to false.
2299
2300 PR middle-end/57499
2301 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
2302 bb with no successors.
2303
2304 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
2305
2306 PR target/59718
2307 * doc/invoke.texi (-march): Clarify documentation for ARM.
2308 (-mtune): Likewise.
2309 (-mcpu): Likewise.
2310
2311 2014-02-05 Richard Biener <rguenther@suse.de>
2312
2313 * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
2314 when not vectorizing because of too many alias checks.
2315 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
2316 Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
2317
2318 2014-02-05 Nick Clifton <nickc@redhat.com>
2319
2320 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
2321 accept extended registers in any mode when compiling for the MN10300.
2322
2323 2014-02-05 Yury Gribov <y.gribov@samsung.com>
2324
2325 * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
2326 * ipa-inline.c (report_inline_failed_reason): Handle mismatched
2327 sanitization attributes.
2328 (can_inline_edge_p): Likewise.
2329 (sanitize_attrs_match_for_inline_p): New function.
2330
2331 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
2332
2333 * ipa-prop.c (detect_type_change): Shor circuit testing of
2334 type changes on THIS pointer.
2335
2336 2014-02-04 John David Anglin <danglin@gcc.gnu.org>
2337
2338 PR target/59777
2339 * config/pa/pa.c (legitimize_tls_address): Return original address
2340 if not passed a SYMBOL_REF rtx.
2341 (hppa_legitimize_address): Call legitimize_tls_address for all TLS
2342 addresses.
2343 (pa_emit_move_sequence): Simplify TLS source operands.
2344 (pa_legitimate_constant_p): Reject all TLS constants.
2345 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
2346 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
2347
2348 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
2349
2350 * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
2351 groups when we know they are controlled by LTO.
2352 * varasm.c (default_binds_local_p_1): If object is in other partition,
2353 it will be resolved locally.
2354
2355 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
2356
2357 * config/host-linux.c (linux_gt_pch_use_address): Don't
2358 use SSIZE_MAX because it is not always defined.
2359
2360 2014-02-04 Vladimir Makarov <vmakarov@redhat.com>
2361
2362 PR bootstrap/59913
2363 * lra-constraints.c (need_for_split_p): Use more 3 reloads as
2364 threshold for pseudo splitting.
2365 (update_ebb_live_info): Process call argument hard registers and
2366 hard registers from insn definition too.
2367 (max_small_class_regs_num): New constant.
2368 (inherit_in_ebb): Update live hard regs through EBBs. Update
2369 reloads_num only for small register classes. Don't split for
2370 outputs of jumps.
2371
2372 2014-02-04 Markus Trippelsdorf <markus@trippelsdorf.de>
2373
2374 PR ipa/60058
2375 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
2376 is non-null.
2377
2378 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
2379
2380 * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
2381 visibility is safe.
2382
2383 2014-02-04 Marek Polacek <polacek@redhat.com>
2384
2385 * gdbinit.in (pel): Define.
2386
2387 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
2388
2389 * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
2390 behavior.
2391
2392 2014-02-04 Richard Biener <rguenther@suse.de>
2393
2394 PR lto/59723
2395 * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
2396 in function context local.
2397 (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
2398 * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
2399 similar to LTO_imported_decl_ref.
2400
2401 2014-02-04 Jakub Jelinek <jakub@redhat.com>
2402
2403 PR tree-optimization/60002
2404 * cgraphclones.c (build_function_decl_skip_args): Clear
2405 DECL_LANG_SPECIFIC.
2406
2407 PR tree-optimization/60023
2408 * tree-if-conv.c (predicate_mem_writes): Pass true instead of
2409 false to gsi_replace.
2410 * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
2411 has been in some EH region and vec_stmt could throw, add
2412 vec_stmt into the same EH region.
2413 * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
2414 has no lhs, ignore it.
2415 * internal-fn.c (expand_MASK_LOAD): Likewise.
2416
2417 PR ipa/60026
2418 * tree-inline.c (copy_forbidden): Fail for
2419 __attribute__((optimize (0))) functions.
2420
2421 PR other/58712
2422 * omp-low.c (simd_clone_struct_copy): If from->inbranch
2423 is set, copy one less argument.
2424 (expand_simd_clones): Don't subtract clone_info->inbranch
2425 from simd_clone_struct_alloc argument.
2426
2427 PR rtl-optimization/57915
2428 * recog.c (simplify_while_replacing): If all unary/binary/relational
2429 operation arguments are constant, attempt to simplify those.
2430
2431 PR middle-end/59261
2432 * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
2433 if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
2434
2435 2014-02-04 Richard Biener <rguenther@suse.de>
2436
2437 PR tree-optimization/60012
2438 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
2439 TBAA disambiguation to all DDRs.
2440
2441 2014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2442
2443 PR target/59788
2444 * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
2445 (LINK_SPEC): Use it for -shared, -shared-libgcc.
2446
2447 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
2448
2449 PR ipa/59882
2450 * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
2451
2452 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
2453
2454 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
2455 * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
2456
2457 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
2458
2459 PR ipa/59831
2460 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
2461 to figure out targets of polymorphic calls with known decl.
2462 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
2463 * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
2464 * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
2465 (get_polymorphic_call_info): ... here.
2466 (get_polymorphic_call_info_from_invariant): New function.
2467
2468 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
2469
2470 * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
2471 lookup via vtable pointer; check for type consistency
2472 and turn inconsitent facts into UNREACHABLE.
2473 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
2474 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
2475 type inconsistent querries; return UNREACHABLE instead.
2476
2477 2014-02-03 Richard Henderson <rth@twiddle.net>
2478
2479 PR tree-opt/59924
2480 * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
2481 already processed this node.
2482 (normalize_one_pred_1): Pass along mark_set.
2483 (normalize_one_pred): Create and destroy a pointer_set_t.
2484 (normalize_one_pred_chain): Likewise.
2485
2486 2014-02-03 Laurent Aflonsi <laurent.alfonsi@st.com>
2487
2488 PR gcov-profile/58602
2489 * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
2490
2491 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
2492
2493 PR ipa/59831
2494 * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
2495 -fno-devirtualize; try to devirtualize by the knowledge of
2496 virtual table pointer given by aggregate propagation.
2497 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
2498 (ipa_print_node_jump_functions): Dump also offset that
2499 is relevant for polymorphic calls.
2500 (determine_known_aggregate_parts): Add arg_type parameter; use it
2501 instead of determining the type from pointer type.
2502 (ipa_compute_jump_functions_for_edge): Update call of
2503 determine_known_aggregate_parts.
2504 * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
2505 (gimple_get_virt_method_for_binfo): ... here; simplify using
2506 vtable_pointer_value_to_vtable.
2507 * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
2508 * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
2509 to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
2510 (vtable_pointer_value_to_vtable): Break out from ...; handle also
2511 POINTER_PLUS_EXPR.
2512 (vtable_pointer_value_to_binfo): ... here.
2513 * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
2514
2515 2014-02-03 Teresa Johnson <tejohnson@google.com>
2516
2517 * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
2518 redef of outer loop index variable.
2519
2520 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
2521
2522 PR c++/53017
2523 PR c++/59211
2524 * doc/extend.texi (Function Attributes): Typo.
2525
2526 2014-02-03 Cong Hou <congh@google.com>
2527
2528 PR tree-optimization/60000
2529 * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
2530 if the vectorized statement is a store. A store statement can only
2531 appear at the end of pattern statements.
2532
2533 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
2534
2535 * config/i386/i386.c (flag_opts): Add -mlong-double-128.
2536 (ix86_option_override_internal): Default long double to 64-bit for
2537 32-bit Bionic and to 128-bit for 64-bit Bionic.
2538
2539 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
2540 TARGET_LONG_DOUBLE_128 is true.
2541 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
2542
2543 * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
2544 (mlong-double-64): Negate -mlong-double-128.
2545 (mlong-double-128): New option.
2546
2547 * config/i386/i386-c.c (ix86_target_macros): Define
2548 __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
2549
2550 * doc/invoke.texi: Document -mlong-double-128.
2551
2552 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
2553
2554 PR rtl-optimization/60024
2555 * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
2556
2557 2014-02-03 Markus Trippelsdorf <markus@trippelsdorf.de>
2558
2559 * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
2560
2561 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
2562
2563 PR rtl-optimization/57662
2564 * sel-sched.c (code_motion_path_driver): Do not mark already not
2565 existing blocks in the visiting bitmap.
2566
2567 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
2568
2569 * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
2570 on the insn being emitted.
2571
2572 2014-02-03 James Greenhalgh <james.greenhalgh@arm.com>
2573 Will Deacon <will.deacon@arm.com>
2574
2575 * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
2576
2577 2014-02-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2578
2579 * config/arm/arm-tables.opt: Regenerate.
2580
2581 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2582
2583 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
2584 for vector types other than V16QImode.
2585 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
2586 define_expand, and call altivec_expand_vec_perm_le when producing
2587 code with little endian element order.
2588 (*altivec_vperm_<mode>_internal): New insn having previous
2589 behavior of altivec_vperm_<mode>.
2590 (altivec_vperm_<mode>_uns): Change to a define_expand, and call
2591 altivec_expand_vec_perm_le when producing code with little endian
2592 element order.
2593 (*altivec_vperm_<mode>_uns_internal): New insn having previous
2594 behavior of altivec_vperm_<mode>_uns.
2595
2596 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2597
2598 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
2599 (altivec_vsumsws): Add handling for -maltivec=be with a little
2600 endian target.
2601 (altivec_vsumsws_direct): New.
2602 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
2603 gen_altivec_vsumsws.
2604
2605 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
2606
2607 * ipa-devirt.c (subbinfo_with_vtable_at_offset,
2608 vtable_pointer_value_to_binfo): New functions.
2609 * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
2610 * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
2611
2612 2014-02-02 Sandra Loosemore <sandra@codesourcery.com>
2613
2614 * config/nios2/nios2.md (load_got_register): Initialize GOT
2615 pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
2616 * config/nios2/nios2.c (nios2_function_profiler): Likewise.
2617
2618 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
2619
2620 * ipa-prop.c (update_jump_functions_after_inlining): When type is not
2621 preserverd by passthrough, do not propagate the type.
2622
2623 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
2624
2625 * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
2626 (mips_atomic_assign_expand_fenv): New function.
2627 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
2628
2629 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
2630
2631 * doc/extend.texi (__builtin_mips_get_fcsr): Document.
2632 (__builtin_mips_set_fcsr): Likewise.
2633 * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
2634 MIPS_USI_FTYPE_VOID.
2635 * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
2636 (mips16_expand_set_fcsr): Likewise.
2637 * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
2638 (mips16_set_fcsr_stub): Likewise.
2639 (mips16_get_fcsr_one_only_stub): New class.
2640 (mips16_set_fcsr_one_only_stub): Likewise.
2641 (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
2642 (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
2643 (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
2644 (hard_float): New availability predicate.
2645 (mips_builtins): Add get_fcsr and set_fcsr.
2646 (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
2647 * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
2648 (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
2649 (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
2650 (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
2651 patterns.
2652
2653 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
2654
2655 * config/mips/mips.c (mips_one_only_stub): New class.
2656 (mips_need_mips16_rdhwr_p): Replace with...
2657 (mips16_rdhwr_stub): ...this new variable.
2658 (mips16_stub_call_address): New function.
2659 (mips16_rdhwr_one_only_stub): New class.
2660 (mips_expand_thread_pointer): Use mips16_stub_call_address.
2661 (mips_output_mips16_rdhwr): Delete.
2662 (mips_finish_stub): New function.
2663 (mips_code_end): Use it to handle rdhwr stubs.
2664
2665 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
2666
2667 PR target/60017
2668 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
2669 when calculating size of integer atomic types.
2670
2671 2014-02-02 H.J. Lu <hongjiu.lu@intel.com>
2672
2673 * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
2674
2675 2014-02-01 Jakub Jelinek <jakub@redhat.com>
2676
2677 PR tree-optimization/60003
2678 * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
2679 * profile.c (branch_prob): Use gimple_call_builtin_p
2680 to check for BUILT_IN_SETJMP_RECEIVER.
2681 * tree-inline.c (copy_bb): Call notice_special_calls.
2682
2683 2014-01-31 Vladimir Makarov <vmakarov@redhat.com>
2684
2685 PR bootstrap/59985
2686 * lra-constraints.c (process_alt_operands): Update reload_sum only
2687 on the first pass.
2688
2689 2014-01-31 Richard Henderson <rth@redhat.com>
2690
2691 PR middle-end/60004
2692 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
2693 until after else_eh is processed.
2694
2695 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
2696
2697 * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
2698 (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
2699 (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
2700 in smmintrin.h, remove them.
2701 (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
2702 * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
2703 * config/i386/i386.md (ROUND_SAE): Fix value.
2704 * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
2705 (const48_operand): New.
2706 * config/i386/subst.md (round), (round_expand): Use
2707 const_4_or_8_to_11_operand.
2708 (round_saeonly), (round_saeonly_expand): Use const48_operand.
2709
2710 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
2711
2712 * config/i386/constraints.md (Yk): Swap meaning with k.
2713 * config/i386/i386.md (movhi_internal): Change Yk to k.
2714 (movqi_internal): Ditto.
2715 (*k<logic><mode>): Ditto.
2716 (*andhi_1): Ditto.
2717 (*andqi_1): Ditto.
2718 (kandn<mode>): Ditto.
2719 (*<code>hi_1): Ditto.
2720 (*<code>qi_1): Ditto.
2721 (kxnor<mode>): Ditto.
2722 (kortestzhi): Ditto.
2723 (kortestchi): Ditto.
2724 (kunpckhi): Ditto.
2725 (*one_cmplhi2_1): Ditto.
2726 (*one_cmplqi2_1): Ditto.
2727 * config/i386/sse.md (): Change k to Yk.
2728 (avx512f_load<mode>_mask): Ditto.
2729 (avx512f_blendm<mode>): Ditto.
2730 (avx512f_store<mode>_mask): Ditto.
2731 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
2732 (avx512f_storedqu<mode>_mask): Ditto.
2733 (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
2734 Ditto.
2735 (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
2736 (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
2737 (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
2738 (avx512f_maskcmp<mode>3): Ditto.
2739 (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
2740 (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
2741 (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
2742 (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
2743 (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
2744 (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
2745 (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
2746 (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
2747 (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
2748 (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
2749 (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
2750 (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
2751 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
2752 (vec_extract_lo_<mode>_maskm): Ditto.
2753 (vec_extract_hi_<mode>_maskm): Ditto.
2754 (avx512f_vternlog<mode>_mask): Ditto.
2755 (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
2756 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
2757 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
2758 (avx512f_<code>v8div16qi2_mask): Ditto.
2759 (avx512f_<code>v8div16qi2_mask_store): Ditto.
2760 (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
2761 (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
2762 (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
2763 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
2764 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
2765 (*avx512pf_gatherpf<mode>df_mask): Ditto.
2766 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
2767 (*avx512pf_scatterpf<mode>df_mask): Ditto.
2768 (avx512cd_maskb_vec_dupv8di): Ditto.
2769 (avx512cd_maskw_vec_dupv16si): Ditto.
2770 (avx512f_vpermi2var<mode>3_maskz): Ditto.
2771 (avx512f_vpermi2var<mode>3_mask): Ditto.
2772 (avx512f_vpermi2var<mode>3_mask): Ditto.
2773 (avx512f_vpermt2var<mode>3_maskz): Ditto.
2774 (*avx512f_gathersi<mode>): Ditto.
2775 (*avx512f_gathersi<mode>_2): Ditto.
2776 (*avx512f_gatherdi<mode>): Ditto.
2777 (*avx512f_gatherdi<mode>_2): Ditto.
2778 (*avx512f_scattersi<mode>): Ditto.
2779 (*avx512f_scatterdi<mode>): Ditto.
2780 (avx512f_compress<mode>_mask): Ditto.
2781 (avx512f_compressstore<mode>_mask): Ditto.
2782 (avx512f_expand<mode>_mask): Ditto.
2783 * config/i386/subst.md (mask): Change k to Yk.
2784 (mask_scalar_merge): Ditto.
2785 (sd): Ditto.
2786
2787 2014-01-31 Marc Glisse <marc.glisse@inria.fr>
2788
2789 * doc/extend.texi (Vector Extensions): Document ?: in C++.
2790
2791 2014-01-31 Richard Biener <rguenther@suse.de>
2792
2793 PR middle-end/59990
2794 * builtins.c (fold_builtin_memory_op): Make sure to not
2795 use a floating-point mode or a boolean or enumeral type for
2796 the copy operation.
2797
2798 2014-01-30 DJ Delorie <dj@redhat.com>
2799
2800 * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
2801 * config/msp430/msp430.md (msp430_refsym_need_exit): New.
2802 * config/msp430/msp430.c (msp430_expand_epilogue): Call it
2803 whenever main() has an epilogue.
2804
2805 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2806
2807 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
2808 unused variable "field".
2809 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
2810 (vsx_mergeh_<mode>): Likewise.
2811 * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
2812 (altivec_vmrghh): Likewise.
2813 (altivec_vmrghw): Likewise.
2814 (altivec_vmrglb): Likewise.
2815 (altivec_vmrglh): Likewise.
2816 (altivec_vmrglw): Likewise.
2817 (altivec_vspltb): Add missing uses.
2818 (altivec_vsplth): Likewise.
2819 (altivec_vspltw): Likewise.
2820 (altivec_vspltsf): Likewise.
2821
2822 2014-01-30 Jakub Jelinek <jakub@redhat.com>
2823
2824 PR target/59923
2825 * ifcvt.c (cond_exec_process_insns): Don't conditionalize
2826 frame related instructions.
2827
2828 2014-01-30 Vladimir Makarov <vmakarov@redhat.com>
2829
2830 PR rtl-optimization/59959
2831 * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
2832 any reload of register whose subreg is invalid.
2833
2834 2014-01-30 Jakub Jelinek <jakub@redhat.com>
2835
2836 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
2837 * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
2838 Add missing return type - void.
2839
2840 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2841
2842 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
2843 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
2844 remove element index adjustment for endian (now handled in vsx.md
2845 and altivec.md).
2846 (altivec_expand_vec_perm_const): Use
2847 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
2848 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
2849 (vsx_xxspltw_<mode>): Adjust element index for little endian.
2850 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
2851 define_expand and a new define_insn *altivec_vspltb_internal;
2852 adjust for -maltivec=be on a little endian target.
2853 (altivec_vspltb_direct): New.
2854 (altivec_vsplth): Divide into a define_expand and a new
2855 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
2856 little endian target.
2857 (altivec_vsplth_direct): New.
2858 (altivec_vspltw): Divide into a define_expand and a new
2859 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
2860 little endian target.
2861 (altivec_vspltw_direct): New.
2862 (altivec_vspltsf): Divide into a define_expand and a new
2863 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
2864 a little endian target.
2865
2866 2014-01-30 Richard Biener <rguenther@suse.de>
2867
2868 PR tree-optimization/59993
2869 * tree-ssa-forwprop.c (associate_pointerplus): Check we
2870 can propagate form the earlier stmt and avoid the transform
2871 when the intermediate result is needed.
2872
2873 2014-01-30 Alangi Derick <alangiderick@gmail.com>
2874
2875 * README.Portability: Fix typo.
2876
2877 2014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
2878
2879 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
2880 comparison_operator with ordered_comparison_operator.
2881
2882 2014-01-30 Nick Clifton <nickc@redhat.com>
2883
2884 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
2885 Rename to mn10300_store_multiple_regs.
2886 * config/mn10300/mn10300.c: Likewise.
2887 * config/mn10300/mn10300.md (store_movm): Fix typo: call
2888 store_multiple_regs.
2889 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
2890 Call mn10300_store_multiple_regs.
2891
2892 2014-01-30 Nick Clifton <nickc@redhat.com>
2893 DJ Delorie <dj@redhat.com>
2894
2895 * config/rl78/rl78.c (register_sizes): Make the "upper half" of
2896 %fp 2 to keep registers after it properly word-aligned.
2897 (rl78_alloc_physical_registers_umul): Handle the case where both
2898 input operands are the same.
2899
2900 2014-01-30 Richard Biener <rguenther@suse.de>
2901
2902 PR tree-optimization/59903
2903 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
2904 check properly.
2905
2906 2014-01-30 Jason Merrill <jason@redhat.com>
2907
2908 PR c++/59633
2909 * tree.c (walk_type_fields): Handle VECTOR_TYPE.
2910
2911 PR c++/59645
2912 * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
2913
2914 2014-01-30 Richard Biener <rguenther@suse.de>
2915
2916 PR tree-optimization/59951
2917 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
2918
2919 2014-01-30 Savin Zlobec <savin.zlobec@gmail.com>
2920
2921 PR target/59784
2922 * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
2923 SFmode to DFmode case.
2924
2925 2014-01-29 DJ Delorie <dj@redhat.com>
2926
2927 * config/msp430/msp430.opt (-minrt): New.
2928 * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
2929 if -minrt given.
2930 (ENDFILE_SPEC): Likewise.
2931
2932 2014-01-29 Jan Hubicka <hubicka@ucw.cz>
2933
2934 * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
2935 (estimate_function_body_sizes): Use it.
2936
2937 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
2938
2939 PR c++/58561
2940 * dwarf2out.c (is_cxx_auto): New.
2941 (is_base_type): Use it.
2942 (gen_type_die_with_usage): Likewise.
2943
2944 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2945
2946 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
2947 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
2948 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
2949 -maltivec=be with LE targets.
2950 (vsx_mergeh_<mode>): Likewise.
2951 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
2952 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
2953 (altivec_vmrghb): Replace with define_expand and new
2954 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
2955 (altivec_vmrghb_direct): New define_insn.
2956 (altivec_vmrghh): Replace with define_expand and new
2957 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
2958 (altivec_vmrghh_direct): New define_insn.
2959 (altivec_vmrghw): Replace with define_expand and new
2960 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
2961 (altivec_vmrghw_direct): New define_insn.
2962 (*altivec_vmrghsf): Adjust for endianness.
2963 (altivec_vmrglb): Replace with define_expand and new
2964 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
2965 (altivec_vmrglb_direct): New define_insn.
2966 (altivec_vmrglh): Replace with define_expand and new
2967 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
2968 (altivec_vmrglh_direct): New define_insn.
2969 (altivec_vmrglw): Replace with define_expand and new
2970 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
2971 (altivec_vmrglw_direct): New define_insn.
2972 (*altivec_vmrglsf): Adjust for endianness.
2973 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
2974 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
2975 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
2976 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
2977 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
2978 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
2979 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
2980 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
2981
2982 2014-01-29 Marcus Shawcroft <marcus.shawcroft@arm.com>
2983
2984 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
2985 (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
2986 whitespace.
2987
2988 2014-01-29 Richard Biener <rguenther@suse.de>
2989
2990 PR tree-optimization/58742
2991 * tree-ssa-forwprop.c (associate_pointerplus): Rename to
2992 associate_pointerplus_align.
2993 (associate_pointerplus_diff): New function.
2994 (associate_pointerplus): Likewise. Call associate_pointerplus_align
2995 and associate_pointerplus_diff.
2996
2997 2014-01-29 Richard Biener <rguenther@suse.de>
2998
2999 * lto-streamer.h (LTO_major_version): Bump to 3.
3000 (LTO_minor_version): Reset to 0.
3001
3002 2014-01-29 Renlin Li <Renlin.Li@arm.com>
3003
3004 * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
3005 * config/arm/arm.c (FL_FOR_ARCH7VE): New.
3006 (arm_file_start): Generate correct asm header for armv7ve.
3007 * config/arm/bpabi.h: Add multilib support for armv7ve.
3008 * config/arm/driver-arm.c: Change the architectures of cortex-a7
3009 and cortex-a15 to armv7ve.
3010 * config/arm/t-aprofile: Add multilib support for armv7ve.
3011 * doc/invoke.texi: Document -march=armv7ve.
3012
3013 2014-01-29 Richard Biener <rguenther@suse.de>
3014
3015 PR tree-optimization/58742
3016 * tree-ssa-forwprop.c (associate_plusminus): Return true
3017 if we changed sth, defer EH cleanup to ...
3018 (ssa_forward_propagate_and_combine): ... here. Call simplify_mult.
3019 (simplify_mult): New function.
3020
3021 2014-01-29 Jakub Jelinek <jakub@redhat.com>
3022
3023 PR middle-end/59917
3024 PR tree-optimization/59920
3025 * tree.c (build_common_builtin_nodes): Remove
3026 __builtin_setjmp_dispatcher initialization.
3027 * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
3028 * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
3029 instead of gsi_after_labels + manually skipping debug stmts.
3030 Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
3031 ignore bbs with IFN_ABNORMAL_DISPATCHER.
3032 * tree-inline.c (copy_edges_for_bb): Remove
3033 can_make_abnormal_goto argument, instead add abnormal_goto_dest
3034 argument. Ignore computed_goto_p stmts. Don't call
3035 make_abnormal_goto_edges. If a call might need abnormal edges
3036 for non-local gotos, see if it already has an edge to
3037 IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
3038 with true argument, don't do anything then, otherwise add
3039 EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
3040 (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
3041 caller.
3042 * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
3043 (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
3044 (lower_stmt): Don't set data->calls_builtin_setjmp.
3045 (lower_builtin_setjmp): Adjust comment.
3046 * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
3047 * tree-cfg.c (found_computed_goto): Remove.
3048 (factor_computed_gotos): Remove.
3049 (make_goto_expr_edges): Return bool, true for computed gotos.
3050 Don't call make_abnormal_goto_edges.
3051 (build_gimple_cfg): Don't set found_computed_goto, don't call
3052 factor_computed_gotos.
3053 (computed_goto_p): No longer static.
3054 (make_blocks): Don't set found_computed_goto.
3055 (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
3056 (make_edges): If make_goto_expr_edges returns true, push bb
3057 into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
3058 instead of calling make_abnormal_goto_edges push bb into ab_edge_call
3059 vector. Record mapping between bbs and OpenMP regions if there
3060 are any, adjust make_gimple_omp_edges caller. Call
3061 handle_abnormal_edges.
3062 (make_abnormal_goto_edges): Remove.
3063 * tree-cfg.h (make_abnormal_goto_edges): Remove.
3064 (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
3065 * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
3066 * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
3067 * internal-fn.def (ABNORMAL_DISPATCHER): New.
3068 * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
3069 filling *region also set *region_idx to (*region)->entry->index.
3070
3071 PR other/58712
3072 * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
3073 For REGs set ORIGINAL_REGNO.
3074
3075 2014-01-29 Bingfeng Mei <bmei@broadcom.com>
3076
3077 * doc/md.texi: Mention that a target shouldn't implement
3078 vec_widen_(s|u)mul_even/odd pair if it is less efficient
3079 than hi/lo pair.
3080
3081 2014-01-29 Jakub Jelinek <jakub@redhat.com>
3082
3083 PR tree-optimization/59594
3084 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
3085 a copy of the datarefs vector rather than the vector itself.
3086
3087 2014-01-28 Jason Merrill <jason@redhat.com>
3088
3089 PR c++/53756
3090 * dwarf2out.c (auto_die): New static.
3091 (gen_type_die_with_usage): Handle C++1y 'auto'.
3092 (gen_subprogram_die): If in-class DIE had 'auto', emit type again
3093 on definition.
3094
3095 2014-01-28 H.J. Lu <hongjiu.lu@intel.com>
3096
3097 PR target/59672
3098 * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
3099 (SPEC_X32): Likewise.
3100 (SPEC_64): Likewise.
3101 * config/i386/i386.c (ix86_option_override_internal): Turn off
3102 OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
3103 for TARGET_16BIT.
3104 (x86_file_start): Output .code16gcc for TARGET_16BIT.
3105 * config/i386/i386.h (TARGET_16BIT): New macro.
3106 (TARGET_16BIT_P): Likewise.
3107 * config/i386/i386.opt: Add m16.
3108 * doc/invoke.texi: Document -m16.
3109
3110 2014-01-28 Jakub Jelinek <jakub@redhat.com>
3111
3112 PR preprocessor/59935
3113 * input.c (location_get_source_line): Bail out on when line number
3114 is zero, and test the return value of lookup_or_add_file_to_cache_tab.
3115
3116 2014-01-28 Richard Biener <rguenther@suse.de>
3117
3118 PR tree-optimization/58742
3119 * tree-ssa-forwprop.c (associate_plusminus): Handle
3120 pointer subtraction of the form (T)(P + A) - (T)P.
3121
3122 2014-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3123
3124 * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
3125 at const_int_cost.
3126
3127 2014-01-28 Richard Biener <rguenther@suse.de>
3128
3129 Revert
3130 2014-01-28 Richard Biener <rguenther@suse.de>
3131
3132 PR rtl-optimization/45364
3133 PR rtl-optimization/59890
3134 * var-tracking.c (local_get_addr_clear_given_value): Handle
3135 already cleared slot.
3136 (val_reset): Handle not allocated local_get_addr_cache.
3137 (vt_find_locations): Use post-order on the inverted CFG.
3138
3139 2014-01-28 Richard Biener <rguenther@suse.de>
3140
3141 * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
3142
3143 2014-01-28 Richard Biener <rguenther@suse.de>
3144
3145 PR rtl-optimization/45364
3146 PR rtl-optimization/59890
3147 * var-tracking.c (local_get_addr_clear_given_value): Handle
3148 already cleared slot.
3149 (val_reset): Handle not allocated local_get_addr_cache.
3150 (vt_find_locations): Use post-order on the inverted CFG.
3151
3152 2014-01-28 Alan Modra <amodra@gmail.com>
3153
3154 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
3155 * configure.ac <recursive call for build != host>: Define
3156 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
3157 and LD_FOR_BUILD too.
3158 * configure: Regenerate.
3159
3160 2014-01-27 Allan Sandfeld Jensen <sandfeld@kde.org>
3161
3162 * config/i386/i386.c (get_builtin_code_for_version): Separate
3163 Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
3164 Broadwell from Haswell.
3165
3166 2014-01-27 Steve Ellcey <sellcey@mips.com>
3167
3168 * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
3169 Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
3170 * config/mips/mips.c (mips_option_override): Change setting
3171 of TARGET_DSP.
3172 * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
3173 * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
3174 Change from Mask to Var.
3175
3176 2014-01-27 Jeff Law <law@redhat.com>
3177
3178 * ipa-inline.c (inline_small_functions): Fix typo.
3179
3180 2014-01-27 Ilya Tocar <ilya.tocar@intel.com>
3181
3182 * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
3183 (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
3184 (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
3185 (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
3186 (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
3187 (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
3188 (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
3189 (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
3190 (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
3191 (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
3192 (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
3193 (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
3194 (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
3195 (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
3196 (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
3197 (_mm512_storeu_epi64): Ditto.
3198 (_mm512_cmpge_epi32_mask): Ditto.
3199 (_mm512_cmpge_epu32_mask): Ditto.
3200 (_mm512_cmpge_epi64_mask): Ditto.
3201 (_mm512_cmpge_epu64_mask): Ditto.
3202 (_mm512_cmple_epi32_mask): Ditto.
3203 (_mm512_cmple_epu32_mask): Ditto.
3204 (_mm512_cmple_epi64_mask): Ditto.
3205 (_mm512_cmple_epu64_mask): Ditto.
3206 (_mm512_cmplt_epi32_mask): Ditto.
3207 (_mm512_cmplt_epu32_mask): Ditto.
3208 (_mm512_cmplt_epi64_mask): Ditto.
3209 (_mm512_cmplt_epu64_mask): Ditto.
3210 (_mm512_cmpneq_epi32_mask): Ditto.
3211 (_mm512_cmpneq_epu32_mask): Ditto.
3212 (_mm512_cmpneq_epi64_mask): Ditto.
3213 (_mm512_cmpneq_epu64_mask): Ditto.
3214 (_mm512_expand_pd): Ditto.
3215 (_mm512_expand_ps): Ditto.
3216 * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
3217 VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
3218 VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
3219 * config/i386/i386.c (ix86_builtins): Add
3220 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
3221 IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
3222 IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
3223 IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
3224 IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
3225 IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
3226 IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
3227 IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
3228 IX86_BUILTIN_PMOVUSQW512_MEM.
3229 (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
3230 __builtin_ia32_pmovsqd512mem_mask,
3231 __builtin_ia32_pmovqd512mem_mask,
3232 __builtin_ia32_pmovusqw512mem_mask,
3233 __builtin_ia32_pmovsqw512mem_mask,
3234 __builtin_ia32_pmovqw512mem_mask,
3235 __builtin_ia32_pmovusdw512mem_mask,
3236 __builtin_ia32_pmovsdw512mem_mask,
3237 __builtin_ia32_pmovdw512mem_mask,
3238 __builtin_ia32_pmovqb512mem_mask,
3239 __builtin_ia32_pmovusqb512mem_mask,
3240 __builtin_ia32_pmovsqb512mem_mask,
3241 __builtin_ia32_pmovusdb512mem_mask,
3242 __builtin_ia32_pmovsdb512mem_mask,
3243 __builtin_ia32_pmovdb512mem_mask.
3244 (bdesc_args): Add __builtin_ia32_expanddf512,
3245 __builtin_ia32_expandsf512.
3246 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
3247 VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
3248 VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
3249 * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
3250 (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
3251 (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
3252 (avx512f_<code>v8div16qi2_mask_store): This.
3253 (avx512f_expand<mode>): New.
3254
3255 2014-01-27 Kirill Yukhin <kirill.yukhin@intel.com>
3256
3257 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
3258 New.
3259 (_mm512_mask_prefetch_i64gather_pd): Ditto.
3260 (_mm512_prefetch_i32scatter_pd): Ditto.
3261 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
3262 (_mm512_prefetch_i64scatter_pd): Ditto.
3263 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
3264 (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
3265 (_mm512_mask_prefetch_i64gather_ps): Ditto.
3266 (_mm512_prefetch_i32scatter_ps): Ditto.
3267 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
3268 (_mm512_prefetch_i64scatter_ps): Ditto.
3269 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
3270 * config/i386/i386-builtin-types.def: Define
3271 VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
3272 and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
3273 * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
3274 IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
3275 IX86_BUILTIN_SCATTERPFQPD.
3276 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
3277 __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
3278 __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
3279 __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
3280 __builtin_ia32_scatterpfqps.
3281 (ix86_expand_builtin): Expand new built-ins.
3282 * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
3283 fix memory access data type.
3284 (*avx512pf_gatherpf<mode>_mask): Ditto.
3285 (*avx512pf_gatherpf<mode>): Ditto.
3286 (avx512pf_scatterpf<mode>): Ditto.
3287 (*avx512pf_scatterpf<mode>_mask): Ditto.
3288 (*avx512pf_scatterpf<mode>): Ditto.
3289 (GATHER_SCATTER_SF_MEM_MODE): New.
3290 (avx512pf_gatherpf<mode>df): Ditto.
3291 (*avx512pf_gatherpf<mode>df_mask): Ditto.
3292 (*avx512pf_scatterpf<mode>df): Ditto.
3293
3294 2014-01-27 Jakub Jelinek <jakub@redhat.com>
3295
3296 PR bootstrap/59934
3297 * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
3298 know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
3299 reached.
3300
3301 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
3302
3303 * common/config/arm/arm-common.c
3304 (arm_rewrite_mcpu): Handle multiple names.
3305 * config/arm/arm.h
3306 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
3307
3308 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
3309
3310 * gimple-builder.h (create_gimple_tmp): Delete.
3311
3312 2014-01-27 Christian Bruel <christian.bruel@st.com>
3313
3314 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
3315 words comparisons.
3316
3317 2014-01-26 John David Anglin <danglin@gcc.gnu.org>
3318
3319 * config/pa/pa.md (call): Generate indirect long calls to non-local
3320 functions when outputing 32-bit code.
3321 (call_value): Likewise except for special call to buggy powf function.
3322
3323 * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
3324 portable runtime and PIC indirect calls.
3325 (pa_output_indirect_call): Remove unnecessary nop from portable runtime
3326 and PIC call sequences. Use ldo instead of blr to set return register
3327 in PIC call sequence.
3328
3329 2014-01-25 Walter Lee <walt@tilera.com>
3330
3331 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
3332 avoid clobbering a live register.
3333
3334 2014-01-25 Walter Lee <walt@tilera.com>
3335
3336 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
3337 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
3338 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
3339 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
3340
3341 2014-01-25 Walter Lee <walt@tilera.com>
3342
3343 * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
3344 arguments on even registers.
3345 (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
3346 STACK_BOUNDARY.
3347 * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
3348 (BIGGEST_ALIGNMENT): Ditto.
3349 (BIGGEST_FIELD_ALIGNMENT): Ditto.
3350
3351 2014-01-25 Walter Lee <walt@tilera.com>
3352
3353 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
3354 insns before bundling.
3355 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
3356
3357 2014-01-25 Walter Lee <walt@tilera.com>
3358
3359 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
3360 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
3361 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
3362
3363 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
3364
3365 * config/mips/constraints.md (kl): Delete.
3366 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
3367 define expands, using...
3368 (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
3369 instructions for MIPS16.
3370 (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
3371 non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
3372
3373 2014-01-25 Walter Lee <walt@tilera.com>
3374
3375 * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
3376 (clzdi2): Ditto.
3377 (ffsdi2): Ditto.
3378
3379 2014-01-25 Walter Lee <walt@tilera.com>
3380
3381 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
3382 (TARGET_EXPAND_TO_RTL_HOOK): Define.
3383
3384 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
3385
3386 * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
3387 Handle XOR.
3388
3389 2014-01-25 Jakub Jelinek <jakub@redhat.com>
3390
3391 * print-rtl.c (in_call_function_usage): New var.
3392 (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
3393 EXPR_LIST mode as mode and not as reg note name.
3394
3395 PR middle-end/59561
3396 * cfgloopmanip.c (copy_loop_info): If
3397 loop->warned_aggressive_loop_optimizations, make sure
3398 the flag is set in target loop too.
3399
3400 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
3401
3402 * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
3403 flag_cilkplus.
3404 * builtins.def: Likewise.
3405 * cilk.h (fn_contains_cilk_spawn_p): Likewise.
3406 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
3407 * ira.c (ira_setup_eliminable_regset): Likewise.
3408 * omp-low.c (gate_expand_omp): Likewise.
3409 (execute_lower_omp): Likewise.
3410 (diagnose_sb_0): Likewise.
3411 (gate_diagnose_omp_blocks): Likewise.
3412 (simd_clone_clauses_extract): Likewise.
3413 (gate): Likewise.
3414
3415 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3416
3417 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
3418 correction for little endian...
3419 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
3420 here.
3421
3422 2014-01-24 Jeff Law <law@redhat.com>
3423
3424 PR tree-optimization/59919
3425 * tree-vrp.c (find_assert_locations_1): Do not register asserts
3426 for non-returning calls.
3427
3428 2014-01-24 James Greenhalgh <james.greenhalgh@arm.com>
3429
3430 * common/config/aarch64/aarch64-common.c
3431 (aarch64_rewrite_mcpu): Handle multiple names.
3432 * config/aarch64/aarch64.h
3433 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
3434
3435 2014-01-24 Dodji Seketeli <dodji@redhat.com>
3436
3437 * input.c (add_file_to_cache_tab): Handle the case where fopen
3438 returns NULL.
3439
3440 2014-01-23 H.J. Lu <hongjiu.lu@intel.com>
3441
3442 PR target/59929
3443 * config/i386/i386.md (pushsf splitter): Get stack adjustment
3444 from push operand if code of push isn't PRE_DEC.
3445
3446 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
3447
3448 PR target/59909
3449 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
3450 -mquad-memory-atomic. Update -mquad-memory documentation to say
3451 it is only used for non-atomic loads/stores.
3452
3453 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
3454 -mquad-memory or -mquad-memory-atomic switches.
3455
3456 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
3457 -mquad-memory-atomic to ISA 2.07 support.
3458
3459 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
3460 to separate support of normal quad word memory operations (ldq, stq)
3461 from the atomic quad word memory operations.
3462
3463 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
3464 support to separate non-atomic quad word operations from atomic
3465 quad word operations. Disable non-atomic quad word operations in
3466 little endian mode so that we don't have to swap words after the
3467 load and before the store.
3468 (quad_load_store_p): Add comment about atomic quad word support.
3469 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
3470 options printed with -mdebug=reg.
3471
3472 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
3473 -mquad-memory-atomic as the test for whether we have quad word
3474 atomic instructions.
3475 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
3476 or -mp8-vector are used, allow byte/half-word atomic operations.
3477
3478 * config/rs6000/sync.md (load_lockedti): Insure that the address
3479 is a proper indexed or indirect address for the lqarx instruction.
3480 On little endian systems, swap the hi/lo registers after the lqarx
3481 instruction.
3482 (load_lockedpti): Use indexed_or_indirect_operand predicate to
3483 insure the address is valid for the lqarx instruction.
3484 (store_conditionalti): Insure that the address is a proper indexed
3485 or indirect address for the stqcrx. instruction. On little endian
3486 systems, swap the hi/lo registers before doing the stqcrx.
3487 instruction.
3488 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
3489 insure the address is valid for the stqcrx. instruction.
3490
3491 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
3492 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
3493 type of quad memory support is available.
3494
3495 2014-01-23 Vladimir Makarov <vmakarov@redhat.com>
3496
3497 PR regression/59915
3498 * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
3499 there is a danger of looping.
3500
3501 2014-01-23 Pat Haugen <pthaugen@us.ibm.com>
3502
3503 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
3504 force flag_ira_loop_pressure if set via command line.
3505
3506 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
3507
3508 * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
3509 (ashr_simd): New builtin handling DI mode.
3510 * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
3511 (aarch64_sshr_simddi): New match pattern.
3512 * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
3513 (vshrd_n_s64): Likewise.
3514 * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
3515
3516 2014-01-23 Nick Clifton <nickc@redhat.com>
3517
3518 * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
3519 (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
3520 favour of mcu specific scripts.
3521 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
3522 430x multilibs.
3523
3524 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
3525 Alex Velenko <Alex.Velenko@arm.com>
3526
3527 * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
3528 (vaddv_s16): Likewise.
3529 (vaddv_s32): Likewise.
3530 (vaddv_u8): Likewise.
3531 (vaddv_u16): Likewise.
3532 (vaddv_u32): Likewise.
3533 (vaddvq_s8): Likewise.
3534 (vaddvq_s16): Likewise.
3535 (vaddvq_s32): Likewise.
3536 (vaddvq_s64): Likewise.
3537 (vaddvq_u8): Likewise.
3538 (vaddvq_u16): Likewise.
3539 (vaddvq_u32): Likewise.
3540 (vaddvq_u64): Likewise.
3541 (vaddv_f32): Likewise.
3542 (vaddvq_f32): Likewise.
3543 (vaddvq_f64): Likewise.
3544 (vmaxv_f32): Likewise.
3545 (vmaxv_s8): Likewise.
3546 (vmaxv_s16): Likewise.
3547 (vmaxv_s32): Likewise.
3548 (vmaxv_u8): Likewise.
3549 (vmaxv_u16): Likewise.
3550 (vmaxv_u32): Likewise.
3551 (vmaxvq_f32): Likewise.
3552 (vmaxvq_f64): Likewise.
3553 (vmaxvq_s8): Likewise.
3554 (vmaxvq_s16): Likewise.
3555 (vmaxvq_s32): Likewise.
3556 (vmaxvq_u8): Likewise.
3557 (vmaxvq_u16): Likewise.
3558 (vmaxvq_u32): Likewise.
3559 (vmaxnmv_f32): Likewise.
3560 (vmaxnmvq_f32): Likewise.
3561 (vmaxnmvq_f64): Likewise.
3562 (vminv_f32): Likewise.
3563 (vminv_s8): Likewise.
3564 (vminv_s16): Likewise.
3565 (vminv_s32): Likewise.
3566 (vminv_u8): Likewise.
3567 (vminv_u16): Likewise.
3568 (vminv_u32): Likewise.
3569 (vminvq_f32): Likewise.
3570 (vminvq_f64): Likewise.
3571 (vminvq_s8): Likewise.
3572 (vminvq_s16): Likewise.
3573 (vminvq_s32): Likewise.
3574 (vminvq_u8): Likewise.
3575 (vminvq_u16): Likewise.
3576 (vminvq_u32): Likewise.
3577 (vminnmv_f32): Likewise.
3578 (vminnmvq_f32): Likewise.
3579 (vminnmvq_f64): Likewise.
3580
3581 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
3582
3583 * config/aarch64/aarch64-simd.md
3584 (aarch64_dup_lane<mode>): Correct lane number on big-endian.
3585 (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
3586 (*aarch64_mul3_elt<mode>): Likewise.
3587 (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
3588 (*aarch64_mul3_elt_to_64v2df): Likewise.
3589 (*aarch64_mla_elt<mode>): Likewise.
3590 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
3591 (*aarch64_mls_elt<mode>): Likewise.
3592 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
3593 (*aarch64_fma4_elt<mode>): Likewise.
3594 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
3595 (*aarch64_fma4_elt_to_64v2df): Likewise.
3596 (*aarch64_fnma4_elt<mode>): Likewise.
3597 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
3598 (*aarch64_fnma4_elt_to_64v2df): Likewise.
3599 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
3600 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
3601 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
3602 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
3603 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
3604 (aarch64_sqdmull_lane<mode>_internal): Likewise.
3605 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
3606
3607 2013-01-23 Alex Velenko <Alex.Velenko@arm.com>
3608
3609 * config/aarch64/aarch64-simd.md
3610 (aarch64_be_checked_get_lane<mode>): New define_expand.
3611 * config/aarch64/aarch64-simd-builtins.def
3612 (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
3613 New builtin definition.
3614 * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
3615 Use new safe be builtin.
3616
3617 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
3618
3619 * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
3620 New define_insn.
3621 (aarch64_be_st1<mode>): Likewise.
3622 (aarch_ld1<VALL:mode>): Define_expand modified.
3623 (aarch_st1<VALL:mode>): Likewise.
3624 * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
3625 (UNSPEC_ST1): Likewise.
3626
3627 2014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
3628
3629 * config/microblaze/microblaze.md: Add trap insn and attribute
3630
3631 2014-01-23 Dodji Seketeli <dodji@redhat.com>
3632
3633 PR preprocessor/58580
3634 * input.h (location_get_source_line): Take an additional line_size
3635 parameter.
3636 (void diagnostics_file_cache_fini): Declare new function.
3637 * input.c (struct fcache): New type.
3638 (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
3639 New static constants.
3640 (diagnostic_file_cache_init, total_lines_num)
3641 (lookup_file_in_cache_tab, evicted_cache_tab_entry)
3642 (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
3643 (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
3644 (get_next_line, read_next_line, goto_next_line, read_line_num):
3645 New static function definitions.
3646 (diagnostic_file_cache_fini): New function.
3647 (location_get_source_line): Take an additional output line_len
3648 parameter. Re-write using lookup_or_add_file_to_cache_tab and
3649 read_line_num.
3650 * diagnostic.c (diagnostic_finish): Call
3651 diagnostic_file_cache_fini.
3652 (adjust_line): Take an additional input parameter for the length
3653 of the line, rather than calculating it with strlen.
3654 (diagnostic_show_locus): Adjust the use of
3655 location_get_source_line and adjust_line with respect to their new
3656 signature. While displaying a line now, do not stop at the first
3657 null byte. Rather, display the zero byte as a space and keep
3658 going until we reach the size of the line.
3659 * Makefile.in: Add vec.o to OBJS-libcommon
3660
3661 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
3662 Ilya Tocar <ilya.tocar@intel.com>
3663
3664 * config/i386/avx512fintrin.h (_mm512_kmov): New.
3665 * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
3666 (__builtin_ia32_kmov16): Ditto.
3667 * config/i386/i386.md (UNSPEC_KMOV): New.
3668 (kmovw): Ditto.
3669
3670 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
3671
3672 * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
3673 (_mm512_storeu_si512): Ditto.
3674
3675 2014-01-23 Richard Sandiford <rdsandiford@googlemail.com>
3676
3677 PR target/52125
3678 * rtl.h (get_referenced_operands): Declare.
3679 * recog.c (get_referenced_operands): New function.
3680 * config/mips/mips.c (mips_reorg_process_insns): Check which asm
3681 operands have been referenced when recording LO_SUM references.
3682
3683 2014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
3684
3685 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
3686
3687 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
3688
3689 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
3690 Enable for generic and recent AMD targets.
3691
3692 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
3693
3694 * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
3695 ARG_SIZE note when adjustment was eliminated.
3696
3697 2014-01-22 Jeff Law <law@redhat.com>
3698
3699 PR tree-optimization/59597
3700 * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
3701 in file. Accept new argument REGISTERING and use it to modify
3702 dump output appropriately.
3703 (register_jump_thread): Corresponding changes.
3704 (mark_threaded_blocks): Reinstate code to cancel unprofitable
3705 thread paths involving joiner blocks. Add code to dump cancelled
3706 jump threading paths.
3707
3708 2014-01-22 Vladimir Makarov <vmakarov@redhat.com>
3709
3710 PR rtl-optimization/59477
3711 * lra-constraints.c (inherit_in_ebb): Process call for living hard
3712 regs. Update reloads_num and potential_reload_hard_regs for all insns.
3713
3714 2014-01-22 Tom Tromey <tromey@redhat.com>
3715
3716 * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
3717 PARAMS.
3718 * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
3719
3720 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
3721
3722 PR rtl-optimization/59896
3723 * lra-constraints.c (process_alt_operands): Check unused note for
3724 matched operands of insn with no output reloads.
3725
3726 2014-01-21 Richard Sandiford <rdsandiford@googlemail.com>
3727
3728 * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
3729 (mips_move_from_gpr_cost): Likewise.
3730
3731 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
3732
3733 PR rtl-optimization/59858
3734 * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
3735 ira_class_hard_regs_num.
3736 (process_alt_operands): Increase reject for dying matched operand.
3737
3738 2014-01-21 Jakub Jelinek <jakub@redhat.com>
3739
3740 PR target/59003
3741 * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
3742 smaller than size, perform several stores or loads and stores
3743 at dst + count - size to store or copy all of size bytes, rather
3744 than just last modesize bytes.
3745
3746 2014-01-20 DJ Delorie <dj@redhat.com>
3747
3748 * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
3749 that CLOBBERs are REGs before propogating their values.
3750
3751 2014-01-20 H.J. Lu <hongjiu.lu@intel.com>
3752
3753 PR middle-end/59789
3754 * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
3755 (cgraph_inline_failed_type): New function.
3756 * cgraph.h (DEFCIFCODE): Add type.
3757 (cgraph_inline_failed_type_t): New enum.
3758 (cgraph_inline_failed_type): New prototype.
3759 * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
3760 FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
3761 FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
3762 LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
3763 MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
3764 RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
3765 OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
3766 INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
3767 Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
3768 FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
3769 EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
3770 OPTIMIZATION_MISMATCH.
3771 * tree-inline.c (expand_call_inline): Emit errors during
3772 early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
3773
3774 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
3775
3776 PR target/59685
3777 * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
3778 mode attribute in insn output.
3779
3780 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
3781
3782 * output.h (output_constant): Delete.
3783 * varasm.c (output_constant): Make private.
3784
3785 2014-01-20 Alex Velenko <Alex.Velenko@arm.com>
3786
3787 * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
3788
3789 2014-01-20 Jakub Jelinek <jakub@redhat.com>
3790
3791 PR middle-end/59860
3792 * tree.h (fold_builtin_strcat): New prototype.
3793 * builtins.c (fold_builtin_strcat): No longer static. Add len
3794 argument, if non-NULL, don't call c_strlen. Optimize
3795 directly into __builtin_memcpy instead of __builtin_strcpy.
3796 (fold_builtin_2): Adjust fold_builtin_strcat caller.
3797 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
3798
3799 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
3800
3801 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
3802 for SImode_address_operand operands, having only a REG argument.
3803
3804 2014-01-20 Marcus Shawcroft <marcus.shawcroft@arm.com>
3805
3806 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
3807 loader name using mbig-endian.
3808 (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
3809
3810 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
3811
3812 * doc/invoke.texi (-march): Clarify documentation for AArch64.
3813 (-mtune): Likewise.
3814 (-mcpu): Likewise.
3815
3816 2014-01-20 Tejas Belagod <tejas.belagod@arm.com>
3817
3818 * config/aarch64/aarch64-protos.h
3819 (aarch64_cannot_change_mode_class_ptr): Declare.
3820 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
3821 aarch64_cannot_change_mode_class_ptr): New.
3822 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
3823 backend hook aarch64_cannot_change_mode_class.
3824
3825 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
3826
3827 * common/config/aarch64/aarch64-common.c
3828 (aarch64_handle_option): Don't handle any option order logic here.
3829 * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
3830 selected_cpu, warn on architecture version mismatch.
3831 (aarch64_override_options): Fix parsing order for option strings.
3832
3833 2014-01-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3834 Iain Sandoe <iain@codesourcery.com>
3835
3836 PR bootstrap/59496
3837 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
3838 warning. Amend comment to reflect current functionality.
3839
3840 2014-01-20 Richard Biener <rguenther@suse.de>
3841
3842 PR middle-end/59860
3843 * builtins.c (fold_builtin_strcat): Remove case better handled
3844 by tree-ssa-strlen.c.
3845
3846 2014-01-20 Alan Lawrence <alan.lawrence@arm.com>
3847
3848 * config/aarch64/aarch64.opt
3849 (mcpu, march, mtune): Make case-insensitive.
3850
3851 2014-01-20 Jakub Jelinek <jakub@redhat.com>
3852
3853 PR target/59880
3854 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
3855 if operands[1] is a REG or ZERO_EXTEND of a REG.
3856
3857 2014-01-19 Jan Hubicka <hubicka@ucw.cz>
3858
3859 * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
3860
3861 2014-01-19 John David Anglin <danglin@gcc.gnu.org>
3862
3863 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
3864 long non-pic millicode calls.
3865
3866 2014-01-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3867
3868 * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
3869
3870 2014-01-19 Kito Cheng <kito@0xlab.org>
3871
3872 * builtins.c (expand_movstr): Check movstr expand done or fail.
3873
3874 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
3875 H.J. Lu <hongjiu.lu@intel.com>
3876
3877 PR target/59379
3878 * config/i386/i386.md (*lea<mode>): Zero-extend return register
3879 to DImode for zero-extended addresses.
3880
3881 2014-01-19 Jakub Jelinek <jakub@redhat.com>
3882
3883 PR rtl-optimization/57763
3884 * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
3885 on the new indirect jump_insn and increment LABEL_NUSES (label).
3886
3887 2014-01-18 H.J. Lu <hongjiu.lu@intel.com>
3888
3889 PR bootstrap/59580
3890 PR bootstrap/59583
3891 * config.gcc (x86_archs): New variable.
3892 (x86_64_archs): Likewise.
3893 (x86_cpus): Likewise.
3894 Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
3895 --with-arch/--with-cpu= options.
3896 Support --with-arch=/--with-cpu={nehalem,westmere,
3897 sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
3898
3899 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
3900
3901 * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
3902 and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
3903
3904 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
3905
3906 * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
3907
3908 2014-01-18 Jakub Jelinek <jakub@redhat.com>
3909
3910 PR target/58944
3911 * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
3912 clear cpp_get_options (parse_in)->warn_unused_macros for
3913 ix86_target_macros_internal with cpp_define.
3914
3915 2014-01-18 Richard Sandiford <rdsandiford@googlemail.com>
3916
3917 * jump.c (delete_related_insns): Keep (use (insn))s.
3918 * reorg.c (redundant_insn): Check for barriers too.
3919
3920 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
3921
3922 * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
3923
3924 2014-01-17 John David Anglin <danglin@gcc.gnu.org>
3925
3926 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
3927 call to $$dyncall when TARGET_LONG_CALLS is true.
3928
3929 2014-01-17 Jeff Law <law@redhat.com>
3930
3931 * ree.c (combine_set_extension): Temporarily disable test for
3932 changing number of hard registers.
3933
3934 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
3935
3936 PR middle-end/58125
3937 * ipa-inline-analysis.c (inline_free_summary):
3938 Do not free summary of aliases.
3939
3940 2014-01-17 Jakub Jelinek <jakub@redhat.com>
3941
3942 PR middle-end/59706
3943 * gimplify.c (gimplify_expr): Use create_tmp_var
3944 instead of create_tmp_var_raw. If cond doesn't have
3945 integral type, don't add the IFN_ANNOTATE builtin at all.
3946
3947 2014-01-17 Martin Jambor <mjambor@suse.cz>
3948
3949 PR ipa/59736
3950 * ipa-cp.c (prev_edge_clone): New variable.
3951 (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
3952 Also resize prev_edge_clone vector.
3953 (ipcp_edge_duplication_hook): Also update prev_edge_clone.
3954 (ipcp_edge_removal_hook): New function.
3955 (ipcp_driver): Register ipcp_edge_removal_hook.
3956
3957 2014-01-17 Andrew Pinski <apinski@cavium.com>
3958 Steve Ellcey <sellcey@mips.com>
3959
3960 PR target/59462
3961 * config/mips/mips.c (mips_print_operand): Check operand mode instead
3962 of operator mode.
3963
3964 2014-01-17 Jeff Law <law@redhat.com>
3965
3966 PR middle-end/57904
3967 * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
3968 so that pass_ccp runs first.
3969
3970 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
3971
3972 * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
3973 (ix86_adjust_cost): Use !TARGET_XXX.
3974 (do_reorder_for_imul): Likewise.
3975 (swap_top_of_ready_list): Likewise.
3976 (ix86_sched_reorder): Likewise.
3977
3978 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
3979
3980 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
3981 PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC.
3982 * config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy.
3983 (intel_memset): New. Duplicate slm_memset.
3984 (intel_cost): New. Duplicate slm_cost.
3985 (m_INTEL): New macro.
3986 (processor_target_table): Add "intel".
3987 (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
3988 with PROCESSOR_INTEL for "intel".
3989 (ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate
3990 PROCESSOR_SILVERMONT.
3991 (ix86_issue_rate): Likewise.
3992 (ix86_adjust_cost): Likewise.
3993 (ia32_multipass_dfa_lookahead): Likewise.
3994 (swap_top_of_ready_list): Likewise.
3995 (ix86_sched_reorder): Likewise.
3996 (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
3997 instead of TARGET_OPT_AGU.
3998 * config/i386/i386.h (TARGET_INTEL): New.
3999 (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
4000 (processor_type): Add PROCESSOR_INTEL.
4001 * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
4002 Add X86_TUNE_AVOID_LEA_FOR_ADDR.
4003
4004 2014-01-17 Marek Polacek <polacek@redhat.com>
4005
4006 PR c/58346
4007 * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
4008 size is zero.
4009
4010 2014-01-17 Richard Biener <rguenther@suse.de>
4011
4012 PR tree-optimization/46590
4013 * opts.c (default_options_table): Add entries for
4014 OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
4015 all enabled at -O1 but not for -Og.
4016 * common.opt (fbranch-count-reg): Remove Init(1).
4017 (fmove-loop-invariants): Likewise.
4018 (ftree-pta): Likewise.
4019
4020 2014-01-17 Jakub Jelinek <jakub@redhat.com>
4021
4022 * config/i386/i386.c (ix86_data_alignment): For compatibility with
4023 (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
4024 decls to at least the GCC 4.8 used alignments.
4025
4026 PR fortran/59440
4027 * tree-nested.c (convert_nonlocal_reference_stmt,
4028 convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
4029 of GIMPLE_BIND stmts, adjust associated decls.
4030
4031 2014-01-17 Richard Biener <rguenther@suse.de>
4032
4033 PR tree-optimization/46590
4034 * vec.h (vec<>::bseach): New member function implementing
4035 binary search according to C89 bsearch.
4036 (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
4037 * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
4038 bitmap pointer again. Make accesses_in_loop a flat array.
4039 (mem_ref_obstack): New global.
4040 (outermost_indep_loop): Adjust for mem_ref->stored changes.
4041 (mark_ref_stored): Likewise.
4042 (ref_indep_loop_p_2): Likewise.
4043 (set_ref_stored_in_loop): New helper function.
4044 (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
4045 (memref_free): Adjust.
4046 (record_mem_ref_loc): Simplify.
4047 (gather_mem_refs_stmt): Adjust.
4048 (sort_locs_in_loop_postorder_cmp): New function.
4049 (analyze_memory_references): Sort accesses_in_loop after
4050 loop postorder number.
4051 (find_ref_loc_in_loop_cmp): New function.
4052 (for_all_locs_in_loop): Find relevant cluster of locs in
4053 accesses_in_loop and iterate without recursion.
4054 (execute_sm): Avoid uninit warning.
4055 (struct ref_always_accessed): Simplify.
4056 (ref_always_accessed::operator ()): Likewise.
4057 (ref_always_accessed_p): Likewise.
4058 (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
4059 loop postorder numbers here.
4060 (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
4061 numbers.
4062
4063 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
4064
4065 PR c++/57945
4066 * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
4067 on decls for which assemble_alias has been called.
4068
4069 2014-01-17 Nick Clifton <nickc@redhat.com>
4070
4071 * config/msp430/msp430.opt: (mcpu): New option.
4072 * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
4073 (msp430_option_override): Parse target_cpu. If the MCU name
4074 matches a generic string, clear target_mcu.
4075 (msp430_attr): Allow numeric interrupt values up to 63.
4076 (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
4077 * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
4078 option.
4079 * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
4080 Add mcpu matches.
4081 * config/msp430/msp430.md (popm): Use %J rather than %I.
4082 (addsi3): Use msp430_nonimmediate_operand for operand 2.
4083 (addhi_cy_i): Use immediate_operand for operand 2.
4084 * doc/invoke.texi: Document -mcpu option.
4085
4086 2014-01-17 Richard Biener <rguenther@suse.de>
4087
4088 PR rtl-optimization/38518
4089 * df.h (df_analyze_loop): Declare.
4090 * df-core.c: Include cfgloop.h.
4091 (df_analyze_1): Split out main part of df_analyze.
4092 (df_analyze): Adjust.
4093 (loop_inverted_post_order_compute): New function.
4094 (loop_post_order_compute): Likewise.
4095 (df_analyze_loop): New function avoiding whole-function
4096 postorder computes.
4097 * loop-invariant.c (find_defs): Use df_analyze_loop.
4098 (find_invariants): Adjust.
4099 * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
4100
4101 2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
4102
4103 * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
4104 (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
4105
4106 2014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
4107
4108 * ipa-ref.c (ipa_remove_stmt_references): Fix references
4109 traversal when removing references.
4110
4111 2014-01-16 Jan Hubicka <hubicka@ucw.cz>
4112
4113 PR ipa/59775
4114 * tree.c (get_binfo_at_offset): Look harder for virtual bases.
4115
4116 2014-01-16 Bernd Schmidt <bernds@codesourcery.com>
4117
4118 PR middle-end/56791
4119 * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
4120 pushing a reload for an autoinc when we had previously reloaded an
4121 inner part of the address.
4122
4123 2014-01-16 Jakub Jelinek <jakub@redhat.com>
4124
4125 * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
4126 field.
4127 (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
4128 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
4129 when not giving up or versioning for alias only because of
4130 loop->safelen.
4131 (vect_analyze_data_ref_dependences): Set to true.
4132 * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
4133 is a GIMPLE_PHI.
4134 (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
4135 LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
4136 to the condition.
4137
4138 PR middle-end/58344
4139 * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
4140
4141 PR target/59839
4142 * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
4143 operand 0 predicate for gathers, use a new pseudo as subtarget.
4144
4145 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
4146
4147 PR middle-end/59609
4148 * lra-constraints.c (process_alt_operands): Add printing debug info.
4149 Check absence of input/output reloads for matched operands too.
4150
4151 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
4152
4153 PR rtl-optimization/59835
4154 * ira.c (ira_init_register_move_cost): Increase cost for
4155 impossible modes.
4156
4157 2014-01-16 Alan Lawrence <alan.lawrence@arm.com>
4158
4159 * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
4160
4161 2014-01-16 Richard Earnshaw <rearnsha@arm.com>
4162
4163 PR target/59780
4164 * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
4165 non-register objects. Use gen_(high/low)part more consistently.
4166 Fix assertions.
4167
4168 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
4169
4170 PR target/59844
4171 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
4172 endian support, remove tests for WORDS_BIG_ENDIAN.
4173 (p8_mfvsrd_3_<mode>): Likewise.
4174 (reload_gpr_from_vsx<mode>): Likewise.
4175 (reload_gpr_from_vsxsf): Likewise.
4176 (p8_mfvsrd_4_disf): Likewise.
4177
4178 2014-01-16 Richard Biener <rguenther@suse.de>
4179
4180 PR rtl-optimization/46590
4181 * lcm.c (compute_antinout_edge): Use postorder iteration.
4182 (compute_laterin): Use inverted postorder iteration.
4183
4184 2014-01-16 Nick Clifton <nickc@redhat.com>
4185
4186 PR middle-end/28865
4187 * varasm.c (output_constant): Return the number of bytes actually
4188 emitted.
4189 (output_constructor_array_range): Update the field size with the
4190 number of bytes emitted by output_constant.
4191 (output_constructor_regular_field): Likewise. Also do not
4192 complain if the total number of bytes emitted is now greater
4193 than the expected fieldpos.
4194 * output.h (output_constant): Update prototype and descriptive comment.
4195
4196 2014-01-16 Marek Polacek <polacek@redhat.com>
4197
4198 PR middle-end/59827
4199 * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
4200 it is error_mark_node.
4201
4202 2014-01-15 Uros Bizjak <ubizjak@gmail.com>
4203
4204 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
4205 VALID_AVX256_REG_OR_OI_MODE.
4206
4207 2014-01-15 Pat Haugen <pthaugen@us.ibm.com>
4208
4209 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
4210 current procedure should be profiled.
4211
4212 2014-01-15 Andrew Pinski <apinski@cavium.com>
4213
4214 * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
4215 of moving from/to the STACK_REG register class.
4216
4217 2014-01-15 Richard Henderson <rth@redhat.com>
4218
4219 PR debug/54694
4220 * reginfo.c (global_regs_decl): Globalize.
4221 * rtl.h (global_regs_decl): Declare.
4222 * ira.c (do_reload): Diagnose frame_pointer_needed and it
4223 reserved via global_regs.
4224
4225 2014-01-15 Teresa Johnson <tejohnson@google.com>
4226
4227 * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
4228
4229 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
4230
4231 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
4232 and vmulosh rather than call gen_vec_widen_smult_*.
4233 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
4234 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
4235 (vec_widen_smult_even_v16qi): Likewise.
4236 (vec_widen_umult_even_v8hi): Likewise.
4237 (vec_widen_smult_even_v8hi): Likewise.
4238 (vec_widen_umult_odd_v16qi): Likewise.
4239 (vec_widen_smult_odd_v16qi): Likewise.
4240 (vec_widen_umult_odd_v8hi): Likewise.
4241 (vec_widen_smult_odd_v8hi): Likewise.
4242 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
4243 vmuloub rather than call gen_vec_widen_umult_*.
4244 (vec_widen_umult_lo_v16qi): Likewise.
4245 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
4246 vmulosb rather than call gen_vec_widen_smult_*.
4247 (vec_widen_smult_lo_v16qi): Likewise.
4248 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
4249 rather than call gen_vec_widen_umult_*.
4250 (vec_widen_umult_lo_v8hi): Likewise.
4251 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
4252 rather than call gen_vec_widen_smult_*.
4253 (vec_widen_smult_lo_v8hi): Likewise.
4254
4255 2014-01-15 Jeff Law <law@redhat.com>
4256
4257 PR tree-optimization/59747
4258 * ree.c (find_and_remove_re): Properly handle case where a second
4259 eliminated extension requires widening a copy created for elimination
4260 of a prior extension.
4261 (combine_set_extension): Ensure that the number of hard regs needed
4262 for a destination register does not change when we widen it.
4263
4264 2014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
4265
4266 * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
4267 (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
4268 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
4269 (arm*-*-rtems*): Use t-rtems from existing tmake_file.
4270 (avr-*-rtems*): Likewise.
4271 (bfin*-rtems*): Likewise.
4272 (moxie-*-rtems*): Likewise.
4273 (h8300-*-rtems*): Likewise.
4274 (i[34567]86-*-rtems*): Likewise.
4275 (lm32-*-rtems*): Likewise.
4276 (m32r-*-rtems*): Likewise.
4277 (m68k-*-rtems*): Likewise.
4278 (microblaze*-*-rtems*): Likewise.
4279 (mips*-*-rtems*): Likewise.
4280 (powerpc-*-rtems*): Likewise.
4281 (sh-*-rtems*): Likewise.
4282 (sparc-*-rtems*): Likewise.
4283 (sparc64-*-rtems*): Likewise.
4284 (v850-*-rtems*): Likewise.
4285 (m32c-*-rtems*): Likewise.
4286
4287 2014-01-15 Vladimir Makarov <vmakarov@redhat.com>
4288
4289 PR rtl-optimization/59511
4290 * ira.c (ira_init_register_move_cost): Use memory costs for some
4291 cases of register move cost calculations.
4292 * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
4293 instead of BB frequency.
4294 * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
4295 * lra-assigns.c (find_hard_regno_for): Ditto.
4296
4297 2014-01-15 Richard Biener <rguenther@suse.de>
4298
4299 PR tree-optimization/59822
4300 * tree-vect-stmts.c (hoist_defs_of_uses): New function.
4301 (vectorizable_load): Use it to hoist defs of uses of invariant
4302 loads out of the loop.
4303
4304 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4305 Kugan Vivekanandarajah <kuganv@linaro.org>
4306
4307 PR target/59695
4308 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
4309 truncation.
4310
4311 2014-01-15 Richard Biener <rguenther@suse.de>
4312
4313 PR rtl-optimization/59802
4314 * lcm.c (compute_available): Use inverted postorder to seed
4315 the initial worklist.
4316
4317 2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4318
4319 PR target/59803
4320 * config/s390/s390.c (s390_preferred_reload_class): Don't return
4321 ADDR_REGS for invalid symrefs in non-PIC code.
4322
4323 2014-01-15 Jakub Jelinek <jakub@redhat.com>
4324
4325 PR other/58712
4326 * builtins.c (determine_block_size): Initialize *probable_max_size
4327 even if len_rtx is CONST_INT.
4328
4329 2014-01-14 Andrew Pinski <apinski@cavium.com>
4330
4331 * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
4332 * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
4333 (cortexa53_tunings): Likewise.
4334 (aarch64_sched_issue_rate): New function.
4335 (TARGET_SCHED_ISSUE_RATE): Define.
4336
4337 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
4338
4339 * ira-costs.c (find_costs_and_classes): Add missed
4340 ira_init_register_move_cost_if_necessary.
4341
4342 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
4343
4344 PR target/59787
4345 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
4346
4347 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
4348
4349 PR target/59794
4350 * config/i386/i386.c (type_natural_mode): Add a bool parameter
4351 to indicate if type is used for function return value. Warn ABI
4352 change if the vector mode isn't available for function return value.
4353 (ix86_function_arg_advance): Pass false to type_natural_mode.
4354 (ix86_function_arg): Likewise.
4355 (ix86_gimplify_va_arg): Likewise.
4356 (function_arg_32): Don't warn ABI change.
4357 (ix86_function_value): Pass true to type_natural_mode.
4358 (ix86_return_in_memory): Likewise.
4359 (ix86_struct_value_rtx): Removed.
4360 (TARGET_STRUCT_VALUE_RTX): Likewise.
4361
4362 2014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
4363
4364 * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
4365 converting a conditional jump into a conditional return.
4366
4367 2014-01-14 Richard Biener <rguenther@suse.de>
4368
4369 PR tree-optimization/58921
4370 PR tree-optimization/59006
4371 * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
4372 hoisting invariant stmts.
4373 * tree-vect-stmts.c (vectorizable_load): Insert the splat of
4374 invariant loads on the preheader edge if possible.
4375
4376 2014-01-14 Joey Ye <joey.ye@arm.com>
4377
4378 * doc/plugin.texi (Building GCC plugins): Update to C++.
4379
4380 2014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
4381
4382 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
4383 (_mm_rcp28_round_ss): Ditto.
4384 (_mm_rsqrt28_round_sd): Ditto.
4385 (_mm_rsqrt28_round_ss): Ditto.
4386 (_mm_rcp28_sd): Ditto.
4387 (_mm_rcp28_ss): Ditto.
4388 (_mm_rsqrt28_sd): Ditto.
4389 (_mm_rsqrt28_ss): Ditto.
4390 * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
4391 * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
4392 * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
4393 (IX86_BUILTIN_RCP28SD): Ditto.
4394 (IX86_BUILTIN_RCP28SS): Ditto.
4395 (IX86_BUILTIN_RSQRT28SD): Ditto.
4396 (IX86_BUILTIN_RSQRT28SS): Ditto.
4397 (bdesc_special_args): Define __builtin_ia32_movntdqa512,
4398 __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
4399 __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
4400 (ix86_expand_special_args_builtin): Expand new FTYPE.
4401 * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
4402 (srcp14<mode>): Make insn unary.
4403 (avx512f_vmscalef<mode><round_name>): Use substed predicate.
4404 (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
4405 (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
4406 (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
4407 (avx512er_exp2<mode><mask_name><round_saeonly_name>):
4408 Fix rounding: make it SAE only.
4409 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
4410 Ditto.
4411 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
4412 Ditto.
4413 (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
4414 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
4415 (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
4416 * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
4417 (round_saeonly_mask_scalar_operand4): Ditto.
4418 (round_saeonly_mask_scalar_op3): Ditto.
4419 (round_saeonly_mask_scalar_op4): Ditto.
4420
4421 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4422
4423 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4424 Implement -maltivec=be for vec_insert and vec_extract.
4425
4426 2014-01-10 DJ Delorie <dj@redhat.com>
4427
4428 * config/msp430/msp430.md (call_internal): Don't allow memory
4429 references with SP as the base register.
4430 (call_value_internal): Likewise.
4431 * config/msp430/constraints.md (Yc): New. For memory references
4432 that don't use SP as a base register.
4433
4434 * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
4435 "an integer without a # prefix"
4436 * config/msp430/msp430.md (epilogue_helper): Use it.
4437
4438 2014-01-13 Jakub Jelinek <jakub@redhat.com>
4439
4440 PR target/59617
4441 * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
4442 AVX512F gather builtins.
4443 * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
4444 on gather decls with INTEGER_TYPE masktype.
4445 (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
4446 directly into the builtin rather than hoisting it before loop.
4447
4448 PR tree-optimization/59387
4449 * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
4450 (scev_const_prop): If folded_casts and type has undefined overflow,
4451 use force_gimple_operand instead of force_gimple_operand_gsi and
4452 for each added stmt if it is assign with
4453 arith_code_with_undefined_signed_overflow, call
4454 rewrite_to_defined_overflow.
4455 * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
4456 gimple-fold.h instead.
4457 (arith_code_with_undefined_signed_overflow,
4458 rewrite_to_defined_overflow): Moved to ...
4459 * gimple-fold.c (arith_code_with_undefined_signed_overflow,
4460 rewrite_to_defined_overflow): ... here. No longer static.
4461 Include gimplify-me.h.
4462 * gimple-fold.h (arith_code_with_undefined_signed_overflow,
4463 rewrite_to_defined_overflow): New prototypes.
4464
4465 2014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4466
4467 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
4468
4469 2014-01-13 Eric Botcazou <ebotcazou@adacore.com>
4470
4471 * builtins.c (get_object_alignment_2): Minor tweak.
4472 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
4473
4474 2014-01-13 Christian Bruel <christian.bruel@st.com>
4475
4476 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
4477 optimized non constant lengths.
4478
4479 2014-01-13 Jakub Jelinek <jakub@redhat.com>
4480
4481 PR libgomp/59194
4482 * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
4483 load as __atomic_load_N if possible.
4484
4485 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
4486
4487 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
4488 target parameter.
4489 (rs6000_expand_builtin): Adjust call.
4490
4491 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
4492
4493 PR target/58115
4494 * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
4495 * config/rs6000/rs6000.c: Include target-globals.h.
4496 (rs6000_set_current_function): Instead of doing target_reinit
4497 unconditionally, use save_target_globals_default_opts and
4498 restore_target_globals.
4499
4500 * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
4501 FPSCR.
4502 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
4503 (rs6000_expand_builtin): Handle mffs and mtfsf.
4504 (rs6000_init_builtins): Define mffs and mtfsf.
4505 * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
4506 (rs6000_mffs): New pattern.
4507 (rs6000_mtfsf): New pattern.
4508
4509 2014-01-11 Bin Cheng <bin.cheng@arm.com>
4510
4511 * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
4512 Start narrowing with START. Apply candidate-use pair
4513 and check overall cost in narrowing.
4514 (iv_ca_prune): Pass new argument.
4515
4516 2014-01-10 Jeff Law <law@redhat.com>
4517
4518 PR middle-end/59743
4519 * ree.c (combine_reaching_defs): Ensure the defining statement
4520 occurs before the extension when optimizing extensions with
4521 different source and destination hard registers.
4522
4523 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
4524
4525 PR ipa/58585
4526 * ipa-devirt.c (build_type_inheritance_graph): Also add types of
4527 vtables into the type inheritance graph.
4528
4529 2014-01-10 Jakub Jelinek <jakub@redhat.com>
4530
4531 PR rtl-optimization/59754
4532 * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
4533 modes in the REGNO != REGNO case.
4534
4535 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4536
4537 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
4538
4539 2014-01-10 Jakub Jelinek <jakub@redhat.com>
4540
4541 PR tree-optimization/59745
4542 * tree-predcom.c (tree_predictive_commoning_loop): Call
4543 free_affine_expand_cache if giving up because components is NULL.
4544
4545 * target-globals.c (save_target_globals): Allocate < 4KB structs using
4546 GC in payload of target_globals struct instead of allocating them on
4547 the heap and the larger structs separately using GC.
4548 * target-globals.h (struct target_globals): Make regs, hard_regs,
4549 reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
4550 of GTY((skip)) and change type to void *.
4551 (reset_target_globals): Cast loads from those fields to corresponding
4552 types.
4553
4554 2014-01-10 Steve Ellcey <sellcey@mips.com>
4555
4556 PR plugins/59335
4557 * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
4558 gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
4559 tree-ssanames.h, print-tree.h, varasm.h, and context.h.
4560
4561 2014-01-10 Richard Earnshaw <rearnsha@arm.com>
4562
4563 PR target/59744
4564 * aarch64-modes.def (CC_Zmode): New flags mode.
4565 * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
4566 represents an equality.
4567 (aarch64_get_condition_code): Handle CC_Zmode.
4568 * aarch64.md (compare_neg<mode>): Restrict to equality operations.
4569
4570 2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4571
4572 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
4573 extraction in good case.
4574
4575 2014-01-10 Richard Biener <rguenther@suse.de>
4576
4577 PR tree-optimization/59374
4578 * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
4579 checking after SLP discovery. Mark stmts not participating
4580 in any SLP instance properly.
4581
4582 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4583
4584 * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
4585 when handling a SET rtx.
4586
4587 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4588
4589 * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
4590 (cortex-a57): Likewise.
4591 (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
4592
4593 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4594
4595 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
4596 non-iwmmxt builtins.
4597
4598 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
4599
4600 PR ipa/58252
4601 PR ipa/59226
4602 * ipa-devirt.c record_target_from_binfo): Take as argument
4603 stack of binfos and lookup matching one for virtual inheritance.
4604 (possible_polymorphic_call_targets_1): Update.
4605
4606 2014-01-10 Huacai Chen <chenhc@lemote.com>
4607
4608 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
4609 kernel strings for Loongson-2E/2F/3A.
4610
4611 2014-01-10 Jakub Jelinek <jakub@redhat.com>
4612
4613 PR middle-end/59670
4614 * tree-vect-data-refs.c (vect_analyze_data_refs): Check
4615 is_gimple_call before calling gimple_call_internal_p.
4616
4617 2014-01-09 Steve Ellcey <sellcey@mips.com>
4618
4619 * Makefile.in (TREE_FLOW_H): Remove.
4620 (TREE_SSA_H): Add file names from tree-flow.h.
4621 * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
4622 * tree.h: Remove tree-flow.h reference.
4623 * hash-table.h: Remove tree-flow.h reference.
4624 * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
4625 reference with tree-ssa-loop.h.
4626
4627 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4628
4629 * doc/invoke.texi: Add -maltivec={be,le} options, and document
4630 default element-order behavior for -maltivec.
4631 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
4632 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
4633 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
4634 when targeting big endian, at least for now.
4635 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
4636
4637 2014-01-09 Jakub Jelinek <jakub@redhat.com>
4638
4639 PR middle-end/47735
4640 * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
4641 var satisfies use_register_for_decl, just take into account type
4642 alignment, rather than decl alignment.
4643
4644 PR tree-optimization/59622
4645 * gimple-fold.c (gimple_fold_call): Fix a typo in message. For
4646 __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
4647 __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
4648 Don't devirtualize for inplace at all. For targets.length () == 1,
4649 if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
4650
4651 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
4652
4653 * config/i386/i386.md (cpu): Remove the unused btver1.
4654
4655 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
4656
4657 * gdbasan.in: Put a breakpoint on __sanitizer::Report.
4658
4659 2014-01-09 Jakub Jelinek <jakub@redhat.com>
4660
4661 PR target/58115
4662 * tree-core.h (struct target_globals): New forward declaration.
4663 (struct tree_target_option): Add globals field.
4664 * tree.h (TREE_TARGET_GLOBALS): Define.
4665 (prepare_target_option_nodes_for_pch): New prototype.
4666 * target-globals.h (struct target_globals): Define even if
4667 !SWITCHABLE_TARGET.
4668 * tree.c (prepare_target_option_node_for_pch,
4669 prepare_target_option_nodes_for_pch): New functions.
4670 * config/i386/i386.h (SWITCHABLE_TARGET): Define.
4671 * config/i386/i386.c: Include target-globals.h.
4672 (ix86_set_current_function): Instead of doing target_reinit
4673 unconditionally, use save_target_globals_default_opts and
4674 restore_target_globals.
4675
4676 2014-01-09 Richard Biener <rguenther@suse.de>
4677
4678 PR tree-optimization/59715
4679 * tree-cfg.h (split_critical_edges): Declare.
4680 * tree-cfg.c (split_critical_edges): Export.
4681 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
4682
4683 2014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
4684
4685 * cfgexpand.c (expand_stack_vars): Optionally disable
4686 asan stack protection.
4687 (expand_used_vars): Likewise.
4688 (partition_stack_vars): Likewise.
4689 * asan.c (asan_emit_stack_protection): Optionally disable
4690 after return stack usage.
4691 (instrument_derefs): Optionally disable memory access instrumentation.
4692 (instrument_builtin_call): Likewise.
4693 (instrument_strlen_call): Likewise.
4694 (asan_protect_global): Optionally disable global variables protection.
4695 * doc/invoke.texi: Added doc for new options.
4696 * params.def: Added new options.
4697 * params.h: Likewise.
4698
4699 2014-01-09 Jakub Jelinek <jakub@redhat.com>
4700
4701 PR rtl-optimization/59724
4702 * ifcvt.c (cond_exec_process_if_block): Don't call
4703 flow_find_head_matching_sequence with 0 longest_match.
4704 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
4705 non-active insns if !stop_after.
4706 (try_head_merge_bb): Revert 2014-01-07 changes.
4707
4708 2014-01-08 Jeff Law <law@redhat.com>
4709
4710 * ree.c (get_sub_rtx): New function, extracted from...
4711 (merge_def_and_ext): Here.
4712 (combine_reaching_defs): Use get_sub_rtx.
4713
4714 2014-01-08 Eric Botcazou <ebotcazou@adacore.com>
4715
4716 * cgraph.h (varpool_variable_node): Do not choke on null node.
4717
4718 2014-01-08 Catherine Moore <clm@codesourcery.com>
4719
4720 * config/mips/mips.md (simple_return): Attempt to use JRC
4721 for microMIPS.
4722 * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
4723
4724 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
4725
4726 PR rtl-optimization/59137
4727 * reorg.c (steal_delay_list_from_target): Call update_block for
4728 elided insns.
4729 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
4730
4731 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4732
4733 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
4734 two duplicate entries.
4735
4736 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
4737
4738 Revert:
4739 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
4740
4741 * config/mips/mips.c (mips_truncated_op_cost): New function.
4742 (mips_rtx_costs): Adjust test for BADDU.
4743 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
4744
4745 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
4746
4747 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
4748 (*baddu_si): ...this new pattern.
4749
4750 2014-01-08 Jakub Jelinek <jakub@redhat.com>
4751
4752 PR ipa/59722
4753 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
4754
4755 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
4756
4757 PR middle-end/57748
4758 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
4759 inner_reference_p.
4760 (expand_expr, expand_normal): Adjust.
4761 * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
4762 inner_reference_p. Use inner_reference_p to expand inner references.
4763 (store_expr): Adjust.
4764 * cfgexpand.c (expand_call_stmt): Adjust.
4765
4766 2014-01-08 Rong Xu <xur@google.com>
4767
4768 * gcov-io.c (gcov_var): Move from gcov-io.h.
4769 (gcov_position): Ditto.
4770 (gcov_is_error): Ditto.
4771 (gcov_rewrite): Ditto.
4772 * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
4773 only part to libgcc/libgcov.h.
4774
4775 2014-01-08 Marek Polacek <polacek@redhat.com>
4776
4777 PR middle-end/59669
4778 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
4779
4780 2014-01-08 Marek Polacek <polacek@redhat.com>
4781
4782 PR sanitizer/59667
4783 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
4784
4785 2014-01-08 Jakub Jelinek <jakub@redhat.com>
4786
4787 PR rtl-optimization/59649
4788 * stor-layout.c (get_mode_bounds): For BImode return
4789 0 and STORE_FLAG_VALUE.
4790
4791 2014-01-08 Richard Biener <rguenther@suse.de>
4792
4793 PR middle-end/59630
4794 * gimple.h (is_gimple_builtin_call): Remove.
4795 (gimple_builtin_call_types_compatible_p): New.
4796 (gimple_call_builtin_p): New overload.
4797 * gimple.c (is_gimple_builtin_call): Remove.
4798 (validate_call): Rename to ...
4799 (gimple_builtin_call_types_compatible_p): ... this and export. Also
4800 check return types.
4801 (validate_type): New static function.
4802 (gimple_call_builtin_p): New overload and adjust.
4803 * gimple-fold.c (gimple_fold_builtin): Fold the return value.
4804 (gimple_fold_call): Likewise. Use gimple_call_builtin_p.
4805 (gimple_fold_stmt_to_constant_1): Likewise.
4806 * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
4807
4808 2014-01-08 Richard Biener <rguenther@suse.de>
4809
4810 PR middle-end/59471
4811 * gimplify.c (gimplify_expr): Gimplify register-register type
4812 VIEW_CONVERT_EXPRs to separate stmts.
4813
4814 2014-01-07 Jeff Law <law@redhat.com>
4815
4816 PR middle-end/53623
4817 * ree.c (combine_set_extension): Handle case where source
4818 and destination registers in an extension insn are different.
4819 (combine_reaching_defs): Allow source and destination registers
4820 in extension to be different under limited circumstances.
4821 (add_removable_extension): Remove restriction that the
4822 source and destination registers in the extension are the same.
4823 (find_and_remove_re): Emit a copy from the extension's
4824 destination to its source after the defining insn if
4825 the source and destination registers are different.
4826
4827 PR middle-end/59285
4828 * ifcvt.c (merge_if_block): If we are merging a block with more than
4829 one successor with a block with no successors, remove any BARRIER
4830 after the second block.
4831
4832 2014-01-07 Dan Xio Qiang <ziyan01@163.com>
4833
4834 * hw-doloop.c (reorg_loops): Release the bitmap obstack.
4835
4836 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
4837
4838 PR target/59652
4839 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
4840 for 14-bit register offsets when INT14_OK_STRICT is false.
4841
4842 2014-01-07 Roland Stigge <stigge@antcom.de>
4843 Michael Meissner <meissner@linux.vnet.ibm.com>
4844
4845 PR 57386/target
4846 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
4847 Only check TFmode for SPE constants. Don't check TImode or TDmode.
4848
4849 2014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
4850
4851 * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
4852 -mcpu.
4853
4854 2014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
4855
4856 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
4857 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
4858 rtx is const0_rtx or not.
4859
4860 2014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
4861
4862 PR target/58115
4863 * target-globals.c (save_target_globals): Remove this_fn_optab
4864 handling.
4865 * toplev.c: Include optabs.h.
4866 (target_reinit): Temporarily restore the global options if another
4867 set of options are in force.
4868
4869 2014-01-07 Jakub Jelinek <jakub@redhat.com>
4870
4871 PR rtl-optimization/58668
4872 * cfgcleanup.c (flow_find_cross_jump): Don't count
4873 any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p
4874 to determine what is counted.
4875 (flow_find_head_matching_sequence): Use active_insn_p to determine
4876 what is counted.
4877 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
4878 counting change.
4879 * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
4880 determine what is counted.
4881
4882 PR tree-optimization/59643
4883 * tree-predcom.c (split_data_refs_to_components): If one dr is
4884 read and one write, determine_offset fails and the write isn't
4885 in the bad component, just put the read into the bad component.
4886
4887 2014-01-07 Mike Stump <mikestump@comcast.net>
4888 Jakub Jelinek <jakub@redhat.com>
4889
4890 PR pch/59436
4891 * tree-core.h (struct tree_optimization_option): Change optabs
4892 type from unsigned char * to void *.
4893 * optabs.c (init_tree_optimization_optabs): Adjust
4894 TREE_OPTIMIZATION_OPTABS initialization.
4895
4896 2014-01-06 Jakub Jelinek <jakub@redhat.com>
4897
4898 PR target/59644
4899 * config/i386/i386.h (struct machine_function): Add
4900 no_drap_save_restore field.
4901 * config/i386/i386.c (ix86_save_reg): Use
4902 !cfun->machine->no_drap_save_restore instead of
4903 crtl->stack_realign_needed.
4904 (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
4905 this function clears frame_pointer_needed. Set
4906 cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
4907 and DRAP reg is needed.
4908
4909 2014-01-06 Marek Polacek <polacek@redhat.com>
4910
4911 PR c/57773
4912 * doc/implement-c.texi: Mention that other integer types are
4913 permitted as bit-field types in strictly conforming mode.
4914
4915 2014-01-06 Felix Yang <fei.yang0953@gmail.com>
4916
4917 * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
4918 is newly allocated.
4919
4920 2014-01-06 Richard Earnshaw <rearnsha@arm.com>
4921
4922 * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
4923
4924 2014-01-06 Martin Jambor <mjambor@suse.cz>
4925
4926 PR ipa/59008
4927 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
4928 to int.
4929 * ipa-prop.c (ipa_print_node_params): Fix indentation.
4930
4931 2014-01-06 Eric Botcazou <ebotcazou@adacore.com>
4932
4933 PR debug/59350
4934 PR debug/59510
4935 * var-tracking.c (add_stores): Preserve the value of the source even if
4936 we don't record the store.
4937
4938 2014-01-06 Terry Guo <terry.guo@arm.com>
4939
4940 * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
4941
4942 2014-01-05 Iain Sandoe <iain@codesourcery.com>
4943
4944 PR bootstrap/59541
4945 * config/darwin.c (darwin_function_section): Adjust return values to
4946 correspond to optimisation changes made in r206070.
4947
4948 2014-01-05 Uros Bizjak <ubizjak@gmail.com>
4949
4950 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
4951 from prefetch_block tune setting.
4952 (nocona_cost): Correct size of prefetch block to 64.
4953
4954 2014-01-04 Eric Botcazou <ebotcazou@adacore.com>
4955
4956 * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
4957 (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
4958 used to save the static chain register in the computation of the offset
4959 from which the FP registers need to be restored.
4960
4961 2014-01-04 Jakub Jelinek <jakub@redhat.com>
4962
4963 PR tree-optimization/59519
4964 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
4965 ICE if get_current_def (current_new_name) is already non-NULL, as long
4966 as it is a phi result of some other phi in *new_exit_bb that has
4967 the same argument.
4968
4969 * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
4970 or vmovdqu* for misaligned_operand.
4971 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
4972 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
4973 * config/i386/i386.c (ix86_expand_special_args_builtin): Set
4974 aligned_mem for AVX512F masked aligned load and store builtins and for
4975 non-temporal moves.
4976
4977 2014-01-03 Bingfeng Mei <bmei@broadcom.com>
4978
4979 PR tree-optimization/59651
4980 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
4981 Address range for negative step should be added by TYPE_SIZE_UNIT.
4982
4983 2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
4984
4985 * config/m68k/m68k.c (handle_move_double): Handle pushes with
4986 overlapping registers also for registers other than the stack pointer.
4987
4988 2014-01-03 Marek Polacek <polacek@redhat.com>
4989
4990 PR other/59661
4991 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
4992 __builtin_FILE.
4993
4994 2014-01-03 Jakub Jelinek <jakub@redhat.com>
4995
4996 PR target/59625
4997 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
4998 asm goto as jump.
4999
5000 * config/i386/i386.md (MODE_SIZE): New mode attribute.
5001 (push splitter): Use <P:MODE_SIZE> instead of
5002 GET_MODE_SIZE (<P:MODE>mode).
5003 (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
5004 (mov -1, reg peephole2): Likewise.
5005 * config/i386/sse.md (*mov<mode>_internal,
5006 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
5007 <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
5008 *<code><mode>3, *andnot<mode>3<mask_name>,
5009 <mask_codefor><code><mode>3<mask_name>): Likewise.
5010 * config/i386/subst.md (mask_mode512bit_condition,
5011 sd_mask_mode512bit_condition): Likewise.
5012
5013 2014-01-02 Xinliang David Li <davidxl@google.com>
5014
5015 PR tree-optimization/59303
5016 * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
5017 (dump_predicates): Better output format.
5018 (pred_equal_p): New function.
5019 (is_neq_relop_p): Ditto.
5020 (is_neq_zero_form_p): Ditto.
5021 (pred_expr_equal_p): Ditto.
5022 (pred_neg_p): Ditto.
5023 (simplify_pred): Ditto.
5024 (simplify_preds_2): Ditto.
5025 (simplify_preds_3): Ditto.
5026 (simplify_preds_4): Ditto.
5027 (simplify_preds): Ditto.
5028 (push_pred): Ditto.
5029 (push_to_worklist): Ditto.
5030 (get_pred_info_from_cmp): Ditto.
5031 (is_degenerated_phi): Ditto.
5032 (normalize_one_pred_1): Ditto.
5033 (normalize_one_pred): Ditto.
5034 (normalize_one_pred_chain): Ditto.
5035 (normalize_preds): Ditto.
5036 (normalize_cond_1): Remove function.
5037 (normalize_cond): Ditto.
5038 (is_gcond_subset_of): Ditto.
5039 (is_subset_of_any): Ditto.
5040 (is_or_set_subset_of): Ditto.
5041 (is_and_set_subset_of): Ditto.
5042 (is_norm_cond_subset_of): Ditto.
5043 (pred_chain_length_cmp): Ditto.
5044 (convert_control_dep_chain_into_preds): Type change.
5045 (find_predicates): Ditto.
5046 (find_def_preds): Ditto.
5047 (destroy_predicates_vecs): Ditto.
5048 (find_matching_predicates_in_rest_chains): Ditto.
5049 (use_pred_not_overlap_with_undef_path_pred): Ditto.
5050 (is_pred_expr_subset): Ditto.
5051 (is_pred_chain_subset_of): Ditto.
5052 (is_included_in): Ditto.
5053 (is_superset_of): Ditto.
5054
5055 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
5056
5057 Update copyright years.
5058
5059 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
5060
5061 * common/config/arc/arc-common.c, config/arc/arc-modes.def,
5062 config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
5063 config/arc/arc.md, config/arc/arc.opt,
5064 config/arm/arm_neon_builtins.def, config/arm/crypto.def,
5065 config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
5066 config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
5067 config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
5068 config/linux-protos.h, config/linux.c, config/winnt-c.c,
5069 diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
5070 vtable-verify.c, vtable-verify.h: Use the standard form for the
5071 copyright notice.
5072
5073 2014-01-02 Tobias Burnus <burnus@net-b.de>
5074
5075 * gcc.c (process_command): Update copyright notice dates.
5076 * gcov-dump.c: Ditto.
5077 * gcov.c: Ditto.
5078 * doc/cpp.texi: Bump @copying's copyright year.
5079 * doc/cppinternals.texi: Ditto.
5080 * doc/gcc.texi: Ditto.
5081 * doc/gccint.texi: Ditto.
5082 * doc/gcov.texi: Ditto.
5083 * doc/install.texi: Ditto.
5084 * doc/invoke.texi: Ditto.
5085
5086 2014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
5087
5088 * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
5089
5090 2014-01-01 Jakub Jelinek <jakub@redhat.com>
5091
5092 * config/i386/sse.md (*mov<mode>_internal): Guard
5093 EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
5094
5095 PR rtl-optimization/59647
5096 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
5097 new_rtx into UNSIGNED_FLOAT rtxes.
5098 \f
5099 Copyright (C) 2014 Free Software Foundation, Inc.
5100
5101 Copying and distribution of this file, with or without modification,
5102 are permitted in any medium without royalty provided the copyright
5103 notice and this notice are preserved.