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