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