extend.texi (Variable Attributes, [...]): Move sections up in file, to immediately...
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
2
3         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
4         sections up in file, to immediately after the Function Attributes
5         section.
6
7 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
8
9         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
10
11 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12
13         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
14         (insert_partition_copy_on_edge): Adjust.
15         (insert_rtx_to_part_on_edge): Likewise.
16         (insert_part_to_rtx_on_edge): Likewise.
17
18 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
19
20         * function.c (set_return_jump_label): Change type of argument to
21         rtx_insn *.
22         * function.h (set_return_jump_label): Adjust.
23
24 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25
26         * reload.h (struct reg_equivs_t): Change type of init to
27         rtx_insn *.
28         * ira.c (fix_reg_equiv_init): Adjust.
29         * reload1.c (eliminate_regs_1): Likewise.
30         (init_eliminable_invariants): Likewise.
31
32 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
33
34         * cselib.c (fp_setter_insn): Take a rtx_insn *.
35         * cselib.h (fp_setter_insn): Adjust.
36
37 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
38
39         * recog.c (struct validate_replace_src_data): Change type of
40         insn field to rtx_insn *.
41         (validate_replace_src_group): Change type of argument to rtx_insn *.
42         * recog.h (validate_replace_src_group): Adjust.
43
44 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
45
46         * haifa-sched.c: Change the type of some variables to rtx_insn *.
47         * sched-deps.c: Likewise.
48         * sched-int.h: Likewise.
49         * sched-rgn.c: Likewise.
50         * sel-sched.c: Likewise.
51
52 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
53
54         to rtx_insn *.
55         * config/i386/i386.c: Change the type of some arguments to
56         rtx_insn *.
57         * config/arm/arm.c: Likewise.
58
59 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
60
61         * lra-constraints.c: Change type of some arguments to rtx_insn *.
62
63 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
64
65         * regcprop.c (kill_autoinc_value): Change type of argument to
66         rtx_insn *.
67
68 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
69
70         * genrecog.c (print_subroutine): Adjust.
71         * recog.c (get_bool_attr_mask_uncached): Likewise.
72         * recog.h (struct recog_data_d): Change the type of insn to
73         rtx_insn *.
74
75 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
76
77         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
78
79 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
80
81         * df-problems.c (df_set_note): Change type of argument to
82         rtx_insn *.
83
84 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
85
86         * builtins.c (expand_builtin_trap): Change type of local
87         variable to rtx_insn *.
88         (add_sched_insns_for_speculation): Likewise.
89         (ix86_emit_save_regs): Likewise.
90         (get_scratch_register_on_entry): Likewise.
91         (ix86_emit_restore_reg_using_pop): Likewise.
92         (ix86_emit_leave): Likewise.
93         (ix86_emit_restore_regs_using_mov): Likewise.
94         (ix86_expand_epilogue): Likewise.
95         Likewise.
96         (rl78_alloc_physical_registers_umul): Likewise.
97         * cselib.c (discard_useless_locs): Likewise.
98         (cselib_invalidate_regno): Likewise.
99         (cselib_invalidate_mem): Likewise.
100         * function.c (expand_function_start): Likewise.
101         (emit_use_return_register_into_block): Likewise.
102         * gcse.c: Likewise.
103         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
104         * ifcvt.c (noce_get_alt_condition): Likewise.
105         * loop-doloop.c (doloop_condition_get): Likewise.
106         * lra-constraints.c (inherit_in_ebb): Likewise.
107         * modulo-sched.c (sms_schedule_by_order): Likewise.
108         * recog.c (next_insn_tests_no_inequality): Likewise.
109         * reorg.c (emit_delay_sequence): Likewise.
110         (update_reg_dead_notes): Likewise.
111         (fix_reg_dead_note): Likewise.
112         (fill_slots_from_thread): Likewise.
113         (delete_computation): Likewise.
114
115 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
116
117         * doc/extend.texi (Variable Attributes): Add menu and proper
118         @nodes to subsections.  Move Microsoft Windows attributes to
119         their own subsection.
120         (Type Attributes): Reorganize introduction to remove duplicate
121         list of attributes.  Add menu and proper @nodes to subsections.
122         Alphabetize the main table of common attributes.
123
124 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
125
126         * match.pd: New simplification patterns.
127         (x + (x & 1))  -> ((x + 1) & ~1)
128         (x & ~(x & y)) -> ((x & ~y))
129         (x | ~(x | y)) -> ((x | ~y))
130
131 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
132
133         * target.def (attribute_table): Mention that struct attribute_spec
134         is defined in tree-core.h rather than tree.h
135         * doc/tm.texi: Regenerate.
136
137 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
138
139         * genrecog.c (test): Rename to rtx_test.  Update rest of file
140         accordingly.
141
142 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
143
144         PR translation/65959
145         * params.h (DEFPARAM): Rename msgid to nocmsgid.
146
147 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
148
149         * gcc/config/aarch64/aarch64-protos.h (tune_params):
150         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
151         * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
152         Return value depending on target.
153         (generic_tunings): Initialize new target settings.
154         (cortexa53_tunings): Likewise.
155         (cortexa57_tunings): Likewise.
156         (thunderx_tunings): Likewise.
157         (xgene1_tunings): Likewise.
158
159 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
160
161         * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
162         Make Cortex-A53 shift costs more accurate.
163
164 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
165
166         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
167         UNSIGNED_FLOAT.
168
169 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
170
171         * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
172         Calculate cost of op0 and op1 in PLUS and MINUS cases.
173
174 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
175
176         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
177         Add cost of op0 in the compare-with-fpzero case.
178
179 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
180
181         * builtins.c (fold_builtin_1): Remove spurious second
182         semicolon.
183         * cgraph.h (symtab_node::get_availability): Likewise.
184         * opts.c (common_handle_option): Remove spurious second semicolon.
185         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
186         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
187
188 2015-04-30  Caroline Tice  <cmtice@google.com>
189
190         PR 65929
191         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
192         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
193         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
194         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
195         * doc/tm.texi: Regenerate.
196         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
197         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
198         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
199         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
200
201 2015-04-30  Marek Polacek  <polacek@redhat.com>
202
203         * varasm.c (handle_cache_entry): Fix logic.
204
205 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
206
207         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
208         (*extrsi5_insn_uxtw_alt): Likewise.
209         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
210         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
211         operations.
212
213 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
214
215         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
216         fabd in ABS case.
217
218 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
219
220         * config/aarch64/aarch64.md
221         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
222         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
223         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
224         appropriately.  Handle alternative EON form.
225
226 2015-04-30  Renlin Li  <renlin.li@arm.com>
227
228         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
229         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
230
231 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
232
233         PR ipa/65873
234         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
235         -fstrict-aliasing boundaries.
236
237 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
238
239         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
240         and [SU]MNEGL patterns.
241
242 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
243
244         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
245         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
246         combined arithmetic-shift ops.  Properly handle all shift and extend
247         operations that can occur in combination with PLUS/MINUS.
248         Rename maybe_fma to compound_p.
249         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
250         arithmetic and shift operations.
251
252 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
253
254         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
255         rather than arith_shift cost when costing ADD/MINUS of an
256         extended value.
257
258 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
259
260         PR lto/65948
261         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
262         to itself.
263
264 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
265
266         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
267         are for the same position.
268
269 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
270
271         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
272         vectorize_loops.
273         (vectorize_loops): Use it.
274
275 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
276
277         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
278         for aggregate types.
279         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
280         type to be non_ODR.
281         * tree.c (need_assembler_name_p): Compute mangled name for
282         non-fundamental types and integer types.
283
284 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
285
286         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
287         manual swaps.
288         * expr.c (expand_expr_real_2): Likewise.
289
290 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
291
292         * tree.c (build_common_builtin_nodes): Do not build
293         __builtin_alloca_with_align as equivalent of library alloca.
294
295 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
296
297         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
298         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
299         bugus variants.
300         * tree.c: Include print-tree.h and ipa-utils.h
301         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
302         (free_lang_data_in_cgraph): Call verify_type.
303         (verify_type_variant): New function.
304         (verify_type): New function.
305         * tree.h (verify_type): Declare.
306
307 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
308
309         * config/mips/mips-cpus.def: (mips4): Change default processor
310         from PROCESSOR_R8000 to PROCESSOR_R10000.
311
312 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
313
314         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
315         la/jalr instead of jal.
316
317 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
318
319         PR target/65871
320         * config/i386/i386.md (*bmi_bextr_<mode>_cczonly): New pattern.
321         (*bmi2_bzhi_<mode>3_1_cczonly): Ditto.
322         (setcc+movzbl peephole2): Check also clobbered reg.
323         (setcc+andl peephole2): Ditto.
324
325 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
326
327         PR libgomp/65099
328         * config/nvptx/mkoffload.c (target_ilp32): New variable.
329         (main): Set it depending on "-foffload-abi=[...]".
330         (compile_native, main): Use it to pass "-m32" or "-m64" to the
331         compiler.
332
333 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
334
335         PR target/65770
336         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
337         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
338         Flip lane index back at assembly time for bigendian.
339
340 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
341
342         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
343         * gimplify.c (gimplify_omp_workshare): Use it.
344
345 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
346
347         * Makefile.in (build/genrecog.o): Depend on inchash.h.
348         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
349         build/inchash.o
350         * genrecog.c: Rewrite most of the code except for the third page.
351
352 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
353
354         * inchash.h, inchash.c: Include bconfig.h for build objects.
355         * Makefile.in (build/inchash.o): New rule.
356
357 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
358
359         PR target/65924
360         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
361         number in type attribute expression.
362
363 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
364
365         * loop-iv.c (canon_condition): Generalize to all types of integer
366         constant.
367
368 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
369
370         * gimple-walk.c: Prune duplicate or unneeded includes.
371         (walk_gimple_asm): Only call parse_input_constraint or
372         parse_output_constraint if their findings are used.
373         Honour parse_input_constraint and parse_output_constraint
374         result.
375
376 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
377
378         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
379
380 2015-04-29  Tom de Vries  <tom@codesourcery.com>
381
382         PR tree-optimization/65893
383         * passes.def (pass_all_optimizations): Move pass_stdarg to after
384         pass_dce.
385
386 2015-04-29  Richard Biener  <rguenther@suse.de>
387
388         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
389         compute GROUP_SIZE for basic-block SLP.
390         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
391         take into account gaps.
392         (vect_get_mask_element): Properly reject references to previous
393         vectors.
394         (vect_transform_slp_perm_load): Likewise.
395
396 2015-04-29  Christian Bruel  <christian.bruel@st.com>
397
398         PR target/64835
399         * config/i386/i386.c (ix86_default_align): New function.
400         (ix86_override_options_after_change): Call ix86_default_align.
401         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
402         (ix86_override_options_after_change): New function.
403
404 2015-04-28  Jeff Law  <law@redhat.com>
405
406         * tree-ssa-dom.c (record_equality); Fix comment typos.
407
408 2015-04-28  Tom de Vries  <tom@codesourcery.com>
409
410         PR tree-optimization/65887
411         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
412
413 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
414
415         * doc/extend.texi (Declaring Attributes of Functions): Split into
416         subsections by target.  Alphabetize the table of common attributes.
417         Rewrite some of the introductory text to reflect the new structure.
418         Update some cross-references to point to the new subsections.
419         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
420         duplicate copies in the discussion of function, label, and type
421         attributes.
422
423 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
424
425         PR bootstrap/65910
426         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
427
428 2015-04-28  Jason Merrill  <jason@redhat.com>
429
430         PR c++/65734
431         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
432         (finalize_type_size): Respect TYPE_USER_ALIGN.
433         (layout_type) [ARRAY_TYPE]: Likewise.
434
435 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
436
437         * config/arm/arm.md (*arm_movt): Fix type attribute.
438         (*cmpsi_shiftsi): Likewise.
439         (*cmpsi_shiftsi_swp): Likewise.
440         (*movsicc_insn): Likewise.
441         (*cond_move): Likewise.
442         (*if_plus_move): Likewise.
443         (*if_move_plus): Likewise.
444         (*if_arith_move): Likewise.
445         (*if_move_arith): Likewise.
446         (*if_shift_move): Likewise.
447         (*if_move_shift): Likewise.
448         (*arm_movtas_ze): Likewise.
449         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
450         redundancy and type attribute.
451         (*thumb2_movsi_insn): Fix type attribute.
452         (*thumb2_addsi_short): Likewise.
453         (thumb2_addsi3_compare0): Likewise.
454         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
455         attributes accordingly.
456
457 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
458
459         PR other/65911
460         * function.c (pad_to_arg_alignment): Add parentheses.
461
462 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
463
464         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
465         libgcc/config/frv/elf-lib.h.
466
467 2015-04-28  Tom de Vries  <tom@codesourcery.com>
468
469         * tree-call-cdce.c: Fix example in header comment.
470
471 2015-04-28  Richard Biener  <rguenther@suse.de>
472
473         PR tree-optimization/62283
474         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
475         fails fatally and we are vectorizing a basic-block simply
476         cause the child to be constructed piecewise.
477         (vect_analyze_slp_cost_1): Adjust.
478         (vect_detect_hybrid_slp_stmts): Likewise.
479         (vect_bb_slp_scalar_cost): Likewise.
480         (vect_get_constant_vectors): For piecewise constructed
481         constants place them after the last def.
482         (vect_get_slp_defs): Adjust.
483         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
484         externals for basic-block vectorization.
485
486 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
487
488         PR target/63503
489         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
490         aarch64-*-*.
491         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
492         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
493         (AARCH64_TUNE_FMA_STEERING): Likewise.
494         * config/aarch64/aarch64-cores.def: Set
495         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
496         FMUL/FMADD instructions.
497         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
498         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
499         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
500         * config/aarch64/cortex-a57-fma-steering.h: New file.
501         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
502
503 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
504
505         * gensupport.c (std_preds): Add missing codes to address_operand entry.
506
507 2015-04-28  Richard Biener  <rguenther@suse.de>
508
509         PR tree-optimization/65851
510         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
511         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
512         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
513         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
514         (ccp_visit_phi_node): Adjust.
515         (evaluate_stmt): For simplifications to SSA names return its
516         lattice value if that isn't VARYING.  Return immediately when
517         simplified to a constant.
518         (visit_assignment): Adjust.
519         (ccp_visit_stmt): Likewise.
520
521 2015-04-28  Tom de Vries  <tom@codesourcery.com>
522
523         PR tree-optimization/65818
524         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
525         evaluated.
526
527 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
528
529         * calls.c (save_fixed_argument_area): Don't check
530         ARGS_GROW_DOWNWARD with the preprocessor.
531         (restore_fixed_argument_area): Likewise.
532         (mem_overlaps_already_clobbered_arg_p): Likewise.
533         (check_sibcall_argument_overlap): Likewise.
534         (expand_call): Likewise.
535         (emit_library_call_value_1): Likewise.
536         (store_one_arg): Likewise.
537         * function.c (assign_parms): Likewise.
538         (locate_and_pad_parm): Likewise.
539         (pad_to_arg_alignment): Likewise.
540         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
541
542 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
543
544         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
545         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
546         * calls.c (save_fixed_argument_area): Don't chekc if
547         ARGS_GROW_DOWNWARD is defined.
548         (restore_fixed_argument_area): Likewise.
549         (mem_overlaps_already_clobbered_arg_p): Likewise.
550         (check_sibcall_argument_overlap): Likewise.
551         (expand_call): Likewise.
552         (emit_library_call_value_1): Likewise.
553         (store_one_arg): Likewise.
554         * function.c (assign_parms): Likewise.
555         (locate_and_pad_parm): Likewise.
556         (pad_to_arg_alignment): Likewise.
557         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
558
559 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
560
561         * defaults.h (gen_epilogue): New function.
562         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
563         defined.
564         * cfgrtl.c (cfg_layout_finalize): Likewise.
565         * df-scan.c: Likewise.
566         * function.c (thread_prologue_and_epilogue_insns): Likewise.
567         (reposition_prologue_and_epilogue_notes): Likewise.
568         * reorg.c (find_end_label): Likewise.
569         * toplev.c: Likewise.
570
571 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
572
573         * bb-reorder.c (HAVE_return): Don't check if its undefined.
574         * defaults.h (gen_simple_return): New function.
575         (gen_simple_return): Likewise.
576         (HAVE_return): Add default definition to false.
577         (HAVE_simple_return): Likewise.
578         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
579         HAVE_return and HAVE_simple_return are defined.
580         * function.c (gen_return_pattern): Likewise.
581         (convert_jumps_to_returns): Likewise.
582         (thread_prologue_and_epilogue_insns): Likewise.
583         * reorg.c (find_end_label): Likewise.
584         (dbr_schedule): Likewise.
585         * shrink-wrap.c: Likewise.
586         * shrink-wrap.h: Likewise.
587
588 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
589
590         * defaults.h (EPILOGUE_USES): Add default definition of false.
591         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
592         * resource.c (init_resource_info): Likewise.
593
594 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
595
596         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
597         to false.
598         * dwarf2out.c (field_byte_offset): REmove check if
599         PCC_BITFIELD_TYPE_MATTERS is defined.
600         * stor-layout.c (layout_decl): Likewise.
601         (update_alignment_for_field): Likewise.
602         (place_field): Likewise.
603
604 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
605
606         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
607         true.
608         * regrename.c (check_new_reg_p): Remove check if
609         HARD_REGNO_RENAME_OK is defined.
610         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
611
612 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
613
614         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
615         * cse.c (fold_rtx): Likewise.
616         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
617         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
618         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
619         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
620         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
621         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
622         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
623         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
624         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
625         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
626         * Likewise.
627         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
628         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
629         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
630         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
631         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
632         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
633         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
634         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
635         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
636         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
637         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
638         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
639         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
640         * doc/tm.texi: Regenerate.
641         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
642         either true or false.
643
644 2015-04-27  Jeff Law  <law@redhat.com>
645
646         PR tree-optimization/65217
647         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
648         of them has a single use, make sure it is the LHS of the implied
649         copy.
650
651 2015-04-28  Alan Modra  <amodra@gmail.com>
652
653         PR target/65810
654         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
655         (offsettable_ok_by_alignment): Use minimum of decl and toc
656         pointer alignment.  Replace dead code with assertion.
657         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
658         case if size exceeds toc pointer alignment.
659         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
660         (rs6000_emit_move): Likewise.
661         * configure.ac: Add linker toc pointer alignment check.
662         * configure: Regenerate.
663         * config.in: Regenerate.
664
665 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
666
667         * config.gcc: Add h8300-*-linux.
668         * config/h8300/linux.h: New.
669         * config/h8300/t-linux: New.
670         * config/h8300/h8300.c (h8300_option_override): Normal mode
671         is not supported for h8300-*-linux.
672         (h8300_file_start): Target priority change.
673         (get_shift_alg): Likewise.
674         (h8300_shift_need_scratch_p): Likewise.
675         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
676         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
677
678 2015-04-27  Caroline Tice  <cmtice@google.com>
679
680         * final.c (final_scan_insn):  Output cold_function_name as function
681         type.
682         * varasm.c (cold_function_name):  Make global.
683         (assemble_start_function):  Re-set cold_function_name.
684         (assemble_end_function): Output cold partition size.
685         * varasm.h (cold_function_name):  Declare global.
686
687 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
688
689         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
690         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
691         constraint.
692         (*movxi_internal_avx512f): Ditto.
693         (define_split): Check for xmm16+, when splitting scalar float_extend.
694         (*extendsfdf2_mixed): Use "v" constraint.
695         (define_split): Check for xmm16+, when splitting scalar float_truncate.
696         (*truncdfsf_fast_sse): Use "v" constraint.
697         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
698         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
699         (define_peephole2): Check for xmm16+, when converting scalar
700         float_truncate.
701         (define_peephole2): Check for xmm16+, when converting scalar
702         float_extend.
703         (*fop_<mode>_comm_mixed): Use "v" constraint.
704         (*fop_<mode>_comm_sse): Ditto.
705         (*fop_<mode>_1_mixed): Ditto.
706         (*sqrt<mode>2_sse): Ditto.
707         (*ieee_s<ieee_maxmin><mode>3): Ditto.
708
709 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
710
711         * combine.c (simplify_if_then_else): Use std::swap instead
712         of manually swapping.
713         (known_cond): Likewise.
714         (simplify_comparison): Likewise.
715
716 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
717
718         PR target/64579
719         * config/rs6000/htm.md: Remove all define_expands.
720         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
721         UNSPECV_HTM_TABORTWCI): Remove.
722         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
723         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
724         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
725         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
726         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
727         tabortwci_internal): Remove define_insns.
728         (tabort<wd>c, tabort<wd>ci): New define_insns.
729         (tabort): Use gpc_reg_operand.
730         (tcheck): Remove operand.
731         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
732         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
733         expected value.
734         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
735         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
736         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
737         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
738         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
739         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
740         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
741         (tcheck): Remove builtin argument.
742         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
743         not TARGET_64BIT.
744         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
745         tabortdc and tabortdci builtins when not in 64-bit mode.
746         Modify code to handle the loss of the HTM define_expands.
747         Emit code to copy the CR register to TARGET.
748         (htm_init_builtins): Modify code to handle the loss of the HTM
749         define_expands.
750         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
751         (RS6000_BTC_64BIT): Likewise.
752         (RS6000_BTC_CR): New macro.
753         * doc/extend.texi: Update documentation for htm builtins.
754
755 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
756
757         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
758         of manually swapping.
759         (simplify_associative_operation): Likewise.
760         (simplify_binary_operation): Likewise.
761         (simplify_plus_minus): Likewise.
762         (simplify_relational_operation): Likewise.
763         (simplify_ternary_operation): Likewise.
764
765 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
766
767         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
768         (xs_hi_nonmemory_operand): Remove error.
769         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
770         general_operand rather than xs_hi_general_operand.
771
772 2015-04-27  Richard Biener  <rguenther@suse.de>
773
774         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
775         (record_equivalences_from_stmt): Valueize rhs.
776         (record_equality): Canonicalize x and y order via
777         tree_swap_operands_p.  Do not swap operands for same loop depth.
778
779 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
780
781         PR target/65296
782         PR target/65895
783         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
784         Add hint how to use own spec file.
785
786 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
787
788         PR tree-optimization/65875
789         * tree-vrp.c (update_value_range): If in is_new case setting
790         old_vr to VR_VARYING, also set new_vr to it.  Remove
791         old_vr->type == VR_VARYING test.
792         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
793         SSA_PROP_INTERESTING if update_value_range returned true,
794         but new range is VR_VARYING.
795
796 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
797
798         * combine.c (sign_extend_short_imm): New.
799         (set_nonzero_bits_and_sign_copies): Use above new function for sign
800         extension of src short immediate.
801         (reg_nonzero_bits_for_combine): Likewise for tem.
802
803 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
804
805         * stor-layout.c (self_referential_component_ref_p): New predicate.
806         (copy_self_referential_tree_r): Use it.
807         (self_referential_size): Punt for simple operations directly involving
808         self-referential component references.
809         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
810
811 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
812
813         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
814
815 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
816
817         * vec.h (vec): Make splice arguments const.  Update definitions
818         accordingly.
819
820 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
821
822         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
823         alternatives.
824
825 2015-04-26  Tom de Vries  <tom@codesourcery.com>
826
827         PR tree-optimization/65826
828         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
829
830 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
831
832         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
833         (*madd3<mode>): Ditto.
834         (*msub4<mode>): Ditto.
835         (*msub3<mode>): Ditto.
836         (*nmadd4<mode>): Ditto.
837         (*nmadd3<mode>): Ditto.
838         (*nmadd4<mode>_fastmath): Ditto.
839         (*nmadd3<mode>_fastmath): Ditto.
840         (*nmsub4<mode>): Ditto.
841         (*nmsub3<mode>): Ditto.
842         (*nmsub4<mode>_fastmath): Ditto.
843         (*nmsub3<mode>_fastmath): Ditto.
844
845 2015-04-24  Jason Merrill  <jason@redhat.com>
846
847         PR c++/50800
848         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
849         down when building TYPE_CANONICAL.
850         (build_pointer_type_for_mode): Likewise.
851
852 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
853
854         * genrecog.c (validate_pattern): Check matching constraint refers
855         to a lower numbered operand.
856
857 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
858
859         PR target/65849
860         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
861         save to independent variables use the Save attribute.  This will
862         allow these options to be modified with the #pragma/attribute
863         target support.
864         (-mallow-movmisalign): Likewise.
865         (-mallow-df-permute): Likewise.
866         (-msched-groups): Likewise.
867         (-malways-hint): Likewise.
868         (-malign-branch-targets): Likewise.
869         (-mvectorize-builtins): Likewise.
870         (-msave-toc-indirect): Likewise.
871
872         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
873         can be set via the #pragma/attribute target support.
874         (rs6000_opt_vars): Likewise.
875         (rs6000_inner_target_options): If VSX was set, also set
876         -mno-avoid-indexed-addresses.
877
878 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
879
880         * config/arm/iterators.md (shiftable_ops): Rename to...
881         (SHIFTABLE_OPS): ... This.  Update use in comments.
882         (ior_xor): Rename to...
883         (IOR_XOR): ... This.
884         (vqh_ops): Rename to...
885         (VQH_OPS): ... This.
886         (vqhs_ops): Rename to...
887         (VQHS_OPS): ... This.
888         (rshifts): Rename to...
889         (RSHIFTS): ... This.
890         (returns): Rename to...
891         (RETURNS): ... This.
892         * config/arm/arm.md: Update uses of the above.
893         * config/arm/neon.md: Likewise.
894
895 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
896
897         * config.host (case ${host}): Add aarch64*-*-linux case.
898         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
899         fields to all the cores.
900         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
901         Add MCPU_MTUNE_NATIVE_SPECS.
902         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
903         field to all extensions.
904         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
905         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
906         Adjust definition of AARCH64_OPT_EXTENSION.
907         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
908         (MCPU_MTUNE_NATIVE_SPECS): Define.
909         * config/aarch64/driver-aarch64.c: New file.
910         * config/aarch64/x-arch64: New file.
911         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
912         -mtune and -march.
913
914 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
915             Wei Mi  <wmi@google.com>
916
917         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
918         * config/i386/i386.c (extract_base_offset_in_addr): New function.
919         (ix86_operands_ok_for_move_multiple): Ditto.
920         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
921         (movlpd/movhpd to movupd peephole2): Ditto.
922
923 2015-04-24  Marek Polacek  <polacek@redhat.com>
924
925         PR c/61534
926         * input.h (from_macro_expansion_at): Define.
927
928         PR c/63357
929         * doc/invoke.texi: Update description of -Wlogical-op.
930
931 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
932
933         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
934         ternary operator in fprintf and harmonize spacing.
935
936 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
937
938         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
939         Mark operand1 commutative.
940
941 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
942
943         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
944         input operands in memory.
945         (*vec_concatv2si_sse4_1): Ditto.
946         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
947         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
948         register_operand.
949         (vec_extract_hi_v32hi): Ditto.
950         (vec_extract_hi_v64hi): Ditto.
951         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
952
953 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
954             Steven Bosscher <steven@gcc.gnu.org>
955
956         PR rtl-optimization/34503
957         * cprop.c (cprop_reg_p): New.
958         (hash_scan_set): Use above function to check if register can be
959         propagated.
960         (find_avail_set): Return up to two sets, one whose source is a
961         register and one whose source is a constant.  Sets are returned in an
962         array passed as parameter rather than as a return value.
963         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
964         sets returned by find_avail_set, starting with the one whose source is
965         a constant. Use cprop_reg_p to check if register can be propagated.
966         (do_local_cprop): Use cprop_reg_p to check if register can be
967         propagated.
968         (implicit_set_cond_p): Likewise.
969
970 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
971
972         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
973         (sem_function::equals): IGNORED_NODES parameter is now unused;
974         update call of equals_private.
975         (sem_function::equals_private): Do not call equals_wpa; skip
976         gimple body matching if there is no body.
977         (sem_function::init): Add logic to hash tthunk info.
978         (sem_function::parse): Also parse thunks.
979         * ipa-icf.h (equals_private): Update declaration.
980
981 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
982
983         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
984         asterisk from name so this can be generated directly.
985         (*altivec_stvx_<mode>_internal): Likewise.
986         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
987         that this is never called during or after reload/lra.
988         (rs6000_frame_related): Remove split_reg
989         argument and logic that references it.
990         (emit_frame_save): Remove last parameter from call to
991         rs6000_frame_related.
992         (rs6000_emit_prologue): Remove last parameter from eight calls to
993         rs6000_frame_related.  Force generation of stvx instruction for
994         Altivec register saves.  Remove split_reg handling, which is no
995         longer needed.
996         (rs6000_emit_epilogue):  Force generation of lvx instruction for
997         Altivec register restores.
998
999 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1000
1001         * config/rs6000/rs6000.opt (mcrypto): Change option description to
1002         match category changes in ISA 2.07B.
1003
1004 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1005
1006         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
1007         iterators.
1008         (cmp_op, cmp_type): New code attributes.
1009         (NEON_VCMP, NEON_VACMP): New int iterators.
1010         (cmp_op_unsp): New int attribute.
1011         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
1012         (neon_vceq<mode>): Delete.
1013         (neon_vc<cmp_op><mode>_insn): New pattern.
1014         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
1015         (neon_vcgeu<mode>): Delete.
1016         (neon_vcle<mode>): Likewise.
1017         (neon_vclt<mode>: Likewise.
1018         (neon_vcage<mode>): Likewise.
1019         (neon_vcagt<mode>): Likewise.
1020         (neon_vca<cmp_op><mode>): New define_expand.
1021         (neon_vca<cmp_op><mode>_insn): New pattern.
1022         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
1023
1024 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
1025
1026         * tree.h (attribute_value_equal): Declare.
1027         * tree.c (attribute_value_equal): Export.
1028
1029 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
1030
1031         * ipa-icf.c (sem_item::compare_attributes): New function.
1032         (sem_item::compare_referenced_symbol_properties): Compare variable
1033         attributes.
1034         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
1035         (sem_function::param_used_p): New function.
1036         (sem_function::equals_wpa): Fix attribute comparsion; match
1037         parameter type codes; do not compare paremter flags when
1038         they are not used; compare edge flags; compare indirect calls.
1039         (sem_item::update_hash_by_addr_refs): Hash reference type.
1040         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
1041         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
1042         reference use type.
1043         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
1044         * ipa-icf.h (compare_attributes, param_used_p): Declare.
1045
1046 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
1047
1048         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
1049         cleanup.
1050         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
1051         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
1052         (sem_item::compare_referenced_symbol_properties): New.
1053         (sem_item::hash_referenced_symbol_properties): New.
1054         (sem_item::compare_cgraph_references): Rename to ...
1055         (sem_item::compare_symbol_references): ... this one; use
1056         compare_referenced_symbol_properties.
1057         (sem_function::equals_wpa): Do not compare
1058         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
1059         DECL_IS_OPERATOR_NEW; compare pointer sizes.
1060         (sem_item::update_hash_by_addr_refs): Call
1061         hash_referenced_symbol_properties.
1062         (sem_item::update_hash_by_local_refs): Cleanup.
1063         (sem_function::merge): Do not mix up symbol properties.
1064         (sem_variable::equals_wpa): Use compare_symbol_references.
1065         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
1066         (sem_item::hash_referenced_symbol_properties): New.
1067         (sem_item::compare_symbol_references): New.
1068         (sem_item::compare_cgraph_references): Remove.
1069
1070 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
1071
1072         PR target/26702
1073         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
1074         Emit size of local.
1075
1076 2015-04-23  Nick Clifton  <nickc@redhat.com>
1077
1078         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
1079         ATTRIBUTE_UNUSED to x parameter.
1080         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
1081
1082 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1083
1084         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
1085         TARGET_CRYPTO to TARGET_P8_VECTOR>
1086         (crypto_vpermxor_<mode>): Likewise.
1087         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
1088         (BU_CRYPTO_3A): Likewise.
1089         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
1090         (BU_CRYPTO_OVERLOAD_3A): New #define.
1091         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
1092         (VPMSUMH): Likewise.
1093         (VPMSUMW): Likewise.
1094         (VPMSUMD): Likewise.
1095         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
1096         (VPERMXOR_V4SI): Likewise.
1097         (VPERMXOR_V8HI): Likewise.
1098         (VPERMXOR_V16QI): Likewise.
1099         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
1100         BU_CRYPTO_OVERLOAD_2A.
1101         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
1102         BU_CRYPTO_OVERLOAD_3A.
1103         * config/rs6000/rs6000.opt (mcrypto): Change description of
1104         option.
1105
1106 2015-04-23  Richard Biener  <rguenther@suse.de>
1107
1108         * passes.def: Remove copy propagation passes run directly after CCP.
1109         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
1110         SSA names.
1111         (ccp_visit_phi_node): Rework to handle first executable edge
1112         specially.
1113
1114 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
1115
1116         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
1117         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
1118         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
1119         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
1120         (thumb_legimitimize_reload_address): Remove.
1121         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
1122         Remove.
1123         (thumb_legimitimize_reload_address): Remove.
1124
1125 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1126
1127         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
1128
1129 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1130
1131         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
1132         MAX_LDM_STM_OPS.
1133         (store_multiple): Likewise.
1134
1135 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1136
1137         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
1138         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
1139         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
1140         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
1141         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
1142         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
1143         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
1144         Specify issue_rate value.
1145         (arm_issue_rate): Look up issue rate from tuning structs. Remove
1146         large switch statement.
1147         (arm_marvell_pj4_tune): New struct.
1148         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
1149         struct.
1150
1151 2015-04-23  Richard Biener  <rguenther@suse.de>
1152
1153         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
1154         (vect_find_last_store_in_slp_instance): Rename to ...
1155         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
1156         (vect_analyze_slp_cost_1): Use vector_load for constant defs
1157         and vec_construct for external defs when estimating prologue cost.
1158         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
1159         Compute costs here only when vectorizing loops.
1160         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
1161         have been determined.
1162         (vect_schedule_slp_instance): Simplify vectorized code placement
1163         and prepare for in-BB external defs.
1164         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
1165         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
1166         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
1167         guard.
1168         (vect_model_load_cost): Likewise.
1169         (vectorizable_store): Instead add it here.
1170         (vectorizable_load): Likewise.
1171         (vect_is_simple_use): Dump def type textually.
1172
1173 2015-04-23  Richard Biener  <rguenther@suse.de>
1174
1175         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
1176         * cfgloop.c (verify_loop_structure): Verify the root loop node.
1177         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
1178         instead of get_eh_region_from_lp_number.
1179         * loop-init.c (fix_loop_structure): If we removed a loop, reset
1180         the SCEV cache.
1181
1182 2015-04-23  Anton Blanchard  <anton@samba.org>
1183
1184         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
1185         need for -mprofile-kernel to save LR to stack.
1186
1187 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1188
1189         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
1190         adjustments.
1191         (insn_is_swappable_p): Return 1 for a convert from double to
1192         single precision when all of its uses are splats of BE element
1193         zero.
1194
1195 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
1196
1197         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
1198
1199 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1200
1201         PR target/65456
1202         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
1203         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
1204         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
1205         option.
1206         (rs6000_builtin_mask_for_load): Return 0 for targets with
1207         efficient unaligned VSX accesses so that the vectorizer will use
1208         direct unaligned loads.
1209         (rs6000_builtin_support_vector_misalignment): Always return true
1210         for targets with efficient unaligned VSX accesses.
1211         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
1212         stores on targets with efficient unaligned VSX accesses is almost
1213         always the same as the cost of an aligned load or store, so model
1214         it that way.
1215         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
1216         unaligned vectors if we have efficient unaligned VSX accesses.
1217         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
1218         undocumented option.
1219
1220 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1221
1222         Revert:
1223         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
1224
1225         * config.gcc (LIBC_MUSL): New tm_defines macro.
1226         * config/linux.h (OPTION_MUSL): Define.
1227         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
1228         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
1229         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
1230
1231         * config/linux.opt (mmusl): New option.
1232         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
1233         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
1234
1235         * configure: Regenerate.
1236
1237 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
1238
1239         * config.gcc (LIBC_MUSL): New tm_defines macro.
1240         * config/linux.h (OPTION_MUSL): Define.
1241         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
1242         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
1243         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
1244
1245         * config/linux.opt (mmusl): New option.
1246         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
1247         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
1248
1249         * configure: Regenerate.
1250
1251 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
1252
1253         * doc/invoke.texi (-fsanitize-sections): Update description.
1254         * asan.c (set_sanitized_sections): Parse incoming arg.
1255         (section_sanitized_p): Support wildcards.
1256
1257 2015-04-22  Tom de Vries  <tom@codesourcery.com>
1258
1259         PR tree-optimization/65823
1260         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
1261         equality between ap_copy and ap.
1262
1263 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1264
1265         PR target/47098
1266         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
1267
1268 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1269
1270         PR target/47122
1271         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
1272
1273 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1274
1275         PR target/55144
1276         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
1277         remove already contained t-files.
1278
1279 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1280
1281         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
1282         Remove unneeded forward declarations.
1283         (suitable_for_tail_call_opt_p): Commentary typo fix.
1284
1285 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1286
1287         * varasm.c (emit_bss): Remove redundant guard.
1288
1289 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1290
1291         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
1292
1293 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1294
1295         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
1296
1297 2015-04-22  Hale Wang  <hale.wang@arm.com>
1298             Terry Guo  <terry.guo@arm.com>
1299
1300         PR rtl-optimization/64818
1301         * combine.c (can_combine_p): Don't combine user-specified
1302         register if it is in an asm input.
1303
1304 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
1305
1306         PR ipa/65076
1307         * passes.def (early_optimizations): Add pass_dse.
1308
1309 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1310
1311         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
1312         * reorg.c (redundant_insn): Remove ifdef
1313         INSN_REFERENCES_ARE_DELAYED.
1314         * resource.c (mark_referenced_resources): Likewise.
1315
1316 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1317
1318         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
1319         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
1320         * resource.c (mark_set_resources): Likewise.
1321
1322 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1323
1324         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
1325         * cfgcleanup.c (flow_find_cross_jump): Likewise.
1326         (flow_find_head_matching_sequence): Likewise.
1327         (try_head_merge_bb): Likewise.
1328         * combine.c (can_combine_p): Likewise.
1329         (try_combine): Likewise.
1330         (distribute_notes): Likewise.
1331         * df-problems.c (can_move_insns_across): Likewise.
1332         * final.c (final): Likewise.
1333         * gcse.c (insert_insn_end_basic_block): Likewise.
1334         * ira.c (find_moveable_pseudos): Likewise.
1335         * reorg.c (try_merge_delay_insns): Likewise.
1336         (fill_simple_delay_slots): Likewise.
1337         (fill_slots_from_thread): Likewise.
1338         * sched-deps.c (sched_analyze_2): Likewise.
1339
1340 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1341
1342         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
1343         PIC_OFFSET_TABLE_REGNUM.
1344
1345 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1346
1347         * alias.c (init_alias_target): Remove ifdef
1348         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
1349         * df-scan.c (df_insn_refs_collect): Likewise.
1350         (df_get_regular_block_artificial_uses): Likewise.
1351         (df_get_eh_block_artificial_uses): Likewise.
1352         (df_get_entry_block_def_set): Likewise.
1353         (df_get_exit_block_use_set): Likewise.
1354         * emit-rtl.c (gen_rtx_REG): Likewise.
1355         * ira.c (ira_setup_eliminable_regset): Likewise.
1356         * reginfo.c (init_reg_sets_1): Likewise.
1357         * regrename.c (rename_chains): Likewise.
1358         * reload1.c (reload): Likewise.
1359         (eliminate_regs_in_insn): Likewise.
1360         * resource.c (mark_referenced_resources): Likewise.
1361         (init_resource_info): Likewise.
1362
1363 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1364
1365         * defaults.h (MASK_RETURN_ADDR): New definition.
1366         * except.c (expand_builtin_extract_return_addr): Remove ifdef
1367         MASK_RETURN_ADDR.
1368
1369 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1370
1371         * defaults.h (RETURN_ADDR_OFFSET): New definition.
1372         * except.c (expand_builtin_extract_return_addr): Remove ifdef
1373         RETURN_ADDR_OFFSET.
1374         (expand_builtin_frob_return_addr): Likewise.
1375
1376 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1377
1378         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
1379         (try_redirect_by_replacing_jump): Likewise.
1380         (rtl_tidy_fallthru_edge): Likewise.
1381         * combine.c (insn_a_feeds_b): Likewise.
1382         (find_split_point): Likewise.
1383         (simplify_set): Likewise.
1384         * cprop.c (cprop_jump): Likewise.
1385         * cse.c (cse_extended_basic_block): Likewise.
1386         * df-problems.c (can_move_insns_across): Likewise.
1387         * function.c (emit_use_return_register_into_block): Likewise.
1388         * haifa-sched.c (sched_init): Likewise.
1389         * ira.c (find_moveable_pseudos): Likewise.
1390         * loop-invariant.c (find_invariant_insn): Likewise.
1391         * lra-constraints.c (curr_insn_transform): Likewise.
1392         * postreload.c (reload_combine_recognize_const_pattern):
1393         * Likewise.
1394         * reload.c (find_reloads): Likewise.
1395         * reorg.c (delete_scheduled_jump): Likewise.
1396         (steal_delay_list_from_target): Likewise.
1397         (steal_delay_list_from_fallthrough): Likewise.
1398         (redundant_insn): Likewise.
1399         (fill_simple_delay_slots): Likewise.
1400         (fill_slots_from_thread): Likewise.
1401         (delete_computation): Likewise.
1402         * sched-rgn.c (add_branch_dependences): Likewise.
1403
1404 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1405
1406         * genconfig.c (main): Always define HAVE_cc0.
1407         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
1408         HAVE_cc0.
1409         * cfgcleanup.c (flow_find_cross_jump): Likewise.
1410         (flow_find_head_matching_sequence): Likewise.
1411         (try_head_merge_bb): Likewise.
1412         * cfgrtl.c (rtl_merge_blocks): Likewise.
1413         (try_redirect_by_replacing_jump): Likewise.
1414         (rtl_tidy_fallthru_edge): Likewise.
1415         * combine.c (do_SUBST_MODE): Likewise.
1416         (insn_a_feeds_b): Likewise.
1417         (combine_instructions): Likewise.
1418         (can_combine_p): Likewise.
1419         (try_combine): Likewise.
1420         (find_split_point): Likewise.
1421         (subst): Likewise.
1422         (simplify_set): Likewise.
1423         (distribute_notes): Likewise.
1424         * cprop.c (cprop_jump): Likewise.
1425         * cse.c (cse_extended_basic_block): Likewise.
1426         * df-problems.c (can_move_insns_across): Likewise.
1427         * final.c (final): Likewise.
1428         (final_scan_insn): Likewise.
1429         * function.c (emit_use_return_register_into_block): Likewise.
1430         * gcse.c (insert_insn_end_basic_block): Likewise.
1431         * haifa-sched.c (sched_init): Likewise.
1432         * ira.c (find_moveable_pseudos): Likewise.
1433         * loop-invariant.c (find_invariant_insn): Likewise.
1434         * lra-constraints.c (curr_insn_transform): Likewise.
1435         * optabs.c (prepare_cmp_insn): Likewise.
1436         * postreload.c (reload_combine_recognize_const_pattern):
1437         * Likewise.
1438         * reload.c (find_reloads): Likewise.
1439         (find_reloads_address_1): Likewise.
1440         * reorg.c (delete_scheduled_jump): Likewise.
1441         (steal_delay_list_from_target): Likewise.
1442         (steal_delay_list_from_fallthrough): Likewise.
1443         (try_merge_delay_insns): Likewise.
1444         (redundant_insn): Likewise.
1445         (fill_simple_delay_slots): Likewise.
1446         (fill_slots_from_thread): Likewise.
1447         (delete_computation): Likewise.
1448         (relax_delay_slots): Likewise.
1449         * sched-deps.c (sched_analyze_2): Likewise.
1450         * sched-rgn.c (add_branch_dependences): Likewise.
1451
1452 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1453
1454         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
1455         that is trivially ded on non cc0 targets.
1456         (simplify_set): Likewise.
1457         (mark_used_regs_combine): Likewise.
1458         * cse.c (new_basic_block): Likewise.
1459         (fold_rtx): Likewise.
1460         (cse_insn): Likewise.
1461         (cse_extended_basic_block): Likewise.
1462         (set_live_p): Likewise.
1463         * rtlanal.c (canonicalize_condition): Likewise.
1464         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
1465
1466 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1467
1468         * conditions.h: Define macros even if HAVE_cc0 is undefined.
1469         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
1470         * final.c: Likewise.
1471         * jump.c: Likewise.
1472         * recog.c: Likewise.
1473         * recog.h: Declare functions even when HAVE_cc0 is undefined.
1474         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
1475
1476 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1477
1478         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
1479         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
1480         * builtins.c (expand_builtin): Remove check if
1481         EH_RETURN_DATA_REGNO is defined.
1482         * df-scan.c (df_bb_refs_collect): Likewise.
1483         (df_get_exit_block_use_set): Likewise.
1484         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
1485         * ira-lives.c (process_bb_node_lives): Likewise.
1486         * lra-lives.c (process_bb_lives): Likewise.
1487
1488 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
1489
1490         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
1491         FIRST_PSEUDO_REG): New.
1492         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
1493         (ARG_POINTER_REGNUM): Define to ARGP_REG.
1494         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
1495         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
1496         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
1497         (FIRST_INT_REG): New.
1498         (LAST_INT_REG): New.
1499         (FIRST_*_REG): Define using *_REG.
1500         (LAST_*_REG): Ditto.
1501         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
1502         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
1503         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
1504
1505 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1506
1507         * expmed.c: (synth_mult): Only assume overlapping
1508         shift with previous steps in alg_sub_t_m2 case.
1509
1510 2015-04-21  Richard Biener  <rguenther@suse.de>
1511
1512         PR tree-optimization/65650
1513         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
1514         transitions involving copies.
1515         (set_lattice_value): Adjust for copy lattice state.
1516         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
1517         if that doesn't dominate the merge point.
1518         (bit_value_unop): Adjust what we treat as varying mask.
1519         (bit_value_binop): Likewise.
1520         (bit_value_assume_aligned): Likewise.
1521         (evaluate_stmt): When we simplified to a SSA name record a copy
1522         instead of dropping to varying.
1523         (visit_assignment): Simplify.
1524
1525         * gimple-match.h (gimple_simplify): Add another callback.
1526         * gimple-fold.c (fold_stmt_1): Adjust caller.
1527         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
1528         for the 2nd callback.
1529         * gimple-match-head.c (gimple_simplify): Add a callback that is
1530         used to valueize the stmt operands and use it that way.
1531
1532 2015-04-21  Richard Biener  <rguenther@suse.de>
1533
1534         PR tree-optimization/65788
1535         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
1536
1537 2015-04-21  Richard Biener  <rguenther@suse.de>
1538
1539         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
1540         vec_construct cost by vec_stmt_cost.
1541
1542 2015-04-21  Richard Biener  <rguenther@suse.de>
1543
1544         * cfghooks.h (create_basic_block): Replace with two overloads
1545         for RTL and GIMPLE.
1546         (split_block): Likewise.
1547         * cfghooks.c (split_block): Rename to ...
1548         (split_block_1): ... this.
1549         (split_block): Add two type-safe overloads for RTL and GIMPLE.
1550         (split_block_after_labels): Call split_block_1.
1551         (create_basic_block): Rename to ...
1552         (create_basic_block_1): ... this.
1553         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
1554         (create_empty_bb): Call create_basic_block_1.
1555         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
1556         split_block_after_labels.
1557         * omp-low.c (expand_parallel_call): Likewise.
1558         (expand_omp_target): Likewise.
1559         (simd_clone_adjust): Likewise.
1560         * tree-chkp.c (chkp_get_entry_block): Likewise.
1561         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
1562         create_basic_block overload.
1563         (cgraph_node::expand_thunk): Likewise.
1564         * tree-cfg.c (make_blocks): Likewise.
1565         (handle_abnormal_edges): Likewise.
1566         * tree-inline.c (copy_bb): Likewise.
1567
1568 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1569
1570         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
1571         New pattern.
1572         (*xor_one_cmplsidi3_ze): Likewise.
1573
1574 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1575
1576         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
1577         use df_remove_problem rather than manually removing problems, leaving
1578         holes in df->problems_in_order[].
1579
1580 2015-04-21  Tom de Vries  <tom@codesourcery.com>
1581
1582         PR tree-optimization/65802
1583         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
1584
1585 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1586
1587         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
1588         Increase to 128.
1589         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
1590         at '.'.  Assert that there's enough space for everything.
1591
1592 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
1593
1594         PR tree-optimization/64950
1595         Revert:
1596         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
1597
1598         PR target/41089
1599         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
1600         as volatile.
1601
1602 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
1603
1604         PR rtl-optimization/64916
1605         * cfgcleanup.c (values_equal_p): New function.
1606         (can_replace_by): Use it.
1607
1608 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
1609
1610         PR c++/65801
1611         * doc/invoke.texi ([-Wnarrowing]): Update.
1612
1613 2015-04-20  Jeff Law  <law@redhat.com>
1614
1615         PR tree-optimization/65658
1616         * tree-ssa-threadupdate.c (redirection_block_p): Remove
1617         redundant test for GIMPLE_ASSIGN in last change.
1618
1619 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
1620
1621         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
1622         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
1623         (legitimize_tls_address): Ditto.
1624         (ix86_expand_move): Ditto.
1625         (ix86_expand_binary_operator): Remove reload_in_progress checks.
1626         (ix86_expand_unary_operator): Ditto.
1627         * config/i386/predicates.md (index_register_operand): Ditto.
1628
1629 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
1630
1631         * reorg.c (try_merge_delay_insns): Improve correctness checking
1632         for targets with multiple delay slots.
1633
1634 2015-04-20  Jeff Law  <law@redhat.com>
1635
1636         PR tree-optimization/65658
1637         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
1638         statements too.
1639
1640 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
1641
1642         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
1643         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
1644         Delete.
1645
1646 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
1647
1648         PR debug/65807
1649         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
1650
1651 2015-04-20  Richard Biener  <rguenther@suse.de>
1652
1653         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
1654         * gimple-fold.c (gimple_build_valueize): New function.
1655         (gimple_build): Always use gimple_build_valueize as valueize hook.
1656
1657 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
1658
1659         PR target/64134
1660         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
1661         and overwrite variable parts if <= 1/2 the elements are variable.
1662
1663 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
1664
1665         PR rtl-optimization/65805
1666         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
1667         Don't use difference of offset and previous offset if
1668         update_sp_offset is non-zero.
1669         (eliminate_regs_in_insn): Ditto.
1670         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
1671         lra_eliminate_regs_1 call.
1672         * lra-constraints.c (get_equiv_with_elimination): Ditto.
1673
1674 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
1675
1676         * hash-table.h: Remove version of hash_table that stored value_type *.
1677         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
1678         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
1679         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
1680         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
1681         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
1682         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
1683         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
1684         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
1685         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
1686         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
1687         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
1688         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
1689         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
1690         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
1691         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
1692         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
1693
1694 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1695             Jakub Jelinek  <jakub@redhat.com>
1696
1697         PR target/65787
1698         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
1699         subsequent SH_NONE operand does not overwrite an existing *special
1700         value.
1701         (adjust_extract): Handle case where a vec_extract operation is
1702         wrapped in a PARALLEL.
1703
1704 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
1705
1706         PR target/65780
1707         * config/i386/i386.c (ix86_binds_local_p): Define only if
1708         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
1709
1710 2015-04-17  Jeff Law  <law@redhat.com>
1711
1712         PR tree-optimization/47679
1713         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
1714         * tree-ssa-scopedtables.c: New file.
1715         * tree-ssa-scopedtables.h: New file.
1716         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
1717         (const_and_copies): Change name/type.
1718         (record_const_or_copy): Move into tree-ssa-scopedtables.c
1719         (record_const_or_copy_1): Similarly.
1720         (restore_vars_to_original_value): Similarly.
1721         (pass_dominator::execute): Create and destroy const_and_copies table.
1722         (thread_across_edge): Update passing of const_and_copies.
1723         (record_temporary_equivalence): Use method calls rather than
1724         manipulating const_and_copies directly.
1725         (record_equality, cprop_into_successor_phis): Similarly.
1726         (dom_opt_dom_walker::before_dom_children): Similarly.
1727         (dom_opt_dom_walker::after_dom_children): Similarly.
1728         (eliminate_redundant_computations): Similarly.
1729         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
1730         (record_temporary_equivalence): Likewise.
1731         (invalidate_equivalences): Likewise.
1732         (record_temporary_equivalences_from_phis): Update due to type
1733         change of const_and_copies.  Use method calls rather than
1734         manipulating the stack directly.
1735         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
1736         (thread_through_normal_block, thread_across_edge): Likewise.
1737         (thread_across_edge): Likewise.
1738         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
1739         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
1740         of equiv_stack.
1741         (identify_jump_threads): Update due to type change of equiv_stack.
1742         (finalize_jump_threads): Delete the equiv_stack when complete.
1743
1744 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
1745
1746         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
1747         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
1748         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
1749
1750 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
1751
1752         PR target/65535
1753         * config.gcc: Exit with a comment when we do not have a major version
1754         number for the FreeBSD target.
1755
1756 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
1757
1758         PR target/65689
1759         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
1760         maybe_allows_mem bitfields.
1761         (maybe_allows_none_start, maybe_allows_none_end,
1762         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
1763         maybe_allows_mem_end): New variables.
1764         (compute_maybe_allows): New function.
1765         (add_constraint): Use it to initialize maybe_allows_reg and
1766         maybe_allows_mem fields.
1767         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
1768         is_address constraints such that those that allow neither mem nor
1769         reg come first, then those that only allow reg but not mem, then
1770         those that only allow mem but not reg, then the rest.
1771         (write_allows_reg_mem_function): New function.
1772         (write_tm_preds_h): Call it.
1773         * stmt.c (parse_output_constraint, parse_input_constraint): Use
1774         the generated insn_extra_constraint_allows_reg_mem function
1775         instead of always setting *allows_reg = true; *allows_mem = true;
1776         for unknown extra constraints.
1777
1778 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
1779
1780         PR target/65780
1781         * output.h (default_binds_local_p_3): New.
1782         * varasm.c (default_binds_local_p_3): Make it public.  Take an
1783         argument to indicate if common symbol may be local.  If common
1784         symbol may be local, treat non-external variable as defined
1785         locally.
1786         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
1787         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
1788         * config/i386/i386.c (ix86_binds_local_p): New.
1789         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
1790         ix86_binds_local_p.
1791
1792 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
1793
1794         PR debug/65771
1795         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
1796         trying mem_loc_descriptor on XEXP (rtl, 0).
1797
1798 2015-04-17  Martin Liska  <mliska@suse.cz>
1799
1800         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
1801         Release symbol_compare_collection.
1802         * ipa-reference.c: Add TODO that a vector should be released.
1803
1804 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
1805
1806         PR target/65296
1807         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
1808         to new AVR-LibC file layout (bug #44574).
1809         (*avrlibc_devicelib): Same.
1810         * config/avr/avr-mcus.def: Adjust comments.
1811         * config/avr/avr.opt (nodevicelib): Adjust help.
1812
1813 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
1814
1815         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
1816
1817 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
1818
1819         PR c++/64527
1820         * gimplify.c (gimplify_init_constructor): Always emit a
1821         side-effecting constructor.
1822
1823 2015-04-17  Tom de Vries  <tom@codesourcery.com>
1824
1825         PR tree-optimization/64950
1826         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
1827         in cfun->curr_properties.
1828         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
1829         if we generate an IFN_VA_ARG.
1830         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
1831         function if PROP_gimple_lva is not set in src function.
1832
1833 2015-04-17  Tom de Vries  <tom@codesourcery.com>
1834             Michael Matz  <matz@suse.de>
1835
1836         PR tree-optimization/64950
1837         * gimple-iterator.c (update_modified_stmts): Remove static.
1838         * gimple-iterator.h (update_modified_stmts): Declare.
1839         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
1840         (gimplify_va_arg_internal): New function.
1841         (gimplify_va_arg_expr): Use IFN_VA_ARG.
1842         * gimplify.h (gimplify_va_arg_internal): Declare.
1843         * internal-fn.c (expand_VA_ARG): New unreachable function.
1844         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
1845         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
1846         (expand_ifn_va_arg): New function.
1847         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
1848         (pass_stdarg::execute): Call expand_ifn_va_arg.
1849         (pass_data_lower_vaarg): New pass_data.
1850         (pass_lower_vaarg): New gimple_opt_pass.
1851         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
1852         (make_pass_lower_vaarg): New function.
1853         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
1854         properties_required field.
1855         * passes.def (all_passes): Add pass_lower_vaarg.
1856         * tree-pass.h (PROP_gimple_lva): Add define.
1857         (make_pass_lower_vaarg): Declare.
1858
1859 2015-04-17  Tom de Vries  <tom@codesourcery.com>
1860
1861         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
1862         * calls.c (call_expr_flags): Same.
1863
1864 2015-04-17  Tom de Vries  <tom@codesourcery.com>
1865
1866         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
1867         (pass_stdarg::execute): ... here.
1868
1869 2015-04-17  Tom de Vries  <tom@codesourcery.com>
1870             Michael Matz  <matz@suse.de>
1871
1872         * tree-cfg.c (make_blocks_1): Factor out of ...
1873         (make_blocks): ... here.
1874         (make_edges_bb): Factor out of ...
1875         (make_edges): ... here.
1876         (gimple_find_sub_bbs): New function.
1877         * tree-cfg.h (gimple_find_sub_bbs): Declare.
1878
1879 2015-04-17  Tom de Vries  <tom@codesourcery.com>
1880
1881         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
1882
1883 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
1884
1885         * asan.c (set_sanitized_sections): New function.
1886         (section_sanitized_p): Ditto.
1887         (asan_protect_global): Optionally sanitize user-defined
1888         sections.
1889         * asan.h (set_sanitized_sections): Declare new function.
1890         * common.opt (fsanitize-sections): New option.
1891         * doc/invoke.texi (-fsanitize-sections): Document new option.
1892         * opts-global.c (handle_common_deferred_options): Handle new
1893         option.
1894
1895 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
1896
1897         PR debug/65771
1898         * dwarf2out.c (loc_list_from_tree): Return NULL
1899         for DEBUG_EXPR_DECL.
1900
1901 2015-04-17  Christian Bruel  <christian.bruel@st.com>
1902
1903         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
1904         same attributes.
1905
1906 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
1907
1908         * ira-color.c (setup_left_conflict_sizes_p): Do not process
1909         node itself when computing left conflict subnode size.
1910
1911 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
1912
1913         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
1914         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
1915         *fop_<mode>_1_sse using enabled attribute.  Use
1916         register_mixssei387nonimm_operand operand 1 predicate. Change
1917         alternative 3 constraints from "x" to "v".
1918
1919 2015-04-16  Richard Biener  <rguenther@suse.de>
1920
1921         PR tree-optimization/65774
1922         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
1923         bit-value tracking on.
1924
1925 2015-04-16  Richard Biener  <rguenther@suse.de>
1926
1927         PR tree-optimization/64277
1928         * tree-vrp.c (check_array_ref): Fix anti-range handling,
1929         simplify upper bound handling.
1930         (search_for_addr_array): Simplify.
1931         (check_array_bounds): Handle ADDR_EXPRs here.
1932         (check_all_array_refs): Simplify.
1933
1934 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
1935
1936         * config/i386/i386.c (print_reg): Rewrite function.
1937
1938 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1939
1940         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
1941         Invert the condition.
1942
1943 2015-04-16  Renlin Li  <renlin.li@arm.com>
1944
1945         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
1946         simplifications for UNSIGNED_FLOAT.
1947
1948 2015-04-16  Nick Clifton  <nickc@redhat.com>
1949
1950         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
1951         MUL_UNINIT.
1952         (enum rl78_cpu_type): New.
1953         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
1954         (umulhi3_shift_virt): Remove m constraint from operand 1.
1955         (umulqihi3_virt): Likewise.
1956         * config/rl78/rl78.c (rl78_option_override): Add code to process
1957         -mcpu and -mmul options.
1958         (rl78_alloc_physical_registers): Add code to handle divhi and
1959         divsi valloc attributes.
1960         (set_origin): Likewise.
1961         * config/rl78/rl78.h (RL78_MUL_G14): Define.
1962         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
1963         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
1964         __RL78_Gxx__.
1965         (ASM_SPEC): Pass -mcpu on to assembler.
1966         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
1967         (mulqi3_rl78): Likewise.
1968         (mulhi3_g13): Likewise.
1969         (mulhi3): Generate the G13 or G14 versions of the insn directly.
1970         (mulsi3): Likewise.
1971         (mulhi3_g14): Add clobbers of AX and BC.
1972         (mulsi3_g14): Likewise.
1973         (mulsi3_g13): Likewise.
1974         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
1975         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
1976         * config/rl78/rl78.opt (mmul): Initialise value to
1977         RL78_MUL_UNINIT.
1978         (mcpu): New option.
1979         (m13, m14, mrl78): New option aliases.
1980         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
1981         (MULTILIB_DIRNAMES): Add g13 and g14.
1982         * doc/invoke.texi: Document -mcpu and -mmul options.
1983
1984 2015-04-16  Richard Biener  <rguenther@suse.de>
1985
1986         * tree-ssa-ccp.c (likely_value): See if we have operands that
1987         are marked as never simulate again and return CONSTANT in this
1988         case.
1989         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
1990         not have any operands that will be simulated again as
1991         not being simulated again.
1992
1993 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
1994
1995         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
1996         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
1997         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
1998         attribute.
1999         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
2000         enabled attribute.
2001         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
2002         *float<SWI48:mode><MODEF:mode>2_sse.
2003         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
2004         enabled attribute.
2005         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
2006         enabled attribute.
2007
2008 2015-04-15  Tom de Vries  <tom@codesourcery.com>
2009
2010         PR other/65487
2011         * function.c (push_dummy_function): New function.
2012         (init_dummy_function_start): Use push_dummy_function.
2013         (pop_dummy_function): New function.  Factored out of ...
2014         (expand_dummy_function_end): ... here.
2015         * function.h (push_dummy_function, pop_dummy_function): Declare.
2016         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
2017         pop_dummy_function.
2018         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
2019
2020 2015-04-15  Jeff Law  <law@redhat.com>
2021
2022         PR tree-optimization/47679
2023         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
2024         need for forward declaration in upcoming changes.
2025         (record_conditions, record_edge_info): Likewise.
2026
2027         PR rtl-optimization/42522
2028         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
2029         SIGN_EXTRACT as a whole object rather than simplifying
2030         its operand.
2031
2032 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
2033
2034         PR ipa/65765
2035         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
2036         and GIMPLE_PREDICT use break instead of return true. For
2037         GIMPLE_EH_DISPATCH, compare dispatch region.
2038
2039 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
2040
2041         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
2042         details about the implementation.  Make clear preference for
2043         __atomic builtins.  Reduce possibility of future change.
2044
2045 2015-04-15  Nick Clifton  <nickc@redhat.com>
2046
2047         * config/rx/rx.opt (mallow-string-insns): New option.
2048         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
2049         builtin if string instructions are denied.
2050         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
2051         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
2052         appropriate.
2053         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
2054         * config/rx/rx.md (movstr): Enable pattern only if string
2055         instructions are allowed.
2056         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
2057         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
2058         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
2059         (MULTILIB_DIRNAMES): Add no-strings.
2060         * doc/invoke.texi: Document -mno-allow-string-insns.
2061
2062 2015-04-15  Alan Modra  <amodra@gmail.com>
2063
2064         PR target/65408
2065         PR target/58744
2066         PR middle-end/36043
2067         * calls.c (load_register_parameters): Don't load past end of
2068         mem unless suitably aligned.
2069
2070 2015-04-15  Nick Clifton  <nickc@redhat.com>
2071
2072         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
2073         decrement instruction as being frame related.
2074         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
2075         based addresses.
2076         If zero extending a function address enclose the operation in
2077         %code(...).
2078         (rl78_preferred_reload_class): New function.
2079         (TARGET_PREFERRED_RELOAD_CLASS): Define.
2080         * config/rl78/rl78.md: Remove useless constraints in expanders.
2081         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
2082         (mulhi3_rl78): Likewise.
2083         (mulhi3_g13): Likewise.
2084         (mulsi3_rl78): Likewise.
2085         (es_addr): Move to before the multiply patterns.
2086
2087 2015-04-15  Alan Modra  <amodra@gmail.com>
2088
2089         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
2090         and sequence_stack.  Add seq.
2091         (seq_stack): Delete.
2092         * function.c (prepare_function_start): Don't access x_last_insn.
2093         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
2094         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
2095         * emit_rtl.c (start_sequence, push_topmost_sequence,
2096         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
2097         sequence accessors.
2098         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
2099         remove_insn): Likewise.  Simplify.
2100         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
2101         and pop_topmost_sequence.
2102         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
2103         debug insns.
2104         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
2105
2106 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
2107
2108         PR target/65729
2109         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
2110         the assertiion.
2111
2112 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
2113
2114         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
2115         (LEGACY_INT_REGNO_P): Ditto.
2116         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
2117         (ANY_MASK_REG_P): Remove.
2118         (BND_REG_P): Rename from ANY_BND_REG_P.
2119         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
2120         legacy integer registers.  Do not handle MMX_REG_P in a special way.
2121         Merge 64byte and 32byte SSE handling.
2122
2123 2015-04-14  Nick Clifton  <nickc@redhat.com>
2124
2125         * expr.c (expand_assignment): Force an address offset computation
2126         into a register before changing its mode.
2127         (expand_expr_real_1): Likewise.
2128
2129 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
2130
2131         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
2132         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
2133         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
2134         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
2135         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
2136         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
2137         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
2138         and __aarch64_vget_lane_any.
2139
2140 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
2141
2142         PR rtl-optimization/65761
2143         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
2144         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
2145
2146 2015-04-14  Richard Biener  <rguenther@suse.de>
2147
2148         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
2149         (graphite_can_represent_scev): Use POINTER_TYPE_P.
2150
2151 2015-04-14  Richard Biener  <rguenther@suse.de>
2152
2153         PR tree-optimization/65758
2154         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
2155         against -1.
2156         (ccp_lattice_meet): Likewise.
2157         (bit_value_unop): Likewise.
2158         (bit_value_binop): Likewise.
2159         (bit_value_assume_aligned): Likewise.
2160
2161 2015-04-14  Christian Bruel  <christian.bruel@st.com>
2162
2163         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
2164         function.
2165
2166 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
2167
2168         PR tree-optimization/63387
2169         * match.pd ((x unord x) | (y unord y) -> (x unord y),
2170         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
2171
2172 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
2173
2174         * config/i386/predicates.md (any_QIreg_operand): Rename from
2175         q_regs_operand.  Do not process subregs.
2176         (QIreg_operand): Use QI_REGNO_P predicate.
2177         (ext_QIreg_operand): Ditto.
2178         (ext_register_operand): Ditto.
2179         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
2180         (AND splitters): Ditto.
2181         (AND with -65536 splitter): Add SWI48 mode for operand 0.
2182         (AND with -256 splitter): Use any_QIreg_operand predicate and
2183         SWI248 mode for operand 0.
2184         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
2185         mode for operand 0.
2186         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
2187
2188 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
2189
2190         * doc/plugins.texi: Rewrite first introductory paragraph.
2191
2192 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
2193
2194         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
2195         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
2196
2197 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
2198
2199         * ipa-profie.c (ipa_profile): Check number of parameters
2200         and possible polymorphic call targets before
2201         devirtualizing.
2202
2203 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
2204
2205         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
2206         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
2207
2208 2015-04-13  Richard Biener  <rguenther@suse.de>
2209
2210         PR tree-optimization/65204
2211         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
2212         takens for bit-CCP.
2213
2214 2015-04-13  Richard Biener  <rguenther@suse.de>
2215
2216         PR target/65660
2217         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
2218         and cond_not_taken_branch_cost to 4 and 2.
2219         (bdver2_cost): Likewise.
2220         (bdver3_cost): Likewise.
2221         (bdver4_cost): Likewise.
2222
2223 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
2224
2225         * hash-table.h (hash_table constructor): Add mem stats.
2226         (alloc_entries): Likewise.
2227
2228 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
2229
2230         * ipa-cp.c (ipcp_driver): Relase prev_edge.
2231         * passes.c (execute_one_pass): Only add transform if pass has one.
2232
2233 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
2234
2235         * config/i386/i386.c (ix86_option_override_internal): Don't set
2236         -fprefetch-loop-arrays if optimizing for size.
2237
2238 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
2239             Gerald Pfeifer  <gerald@pfeifer.com>
2240
2241         * doc/contrib.texi (Contributors): Add Martin Jambor and
2242         Michael Matz.
2243
2244 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
2245
2246         * BASE-VER: Set to 6.0.0.
2247
2248         PR tree-optimization/65747
2249         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
2250         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
2251
2252 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
2253
2254         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
2255         sentence.  Improve grammar.
2256
2257 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
2258
2259         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
2260
2261 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
2262
2263         PR ipa/65743
2264         * ipa-inline-transform.c (speculation_removed): Remove static var.
2265         (check_speculations): New function.
2266         (clone_inlined_nodes): Do not check spculations.
2267         (inline_call): Call check_speculations.
2268         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
2269         consider non-invariants.
2270
2271 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
2272             Martin Liska  <mliska@suse.cz>
2273
2274         PR ipa/65722
2275         * ipa-icf.c (sem_item::compare_cgraph_references): function and
2276         variable can not match.
2277         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
2278         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
2279
2280 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
2281
2282         PR tree-optimization/65735
2283         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
2284         Remove visited_phis argument, add visited_bbs, avoid recursing into the
2285         same bb rather than just into the same phi node.
2286         (thread_through_normal_block): Adjust caller.
2287
2288 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
2289
2290         * doc/contrib.texi (Contributors): Add Ira Rosen.
2291
2292 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
2293
2294         * gcov.c (find_source): Fix miswording in error message.
2295         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
2296         (ix86_expand_sse_comi_round): Fix typo in error message.
2297
2298 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
2299
2300         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
2301
2302 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
2303
2304         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
2305
2306 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
2307
2308         PR target/65710
2309         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
2310         Print bad_spills_num and insn_pseudos_num.
2311
2312 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2313
2314         PR target/65694
2315         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
2316         when creating +1 values for SImode.
2317
2318 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
2319
2320         PR target/65729
2321         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
2322         assert.
2323
2324 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
2325             Iain Sandoe  <iain@codesourcery.com>
2326
2327         PR target/65351
2328         * configure: Regenerate.
2329
2330 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
2331
2332         PR target/65671
2333         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
2334
2335 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
2336
2337         * doc/contrib.texi (Contributors): Add John Marino.
2338
2339 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
2340
2341         PR tree-optimization/65709
2342         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
2343         TREE_TYPE (TREE_TYPE (t)).
2344
2345 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
2346
2347         PR target/65710
2348         * lra-int.h (lra_bad_spill_regno_start): New.
2349         * lra.c (lra_bad_spill_regno_start): New.
2350         (lra): Set up lra_bad_spill_regno_start.  Set up
2351         lra_constraint_new_regno_start unconditionally.
2352         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
2353         spill preferences.
2354
2355 2015-04-09  Marek Polacek  <polacek@redhat.com>
2356             Jakub Jelinek  <jakub@redhat.com>
2357
2358         PR middle-end/65554
2359         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
2360         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
2361         of STRIP_NOPS.
2362
2363 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
2364
2365         PR rtl-optimization/65693
2366         * combine.c (is_parallel_of_n_reg_sets): Move outside of
2367         #ifndef HAVE_cc0.
2368
2369 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
2370
2371         PR target/65296
2372         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
2373         device specs file if "device-specs%s" didn't resolve to a path.
2374
2375 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
2376
2377         PR target/65676
2378         * config/i386/i386.c (fixup_modeless_constant): New.
2379         (ix86_expand_args_builtin): Fixup modeless constant operand.
2380         (ix86_expand_round_builtin): Ditto.
2381         (ix86_expand_special_args_builtin): Ditto.
2382         (ix86_expand_builtin): Ditto.
2383
2384 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
2385
2386         PR target/65693
2387         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
2388         any pow2 integer in between 2 and 0x80000000U inclusive.
2389
2390 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
2391
2392         PR rtl-optimization/65693
2393         * combine.c (is_parallel_of_n_reg_sets): Change first argument
2394         from an rtx_insn * to an rtx.
2395         (try_combine): Adjust both callers.  Use it once more.
2396
2397 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
2398
2399         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
2400         (chkp_make_static_const_bounds): Search existing
2401         symbol by assembler name.  Use make_decl_one_only.
2402         (chkp_get_zero_bounds_var): Remove node search which
2403         is now performed in chkp_make_static_const_bounds.
2404         (chkp_get_none_bounds_var): Likewise.
2405
2406 2015-04-08  Michael Witten  <mfwitten@gmail.com>
2407
2408         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
2409         to an example.
2410
2411 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2412
2413         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
2414
2415 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
2416
2417         * doc/extend.texi (__sync Builtins): Fix grammar.
2418
2419 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2420
2421         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
2422
2423 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2424
2425         * varasm.c (emit_local): Move definition of align.
2426
2427 2015-04-08  Julian Brown  <julian@codesourcery.com>
2428
2429         * config/nvptx/mkoffload.c (process): Support variable mapping.
2430
2431 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
2432
2433         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
2434         alpha_links **.
2435         (alpha_write_one_linkage): Correct typo.
2436
2437 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
2438
2439         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
2440
2441 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
2442
2443         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
2444
2445 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
2446
2447         * tree-chkp.h (chkp_insert_retbnd_call): New.
2448         * tree-chkp.c (chkp_insert_retbnd_call): New.
2449         * ipa-split.c (insert_bndret_call_after): Remove.
2450         (split_function): Use chkp_insert_retbnd_call.
2451         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
2452         bounds for instrumented functions.
2453
2454 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
2455
2456         PR ipa/65540
2457         * calls.c (initialize_argument_information): When producing tail
2458         call also turn SSA_NAMES passed by references to original PARM_DECLs
2459
2460 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
2461
2462         PR target/65648
2463         * lra-remat.c (do_remat): Process input and non-input insn
2464         registers separately.
2465
2466 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
2467
2468         PR debug/65678
2469         * valtrack.c (debug_lowpart_subreg): New function.
2470         (dead_debug_insert_temp): Use it.
2471
2472         PR middle-end/65680
2473         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
2474         into signed HOST_WIDE_INT the same as negative bit_offset.
2475
2476 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
2477
2478         * ipa-comdats.c (ipa_comdats): Visit all thunks
2479         to set proper comdat group.
2480
2481 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2482
2483         PR target/65489
2484         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
2485         on constants for NEON VSTRUCT modes.
2486
2487 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
2488             Iain Sandoe  <iain@codesourcery.com>
2489
2490         PR target/65351
2491         * configure: Regenerate.
2492
2493 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
2494
2495         PR target/65614
2496         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
2497         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
2498         that LFD is used to load double constants instead of LFS.  Add
2499         defaults for all costs structures.  Add comments for missing
2500         initialization fields.
2501         (size32_cost): Likewise.
2502         (size64_cost): Likewise.
2503         (rs64a_cost): Likewise.
2504         (mpccore_cost): Likewise.
2505         (ppc403_cost): Likewise.
2506         (ppc405_cost): Likewise.
2507         (ppc440_cost): Likewise.
2508         (ppc476_cost): Likewise.
2509         (ppc601_cost): Likewise.
2510         (ppc603_cost): Likewise.
2511         (ppc604_cost): Likewise.
2512         (ppc604e_cost): Likewise.
2513         (ppc620_cost): Likewise.
2514         (ppc630_cost): Likewise.
2515         (ppccell_cost): Likewise.
2516         (ppc750_cost): Likewise.
2517         (ppc7450_cost): Likewise.
2518         (ppc8540_cost): Likewise.
2519         (ppce300c2c3_cost): Likewise.
2520         (ppce500mc_cost): Likewise.
2521         (ppce500mc64_cost): Likewise.
2522         (ppce5500_cost): Likewise.
2523         (ppce6500_cost): Likewise.
2524         (titan_cost): Likewise.
2525         (power4_cost): Likewise.
2526         (power6_cost): Likewise.
2527         (power7_cost): Likewise.
2528         (power8_cost): Likewise.
2529         (ppca2_cost): Likewise.
2530         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
2531
2532         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
2533         instead of XXLOR to copy SFmode to clear out dirty bits created
2534         when SFmode denormals are generated.
2535         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
2536         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
2537
2538 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
2539
2540         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
2541         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
2542         * config/aarch64/aarch64-tune.md: Regenerate.
2543
2544 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
2545
2546         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
2547         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
2548         * config/arm/arm-cores.def (exynos-m1): New core.
2549         * config/arm/arm-tune.md: Regenerate.
2550         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
2551         * config/arm/bpabi.h: Likewise.
2552
2553 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
2554
2555         * ipa-cp (set_single_call_flag): Remove too
2556         restrictive assert.
2557
2558 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
2559
2560         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
2561         GOMP_offload_unregister from the destructor.
2562
2563 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
2564
2565         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
2566         flags for instrumentation thunk.
2567         (chkp_produce_thunks): Likewise.
2568
2569 2015-04-05  Martin Liska  <mliska@suse.cz>
2570
2571         PR ipa/65665
2572         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
2573         has computed data structure.
2574         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
2575
2576 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
2577
2578         * invoke.texi (inline-unit-growth): Increase growth to 20%
2579         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
2580
2581 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
2582
2583         PR target/65647
2584         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
2585         value checking.
2586         (lra_rematerialization_iter): New.
2587         * lra.c (lra): Initialize lra_rematerialization_iter.
2588         Stop updating lra_constraint_new_regno_start after switching of
2589         inheritance and rematerialization.
2590         * lra-remat.c (lra_rematerialization_iter): New.
2591         (lra_remat): Add printing pass iteration.  Do rematerialization
2592         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
2593
2594 2015-04-04  Richard Biener  <rguenther@suse.de>
2595
2596         PR tree-optimization/64909
2597         PR tree-optimization/65660
2598         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
2599         to take a cost vector for scalar iteration cost.
2600         (vect_get_single_scalar_iteration_cost): Likewise.
2601         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
2602         Compute the scalar iteration cost into a cost vector.
2603         (vect_get_known_peeling_cost): Use the scalar cost vector to
2604         account for the cost of the peeled iterations.
2605         (vect_estimate_min_profitable_iters): Likewise.
2606         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
2607         Likewise.
2608
2609 2015-04-04  Alan Modra  <amodra@gmail.com>
2610
2611         PR target/65576
2612         PR target/65240
2613         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
2614         0.0 constant unless TARGET_VSX.
2615         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
2616         alternative.
2617
2618 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
2619
2620         PR ipa/65654
2621         * ipa-inline-transform.c (inline_call): Skip sanity check to work
2622         around the ICE
2623
2624 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
2625
2626         PR ipa/65655
2627         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
2628         speculative indirect edges to avoid ordering issue.
2629
2630 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
2631
2632         PR ipa/65076
2633         * ipa-inline.c (edge_badness): Add combined size to the denominator.
2634
2635 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
2636
2637         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
2638         TYPE_ARTIFICIAL on the .omp_data* types.
2639
2640 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
2641
2642         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
2643         instrumentation thunks.
2644
2645 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
2646
2647         * config/i386/i386.c (ix86_expand_call): Avoid nested
2648         PARALLEL in returned call value.
2649
2650 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
2651
2652         * lto-cgraph.c (input_cgraph_1): Always link instrumented
2653         assembler name with original one.
2654
2655 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
2656
2657         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
2658
2659 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
2660
2661         Revert parts of r216820.
2662         * config/i386/i386.md (movqi_internal): Correct type calculation
2663         for alternatives 3 and 5.
2664
2665 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
2666
2667         PR preprocessor/61977
2668         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
2669         predefine __vector/__bool/__pixel macros nor context sensitive
2670         macros for CLK_ASM.
2671         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
2672
2673 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
2674
2675         * config/pa/pa.c (pa_output_move_double): Directly handle register
2676         indexed memory operand.  Simplify handling of scaled register indexed
2677         memory operands.
2678
2679 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
2680
2681         PR driver/65444
2682         * config/i386/linux-common.h (MPX_SPEC): New.
2683         (CHKP_SPEC): Add MPX_SPEC.
2684         * doc/invoke.texi (-fcheck-pointer-boudns): Document
2685         possible issues with '-z bndplt' support in linker.
2686
2687 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
2688
2689         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
2690         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
2691         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
2692         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
2693         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
2694
2695 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
2696
2697         * config/i386/sync.md (UNSPEC_MOVA): Remove.
2698         (atomic_load<mode>): Change operand 0 predicate to
2699         nonimmediate_operand and fix up the destination when needed.
2700         Use UNSPEC_LDA.
2701         (atomic_loaddi_fpu): Use UNSPEC_LDA.
2702         (atomic_store<mode>): Change operand 1 predicate to
2703         nonimmendate_operand and move the source to register when needed.
2704         Use UNSPEC_STA.
2705         (atomic_store<mode>_1): Use UNSPEC_STA.
2706         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
2707         Fix moves from memory operand.  Use UNSPEC_STA.
2708
2709 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2710
2711         * expmed.c (strict_volatile_bitfield_p): Check that the access will
2712         not cross a MODESIZE boundary.
2713         (store_bit_field, extract_bit_field): Added assertions in the
2714         strict volatile bitfields code path.
2715
2716 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
2717
2718         PR target/65624
2719         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
2720         Increase args array size by one to avoid buffer overflow.
2721
2722 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
2723
2724         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
2725         split_part.
2726         * ipa-inline.c (edge_badness): Add wrapper penalty.
2727         (sum_callers): Move up.
2728         (inline_small_functions): Set single_caller.
2729         * ipa-inline.h (inline_summary): Add single_caller.
2730         * ipa-split.c (split_function): Set split_part.
2731         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
2732         * cgraph.h (cgraph_node): Add split_part.
2733
2734 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
2735
2736         PR target/58945
2737         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
2738         Do not split operands 0 and operands 2 to halfmode.
2739         (atomic_compare_and_swap<mode>): Update for
2740         atomic_compare_and_swap<dwi>_doubleword changes.
2741
2742 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
2743
2744         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
2745         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
2746         no caching is done.
2747
2748 2015-03-31  Martin Liska  <mliska@suse.cz>
2749
2750         PR ipa/65557
2751         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
2752         has already filled up function summary.
2753         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
2754
2755 2015-03-31  Richard Biener  <rguenther@suse.de>
2756
2757         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
2758         of types.
2759
2760 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2761
2762         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
2763         nested functions.
2764         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
2765         (s390_asm_output_function_label): Adapt to new signature of
2766         s390_function_num_hotpatch_hw
2767         Optimise the code generating assembler output.
2768         Add comments to assembler file.
2769
2770 2015-03-31  Richard Biener  <rguenther@suse.de>
2771
2772         PR middle-end/65626
2773         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
2774         of the noreturn call so it is last and cleanup_control_flow_bb
2775         can do the CFG part.
2776
2777 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
2778
2779         PR target/65531
2780         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
2781         same_comdat_group for external symbols.
2782         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
2783         infinite same_comdat_group traversal loop.
2784
2785 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
2786
2787         PR plugins/61176
2788         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
2789         automatically to $headers.
2790
2791 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
2792
2793         PR ipa/65610
2794         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
2795         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
2796         function.
2797         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
2798         Use it.
2799         * ipa-prop.c (param_type_may_change_p): Likewise.
2800         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
2801         (remove_unused_scope_block_p): Add in_ctor_dtor_block
2802         argument.  Before inlining, preserve
2803         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
2804         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
2805         recursive calls.
2806         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
2807
2808 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
2809
2810         PR ipa/65076
2811         * ipa-inline.c (edge_badness): Base denominator on callee's
2812         grwoth squared.
2813
2814 2015-03-27  Martin Jambor  <mjambor@suse.cz>
2815
2816         PR ipa/65478
2817         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
2818         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
2819         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
2820         node_calling_single_call.
2821         * ipa-cp.c (count_callers): New function.
2822         (set_single_call_flag): Likewise.
2823         (initialize_node_lattices): Count callers and set single_flag_call if
2824         necessary.
2825         (incorporate_penalties): New function.
2826         (good_cloning_opportunity_p): Use it, dump new flags.
2827         (propagate_constants_topo): Set node_within_scc flag if appropriate.
2828         * doc/invoke.texi (ipa-cp-recursion-penalty,
2829         ipa-cp-single-call-pentalty): Document.
2830
2831 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
2832
2833         PR ipa/65588
2834         * symtab.c (symtab_node::get_partitioning_class): Register vars
2835         are duplicated.
2836         * varpool.c (symbol_table::output_variables) Do not assemble unefined
2837         decls for non-symbols.
2838
2839 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
2840
2841         PR target/65248
2842         * output.h (default_binds_local_p_2): New.
2843         * varasm.c (default_binds_local_p_2): Renamed to ...
2844         (default_binds_local_p_3): This.  Don't return true on protected
2845         data symbol if protected data may be external.
2846         (default_binds_local_p): Use default_binds_local_p_3.
2847         (default_binds_local_p_1): Likewise.
2848         (default_binds_local_p_2): New.
2849         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
2850         default_binds_local_p_2 if TARGET_MACHO is undefined.
2851
2852 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
2853
2854         PR target/65593
2855         * config/i386/i386.c (legitimize_pic_address): If base
2856         is SYMBOL_REF or LABEL_REF using %rip addressing, force
2857         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
2858
2859 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
2860
2861         PR target/65531
2862         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
2863         comdat groups.
2864
2865 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
2866
2867         PR ipa/65600
2868         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
2869         of optimized out indirect call.
2870         (redirect_to_unreachable): Always build symbol table node for
2871         BUILT_IN_UNREACHABLE
2872
2873 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
2874
2875         PR target/65407
2876         * ira-costs.c (record_reg_classes): Process all constraint string
2877         containing 0-9.
2878
2879 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
2880
2881         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
2882         memory_operand.
2883
2884         PR target/65052
2885         * config/c6x/constraints.md (S3): New constraint.
2886         * config/c6x/c6x.md (real_jump): Use it.
2887
2888 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
2889
2890         PR middle-end/65595
2891         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
2892         do redirection if the call is not optimized out.
2893
2894 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
2895
2896         PR target/65495
2897         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
2898         (fchkp-check-incomplete-type): Add LTO.
2899         (fchkp-zero-input-bounds-for-main): Likewise.
2900         (fchkp-first-field-has-own-bounds): Likewise.
2901         (fchkp-narrow-bounds): Likewise.
2902         (fchkp-narrow-to-innermost-array): Likewise.
2903         (fchkp-use-static-bounds): Likewise.
2904         (fchkp-use-static-const-bounds): Likewise.
2905         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
2906
2907 2015-03-27  Marek Polacek  <polacek@redhat.com>
2908
2909         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
2910
2911 2015-03-27  Marek Polacek  <polacek@redhat.com>
2912
2913         PR sanitizer/65583
2914         * ubsan.c (ubsan_create_edge): New function.
2915         (instrument_bool_enum_load): Call it.
2916         (instrument_nonnull_arg): Likewise.
2917         (instrument_nonnull_return): Likewise.
2918         (instrument_object_size): Likewise.
2919
2920 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
2921
2922         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
2923         auto_vec.
2924
2925 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
2926
2927         PR lto/65536
2928         * lto-streamer.h (class lto_location_cache): New.
2929         (struct data_in): Add location_cache.
2930         (lto_input_location): Update prototype.
2931         (stream_input_location_now): New.
2932         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
2933         pointer to location.
2934         (stream_input_location): Update.
2935         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
2936         (warn_odr): Apply location cache before warning.
2937         (lto_input_location): Update prototype.
2938         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
2939         Use stream_input_location_now.
2940         * lto-streamer-in.c (lto_location_cache::current_cache): New static
2941         variable.
2942         (lto_location_cache::cmp_loc): New function.
2943         (lto_location_cache::apply_location_cache): New function.
2944         (lto_location_cache::accept_location_cache): New function.
2945         (lto_location_cache::revert_location_cache): New function.
2946         (lto_location_cache::input_location): New function.
2947         (lto_input_location): Do location caching.
2948         (stream_input_location_now): New function.
2949         (input_eh_region, input_struct_function_base): Use
2950         stream_input_location_now.
2951         (lto_data_in_create): use new.
2952         (lto_data_in_delete): Use delete.
2953         * tree-streamer-in.c (unpack_ts_block_value_fields,
2954         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
2955         lto_input_ts_exp_tree_pointers): Update for cached location api.
2956
2957 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
2958
2959         PR ipa/65076
2960         * passes.def: Add pass_nothrow.
2961         * ipa-pure-const.c: (pass_data_nothrow): New.
2962         (pass_nothrow): New.
2963         (pass_nothrow::execute): New.
2964         (make_pass_nothrow): New.
2965         * tree-pass.h (make_pass_nothrow): Declare.
2966
2967 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
2968
2969         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
2970         edge to change by speculation resolution or redirection.
2971         (edge_set_predicate): Likewise.
2972         (inline_summary_t::duplicate): Likewise.
2973         (remap_edge_summaries): Likewise.
2974
2975 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
2976
2977         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
2978         New macros.
2979         (can_inline_edge_p): Relax option matching for always inline functions.
2980
2981 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
2982
2983         PR target/65561
2984         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
2985         Check operand 4 and operand 0 for equality.
2986         (avx512f_vextract<shuffletype>32x4_1_maskm):
2987         Check operand 6 and operand 0 for equality.
2988         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
2989         for equality.
2990         (vec_extract_hi_<mode>_maskm): Ditto.
2991
2992 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
2993
2994         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
2995         dead calls back to live.
2996         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
2997         cross check to ...
2998         (cgraph_node::verify_node): ... here; verify only callee edges,
2999         not caller.
3000         * cif-code.def (CILK_SPAWN): New code.
3001
3002 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
3003
3004         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
3005         (edge_set_predicate): Use it to mark unreachable edges.
3006         (inline_summary_t::duplicate): Remove unnecesary code.
3007         (remap_edge_summaries): Likewise.
3008         (dump_inline_summary): Report contains_cilk_spawn.
3009         (compute_inline_parameters): Compute contains_cilk_spawn.
3010         (inline_read_section, inline_write_summary): Stream
3011         contains_cilk_spawn.
3012         * ipa-inline.c (can_inline_edge_p): Do not touch
3013         DECL_STRUCT_FUNCTION that may not be available;
3014         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
3015         remove check for callee_fun->can_throw_non_call_exceptions and
3016         replace it by optimization attribute check; check for flag_exceptions.
3017         * ipa-inline-transform.c (inline_call): Maintain
3018         DECL_FUNCTION_PERSONALITY
3019         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
3020
3021 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
3022
3023         PR tree-optimization/65551
3024         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
3025         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
3026
3027 2015-03-26  Richard Biener  <rguenther@suse.de>
3028
3029         PR middle-end/65555
3030         * tree-cfg.c (verify_gimple_call): Do not require a call to
3031         have no LHS if it wasn't recognized as control altering yet.
3032
3033 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
3034
3035         PR tree-optimization/64715
3036         * passes.def: Add another instance of pass_object_sizes before ccp1.
3037         * tree-object-size.c (pass_object_sizes::execute): In
3038         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
3039         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
3040         __bos result and the computed constant.  Remove redundant
3041         checks, obsoleted by gimple_call_builtin_p test.
3042
3043         * var-tracking.c (variable_tracking_main_1): Don't track
3044         variables for targetm.no_register_allocation targets.
3045
3046 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
3047
3048         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
3049         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
3050
3051 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
3052
3053         PR target/65569
3054         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
3055         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
3056         0.0 is correctly setup.
3057         (extenddftf2_internal): Likewise.
3058
3059 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
3060
3061         PR tree-optimization/65177
3062         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
3063         (bb_in_bbs): New.
3064         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
3065         edges not adjacent on the path to the original code.
3066
3067 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
3068
3069         PR bootstrap/65537
3070         * doc/install.texi (Building a native compiler): Document new
3071         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
3072         configuration assumes that the host supports the linker plugin.
3073
3074 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
3075
3076         PR target/65508
3077         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
3078         chain for generated call.
3079
3080 2015-03-25  Richard Biener  <rguenther@suse.de>
3081
3082         * passes.c (pass_manager::execute_early_local_passes): Guard
3083         execution of pass_chkp_instrumentation_passes with
3084         flag_check_pointer_bounds.
3085         (pass_chkp_instrumentation_passes::gate): Likewise.
3086
3087 2015-03-25  Martin Liska  <mliska@suse.cz>
3088
3089         PR tree-optimization/65538
3090         * symbol-summary.h (function_summary::~function_summary):
3091         Relese memory for allocated summaries.
3092         (function_summary::release): New function.
3093
3094 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
3095
3096         PR lto/65515
3097         * lto-streamer-out.c (DFS::worklist): New struct.
3098         (DFS::worklist_vec): New data member.
3099         (DFS::next_dfs_num): Remove.
3100         (DFS::DFS): Rewritten using worklist instead of recursion,
3101         using most of code from DFS::DFS_write_tree.
3102         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
3103         pass it to DFS_write_tree calls.
3104         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
3105         quick initial checks push it into worklist_vec and return.
3106
3107 2015-03-25  Richard Biener  <rguenther@suse.de>
3108
3109         PR middle-end/65519
3110         * genmatch.c (expr::gen_transform): Re-write to avoid
3111         using gimple_build.
3112
3113 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
3114
3115         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
3116
3117 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
3118
3119         * config/arm/arm.opt (print_tune_info): New option.
3120         * config/arm/arm.c (arm_print_tune_info): New function.
3121         (arm_file_start): Call arm_print_tune_info.
3122         * config/arm/arm-protos.h (struct tune_params): Add comment.
3123         * doc/invoke.texi (@item -mprint-tune-info): New item.
3124         (-mtune): mention it in ARM Option Summary.
3125
3126 2015-03-25  DJ Delorie  <dj@redhat.com>
3127
3128         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
3129         correct clause.
3130
3131 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
3132             Martin Liska  <mliska@suse.cz>
3133
3134         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
3135         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
3136         (sem_item::add_type): New function.
3137         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
3138         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
3139         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
3140         (sem_function::equals_wpa): Fix typo.
3141         * ipa-icf.h (sem_item::add_type): New function.
3142         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
3143         order.
3144
3145 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
3146
3147         PR tree-optimization/65533
3148         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
3149         with swapped operands, call vect_free_slp_tree on
3150         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
3151         vector.
3152
3153 2015-03-24  Richard Biener  <rguenther@suse.de>
3154
3155         PR middle-end/65517
3156         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
3157         for fixup if necessary.
3158
3159 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
3160
3161         * doc/extend.texi (Function Attributes): Add @cindex entries
3162         for all attributes and regularize their format.  Delete text
3163         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
3164         information about "eightbit_data", "tiny_data", and "model"
3165         variable attributes to the Variable Attributes section.  Fix
3166         some obvious typos and copy-editing issues.
3167         (Variable Attributes, Type Attributes): Likewise add/fix
3168         @cindex entries for all attributes.
3169
3170 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
3171
3172         PR target/65523
3173         * tree-chkp.c (chkp_build_returned_bound): Ignore
3174         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
3175
3176 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
3177
3178         PR target/65505
3179         * config/sh/predicates.md (simple_mem_operand,
3180         displacement_mem_operand): Add test for reg.
3181         (short_displacement_mem_operand): Test for displacement_mem_operand
3182         before invoking sh_disp_addr_displacement.
3183         * config/sh/constraints.md (Sdd, Sra): Simplify.
3184         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
3185         Remove redundant displacement_mem_operand tests.
3186
3187 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
3188
3189         PR target/65296
3190         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
3191         the same -mmcu=MCU more than once.
3192
3193 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
3194
3195         PR bootstrap/65522
3196         * ipa-devirt.c: Remove duplicate demangle.h include.
3197
3198         PR target/65504
3199         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
3200         on the pseudo.
3201         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
3202         REG_POINTER on *destptr after adjusting it for prologue size.
3203
3204         PR ipa/65521
3205         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
3206         ultimate_alias_target ()->order ints instead of
3207         ultimate_alias_target () pointers.
3208
3209 2015-03-23  Richard Biener  <rguenther@suse.de>
3210
3211         PR tree-optimization/65518
3212         * tree-vect-stmts.c (vectorizable_load): Reject single-element
3213         interleaving cases we generate absymal code for.
3214
3215 2015-03-23  Richard Biener  <rguenther@suse.de>
3216
3217         PR tree-optimization/65494
3218         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
3219         matches here.
3220         (vect_analyze_slp_instance): But do that here, always and once.
3221
3222 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3223
3224         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
3225         adding T or multiplying by T+1 and subracting T.
3226
3227 2015-03-22  Jeff Law  <law@redhat.com>
3228
3229         PR rtl-optimization/64317
3230         * Makefile.in (OBJS): Add gcse-common.c
3231         * gcse.c: Include gcse-common.h
3232         (struct modify_pair_s): Move structure definition to gcse-common.h
3233         (compute_transp): Move function to gcse-common.c.
3234         (canon_list_insert): Similarly.
3235         (record_last_mem_set_info): Break out some code and put it into
3236         gcse-common.c.  Call into the new common code.
3237         (compute_local_properties): Pass additional arguments to compute_transp.
3238         * postreload-gcse.c: Include gcse-common.h and df.h
3239         (modify_mem_list_set, blocks_with_calls): New variables.
3240         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
3241         (get_bb_avail_insn): Pass in the expression index too.
3242         (alloc_mem): Allocate memory for the new bitmaps and lists.
3243         (free_mem): Free memory for the new bitmaps and lists.
3244         (insert_expr_in_table): Record a bitmap index for each entry we
3245         add to the table.
3246         (record_last_mem_set_info): Call into common code in gcse-common.c.
3247         (get_bb_avail_insn): If no available insn was found in the requested
3248         BB.  If BB has a single predecessor, see if the expression is
3249         transparent in BB and available in that single predecessor.
3250         (compute_expr_transp): New wrapper for compute_transp.
3251         (eliminate_partially_redundant_load): Pass expression's bitmap_index
3252         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
3253         (gcse_after_reload_main): If there are elements in the hash table,
3254         then compute transparency for all the elements in the hash table.
3255         * gcse-common.h: New file.
3256         * gcse-common.c: New file.
3257
3258 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
3259
3260         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
3261         as an adjective.
3262         (System Headers): Likewise.
3263         (Ifdef): Likewise.
3264         (Traditional macros): Likewise.
3265         (Invocation): Likewise.
3266         (Option Index): Likewise.
3267         * doc/cppopts.texi (-M): Likewise.
3268         (-finput-charset): Likewise.
3269         (--help): Likewise.
3270         * doc.invoke.texi (AVR Options): Likewise.
3271         (V850 Options): Likewise.
3272
3273 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
3274
3275         PR ipa/65475
3276         * ipa-devirt.c: Include demangle.h
3277         (odr_type_d): Add field rtti_broken.
3278         (odr_subtypes_equivalent_p): Do not require name to match.
3279         (compare_virtual_tables): Fix typo; if type already has ODR violation,
3280         bypass the tests; be ready for function referneces in vtables that are
3281         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
3282         (warn_odr): Give up for nameless types.
3283         (warn_types_mismatch): Report mismatch in mangled names;
3284         report mismatch in anonymous namespaces; look into component types to
3285         give useful error; report when mismatch is dragged in from other ODR
3286         type.
3287         (odr_types_equivalent_p): Match types for being polymorphic; avoid
3288         duplicated diagnostics.
3289         (add_type_duplicate): Reorder checks so more informative ones come
3290         first; fix typo; do not output "the extra base is defined here" when
3291         we did not warn.
3292         (BINFO_N_BASE_BINFOS): Relax sanity check.
3293
3294 2015-03-22  Martin Liska  <mliska@suse.cz>
3295             Jakub Jelinek  <jakub@redhat.com>
3296
3297         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
3298         masks that can potentially include a builtin.
3299         (ix86_add_new_builtins): Introduce fast filter for isa values
3300         that cannot trigger builtin inclusion.
3301
3302 2015-03-22  Martin Liska  <mliska@suse.cz>
3303
3304         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
3305         (sem_item::update_hash_by_local_refs): Likewise.
3306         (sem_variable::get_hash): Empty line is fixed.
3307         (sem_item_optimizer::execute): Include adding of hash references.
3308         (sem_item_optimizer::update_hash_by_addr_refs): New function.
3309         (sem_item_optimizer::build_hash_based_classes): Use local hash.
3310         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
3311         (sem_item::update_hash_by_local_refs): Likewise.
3312
3313 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
3314
3315         PR ipa/65502
3316         * ipa-comdats.c (enqueue_references): Walk through thunks.
3317         (ipa_comdats): Likewise.
3318         (set_comdat_group_1): New function.
3319
3320 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
3321
3322         PR ipa/65475
3323         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
3324         non-polymorphic
3325
3326 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
3327             Gerald Pfeifer  <gerald@pfeifer.com>
3328
3329         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
3330
3331 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
3332             Sandra Loosemore  <sandra@codesourcery.com>
3333
3334         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
3335         function parameter declaration.
3336         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
3337         Update arguments to nios2_adjust_call_address().
3338         (sibcall_internal): Rename from *sibcall.
3339         (sibcall_value_internal): Rename from *sibcall_value.
3340         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
3341         (nios2_large_got_address): Add target temp reg parameter.
3342         (nios2_got_address): Adjust call to nios2_large_got_address, add
3343         force_reg around it.
3344         (nios2_load_pic_address): Add target temp reg parameter, replace call
3345         to nios2_got_address with corresponding code.
3346         (nios2_legitimize_constant_address): Update call to
3347         nios2_load_pic_address.
3348         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
3349         to use temp reg for PIC loading purposes.
3350         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
3351         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
3352         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
3353
3354 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
3355
3356         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
3357         usage of "the @option{...}".
3358         (-Wopenmp-simd): Likewise.
3359         (-fsanitize-recover): Likewise.
3360         (-fsanitize-undefined-trap-on-error): Likewise.
3361         (-flto): Likewise.
3362         (tracer-dynamic-coverage-feedback): Likewise.
3363         (reorder-block-duplicate-feedback): Likewise.
3364         (loop-unroll-jam-size): Likewise.
3365         (-B): Likewise.
3366         (-I-): Likewise.
3367         (-mabs=legacy): Likewise.
3368         (-mupper-regs-df): Likewise.
3369         (-mupper-regs-sf): Likewise.
3370         (-mpointers-to-nested-functions): Likewise.
3371
3372 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
3373
3374         * doc/extend.texi (Cilk Plus Builtins): Add markup.
3375
3376 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
3377
3378         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
3379         additional index entries and cross-references.
3380         (-fchkp-check-incomplete-type): Likewise.
3381         (-fchkp-first-field-has-own-bounds): Likewise.
3382         (-fchkp-narrow-to-innermost-array): Likewise.
3383         (-fchkp-use-fast-string-functions): Likewise.
3384         (-fchkp-use-nochk-string-functions): Likewise.
3385         (-fchkp-use-static-const-bounds): Likewise.
3386         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
3387         (-fchkp-instrument-marked-only): Likewise.
3388         (-fchkp-use-wrappers): Likewise.
3389         (-static-libmpx): Likewise.
3390         (-static-libmpxwrappers): Likewise.
3391         * doc/extend.texi (bnd_legacy): Likewise.
3392         (bnd_instrument): Likewise.
3393         (bnd_variable_size): Likewise.
3394         (Pointer Bounds Checker builtins): Likewise.
3395
3396 2015-03-21  Tom de Vries  <tom@codesourcery.com>
3397
3398         PR tree-optimization/65458
3399         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
3400         * cgraph.h (cgraph_node): Add parallelized_function field.
3401         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
3402         (input_overwrite_node): Read parallelized_function field.
3403         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
3404         parallelized_function on cgraph_node for child_fn.
3405         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
3406         Remove include of gt-tree-parloops.h.
3407         (parallelized_functions): Remove static variable.
3408         (parallelized_function_p): Rewrite using parallelized_function field of
3409         cgraph_node.
3410         (create_loop_fn): Remove adding to parallelized_functions.
3411         * Makefile.in (GTFILES): Remove tree-parloops.c
3412
3413 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
3414
3415         PR rtl-optimization/64366
3416         * lra.c (lra_update_insn_regno_info): Consider regs in
3417         CALL_INSN_FUNCTION_USAGE memory.
3418
3419 2015-03-20  Richard Biener  <rguenther@suse.de>
3420
3421         PR middle-end/64715
3422         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
3423         for type comparison and gcc_checking_assert.
3424         (chrec_fold_plus_poly_poly): Likewise.
3425         (chrec_fold_multiply_poly_poly): Likewise.
3426         (chrec_convert_1): Likewise.
3427         * gimplify.c (gimplify_expr): Remove premature folding of
3428         &X + CST to &MEM[&X, CST].
3429
3430 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
3431
3432         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
3433         already is final.
3434         (ipa_inline): Recompute inline_failed codes.
3435         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
3436         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
3437         CIF_FINAL_ERROR.
3438
3439 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
3440
3441         PR rtl-optimization/60851
3442         * recog.c (constrain_operands): Accept a pseudo register before reload
3443         for LRA enabled targets.
3444
3445 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
3446
3447         PR target/65240
3448         * config/rs6000/predicates.md (easy_fp_constant): Remove special
3449         -ffast-math handling that kept non-0 constants live in the RTL
3450         until reload.  Remove logic testing the number of instructions it
3451         took to create a constant in a GPR that was never used, due to a
3452         test for soft-float earlier.
3453         (memory_fp_constant): Delete, no longer used.
3454
3455         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
3456         alternatives for loading non-0 constants into GPRs for hard
3457         floating point that is no longer needed due to changes in
3458         easy_fp_constant.  Add support for loading 0.0 into GPRs.
3459         (mov<mode>_hardfloat32): Likewise.
3460         (mov<mode>_hardfloat64): Likewise.
3461         (mov<mode>_64bit_dm): Likewise.
3462         (movtd_64bit_nodm): Likewise.
3463         (pre-reload move FP constant define_split): Delete define_split,
3464         since it is no longer used.
3465         (extenddftf2_internal): Remove GHF constraints that are not valid
3466         for extenddftf2.
3467
3468 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
3469
3470         PR rtl-optimization/63491
3471         * lra-constraints.c (check_and_process_move): Use src instead of
3472         sreg.  Remove some dead code.
3473
3474 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
3475
3476         PR ipa/65380
3477         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
3478         (sem_variable::merge): Likewise.
3479
3480 2015-03-19  Martin Liska  <mliska@suse.cz>
3481
3482         PR ipa/65465
3483         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
3484         all fields of cgraph_thunk_info.
3485
3486 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
3487
3488         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
3489         clone instrumented thunks.
3490
3491 2015-03-19  Richard Biener  <rguenther@suse.de>
3492
3493         Revert
3494         2015-03-10  Richard Biener  <rguenther@suse.de>
3495
3496         PR middle-end/63155
3497         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
3498         * tree-ssa-coalesce.c: Include timevar.h.
3499         (attempt_coalesce): Handle graph being NULL.
3500         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
3501         Split out abnormal coalescing to ...
3502         (perform_abnormal_coalescing): ... this function.
3503         (coalesce_ssa_name): Perform abnormal coalescing without computing
3504         live/conflict.
3505         (verify_ssa_coalescing_worker): New function.
3506         (verify_ssa_coalescing): Likewise.
3507
3508 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3509             Jakub Jelinek  <jakub@redhat.com>
3510
3511         PR sanitizer/65400
3512         * tsan.c (instrument_gimple): Clear tail call flag on
3513         calls.
3514
3515 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
3516
3517         PR sanitizer/65400
3518         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
3519         call in the return bb.
3520         (find_split_points): Add RETURN_BB argument, don't call
3521         find_return_bb.
3522         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
3523         if true append TSAN_FUNC_EXIT internal call after the call to
3524         the split off function.
3525         (execute_split_functions): Call find_return_bb here.
3526         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
3527         Adjust find_split_points and split_function calls.
3528
3529 2015-03-18  DJ Delorie  <dj@redhat.com>
3530
3531         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
3532         (iorqi3_virt): Likewise.
3533
3534 2015-03-18  Tom de Vries  <tom@codesourcery.com>
3535
3536         * tree-parloops.c (parallelize_loops): Make static.
3537         * tree-parloops.h (parallelize_loops): Remove extern declaration.
3538
3539 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
3540
3541         PR middle-end/64491
3542         Revert:
3543         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
3544
3545         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
3546         condition would be removed due to undefined behaviour.
3547
3548 2015-03-18  Martin Liska  <mliska@suse.cz>
3549
3550         PR ipa/65432
3551         * cgraph.c (cgraph_node::get_create): Remove unnecessary
3552         xstrdup_for_dump wrapper.
3553         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
3554         sem_item::name.
3555         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
3556         with xstrdup_for_dump.
3557         (sem_variable::equals): Likewise.
3558         (sem_item_optimizer::read_section): Use symtab_node::name instead of
3559         sem_item::name.
3560         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
3561         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
3562         symtab_node::asm_name with xstrdup_for_dump.
3563         (congruence_class::dump): Use symtab_node::name instead of
3564         sem_item::name.
3565         * ipa-icf.h (symtab_node::name): Remove.
3566         (symtab_node::asm_name): Likewise.
3567
3568 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
3569
3570         PR tree-optimization/65450
3571         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
3572         function.
3573         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
3574         it instead of duplicate_ssa_name_ptr_info.
3575
3576         PR target/65222
3577         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
3578
3579 2015-03-18  Richard Biener  <rguenther@suse.de>
3580
3581         * tree-data-ref.h (struct access_matrix): Remove.
3582         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
3583         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
3584         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
3585         (am_vector_index_for_loop): Likewise.
3586         (struct data_reference): Remove access_matrix member.
3587         (DR_ACCESS_MATRIX): Remove.
3588         (lambda_vector_new): Add comment.
3589         (lambda_matrix_new): Use XOBNEWVEC.
3590
3591 2015-03-18  Richard Biener  <rguenther@suse.de>
3592
3593         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
3594         (pass_ch::execute): Cleanup the CFG only if we did sth.
3595         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
3596
3597 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3598
3599         * expmed.c (synth_mult): Use std::swap instead of manually
3600         swapping algorithms.
3601
3602 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
3603
3604         PR target/65078
3605         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
3606
3607 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
3608
3609         PR target/65296
3610         * config/avr/avr.opt (-nodevicelib): New option.
3611         * doc/invoke.texi (AVR Options): Document it.
3612         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
3613         libgcc.a, libc.a, libm.a.
3614         * config/avr/specs.h: Same.
3615         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
3616         which don't (directly) depend on the device.  Print more help.
3617         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
3618         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
3619         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
3620         case of an error.
3621         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
3622         for specs file name.
3623         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
3624         * config/avr/avr-mcus.def: Adjust initializers and comments.
3625
3626 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
3627
3628         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
3629         DECL_ONE_ONLY to check if decl is one only.
3630         * ipa-split.c (consider_split): Limit splitt of one only functions.
3631
3632 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
3633
3634         PR tree-optimization/65427
3635         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
3636         functions.
3637         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
3638
3639 2015-03-16  Marek Polacek  <polacek@redhat.com>
3640
3641         * cgraph.h (add_new_static_var): Remove declaration.
3642         * varpool.c (add_new_static_var): Remove function.
3643
3644 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
3645
3646         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
3647         instead of vec<tree> * with vec_alloc and release for args.
3648         Adjust all users.
3649
3650         PR middle-end/65431
3651         * omp-low.c (delete_omp_context): Only splay_tree_delete
3652         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
3653         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
3654
3655 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
3656
3657         PR sanitizer/64820
3658         * cfgexpand.c (align_base): New function.
3659         (alloc_stack_frame_space): Call it.
3660         (expand_stack_vars): Align prev_frame to be sure
3661         data->asan_vec elements aligned properly.
3662
3663 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
3664
3665         PR middle-end/65409
3666         * expr.c (store_field): Do not do a direct block copy if the source is
3667         a PARALLEL with BLKmode.
3668
3669 2015-03-16  Tom de Vries  <tom@codesourcery.com>
3670
3671         PR middle-end/65414
3672         Revert:
3673         2015-03-12  Tom de Vries  <tom@codesourcery.com>
3674
3675         PR rtl-optimization/64895
3676         * lra-lives.c (check_pseudos_live_through_calls): Use
3677         actual_call_used_reg_set instead of call_used_reg_set, if available.
3678
3679 2015-03-16  Alan Modra  <amodra@gmail.com>
3680
3681         PR target/63150
3682         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
3683         Modify Z->r bswapdi splitter to use dest in place of scratch.
3684         In r->Z and Z->r bswapdi splitter rename word_high, word_low
3685         to word1, word2 and rearrange logic to suit.
3686         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
3687         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
3688         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
3689         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
3690         early clobber.
3691
3692 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
3693
3694         PR tree-optimization/65369
3695         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
3696         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
3697         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
3698
3699         PR tree-optimization/65418
3700         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
3701         are casts in the first PLUS_EXPR operand, ensure tbias and
3702         *totallowp are in the inner type.
3703
3704         PR rtl-optimization/65401
3705         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
3706         argument.  If true, adjust_address_nv of x with big-endian
3707         correction for the mode widening to GET_MODE (y).
3708         (make_field_assignment): Don't do MEM mode widening here.
3709         Use MEM_P instead of GET_CODE == MEM.
3710
3711 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
3712
3713         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
3714         the external decls.
3715
3716 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3717
3718         PR target/64600
3719         * config/arm/arm.c (arm_gen_constant, AND case): Use
3720         ARM_SIGN_EXTEND when constructing AND mask.
3721
3722 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3723
3724         * graph.c (print_graph_cfg): Make function names visible and append
3725         parenthesis to it.  Also make groups of basic blocks belonging to the
3726         same function visible.
3727
3728 2015-03-12  Richard Biener  <rguenther@suse.de>
3729
3730         PR middle-end/44563
3731         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
3732         to avoid quadratic behavior with inline expansion splitting blocks.
3733         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
3734         with the successor if the predecessor will be merged with it.
3735         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
3736         entry block with its successor.
3737
3738 2015-03-13  Richard Biener  <rguenther@suse.de>
3739
3740         PR middle-end/44563
3741         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
3742         (cleanup_tree_cfg_1): Do not call it.
3743         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
3744         (fixup_noreturn_call): Mark the stmt as control altering.
3745         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
3746         here.
3747         (pass_data_fixup_cfg): Produce a dump file.
3748         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
3749         (need_noreturn_fixup): New global.
3750         (pass_dominator::execute): Fixup queued noreturn calls.
3751         (optimize_stmt): Queue calls that became noreturn for fixup.
3752         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
3753         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
3754         (el_to_fixup): New global.
3755         (eliminate_dom_walker::before_dom_childre): Queue calls that
3756         became noreturn for fixup.
3757         (eliminate): Fixup queued noreturn calls.
3758         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
3759         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
3760         (substitute_and_fold_dom_walker::before_dom_children): Queue
3761         alls that became noreturn for fixup.
3762         (substitute_and_fold): Fixup queued noreturn calls.
3763
3764 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
3765
3766         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
3767         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
3768         are building; for methods check ODR type of class they belong to if
3769         they may lead to a polymorphic call.
3770         (sem_function::compare_polymorphic_p): Be bit smarter about testing
3771         when function may lead to a polymorphic call.
3772         (sem_function::compare_type_list): Remove.
3773         (sem_variable::equals): Update use of compatible_types_p.
3774         (sem_variable::parse_tree_refs): Remove.
3775         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
3776         cdtor.
3777         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
3778         matching here.
3779         (func_checker::compatible_polymorphic_types_p): Break out from ...
3780         (unc_checker::compatible_types_p): ... here.
3781         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
3782         Declare.
3783         (unc_checker::compatible_types_p): Update.
3784         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
3785         Remove.
3786
3787 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3788
3789         PR rtl-optimization/65235
3790         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
3791         When first element of vec_concat is const_int, calculate its size
3792         using second element.
3793
3794 2015-03-12  Richard Biener  <rguenther@suse.de>
3795
3796         PR middle-end/65270
3797         * fold-const.c (operand_equal_p): Fix ordering of resetting
3798         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
3799
3800 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3801
3802         * config/s390/s390.c (s390_reorg): Move code to output nops after label
3803         to s390_reorg ().
3804         (s390_asm_output_function_label): Likewise.
3805         * config/s390/s390.c (s390_asm_output_function_label):
3806         Fix function label alignment with -mhtopatch.
3807         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
3808         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
3809         ("nop_2_byte"): New define_insn.
3810         ("nop_4_byte"): Likewise.
3811         ("nop_6_byte"): Likewise.
3812         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
3813         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
3814
3815 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
3816
3817         PR target/65103
3818         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
3819         register.
3820
3821 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
3822
3823         PR target/65044
3824         * toplev.c (process_options): Restrict Pointer Bounds Checker
3825         usage with Address Sanitizer.
3826
3827 2015-03-12  Richard Biener  <rguenther@suse.de>
3828
3829         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
3830         to split on.
3831         * omp-low.c (expand_omp_taskreg): Split block before removing
3832         the stmt.
3833         (expand_omp_target): Likewise.
3834         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
3835         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
3836         stmt to split_block.
3837
3838 2015-03-12  Tom de Vries  <tom@codesourcery.com>
3839
3840         PR rtl-optimization/64895
3841         * lra-lives.c (check_pseudos_live_through_calls): Use
3842         actual_call_used_reg_set instead of call_used_reg_set, if available.
3843
3844 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
3845
3846         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
3847         (cgraph_node::remove): Likewise.
3848         (cgraph_node::get_untransformed_body): Likewise.
3849         * varpool.c (varpool_node::remove): Likewise.
3850         (varpool_node::get_constructor): Add sanity check.
3851
3852 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
3853
3854         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
3855         old GCC versions.
3856         (-fabi-compat-version): Likewise.
3857         (-ffriend-injection): Likewise.
3858         (-Wdeclaration-after-statement): Likewise.
3859         (-fomit-frame-pointer): Likewise.
3860         (-ftree-coalesce-inlined-vars): Likewise.
3861         (-fvisibility=): Likewise.
3862         * doc/extend.texi (Typeof): Likewise.
3863         (Zero Length): Likewise.
3864         (Escaped Newlines): Likewise.
3865         (Compound Literals): Likewise.
3866         (Function Attributes): Likewise.
3867         (Label Attributes): Likewise.
3868         (Type Attributes): Likewise.
3869         (Function Names): Likewise.
3870         (Other Builtins): Likewise.
3871         (Function Specific Option Pragmas): Likewise.
3872         (C++ Interface): Likewise.
3873
3874 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
3875
3876         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
3877
3878 2015-03-11  Marek Polacek  <polacek@redhat.com>
3879
3880         PR tree-optimization/65388
3881         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
3882
3883 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
3884
3885         PR target/65296
3886         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
3887         * configure: Regenerate.
3888         * config.in: Regenerate.
3889         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
3890         [-mn-flash]: Document it.
3891         [__AVR_ARCH__]: Document avrtiny.
3892
3893         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
3894         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
3895         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
3896
3897 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3898
3899         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
3900
3901 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
3902
3903         PR target/65242
3904         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
3905         allow reloads of PLUS in floating point/VSX registers.
3906
3907 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
3908
3909         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
3910         crypto_sha256_fast.
3911         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
3912
3913 2015-03-11  Richard Biener  <rguenther@suse.de>
3914
3915         PR tree-optimization/65310
3916         * tree-sra.c (build_ref_for_offset): Also preserve larger
3917         alignment.
3918
3919 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
3920
3921         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
3922
3923 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
3924
3925         PR target/65368
3926         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
3927         new define_expand.
3928         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
3929
3930 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
3931
3932         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
3933         (sem_function::equals_wpa): ... here.
3934
3935 2015-03-10  Marek Polacek  <polacek@redhat.com>
3936             Jakub Jelinek  <jakub@redhat.com>
3937
3938         PR sanitizer/65367
3939         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
3940         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
3941         separately.
3942
3943 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
3944
3945         PR target/65286
3946         * config/rs6000/t-linux: For powerpc64* target set
3947         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
3948
3949 2015-03-10  Richard Biener  <rguenther@suse.de>
3950
3951         PR middle-end/44563
3952         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
3953         for redirect_all_calls.
3954
3955 2015-03-10  Marek Polacek  <polacek@redhat.com>
3956
3957         * gdbinit.in (pcfun): Define and document.
3958
3959 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
3960
3961         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
3962         of libgomp-plugin.h.
3963         (find_target_compiler): Support a case when the path to gcc is
3964         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
3965         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
3966         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
3967         libgomp-plugin.h.
3968         (main): Use GCC_INSTALL_NAME as target_driver_name.
3969         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
3970         define.
3971         (mkoffload.o): Remove obsolete include path and defines.
3972         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
3973
3974 2015-03-10  Richard Biener  <rguenther@suse.de>
3975
3976         PR middle-end/63155
3977         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
3978         * tree-ssa-coalesce.c: Include timevar.h.
3979         (attempt_coalesce): Handle graph being NULL.
3980         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
3981         Split out abnormal coalescing to ...
3982         (perform_abnormal_coalescing): ... this function.
3983         (coalesce_ssa_name): Perform abnormal coalescing without computing
3984         live/conflict.
3985         (verify_ssa_coalescing_worker): New function.
3986         (verify_ssa_coalescing): Likewise.
3987
3988 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
3989
3990         PR target/65296
3991         * config.gcc (extra_options) [avr]: Remove.
3992         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
3993         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
3994         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
3995
3996         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
3997         (-mmcu=): Add Var and MissingArgError properties.
3998         (-march=): Remove.
3999         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
4000         * config/avr/t-multilib: Regenerate.
4001         * config/avr/specs.h: New file.
4002         * config/avr/driver-avr.c: New file.
4003         * config/avr/genopt.sh: Remove file.
4004         * config/avr/avr-tables.opt: Remove file.
4005         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
4006         * config/avr/avr-c.c: Same.
4007         * avr-arch.h: Same.
4008         (avr_current_device): Remove proto.
4009         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
4010         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
4011         (EXTRA_SPEC_FUNCTIONS): Define.
4012         (avr_devicespecs_file): New specs function proto.
4013         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
4014         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
4015         (avr_current_device): Remove definition and usage.
4016         (avr_set_core_architecture): New static function.
4017         (avr_option_override): Use it.
4018         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
4019         (mcu_name): New static array.
4020         (comparator, avr_archs_str, avr_mcus_str): New static functions.
4021         (avr_inform_devices, avr_inform_core_architectures): New functions.
4022         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
4023         (avrlibc.h) [WITH_AVRLIBC]: Include.
4024         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
4025         (print_mcu): Rewrite from scratch.
4026         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
4027         Forward to avr-specific specs defined in device-specs file.
4028         * config/avr/t-avr (driver-avr.o): New rule.
4029         (avr-devices.o): Depend on avr-arch.h.
4030         (avr-mcus): No more depend on avr-tables.opt.
4031         (avr-tables.opt): Remove rule.
4032         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
4033
4034 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
4035
4036         * c-family/c.opt (fchkp-use-wrappers): New.
4037         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
4038         (chkp_wrap_function): New.
4039         (chkp_build_instrumented_fndecl): Support wrapped
4040         functions.
4041         * doc/invoke.texi (-fcheck-pointer-bounds): New.
4042         (-fchkp-check-incomplete-type): New.
4043         (-fchkp-first-field-has-own-bounds): New.
4044         (-fchkp-narrow-bounds): New.
4045         (-fchkp-narrow-to-innermost-array): New.
4046         (-fchkp-optimize): New.
4047         (-fchkp-use-fast-string-functions): New.
4048         (-fchkp-use-nochk-string-functions): New.
4049         (-fchkp-use-static-bounds): New.
4050         (-fchkp-use-static-const-bounds): New.
4051         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
4052         (-fchkp-check-read): New.
4053         (-fchkp-check-write): New.
4054         (-fchkp-store-bounds): New.
4055         (-fchkp-instrument-calls): New.
4056         (-fchkp-instrument-marked-only): New.
4057         (-fchkp-use-wrappers): New.
4058         (-static-libmpx): New.
4059         (-static-libmpxwrappers): New.
4060
4061 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
4062
4063         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
4064         (CHKP_SPEC): Add wrappers library.
4065         * c-family/c.opt (static-libmpxwrappers): New.
4066
4067 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
4068
4069         * config/i386/linux-common.h (LIBMPX_LIBS): New.
4070         (LIBMPX_SPEC): New.
4071         (CHKP_SPEC): New.
4072         * gcc.c (CHKP_SPEC): New.
4073         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
4074         * c-family/c.opt (static-libmpx): New.
4075
4076 2015-03-10  Richard Biener  <rguenther@suse.de>
4077
4078         PR middle-end/44563
4079         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
4080         for compare_type.
4081         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
4082         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
4083         (cgraph_add_edge_to_call_site_hash): Likewise.
4084         (cgraph_node::get_edge): Likewise.
4085         (cgraph_edge::set_call_stmt): Likewise.
4086         (cgraph_edge::remove_caller): Likewise.
4087
4088 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
4089
4090         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
4091         (callee_saved_gpr_regs_size): ... this.
4092         (callee_saved_regs_first_regno): Rename to ...
4093         (callee_saved_first_gpr_regno): ... this.
4094         (callee_saved_regs_last_regno) Rename to ...
4095         (callee_saved_last_gpr_regno): ... this.
4096         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
4097         variables.
4098         (nds32_initial_elimination_offset): Likewise.
4099         (nds32_expand_prologue): Likewise.
4100         (nds32_expand_epilogue): Likewise.
4101         (nds32_expand_prologue_v3push): Likewise.
4102         (nds32_expand_epilogue_v3pop): Likewise.
4103         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
4104         Adjust renamed variables.
4105         (nds32_output_stack_pop): Likewise.
4106
4107 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4108
4109         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
4110         code in comment.
4111
4112 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
4113
4114         PR rtl-optimization/65321
4115         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
4116         than shift mode.
4117         * var-tracking.c (use_narrower_mode): Likewise.
4118
4119 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
4120
4121         PR tree-optimization/65355
4122         * varasm.c (notice_global_symbol): Do not produce RTL.
4123         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
4124         anchor.
4125         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
4126         check for section anchors.
4127
4128 2015-03-10  Alan Modra  <amodra@gmail.com>
4129
4130         PR target/65286
4131         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
4132         to be single-arch by default.  Set cpu_is_64bit for powerpc64
4133         given --with-cpu=native.
4134         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
4135         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
4136         and powerpc64le.
4137         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
4138         rs6000_isa_flags rather than TARGET_64BIT.
4139
4140 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
4141             Kaz Kojima  <kkojima@gcc.gnu.org>
4142
4143         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
4144
4145 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
4146
4147         PR lto/65361
4148         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
4149         on a TREE_BINFO, instead use BINFO_TYPE.
4150
4151 2015-03-09  Richard Biener  <rguenther@suse.de>
4152
4153         PR middle-end/65270
4154         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
4155         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
4156         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
4157         of that.  When comparing dereferences compare alignment.
4158         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
4159
4160 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
4161
4162         * ipa-inline-analysis.c (check_callers): Check
4163         node->can_remove_if_no_direct_calls_and_refs_p.
4164         (growth_likely_positive): Reorganize to call
4165         can_remove_if_no_direct_calls_p later.
4166         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
4167         will_be_removed_from_program_if_no_direct_calls_p): Add
4168         will_inline parameter.
4169         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
4170         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
4171         Handle inliner case correctly.
4172
4173 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4174
4175         PR tree-optimization/63743
4176         * cfgexpand.c (reorder_operands): Also reorder if only second operand
4177         had its definition forwarded by TER.
4178
4179 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
4180
4181         PR lto/65316
4182         * ipa-utils.h (types_odr_comparable): Add strict argument.
4183         * ipa-devirt.c: Fix whitespace;
4184         (odr_hasher): Remove.
4185         (odr_name_hasher, odr_vtable_hasher): New hashers.
4186         (can_be_name_hashed_p): New predicate.
4187         (hash_type_name): remove.
4188         (hash_odr_name): New.
4189         (odr_name_hasher::hash): new.
4190         (can_be_vtable_hashed_p): New.
4191         (hash_odr_vtable): New.
4192         (odr_vtable_hasher::hash): New.
4193         (types_same_for_odr): Add strict parameter.
4194         (types_odr_comparable): Likewise.
4195         (odr_name_hasher::equal): New.
4196         (odr_vtable_hasher::equal): New.
4197         (odr_name_hasher::remove): New.
4198         (odr_hash_type): Change to hash_table<odr_name_hasher>.
4199         (odr_vtable_hash_type): New.
4200         (odr_vtable_hash): New.
4201         (odr_subtypes_equivalent_p): Do strict comparsion.
4202         (add_type_duplicate): Merge type names; cleanup; avoid type
4203         duplicates.
4204         (register_odr_type): Initialize vtable hash.
4205         (build_type_inheritance_graph): Likewise
4206         (get_odr_type): Reorg to use two hashes.
4207         (dump_possible_polymorphic_call_targets): Move sanity check after debug
4208         output.
4209         (ipa_devirt): Dump type_inheritance_graph.
4210         (types_same_for_odr): Add strict mode.
4211
4212 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
4213
4214         PR ipa/65334
4215         * cgraph.h (symtab_node): Add definition_alignment,
4216         can_increase_alignment_p and increase_alignment.
4217         * symtab.c (symtab_node::can_increase_alignment_p,
4218         increase_alignment_1, symtab_node::increase_alignment,
4219         symtab_node::definition_alignment): New.
4220         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
4221         can_increase_alignment_p.
4222         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
4223         * tree-vect-stmts.c (ensure_base_align): Likewise.
4224         * varasm.c (function_section_1): Use definition_alignment.
4225         (assemble_start_function): Likewise.
4226         (emit_local): likewise.
4227         (build_constant_desc): Likewsie.
4228         (output_constant_def_contents): Likewise.
4229         (place_block_symbol): Likewise.
4230         (output_object_block): Likewise.
4231
4232 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
4233
4234         PR ipa/65316
4235         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
4236         when outputting debug.
4237
4238 2015-03-07  Marek Polacek  <polacek@redhat.com>
4239             Martin Uecker  <uecker@eecs.berkeley.edu>
4240
4241         PR sanitizer/65280
4242         * doc/invoke.texi: Update description of -fsanitize=bounds.
4243
4244 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
4245
4246         * tree-ssa-phiopt.c (neg_replacement): Remove.
4247         (tree_ssa_phiopt_worker): Remove negate optimization.
4248
4249 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
4250
4251         PR ipa/65302
4252         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
4253
4254 2015-03-06  Richard Biener  <rguenther@suse.de>
4255
4256         PR middle-end/64928
4257         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
4258         and liveout_obstack members.
4259         (calculate_live_on_exit): Remove.
4260         (calculate_live_ranges): Change declaration.
4261         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
4262         (new_tree_live_info): Adjust.
4263         (calculate_live_ranges): Delete livein when not wanted.
4264         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
4265         Deal with partly deleted live info.
4266         (loe_visit_block): Remove temporary bitmap by using
4267         bitmap_ior_and_compl_into.
4268         (live_worklist): Adjust accordingly.
4269         (calculate_live_on_exit): Make static.
4270         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
4271         we do not need livein.
4272
4273 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
4274
4275         * real.c (real_from_string): Fix typo in assertion.
4276
4277 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
4278
4279         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
4280         the patch.
4281
4282 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
4283
4284         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
4285
4286 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
4287
4288         PR target/64342
4289         * lra-assigns.c (find_hard_regno_for): Rename to
4290         find_hard_regno_for_1.  Add a new parameter.
4291         (find_hard_regno_for): New function using find_hard_regno_for_1.
4292
4293 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4294
4295         PR rtl-optimization/65067
4296         * expmed.c (store_bit_field, extract_bit_field): Reworked the
4297         strict volatile bitfield handling.
4298
4299 2015-03-05  Martin Liska  <mliska@suse.cz>
4300
4301         PR ipa/65318
4302         * ipa-icf.c (sem_variable::equals): Compare variables types.
4303
4304 2015-03-05  Richard Henderson  <rth@redhat.com>
4305
4306         PR target/65121
4307         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
4308         correctly check weak symbol binding.
4309
4310 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
4311
4312         PR middle-end/65315
4313         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
4314         needed alignment.
4315
4316 2015-03-05  Martin Liska  <mliska@suse.cz>
4317
4318         * ipa-inline.c (inline_small_functions): Set default value to
4319         prevent warning during bootstrap.
4320         * tree.h: Add pragma guard that ignores false positives during
4321         bootstrap.
4322
4323 2015-03-05  Richard Biener  <rguenther@suse.de>
4324
4325         PR tree-optimization/65310
4326         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
4327         Properly preserve alignment of the base of the access.
4328
4329 2015-03-05  Richard Biener  <rguenther@suse.de>
4330
4331         PR ipa/65270
4332         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
4333         Compare dependence info.
4334
4335 2015-03-05  Richard Biener  <rguenther@suse.de>
4336
4337         PR middle-end/65233
4338         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
4339         tree-into-ssa.h.
4340         (walk_ssa_copies): Revert last chage.  Instead do not walk
4341         SSA names registered for SSA update.
4342
4343 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
4344
4345         PR ipa/65270
4346         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
4347         vtable references for their containing type.
4348         (sem_function::equals_wpa): Compare TYPE_RESTRICT
4349         and type attributes.
4350
4351 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
4352
4353         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
4354         before negating it.
4355         * stor-layout.c (finalize_record_size): Revert latest change.
4356
4357 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
4358
4359         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
4360
4361 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
4362
4363         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
4364         for correct comdat handling.
4365         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
4366         Likewise.
4367         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
4368         (used_from_object_file_p_worker): Remove.
4369         (cgraph_node::only_called_directly_or_alised): Add
4370         used_from_object_file_p.
4371         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
4372         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
4373         can_remove_if_no_direct_calls_and_refs_p.
4374
4375 2015-03-04  Nick Clifton  <nickc@redhat.com>
4376
4377         * config/rl78/rl78.h (enum reg_class): Remove real registers from
4378         General register class.
4379         * config/rl78/rl78-real.md: Replace general register constraints
4380         with real+virtual register constraints.
4381
4382 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4383
4384         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
4385         from checking for -mhtm option.
4386
4387 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
4388
4389         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
4390         (struct ipa_sra_check_caller_data): Add has_thunk field.
4391         (ipa_sra_check_caller): Check for thunk.
4392         (ipa_sra_preliminary_function_checks): Give up on function with
4393         thunks.
4394         (ipa_early_sra): Use call_for_symbol_and_aliases.
4395
4396 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4397
4398         PR target/65249
4399         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
4400         called for __stack_chk_guard symbol.
4401
4402 2015-03-03  DJ Delorie  <dj@redhat.com>
4403
4404         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
4405         inc/dec.
4406         (*addhi3_real): Likewise.
4407         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
4408         pattern to match incrementing memory.
4409         * config/rl78/predicates.md (rl78_1_2_operand): New.
4410         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
4411         it's the same and only mem.
4412         (rl78_alloc_physical_registers_op2): If there's effectively only
4413         one MEM, transcode it into HL.
4414         (rl78_far_p): Reject addresses that aren't legitimate.
4415
4416 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
4417
4418         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
4419         negating it.
4420
4421         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
4422
4423 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
4424
4425         Implement call0 ABI for xtensa
4426         * config/xtensa/constraints.md ("a" constraint): Include stack
4427         pointer in case of call0 ABI.
4428         ("q" constraint): Make empty in case of call0 ABI.
4429         ("D" constraint): Include stack pointer in case of call0 ABI.
4430         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
4431         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
4432         prototypes.
4433         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
4434         variable.
4435         (xtensa_regno_to_class): Make it a local variable in the
4436         function xtensa_regno_to_class.
4437         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
4438         macro, function prototype and implementation.
4439         (reg_nonleaf_alloc_order): Make it a local variable in the
4440         function order_regs_for_local_alloc.
4441         (xtensa_conditional_register_usage): New function.
4442         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
4443         (xtensa_valid_move): Allow direct moves to stack pointer
4444         register in call0 ABI.
4445         (xtensa_setup_frame_addresses): Only spill register windows in
4446         windowed ABI.
4447         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
4448         call0 ABI respectively.
4449         (xtensa_function_arg_1): Only mark a7 register for copying in
4450         windowed ABI.
4451         (xtensa_call_save_reg): New function.
4452         (compute_frame_size): Add space for callee saved register
4453         storage to the frame size in call0 ABI.
4454         (xtensa_expand_prologue): Generate code to set up stack frame
4455         and save callee-saved registers in call0 ABI.
4456         (xtensa_expand_epilogue): New function.
4457         (xtensa_set_return_address): New function.
4458         (xtensa_return_addr): Calculate return address in call0 ABI.
4459         (xtensa_builtin_saveregs): Only mark a7 register for copying and
4460         emit copying code in windowed ABI.
4461         (order_regs_for_local_alloc): Add preferred register allocation
4462         order for non-leaf function in call0 ABI.
4463         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
4464         (xtensa_asm_trampoline_template): Add trampoline generation for
4465         call0 ABI.
4466         (xtensa_trampoline_init): Add trampoline initialization for
4467         call0 ABI.
4468         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
4469         functions.
4470         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
4471         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
4472         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
4473         ABI call-used registers.
4474         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
4475         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
4476         call0 ABI.
4477         (REG_CLASS_CONTENTS): Include all registers into the preferred
4478         reload registers set, adjust the set in the
4479         xtensa_conditional_register_usage.
4480         (xtensa_regno_to_class): Drop variable declaration.
4481         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
4482         function.
4483         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
4484         respectively.
4485         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
4486         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
4487         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
4488         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
4489         location in call0 ABI.
4490         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
4491         stack adjustment size when handling exception.
4492         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
4493         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
4494         definitions.
4495         ("return" pattern): Generate ret.n/ret in call0 ABI.
4496         ("epilogue" pattern): Expand epilogue.
4497         ("nonlocal_goto" pattern): Use default in call0 ABI.
4498         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
4499         emit eh_set_a0_* depending on ABI.
4500         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
4501         ("eh_set_a0_call0", "blockage"): New patterns.
4502
4503 2015-03-03  Martin Liska  <mliska@suse.cz>
4504
4505         PR ipa/65287
4506         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
4507
4508 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
4509
4510         PR 65138/target
4511         * config/rs6000/rs6000-tables.opt: Regenerate table.
4512
4513 2015-03-03  Renlin Li  <renlin.li@arm.com>
4514
4515         * doc/md.texi (@item ^): Change ? into ^.
4516
4517 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
4518
4519         * doc/tm.texi: Regenerated.
4520
4521 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
4522
4523         * builtins.c (expand_builtin_return_addr): Add
4524         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
4525         surrounding #ifdef.
4526         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
4527         definition to 1.
4528         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
4529         Likewise.
4530         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
4531         undefined.
4532         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
4533         paragraph.
4534
4535 2015-03-03  Martin Jambor  <mjambor@suse.cz>
4536             Eric Botcazou  <ebotcazou@adacore.com>
4537
4538         * tree-sra.c (ipa_sra_check_caller_data): New type.
4539         (has_caller_p): Removed.
4540         (ipa_sra_check_caller): New function.
4541         (ipa_sra_preliminary_function_checks): Use it.
4542
4543 2015-03-03  Martin Liska  <mliska@suse.cz>
4544
4545         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
4546         instead of if branch.
4547
4548 2015-03-03  Martin Liska  <mliska@suse.cz>
4549
4550         PR ipa/65282
4551         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
4552
4553 2015-03-23  Jeff Law  <law@redhat.com>
4554
4555         PR tree-optimization/65241
4556         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
4557         hash table if INSERT is true.
4558
4559 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
4560
4561         PR target/65296
4562         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
4563
4564 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
4565
4566         PR target/64331
4567         * config/avr/avr.c (context.h, tree-pass.h): Include them.
4568         (avr_pass_data_recompute_notes): New static variable.
4569         (avr_pass_recompute_notes): New class.
4570         (avr_register_passes): New static function.
4571         (avr_option_override): Call it.
4572
4573 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
4574
4575         Fix various problems with specs file generation.
4576
4577         PR target/65296
4578         * config.gcc (extra_gcc_objs) [avr]: Remove.
4579         * config/avr/driver-avr.c: Remove file.
4580         * config/avr/t-avr (driver-avr.o): Remove rule.
4581         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
4582         INCLUDES to build.  Depend on TM_H.
4583         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
4584         build warnings.  Fix non-matching types and non-existing %-codes.
4585         (tm.h): Include.
4586         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
4587         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
4588         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
4589         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
4590         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
4591         (LIBGCC_SPEC): Remove definitions.
4592
4593 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
4594
4595         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
4596         to create a register in testing mode.
4597
4598 2015-03-03  Martin Liska  <mliska@suse.cz>
4599             Jan Hubicka  <hubicka@ucw.cz>
4600
4601         PR ipa/65263
4602         * cgraph.c (cgraph_node::has_thunk_p): New function.
4603         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
4604         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
4605         (sem_function::merge): Assert is changed.
4606
4607 2015-03-03  Martin Liska  <mliska@suse.cz>
4608             Martin Jambor  <mjambor@suse.cz>
4609
4610         PR ipa/65087
4611         * ipa-icf.c (sem_item_optimizer::execute): Change function
4612         return value to boolean.
4613         (sem_item_optimizer::merge_classes): Likewise.
4614         (ipa_icf_driver): Return TODO_remove_functions in case there's
4615         a merge operation processed.
4616         * ipa-icf.h: Change function return value to boolean.
4617
4618 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
4619
4620         PR 65138/target
4621         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
4622         processor type for 64-bit little endian PowerPC.
4623
4624         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
4625         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
4626         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
4627         printing built-in mask so it does not pass NULL pointers.
4628
4629         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
4630         -mcpu=powerpc64le.
4631
4632 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
4633
4634         PR target/58158
4635         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
4636         !ISA_HAS_FP_CONDMOVE.
4637
4638 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
4639
4640         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
4641         reload_completed.
4642
4643 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
4644
4645         * doc/invoke.texi (Options for Code Generation Conventions):
4646         Fix URL of DSO paper.
4647
4648 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
4649
4650         PR ipa/65130
4651         * ipa-inline.c (check_callers): Looks for recursion.
4652         (inline_to_all_callers): Give up on uninlinable or recursive edges.
4653         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
4654         summary of inline clones.
4655         (do_estimate_growth_1): Fix recursion check.
4656
4657 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
4658
4659         PR ipa/64988
4660         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
4661         comdat groups.
4662
4663 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
4664             Aldy Hernandez  <aldyh@redhat.com>
4665
4666         PR lto/65276
4667         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
4668         when checking TYPE_BINFO.
4669
4670 2015-03-02  Richard Biener  <rguenther@suse.de>
4671
4672         PR ipa/65270
4673         * ipa-icf-gimple.c: Include builtins.h.
4674         (func_checker::compare_memory_operand): Compare base alignment.
4675
4676 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
4677
4678         PR target/65184
4679         * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
4680         are never passed by reference.
4681
4682 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
4683
4684         PR target/65183
4685         * tree-chkp.c (chkp_check_lower): Don't check against
4686         zero bounds for already instrumented functions.
4687         (chkp_check_upper): Likewise.
4688         (chkp_fini): Clean pass local data to avoid wrong reusage.
4689
4690 2015-02-28  Martin Liska  <mliska@suse.cz>
4691             Jan Hubicka  <hubicka@ucw.cz>
4692
4693         * ipa-icf.c (sem_variable::equals): Improve debug output;
4694         get variable constructor.
4695         (sem_variable::parse): Do not filter out too early; give up on
4696         volatile and register vars.
4697         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
4698         variables.
4699         * ipa-icf.h (sem_variable::init): Do not set ctor.
4700         (sem_variable::ctor): Remove.
4701
4702 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
4703
4704         PR middle-end/65233
4705         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
4706
4707 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
4708
4709         * ipa-icf.c: Include stor-layout.h
4710         (sem_function::compare_cgraph_references): Rename to ...
4711         (sem_item::compare_cgraph_references): ... this one.
4712         (sem_variable::equals_wpa): New function
4713         (sem_variable::equals): Do not check stuff already verified by
4714         equals_wpa.
4715         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
4716         * ipa-icf.h (sem_item): Add compare_cgraph_references.
4717         (sem_function): Remove compare_cgraph_references.
4718         (sem_variable): Turns equals_wpa into non-inline.
4719
4720 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
4721
4722         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
4723         (sem_item::add_expr): New function.
4724         (sem_function::hash_stmt): Handle operands of most statements.
4725         (sem_variable::get_hash): Hash the actual constructor.
4726         * ipa-icf.h (sem_item): Add add_expr.
4727         (sem_function): Update prototype of hash_stmt
4728
4729 2015-02-28  Martin Liska  <mliska@suse.cz>
4730             Jan Hubicka  <hubicka@ucw.cz>
4731
4732         PR ipa/65245
4733         * ipa-icf-gimple.c (func_checker::compare_function_decl):
4734         Remove.
4735         (func_checker::compare_variable_decl): Skip symtab vars.
4736         (func_checker::compare_cst_or_decl): Update.
4737         * ipa-icf.c (sem_function::parse): Do not consider aliases.
4738         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
4739         use correct symtab predicates.
4740         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
4741         (sem_variable::parse):  Update comment.
4742         (sem_item_optimizer::build_graph): Consider ultimate aliases
4743         for references.
4744
4745 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
4746
4747         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
4748         of OBJ_TYPE_REF.
4749
4750 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
4751
4752         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
4753         (sem_variable::merge) Likewise.
4754
4755 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
4756
4757         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
4758         target; also match flag_ipa_devirt.
4759
4760 2015-03-01  Martin Liska  <mliska@suse.cz>
4761             Jan Hubicka  <hubicka@ucw.cz>
4762
4763         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
4764         Validate variable alignment.
4765         * ipa-icf.c (sem_function::equals_private): Be more precise
4766         about non-common function attributes.
4767         (sem_variable::equals): Likewise.
4768
4769 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
4770
4771         PR ipa/65237
4772         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
4773         across COMDAT group boundary.
4774
4775 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
4776
4777         PR ipa/65232
4778         * ipa-icf.c (clear_decl_rtl): New function.
4779         (sem_function::merge): Clear RTL before forming alias.
4780         (sem_variable::merge): Clear RTL before forming alias.
4781
4782 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
4783
4784         PR ipa/65236
4785         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
4786
4787 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
4788
4789         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
4790         to neon_to_gp<q>.
4791
4792 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
4793
4794         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
4795         a typo in the description.
4796
4797 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
4798
4799         PR target/64317
4800         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
4801         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
4802         * lra-constraints.c: Include "params.h".
4803         (EBB_PROBABILITY_CUTOFF): Use
4804         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
4805         (lra_inheritance): Use '<' instead of '<=' for
4806         EBB_PROBABILITY_CUTOFF.
4807         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
4808         Document change.
4809
4810 2015-02-27  Martin Liska  <mliska@suse.cz>
4811
4812         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
4813         vector length condition.
4814
4815 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
4816
4817         * doc/extend.texi (x86 transactional memory intrinsics):
4818         Reorganize discussion of _xbegin.  Clarify that the return
4819         value is a bit mask.  Expand example and move to end of section.
4820
4821 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
4822             Aldy Hernandez  <aldyh@redhat.com>
4823
4824         PR rtl-optimization/65220
4825         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
4826
4827 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
4828
4829         PR target/65032
4830         * lra-remat.c (update_scratch_ops): New.
4831         (do_remat): Call it.
4832         * lra.c (lra_register_new_scratch_op): New. Take code from ...
4833         (remove_scratches): ... here.
4834         * lra-int.h (lra_register_new_scratch_op): New prototype.
4835
4836 2015-02-27  Marek Polacek  <polacek@redhat.com>
4837
4838         PR c/65040
4839         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
4840         -Wformat-signedness anymore.
4841
4842 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4843
4844         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
4845         function.
4846         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
4847
4848 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4849
4850         * config/s390/s390.c (enum s390_builtin):
4851         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
4852         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
4853         (s390_init_builtins): Generate new builtin functions.
4854         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
4855         (s390_sfpc, s390_efpc): New pattern definitions.
4856
4857 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4858
4859         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
4860         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
4861         (s390_builtin_decls): New array.
4862         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
4863         (s390_builtin_decl): New function.
4864         (TARGET_BUILTIN_DECL): Define macro.
4865
4866 2015-02-27  Richard Biener  <rguenther@suse.de>
4867
4868         PR middle-end/63175
4869         * builtins.c (get_object_alignment_2): Make sure to re-apply
4870         the ANDed mask after recursing to its operand gets us a new
4871         misalignment bit position.
4872
4873 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
4874             Martin Liska  <mliska@suse.cz>
4875
4876         PR bootstrap/65150
4877         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
4878         Use address_matters_p.
4879         (redirect_all_callers, set_addressable): New functions.
4880         (sem_function::merge): Reorganize and fix merging issues.
4881         (sem_variable::merge): Likewise.
4882         (sem_variable::compare_sections): Remove.
4883         * common.opt (fmerge-all-constants, fmerge-constants): Remove
4884         Optimization flag.
4885         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
4886         redirect them.
4887         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
4888         decl is used.
4889         (address_matters_1): New function.
4890         (symtab_node::address_matters_p): New function.
4891         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
4892         check for merged flag.
4893         * cgraph.h (address_matters_p): Declare.
4894         (symtab_node::address_taken_from_non_vtable_p): Remove.
4895         (symtab_node::address_can_be_compared_p): New method.
4896         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
4897         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
4898         Remove.
4899         (comdat_can_be_unshared_p_1) Use address_matters_p.
4900         (update_vtable_references): Fix formating.
4901         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
4902         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
4903         * cgraphclones.c: Preserve merged and icf_merged flags.
4904
4905 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
4906
4907         * doc/extend.texi (Function Attributes): Fix spelling and typos.
4908         (Label Attributes): Likewise.
4909         (Cilk Plus Builtins): Likewise.
4910         (ARC SIMD Built-in Functions): Likewise.
4911         (ARM C Language Extensions (ACLE)): Likewise.
4912         (PowerPC Built-in Functions): Likewise.
4913         (PowerPC Hardware Transactional Memory Built-in Functions):
4914         Likewise.
4915
4916 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
4917
4918         PR tree-optimization/65216
4919         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
4920         new stmt and new SSA_NAME for lhs whenever the arguments have
4921         changed and weren't just swapped.  Fix comment typo.
4922
4923         PR tree-optimization/65215
4924         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
4925         for PDP endian targets.
4926         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
4927         Fix up formatting issues.
4928         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
4929         size is smaller than the original, adjust MEM_REF offset by the
4930         difference of sizes.  Use is_gimple_mem_ref_addr instead of
4931         is_gimple_min_invariant test to avoid adding address temporaries.
4932
4933 2015-02-26  Martin Liska  <mliska@suse.cz>
4934             Jan Hubicka  <hubicka@ucw.cz>
4935
4936         PR ipa/64693
4937         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
4938         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
4939         (sem_item_optimizer::process_cong_reduction): Include division by
4940         sensitive references.
4941         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
4942         * ipa-ref.c (ipa_ref::address_matters_p): New function.
4943         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
4944
4945 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
4946
4947         PR target/65192
4948         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
4949         Remove.
4950         * config/avr/avr.c: Same.
4951         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
4952         Refuse any constant address not in 0..0xbf.
4953         * config/avr/avr.md (*mov<mode>, *movsf): Remove
4954         tiny_valid_direct_memory_access_range from insn conditions.
4955         (mov<mode>): Don't special-case expansion of avrtiny addresses.
4956
4957 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
4958
4959         PR target/61142
4960         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
4961         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
4962         * config/sh/predicates.md (const_logical_operand): New predicate.
4963         * config/sh/sh.md: Add new peephole2 patterns.
4964
4965 2015-02-26  Marek Polacek  <polacek@redhat.com>
4966
4967         PR ipa/65008
4968         * ipa-inline.c (early_inliner): Recompute inline parameters.
4969
4970 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4971
4972         PR target/65171
4973         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
4974         instructions with TImode operands are included in the analysis.
4975
4976 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
4977
4978         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
4979         of an EDGE_FSM_THREAD.
4980
4981 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
4982
4983         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
4984
4985 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
4986
4987         PR debug/46102
4988         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
4989
4990 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
4991
4992         PR tree-optimization/65048
4993         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
4994         (thread_through_all_blocks): Call valid_jump_thread_path.
4995         Remove invalid FSM jump-thread paths.
4996
4997 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
4998
4999         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
5000         (ipa_write_optimization_summaries): Likewise.
5001         * tree-streamer.h: Include data-streamer.h.
5002         (streamer_mode_table): Declare extern variable.
5003         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
5004         * lto-streamer-out.c (lto_output_init_mode_table,
5005         lto_write_mode_table): New functions.
5006         (produce_asm_for_decls): Call lto_write_mode_table when streaming
5007         offloading LTO.
5008         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
5009         (lto_create_simple_input_block): Add mode_table argument to the
5010         lto_input_block constructors.
5011         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
5012         Likewise.
5013         * data-streamer-in.c (string_for_index): Likewise.
5014         * ipa-inline-analysis.c (inline_read_section): Likewise.
5015         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
5016         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
5017         * lto-streamer-in.c (lto_read_body_or_constructor,
5018         lto_input_toplevel_asms): Likewise.
5019         (lto_input_mode_table): New function.
5020         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
5021         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
5022         Use bp_pack_machine_mode.
5023         * real.h (struct real_format): Add name field.
5024         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
5025         (class lto_input_block): Add mode_table member.
5026         (lto_input_block::lto_input_block): Add mode_table_ argument,
5027         initialize mode_table.
5028         (struct lto_file_decl_data): Add mode_table field.
5029         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
5030         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
5031         unpack_ts_decl_common_value_fields,
5032         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
5033         * tree-streamer.c (streamer_mode_table): New variable.
5034         * real.c (ieee_single_format, mips_single_format,
5035         motorola_single_format, spu_single_format, ieee_double_format,
5036         mips_double_format, motorola_double_format,
5037         ieee_extended_motorola_format, ieee_extended_intel_96_format,
5038         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
5039         ibm_extended_format, mips_extended_format, ieee_quad_format,
5040         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
5041         decimal_single_format, decimal_double_format, decimal_quad_format,
5042         ieee_half_format, arm_half_format, real_internal_format): Add name
5043         field.
5044         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
5045
5046 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
5047
5048         PR target/65161
5049         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
5050         reordering for selective scheduling.
5051
5052 2015-02-26  Terry Guo  <terry.guo@arm.com>
5053
5054         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
5055         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
5056         (arm_arch_no_volatile_ce): Declare new global variable.
5057         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
5058         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
5059         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
5060         (TARGET_NO_VOLATILE_CE): New macro.
5061         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
5062         volatile memory access in IT block
5063
5064 2015-02-25  Kai Tietz  <ktietz@redhat.com>
5065
5066         PR tree-optimization/61917
5067         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
5068         that reduc_def_stmt is null.
5069
5070 2015-02-25  Martin Liska  <mliska@suse.cz>
5071
5072         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
5073         hard register variables.
5074
5075 2015-02-25  Kai Tietz  <ktietz@redhat.com>
5076
5077         PR target/64212
5078         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
5079         (symtab::noninterposable_alias): Likewise.
5080
5081 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
5082
5083         PR target/65167
5084         * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
5085         bounds registers.
5086         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
5087
5088 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
5089
5090         PR target/64997
5091         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
5092         as split condition; force split via '#' in output pattern.
5093
5094 2015-02-25  Richard Biener  <rguenther@suse.de>
5095             Kai Tietz  <ktietz@redhat.com>
5096
5097         PR tree-optimization/61917
5098         * tree-vect-loop.c (vectorizable_reduction): Allow
5099         vect_internal_def without reduction to exit graceful.
5100
5101 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
5102
5103         PR target/65196
5104         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
5105         only with NONDEBUG_INSN_P.
5106
5107 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
5108
5109         Use variadic macros with avr-log.c.
5110
5111         * config/avr/avr-protos.h (avr_vdump): New prototype.
5112         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
5113         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
5114         * config/avr/avr-log.c: Adjust comments.
5115         (avr_vdump): New function.
5116         (avr_vadump): Pass caller as 2nd argument instead of format string.
5117         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
5118         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
5119
5120 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
5121
5122         PR lto/64374
5123         * target.def (target_option_stream_in): New target hook.
5124         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
5125         targetm.target_option.post_stream_in if non-NULL.
5126         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
5127         * doc/tm.texi: Updated.
5128         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
5129         function.
5130         (TARGET_OPTION_POST_STREAM_IN): Redefine.
5131
5132 2015-02-24  Jeff Law  <law@redhat.com>
5133
5134         PR target/65117
5135         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
5136         of operand 0 and operand 2.
5137         (zero_cost_loop_end, loop_end): Similarly.
5138
5139 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
5140
5141         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
5142         CXX_MEM_STAT_INFO.
5143
5144 2015-02-24  DJ Delorie  <dj@redhat.com>
5145
5146         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
5147         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
5148         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
5149         instead of hardcoding SImode.
5150
5151 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
5152
5153         * omp-low.c (create_omp_child_function): Tag entrypoint
5154         functions with a special attribute.
5155
5156 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
5157
5158         PR target/65058
5159         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
5160
5161 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
5162
5163         PR rtl-optimization/65123
5164         * lra-remat.c (operand_to_remat): Check hard regs in insn
5165         definition too.
5166
5167 2015-02-24  Nick Clifton  <nickc@redhat.com>
5168
5169         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
5170         to the assembler.
5171
5172 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
5173
5174         PR libgomp/64625
5175         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
5176         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
5177         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
5178         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
5179         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
5180         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
5181         (BUILT_IN_GOACC_PARALLEL): Specify as
5182         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
5183         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
5184         * builtin-types.def
5185         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
5186         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
5187         Remove function types.
5188         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
5189         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
5190         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
5191         New function types.
5192
5193 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
5194
5195         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
5196
5197 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
5198
5199         PR tree-optimization/65170
5200         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
5201         if val[1] < 0, clear also val[2] and return 3.
5202
5203 2015-02-24  Alan Modra  <amodra@gmail.com>
5204
5205         PR target/65172
5206         * config/rs6000/rs6000.c (get_memref_parts): Only return true
5207         when *base is a reg.  Handle nested plus addresses.  Simplify
5208         pre_modify test.
5209
5210 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
5211
5212         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
5213         use natural alignment when optimizing for size.
5214
5215 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
5216
5217         PR target/65153
5218         * config/sh/sh.md (movsicc_true+3): Remove peephole.
5219         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
5220         * config/sh/sh.c (replace_n_hard_rtx): Remove.
5221
5222 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
5223
5224         PR fortran/63427
5225         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
5226         too big for a wide_int.  Implement missing wrapping operation.
5227
5228 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
5229
5230         PR target/65163
5231         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
5232         instead of const_int 4294901760.
5233
5234 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
5235
5236         * config/avr/t-avr: Fix typo in comment.
5237
5238 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
5239
5240         * doc/rtl.texi (fma): Clarify documentation.
5241
5242 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
5243
5244         PR debug/58123
5245         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
5246         over input_location.
5247
5248 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
5249
5250         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
5251         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
5252         restrict alignments to absolute_biggest_alignment.
5253         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
5254         Define.
5255         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
5256         * doc/tm.texi: Regenerate.
5257         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
5258
5259 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
5260
5261         PR target/64172
5262         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
5263
5264 2015-02-20  Richard Biener  <rguenther@suse.de>
5265
5266         PR tree-optimization/65136
5267         * tree-ssa-propagate.c: Include cfgloop.h.
5268         (replace_phi_args_in): Avoid replacing loop latch edge PHI
5269         arguments with constants.
5270
5271 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
5272             Martin Liska  <mliska@suse.cz>
5273
5274         PR target/63892
5275         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
5276         don't try to create_thunk if stdarg_p.  If
5277         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
5278         redirect_callers if possible.
5279         (sem_item_optimizer::execute): Call unregister_hooks here...
5280         (ipa_icf_driver): ... instead of here.
5281
5282 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5283
5284         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
5285         Mark operand 0 as earlyclobber in 2nd alternative.
5286         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
5287         Write negated shift amount into QI lowpart operand 0 and use it
5288         in the shift step.
5289         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
5290
5291 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
5292
5293         * cgraph.h (clone_function_name_1): Declare.
5294         * cgraphclones.c (clone_function_name_1): New function.
5295         (clone_function_name): Use it.
5296         * lto-partition.c: Include "stringpool.h".
5297         (must_not_rename, maybe_rewrite_identifier)
5298         (validize_symbol_for_target): New static functions.
5299         (privatize_symbol_name): Use must_not_rename.
5300         (promote_symbol): Call validize_symbol_for_target.
5301         (lto_promote_cross_file_statics): Likewise.
5302         (lto_promote_statics_nonwpa): Likewise.
5303
5304 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
5305
5306         PR target/64452
5307         * config/avr/avr.md (pushhi_insn): New insn.
5308         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
5309
5310 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
5311             Jakub Jelinek  <jakub@redhat.com>
5312
5313         * tree-streamer.c (preload_common_nodes): Don't preload
5314         TI_VA_LIST* for offloading.
5315         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
5316         in_lto_p.
5317
5318 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
5319
5320         * config/pa/pa.c (pa_emit_move_sequence): Always force
5321         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
5322         note on insn.
5323
5324         * config/pa/pa.c (pa_reloc_rw_mask): New function.
5325         (TARGET_ASM_RELOC_RW_MASK): Define.
5326         (pa_cannot_force_const_mem): Revert previous change.
5327
5328 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
5329             Jan Hubicka  <hubicka@ucw.cz>
5330
5331         PR ipa/65028
5332         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
5333         across jump functions.
5334
5335 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
5336
5337         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
5338
5339 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
5340
5341         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
5342
5343 2015-02-19  Richard Henderson  <rth@redhat.com>
5344
5345         PR middle-end/65074
5346         * varasm.c (default_binds_local_p_2): Don't test node->definition;
5347         test DECL_EXTERNAL independent of symtab_node.
5348
5349 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
5350
5351         PR lto/65012
5352         * varpool.c (varpool_node::get_constructor): Return early
5353         if this->lto_file_data is NULL.
5354
5355 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
5356
5357         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
5358         (rank_for_schedule_debug): Update.
5359         (ready_sort): Make static.  Move sorting logic to ...
5360         (ready_sort_debug, ready_sort_real): New static functions.
5361         (schedule_block): Sort both debug insns and real insns in preparation
5362         for ready list trimming.  Improve debug output.
5363         * sched-int.h (ready_sort): Remove global declaration.
5364
5365 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
5366
5367         * ipa-icf.c (sem_function::equals_private): Adjust.
5368         (sem_function::bb_dict_test): Take a vec<int> * instead of
5369         auto_vec<int>.
5370         * ipa-icf.h (bb_dict_test): Likewise.
5371
5372 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
5373
5374         PR gcov-profile/64634
5375         * tree-eh.c (frob_into_branch_around): Fix up typos
5376         in function comment.
5377         (lower_catch): Put eh_seq resulting from EH lowering of
5378         the cleanup sequence after the cleanup rather than before it.
5379
5380 2015-02-18  Tom de Vries  <tom@codesourcery.com>
5381
5382         * common.opt (fstdarg-opt): New option.
5383         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
5384         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
5385         (@item -fstdarg-opt): New item.
5386
5387 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
5388
5389         PR target/65064
5390         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
5391         for common symbols.
5392
5393 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
5394
5395         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
5396         insn-modes.h.
5397         (ALL_HOST_OBJS): Add mkoffload.o.
5398         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
5399
5400 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
5401
5402         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
5403         (compare_virtual_tables): Be smarter about skipping typeinfos;
5404         do sane output on virtual table table mismatch.
5405         (warn_odr): Be ready for forward declarations of enums;
5406         output sane info on base mismatch and virtual table mismatch.
5407         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
5408         when only one type is polymorphic.
5409         (get_odr_type): Fix hashtable corruption.
5410         (dump_odr_type): Dump mangled names.
5411
5412 2015-02-18  Richard Biener  <rguenther@suse.de>
5413
5414         PR tree-optimization/65063
5415         * tree-predcom.c (determine_unroll_factor): Return 1 if we
5416         have replaced looparound PHIs.
5417
5418 2015-02-18  Martin Liska  <mliska@suse.cz>
5419
5420         * lto-streamer.c (lto_streamer_init): Encapsulate
5421         streamer_check_handled_ts_structures with checking macro.
5422
5423 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
5424
5425         PR ipa/65087
5426         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
5427         section if !implicit_section.
5428         (cgraph_node::create_version_clone_with_body): Likewise.
5429         * trans-mem.c (ipa_tm_create_version): Likewise.
5430
5431 2015-02-18  Richard Biener  <rguenther@suse.de>
5432
5433         PR tree-optimization/62217
5434         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
5435         into BIVs.
5436
5437 2015-02-18  Marek Polacek  <polacek@redhat.com>
5438
5439         PR sanitizer/65081
5440         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
5441         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
5442         is in range [-16K, -1].  Don't issue run-time error if
5443         (ptr > ptr + offset).
5444
5445 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
5446
5447         * doc/install.texi (nvptx-*-none): New section.
5448         * doc/invoke.texi (Nvidia PTX Options): Likewise.
5449         * config/nvptx/nvptx.opt: Update.
5450
5451         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
5452         (access_check): New functions, copied from
5453         config/i386/intelmic-mkoffload.c.
5454         (main): For non-installed testing, look in all COMPILER_PATHs for
5455         GCC_INSTALL_NAME.
5456
5457         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
5458
5459 2015-02-18  Andrew Pinski  <apinski@cavium.com>
5460             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
5461
5462         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
5463         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
5464
5465 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
5466
5467         * ipa-visibility.c (function_and_variable_visibility): Only
5468         check locality if node is not already local.
5469         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
5470         call_for_symbol_and_aliases instead of
5471         call_for_symbol_thunks_and_aliases.
5472         (ipa_inline): Likewise.
5473         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
5474         first walk aliases.
5475         * ipa.c (symbol_table::remove_unreachable_nodes): Use
5476         call_for_symbol_and_aliases.
5477         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
5478         (ipa_propagate_frequency_1): Use it; use opt_for_fn
5479         (ipa_propagate_frequency): Update.
5480         (ipa_profile): Add opt_for_fn gueards.
5481
5482 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
5483
5484         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
5485         * doc/invoke.texi (SH options): Document it.
5486         * config/sh/sh.c (sh_insn_length_adjustment): Check
5487         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
5488
5489 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
5490
5491         * common.opt (fipa-cp-alignment): New.
5492         * ipa-cp.c (ipcp_store_alignment_results): Check
5493         flag_ipa_cp_alignment.
5494         * opts.c (default_options_table): Enable -fipa-cp-alignment for
5495         -O2.
5496         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
5497         * doc/invoke.texi: Document -fipa-cp-alignment.
5498
5499 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
5500
5501         PR target/64793
5502         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
5503         to nil.  Adjust comments.
5504
5505 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
5506
5507         * ipa-visibility.c (function_and_variable_visibility): Only
5508         check locality if node is not already local.
5509         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
5510         call_for_symbol_and_aliases instead of
5511         call_for_symbol_thunks_and_aliases.
5512         (ipa_inline): Likewise.
5513         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
5514         first walk aliases.
5515         * ipa.c (symbol_table::remove_unreachable_nodes): Use
5516         call_for_symbol_and_aliases.
5517         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
5518         (ipa_propagate_frequency_1): Use it; use opt_for_fn
5519         (ipa_propagate_frequency): Update.
5520         (ipa_profile): Add opt_for_fn guards.
5521
5522 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
5523
5524         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
5525         skipping of "strange" tokens.
5526
5527 2015-02-17  Jeff Law  <law@redhat.com>
5528
5529         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
5530         obsolete comment.
5531
5532 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
5533
5534         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
5535         as forcing a HARD_DEP between instructions, thereby
5536         disallowing rewriting to break dependencies.
5537
5538 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
5539
5540         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
5541         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
5542         variables in boundary that have no inlitalizer encoded and are
5543         not aliases.
5544         * varasm.c (default_binds_local_p_2): External definitions do not
5545         count as definitions here.
5546
5547 2015-02-16  Jeff Law  <law@redhat.com>
5548
5549         PR tree-optimization/64823
5550         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
5551         statements.
5552         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
5553         threading through blocks with PHIs, but no statements.
5554         (thread_through_normal_block): Distinguish between blocks where
5555         we did not process all the statements and blocks with no statements.
5556
5557 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
5558             James Greenhalgh  <james.greenhalgh@arm.com>
5559
5560         PR ipa/64963
5561         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
5562         section if not linkonce.  Fix up formatting.
5563         (cgraph_node::create_version_clone_with_body): Copy section.
5564         * trans-mem.c (ipa_tm_create_version): Likewise.
5565
5566 2015-02-16  Richard Biener  <rguenther@suse.de>
5567
5568         PR tree-optimization/65077
5569         * tree-ssa-structalias.c (get_constraint_for_1): Handle
5570         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
5571         (find_func_aliases): Allow float values to carry pointers again.
5572
5573 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
5574
5575         * doc/install.texi (Specific): Reorder targets list to put
5576         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
5577         from the top menu.
5578
5579 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
5580             David Edelsohn  <dje.gcc@gmail.com>
5581
5582         PR target/65058
5583         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
5584         mapping class to external variable or function reference.
5585         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
5586         mapping class.
5587
5588 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
5589
5590         PR target/53348
5591         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
5592         ASM_WEAKEN_DECL if defined.
5593
5594 2015-02-16  Richard Biener  <rguenther@suse.de>
5595
5596         PR lto/65015
5597         * varasm.c (default_file_start): For LTO produced units
5598         emit <artificial> as file directive.
5599
5600 2015-02-16  Richard Biener  <rguenther@suse.de>
5601
5602         PR tree-optimization/63593
5603         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
5604         stmts and releasing SSA names until...
5605         (execute_pred_commoning): ... after processing all chains.
5606
5607 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
5608
5609         PR ipa/65059
5610         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
5611         external functions.
5612
5613 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
5614
5615         * doc/bugreport.texi: Adjust section titles throughout the file
5616         to use "Title Case".
5617         * doc/extend.texi: Likewise.
5618         * doc/gcov.texi: Likewise.
5619         * doc/implement-c.texi: Likewise.
5620         * doc/implement-cxx.texi: Likewise.
5621         * doc/invoke.texi: Likewise.
5622         * doc/objc.texi: Likewise.
5623         * doc/standards.texi: Likewise.
5624         * doc/trouble.texi: Likewise.
5625
5626 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
5627
5628         * cgraph.h (symtab_node::has_aliases_p): Simplify.
5629         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
5630         * tree.c (lookup_binfo_at_offset): Make static.
5631         (get_binfo_at_offset): Do not shadow offset; add explanatory
5632         comment.
5633
5634 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
5635
5636         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
5637         for all floading point loads and stores except those using a register
5638         index address.
5639         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
5640         to a register.
5641
5642 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
5643
5644         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
5645         (do_estimate_growth_1): Record if any uninlinable edge was seen.
5646         (estimate_growth): Handle uninlinable edges correctly.
5647         (check_callers): New.
5648         (growth_likely_positive): Handle aliases correctly.
5649
5650 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
5651
5652         * ipa-chkp.c: Use iterate_direct_aliases.
5653         * symtab.c (resolution_used_from_other_file_p): Move inline.
5654         (symtab_node::create_reference): Fix formating.
5655         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
5656         (symtab_node::iterate_reference): Move inline.
5657         (symtab_node::iterate_referring): Move inline.
5658         (symtab_node::iterate_direct_aliases): Move inline.
5659         (symtab_node::used_from_object_file_p_worker): Inline into ...
5660         (symtab_node::used_from_object_file_p): ... this one; move inline.
5661         (symtab_node::call_for_symbol_and_aliases): Move inline;
5662         use iterate_direct_aliases.
5663         (symtab_node::call_for_symbol_and_aliases_1): New method.
5664         (cgraph_node::call_for_symbol_and_aliases): Move inline;
5665         use iterate_direct_aliases.
5666         (cgraph_node::call_for_symbol_and_aliases_1): New method.
5667         (varpool_node::call_for_node_and_aliases): Rename to ...
5668         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
5669         use iterate_direct_aliases.
5670         (varpool_node::call_for_symbol_and_aliases_1): New method.
5671         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
5672         (ipa_discover_readonly_nonaddressable_var): Update.
5673         * ipa-devirt.c: Fix formating.
5674         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
5675         Move inline.
5676         (cgraph_node::call_for_symbol_and_aliases): Move inline.
5677         (cgraph_node::call_for_symbol_and_aliases_1): New function..
5678         * cgraph.h (used_from_object_file_p_worker): Remove.
5679         (resolution_used_from_other_file_p): Move inline.
5680         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
5681         (symtab_node::iterate_reference): Move inline.
5682         (symtab_node::iterate_referring): Move inline.
5683         (symtab_node::iterate_direct_aliases): Move inline.
5684         (symtab_node::used_from_object_file_p_worker): Inline into ...
5685         (symtab_node::used_from_object_file_p): Move inline.
5686         * tree-emutls.c (ipa_lower_emutls): Update.
5687         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
5688         (varpool_node::call_for_node_and_aliases): Remove.
5689
5690 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
5691
5692         PR tree-optimization/62209
5693         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
5694         op == range->exp, insert seq and gimplified code after labels
5695         instead of after the phi.
5696
5697 2015-02-13  Jeff Law  <law@redhat.com>
5698
5699         PR bootstrap/65060
5700         Revert my change for tree-optimization/64823.
5701
5702 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
5703
5704         PR tree-optimization/65053
5705         * tree-ssa-phiopt.c (value_replacement): When moving assign before
5706         cond, either reset VR on lhs or set it to phi result VR.
5707
5708 2015-02-13  Jeff Law  <law@redhat.com>
5709
5710         PR tree-optimization/64823
5711         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
5712         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
5713         threading through blocks with PHIs, but no statements.
5714         (thread_through_normal_block): Distinguish between blocks where
5715         we did not process all the statements and blocks with no statements.
5716
5717         PR rtl-optimization/47477
5718         * match.pd (convert (plus/minus (convert @0) (convert @1): New
5719         simplifier to narrow arithmetic.
5720
5721 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
5722
5723         PR ipa/65028
5724         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
5725         polymorphic call info when type is not known to be preserved.
5726
5727 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
5728
5729         PR ipa/65028
5730         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
5731         (inline_call): Use it.
5732
5733 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
5734
5735         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
5736         GOMP_DEVICE_NVIDIA_PTX.
5737
5738 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
5739
5740         PR ipa/65034
5741         * stmt.c (emit_case_nodes): Use void_type_node instead of
5742         NULL_TREE as LABEL_DECL type.
5743
5744 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
5745
5746         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
5747         constraints.
5748         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
5749         symbolic references to data to be forced to constant memory on the
5750         SOM target.
5751
5752 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
5753
5754         PR tree-optimization/65002
5755         * tree-cfg.c (pass_data_fixup_cfg): Don't update
5756         SSA on start.
5757         * tree-sra.c (some_callers_have_no_vuse_p): New.
5758         (ipa_early_sra): Reject functions whose callers
5759         assume function is read only.
5760
5761 2015-02-13  Richard Biener  <rguenther@suse.de>
5762
5763         PR lto/65015
5764         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
5765         for LTO produced CUs.
5766
5767 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
5768
5769         PR tree-optimization/64705
5770         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
5771         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
5772         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
5773         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
5774         expand_simple_operations.
5775
5776 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
5777             Richard Henderson  <rth@redhat.com>
5778
5779         PR rtl/32219
5780         * cgraphunit.c (cgraph_node::finalize_function): Set definition
5781         before notice_global_symbol.
5782         (varpool_node::finalize_decl): Likewise.
5783         * varasm.c (default_binds_local_p_2): Rename from
5784         default_binds_local_p_1, add weak_dominate argument.  Use direct
5785         returns instead of assigning to local variable.  Unify varpool and
5786         cgraph paths via symtab_node.  Reject undef weak variables before
5787         testing visibility.  Reorder tests for simplicity.
5788         (default_binds_local_p): Use default_binds_local_p_2.
5789         (default_binds_local_p_1): Likewise.
5790         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
5791         via symtab_node.
5792         (default_elf_asm_output_external): Emit visibility when specified.
5793
5794 2015-02-13  Alan Modra  <amodra@gmail.com>
5795
5796         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
5797         code setting up r11 for out-of-line fp restore.
5798
5799 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
5800
5801         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
5802         (muser-mode): Likewise.
5803
5804 2015-02-13  Alan Modra  <amodra@gmail.com>
5805
5806         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
5807         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
5808
5809 2015-02-12  David Howells  <dhowells@redhat.com>
5810
5811         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
5812         warning.
5813         * tree-ssa-uninit.c (dump_predicates): Likewise.
5814         * opts.c (print_filtered_help): Likewise.
5815
5816 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
5817
5818         * dwarf2out.c (output_die): Use "%s", name instead of name to
5819         avoid -Wformat-security warning.
5820
5821         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
5822         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
5823         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
5824         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
5825
5826 2015-02-12  Jason Merrill  <jason@redhat.com>
5827
5828         * common.opt (-flifetime-dse): New.
5829
5830 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
5831
5832         PR sanitizer/65019
5833         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
5834
5835         PR tree-optimization/65014
5836         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
5837         use original second operand of arg0 or arg1 instead of
5838         that adjusted by STRIP_NOPS.
5839
5840 2015-02-11  Jeff Law  <law@redhat.com>
5841
5842         PR target/63347
5843         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
5844         that needs to be queued, just queue it for a single cycle.
5845
5846 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
5847
5848         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
5849         bodies of thunks; comment on why.
5850         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
5851         symbols are extern.
5852
5853 2015-02-11  Richard Henderson  <rth@redhat.com>
5854
5855         PR sanitize/65000
5856         * tree-eh.c (mark_reachable_handlers): Mark source and destination
5857         regions of __builtin_eh_copy_values.
5858
5859 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
5860
5861         PR middle-end/65003
5862         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
5863         ultimate alias is MEM with SYMBOL_REF satisfying
5864         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
5865         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
5866
5867 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
5868
5869         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
5870         "diagnostic-core.h".
5871         (main): Initialize progname, and call diagnostic_initialize.
5872
5873         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
5874         instead of __OPENMP_TARGET__.
5875
5876         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
5877         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
5878         hard-coding PTX_ID.
5879
5880 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
5881
5882         * doc/sourcebuild.texi (pie_enabled): Document.
5883
5884 2015-02-11  Martin Liska  <mliska@suse.cz>
5885
5886         PR ipa/64813
5887         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
5888         a return value for call to a function that is noreturn.
5889
5890 2015-02-11  Richard Biener  <rguenther@suse.de>
5891
5892         PR lto/65015
5893         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
5894         and -fresolution.
5895
5896 2015-02-11  Andrew Pinski  <apinski@cavium.com>
5897
5898         PR target/64893
5899         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
5900         Change the first argument type to size_type_node and add another
5901         size_type_node.
5902         (aarch64_simd_expand_builtin): Handle the new argument to
5903         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
5904         print an out when the first two arguments are not
5905         nonzero integer constants.
5906         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
5907         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
5908
5909 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
5910
5911         PR target/61925
5912         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
5913         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
5914         (ix86_set_current_function): Rewritten.
5915         (ix86_add_new_builtins): Temporarily clear current_target_pragma
5916         when creating builtin fndecls.
5917
5918 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
5919
5920         PR ipa/65005
5921         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
5922         function.
5923         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
5924         have no comdat group.
5925         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
5926         (lto_output_varpool_node): Always output alias info.
5927         (output_refs): Output refs of boundary aliases, too.
5928         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
5929         (output_symtab): Output call eges in thunks in boundary.
5930         (get_alias_symbol): Remove.
5931         (input_node, input_varpool_node): Do not special case weakrefs.
5932         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
5933         alias and thunks targets in the boundary; do not take removed symbols
5934         from their comdat groups.
5935         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
5936         (cgraph_node::global_info): Remove.
5937         (cgraph_node::rtl_info): Look through aliases and thunks.
5938         * cgrpah.h (global_info): Remove.
5939         (non_local_p): Remove.
5940
5941 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
5942             Sandra Loosemore  <sandra@codesourcery.com>
5943
5944         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
5945         to inline asm.  List dialects in proper order.
5946
5947 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
5948             Sandra Loosemore  <sandra@codesourcery.com>
5949
5950         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
5951
5952 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
5953
5954         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
5955         modified) reference to Solaris.
5956
5957 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
5958
5959         * doc/extend.texi (Extended Asm): Fix typos.
5960
5961 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
5962
5963         PR sanitizer/65004
5964         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
5965
5966 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
5967
5968         PR target/64661
5969         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
5970         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
5971         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
5972         * config/sh/constraints.md (Ara, Add): New constraints.
5973         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
5974         predicates.
5975         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
5976         atomic_mem_operand_0.  Don't use force_reg on the memory address.
5977         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
5978         Sra constraint.  Convert to insn_and_split.  Add workaround for
5979         PR 64974.
5980         (atomic_compare_and_swap<mode>_hard): Copy to
5981         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
5982         Use atomic_mem_operand_0 predicate.
5983         (atomic_compare_and_swap<mode>_soft_gusa,
5984         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
5985         AraAdd constraints.
5986         (atomic_compare_and_swap<mode>_soft_tcb,
5987         atomic_compare_and_swap<mode>_soft_imask,
5988         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
5989         atomic_mem_operand_0 predicate and SraSdd constraints.
5990         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
5991         constraint.
5992         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
5993         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
5994         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
5995         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
5996         force_reg on the memory address.
5997         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
5998         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
5999         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
6000         atomic_mem_operand_1 predicate and Sra constraint.
6001         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
6002         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
6003         Use atomic_mem_operand_1 predicate.
6004         (atomic_<fetchop_name><mode>_hard): Copy to
6005         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
6006         Use atomic_mem_operand_1 predicate.
6007         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
6008         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
6009         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
6010         insn_and_split.  Use atomic_mem_operand_1 predicate.
6011         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
6012         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
6013         Use atomic_mem_operand_1 predicate.
6014         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
6015         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
6016         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
6017         in generated insn with original mem operand before emitting the insn.
6018         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
6019         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
6020         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
6021         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
6022         Use atomic_mem_operand_1 predicate and AraAdd constraints.
6023         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
6024         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
6025         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
6026         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
6027         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
6028         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
6029         atomic_not_fetch<mode>_soft_tcb,
6030         atomic_<fetchop_name>_fetch<mode>_soft_imask,
6031         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
6032         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
6033         Use atomic_mem_operand_1 predicate and SraSdd constraints.
6034
6035 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
6036
6037         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
6038         and 3 earlyclobber operands.
6039
6040 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
6041
6042         * common.opt (fstack-reuse): Mark as optimization.
6043
6044 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
6045
6046         PR ipa/64982
6047         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
6048
6049 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
6050
6051         PR tree-optimization/64326
6052         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
6053
6054 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
6055
6056         PR gcov-profile/61889
6057         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
6058
6059 2015-02-10  Richard Biener  <rguenther@suse.de>
6060
6061         PR tree-optimization/64995
6062         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
6063         value we use is final.
6064         (visit_reference_op_store): Always valueize op.
6065         (visit_use): Properly valueize vuses.
6066
6067 2015-02-10  Richard Biener  <rguenther@suse.de>
6068
6069         PR tree-optimization/64909
6070         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
6071         pass a scalar-stmt count estimate to the cost model.
6072         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
6073
6074 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
6075
6076         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
6077         enabled by default together with var-tracking.
6078
6079 2015-02-10  Nick Clifton  <nickc@redhat.com>
6080
6081         * config/rl78/rl78.c: Remove DIV attribute code accidentally
6082         included in previous rl78 commit.
6083
6084 2015-02-10  Richard Biener  <rguenther@suse.de>
6085
6086         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
6087         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
6088         return the bitpack.
6089
6090 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
6091
6092         PR gcov-profile/61889
6093         * config.in: regenerate.
6094         * configure.in: Likewise.
6095         * configure.ac: Check for ftw.h.
6096         * gcov-tool.c: Check for ftw.h before using nftw.
6097
6098 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
6099
6100         PR lto/64076
6101         * ipa-visibility.c (update_visibility_by_resolution_info): Only
6102         assert when not in lto mode.
6103
6104 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
6105
6106         * ira-color.c (setup_left_conflict_sizes_p): Simplify
6107         initialization/assignment of conflict_size.
6108
6109 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
6110
6111         PR ipa/64978
6112         * ipa-cp.c (gather_caller_stats): Skip thunks.
6113         (propagate_constants_topo): Skip aliases.
6114
6115 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
6116
6117         PR target/64761
6118         * config/sh/sh.c (sh_option_override): Don't change
6119         -freorder-blocks-and-partition to -freorder-blocks even when
6120         unwinding is enabled.
6121         (sh_can_follow_jump): Return false if the followee jump is
6122         a crossing jump when -freorder-blocks-and-partition is specified.
6123         * config/sh/sh.md (*jump_compact_crossing): New insn.
6124
6125 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
6126             Kaz Kojima  <kkojima@gcc.gnu.org>
6127
6128         PR target/64761
6129         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
6130         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
6131         (sh_can_redirect_branch): Rename to ...
6132         (sh_can_follow_jump): ... this.  Constify argument types.
6133         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
6134         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
6135         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
6136         * doc/tm.texi: Regenerate.
6137
6138 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
6139
6140         PR sanitizer/64981
6141         * builtins.c (expand_builtin): Call targetm.expand_builtin
6142         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
6143
6144 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
6145
6146         PR ipa/61548
6147         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
6148
6149 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
6150
6151         PR ipa/63566
6152         * ipa-icf.c (set_local): New function.
6153         (sem_function::merge): Use it.
6154
6155 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
6156
6157         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
6158         (add_type_duplicate): Fix comparison of BINFOs.
6159
6160 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
6161
6162         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
6163         on getting VOID pointer.
6164
6165 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
6166
6167         PR target/64979
6168         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
6169         va_list escapes.
6170
6171 2015-02-09  Richard Biener  <rguenther@suse.de>
6172
6173         * genmatch.c (replace_id): Copy expr_type.
6174
6175 2015-02-09  Richard Biener  <rguenther@suse.de>
6176
6177         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
6178         (streamer_write_tree_bitfields): Declare.
6179         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
6180         properly unpack padding.
6181         (unpack_value_fields): Inline ...
6182         (streamer_read_tree_bitfields): ... here.
6183         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
6184         and properly add padding bits.
6185         (streamer_pack_tree_bitfields): Fold into ...
6186         (streamer_write_tree_bitfields): ... this new function,
6187         exposing the bitpack object.
6188         * lto-streamer-out.c (lto_write_tree_1): Call
6189         streamer_write_tree_bitfields.
6190
6191 2015-02-09  Richard Biener  <rguenther@suse.de>
6192
6193         PR tree-optimization/54000
6194         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
6195         (struct ivopts_data): Add loop_loc member.
6196         (tree_ssa_iv_optimize_loop): Dump loop location.
6197         (create_new_ivs): Likewise, also dump number of IVs generated.
6198
6199 2015-02-09  Martin Liska  <mliska@suse.cz>
6200
6201         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
6202         just if not yet registered.
6203         (ipa_icf_generate_summary): Register callgraph hooks.
6204
6205 2015-02-08  Andrew Pinski  <apinski@cavium.com>
6206
6207         * config/aarch64/aarch64.c (gty_dummy): Delete.
6208
6209 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
6210
6211         PR ipa/63566
6212         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
6213         (cgraph_node::local_p): Remove thunk related FIXME.
6214
6215 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
6216
6217         PR ipa/63566
6218         * i386.c (ix86_function_regparm): Look through aliases to see if callee
6219         is local and optimized.
6220         (ix86_function_sseregparm): Likewise; also use target's SSE math
6221         settings; error out instead of silently generating wrong code
6222         on mismatches.
6223         (init_cumulative_args): Look through aliases.
6224
6225 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
6226
6227         PR ipa/63566
6228         * ipa-split.c (execute_split_functions): Split if function has aliases.
6229
6230 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
6231
6232         PR ipa/63566
6233         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
6234         aliases before trying to expand it.
6235         (cgraph_node::expand_thunk): Fix formating.
6236
6237 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
6238
6239         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
6240         (Using Assembly Language with C): Expand introduction.
6241         (Basic Asm): Copy-edit.  Add more information about uses of
6242         basic asm.
6243         (Extended Asm): Copy-edit.  Document new escape syntax and
6244         %l[label] syntax.
6245         (Global Reg Vars): Copy-edit.
6246         (Local Reg Vars): Likewise.
6247
6248 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
6249
6250         PR debug/2714
6251         PR bootstrap/64256
6252         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
6253         (DBX_CONTIN_CHAR): Define.
6254
6255 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
6256             Brian Rzycki  <b.rzycki@samsung.com>
6257
6258         PR tree-optimization/64878
6259         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
6260         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
6261         Stop recursion at loop phi nodes after having visited a loop phi node.
6262
6263 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
6264
6265         * toplev.c (process_options): Change flag_ipa_ra before creating
6266         optimization_{default,current}_node.
6267
6268         PR ipa/64896
6269         * cgraphunit.c (cgraph_node::expand_thunk): If
6270         restype is not is_gimple_reg_type nor the thunk_fndecl
6271         returns aggregate_value_p, set restmp to a temporary variable
6272         instead of resdecl.
6273
6274 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
6275
6276         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
6277
6278 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
6279
6280         PR target/64205
6281         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
6282         add a general secondary reload handler for SDmode, unless we have
6283         both read/write support for SDmode.
6284
6285 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
6286
6287         PR middle-end/64937
6288         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
6289         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
6290         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
6291         1 before, push it to abstract_vec.
6292         (dwarf2out_abstract_function): Adjust caller.  Don't call
6293         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
6294         DECL_ABSTRACT_P flags for all abstract_vec elts.
6295
6296 2015-02-06  Renlin Li  <renlin.li@arm.com>
6297
6298         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
6299         complex gimple.
6300         * tree-ssa.c (execute_update_addresses_taken): Likewise.
6301
6302 2015-02-06  Jeff Law  <law@redhat.com>
6303
6304         PR target/64889
6305         * config/h8300/h8300.c (push): New argument "in_prologue".
6306         Pass "in_prologue" along to "F".
6307         (h8300_push_pop): Corresponding changes.
6308         (h8300_expand_prologue): Likewise.
6309         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
6310
6311 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
6312
6313         PR rtl-optimization/64957
6314         PR debug/64817
6315         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
6316         IOR rather than for AND.
6317
6318 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
6319
6320         PR target/62631
6321         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
6322         of shift-add and (add + shift) operations.  Rename local variable.
6323
6324 2015-02-05  Jeff Law  <law@redhat.com>
6325
6326         PR target/17306
6327         * config/h8300/constraints.md (U): Correctly dectect
6328         "eightbit_data" memory addresses.
6329         * config/h8300/h8300.c (eightbit_constant_address_p): Also
6330         handle (const (plus (symbol_ref (x)))) where x is declared
6331         as an 8-bit data memory address.
6332         * config/h8300/h8300.md (call, call_value): Correctly detect
6333         "funcvec" functions.
6334
6335         PR target/43264
6336         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
6337         24 to 28 bits for the H8/300.
6338
6339 2015-02-06  Alan Modra  <amodra@gmail.com>
6340
6341         PR target/64876
6342         * config/rs6000/rs6000.c (chain_already_loaded): New function.
6343         (rs6000_call_aix): Use it.
6344
6345 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
6346
6347         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
6348         check.
6349
6350 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
6351
6352         * config/h8300/constraints.md ("U" constraint): Use strict
6353         variant of REG_OK_FOR_BASE_P after reload has started.
6354
6355 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
6356
6357         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
6358         define to zero if !TARGET_NEON.
6359         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
6360
6361 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
6362             Trevor Saunders  <tsaunders@mozilla.com>
6363
6364         PR ipa/61548
6365         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
6366
6367 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
6368
6369         PR ipa/61548
6370         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
6371         when removing varpool nodes.
6372
6373 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
6374
6375         PR ipa/61548
6376         * varpool.c (varpool_node::remove): Fix order of variables.
6377
6378 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
6379
6380         PR ipa/64686
6381         * ipa-inline.c (inline_small_functions): Fix ordering issue between
6382         speculation resolution and key updates.
6383
6384 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
6385
6386         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
6387         about not letting any speculative edges unupdated.
6388
6389 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
6390
6391         PR gcov/64123
6392         * gcov-io.c (gcov_var): Export.
6393
6394 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
6395
6396         PR middle-end/64922
6397         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
6398         edges that become speculative.
6399
6400 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
6401
6402         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
6403         or DW_LANG_Fortran08.
6404         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
6405         DW_LANG_Fortran08.
6406         (gen_compile_unit_die): Handle "GNU Fortran2003" and
6407         "GNU Fortran2008" language strings.
6408         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
6409         * langhooks.h (lang_GNU_Fortran): New prototype.
6410         * langhooks.c (lang_GNU_Fortran): New function.
6411         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
6412         lang_GNU_Fortran.
6413
6414 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
6415
6416         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
6417         (RTX_OK_FOR_OLO10_P): Likewise.
6418
6419 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
6420
6421         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
6422
6423 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
6424
6425         PR middle-end/64922
6426         * gimple.c: Include gimple-ssa.h.
6427         (maybe_remove_unused_call_args): New function.
6428         * gimple.h (maybe_remove_unused_call_args): Declare.
6429         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
6430         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
6431         * gimple-fold.c (gimple_fold_call): Likewise.
6432
6433 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
6434
6435         PR rtl-optimization/64905
6436         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
6437         pointer alignment if it isn't needed.
6438
6439 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
6440
6441         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
6442         cortex-a72.cortex-a53.
6443         * config/aarch64/aarch64-tune.md: Regenerate.
6444         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
6445
6446 2015-02-04  Nick Clifton  <nickc@redhat.com>
6447
6448         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
6449         inside a MEM.
6450
6451 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
6452
6453         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
6454         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
6455         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
6456         of DEF_BUILTIN.
6457         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
6458         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
6459         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
6460         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
6461         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
6462         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
6463         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
6464         * tree-core.h (enum built_in_function): In between
6465         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
6466         for builtins that use DEF_BUILTIN_CHKP macro.
6467
6468 2015-02-04  Alexandre Oliva <aoliva@redhat.com>
6469
6470         PR debug/64817
6471         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
6472         operands for tcc_comparison exprs.  Fix typos.
6473
6474         PR debug/64817
6475         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
6476         of two XORs that have an intervening AND or IOR.
6477
6478         PR debug/64817
6479         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
6480         simplification of XOR of AND to not allocate new rtx before
6481         committing to a simplification.
6482
6483 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6484
6485         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
6486         manual swaps in all peepholes.
6487
6488 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6489
6490         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
6491         of manual swapping implementation.
6492         (aarch64_expand_vec_perm_const_1): Likewise.
6493
6494 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
6495
6496         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
6497         (generic_addrcost_table): Remove NAMED_PARAM.
6498         (cortexa57_addrcost_table): Likewise.
6499         (xgene1_addrcost_table): Likewise.
6500         (generic_regmove_table): Likewise.
6501         (cortexa53_regmove_table): Likewise.
6502         (xgene1_regmove_table): Likewise.
6503         (generic_vector_table): Likewise.
6504         (cortexa57_vector_table): Likewise.
6505         (xgene1_vector_table): Likewise.
6506         (generic_tunings): Likewise.
6507         (cortexa53_tunings): Likewise.
6508         (cortexa57_tunings): Likewise.
6509         (xgene1_tunings): Likewise.
6510
6511 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
6512
6513         * config/arm/arm-cores.def: Add cortex-a72 and
6514         cortex-a72.cortex-a53.
6515         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
6516         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
6517         * config/arm/arm-tune.md: Regenerate.
6518         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
6519         "cortex-a72.cortex-a53".
6520         * doc/invoke.texi (ARM Options/-mtune): Likewise.
6521
6522 2015-02-04  Nick Clifton  <nickc@redhat.com>
6523
6524         PR target/64408
6525         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
6526         of accepted codes.
6527         (nonimmediate_di_operand): Likewise.
6528
6529         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
6530         prefixes of known F5 using MSP430 MCUs.
6531
6532 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6533
6534         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
6535         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
6536         instead of __builtin_sqrt.
6537
6538 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
6539
6540         * varasm.c (do_assemble_alias): Follow transparent alias
6541         chain for target.
6542         (default_assemble_visibility): Follow transparent alias
6543         chain for decl name.
6544
6545 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6546
6547         PR middle-end/62103
6548         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
6549         to compute size of referenced value in the constant case.
6550
6551 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
6552
6553         PR rtl-optimization/64756
6554         * cse.c (invalidate_dest): New function.
6555         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
6556         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
6557         invalidate and do not record it.
6558
6559 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
6560
6561         PR target/64660
6562         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
6563         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
6564         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
6565         atomic_nand<mode>_soft_tcb): New insns.
6566         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
6567         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
6568         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
6569         Split into atomic_not_fetchsi_hard if operands[0] is unused.
6570         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
6571         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
6572         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
6573         atomic_not<mode>_hard if operands[0] is unused.
6574         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
6575         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
6576         if operands[0] is unused.
6577         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
6578         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
6579         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
6580         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
6581         unused.
6582         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
6583         into atomic_not<mode>_soft_tcb if operands[0] is unused.
6584         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
6585         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
6586         if operands[0] is unused.
6587         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
6588         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
6589         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
6590         atomic_nand_fetchsi_hard if operands[0] is unused.
6591         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
6592         atomic_nand<mode>_hard if operands[0] is unused.
6593         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
6594         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
6595         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
6596         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
6597         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
6598         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
6599         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
6600         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
6601         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
6602         atomic_not<mode>_hard if operands[0] is unused.
6603         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
6604         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
6605         unused.
6606         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
6607         into atomic_not<mode>_soft_tcb if operands[0] is unused.
6608         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
6609         atomic_nand<mode>_hard if operands[0] is unused.
6610         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
6611         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
6612
6613 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
6614
6615         PR jit/64810
6616         * Makefile.in (GCC_OBJS): Add gcc-main.o.
6617         * gcc-main.c: New file, containing "main" taken from gcc.c.
6618         * gcc.c (do_self_spec): Free decoded_options.
6619         (class driver): Move declaration to gcc.h.
6620         (main): Move declaration and implementation to new file
6621         gcc-main.c.
6622         (driver_get_configure_time_options): New function.
6623         * gcc.h (class driver): Move this declaration here, from
6624         gcc.c.
6625         (driver_get_configure_time_options): New declaration.
6626
6627 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
6628
6629         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
6630         cross-module inlining.
6631         * cgraph.h (cgraph_node): Add flag merged.
6632         * ipa-icf.c (sem_function::merge): Maintain it.
6633
6634 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
6635
6636         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
6637         instead of OBJECT_P.
6638
6639 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
6640
6641         PR target/62631
6642         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
6643         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
6644         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
6645         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
6646
6647 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
6648
6649         PR other/63504
6650         * combine.c (reg_n_sets_max): New variable.
6651         (can_change_dest_mode, reg_nonzero_bits_for_combine,
6652         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
6653         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
6654         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
6655         (rest_of_handle_combine): Initialize reg_n_sets_max.
6656
6657 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
6658
6659         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
6660         if some always_inline was inlined, apply changes before inlining
6661         heuristically.
6662
6663 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
6664
6665         PR jit/64810
6666         * config/arm/arm.c (arm_option_override): Set
6667         arm_selected_arch/cpu/tune to NULL on entry.
6668
6669 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
6670             Andrew Pinski  <pinskia@gcc.gnu.org>
6671             Jakub Jelinek  <jakub@gcc.gnu.org>
6672
6673         PR target/64231
6674         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
6675         integer typing for small model. Use IN_RANGE.
6676
6677 2015-02-02  Richard Biener  <rguenther@suse.de>
6678
6679         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
6680         * tree-vrp.c (vrp_valueize_1): Likewise.
6681
6682 2015-02-02  Alan Modra  <amodra@gmail.com>
6683
6684         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
6685         than mem for toc_restore.
6686         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
6687         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
6688         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
6689
6690 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
6691
6692         PR target/64047
6693         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
6694         explicit default options.
6695
6696 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
6697
6698         PR ipa/64872
6699         * ipa-utils.c (ipa_merge_profiles): Add release argument.
6700         * ipa-icf.c (sem_function::merge): Do not release body when merging.
6701         * ipa-utils.h (ipa_merge_profiles): Update prototype.
6702
6703 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
6704
6705         PR debug/64817
6706         * cfgexpand.c (deep_ter_debug_map): New variable.
6707         (avoid_deep_ter_for_debug): New function.
6708         (expand_debug_expr): If TERed SSA_NAME is in
6709         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
6710         instead of trying to expand SSA_NAME's def stmt.
6711         (expand_debug_locations): When expanding debug bind
6712         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
6713         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
6714         value.
6715         (pass_expand::execute): Call avoid_deep_ter_for_debug on
6716         all debug bind stmts.  Delete deep_ter_debug_map after
6717         expand_debug_location if non-NULL and clear it.
6718
6719 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
6720
6721         PR target/64851
6722         * config/sh/sync.md (atomic_fetch_notsi_hard,
6723         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
6724         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
6725         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
6726         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
6727         atomic_not_fetch<mode>_soft_imask): New insns.
6728
6729 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
6730
6731         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
6732         (rank_for_schedule_debug): Split from ...
6733         (rank_for_schedule): ... this.
6734         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
6735         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
6736
6737 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
6738
6739         * doc/md.texi (Machine Constraints): Alphabetize table by target.
6740         * doc/extend.texi (x86 Variable Attributes): Move section to
6741         correct alphabetization after renaming.
6742         (x86 Type Attributes): Likewise.
6743         (Target Builtins): Re-alphabetize menu.
6744         (x86 Built-in Functions): Move section to correct alphabetization
6745         after renaming.
6746         (x86 transactional memory intrinsics): Likewise.
6747         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
6748         and x86 Windows Options in table and menu.
6749         (x86 Options): Move section to correct alphabetization after
6750         renaming.
6751         (x86 Windows Options): Likewise.
6752
6753 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
6754
6755         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
6756         preferred names of the architecture and its 32- and 64-bit
6757         variants.
6758         * doc/invoke.texi: Likewise.
6759         * doc/md.texi: Likewise.
6760
6761 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
6762
6763         PR target/64882
6764         * config/i386/predicates.md (address_no_seg_operand): Reject
6765         non-CONST_INT_P operands in invalid mode.
6766
6767 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
6768
6769         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
6770         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
6771         * config/i386/predicates.md (address_no_seg_operand): Call
6772         address_operand with VOIDmode.
6773         (vsib_address_operand): Ditto.
6774         (address_mpx_no_base_operand): Ditto.
6775         (address_mpx_no_index_operand): Ditto.
6776
6777 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
6778
6779         PR target/64688
6780         * lra-constraints.c (original_subreg_reg_mode): New.
6781         (simplify_operand_subreg): Try to simplify subreg of const.  Use
6782         original_subreg_reg_mode for it.
6783         (swap_operands): Update original_subreg_reg_mode.
6784         (curr_insn_transform): Set up original_subreg_reg_mode.
6785
6786 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
6787
6788         PR target/64617
6789         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
6790         function.
6791         (process_alt_operands): Use it.
6792         (curr_insn_transform): Check the optional reload pseudo class is
6793         ok for the mode.
6794
6795 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
6796
6797         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
6798         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
6799         prototype.
6800         * toplev.h (init_asm_output): Update comment on use of
6801         UNKNOWN_LOCATION with fatal_error.
6802         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
6803         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
6804         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
6805         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
6806         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
6807         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
6808         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
6809         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
6810         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
6811         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
6812         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
6813         fatal_error changed to pass input_location as first argument.
6814
6815 2015-01-30  Martin Liska  <mliska@suse.cz>
6816
6817         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
6818         in #pragma GCC diagnostic guards.
6819
6820 2015-01-30  Richard Biener  <rguenther@suse.de>
6821
6822         PR tree-optimization/64829
6823         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
6824         not add a widening conversion pattern but hand off extra
6825         widenings to callers.
6826         (vect_recog_widen_mult_pattern): Handle extra widening produced
6827         by vect_handle_widen_op_by_const.
6828         (vect_recog_widen_shift_pattern): Likewise.
6829         (vect_pattern_recog_1): Remove excess vertical space in dumping.
6830         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
6831         (vect_init_vector_1): Likewise.
6832         (vect_get_vec_def_for_operand): Likewise.
6833         (vect_finish_stmt_generation): Likewise.
6834         (vectorizable_load): Likewise.
6835         (vect_analyze_stmt): Likewise.
6836         (vect_is_simple_use): Likewise.
6837
6838 2015-01-29  Jeff Law  <law@redhat.com>
6839
6840         * combine.c (try_combine): Fix typo in comment.
6841
6842 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
6843
6844         PR target/64580
6845         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
6846         (rs6000_stack_info): Add assert.
6847         (rs6000_output_savres_externs): New function, split off from...
6848         (rs6000_output_function_prologue): ... here.  Do not call it for
6849         thunks.
6850
6851 2015-01-29  Jeff Law  <law@redhat.com>
6852
6853         PR target/15184
6854         * combine.c (try_combine): If I0 is a memory load and I3 a store
6855         to a related address, increase the "goodness" of doing a 4-insn
6856         combination with I0-I3.
6857         (make_field_assignment): Handle SUBREGs in the ior+and case.
6858
6859 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
6860
6861         PR tree-optimization/64746
6862         * tree-if-conv.c (mask_exists): New function.
6863         (predicate_mem_writes): Save created mask with given size for further
6864         use.
6865         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
6866         (ifcvt_repair_bool_pattern): Collect all statements that are root
6867         of bool pattern and use iterative algorithm to remove multiple uses
6868         of predicates, display number of required iterations.
6869
6870 2015-01-29  Richard Biener  <rguenther@suse.de>
6871
6872         PR tree-optimization/64853
6873         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
6874         stmt will get simulated again.
6875         * tree-ssa-ccp.c (valueize_op_1): Likewise.
6876
6877 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6878
6879         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
6880         return_in_pc.  Remove redundant assignments.
6881         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
6882         (arm_expand_epilogue): Don't compare boolean with true in if condition.
6883
6884 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
6885
6886         * config/i386/i386.c (ix86_mode_after): Make static.
6887
6888 2015-01-29  Richard Biener  <rguenther@suse.de>
6889
6890         PR tree-optimization/64844
6891         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
6892         dump cost model analysis.
6893         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
6894         Do not register adjusted load/store costs here.
6895
6896 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
6897             Uros Bizjak  <ubizjak@gmail.com>
6898
6899         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
6900         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
6901         using x86_use_pseudo_pic_reg.
6902         * config/i386/i386.c (ix86_conditional_register_usage): Remove
6903         support for fixed PIC register.
6904         (ix86_use_pseudo_pic_reg): Not static any more.
6905
6906 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
6907
6908         PR middle-end/64805
6909         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
6910         to avoid error in cgraph node verification.
6911
6912 2015-01-29  Marek Polacek  <polacek@redhat.com>
6913
6914         * doc/standards.texi: Reflect that the default for C is gnu11.
6915
6916 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
6917
6918         PR target/64761
6919         * reorg.c (switch_text_sections_between_p): New function.
6920         (relax_delay_slots): Call it when testing if the jump insn
6921         is removable.  Use targetm.can_follow_jump when testing if
6922         the conditional branch can follow an unconditional jump.
6923
6924 2015-01-27  Caroline Tice  <cmtice@google.com>
6925
6926         Committing VTV Cywin/Ming patch for Patrick Wollgast
6927         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
6928         if -fvtable-verify=preinit/std is used.
6929         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
6930         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
6931         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
6932         if -fvtable-verify=preinit/std is used.
6933         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
6934         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
6935         if -fvtable-verify=preinit/std is used.
6936         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
6937         * config/i386/mingw32.h (LIB_SPEC): Likewise.
6938         * varasm.c (assemble_variable): Add code to properly set the comdat
6939         section and name for the .vtable_map_vars section in case the
6940         target is PE or COFF.
6941
6942 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
6943
6944         PR ipa/64801
6945         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
6946         make sane BB profile.
6947         (cgraph_node::expand_thunk): Make sane BB profile.
6948         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
6949         * cgraph.h (init_lowered_empty_function): Update prototype.
6950         * config/i386/i386.c (make_resolver_func): Update call.
6951         * predict.c (gate): Disable branch prediction pass if
6952         profile is already there.
6953
6954 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
6955
6956         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
6957         * opth-gen.awk: Likewise.
6958         * common.opt: Mark flag_fp_contract_mode as Optimization.
6959
6960 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6961
6962         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
6963         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
6964
6965 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
6966
6967         PR target/64659
6968         * config/sh/predicates.md (atomic_arith_operand,
6969         atomic_logical_operand): Remove.
6970         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
6971         (atomic_arith_operand_0): New predicate.
6972         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
6973         Use atomic_arith_operand_0 for input values.
6974         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
6975         atomic_compare_and_swap<mode>_soft_gusa,
6976         atomic_compare_and_swap<mode>_soft_tcb,
6977         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
6978         arith_reg_operand instead of register_operand.
6979         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
6980         atomic_arith_operand_0 for newval input.
6981         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
6982         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
6983         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
6984         arith_reg_operand instead of register_operand.
6985         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
6986         fetchop_predicate_1, fetchop_constraint_1_llcs,
6987         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
6988         fetchop_constraint_1_imask): New code iterator attributes.
6989         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
6990         register_operand.  Use fetchop_predicate_1.
6991         (atomic_fetch_<fetchop_name>si_hard,
6992         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
6993         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
6994         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
6995         and arith_reg_operand instead of register_operand.  Use
6996         fetchop_predicate_1, fetchop_constraint_1_gusa.
6997         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
6998         and arith_reg_operand instead of register_operand.  Use
6999         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
7000         to allow R0 usage.
7001         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
7002         and arith_reg_operand instead of register_operand.  Use
7003         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
7004         to allow R0 usage.
7005         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
7006         register_operand.  Use atomic_logical_operand_1.
7007         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
7008         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
7009         arith_reg_operand instead of register_operand.
7010         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
7011         Use arith_reg_dest and arith_reg_operand instead of register_operand.
7012         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
7013         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
7014         register_operand.  Use fetchop_predicate_1.
7015         (atomic_<fetchop_name>_fetchsi_hard,
7016         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
7017         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
7018         fetchop_constraint_1_llcs.
7019         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
7020         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
7021         fetchop_constraint_1_gusa.
7022         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
7023         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
7024         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
7025         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
7026         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
7027         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
7028         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
7029         register_operand.  Use atomic_logical_operand_1.
7030         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
7031         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
7032         arith_reg_operand instead of register_operand.
7033         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
7034         arith_reg_operand instead of register_operand.  Use logical_operand
7035         and K08.  Adjust asm sequence to allow R0 usage.
7036         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
7037         arith_reg_operand instead of register_operand.  Use logical_operand
7038         and K08.
7039
7040 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
7041
7042         PR other/63504
7043         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
7044         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
7045         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
7046         only get_full_len HOST_WIDE_INTs from get_val () array rather than
7047         all bits in *val_wide.
7048
7049 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
7050
7051         * varpool.c (tls_model_names): Fix names.
7052         (varpool_node::dump): Dump tls- prefix for tls models.
7053
7054 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
7055             Bernd Schmidt  <bernds@codesourcery.com>
7056             Nathan Sidwell  <nathan@codesourcery.com>
7057
7058         * config/nvptx/mkoffload.c: New file.
7059         * config/nvptx/t-nvptx: Add build rules for it.
7060         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
7061         (extra_programs): Add mkoffload.
7062         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
7063         function.
7064         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
7065
7066 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
7067
7068         PR middle-end/64809
7069         * cfgexpand.c (reorder_operands): Skip debug gimples.
7070
7071 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
7072
7073         PR tree-optimization/64277
7074         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
7075         range info when possible to refine estimation.
7076
7077 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7078
7079         PR tree-optimization/64718
7080         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
7081         be a 16bit unsigned integer when n->range is 16.
7082         (bswap_replace): Convert src to that type if necessary for all bswap
7083         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
7084         set in pass_optimize_bswap::execute ().
7085
7086 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
7087
7088         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
7089         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
7090         integer and floating point variants.
7091         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
7092
7093 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
7094
7095         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
7096         for all vector modes.
7097
7098 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
7099
7100         PR bootstrap/64612
7101         * doc/sourcebuild.texi (comdat_group): Document.
7102
7103 2015-01-28  Terry Guo  <terry.guo@arm.com>
7104
7105         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
7106
7107 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
7108
7109         * toplev.c (print_version): Add param "show_global_state", and
7110         only print GGC and plugin information if it is true.
7111         (init_asm_output): Pass in "true" for the new param when calling
7112         print_version.
7113         (process_options): Likewise.
7114         (toplev::main): Likewise.
7115         * toplev.h (print_version): Add new param to decl.
7116
7117 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
7118
7119         PR ipa/60871
7120         PR ipa/64139
7121         * tree.c (lookup_binfo_at_offset): New function.
7122         (get_binfo_at_offset): Use it.
7123
7124 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
7125
7126         PR ipa/64282
7127         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
7128         on vtable being vtable.
7129
7130 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7131
7132         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
7133         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
7134         -mhotpatch= option.
7135         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
7136         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
7137         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
7138         Renamed.
7139         (s390_hotpatch_trampoline_halfwords_max): Renamed.
7140         (s390_hotpatch_hw_max): New name.
7141         (s390_hotpatch_trampoline_halfwords): Renamed.
7142         (s390_hotpatch_hw_before_label): New name.
7143         (get_hotpatch_attribute): Removed.
7144         (s390_hotpatch_hw_after_label): New name.
7145         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
7146         attribute.
7147         (s390_attribute_table): Ditto.
7148         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
7149         (s390_function_num_hotpatch_hw): New name.
7150         Remove special handling of inline functions and hotpatching.
7151         Return number of nops before and after the function label.
7152         (s390_can_inline_p): Removed.
7153         (s390_asm_output_function_label): Emit a configurable number of nops
7154         after the function label.
7155         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
7156         (TARGET_CAN_INLINE_P) Removed.
7157         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
7158
7159 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7160             Jiong Wang  <jiong.wang@arm.com>
7161
7162         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
7163         of scratch reg.
7164         (cb<optab><mode>1): Likewise.
7165         * config/aarch64/iterators.md (bcond): New define_code_attr.
7166
7167 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7168
7169         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
7170         memory accesses.
7171
7172 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7173
7174         * config/s390/s390.c (s390_register_move_cost): Increase costs for
7175         FPR->GPR moves.
7176
7177 2015-01-27  Richard Biener  <rguenther@suse.de>
7178
7179         * tree-vrp.c (update_value_range): Intersect the range with
7180         old recorded SSA name range information.
7181
7182 2015-01-27  Nick Clifton  <nickc@redhat.com>
7183
7184         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
7185         BC, DE and HL registers directly, not via AX.
7186         When decrementing the stack pointer by a large amount, transfer SP
7187         into AX and perform the subtraction there.
7188         (rl78_expand_epilogue): Perform the inverse of the above
7189         enhancements.
7190
7191 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7192
7193         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
7194
7195 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
7196             Yury Gribov  <y.gribov@samsung.com>
7197
7198         PR ubsan/64741
7199         * ubsan.c (ubsan_source_location): Refactor code.
7200         (ubsan_type_descriptor): Update type size. Refactor code.
7201
7202 2015-01-27  Richard Biener  <rguenther@suse.de>
7203
7204         PR tree-optimization/56273
7205         PR tree-optimization/59124
7206         PR tree-optimization/64277
7207         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
7208         from the first VRP pass.
7209
7210 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
7211
7212         PR ipa/64776
7213         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
7214         handle the first argument in the same loop as all the other arguments.
7215
7216         PR rtl-optimization/61058
7217         * jump.c (cleanup_barriers): Update basic block boundaries
7218         if BLOCK_FOR_INSN is non-NULL on PREV.
7219
7220 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
7221
7222         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
7223         bounds narrowing, already instrumented calls and calls to
7224         not instrumentable functions.
7225
7226 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
7227
7228         PR tree-optimization/64807
7229         * wide-int.cc (wi::divmod_internal): Clear
7230         b_dividend[dividend_blocks_needed].
7231
7232 2015-01-26  DJ Delorie  <dj@redhat.com>
7233
7234         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
7235         volatile memory references.
7236
7237 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
7238
7239         PR target/49263
7240         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
7241         remove_insn.
7242         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
7243         shifts if it already fits into K08.
7244
7245 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
7246
7247         PR ipa/64730
7248         * ipa-inline.c (inline_small_functions): Print "unknown" even
7249         if edge->call_stmt is non-NULL, but has builtins or unknown
7250         location.
7251
7252         PR middle-end/64421
7253         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
7254         with asterisk, skip the first character.
7255
7256 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
7257
7258         PR target/64806
7259         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
7260         order change.
7261
7262 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
7263
7264         PR target/64795
7265         * config/i386/i386.md (*movdi_internal): Also check operand 0
7266         to determine TYPE_LEA operand.
7267         (*movsi_internal): Ditto.
7268
7269 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
7270
7271         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
7272         OPTION_MASK_QUAD_MEMORY_ATOMIC.
7273
7274 2015-01-26  Renlin Li  <renlin.li@arm.com>
7275
7276         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
7277         the comment.
7278         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
7279         for higher part.
7280
7281 2015-01-26  Richard Biener  <rguenther@suse.de>
7282
7283         PR middle-end/64764
7284         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
7285         combining two BIT_AND_EXPR predicates.
7286
7287 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
7288
7289         PR bootstrap/64754
7290         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
7291
7292 2015-01-26  Terry Guo  <terry.guo@arm.com>
7293
7294         * config/arm/arm.c (arm_file_start): Update the assignment of
7295         Tag_ABI_HardFP_use.
7296
7297 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
7298
7299         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
7300         pipeline model.
7301         config/arm/arm.md: Include the new Cortex-A57 model.
7302         (generic_sched): Don't use generic_sched when tuning for
7303         Cortex-A57.
7304
7305 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
7306             Uros Bizjak  <ubizjak@gmail.com>
7307
7308         * config/i386/i386.c (get_builtin_code_for_version): Add
7309         support for BMI and BMI2 multiversion functions.
7310
7311 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7312
7313         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
7314         (extract_bit_field): Likewise.
7315         (extract_low_bits): Likewise.
7316         (expand_mult): Likewise.
7317         (expand_mult_highpart_adjust): Likewise.
7318
7319 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
7320
7321         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
7322         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
7323         * config/i386/i386.c (processor_model): Add
7324         M_INTEL_COREI7_BROADWELL.
7325         (arch_names_table): Add "broadwell".
7326
7327 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
7328
7329         PR target/49263
7330         PR target/53987
7331         PR target/64345
7332         PR target/59533
7333         PR target/52933
7334         PR target/54236
7335         PR target/51244
7336         * config/sh/sh-protos.h
7337         (sh_extending_set_of_reg::can_use_as_unextended_reg,
7338         sh_extending_set_of_reg::use_as_unextended_reg,
7339         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
7340         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
7341         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
7342         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
7343         (sh_treg_insns): New class.
7344         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
7345         (scope_counter): New class.
7346         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
7347         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
7348         sh_extending_set_of_reg::can_use_as_unextended_reg,
7349         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
7350         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
7351         sh_split_treg_set_expr): New functions.
7352         (addsubcosts): Handle treg_set_expr.
7353         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
7354         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
7355         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
7356         (sh_insn_operands_modified_between_p): Make non-static.
7357         * config/sh/predicates.md (zero_extend_movu_operand): Allow
7358         simple_mem_operand in addition to displacement_mem_operand.
7359         (zero_extend_operand): Don't allow zero_extend_movu_operand.
7360         (treg_set_expr, treg_set_expr_not_const01,
7361         arith_reg_or_treg_set_expr): New predicates.
7362         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
7363         arith_or_int_operand instead of logical_operand.  Convert to
7364         insn_and_split.  Try to optimize constant operand in splitter.
7365         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
7366         (*tstqi_t_zero): Delete.
7367         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
7368         (tstsi_t_and_not): Delete.
7369         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
7370         Convert to insn_and_split.
7371         (unnamed split, tstsi_t_zero_extract_xor,
7372         tstsi_t_zero_extract_subreg_xor_little,
7373         tstsi_t_zero_extract_subreg_xor_big): Delete.
7374         (*tstsi_t_shift_mask): New insn_and_split.
7375         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
7376         to recombine with surrounding insns when splitting.
7377         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
7378         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
7379         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
7380         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
7381         (*cbranch_div0s: Delete.
7382         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
7383         Try to recombine with surrounding insns when splitting.  Add operand
7384         order variants.
7385         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
7386         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
7387         *addc_r_r_msb, *addc_2r_msb): Delete.
7388         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
7389         order variant.
7390         (*addc_negreg_t): New insn_and_split.
7391         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
7392         Try to recombine with surrounding insns when splitting.
7393         Add operand order variants.
7394         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
7395         insn_and_split patterns.
7396         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
7397         surrounding insns when splitting.
7398         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
7399         (*rotcl): Likewise.  Add zero_extract variant.
7400         (*ashrsi2_31): New insn_and_split.
7401         (*negc): Convert to insn_and_split.  Use treg_set_expr.
7402         (*zero_extend<mode>si2_disp_mem): Update comment.
7403         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
7404         condition.
7405         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
7406         with surrounding insns when splitting.
7407         (any_treg_expr_to_reg): New insn_and_split.
7408         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
7409         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
7410         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
7411         *zero_extract_2): New single bit zero extract patterns.
7412         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
7413         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
7414         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
7415         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
7416         set destination.
7417         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
7418         register_operand for set source.
7419
7420 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
7421
7422         * i386.opt (prefetch_sse): New targetsave.
7423         * i386.c (ix86_function_specific_save): Save prefetch_sse.
7424         (ix86_function_specific_restore): Restore prefetch_sse and initialize
7425         ix86_cost/ix86_tune_cost.
7426
7427 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
7428
7429         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
7430         Support the JIT by using 0 as the language type.
7431
7432 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
7433
7434         PR target/64317
7435         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
7436         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
7437         (mark_regno_live, process_bb_lives): Pass new parameter value to
7438         make_hard_regno_born.
7439
7440 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
7441
7442         PR rtl-optimization/63637
7443         PR rtl-optimization/60663
7444         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
7445         if elt->cost is MAX_COST for ASM_OPERANDS.
7446         (find_sets_in_insn): Fix up comment typo.
7447         (cse_insn): Don't set src_volatile for all non-volatile
7448         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
7449         or with "memory" clobber.  Set elt->cost to MAX_COST
7450         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
7451         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
7452
7453 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
7454
7455         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
7456         alternative 1.
7457
7458 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
7459
7460         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
7461         libgcc/config/i386/elf-lib.h.
7462
7463 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
7464
7465         PR driver/64737
7466         * gcc.c (print_configuration): Don't print a blank line at the end
7467         here...
7468         (run_attempt): ... but here unstead.
7469
7470         PR middle-end/64734
7471         * omp-low.c (scan_sharing_clauses): Don't ignore
7472         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
7473         on target data/update constructs.
7474
7475 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7476
7477         PR target/50928
7478         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
7479         (DEBUG_RELOAD): Removed define.
7480         (m32c_limit_reload_class): Enable traces with if DEBUG0.
7481         (m32c_function_arg): Added a type cast.
7482         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
7483         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
7484         * config/m32c/bitops.md (andqi3_16): Likewise.
7485         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
7486         (push_a01_l): Likewise.
7487
7488 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
7489
7490         PR jit/64721
7491         * main.c (main): Construct toplev instances with init_signals=true.
7492         * toplev.c (general_init): Add param "init_signals", and use it to
7493         conditionalize the calls to signal and host_hooks.extra_signals.
7494         (toplev::toplev): Add param "init_signals".
7495         (toplev::main): When invoking general_init, pass m_init_signals
7496         to control whether signal-handlers are installed.
7497         * toplev.h (toplev::toplev): Add param "init_signals".
7498         (toplev::m_init_signals): New field.
7499
7500 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
7501
7502         PR jit/64722
7503         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
7504         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
7505         latter may be affected by the former (e.g. on i686).
7506
7507 2015-01-23  Martin Liska  <mliska@suse.cz>
7508
7509         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
7510         false positive during profiledbootstrap.
7511
7512 2015-01-23  Tom de Vries  <tom@codesourcery.com>
7513
7514         PR libgomp/64672
7515         * lto-opts.c (lto_write_options): Output non-explicit conservative
7516         -fno-openacc.
7517         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
7518         (append_compiler_options): Pass -fopenacc through.
7519
7520 2015-01-23  Tom de Vries  <tom@codesourcery.com>
7521
7522         PR libgomp/64707
7523         * lto-opts.c (lto_write_options): Output non-explicit conservative
7524         -fno-openmp.
7525         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
7526         (append_compiler_options): Pass -fopenmp through.
7527
7528 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
7529
7530         PR debug/64511
7531         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
7532         GTY markup.
7533
7534         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
7535         * diagnostic.def (DK_ICE_NOBT): New kind.
7536         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
7537         like DK_ICE, but never print backtrace.
7538         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
7539         (internal_error_no_backtrace): New function.
7540         * gcc.c (execute): Use internal_error_no_backtrace instead of
7541         internal_error.
7542
7543 2015-01-22  Jeff Law  <law@redhat.com>
7544
7545         PR target/52076
7546         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
7547         improve code density for small immediate to memory case.
7548         (insv): Better handle bitfield assignments when the field is
7549         being set to all ones.
7550         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
7551         operand predicate.
7552
7553 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7554             Jakub Jelinek  <jakub@redhat.com>
7555
7556         PR middle-end/64729
7557         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
7558         for !TARGET_LIBC_PROVIDES_SSP version and
7559         -fstack-protector-{all,strong,explicit} otherwise.
7560         * config/freebsd.h (LINK_SSP_SPEC): Handle
7561         -fstack-protector-{strong,explicit}.
7562
7563 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
7564             H.J. Lu  <hongjiu.lu@intel.com>
7565
7566         PR ipa/64694
7567         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
7568         heap.
7569
7570 2015-01-22  Wei Mi  <wmi@google.com>
7571
7572         PR rtl-optimization/64557
7573         * dse.c (record_store): Call get_addr for mem_addr.
7574         (check_mem_read_rtx): Likewise.
7575
7576 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
7577
7578         * fold-const.c (const_binop): Add early return for non-tcc_binary.
7579
7580 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
7581
7582         * toplev.c (init_local_tick): Process the failure when read
7583         fails for random_seed.
7584
7585         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
7586         'pretty_name' to avoid memory overflow.
7587
7588 2015-01-22  Richard Biener  <rguenther@suse.de>
7589
7590         PR middle-end/64728
7591         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
7592         abnormal coalescing on undefined SSA names.
7593
7594 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
7595
7596         PR target/64688
7597         PR target/64477
7598         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
7599         for alternative 3.
7600         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
7601
7602 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
7603
7604         PR middle-end/63325
7605         * fold-const.c (fold_checksum_tree): Don't include value of
7606         expr->decl_with_vis.symtab_node in the checksum.
7607
7608 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7609
7610         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
7611
7612 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
7613
7614         PR driver/64690
7615         * gcc.c (insert_comments): New function.
7616         (try_generate_repro): Call it.
7617         (append_text): Removed.
7618
7619 2015-01-22  Richard Biener  <rguenther@suse.de>
7620
7621         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
7622         with IL incompatible options.  Properly honor user optimize
7623         attributes.
7624
7625 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
7626
7627         PR rtl-optimization/64682
7628         * combine.c (distribute_notes): When moving a death note for
7629         a register that is set in the new I2, make sure to put it
7630         before that new I2.
7631
7632 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
7633
7634         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
7635         not TARGET_DEFAULT.
7636
7637 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
7638
7639         PR debug/64511
7640         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
7641         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
7642         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
7643
7644         PR sanitizer/64706
7645         * doc/invoke.texi (-fsanitize=vptr): Document.
7646
7647         PR rtl-optimization/62078
7648         * dse.c: Include cfgcleanup.h.
7649         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
7650         anything call purge_all_dead_edges and cleanup_cfg at the end
7651         of the pass.
7652
7653 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
7654
7655         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
7656         edges.
7657
7658 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7659
7660         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
7661         decl attribute.
7662
7663 2015-01-21  David Sherwood  <david.sherwood@arm.com>
7664             Tejas Belagod <Tejas.Belagod@arm.com>
7665
7666         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
7667         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
7668         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
7669         Removed.
7670
7671 2015-01-21  David Sherwood  <david.sherwood@arm.com>
7672             Tejas Belagod <Tejas.Belagod@arm.com>
7673
7674         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
7675         (aarch64_reverse_mask): New decls.
7676         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
7677         (insn_count): New mode_attr.
7678         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
7679         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
7680         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
7681         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
7682         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
7683         (aarch64_simd_st4): New patterns.
7684         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
7685         (aarch64_reverse_mask): New functions.
7686
7687 2015-01-21  Richard Sandiford  <richard.sandiford@arm.com>
7688
7689         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
7690         Declare.
7691         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
7692         addressing modes for BE.
7693         (aarch64_print_operand): Add 'R' specifier.
7694         (aarch64_simd_disambiguate_copy): Delete.
7695         (aarch64_simd_emit_reg_reg_move): New function.
7696         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
7697         in define_splits for structural moves.
7698         (mov<mode>): Use less restrictive predicates.
7699         (*aarch64_mov<mode>): Simplify and only allow for LE.
7700         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
7701
7702 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
7703
7704         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
7705
7706 2015-01-21  Richard Henderson  <rth@redhat.com>
7707
7708         PR target/64669
7709         * ccmp.c (used_in_cond_stmt_p): Remove.
7710         (expand_ccmp_expr): Don't use it.
7711
7712 2015-01-21  Nick Clifton  <nickc@redhat.com>
7713
7714         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
7715         PARALLELs.
7716
7717 2015-01-21  Richard Biener  <rguenther@suse.de>
7718
7719         PR middle-end/64313
7720         * tree-core.h (builtin_info, builtin_info_type): Turn from
7721         an object with two arrays into an array of an object with
7722         decl and two flags, implicit_p and declared_p.
7723         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
7724         set_builtin_decl, set_builtin_decl_implicit_p,
7725         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
7726         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
7727         * builtins.c (builtin_info): Adjust.
7728         * gimplify.c (gimplify_addr_expr): References to builtins
7729         that have been declared by the user makes them eligible for
7730         use by the compiler.  Call set_builtin_decl_implicit_p on them.
7731
7732 2015-01-20  Jeff Law  <law@redhat.com>
7733
7734         PR target/59946
7735         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
7736         allow pc-relative addresses in operand predicates or constraints.
7737
7738 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
7739
7740         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
7741         neon on aarch32 processors for stringops.
7742
7743 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
7744
7745         PR ipa/63576
7746         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
7747
7748 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
7749
7750         PR lto/45375
7751         * ipa-inline.c: Include lto-streamer.h
7752         (report_inline_failed_reason): Output source file differences and
7753         flags on optimization/target node mismatch.
7754         (can_inline_edge_p): Consider caller to be the outer inline function;
7755         be less restrictive about matching opimize and optimize_size attributes.
7756         (inline_account_function_p): Break out from ...
7757         (inline_small_functions): ... here.
7758         * ipa-inline-transform.c (clone_inlined_nodes): Use
7759         inline_account_function_p.
7760         (inline_call): Use optimize attribution; use inline_account_function_p.
7761         (inline_transform): Use opt_for_fn.
7762         * ipa-inline.h (inline_account_function_p): Declare.
7763
7764 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
7765
7766         PR debug/64663
7767         * dwarf2out.c (decl_piece_node): Don't put bitsize into
7768         mode if bitsize <= 0.
7769         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
7770         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
7771         sizes and positions.
7772
7773 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
7774
7775         * config/nios2/nios2.c (nios2_asm_file_end): Implement
7776         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
7777         needed.
7778         (TARGET_ASM_FILE_END): Define.
7779
7780 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
7781
7782         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
7783         (struct tune_params): Use the enum.
7784         * arm.c (arm_*_tune): Update.
7785         (arm_option_override): Update.
7786
7787 2015-01-20  Richard Biener  <rguenther@suse.de>
7788
7789         PR ipa/64684
7790         * ipa-reference.c (add_static_var): Inline ...
7791         (analyze_function): ... here after splitting out from ...
7792         (is_proper_for_analysis): ... this.
7793
7794 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
7795
7796         PR target/64149
7797         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
7798         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
7799         replace the conditional with it's true branch.
7800         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
7801         (arm_lra_p): Remove.
7802
7803 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
7804
7805         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
7806
7807 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7808
7809         * config/tilegx/mul-tables.c: Move symtab.h include after
7810         coretypes.h include.
7811         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
7812         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
7813         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
7814         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
7815         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
7816
7817 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
7818
7819         PR bootstrap/64676
7820         Revert:
7821         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
7822
7823         PR rtl-optimization/64081
7824         * loop-iv.c (def_pred_latch_p): New function.
7825         (latch_dominating_def): Allow specific cases with non-single
7826         definitions.
7827         (iv_get_reaching_def): Likewise.
7828         (check_complex_exit_p): New function.
7829         (check_simple_exit): Use check_complex_exit_p to allow certain cases
7830         with exits not executing on any iteration.
7831
7832 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
7833
7834         PR lto/45375
7835         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
7836         to set branch cost.
7837
7838 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
7839
7840         PR lto/45375
7841         * i386.c (gate): Check flag_expensive_optimizations and
7842         optimize_size.
7843         (ix86_option_override_internal): Drop optimize_size condition
7844         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
7845         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
7846         MASK_PREFER_AVX128.
7847         (ix86_avx256_split_vector_move_misalign,
7848         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
7849         * sse.md (all uses of TARGET_PREFER_AVX128): Add
7850         optimize_insn_for_speed_p check.
7851
7852 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
7853
7854         * config/mips/mips.h (FP_ASM_SPEC): New define.
7855         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
7856         instead.
7857
7858 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
7859
7860         PR target/53988
7861         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
7862         nullptr for insn when reaching the first insn.
7863         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
7864         (sh_insn_operands_modified_between_p): Add nullptr check.
7865         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
7866         sign extending mem load if the insn contains any UNSPEC or
7867         UNSPEC_VOLATILE.
7868
7869 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
7870
7871         * params.def (inline-unit-growth): Drop to 15%.
7872         * invoke.texi (inline-unit-growth): Document change.
7873
7874 2015-01-19  Martin Liska  <mliska@suse.cz>
7875
7876         PR ipa/64668
7877         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
7878         function for second argument of OBJ_TYPE_REF.
7879
7880 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
7881
7882         PR ipa/64218
7883         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
7884         whether function is an alias.
7885
7886 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
7887
7888         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
7889         cases.
7890
7891 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
7892
7893         PR rtl-optimization/64671
7894         * lra-remat.c (operand_to_remat): Don't consider jump and call
7895         insns.
7896
7897 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
7898
7899         PR target/59828
7900         * config/rs6000/default64.h: Include rs6000-cpus.def.
7901         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
7902         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
7903         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
7904         and POWER8.
7905         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
7906         POWER8.
7907         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
7908         pseudo-op to specify assembler dialect.
7909
7910 2015-01-19  Martin Liska  <mliska@suse.cz>
7911
7912         PR ipa/64664
7913         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
7914         Handle safe potentially removed nodes during filtering.
7915
7916 2015-01-19  Martin Liska  <mliska@suse.cz>
7917
7918         * doc/extend.texi (no_icf): Add new attribute description.
7919         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
7920         where the pass attempts to merge a function with no_icf attribute.
7921
7922 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7923
7924         PR target/64532
7925         * doc/md.texi (ARM Options): Document register constraints.
7926
7927 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
7928             Andrew Pinski  <apinski@cavium.com>
7929
7930         PR target/64304
7931         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
7932         (ashl<mode>3): Don't expand if operands[2] is not constant.
7933
7934 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7935
7936         PR target/64448
7937         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
7938         Match xor-and-xor RTL pattern.
7939
7940 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
7941
7942         PR rtl-optimization/64081
7943         * loop-iv.c (def_pred_latch_p): New function.
7944         (latch_dominating_def): Allow specific cases with non-single
7945         definitions.
7946         (iv_get_reaching_def): Likewise.
7947         (check_complex_exit_p): New function.
7948         (check_simple_exit): Use check_complex_exit_p to allow certain cases
7949         with exits not executing on any iteration.
7950
7951 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
7952
7953         * common.opt (fgraphite): Fix a typo.
7954
7955 2015-01-19  Felix Yang  <felix.yang@huawei.com>
7956
7957         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
7958         pattern.
7959         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
7960         uminp, smax_nanp, smin_nanp): New builtins.
7961         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
7962         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
7963         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
7964         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
7965         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
7966         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
7967         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
7968         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
7969         vpminnms_f32): Rewrite using builtin functions.
7970
7971 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
7972
7973         PR libgomp/64625
7974         * omp-low.c (offload_symbol_decl): Remove variable.
7975         (get_offload_symbol_decl): Remove function.
7976         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
7977         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
7978         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
7979         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
7980         BUILT_IN_GOACC_UPDATE don't pass it at all.
7981
7982 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
7983
7984         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
7985         callers.
7986
7987 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
7988
7989         * ipa-chkp.c (chkp_produce_thunks): Add early param
7990         to split thunks production into two passes.  Keep
7991         'always_inline' function bodies after the first pass.
7992         (pass_data_ipa_chkp_early_produce_thunks): New.
7993         (pass_ipa_chkp_early_produce_thunks): New.
7994         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
7995         chkp_produce_thunks signature.
7996         (make_pass_ipa_chkp_early_produce_thunks): New.
7997         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
7998         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
7999         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
8000
8001 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
8002
8003         * cgraph.c (cgraph_node::dump): Dump profile flags.
8004
8005 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
8006
8007         PR target/64652
8008         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
8009         reg appear first in the parallel.
8010
8011 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
8012
8013         * ipa-reference.c (set_reference_optimization_summary,
8014         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
8015         disabled.
8016         (ignore_module_statics): New static var.
8017         (propagate_bits): If ipa-reference is disabled, do not look into local
8018         properties.
8019         (analyze_function): Disable analysis when ipa_reference is disabled.
8020         (generate_summary): Do not dump when reference is disabled;
8021         collect vars accessed from functions with ipa-reference disabled.
8022         (get_read_write_all_from_node): When ipa-reference is disabled, use the
8023         node flags.
8024         (gate): Enable for LTO.
8025         (ignore_edge_p): New function.
8026         (propagate): Skip functions w/o ipa-reference analysis.
8027         * optc-save-gen.awk: Handle optimize_debug correctly.
8028         * opth-gen.awk: Likewise.
8029         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
8030         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
8031         fira-share-save-slots, fira-share-spill-slots,
8032         fmodulo-sched-allow-regmoves, fpartial-inlining,
8033         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
8034         ftracer, ftree-parallelize-loops, fassociative-math,
8035         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
8036         Optimization
8037         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
8038         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
8039         Optimization.
8040         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
8041         Fix for IPA.
8042
8043 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
8044
8045         PR ipa/64378
8046         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
8047         flag correctly.
8048         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
8049
8050 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
8051
8052         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
8053         Remove duplicate option listings.
8054
8055 2015-01-18  Felix Yang  <felix.yang@huawei.com>
8056
8057         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
8058         (autofdo_source_profile::get_callsite_total_count,
8059         function_instance::get_function_instance_by_decl,
8060         string_table::get_index, string_table::get_index_by_decl,
8061         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
8062         Fix comment typos. Reformatting and minor code rearrangement.
8063
8064 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
8065
8066         * config/rs6000/rs6000.md (probe_stack): Delete.
8067         (probe_stack_address): New.
8068
8069 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
8070
8071         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
8072         to test for 32-bit ABIs, not !TARGET_POWERPC64.
8073
8074 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
8075
8076         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
8077         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
8078         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
8079         snafu.
8080         (rs6000_libcall_value): Use the new function.
8081
8082 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
8083
8084         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
8085
8086 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
8087
8088         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
8089         implement a more precise life analysis for it during backward scan.
8090
8091 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
8092
8093         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
8094
8095 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
8096
8097         PR rtl-optimization/52773
8098         * calls.c (emit_library_call_value): When pushing arguments use
8099         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
8100         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
8101         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
8102
8103 2015-01-17  Jeff Law  <law@redhat.com>
8104
8105         PR rtl-optimization/32790
8106         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
8107         not ZERO_EXTEND in SET_DESTs.
8108
8109 2015-01-17  Alan Modra  <amodra@gmail.com>
8110
8111         * cprop.c (do_local_cprop): Revert last change.
8112
8113 2015-01-16  DJ Delorie  <dj@redhat.com>
8114             Nick Clifton  <nickc@redhat.com>
8115
8116         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
8117         (addhi3_real): Likewise.  Fix [HL+0] syntax.
8118         (subqi3_real): Likewise.
8119         (subhi3_real): Likewise.
8120         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
8121         (cbranchhi4_real): Likewise.
8122         (cbranchhi4_real_inverted): Likewise.
8123         (cbranchsi4_real_lt): Likewise.
8124         (cbranchsi4_real_ge): Likewise.
8125         (cbranchsi4_real_ge): Likewise.
8126         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
8127         (sub<mode>3_virt): Likewise.
8128         (cbranchqi4_virt): Likewise.
8129         (cbranchhi4_virt): Likewise.
8130         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
8131         always use '[reg+imm]' even when imm is zero.
8132         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
8133         (rl78_general_operand): New.
8134         (rl78_nonimmediate_operand): New.
8135         (rl78_nonfar_operand): Use them.
8136         (rl78_nonfar_nonimm_operand): Likewise.
8137         (rl78_stack_based_mem): Fix.
8138         * config/rl78/constraints.md (Ibqi): New.
8139         (IBqi): New.
8140         (Wsa): New.
8141         (Wsf): New.
8142         (Cs1): Fix.
8143         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
8144         (iorqi3): Likewise.
8145         (xorqi3): Likewise.
8146         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
8147
8148         * config/rl78/constrains (Qs8): New constraint.
8149         * config/rl78/rl78.c (rl78_flags_already_set): New function.
8150         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
8151         * config/rl78/rl78-real.md (update_Z): New attribute.
8152         Update patterns to set it.
8153         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
8154         shorter compare and branch sequence can be used.
8155         (cbranchhi4_real): Likewise.
8156         (cbranchhi4_real_inverted): Likewise.
8157
8158         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
8159         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
8160         address space.
8161         * config/rl78/rl78.c (rl78_get_name_encoding): New.
8162         (rl78_option_override): Allow -mes0 only if C.
8163         (characterize_address): Support subregs of symbol_refs.
8164         (rl78_addr_space_address_mode): Move.  Add __near.
8165         (rl78_far_p): Likewise.
8166         (rl78_addr_space_pointer_mode): Likewise.
8167         (rl78_as_legitimate_address): Likewise.
8168         (rl78_addr_space_subset_p): Likewise.
8169         (rl78_addr_space_convert): Likewise.
8170         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
8171         symbols with -mes0.
8172         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
8173         addressing.
8174         (rl78_alloc_physical_registers_op1): Change logic to prefer
8175         symbol[BC] addressing.
8176         (frodata_section): New.
8177         (rl78_asm_init_sections): Initialize it.
8178         (rl78_select_section): Put __far readonly symbols in .frodata.
8179         (rl78_make_type_far): New.
8180         (rl78_insert_attributes): Force all readonly symbols to be
8181         __far when -mes0.
8182         (rl78_asm_out_integer): New.
8183         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
8184         * config/rl78/rl78.opt (-mes0): New.
8185
8186         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
8187         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
8188         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
8189         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
8190         (rl78_saddr_p): New.
8191         (rl78_output_aligned_common): New.
8192         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
8193         (rl78_handle_saddr_attribute): New.
8194         (rl78_handle_naked_attribute): New.
8195         (rl78_attribute_table): Add saddr.
8196         (rl78_print_operand_1): Don't print '!' on saddr operands.
8197         (rl78_print_operand_1): Strip encodings.
8198         (rl78_sfr_p): New.
8199         (rl78_strip_name_encoding): New.
8200         (rl78_attrlist_to_encoding): New.
8201         (rl78_encode_section_info): New.
8202         (rl78_asm_init_sections): New.
8203         (rl78_select_section): New.
8204         (rl78_output_labelref): New.
8205         (rl78_output_aligned_common): New.
8206         (rl78_asm_out_integer): New.
8207         (rl78_asm_ctor_dtor): New.
8208         (rl78_asm_constructor): New.
8209         (rl78_asm_destructor): New.
8210
8211         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
8212         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
8213         (transcode_memory_rtx): Update.
8214         (rl78_expand_epilogue): Use A_REG instead of 0.
8215
8216 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
8217
8218         * config/arm/arm-protos.h (struct tune_params): New field
8219         sched_autopref_queue_depth.
8220         * config/arm/arm.c (sched-int.h): Include header.
8221         (arm_first_cycle_multipass_dfa_lookahead_guard,)
8222         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
8223         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
8224         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
8225         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
8226         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
8227         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
8228         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
8229         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
8230         * config/arm/t-arm (arm.o): Update.
8231         * haifa-sched.c (update_insn_after_change): Update.
8232         (rank_for_schedule): Use auto-prefetcher model, if requested.
8233         (autopref_multipass_init): New static function.
8234         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
8235         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
8236         variable for debug dumps.
8237         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
8238         (autopref_multipass_dfa_lookahead_guard): New global function that
8239         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
8240         (init_h_i_d): Update.
8241         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
8242         * sched-int.h (enum autopref_multipass_data_status): New const enum.
8243         (autopref_multipass_data_): Structure for auto-prefetcher data.
8244         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
8245         (struct _haifa_insn_data:autopref_multipass_data): New field.
8246         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
8247         (autopref_multipass_dfa_lookahead_guard): Declare.
8248
8249 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
8250
8251         * rtlanal.c (get_base_term): Handle SCRATCH.
8252
8253 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
8254
8255         * config/aarch64/aarch64.c
8256         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
8257         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
8258         * config/arm/arm.c
8259         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
8260         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
8261
8262 2015-01-17  Alan Modra  <amodra@gmail.com>
8263
8264         * cprop.c (do_local_cprop): Disallow replacement of fixed
8265         hard registers.
8266
8267 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8268
8269         PR target/62066
8270         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
8271         early return 0.
8272
8273 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8274
8275         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
8276         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
8277
8278 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8279
8280         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
8281         * config/arm/thumb1.md: ... Here.
8282
8283 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
8284
8285         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
8286         TImode for TARGET_32BIT.
8287
8288 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
8289
8290         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
8291         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
8292         as ...
8293         (rs6000_abi_word_mode): New function.
8294
8295 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
8296
8297         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
8298         instead of UNITS_PER_WORD to describe the size of stack slots.
8299
8300 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
8301
8302         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
8303         as rs6000_promote_function_mode.  Move comment to there.
8304         (rs6000_promote_function_mode): New function.
8305
8306 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
8307
8308         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
8309         -mpowerpc64 is active.
8310
8311 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
8312
8313         PR middle-end/64353
8314         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
8315         virtuals on start.
8316
8317 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
8318
8319         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
8320         introduced in revision 219724.
8321
8322 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8323             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8324
8325         PR target/64263
8326         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
8327         destination is not a GP reg.
8328         (*movdi_aarch64): Likewise.
8329
8330 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
8331
8332         PR target/64623
8333         * config/rs6000/default64.h: Revert ISA change.
8334
8335 2015-01-16  Richard Biener  <rguenther@suse.de>
8336
8337         PR middle-end/64614
8338         * tree-ssa-uninit.c: Include tree-cfg.h.
8339         (MAX_SWITCH_CASES): New define.
8340         (convert_control_dep_chain_into_preds): Handle switch statements.
8341         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
8342         (normalize_one_pred_1): Do not split bit-manipulations.
8343         Record (x & CST).
8344
8345 2015-01-16  Richard Biener  <rguenther@suse.de>
8346
8347         PR tree-optimization/64568
8348         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
8349         complex load rewriting for TARGET_MEM_REFs.
8350
8351 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
8352
8353         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
8354
8355 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
8356
8357         PR target/64149
8358         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
8359         variable.
8360         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
8361         (aarch64_lra_p): Remove.
8362
8363 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
8364
8365         PR target/64363
8366         * ipa-chkp.h (chkp_instrumentable_p): New.
8367         * ipa-chkp.c: Include tree-inline.h.
8368         (chkp_instrumentable_p): New.
8369         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
8370         Fix processing of not instrumentable functions.
8371         (chkp_versioning): Use chkp_instrumentable_p. Warn about
8372         not instrumentable functions.
8373         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
8374         chkp_instrumentable_p.
8375         * tree-inline.h (copy_forbidden): New.
8376         * tree-inline.c (copy_forbidden): Not static anymore.
8377
8378 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8379
8380         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
8381         ptr1, ptr2 unused.
8382
8383 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
8384
8385         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
8386         type OP_OUT to OP_INOUT.
8387
8388 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
8389
8390         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
8391         (high x) y) to y if x and y have the same base.
8392
8393 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
8394
8395         * config/arm/cortex-a57.md: New.
8396         * config/aarch64/aarch64.md: Include it.
8397         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
8398         * config/aarch64/aarch64-tune.md: Regenerate.
8399
8400 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
8401
8402         PR target/64015
8403         * ccmp.c (expand_ccmp_next): New function.
8404         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
8405         and compare insn sequence.
8406         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
8407         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
8408         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
8409         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
8410         (*ccmp_ior): Changed to ccmp_ior<mode>.
8411         (cmp<mode>): New pattern.
8412         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
8413         parameters.
8414         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
8415
8416 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
8417
8418         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
8419         _mm256_bsrli_epi128): New.
8420         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
8421
8422 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
8423
8424         * expmed.c (store_bit_field_using_insv): Improve warning message.
8425         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
8426
8427 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
8428
8429         PR rtl-optimization/64011
8430         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
8431         there is partial overflow.
8432
8433 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
8434
8435         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
8436         prototype.
8437         (nds32_expand_epilogue_v3pop): Likewise.
8438         * config/nds32/nds32.md (sibcall): Define this for sibling call
8439         optimization.
8440         (sibcall_register): Likewise.
8441         (sibcall_immediate): Likewise.
8442         (sibcall_value): Likewise.
8443         (sibcall_value_register): Likewise.
8444         (sibcall_value_immediate): Likewise.
8445         (sibcall_epilogue): Likewise.
8446         (epilogue): Pass false to indicate this is not a sibcall epilogue.
8447         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
8448         (nds32_expand_epilogue_v3pop): Likewise.
8449
8450 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
8451
8452         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
8453         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
8454         (return_internal): New.
8455         (return): Define this named pattern.
8456         (simple_return): Define this named pattern.
8457         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
8458         pattern instead of unspec_volatile_func_return.
8459         (nds32_expand_epilogue_v3pop): Likewise.
8460         (nds32_can_use_return_insn): New function.
8461
8462 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
8463
8464         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
8465         * config/nds32/nds32.md (pop25return): New.
8466         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
8467         pop25return pattern.
8468
8469 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
8470
8471         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
8472         -mforbid-fp-as-gp, and -mex9 options.
8473
8474 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
8475
8476         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
8477         remove -mgp-direct option.
8478
8479 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
8480
8481         * doc/invoke.texi (--param early-inlining-insns): Update default value.
8482         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
8483
8484 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
8485
8486         * ipa-inline.c (inline_small_functions): Work around hints
8487         cache issue.
8488
8489 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
8490
8491         PR target/59710
8492         * doc/invoke.texi (Option Summary): Document new Nios II
8493         -mgpopt= syntax.
8494         (Nios II Options): Likewise.
8495         * config/nios2/nios2.opt: Add -mgpopt= option support.
8496         Modify existing -mgpopt and -mno-gpopt options to be aliases.
8497         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
8498         * config/nios2/nios2.c (nios2_option_override): Adjust
8499         -mgpopt defaulting.
8500         (nios2_in_small_data_p): Return true for explicit small data
8501         sections even with -G0.
8502         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
8503         option choices.
8504
8505 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
8506
8507         PR ipa/64612
8508         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
8509         of comdat locals.
8510         (inline_call): Fix removal of aliases.
8511
8512 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
8513
8514         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
8515         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
8516         * opts.c (common_handle_option): Add -fsanitize=vptr.
8517         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
8518         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
8519         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
8520         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
8521         (ubsan_expand_vptr_ifn): New prototype.
8522         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
8523         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
8524         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
8525         expand_LOOP_VECTORIZED): Make argument nameless, remove
8526         ATTRIBUTE_UNUSED.
8527         (expand_UBSAN_VPTR): New function.
8528         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
8529         in fn spec.
8530         (UBSAN_VPTR): New internal function.
8531         * sanopt.c (tree_map_traits): Renamed to ...
8532         (sanopt_tree_map_traits): ... this.
8533         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
8534         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
8535         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
8536         (maybe_optimize_ubsan_vptr_ifn): New function.
8537         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
8538         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
8539         -fsanitize=vptr.
8540         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
8541         internal calls like pure functions for aliasing, even when they
8542         have other side-effects that prevent making them ECF_PURE.
8543         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
8544         (ubsan_expand_vptr_ifn): New function.
8545
8546 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
8547
8548         PR rtl-optimization/64110
8549         * stmt.c (parse_output_constraint): Process '^' and '$'.
8550         (parse_input_constraint): Ditto.
8551         * lra-constraints.c (process_alt_operands): Process the new
8552         constraints.
8553         * ira-costs.c (record_reg_classes): Process the new constraint
8554         '^'.
8555         * genoutput.c (indep_constraints): Add '^' and '$'.
8556         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
8557         * doc/md.texi: Add description of the new constraints.
8558
8559 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
8560             Bernd Schmidt  <bernds@codesourcery.com>
8561             Cesar Philippidis  <cesar@codesourcery.com>
8562             James Norris  <jnorris@codesourcery.com>
8563             Tom de Vries  <tom@codesourcery.com>
8564             Ilmir Usmanov  <i.usmanov@samsung.com>
8565             Dmitry Bocharnikov  <dmitry.b@samsung.com>
8566             Evgeny Gavrin  <e.gavrin@samsung.com>
8567             Jakub Jelinek  <jakub@redhat.com>
8568
8569         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
8570         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
8571         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
8572         New function types.
8573         * builtins.c: Include "gomp-constants.h".
8574         (expand_builtin_acc_on_device): New function.
8575         (expand_builtin, is_inexpensive_builtin): Handle
8576         BUILT_IN_ACC_ON_DEVICE.
8577         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
8578         New macros.
8579         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
8580         flag_openmp.
8581         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
8582         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
8583         i386/intelmic-offload.h.
8584         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
8585         to libgomp and its dependencies.
8586         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
8587         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
8588         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
8589         * config/ia64/hpux.h (LIB_SPEC): Likewise.
8590         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
8591         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
8592         * doc/generic.texi: Update for OpenACC changes.
8593         * doc/gimple.texi: Likewise.
8594         * doc/invoke.texi: Likewise.
8595         * doc/sourcebuild.texi: Likewise.
8596         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
8597         GF_OMP_FOR_KIND_OACC_LOOP.
8598         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
8599         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
8600         GF_OMP_TARGET_KIND_OACC_UPDATE,
8601         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
8602         Dump more data.
8603         * gimple.c: Update comments for OpenACC changes.
8604         * gimple.def: Likewise.
8605         * gimple.h: Likewise.
8606         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
8607         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
8608         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
8609         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
8610         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
8611         appropriate place.
8612         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
8613         * gimplify.c: Include "gomp-constants.h".
8614         Update comments for OpenACC changes.
8615         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
8616         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
8617         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
8618         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
8619         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
8620         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
8621         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
8622         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
8623         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
8624         OMP_CLAUSE_SEQ.
8625         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
8626         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
8627         OMP_CLAUSE_SET_MAP_KIND.
8628         (gimplify_oacc_cache): New function.
8629         (gimplify_omp_for): Handle OACC_LOOP.
8630         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
8631         OACC_DATA.
8632         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
8633         OACC_EXIT_DATA, OACC_UPDATE.
8634         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
8635         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
8636         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
8637         (gimplify_body): Consider flag_openacc next to flag_openmp.
8638         * lto-streamer-out.c: Include "gomp-constants.h".
8639         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
8640         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
8641         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
8642         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
8643         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
8644         (BUILT_IN_ACC_ON_DEVICE): New builtins.
8645         * omp-low.c: Include "gomp-constants.h".
8646         Update comments for OpenACC changes.
8647         (struct omp_context): Add reduction_map, gwv_below, gwv_this
8648         members.
8649         (extract_omp_for_data, use_pointer_for_field, install_var_field)
8650         (new_omp_context, delete_omp_context, scan_sharing_clauses)
8651         (create_omp_child_function, scan_omp_for, scan_omp_target)
8652         (check_omp_nesting_restrictions, lower_reduction_clauses)
8653         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
8654         Update for OpenACC changes.
8655         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
8656         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
8657         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
8658         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
8659         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
8660         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
8661         OMP_CLAUSE_MAP_*.
8662         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
8663         Handle GF_OMP_FOR_KIND_OACC_LOOP.
8664         (expand_omp_target, lower_omp_target): Handle
8665         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
8666         GF_OMP_TARGET_KIND_OACC_UPDATE,
8667         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
8668         GF_OMP_TARGET_KIND_OACC_DATA.
8669         (pass_expand_omp::execute, execute_lower_omp)
8670         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
8671         flag_openmp.
8672         (offload_symbol_decl): New variable.
8673         (oacc_get_reduction_array_id, oacc_max_threads)
8674         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
8675         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
8676         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
8677         (oacc_gimple_assign, oacc_initialize_reduction_data)
8678         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
8679         functions.
8680         (is_targetreg_ctx): Remove function.
8681         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
8682         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
8683         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
8684         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
8685         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
8686         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
8687         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
8688         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
8689         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
8690         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
8691         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
8692         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
8693         * tree-core.h: Update comments for OpenACC changes.
8694         (enum omp_clause_map_kind): Remove.
8695         (struct tree_omp_clause): Change type of map_kind member from enum
8696         omp_clause_map_kind to unsigned char.
8697         * tree-inline.c: Update comments for OpenACC changes.
8698         * tree-nested.c: Likewise.  Include "gomp-constants.h".
8699         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
8700         (convert_tramp_reference_stmt, convert_gimple_call): Update for
8701         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
8702         OMP_CLAUSE_SET_MAP_KIND.
8703         * tree-pretty-print.c: Include "gomp-constants.h".
8704         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
8705         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
8706         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
8707         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
8708         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
8709         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
8710         instead of OMP_CLAUSE_MAP_*.
8711         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
8712         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
8713         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
8714         * tree-streamer-in.c: Include "gomp-constants.h".
8715         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
8716         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
8717         * tree-streamer-out.c: Include "gomp-constants.h".
8718         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
8719         OMP_CLAUSE_MAP_*.
8720         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
8721         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
8722         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
8723         * tree.c (omp_clause_num_ops): Update accordingly.
8724         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
8725         Likewise.
8726         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
8727         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
8728         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
8729         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
8730         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
8731         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
8732         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
8733         (OMP_CLAUSE_SET_MAP_KIND): New macro.
8734         * varpool.c (varpool_node::get_create): Consider flag_openacc next
8735         to flag_openmp.
8736         * config/i386/intelmic-offload.h: New file.
8737         * config/nvptx/offload.h: Likewise.
8738
8739 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8740
8741         * explow.h: Remove duplicate contents.
8742         * dojump.h: Likewise.
8743
8744 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
8745
8746         * arm.c (arm_xgene_tune): Add default initializer for instruction
8747         fusion.
8748
8749 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
8750
8751         PR ipa/64068
8752         PR ipa/64559
8753         * ipa.c (symbol_table::remove_unreachable_nodes):
8754         Do not put abstract origins into boundary.
8755
8756 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
8757
8758         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
8759         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
8760
8761 2015-01-15  Steve Ellcey  <sellcey@mips.com>
8762
8763         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
8764         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
8765         builtins.def, and chkp-builtins.def.
8766
8767 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
8768
8769         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
8770         ISA 2.7 (POWER8).
8771
8772 2015-01-15  Richard Biener  <rguenther@suse.de>
8773
8774         PR tree-optimization/61743
8775         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
8776         information on PHIs for some simple cases.
8777
8778 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
8779
8780         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
8781         Include xgene1.md.
8782         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
8783         * config/arm/arm-cores.def (xgene1): New entry.
8784         * config/arm/arm-tables.opt: Regenerate.
8785         * config/arm/arm-tune.md: Regenerate.
8786         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
8787
8788 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
8789
8790         * tree-if-conv.c: Include hash-map.h.
8791         (aggressive_if_conv): New variable.
8792         (fold_build_cond_expr): Add simplification of non-zero condition.
8793         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
8794         destination block is not always executed.
8795         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
8796         than two predecessors if AGGRESSIVE_IF_CONV is true.
8797         (if_convertible_stmt_p): Fix commentary.
8798         (all_preds_critical_p): New function.
8799         (has_pred_critical_p): New function.
8800         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
8801         BB can have more than two predecessors and all incoming edges can be
8802         critical.
8803         (predicate_bbs): Skip predication for loop exit block, use build2_loc
8804         to compute predicate for true edge.
8805         (find_phi_replacement_condition): Delete this function.
8806         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
8807         Allow interchange PHI arguments if EXTENDED is false.
8808         Change check that block containing reduction statement candidate
8809         is predecessor of phi-block since phi may have more than two arguments.
8810         (phi_args_hash_traits): New helper structure.
8811         (struct phi_args_hash_traits): New type.
8812         (phi_args_hash_traits::hash): New function.
8813         (phi_args_hash_traits::equal_keys): New function.
8814         (gen_phi_arg_condition): New function.
8815         (predicate_scalar_phi): Add handling of phi nodes with more than two
8816         arguments, delete COND and TRUE_BB arguments, insert body of
8817         find_phi_replacement_condition to predicate ordinary phi nodes.
8818         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
8819         delete call of find_phi_replacement_condition and invoke
8820         predicate_scalar_phi with two arguments.
8821         (insert_gimplified_predicates): Add assert that non-predicated block
8822         don't have statements to insert.
8823         (ifcvt_split_critical_edges): New function.
8824         (ifcvt_split_def_stmt): Likewise.
8825         (ifcvt_walk_pattern_tree): Likewise.
8826         (stmt_is_root_of_bool_pattern): Likewise.
8827         (ifcvt_repair_bool_pattern): Likewise.
8828         (ifcvt_local_dce): Likewise.
8829         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
8830         is copy of inner or outer loop force_vectorize field, invoke
8831         ifcvt_split_critical_edges, ifcvt_local_dce and
8832         ifcvt_repair_bool_pattern for aggressive if-conversion.
8833
8834 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
8835
8836         * config/aarch64/aarch64.md: Include xgene1.md.
8837         * config/aarch64/xgene1.md: New file.
8838
8839 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
8840
8841         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
8842         xgene1 (APM XGene-1) core definition.
8843         * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
8844         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
8845         * doc/invoke.texi: Document -mcpu=xgene1.
8846
8847 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8848
8849         * dojump.h: New header file.
8850         * explow.h: Likewise.
8851         * expr.h: Remove includes.
8852         Move expmed.c prototypes to expmed.h.
8853         Move dojump.c prototypes to dojump.h.
8854         Move alias.c prototypes to alias.h.
8855         Move explow.c prototypes to explow.h.
8856         Move calls.c prototypes to calls.h.
8857         Move emit-rtl.c prototypes to emit-rtl.h.
8858         Move varasm.c prototypes to varasm.h.
8859         Move stmt.c prototypes to stmt.h.
8860         (saved_pending_stack_adjust): Move to dojump.h.
8861         (adjust_address): Move to explow.h.
8862         (adjust_address_nv): Move to emit-rtl.h.
8863         (adjust_bitfield_address): Likewise.
8864         (adjust_bitfield_address_size): Likewise.
8865         (adjust_bitfield_address_nv): Likewise.
8866         (adjust_automodify_address_nv): Likewise.
8867         * explow.c (expr_size): Move to expr.c.
8868         (int_expr_size): Likewise.
8869         (tree_expr_size): Likewise.
8870         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
8871         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
8872         * genemit.c (main): Generate includes statistics.h, real.h,
8873         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
8874         stmt.h.
8875         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
8876         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
8877         explow.h, emit-rtl.h, stmt.h.
8878         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
8879         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
8880         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
8881         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
8882         emit-rtl.h, varasm.h, stmt.h.
8883         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
8884         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
8885         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
8886         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
8887         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
8888         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
8889         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
8890         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
8891         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
8892         tm.h tree.h varasm.h vec.h wide-int.h.
8893         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
8894         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
8895         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
8896         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
8897         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
8898         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
8899         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
8900         * loop-iv.c: Likewise.
8901         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
8902         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
8903         statistics.h stmt.h tree.h varasm.h wide-int.h.
8904         * lra-constraints.c: Likewise.
8905         * lra-eliminations.c: Likewise.
8906         * lra-lives.c: Likewise.
8907         * lra-remat.c: Likewise.
8908         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
8909         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
8910         statistics.h stmt.h tree.h varasm.h wide-int.h.
8911         * hw-doloop.c: Likewise.
8912         * ira-color.c: Likewise.
8913         * ira-emit.c: Likewise.
8914         * loop-doloop.c: Likewise.
8915         * loop-invariant.c: Likewise.
8916         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
8917         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
8918         statistics.h stmt.h tree.h varasm.h wide-int.h.
8919         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
8920         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
8921         statistics.h stmt.h tree.h varasm.h wide-int.h.
8922         * combine-stack-adj.c: Likewise.
8923         * cse.c: Likewise.
8924         * ddg.c: Likewise.
8925         * ifcvt.c: Likewise.
8926         * ira-costs.c: Likewise.
8927         * jump.c: Likewise.
8928         * lra-coalesce.c: Likewise.
8929         * lra-spills.c: Likewise.
8930         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
8931         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
8932         stmt.h varasm.h wide-int.h.
8933         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
8934         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
8935         varasm.h.
8936         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
8937         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
8938         statistics.h stmt.h varasm.h wide-int.h.
8939         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
8940         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
8941         varasm.h wide-int.h.
8942         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
8943         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
8944         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
8945         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
8946         statistics.h stmt.h.
8947         * config/tilepro/tilepro.c: Likewise.
8948         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
8949         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
8950         * config/pdp11/pdp11.c: Likewise.
8951         * config/xtensa/xtensa.c: Likewise.
8952         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
8953         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
8954         varasm.h.
8955         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
8956         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
8957         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
8958         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
8959         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
8960         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
8961         * rtl-chkp.c: Likewise.
8962         * tree-chkp-opt.c: Likewise.
8963         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
8964         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
8965         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
8966         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
8967         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
8968         statistics.h stmt.h.
8969         * tree-vect-data-refs.c: Likewise.
8970         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
8971         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
8972         rtl.h statistics.h stmt.h varasm.h.
8973         * internal-fn.c: Likewise.
8974         * ipa-icf-gimple.c: Likewise.
8975         * lto-section-out.c: Likewise.
8976         * tree-data-ref.c: Likewise.
8977         * tree-nested.c: Likewise.
8978         * tree-outof-ssa.c: Likewise.
8979         * tree-predcom.c: Likewise.
8980         * tree-pretty-print.c: Likewise.
8981         * tree-scalar-evolution.c: Likewise.
8982         * tree-ssa-strlen.c: Likewise.
8983         * tree-vect-loop.c: Likewise.
8984         * tree-vect-patterns.c: Likewise.
8985         * tree-vect-slp.c: Likewise.
8986         * tree-vect-stmts.c: Likewise.
8987         * tsan.c: Likewise.
8988         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
8989         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
8990         stmt.h.
8991         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
8992         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
8993         statistics.h stmt.h varasm.h.
8994         * loop-unroll.c: Likewise.
8995         * ubsan.c: Likewise.
8996         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
8997         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
8998         stmt.h varasm.h.
8999         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9000         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
9001         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
9002         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
9003         statistics.h stmt.h.
9004         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
9005         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
9006         statistics.h stmt.h varasm.h.
9007         * gimple-match-head.c: Likewise.
9008         * lto-cgraph.c: Likewise.
9009         * lto-section-in.c: Likewise.
9010         * lto-streamer-in.c: Likewise.
9011         * lto-streamer-out.c: Likewise.
9012         * tree-affine.c: Likewise.
9013         * tree-cfg.c: Likewise.
9014         * tree-cfgcleanup.c: Likewise.
9015         * tree-if-conv.c: Likewise.
9016         * tree-into-ssa.c: Likewise.
9017         * tree-ssa-alias.c: Likewise.
9018         * tree-ssa-copyrename.c: Likewise.
9019         * tree-ssa-dse.c: Likewise.
9020         * tree-ssa-forwprop.c: Likewise.
9021         * tree-ssa-live.c: Likewise.
9022         * tree-ssa-math-opts.c: Likewise.
9023         * tree-ssa-pre.c: Likewise.
9024         * tree-ssa-sccvn.c: Likewise.
9025         * tree-tailcall.c: Likewise.
9026         * tree-vect-generic.c: Likewise.
9027         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9028         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
9029         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9030         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
9031         * varasm.c: Likewise.
9032         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9033         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
9034         varasm.h.
9035         * init-regs.c: Likewise.
9036         * ira.c: Likewise.
9037         * omp-low.c: Likewise.
9038         * stack-ptr-mod.c: Likewise.
9039         * tree-ssa-reassoc.c: Likewise.
9040         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9041         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
9042         varasm.h.
9043         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9044         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
9045         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9046         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
9047         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9048         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
9049         * tree-ssa-phiopt.c: Likewise.
9050         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9051         fixed-value.h hashtab.h real.h statistics.h stmt.h.
9052         * config/fr30/fr30.c: Likewise.
9053         * config/frv/frv.c: Likewise.
9054         * expr.c: Likewise.
9055         * final.c: Likewise.
9056         * optabs.c: Likewise.
9057         * passes.c: Likewise.
9058         * simplify-rtx.c: Likewise.
9059         * stmt.c: Likewise.
9060         * toplev.c: Likewise.
9061         * var-tracking.c: Likewise.
9062         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9063         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
9064         * lower-subreg.c: Likewise.
9065         * postreload-gcse.c: Likewise.
9066         * ree.c: Likewise.
9067         * reginfo.c: Likewise.
9068         * store-motion.c: Likewise.
9069         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9070         fixed-value.h hashtab.h real.h stmt.h varasm.h.
9071         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9072         fixed-value.h hashtab.h statistics.h stmt.h.
9073         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9074         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
9075         * except.c: Likewise.
9076         * explow.c: Likewise.
9077         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9078         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
9079         varasm.h.
9080         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9081         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
9082         * tree-ssa-structalias.c: Likewise.
9083         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9084         fixed-value.h insn-config.h real.h statistics.h.
9085         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9086         fixed-value.h insn-config.h real.h statistics.h stmt.h.
9087         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9088         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
9089         * cfgbuild.c: Likewise.
9090         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9091         fixed-value.h real.h rtl.h statistics.h stmt.h.
9092         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9093         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
9094         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9095         fixed-value.h real.h statistics.h stmt.h.
9096         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
9097         fixed-value.h real.h statistics.h stmt.h varasm.h.
9098         * cprop.c: Likewise.
9099         * modulo-sched.c: Likewise.
9100         * postreload.c: Likewise.
9101         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
9102         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
9103         statistics.h stmt.h varasm.h.
9104         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
9105         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
9106         rtl.h statistics.h stmt.h varasm.h.
9107         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
9108         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
9109         varasm.h.
9110         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
9111         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
9112         varasm.h.
9113         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
9114         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
9115         varasm.h.
9116         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
9117         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
9118         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
9119         function.h real.h statistics.h stmt.h varasm.h.
9120         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
9121         insn-config.h real.h statistics.h stmt.h.
9122         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
9123         statistics.h stmt.h.
9124         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
9125         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
9126         statistics.h stmt.h varasm.h.
9127         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
9128         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
9129         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
9130         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
9131         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
9132         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
9133         statistics.h stmt.h varasm.h.
9134         * ipa-polymorphic-call.c: Likewise.
9135         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
9136         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
9137         statistics.h stmt.h.
9138         * config/c6x/c6x.c: Likewise.
9139         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
9140         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
9141         statistics.h stmt.h varasm.h.
9142         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
9143         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
9144         stmt.h varasm.h.
9145         * ipa-split.c: Likewise.
9146         * tree-eh.c: Likewise.
9147         * tree-ssa-dce.c: Likewise.
9148         * tree-ssa-loop-niter.c: Likewise.
9149         * tree-vrp.c: Likewise.
9150         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
9151         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
9152         stmt.h.
9153         * config/nds32/nds32-fp-as-gp.c: Likewise.
9154         * config/nds32/nds32-intrinsic.c: Likewise.
9155         * config/nds32/nds32-isr.c: Likewise.
9156         * config/nds32/nds32-md-auxiliary.c: Likewise.
9157         * config/nds32/nds32-memory-manipulation.c: Likewise.
9158         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
9159         * config/nds32/nds32-predicates.c: Likewise.
9160         * config/nds32/nds32.c: Likewise.
9161         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
9162         fixed-value.h hashtab.h real.h statistics.h.
9163         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
9164         fixed-value.h hashtab.h real.h statistics.h stmt.h.
9165         * config/arm/arm.c: Likewise.
9166         * config/avr/avr.c: Likewise.
9167         * config/bfin/bfin.c: Likewise.
9168         * config/h8300/h8300.c: Likewise.
9169         * config/i386/i386.c: Likewise.
9170         * config/ia64/ia64.c: Likewise.
9171         * config/iq2000/iq2000.c: Likewise.
9172         * config/m32c/m32c.c: Likewise.
9173         * config/m32r/m32r.c: Likewise.
9174         * config/m68k/m68k.c: Likewise.
9175         * config/mcore/mcore.c: Likewise.
9176         * config/mep/mep.c: Likewise.
9177         * config/mips/mips.c: Likewise.
9178         * config/mn10300/mn10300.c: Likewise.
9179         * config/moxie/moxie.c: Likewise.
9180         * config/pa/pa.c: Likewise.
9181         * config/rl78/rl78.c: Likewise.
9182         * config/rx/rx.c: Likewise.
9183         * config/s390/s390.c: Likewise.
9184         * config/sh/sh.c: Likewise.
9185         * config/sparc/sparc.c: Likewise.
9186         * config/spu/spu.c: Likewise.
9187         * config/stormy16/stormy16.c: Likewise.
9188         * config/v850/v850.c: Likewise.
9189         * config/vax/vax.c: Likewise.
9190         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
9191         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
9192         * config/msp430/msp430.c: Likewise.
9193         * predict.c: Likewise.
9194         * value-prof.c: Likewise.
9195         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
9196         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
9197         * config/microblaze/microblaze.c: Likewise.
9198         * config/nios2/nios2.c: Likewise.
9199         * config/rs6000/rs6000.c: Likewise.
9200         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
9201         insn-config.h real.h rtl.h statistics.h stmt.h.
9202         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
9203         insn-config.h real.h statistics.h stmt.h.
9204         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
9205         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
9206         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
9207         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
9208         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
9209         fixed-value.h real.h statistics.h stmt.h.
9210         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
9211         fixed-value.h statistics.h stmt.h.
9212         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
9213         stmt.h.
9214
9215 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
9216
9217         * gengtype.c (create_user_defined_type): Workaround
9218         -Wmaybe-uninitialized false positives.
9219         * cse.c (fold_rtx): Likewise.
9220         * loop-invariant.c (gain_for_invariant): Likewise.
9221
9222 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
9223
9224         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
9225         set the memory attributes in all cases but clear MEM_EXPR if need be.
9226
9227 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
9228
9229         PR tree-optimization/64434
9230         * cfgexpand.c (reorder_operands): New function.
9231         (expand_gimple_basic_block): Insert call of reorder_operands if
9232         optimized is true.
9233
9234 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
9235
9236         * config/mips/micromips.md (*swp): Remove explicit parallel.
9237         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
9238         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
9239         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
9240         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
9241         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
9242         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
9243         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
9244         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
9245         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
9246         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
9247         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
9248         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
9249         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
9250         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
9251         (mips_wrdsp): Likewise.
9252         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
9253         parallel.
9254         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
9255         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
9256         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
9257         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
9258         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
9259         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
9260         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
9261         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
9262         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
9263
9264 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
9265
9266         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
9267         (mips_print_operand): Support 'y' to print exact log2 in decimal
9268         of a const_int.
9269         * config/mips/mips.h (ISA_HAS_LSA): New define.
9270         (ISA_HAS_DLSA): Likewise.
9271         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
9272         * config/mips/predicates.md (const_immlsa_operand): New predicate.
9273
9274 2015-01-15  Martin Liska  <mliska@suse.cz>
9275
9276         PR target/64377
9277         * optc-save-gen.awk: Add support for array types.
9278
9279 2015-01-15  Richard Biener  <rguenther@suse.de>
9280
9281         PR middle-end/64365
9282         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
9283         for MEM_REF access functions with the same base can never partially
9284         overlap.
9285
9286 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
9287
9288         * common.opt: New option -fstack-protector-explicit.
9289         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
9290         (stack_protect_decl_phase): Handle stack_protect attribute for
9291         explicit stack protection requests.
9292         (expand_used_vars): Similarly.
9293         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
9294         * doc/extend.texi: Add documentation for "stack_protect" attribute.
9295         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
9296
9297 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
9298
9299         PR target/53988
9300         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
9301         reg-reg copies.
9302         (sh_extending_set_of_reg): New struct.
9303         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
9304         sh_remove_reg_dead_or_unused_notes): New Declarations.
9305         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
9306         sh_find_extending_set_of_reg, sh_split_tst_subregs,
9307         sh_extending_set_of_reg::use_as_extended_reg): New functions.
9308         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
9309         convert to insn_and_split and use new function sh_split_tst_subregs.
9310
9311 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
9312
9313         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
9314         option.
9315         (Optimization Options): Move -fuse-ld documentation to...
9316         (Link Options): ...here.
9317
9318 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
9319
9320         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
9321         offsets.
9322         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
9323         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
9324         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
9325         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
9326         instead of ZR for the memory operand of LL/SC.
9327         (compare_and_swap_12, sync_add<mode>): Likewise.
9328         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
9329         (sync_new_<optab>_12, sync_nand_12): Likewise.
9330         (sync_old_nand_12, sync_new_nand_12): Likewise.
9331         (sync_sub<mode>, sync_old_add<mode>): Likewise.
9332         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
9333         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
9334         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
9335         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
9336         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
9337         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
9338         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
9339         * doc/md.texi (ZC): Update description.
9340
9341 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
9342
9343         * builtins.c (expand_builtin_atomic_exchange): Remove error when
9344         memory model is CONSUME.
9345         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
9346         expand_builtin_atomic_store): Change invalid memory model errors to
9347         warnings.
9348         (expand_builtin_atomic_clear): Change invalid model errors to warnings
9349         and issue warning for CONSUME.
9350
9351 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
9352
9353         * lto-cgraph: Update function comments for
9354         lto_symtab_encoder_encode_*.
9355
9356 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
9357
9358         * Makefile.in (site.exp): Do not set ENABLE_LTO.
9359
9360 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
9361
9362         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
9363         * lto-cgraph.c (select_what_to_stream): Remove argument, use
9364         lto_stream_offload_p instead.
9365         * lto-streamer.h (select_what_to_stream): Remove argument.
9366         * passes.c (ipa_write_summaries): Likewise.
9367         * tree-pass.h (ipa_write_summaries): Likewise.
9368
9369 2015-01-14  Richard Biener  <rguenther@suse.de>
9370
9371         PR tree-optimization/59354
9372         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
9373         groups larger than the slp group size as having gaps.
9374
9375 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
9376
9377         PR middle-end/59448
9378         * builtins.c (get_memmodel): Promote consume to acquire always.
9379
9380 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
9381
9382         PR target/64386
9383         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
9384         V32HImode.
9385
9386 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
9387
9388         PR target/64393
9389         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
9390         Enable AVX512BW.
9391         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
9392         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
9393         AVX512VBMI, as it implies AVX512BW.
9394
9395 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
9396
9397         PR target/64387
9398         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
9399         (vec_unpacks_hi_v16sf): Ditto.
9400
9401 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9402
9403         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
9404         is not available.
9405
9406 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9407
9408         * doc/invoke.texi (mapcs): Mention deprecation.
9409         (mapcs-frame): Likewise.
9410
9411 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9412
9413         PR target/64453
9414         * config/arm/arm.c (callee_saved_reg_p): Define.
9415         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
9416         register is callee saved instead of !call_used_regs[reg].
9417         (thumb1_compute_save_reg_mask): Likewise.
9418
9419 2015-01-14  Hale Wang  <hale.wang@arm.com>
9420
9421         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
9422         Cortex-M7.
9423
9424 2015-01-14  Richard Biener  <rguenther@suse.de>
9425
9426         PR lto/64415
9427         * tree-inline.c (insert_debug_decl_map): Check destination
9428         function MAY_HAVE_DEBUG_STMTS.
9429         (insert_init_debug_bind): Likewise.
9430         (insert_init_stmt): Remove redundant check.
9431         (remap_gimple_stmt): Drop debug stmts if the destination
9432         function has var-tracking assignments disabled.
9433
9434 2015-01-14  Martin Liska  <mliska@suse.cz>
9435
9436         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
9437         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
9438
9439 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9440
9441         PR target/64460
9442         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
9443         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
9444
9445 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
9446
9447         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
9448         level from an ARCH; do not inject the default.
9449         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
9450         MIPS_ISA_LEVEL_SPEC.
9451         (MIPS_ISA_NAN2008_SPEC): Update comment.
9452         (BASE_DRIVER_SELF_SPECS): Likewise.
9453         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
9454         MIPS_DEFAULT_ISA_LEVEL_SPEC.
9455         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
9456         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
9457         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
9458
9459 2015-01-14  Richard Biener  <rguenther@suse.de>
9460
9461         PR tree-optimization/64493
9462         PR tree-optimization/64495
9463         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
9464         assign the proper vectorized PHI to the inner loop exit PHIs.
9465
9466 2015-01-14  Joey Ye  <joey.ye@arm.com>
9467
9468         * config/arm/arm.c (arm_compute_save_reg_mask):
9469         Do not save lr in case of tail call.
9470         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
9471
9472 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
9473
9474         * tree-vrp.c (check_array_ref): Emit more warnings
9475         for warn_array_bounds >= 2.
9476         * common.opt: New option -Warray-bounds=.
9477         * doc/invoke.texi: Document -Warray-bounds=.
9478
9479 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
9480
9481         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
9482         (mforbid-fp-as-gp): Remove.
9483         (mex9): Remove.
9484         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
9485         (nds32_symbol_load_store_p): Remove.
9486         (nds32_fp_as_gp_check_available): Clean up implementation.
9487         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
9488         cases.
9489         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
9490         fp-as-gp and ex9 cases.
9491
9492 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
9493
9494         * tree-profile.c (init_ic_make_global_vars): Drop workaround
9495         for bintuils bug 14342.
9496         (init_ic_make_global_vars): Likewise.
9497         (gimple_init_edge_profiler): Likewise.
9498         (gimple_gen_ic_func_profiler): Likewise.
9499
9500 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
9501
9502         * ipa-inline.c (inline_small_functions): Swap the operands in
9503         enum.
9504
9505 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
9506
9507         PR ipa/64481
9508         * ipa-inline-analysis.c (node_growth_cache): Remove.
9509         (initialize_growth_caches): Do not initialize it.
9510         (free_growth_caches): Do not free it.
9511         (do_estimate_growth): Rename to ...
9512         (estimate_growth): ... this one; drop growth cache code.
9513         (growth_likely_positive): Always go the heuristics way.
9514         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
9515         (reset_edge_caches): Do not reset node growth.
9516         (heap_edge_removal_hook): Do not maintain cache.
9517         (inline_small_functions): Likewise; strenghten sanity check.
9518         (ipa_inline): Do not maintain caches.
9519         * ipa-inline.h (node_growth_cache): Remove.
9520         (do_estimate_growth): Remove to ...
9521         (estimate_growth): this one; remove inline version.
9522         (reset_node_growth_cache): Remove.
9523
9524 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
9525
9526         PR ipa/64565
9527         * ipa-inline.c (inline_small_functions): Update callee keys after
9528         resolving speculation
9529         (inline_small_functions): Always check monotonicity of the queue.
9530
9531 2015-01-13  Marek Polacek  <polacek@redhat.com>
9532
9533         PR middle-end/64391
9534         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
9535
9536 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
9537
9538         PR rtl-optimization/64286
9539         * ree.c (combine_reaching_defs): Move part of comment earlier,
9540         remove !SCALAR_INT_MODE_P check.
9541         (add_removable_extension): Don't add vector mode
9542         extensions if all uses of the source register aren't the same
9543         vector extensions.
9544
9545 2015-01-13  Renlin Li  <renlin.li@arm.com>
9546
9547         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
9548         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
9549
9550 2015-01-13  Martin Liska  <mliska@suse.cz>
9551
9552         * ipa-icf.c (sem_function::equals_private): Call new functions
9553         cl_target_option_print_diff and cl_optimization_print_diff.
9554         * optc-save-gen.awk (cl_target_option_print_diff): New function.
9555         (cl_optimization_print_diff): Likewise.
9556         * opth-gen.awk: Likewise.
9557
9558 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
9559
9560         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
9561         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
9562         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
9563         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
9564         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
9565         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
9566
9567 2015-01-13  Andrew Pinski  <apinski@cavium.com>
9568
9569         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
9570         instead of src mode.
9571
9572 2015-01-13  Richard Biener  <rguenther@suse.de>
9573
9574         PR lto/64373
9575         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
9576         DECL_CONTEXT.
9577
9578 2015-01-13  Andrew Pinski  <apinski@cavium.com>
9579
9580         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
9581         volatile mems.
9582         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
9583
9584 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
9585
9586         PR middle-end/63974
9587         * cfgexpand.c (expand_computed_goto): Don't call
9588         convert_memory_address here.
9589
9590 2015-01-13  Richard Biener  <rguenther@suse.de>
9591
9592         PR tree-optimization/64406
9593         * tree-loop-distibution.c (pass_loop_distribution::execute):
9594         Reset the SCEV hashtable if we distributed anything.
9595
9596 2015-01-13  Richard Biener  <rguenther@suse.de>
9597
9598         PR tree-optimization/64404
9599         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
9600         SLP types for CSEd loads.
9601
9602 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9603
9604         PR tree-optimization/64436
9605         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
9606         merge of two symbolic numbers for a bitwise OR to ...
9607         (perform_symbolic_merge): This. Also fix computation of the range and
9608         end of the symbolic number corresponding to the result of a bitwise OR.
9609
9610 2015-01-13  Richard Biener  <rguenther@suse.de>
9611
9612         PR tree-optimization/64568
9613         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
9614         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
9615
9616 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
9617
9618         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
9619         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
9620
9621 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
9622
9623         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
9624         target-specific symbol_ref flag.
9625         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
9626         resides in rodata section.
9627         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
9628         (nds32_encode_section_info): New function.
9629
9630 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
9631
9632         * config/nds32/nds32.md (call): Use pseudo instruction bal which
9633         clobbers TA_REGNUM if large code model is specified.
9634         (call_register): Likewise.
9635         (call_immediate): Likewise.
9636         (call_value): Likewise.
9637         (call_value_register): Likewise.
9638         (call_value_immediate): Likewise.
9639
9640 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
9641
9642         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
9643         (TARGET_CMODEL_MEDIUM): New macro.
9644         (TARGET_CMODEL_LARGE): New macro.
9645         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
9646         code model setting in assembly code.
9647
9648 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
9649
9650         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
9651         Remove MASK_GP_DIRECT flag.
9652         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
9653         one of the multilib default options.
9654         * config/nds32/nds32.opt (mgp-direct): Remove.
9655         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
9656         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
9657
9658 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
9659
9660         * config/nds32/nds32.opt (mcmodel): Add new option.
9661         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
9662         to describe code model.
9663
9664 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
9665
9666         PR target/64479
9667         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
9668
9669 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
9670
9671         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
9672         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
9673         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
9674         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
9675         __builtin_sh_set_fpscr.
9676
9677 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
9678
9679         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
9680         after a funtion name just to indicate it is a function.
9681         ([-fsanitize-undefined-trap-on-error]): Likewise.
9682         ([-fdbg-cnt=]): Likewise.
9683         ([-mmemcpy]): Likewise.
9684         ([-mflush-func]): Likewise.
9685         ([-msynci]): Likewise.
9686
9687 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
9688
9689         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
9690         example.
9691
9692 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
9693
9694         PR tree-optimization/64563
9695         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
9696         instead of != VR_VARYING.
9697
9698         PR target/64513
9699         * config/i386/i386.c (ix86_expand_prologue): Add
9700         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
9701
9702         PR tree-optimization/64454
9703         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
9704         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
9705         for signed or [0, op1 - 1] for unsigned modulo.
9706         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
9707         even if op1 does not satisfy integer_pow2p.
9708
9709         PR other/64370
9710         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
9711
9712 2015-01-12  Jeff Law  <law@redhat.com>
9713
9714         PR target/64461
9715         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
9716         (trunchiqi2, truncsihi2): Similarly.
9717
9718         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
9719         rather than calling F.
9720
9721 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9722
9723         * tsan.c (instrument_expr): Use force_gimple_operand.
9724         Use may_be_nonaddressable_p instead of is_gimple_addressable.
9725
9726 2015-01-12  Richard Biener  <rguenther@suse.de>
9727
9728         PR tree-optimization/64530
9729         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
9730         back dr1.
9731
9732 2015-01-12  Richard Biener  <rguenther@suse.de>
9733
9734         PR middle-end/64357
9735         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
9736         latches properly.
9737
9738 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9739
9740         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
9741         Cortex-A17 tuning parameters.
9742         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
9743
9744 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9745
9746         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
9747         * config/arm/arm.c (arm_macro_fusion_p): New function.
9748         (arm_macro_fusion_pair_p): Likewise.
9749         (TARGET_SCHED_MACRO_FUSION_P): Define.
9750         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
9751         (ARM_FUSE_NOTHING): Likewise.
9752         (ARM_FUSE_MOVW_MOVT): Likewise.
9753         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
9754         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
9755         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
9756         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
9757         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
9758         arm_cortex_a5_tune): Specify fuseable_ops value.
9759
9760 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
9761
9762         PR bootstrap/64561
9763         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
9764         test for PIE with copy reloc.
9765         * configure: Regenerated.
9766
9767 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9768
9769         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
9770         in gen_rtx_REG.
9771         (arm_tls_descseq_addr): Likewise.
9772         (arm_gen_movmemqi): Likewise.
9773         (arm_expand_epilogue_apcs_frame): Likewise.
9774         (arm_expand_epilogue): Likewise.
9775         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
9776         in gen_rtx_REG.
9777
9778 2015-01-12  Martin Liska  <mliska@suse.cz>
9779
9780         PR ipa/64550
9781         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
9782         volatility for correct operands.
9783
9784 2015-01-12  Martin Liska  <mliska@suse.cz>
9785
9786         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as indication
9787         that a function is not leaf.
9788         (sem_function::compare_polymorphic_p): Likewise.
9789
9790 2015-01-12  Martin Liska  <mliska@suse.cz>
9791
9792         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as indication
9793         that a function is not leaf.
9794         (sem_function::compare_polymorphic_p): Likewise.
9795
9796 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9797
9798         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
9799         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
9800         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
9801         fold-const.h, tree-check.h.
9802
9803 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
9804
9805         PR ipa/63967
9806         PR ipa/64425
9807         * ipa-inline.c (compute_uninlined_call_time,
9808         compute_inlined_call_time): Use counts for extra precision when
9809         needed possible.
9810         (big_speedup_p): Fix formating.
9811         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
9812         (relative_time_benefit): Remove.
9813         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
9814         merge guessed and read profile paths.
9815         (inline_small_functions): Count only !optimize_size functions into
9816         initial size; be more lax about sanity check when profile is used;
9817         be sure to update inlined function profile when profile is read.
9818
9819 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
9820
9821         PR ipa/63470
9822         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
9823         cost when edge becomes direct.
9824         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
9825         is resolved or when introducing new speculation.
9826
9827 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
9828
9829         PR ipa/64551
9830         PR ipa/64552
9831         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
9832         '||' to fix typo issue.
9833
9834         * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
9835         accept and return NULL.
9836
9837 2015-01-12  Martin Liska  <mliska@suse.cz>
9838
9839         * cgraph.c (cgraph_edge::remove_callee): Move function to header
9840         file for being inlined.
9841         (cgraph_set_edge_callee): Delete.
9842         (cgraph_edge::redirect_callee): Move function to header file
9843         for being inlined.
9844         (cgraph_edge::make_direct): Use new function.
9845         (cgraph_edge::dump_edge_flags): New function created from
9846         static dump_edge_flags function.
9847         (cgraph_node::dump): Use new function.
9848         (cgraph_edge::verify_count_and_frequency): New function created
9849         from verify_edge_count_and_frequency.
9850         (cgraph_edge::verify_corresponds_to_fndecl): New function created
9851         from verify_edge_corresponds_to_fndecl.
9852         (verify_edge_corresponds_to_fndecl): Delete.
9853         (cgraph_node::verify_node): Use new function.
9854         * cgraph.h (cgraph_edge::set_callee): New function.
9855         (cgraph_edge::dump_edge_flags): Likewise.
9856         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
9857
9858 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
9859
9860         * ipa-utils.c (estimate_function_body_sizes): Do not
9861         free node params when called late with early=true.
9862
9863 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
9864
9865         * doc/md.texi (Instruction Patterns): Rewrite text for
9866         clarity.
9867         (Example): Likewise.
9868
9869 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
9870
9871         * doc/invoke.texi (Option Summary): Break long lines.
9872         [(-fdiagnostics-color)]: Put long literal in @smallexample
9873         instead of inline.
9874         [(-fsanitize-recover)]: Likewise.
9875         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
9876         [(-ffast-math)]: Likewise.
9877         [(--param max-inline-insns-recursive)]: Likewise.
9878         [(--param max-inline-recursive-depth)]: Likewise.
9879         [(-mno-text-section-literals)]: Likewise.
9880
9881 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
9882
9883         * doc/install.texi: Update for libgomp being renamed from "GNU
9884         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
9885         Runtime Library".
9886         * doc/sourcebuild.texi: Likewise.
9887
9888 2015-01-10  Anthony Green  <green@moxielogic.com>
9889
9890         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
9891         mul.x availability for moxiebox configuration.
9892
9893 2015-01-09  Anthony Green  <green@moxielogic.com>
9894
9895         * config/moxie/moxie.md: Tabify assembly output.
9896
9897 2015-01-09  Anthony Green  <green@moxielogic.com>
9898
9899         * config/moxie/moxie.md (CC_REG): Correct register definition.
9900
9901 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
9902
9903         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
9904         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
9905         of log files.
9906
9907 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
9908
9909         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
9910
9911 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
9912             Jakub Jelinek  <jakub@redhat.com>
9913
9914         PR middle-end/64412
9915         * lto-streamer.h (lto_stream_offload_p): New declaration.
9916         * lto-streamer.c (lto_stream_offload_p): New variable.
9917         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
9918         at the same time as section_name_prefix.
9919         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
9920         if lto_stream_offload_p.
9921         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
9922         stream TREE_TARGET_OPTION if lto_stream_offload_p.
9923         (write_ts_function_decl_tree_pointers): Don't
9924         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
9925         * tree-streamer-in.c (unpack_value_fields): Don't stream
9926         TREE_TARGET_OPTION in if ACCEL_COMPILER.
9927         (lto_input_ts_function_decl_tree_pointers): Don't stream
9928         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
9929         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
9930         instead of section_name_prefix string comparisons.
9931
9932 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
9933
9934         PR rtl-optimization/64536
9935         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
9936         tablejumps.
9937
9938 2015-01-09  Michael Collison  <michael.collison@linaro.org>
9939
9940         PR tree-optimization/64322
9941         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
9942         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
9943
9944 2015-01-09  Tom de Vries  <tom@codesourcery.com>
9945
9946         PR rtl-optimization/64539
9947         * regcprop.c (kill_clobbered_values): Factor out of ...
9948         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
9949         instead of note_stores with kill_clobbered_value.
9950
9951 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
9952
9953          * ginclude/unwind-arm-common.h: Revert previous commit.
9954
9955 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
9956
9957         * config.gcc (arm*-*-freebsd*): New configuration.
9958         * config/arm/freebsd.h: New file.
9959         * config.host: Add extra components for arm*-*-freebsd*.
9960         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
9961         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
9962
9963 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
9964
9965         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
9966         for -mcpu=e6500.
9967         * config/rs6000/t-rtems: Add e6500 multilibs.
9968
9969 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
9970
9971         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
9972         MPC8540.
9973
9974 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
9975
9976         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
9977         MULTILIB_EXCEPTIONS.
9978
9979 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
9980
9981         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
9982         MULTILIB_EXCEPTIONS.
9983
9984 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
9985
9986         * config/arm/t-rtems-eabi: Rename to...
9987         * config/arm/t-rtems: ...this.
9988         * config/arm/rtems-eabi.h: Rename to...
9989         * config/arm/rtems.h: ...this.
9990         * config.gcc (arm*-*-rtems*): Reflect changes above.
9991
9992 2015-01-09  Richard Biener  <rguenther@suse.de>
9993
9994         PR tree-optimization/64410
9995         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
9996         on the LHS.
9997         (execute_update_addresses_taken): Deal with that.
9998         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
9999         loads/stores for complex variables.
10000
10001 2015-01-09  Martin Liska  <mliska@suse.cz>
10002
10003         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
10004         name comparison.
10005         (func_checker::compare_memory_operand): New function.
10006         (func_checker::compare_operand): Split case to newly
10007         added functions.
10008         (func_checker::compare_cst_or_decl): New function.
10009         (func_checker::compare_gimple_call): Identify
10010         memory operands.
10011         (func_checker::compare_gimple_assign): Likewise.
10012         * ipa-icf-gimple.h: New function.
10013
10014 2015-01-09  Martin Liska  <mliska@suse.cz>
10015
10016         PR ipa/64503
10017         * sreal.c (sreal::dump): Change unsigned format to signed for
10018         m_exp value.
10019         (sreal::to_double): Replace exp2 with scalbln.
10020
10021 2015-01-09  Martin Liska  <mliska@suse.cz>
10022
10023         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
10024         * ipa-icf.c (sem_function::equals_private): Add support for target and
10025         (sem_item_optimizer::merge_classes): Remove redundant function
10026         optimization flags comparison.
10027         * tree.h (target_opts_for_fn): New function.
10028
10029 2015-01-09  Tom de Vries  <tom@codesourcery.com>
10030
10031         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
10032
10033 2015-01-09  Kito Cheng  <kito@0xlab.org>
10034
10035         PR rtl-optimization/64348
10036         * lra-constraints.c (split_reg): Fix caller-save store/restore
10037         instruction generation.
10038
10039 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
10040
10041         PR gcov-profile/61790
10042         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
10043         long long.  Fallback to int64_t if host doesn't have long long and
10044         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
10045
10046 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
10047
10048         PR tree-optimization/63989
10049         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
10050         from 1000 to 10000.
10051         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
10052         (get_stridx): If we don't have a record for certain SSA_NAME,
10053         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
10054         constant offset, call get_stridx_plus_constant.
10055         (get_stridx_plus_constant): New function.
10056         (zero_length_string): Don't use get_stridx here.
10057
10058         PR target/55023
10059         PR middle-end/64388
10060         * dse.c (struct insn_info): Mention frame_read set also
10061         before reload for tail calls on some targets.
10062         (scan_insn): Revert 2014-12-22 change.  Set frame_read
10063         also before reload for tail calls if
10064         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
10065         instead of add_non_frame_wild_read for non-const/memset
10066         tail calls after reload.
10067
10068 2015-01-08  Jason Merrill  <jason@redhat.com>
10069
10070         * ubsan.c (do_ubsan_in_current_function): New.
10071         (pass_ubsan::gate): Use it.
10072         * ubsan.h: Declare it.
10073         * convert.c (convert_to_integer): Use it.
10074
10075 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
10076
10077         PR target/64338
10078         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
10079         compare_code when it is unconditionally overwritten afterwards.
10080         Use ix86_reverse_condition instead of reverse_condition.  Don't
10081         change code if *reverse_condition* returned UNKNOWN and don't
10082         swap ct/cf and negate diff in that case.
10083
10084 2015-01-08  Mike Stump  <mikestump@comcast.net>
10085
10086         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
10087         (pass_tsan_O0::gate): Likewise.
10088         * extend.texi (Function Attributes): Add no_sanitize_thread
10089         documentation.
10090
10091 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
10092
10093         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
10094         for registering builtins.
10095         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
10096         add -fopenmp to the argv_obstack used when invoking
10097         compile_for_target.
10098
10099         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
10100         add "-m32" or "-m64" to argv_obstack.
10101         (generate_host_descr_file): Likewise, when invoking host_compiler.
10102         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
10103         ld.
10104
10105 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
10106
10107         * config/sh/sh-mem.cc: Use constant as second operand when emitting
10108         tstsi_t insns.
10109
10110 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
10111
10112         PR target/55212
10113         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
10114         constant load if constant operand fits into I08.
10115
10116 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
10117
10118         PR sanitizer/64336
10119         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
10120         and TREE_THIS_VOLATILE for MEM_REFs.
10121         (build5_stat): Fix up initialization of TREE_READONLY and
10122         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
10123
10124 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
10125
10126         PR target/64533
10127         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
10128         of r for the second alternative of the destination operand.
10129
10130 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
10131
10132         PR target/36557
10133         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
10134
10135 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
10136
10137         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
10138         keywords.
10139         ([-fivar-visibility], [-fvisibility]): Likewise.
10140
10141 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
10142
10143         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
10144         the file where @code, @command, etc is more appropriate.
10145
10146 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
10147
10148         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
10149         of -mrecip= documentation.
10150
10151 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
10152
10153         PR target/64505
10154         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
10155         correct reload handler if -m32 -mpowerpc64 is used.
10156
10157 2015-01-06  Tom de Vries  <tom@codesourcery.com>
10158
10159         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
10160
10161 2015-01-08  Christian Bruel  <christian.bruel@st.com>
10162
10163         PR target/64507
10164         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
10165
10166 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10167
10168         PR tree-optimization/63259
10169         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
10170         if optab exists for 16bit byteswap.
10171
10172 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
10173
10174         * opts.c (common_handle_option): Add support for
10175         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
10176         * doc/invoke.texi: Document -fno-sanitize=all,
10177         -f{,no-}sanitize-recover=all.  Document that
10178         -fsanitize=float-cast-overflow is not enabled
10179         by -fsanitize=undefined.  Fix up documentation
10180         of -f{,no-}sanitize-recover.
10181
10182 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
10183
10184         * config.gcc: Add Visium support.
10185         * configure.ac: Likewise.
10186         * configure: Regenerate.
10187         * doc/extend.texi (interrupt attribute): Add Visium.
10188         * doc/invoke.texi: Document Visium options.
10189         * doc/install.texi: Document Visium target.
10190         * doc/md.texi: Document Visium constraints.
10191         * common/config/visium: New directory.
10192         * config/visium: Likewise.
10193
10194 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
10195
10196         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
10197         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
10198
10199 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
10200
10201         * combine.c (combine_validate_cost): Do not count the cost of a
10202         split I2 twice.  Do not display it twice in the dump, either.
10203
10204 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
10205
10206         Revert parts of r219199.
10207         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
10208         <inttypes.h>.
10209         ([-Wtraditional]): Restore markup on <limits.h>.
10210
10211 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
10212
10213         PR c++/31397
10214         * doc/invoke.texi: Document -Wsuggest-override.
10215
10216 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
10217
10218         PR rtl-optimization/64287
10219         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
10220         (process_options): Disable flag_ipa_ra if profiling.
10221
10222 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
10223
10224         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
10225
10226 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
10227
10228         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
10229         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
10230         put under #if TARGET_LOOPS guard.
10231
10232 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
10233
10234         * config/i386/i386.c (output_387_binary_op): Use std::swap.
10235
10236 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
10237
10238         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
10239         * rtl.h (refers_to_regno_p): Add overload.
10240         * cse.c: Use it.
10241         * bt-load.c: Likewise.
10242         * combine.c: Likewise.
10243         * df-scan.c: Likewise.
10244         * sched-deps.c: Likewise.
10245         * config/s390/s390.c: Likewise.
10246         * config/m32r/m32r.c: Likewise.
10247         * config/rs6000/spe.md: Likewise.
10248         * config/rs6000/rs6000.c: Likewise.
10249         * config/pa/pa.c: Likewise.
10250         * config/stormy16/stormy16.c: Likewise.
10251         * config/cris/cris.c: Likewise.
10252         * config/arc/arc.md: Likewise.
10253         * config/arc/arc.c: Likewise.
10254         * config/sh/sh.md: Likewise.
10255         * config/sh/sh.c: Likewise.
10256         * config/frv/frv.c: Likewise.
10257
10258 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
10259
10260         PR sanitizer/64265
10261         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
10262         call as cleanup of the whole body.
10263         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
10264         * tsan.c (replace_func_exit): New function.
10265         (instrument_func_exit): Moved earlier.
10266         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
10267         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
10268         been found.
10269         (tsan_pass): Don't call instrument_func_exit.
10270         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
10271         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
10272         inlining.
10273
10274         PR sanitizer/64344
10275         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
10276         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
10277         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
10278         if the result is integer_zerop, return NULL_TREE.
10279         * convert.c (convert_to_integer): Pass expr as ARG.
10280
10281         PR tree-optimization/64465
10282         * tree-inline.c (redirect_all_calls): During inlining
10283         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
10284         changed the stmt to a non-throwing call.
10285
10286 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
10287
10288         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
10289         etc markup throughout the file.
10290
10291 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10292
10293         Enable experimental TSAN support for Ada.
10294         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
10295
10296 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
10297
10298         PR tree-optimization/64494
10299         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
10300         clear SSA_NAME_ANTI_RANGE_P flag.
10301
10302 2015-01-05  Marek Polacek  <polacek@redhat.com>
10303
10304         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
10305
10306 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
10307
10308         Update copyright years.
10309
10310         * gcc.c (process_command): Update copyright notice dates.
10311         * gcov-dump.c: Ditto.
10312         * gcov.c: Ditto.
10313         * doc/cpp.texi: Bump @copying's copyright year.
10314         * doc/cppinternals.texi: Ditto.
10315         * doc/gcc.texi: Ditto.
10316         * doc/gccint.texi: Ditto.
10317         * doc/gcov.texi: Ditto.
10318         * doc/install.texi: Ditto.
10319         * doc/invoke.texi: Ditto.
10320
10321         * auto-profile.c, auto-profile.h: Fix up Copyright line.
10322
10323 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
10324
10325         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
10326         verb tense, etc.
10327         ([-fvtable-verify], [-fvtv-debug]): Likewise.
10328         ([-Wabi]): Likewise.
10329         ([-fmessage-length]): Likewise.
10330         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
10331         ([-Wno-discarded-qualifiers]): Likewise.
10332         ([-Wnodiscarded-array-qualifiers]): Likewise.
10333         ([-Wno-virtual-move-assign]): Likewise.
10334         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
10335         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
10336         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
10337         ([-fsanitize-undefined-trap-on-error]): Likewise.
10338         ([-floop-interchange]): Likewise.
10339         ([-ftree-coalesce-inlined-vars]): Likewise.
10340         ([-fvect-cost-model]): Likewise.
10341         ([-flto]): Likewise.
10342         ([--param]): Likewise.
10343         (Spec Files): Likewise.
10344         ([-mstrict-align]): Likewise.
10345         ([-mfix-cortex-a53-835769]): Likewise.
10346         ([-march], [-mtune]): Likewise.
10347         ([-mpic-register]): Likewise.
10348         ([-munaligned-access]): Likewise.
10349         ([-msp8]): Likewise.
10350         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
10351         (AVR Built-in Macros): Likewise.
10352         ([-mpreferred-stack-boundary]): Likewise.
10353         ([-mtune-crtl]): Likewise.
10354         ([-mashf]): Likewise.
10355         ([-mmcu=]): Likewise.
10356         ([-minrt]): Likewise.
10357         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
10358         ([-mupper-regs]): Likewise.
10359         ([-matomic-model]): Likewise.
10360         ([-mdiv]): Likewise.
10361         ([-mzdcbranch]): Likewise.
10362         ([-mdisable-callt]): Likewise.
10363         ([-msoft-float]): Likewise.
10364         ([-m8byte-align]): Likewise.
10365         ([-fstack-reuse]): Likewise.
10366
10367 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
10368
10369         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
10370         Fix markup, light copy-editing.
10371         ([-fauto-profile]): Rewrite to fix formatting and content
10372         problems.
10373
10374 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
10375
10376         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
10377         Copy-edit description.
10378         ([-fisolate-erroneous-paths-attribute]): Likewise.
10379         * common.opt (fisolate-erroneous-paths-dereference):
10380         Copy-edit description.
10381         (fisolate-erroneous-paths-attribute): Likewise.
10382
10383 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
10384
10385         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
10386         tidy grammar.
10387
10388 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
10389
10390         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
10391         ([-fvtv-debug]): Likewise.
10392         ([-Wc++-compat]): Likewise.
10393         ([-Wc++11-compat]): Likewise.
10394         ([-Wc++14-compat]): Likewise.
10395         ([-Wno-sized-deallocation]): Likewise.
10396         ([-femit-class-debug-always]): Likewise.
10397         ([-femit-struct-debug-detailed]): Likewise.
10398         ([-fno-keep-inline-dllexport]): Likewise.
10399         ([-fira-algorithm]): Likewise.
10400         ([-fira-region]): Likewise.
10401         ([-flra-remat]): Likewise.
10402         ([-fipa-ra]): Likewise.
10403         ([-fhoist-adjacent-loads]): Likewise.
10404         ([-fisolate-erroneous-paths-dereference]): Likewise.
10405         ([-fisolate-erroneous-paths-attribute]): Likewise.
10406         ([-ftree-switch-conversion]): Likewise.
10407         ([-ftree-tail-merge]): Likewise.
10408         ([-ftree-loop-if-convert]): Likewise.
10409         ([-ftree-loop-if-convert-stores]): Likewise.
10410         ([-ftree-loop-distribution]): Likewise.
10411         ([-ftree-loop-distribute-patterns]): Likewise.
10412         ([-flto-compression-level]): Likewise.
10413         ([-flto-report]): Likewise.
10414         ([-flto-report-wpa]): Likewise.
10415         ([-fuse-linker-plugin]): Likewise.
10416         ([-mfix-cortex-a53-835769]): Likewise.
10417         ([-mno-fix-cortex-a53-835769]): Likewise.
10418         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
10419         explicit listing; add a note to the discussion indicating they
10420         exist.  Reorder table to group similar options.  Add missing
10421         @opindex entries.  Add @need commands throughout the table to
10422         allow it to be split across multiple pages.
10423         ([-m8bit-idiv]): Fix @opindex.
10424         ([-mavx256-split-unaligned-load]): Likewise.
10425         ([-mavx256-split-unaligned-store]): Likewise.
10426         ([-mstack-protector-guard]): Likewise.
10427         ([-mcpu=]): Likewise.
10428         ([-mcpu]): Likewise.
10429         ([-mpointer-size=]): Likewise.
10430
10431 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
10432
10433         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
10434         instead of `m' constraint.  Likewise for unnamed movb comparison
10435         patterns using reg_before_reload_operand predicate.
10436         * config/pa/predicates.md (reg_before_reload_operand): Tighten
10437         predicate to reject register index and LO_SUM DLT memory forms
10438         after reload.
10439
10440 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
10441
10442         * doc/invoke.texi (Option Summary): Fix spelling of
10443         -fdevirtualize-at-ltrans.
10444         ([-fdevirtualize]): Fix markup.
10445         ([-fdevirtualize-speculatively]): Fix typo.
10446         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
10447         implementor-speaky.
10448         * common.opt (fdevirtualize-at-ltrans): Likewise.
10449         * ipa-devirt.c: Fix typos in comments throughout the file.
10450         (ipa_devirt): Fix typos in format strings for dump output.
10451
10452 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
10453
10454         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
10455         discussion of defaults, light copy-editing.
10456
10457 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10458
10459         * tsan.c (instrument_expr): corrected previous checkin.
10460
10461 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10462
10463         Instrument bit field and unaligned accesses for TSAN.
10464         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
10465         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
10466         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
10467         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
10468         unaligned memory regions.
10469
10470 2015-01-01  Anthony Green  <green@moxielogic.com>
10471
10472         * config/moxie/predicates.md (moxie_general_movsrc_operand):
10473         Restrict move source register offsets to 16 bits.
10474 \f
10475 Copyright (C) 2015 Free Software Foundation, Inc.
10476
10477 Copying and distribution of this file, with or without modification,
10478 are permitted in any medium without royalty provided the copyright
10479 notice and this notice are preserved.