GCC v8.2
[gcc.git] / gcc / ChangeLog-2014
1 2014-12-31  Uros Bizjak  <ubizjak@gmail.com>
2
3         * diagnostic.c (build_message_string): Use xvasprintf.
4         * final.c (output_operand_lossage): Use xvasprintf and xasprintf.
5         * lto-wrapper.c (merge_and_complain): Use xasprintf.
6         * targhooks.c (pch_option_mismatch): Ditto.
7         * tree-ssa-structalias.c (create_function_info_for): Ditto.
8         (create_variable_info_for_1): Ditto.
9         * tree-vect-data-refs.c (vect_create_destination_var): Ditto.
10
11 2014-12-30  Anthony Green  <green@moxielogic.com>
12
13         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2):
14         Switch from define_insn_and_split to define_insn.  Fix instruction
15         length.
16
17 2014-12-30  Uros Bizjak  <ubizjak@gmail.com>
18
19         * config/i386/i386.c (ix86_legitimize_address): Declare
20         "changed" as bool.
21         (ix86_expand_unary_operator): Declare "matching_memory" as bool.
22         (ix86_avoid_jump_mispredicts): Declare "isjump" as bool.
23
24 2014-12-30  Uros Bizjak  <ubizjak@gmail.com>
25
26         * config/i386/i386.c (ix86_reassociation_width): Remove unneeded
27         variable "res".
28
29 2014-12-30  Jan Hubicka  <hubicka@ucw.cz>
30
31         * ipa-inline-analysis.c (estimate_function_body_sizes): Do not
32         free node params when called late with early=true.
33
34 2014-12-30  Uros Bizjak  <ubizjak@gmail.com>
35
36         * config/i386/i386.c (ix86_legitimize_address): Use std::swap.
37         (ix86_split_fp_branch): Ditto.
38         (ix86_expand_int_movcc): Ditto.
39         (ix86_expand_sse_compare): Ditto.
40
41 2014-12-30  Jan Hubicka  <hubicka@ucw.cz>
42
43         * ipa-inline-analysis.c (edge_set_predicate): Reset size/time when
44         target is UNREACHABLE.
45         (evaluate_properties_for_edge): If call statemet is available, use it
46         to determine compile time constants.
47         (estimate_function_body_sizes): Enable predicates for early inliner.
48         (estimate_calls_size_and_time): Speedup.
49         (inline_merge_summary): Evaluate properties for early inliner, too.
50
51 2014-12-29  Steve Ellcey  <sellcey@mips.com>
52
53         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Add exceptions
54         for mips32[r1] and mips64[r1] with -mnan=2008.
55         * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
56
57 2014-12-27  H.J. Lu  <hongjiu.lu@intel.com>
58
59         PR target/64409
60         * config/i386/i386.c (ix86_function_type_abi): Issue an error
61         when ms_abi attribute is used with x32.
62
63 2014-12-27  Anthony Green  <green@moxielogic.com>
64
65         * config/moxie/moxie-protos.h (moxie_offset_address_p): Define.
66         * config/moxie/constraints.md (B): Replace inline test with call
67         to moxie_offset_address_p.
68         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Limit offset
69         addressing to 16-bit offsets.
70         * config/moxie/moxie.c (moxie_asm_trampoline_template): Remove
71         nop, which is no longer needed for aligned write to trampoline.
72         (moxie_trampoline_init): Adjust for smaller trampoline.
73         (moxie_offset_address_p): New function.
74         * config/moxie/moxie.md (*movsi, *movhi, *movqi): Adjust length
75         attr for shorter ldo/sto instructions.
76         * config/moxie/predicates.md: Only allow REG+CONST_INT for offset
77         load/stores.
78
79 2014-12-27  Jan hubicka  <hubicka@ucw.cz>
80
81         * ipa-inline.c (max_count_real, max_relbenefit_real,
82         half_int_min_real): Remove.
83         (cgraph_freq_base_rec, percent_rec): New.
84         (compute_uninlined_call_time, compute_inlined_call_time,
85         big_speedup_p, relative_time_benefit, edge_badness): Use sreals.
86         (update_edge_key): Update dumping.
87         (inline_small_functions): Speedup maintainance of the heap.
88         (ipa_inline): Initialize cgraph_freq_base_rec and
89         percent_rec.
90
91 2014-12-27  Jan hubicka  <hubicka@ucw.cz>
92
93         * sreal.h (sreal::shift): Fix sanity check.
94
95 2014-12-27  Uros Bizjak  <ubizjak@gmail.com>
96
97         * config/i386/mmx.md (*vec_extractv2sf_1): Do not emit unpckhps.
98         Emit movshdup for SSE3 and shufps otherwise.
99         (*vec_extractv2si_1): Do not emit punpckhdq and unpckhps.
100         Emit pshufd for SSE2 and shufps otherwise.
101
102 2014-12-24  Oleg Endo  <olegendo@gcc.gnu.org>
103
104         PR target/51244
105         * config/sh/sh.md (*mov_t_msb_neg): Convert split into insn_and_split.
106
107 2014-12-24  Uros Bizjak  <ubizjak@gmail.com>
108
109         * gengtype.h (xasprintf): Remove declaration.
110         * gengtype.c (xasprintf): Remove.
111
112 2014-12-24  Nick Clifton  <nickc@redhat.com>
113
114         PR target/64160
115         * config/msp430/msp430.md (addsi splitter): Do not split when the
116         destination partially overlaps the source.
117
118 2014-12-24  Anthony Green  <green@moxielogic.com>
119
120         * config/moxie/moxie.opt (mul.x): New option.
121         * doc/invoke.texi (Moxie Options): Document -mmul.x.
122         * config/moxie/moxie.md (addsi3, mulsi3, subsi3, divsi3, udivs3):
123         Remove trailing ".l" from add, mul, sub, div and udiv
124         instructions.
125         (<mul>si3_highpart, <mul>sidi3): Add mul.x & umul.x instruction
126         support (high 32-bit result of multiply).
127         * config/moxie/moxie.c (moxie_option_override): Force availability
128         of mul.x instructions for moxiebox target.
129         * config/moxie/moxiebox.h (TARGET_MOXIEBOX): Define.
130
131 2014-12-22  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
132
133         * ira-build.c (ira_flattening): Add the current
134         object to OBJECTS_LIVE after traversing OBJECTS_LIVE.
135
136 2014-12-23  Martin Liska  <mliska@suse.cz>
137
138         PR ipa/63851
139         PR ipa/63852
140         * ipa-icf.c (sem_function::merge): Ignore merge operation
141         for a thunk created from static chain.
142         * ipa-icf-gimple.c (func_checker::compatible_types_p): Verify that
143         types have same restrict flag.
144
145 2014-12-22  John David Anglin  <danglin@gcc.gnu.org>
146
147         PR target/55023
148         * dse.c (scan_insn): Treat sibling call as though it does a wild read.
149
150 2014-12-22  Bin Cheng  <bin.cheng@arm.com>
151
152         PR rtl-optimization/62151
153         * combine.c (try_combine): New local variables local_elim_i1
154         and local_elim_i0.  Set elim_i1 and elim_i0 using the local
155         version variables.  Distribute notes from i0notes or i1notes
156         using the local variables.
157
158 2014-12-22  Martin Liska  <mliska@suse.cz>
159
160         * cgraphunit.c (symbol_table::process_new_functions): New
161         inline_summaries is used.
162         * ipa-cp.c (ipcp_cloning_candidate_p): Likewise.
163         (devirtualization_time_bonus): Likewise.
164         (estimate_local_effects): Likewise.
165         (ipcp_propagate_stage): Likewise.
166         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Likewise.
167         (evaluate_properties_for_edge): Likewise.
168         (inline_summary_alloc): Likewise.
169         (reset_inline_summary): New inline_summary argument is introduced.
170         (inline_summary_t::remove): New function.
171         (inline_summary_t::duplicate): Likewise.
172         (dump_inline_edge_summary): New inline_summaries is used.
173         (dump_inline_summary): Likewise.
174         (estimate_function_body_sizes): Likewise.
175         (compute_inline_parameters): Likewise.
176         (estimate_edge_devirt_benefit): Likewise.
177         (estimate_node_size_and_time): Likewise.
178         (inline_update_callee_summaries): Likewise.
179         (inline_merge_summary): Likewise.
180         (inline_update_overall_summary): Likewise.
181         (simple_edge_hints): Likewise.
182         (do_estimate_edge_time): Likewise.
183         (estimate_time_after_inlining): Likewise.
184         (estimate_size_after_inlining): Likewise.
185         (do_estimate_growth): Likewise.
186         (growth_likely_positive): Likewise.
187         (inline_generate_summary): Likewise.
188         (inline_read_section): Likewise.
189         (inline_read_summary): Likewise.
190         (inline_write_summary): Likewise.
191         (inline_free_summary): Likewise.
192         * ipa-inline-transform.c (clone_inlined_nodes): Likewise.
193         (inline_call): Likewise.
194         * ipa-inline.c (caller_growth_limits): Likewise.
195         (can_inline_edge_p): Likewise.
196         (want_early_inline_function_p): Likewise.
197         (compute_uninlined_call_time): Likewise.
198         (compute_inlined_call_time): Likewise.
199         (big_speedup_p): Likewise.
200         (want_inline_small_function_p): Likewise.
201         (edge_badness): Likewise.
202         (update_caller_keys): Likewise.
203         (update_callee_keys): Likewise.
204         (recursive_inlining): Likewise.
205         (inline_small_functions): Likewise.
206         (inline_to_all_callers): Likewise.
207         (dump_overall_stats): Likewise.
208         (early_inline_small_functions): Likewise.
209         * ipa-inline.h: New class inline_summary_t replaces
210         vec<inline_summary_t>.
211         * ipa-split.c (execute_split_functions): New inline_summaries is used.
212         * ipa.c (walk_polymorphic_call_targets): Likewise.
213         * tree-sra.c (ipa_sra_preliminary_function_checks): Likewise.
214
215 2014-12-22  Martin Liska  <mliska@suse.cz>
216
217         * auto-profile.c: Include of symbol-summary.h is added.
218         * cgraph.c: Likewise.
219         * cgraphbuild.c: Likewise.
220         * cgraphclones.c: Likewise.
221         * cgraphunit.c: Likewise.
222         * ipa-cp.c: Likewise.
223         * ipa-devirt.c: Likewise.
224         * ipa-icf.c: Likewise.
225         * ipa-inline-analysis.c (evaluate_properties_for_edge): New
226         ipa_node_params_sum data structure is used.
227         (inline_node_duplication_hook): Likewise.
228         (estimate_function_body_sizes): Likewise.
229         (remap_edge_change_prob): Likewise.
230         (inline_merge_summary): Likewise.
231         * ipa-inline-transform.c: Include of symbol-summary.h is added.
232         * ipa-inline.c (early_inliner): New ipa_node_params_sum data structure
233         is used.
234         * ipa-polymorphic-call.c: Include of symbol-summary.h is added.
235         * ipa-profile.c: Include of symbol-summary.h is added.
236         * ipa-prop.c (ipa_propagate_indirect_call_infos): New
237         ipa_node_params_sum data structure is used.
238         (ipa_node_params::~ipa_node_params): New function.
239         (ipa_free_all_node_params): Destruction is simplified.
240         (ipa_node_removal_hook): Removed.
241         (ipa_add_new_function): Renamed from ipa_node_duplication_hook.
242         (ipa_node_params_t::duplicate): New function.
243         (ipa_register_cgraph_hooks): Few hooks are removed.
244         (ipa_unregister_cgraph_hooks): Likewise.
245         (ipa_prop_write_jump_functions): New ipa_node_params_sum is used.
246         * ipa-prop.h (struct ipa_node_params): Destructor introduced for
247         the structure.
248         (ipa_check_create_node_params): Vector for ipa_node_params is replaced
249         with function_summary.
250         * ipa-split.c: Include of symbol-summary.h is added.
251         * ipa-utils.c: Include of symbol-summary.h is added.
252         * ipa.c: Include of symbol-summary.h is added.
253         * omp-low.c: Include of symbol-summary.h is added.
254         * tree-inline.c: Include of symbol-summary.h is added.
255         * tree-sra.c: Include of symbol-summary.h is added.
256         * tree-ssa-pre.c: Include of symbol-summary.h is added.
257
258 2014-12-22  Martin Liska  <mliska@suse.cz>
259
260         * cgraph.h (symbol_table::allocate_cgraph_symbol): Summary UID
261         is filled up.
262         * symbol-summary.h: New file.
263         * gengtype.c (open_base_files): Add symbol-summary.h.
264         * toplev.c (general_init): Call constructor of symbol_table.
265
266 2014-12-17  Oleg Endo  <olegendo@gcc.gnu.org>
267
268         PR target/55212
269         * config/sh/sh.md (*addsi3_compact): Add parentheses around &&
270         condition.  Add comments.
271
272 2014-12-20  Segher Boessenkool  <segher@kernel.crashing.org>
273
274         PR target/64358
275         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Swap the
276         input operands if only the second is inverted.
277         * config/rs6000/rs6000.md (*boolc<mode>3_internal1 for BOOL_128):
278         Swap BOOL_REGS_OP1 and BOOL_REGS_OP2.  Correct arguments to
279         rs6000_split_logical.
280         (*boolc<mode>3_internal2 for TI2): Swap operands[1] and operands[2].
281
282 2014-12-20  Martin Uecker <uecker@eecs.berkeley.edu>
283
284         * doc/invoke.texi: Document -Wdiscarded-array-qualifiers.
285         * doc/extend.texi: Document new behavior for pointers to arrays
286         with qualifiers.
287
288 2014-12-19  Jan Hubicka  <hubicka@ucw.cz>
289
290         * hash-table.h (struct pointer_hash): Fix formating.
291         (hash_table_higher_prime_index): Declare pure.
292         (hash_table_mod2, hash_table_mod1, mul_mod): Move inline;
293         assume that uint64_t always exists.
294         (hash_table<Descriptor, Allocator, false>): Use gcc_checking_assert.
295         (hash_table<Descriptor, Allocator, false>::expand ()): Fix formating.
296         (hash_table<Descriptor, Allocator, false>::clear_slot (value_type **slot)):
297         Use checking assert.
298         * hash-table.c: Remove #if 0 code.
299         (hash_table_higher_prime_index): Use gcc_assert.
300         (mul_mod, hash-table_mod1, hash_table_mod2): move to hash-table.h
301
302 2014-12-19  Matthew Fortune  <matthew.fortune@imgtec.com>
303
304         * config.gcc: Support mips*-img-linux* and mips*-img-elf*.
305         * config/mips/mti-linux.h: Support mips32r6 as being the default arch.
306         * config/mips/t-img-elf: New.
307         * config/mips/t-img-linux: New.
308
309 2014-12-19  Matthew Fortune  <matthew.fortune@imgtec.com>
310
311         * config.gcc: Add mipsisa64r6 and mipsisa32r6 cpu support.
312         * config/mips/constraints.md (ZD): Add r6 restrictions.
313         * config/mips/gnu-user.h (DRIVER_SELF_SPECS): Add MIPS_ISA_LEVEL_SPEC.
314         * config/mips/loongson.md
315         (<u>div<mode>3, <u>mod<mode>3): Move to mips.md.
316         * config/mips/mips-cpus.def (mips32r6, mips64r6): Define.
317         * config/mips/mips-modes.def (CCF): New mode.
318         * config/mips/mips-protos.h
319         (mips_9bit_offset_address_p): New prototype.
320         * config/mips/mips-tables.opt: Regenerate.
321         * config/mips/mips.c (MIPS_JR): Use JALR $, <reg> for R6.
322         (mips_rtx_cost_data): Add pseudo-processors W32 and W64.
323         (mips_9bit_offset_address_p): New function.
324         (mips_rtx_costs): Account for R6 multiply and FMA instructions.
325         (mips_emit_compare): Implement R6 FPU comparisons.
326         (mips_expand_conditional_move): Implement R6 selects.
327         (mips_expand_conditional_trap): Account for removed trap immediate.
328         (mips_expand_block_move): Disable inline move when LWL/LWR are removed.
329         (mips_print_float_branch_condition): Update for R6 FPU branches.
330         (mips_print_operand): Handle CCF mode compares.
331         (mips_interrupt_extra_call_saved_reg_p): Do not attempt to callee-save
332         MD_REGS for R6.
333         (mips_hard_regno_mode_ok_p): Support CCF mode.
334         (mips_mode_ok_for_mov_fmt_p): Likewise.
335         (mips_secondary_reload_class): CCFmode can be loaded directly.
336         (mips_set_fast_mult_zero_zero_p): Account for R6 multiply instructions.
337         (mips_option_override): Ensure R6 is used with fp64.  Set default
338         mips_nan modes.  Check for mips_nan support.  Prevent DSP with R6.
339         (mips_conditional_register_usage): Disable MD_REGS for R6. Disable
340         FPSW for R6.
341         (mips_mulsidi3_gen_fn): Support R6 multiply instructions.
342         * config/mips/mips.h (ISA_MIPS32R6, ISA_MIPS64R6): Define.
343         (TARGET_CPU_CPP_BUILTINS): Rework for mips32/mips64.
344         (ISA_HAS_JR): New macro.
345         (ISA_HAS_HILO): New macro.
346         (ISA_HAS_R6MUL): Likewise.
347         (ISA_HAS_R6DMUL): Likewise.
348         (ISA_HAS_R6DIV): Likewise.
349         (ISA_HAS_R6DDIV): Likewise.
350         (ISA_HAS_CCF): Likewise.
351         (ISA_HAS_SEL): Likewise.
352         (ISA_HAS_COND_TRAPI): Likewise.
353         (ISA_HAS_FP_MADDF_MSUBF): Likewise.
354         (ISA_HAS_LWL_LWR): Likewise.
355         (ISA_HAS_IEEE_754_LEGACY): Likewise.
356         (ISA_HAS_IEEE_754_2008): Likewise.
357         (ISA_HAS_PREFETCH_9BIT): Likewise.
358         (MIPSR6_9BIT_OFFSET_P): New macro.
359         (BASE_DRIVER_SELF_SPECS): Use MIPS_ISA_DRIVER_SELF_SPECS.
360         (DRIVER_SELF_SPECS): Use MIPS_ISA_LEVEL_SPEC.
361         (MULTILIB_ISA_DEFAULT): Handle mips32r6 and mips64r6.
362         (MIPS_ISA_LEVEL_SPEC): Likewise.
363         (MIPS_ISA_SYNCI_SPEC): Likewise.
364         (ISA_HAS_64BIT_REGS): Likewise.
365         (ISA_HAS_BRANCHLIKELY): Likewise.
366         (ISA_HAS_MUL3): Likewise.
367         (ISA_HAS_DMULT): Likewise.
368         (ISA_HAS_DDIV): Likewise.
369         (ISA_HAS_DIV): Likewise.
370         (ISA_HAS_MULT): Likewise.
371         (ISA_HAS_FP_CONDMOVE): Likewise.
372         (ISA_HAS_8CC): Likewise.
373         (ISA_HAS_FP4): Likewise.
374         (ISA_HAS_PAIRED_SINGLE): Likewise.
375         (ISA_HAS_MADD_MSUB): Likewise.
376         (ISA_HAS_FP_RECIP_RSQRT): Likewise.
377         * config/mips/mips.md (processor): Add w32 and w64.
378         (FPCC): New mode iterator.
379         (reg): Add CCF mode.
380         (fpcmp): New mode attribute.
381         (fcond): Add ordered, ltgt and ne codes.
382         (fcond): Update code attribute.
383         (sel): New code attribute.
384         (selinv): Likewise.
385         (ctrap<mode>4): Update condition.
386         (*conditional_trap_reg<mode>): New define_insn.
387         (*conditional_trap<mode>): Update condition.
388         (mul<mode>3): Expand R6 multiply instructions.
389         (<su>mulsi3_highpart): Likewise.
390         (<su>muldi3_highpart): Likewise.
391         (mul<mode>3_mul3_loongson): Rename...
392         (mul<mode>3_mul3_hilo): To this.  Add R6 mul instruction.
393         (<u>mulsidi3_32bit_r6): New expander.
394         (<u>mulsidi3_32bit): Restrict to pre-r6 multiplies.
395         (<u>mulsidi3_32bit_r4000): Likewise.
396         (<u>mulsidi3_64bit): Likewise.
397         (<su>mulsi3_highpart_internal): Likewise.
398         (mulsidi3_64bit_r6dmul): New instruction.
399         (<su>mulsi3_highpart_r6): Likewise.
400         (<su>muldi3_highpart_r6): Likewise.
401         (fma<mode>4): Likewise.
402         (movccf): Likewise.
403         (*sel<code><GPR:mode>_using_<GPR2:mode>): Likewise.
404         (*sel<mode>): Likewise.
405         (<u>div<mode>3): Moved from loongson.md.  Add R6 instructions.
406         (<u>mod<mode>3): Likewise.
407         (extvmisalign<mode>): Require ISA_HAS_LWL_LWR.
408         (extzvmisalign<mode>): Likewise.
409         (insvmisalign<mode>): Likewise.
410         (mips_cache): Account for R6 displacement field sizes.
411         (*branch_fp): Rename...
412         (*branch_fp_<mode>): To this.  Add CCFmode support.
413         (*branch_fp_inverted): Rename...
414         (*branch_fp_inverted_<mode>): To this.  Add CCFmode support.
415         (s<code>_<mode>): Rename...
416         (s<code>_<SCALARF:mode>_using_<FPCC:mode>): To this.  Add FCCmode
417         condition support.
418         (s<code>_<mode> swapped): Rename...
419         (s<code>_<SCALARF:mode>_using_<FPCC:mode> swapped): To this. Add
420         CCFmode condition support.
421         (mov<mode>cc GPR): Expand R6 selects.
422         (mov<mode>cc FPR): Expand R6 selects.
423         (*tls_get_tp_<mode>_split): Do not .set push for >= mips32r2.
424         * config/mips/netbsd.h (TARGET_CPU_CPP_BUILTINS): Update similarly to
425         mips.h.
426         (ASM_SPEC): Add mips32r6, mips64r6.
427         * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Update
428         for mips32r6/mips64r6.
429         * doc/invoke.texi: Document -mips32r6,-mips64r6.
430         * doc/md.texi: Update comment for ZD constraint.
431
432 2014-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
433
434         PR target/64268
435         * combine.c (try_combine): Immediately return if any of I0,I1,I2
436         are the same insn.
437
438 2014-12-19  Alan Lawrence  <alan.lawrence@arm.com>
439
440         * config/aarch64/aarch64.c (<LOGICAL:optab>_one_cmpl<mode>3):
441         Reparameterize to...
442         (<NLOGICAL:optab>_one_cmpl<mode>3): with extra SIMD-register variant.
443         (xor_one_cmpl<mode>3): New define_insn_and_split.
444
445         * config/aarch64/iterators.md (NLOGICAL): New define_code_iterator.
446
447 2014-12-19  Alan Lawrence  <alan.lawrence@arm.com>
448
449         * config/aarch64/aarch64.md (<optab><mode>3, one_cmpl<mode>2):
450         Add SIMD-register variant.
451         * config/aarch64/iterators.md (Vbtype): Add value for SI.
452
453 2014-12-19  Alan Lawrence  <alan.lawrence@arm.com>
454
455         * config/aarch64/aarch64.md (subdi3, adddi3_aarch64): Don't penalize
456         SIMD reg variant.
457
458 2014-12-19  Martin Liska  <mliska@suse.cz>
459
460         PR ipa/63569
461         * ipa-icf-gimple.c (func_checker::compare_operand): Add missing
462         comparison for volatile flag.
463
464 2014-12-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
465
466         * doc/invoke.texi (ARM options): Remove mention of Advanced RISC
467         Machines.
468
469 2014-12-19  Xingxing Pan  <xxingpan@marvell.com>
470
471         * config/arm/cortex-a9-neon.md (cortex_a9_neon_vmov): Change
472         reservation to cortex_a9_neon_dp.
473
474 2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>
475
476         * config/sh/sh.c (prepare_move_operands): Split HI/QImode load/store
477         to two move insns via r0.
478
479 2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>
480
481         * config/sh/predicates.md (arith_or_int_operand): New predicate.
482         * config/sh/sh.md (addsi3): Use arith_or_int_operand for operand 2.
483         Return fail if operands[0] and operands[1] are overlap when
484         operands[2] is integer constant.
485         (*addsi3_compact): Make it define_insn_and_split which splits
486         reg0 := reg1 + constant to reg0 = constant and reg0 := reg0 + reg1.
487
488 2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>
489
490         * config/sh/sh-protos.h (sh_movsf_ie_ra_split_p): Declare.
491         * config/sh/sh.c (sh_movsf_ie_ra_split_p): New function.
492         * config/sh/sh.md (movsi_ie): Use "mr" constraint for the 8-th
493         altarnative of operand 0.
494         (movesf_ie): Use "X" constraint instead of "Bsc".
495         (movsf_ie_ra): New insn_and_split.
496         (movsf): Use movsfie_ra when lra_in_progress is true.
497
498 2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>
499
500         * config/sh/predicates.md (general_movsrc_operand): Allow only
501         valid plus address expressions.
502         (general_movdst_operand): Likewise.
503         (t_reg_operand): Allow (zero_extend (reg t)).
504         * config/sh/sh-protos.h (sh_hard_regno_caller_save_mode): Declare.
505         * config/sh/sh.c (sh_hard_regno_caller_save_mode): New function.
506         (sh_secondary_reload): Return NO_REGS instead of FPUL_REGS in one
507         case.
508         * config/sh/sh.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
509         * config/sh/sh.md (untyped_call): Clobber function value
510         registers before call.
511
512 2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>
513
514         * config/sh/sh.c (sh_lra_p): New function.
515         (TARGET_LRA_P): Define.
516         (sh_legitimize_reload_address): Return false if sh_lra_p is true.
517         * config/sh/sh.opt (mlra): New option.
518
519 2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>
520
521         * lra-constraints.c (process_address_1): Try if target can split
522         displacement with targetm.legitimize_address_displacement.
523         * target.def (legitimize_address_displacement): New hook.
524         * targhooks.c (default_legitimize_address_displacement): New function.
525         * targhooks.h (default_legitimize_address_displacement): Declare.
526         * config/sh/sh.c (sh_legitimize_address_displacement): New function.
527         (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.
528         * doc/tm.texi.in (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): New hook.
529         * doc/tm.texi: Regenerate.
530
531 2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>
532
533         * lra-constraints.c (get_equiv): Don't return memory equivalence
534         when targetm.cannot_substitute_mem_equiv_p is true.
535         * target.def (cannot_substitute_mem_equiv_p): New hook.
536         * config/sh/sh.c (sh_cannot_substitute_mem_equiv_p): New function.
537         (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): Define.
538         * doc/tm.texi.in (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): New hook.
539         * doc/tm.texi: Regenerate.
540
541 2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>
542
543         * lra-constraints.c (process_address_1): Swap base_term and
544         index_term if INDEX_REG_CLASS is assigned to base_term already
545         when INDEX_REG_CLASS is a single register class.
546
547 2014-12-18  Vladimir Makarov  <vmakarov@redhat.com>
548
549         * lra-constraints.c (lra-constraints.c): Exchange places of sclass
550         and dclass.
551
552 2014-12-18  Vladimir Makarov  <vmakarov@redhat.com>
553
554         PR rtl-optimization/64291
555         * lra-remat.c (bad_for_rematerialization_p): Add UNPSEC_VLOATILE.
556         (create_cands): Process only output reload insn with potential
557         cands.
558
559 2014-12-18  H.J. Lu  <hongjiu.lu@intel.com>
560
561         * config/i386/i386.c (ix86_expand_call): Skip setting up RAX
562         register for -mskip-rax-setup when there are no parameters
563         passed in vector registers.
564         * config/i386/i386.opt (mskip-rax-setup): New option.
565         * doc/invoke.texi: Document -mskip-rax-setup.
566
567 2014-12-18  Alan Lawrence  <alan.lawrence@arm.com>
568
569         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): Handle shift
570         by 64 by moving const0_rtx.
571         (aarch64_ushr_simddi): Delete.
572
573         * config/aarch64/aarch64.md (enum unspec): Delete UNSPEC_USHR64.
574
575 2014-12-18  Alan Lawrence  <alan.lawrence@arm.com>
576
577         * config/aarch64/aarch64.md (enum "unspec"): Remove UNSPEC_SSHR64.
578
579         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): Change shift
580         amount to 63 if was 64.
581         (aarch64_sshr_simddi): Remove.
582
583 2014-12-18  Wilco Dijkstra  <wilco.dijkstra@arm.com>
584
585         * gcc/config/aarch64/aarch64.c (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL):
586         Define.
587         (aarch64_min_divisions_for_recip_mul): New function.
588
589 2014-12-18  Wilco Dijkstra  <wilco.dijkstra@arm.com>
590
591         * config/aarch64/aarch64-protos.h (tune-params): Add code alignment
592         tuning parameters.
593         * gcc/config/aarch64/aarch64.c (generic_tunings): Add code alignment
594         tuning parameters.
595         (cortexa53_tunings): Likewise.
596         (cortexa57_tunings): Likewise.
597         (thunderx_tunings): Likewise.
598         (aarch64_override_options): Use new alignment tunings.
599
600 2014-12-18  Martin Liska  <mliska@suse.cz>
601
602         PR tree-optimization/64330
603         * ipa-icf.c (sem_variable::parse): Add checking
604         for externally visible symbols and do not introduce
605         an alias for an external declaration.
606
607 2014-12-18  Jan Hubicka  <hubicka@ucw.cz>
608
609         PR bootstrap/63573
610         * tree-inline.c (remap_gimple_stmt): Handle gimple_call_from_thunk_p
611         predicate.
612
613 2014-12-18  Martin Liska  <mliska@suse.cz>
614
615         PR ipa/64146
616         * ipa-icf.c (sem_function::merge): Check for
617         decl_binds_to_current_def_p is newly added to merge operation.
618
619 2014-12-18  Bin Cheng  <bin.cheng@arm.com>
620
621         PR tree-optimization/62178
622         * tree-ssa-loop-ivopts.c (cheaper_cost_with_cand): New function.
623         (iv_ca_replace): New function.
624         (try_improve_iv_set): New parameter try_replace_p.
625         Break local optimal fixed-point by calling iv_ca_replace.
626         (find_optimal_iv_set_1): Pass new argument to try_improve_iv_set.
627
628 2014-12-17  Dehao Chen  <dehao@google.com>
629
630         * auto-profile.c (afdo_annotate_cfg): Invoke update_ssa in the right
631         place.
632         (auto_profile): Recompute inline summary after processing cgraph node.
633
634 2014-12-17  Oleg Endo  <olegendo@gcc.gnu.org>
635
636         PR target/51244
637         * config/sh/sh_treg_combine.cc (is_conditional_insn): New function.
638         (cbranch_trace): Add member rtx* condition_rtx_in_insn, initialize it
639         accordingly in constructor.
640         (cbranch_trace::branch_condition_rtx_ref): New function.
641         (cbranch_trace::branch_condition_rtx): Use branch_condition_rtx_ref.
642         (sh_treg_combine::try_invert_branch_condition): Invert condition rtx
643         in insn using reversed_comparison_code and validate_change instead of
644         invert_jump_1.
645         (sh_treg_combine::execute): Look for conditional insns in basic blocks
646         in addition to conditional branches.
647         * config/sh/sh.md (*movsicc_div0s): Remove combine patterns.
648
649 2014-12-17  Oleg Endo  <olegendo@gcc.gnu.org>
650
651         PR target/51244
652         * config/sh/sh_treg_combine.cc (sh_treg_combine::try_optimize_cbranch):
653         Combine ccreg inversion and cbranch into inverted cbranch.
654
655 2014-12-17  Vladimir Makarov  <vmakarov@redhat.com>
656
657         * lra-constraints.c (process_alt_operands): Remove non
658         allocatable hard regs when considering
659         ira_prohibited_class_mode_regs.
660
661 2014-12-17  Jan Hubicka  <hubicka@ucw.cz>
662
663         * sreal.h (sreal::normalize): Implement inline.
664         (sreal::normalize_up): New function.
665         (sreal::normalize_down): New function.
666         * sreal.c (sreal::normalize): Remove.
667
668 2014-12-17  James Greenhalgh  <james.greenhalgh@arm.com>
669
670         * config/aarch64/aarch64.md (generic_sched): Delete it.
671
672 2014-12-17  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
673
674         * config/msp430/msp430.c (msp430_asm_output_addr_const_extra): Fix
675         unused argument warning.
676
677 2014-12-17  Pierre-Marie de Rodat  <derodat@adacore.com>
678
679         * dwarf2out.h (struct array_descr_info): Remove the base_decl field.
680         * dwarf2out.c (enum dw_scalar_form): New.
681         (struct loc_descr_context): New.
682         (add_scalar_info): New.
683         (add_bound_info): Add a context parameter.  Use add_scalar_info.
684         (loc_list_from_tree): Add a context parameter.  Handle PLACEHOLDER_EXPR
685         nodes for type-related expressions.  Likewise for base declarations.
686         (loc_descriptor_from_tree): Add a context parameter.
687         (subrange_type_die): Update calls to add_bound_info.
688         (tls_mem_loc_descriptor): Likewise.
689         (loc_list_for_address_of_addr_expr_of_indirect_ref): Add a context
690         parameter.  Update calls to loc_list_from_tree.
691         (add_subscript_info): Update calls to add_bound_info.
692         (gen_array_type_die): Update calls to loc_list_from_tree and to
693         add_bound_info.
694         (descr_info_loc): Remove.
695         (add_descr_info_field): Remove.
696         (gen_descr_array_type_die): Switch add_descr_info_field calls into
697         add_scalar_info/add_bound_info ones.
698         (gen_subprogram_die): Update calls to loc_list_from_tree.
699         (gen_variable_die): Likewise.
700
701 2014-12-17  Pierre-Marie de Rodat  <derodat@adacore.com>
702
703         * dwarf2out.c (print_loc_descr): New.
704         (print_dw_val): New.
705         (print_attribute): New.
706         (print_loc_descr): New.
707         (print_die): Use print_dw_val.
708         (debug_dwarf_loc_descr): New.
709         * dwarf2out.h (debug_dwarf_loc_descr): New declaration.
710
711 2014-12-17  Pierre-Marie de Rodat  <derodat@adacore.com>
712
713         * dwarf2out.c (gen_type_die_with_usage): Enable the array lang-hook
714         even when (dwarf_version < 3 && dwarf_strict).
715         (gen_descr_array_die): Do not output DW_AT_data_locationn,
716         DW_AT_associated, DW_AT_allocated and DW_AT_byte_stride DWARF
717         attributes when (dwarf_version < 3 && dwarf_strict).
718
719 2014-12-17  Pierre-Marie de Rodat  <derodat@adacore.com>
720
721         * dwarf2out.h (enum array_descr_ordering): New.
722         (array_descr_dimen): Add a bounds_type structure field.
723         (struct array_descr_info): Add a field to hold index type information
724         and another one to hold ordering information.
725         * dwarf2out.c (gen_type_die_with_usage): Get the main variant before
726         invoking the array descriptor language hook.  Initialize the
727         array_descr_info structure before calling the lang-hook.
728         (gen_descr_array_type_die): Use gen_type_die if not processing the main
729         type variant.  Replace Fortran-specific code with generic one using
730         this new field.  Add a GNAT descriptive type, if any.  Output type
731         information for the array bound subrange, if any.
732
733 2014-12-17  H.J. Lu  <hongjiu.lu@intel.com>
734             Jakub Jelinek  <jakub@redhat.com>
735             Uros Bizjak  <ubizjak@gmail.com>
736
737         PR target/61296
738         * config/i386/i386-opts.h (ix86_align_data): New enum.
739         * config/i386/i386.c (ix86_data_alignment): Return the ABI
740         alignment value for -malign-data=abi, the cachine line size
741         for -malign-data=cacheline and the older GCC compatible
742         alignment value for for -malign-data=compat.
743         * config/i386/i386.opt (malign-data=): New.
744         * doc/invoke.texi: Document -malign-data=.
745
746 2014-12-17  Marek Polacek  <polacek@redhat.com>
747
748         PR middle-end/63568
749         * match.pd: Add (x & ~m) | (y & m) -> ((x ^ y) & m) ^ x pattern.
750
751 2014-12-17  Jakub Jelinek  <jakub@redhat.com>
752
753         PR tree-optimization/64322
754         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
755         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
756
757 2014-12-17  Tobias Burnus  <burnus@net-b.de>
758
759         PR fortran/54687
760         * flag-types.h (gfc_init_local_real, gfc_fcoarray,
761         gfc_convert): New enums; moved from fortran/.
762
763 2014-12-16  Jan Hubicka  <hubicka@ucw.cz>
764
765         * fibonacci_heap.h (min): Return m_data instead of non-existing data.
766
767 2014-12-16  Jan Hubicka  <hubicka@ucw.cz>
768
769         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Consider
770         return values of const calls as constants.
771         (estimate_function_body_sizes): Expect calls to have false predicates.
772
773 2014-12-16  Jan Hubicka  <hubicka@ucw.cz>
774
775         * hwint.c (abs_hwi, absu_hwi): Move to ...
776         * hwint.h (abs_hwi, absu_hwi): ... here; make inline.
777
778 2014-12-16  Marek Polacek  <polacek@redhat.com>
779
780         PR middle-end/64309
781         * match.pd: Add ((1 << A) & 1) != 0 -> A == 0 and
782         ((1 << A) & 1) == 0 -> A != 0.
783
784 2014-12-16  Richard Biener  <rguenther@suse.de>
785
786         * genmatch.c (parser::parser): Initialize capture_ids.
787         (parser::parse_pattern): Properly allocate capture_ids before
788         using them.  Set capture_ids to zero when its lifetime is
789         supposed to finish.
790         (parser::parse_simplify): Allocate capture_ids only if required.
791
792 2014-12-16  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
793
794         * sreal.c: Include math.h later.
795
796 2014-12-16  Felix Yang  <felix.yang@huawei.com>
797
798         PR rtl-optimization/64240
799         * ddg.c (mark_mem_use): Check *iter instead of *x.
800
801 2014-12-16  Martin Liska  <mliska@suse.cz>
802
803         PR ipa/64278
804         * sreal.c (sreal::operator*): Replace std::abs with absu_hwi.
805
806 2014-12-16  Igor Zamyatin  <igor.zamyatin@intel.com>
807
808         * config/i386/i386.c (ix86_address_cost): Add explicit restriction
809         to RTL level for the check for PIC register.
810
811 2014-12-16  Uros Bizjak  <ubizjak@gmail.com>
812
813         * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Move from here ...
814         * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): ... and here ...
815         * config/i386/gnu-user-common.h (TARGET_CAN_SPLIT_STACK): ... to here.
816
817 2014-12-16  Chung-Ju Wu  <jasonwucj@gmail.com>
818
819         PR target/64217
820         * config/nds32/nds32.md (casesi_internal): Add '=r' for clobber
821         register constraint.
822
823 2014-12-15  DJ Delorie  <dj@redhat.com>
824
825         * config/rl78/rl78.h: Remove SHORT_IMMEDIATES_SIGN_EXTEND.
826
827 2014-12-15  Jan Hubicka  <hubicka@ucw.cz>
828
829         PR lto/64043
830         * tree-streamer.c (preload_common_nodes): Skip preloading
831         of main_identifier_node, pid_type and optimization/option nodes.
832
833 2014-12-15  Vladimir Makarov  <vmakarov@redhat.com>
834
835         PR rtl-optimization/63397
836         * ira-int.h (ira_overall_cost, ira_reg_cost, ira_mem_cost): Use
837         int64_t.
838         (ira_load_cost, ira_store_cost, ira_shuffle_cost): Ditto.
839         * ira.c (ira_overall_cost, ira_overall_cost_before): Ditto.
840         (ira_reg_cost, ira_mem_cost): Ditto.
841         (ira_load_cost, ira_store_cost, ira_shuffle_cost): Ditto.
842         (calculate_allocation_cost, do_reload): Use the right
843         format for int64_t values.
844
845 2014-12-15  Jan Hubicka  <hubicka@ucw.cz>
846
847         * sreal.h (to_double): New method.
848         (shift): Do not ICE on 0.
849         * sreal.c: Include math.h
850         (sreal::to_double): New.
851
852 2014-12-15  Jakub Jelinek  <jakub@redhat.com>
853
854         PR rtl-optimization/64316
855         * simplify-rtx.c (simplify_relational_operation_1): For
856         (eq/ne (and x y) x) and (eq/ne (and x y) y) optimizations use
857         CONST0_RTX instead of const0_rtx.
858
859 2014-12-15  Vladimir Makarov  <vmakarov@redhat.com>
860
861         PR target/62642
862         * ira.c (rtx_moveable_p): Prevent UNSPEC_VOLATILE moves.
863
864 2014-12-15  Vladimir Makarov  <vmakarov@redhat.com>
865
866         * ira-int.h (ira_prohibited_class_mode_regs): Remove.
867         (struct target_ira_int): Move x_ira_prohibited_class_mode_regs to
868         ...
869         * ira.h (struct target_ira): ... here.
870         (ira_prohibited_class_mode_regs): Define.
871         * lra-constraints.c (process_alt_operands): Add one more condition
872         to refuse alternative when reload pseudo of given class can not
873         hold value of given mode.
874
875 2014-12-15  Richard Biener  <rguenther@suse.de>
876
877         PR tree-optimization/64312
878         * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Use
879         vuse_ssa_val as callback to walk_non_aliased_vuses.
880         (vn_reference_lookup): Likewise.
881
882 2014-12-15  Segher Boessenkool  <segher@kernel.crashing.org>
883
884         * gcc/config/rs6000/rs6000.md (*add>mode>3_imm_dot,
885         *add<mode>3_imm_dot2): Change the constraint for the second
886         alternative for operand 1 from "r" to "b".
887
888 2014-12-15  Richard Biener  <rguenther@suse.de>
889
890         * vec.h (vec::safe_grow): Guard against a grow to zero size.
891
892 2014-12-15  Richard Biener  <rguenther@suse.de>
893
894         PR middle-end/64295
895         * match.pd (X / CST -> X * (1 / CST): Use const_binop instead of
896         fold_binary to compute the constant to multiply with.
897
898 2014-12-15  Richard Biener  <rguenther@suse.de>
899
900         PR middle-end/64246
901         * cfgloop.c (mark_loop_for_removal): Make safe against multiple
902         invocations on the same loop.
903
904 2014-12-15  Marek Polacek  <polacek@redhat.com>
905
906         PR middle-end/64292
907         * fold-const.c (negate_expr_p): Add INTEGRAL_TYPE_P check.
908
909 2014-12-15  Renlin Li  <renlin.li@arm.com>
910
911         * config/aarch64/aarch64.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
912         (CTZ_DEFINED_VALUE_AT_ZERO): Update to support more modes.
913
914 2014-12-15  Jakub Jelinek  <jakub@redhat.com>
915
916         PR sanitizer/64265
917         * tsan.c (instrument_func_entry): Insert __tsan_func_entry
918         call on edge from entry block to single succ instead
919         of after labels of single succ of entry block.
920
921 2014-12-15  Richard Biener  <rguenther@suse.de>
922
923         PR tree-optimization/64284
924         * tree-ssa-threadupdate.c (duplicate_seme_region): Mark
925         the loop for removal if we copied the loop header.
926
927 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
928
929         PR ipa/61602
930         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Return bool.
931         * ipa.c (set_writeonly_bit): Track if reference was removed.
932         (ipa_discover_readonly_nonaddressable_vars): Return true if any
933         references was removed.
934         * ipa-reference.c (propagate): Return TODO_remove_functions if
935         reference was removed.
936
937 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
938
939         * ipa.c (process_references): Fix conditoinal on flag_optimize
940
941 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
942
943         PR ipa/61558
944         * symtab.c (symbol_table::insert_to_assembler_name_hash
945         symbol_table::unlink_from_assembler_name_hash): Do not ICE when
946         DECL_ASSEMBLER_NAME is NULL.
947
948 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
949
950         * cgraphunit.c (analyze_functions): Always analyze targets of aliases.
951
952 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
953
954         PR lto/64043
955         * tree.c (virtual_method_call_p): Return false when OTR type has
956         no BINFO.
957
958 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
959
960         * cgraphunit.c (analyze_functions): Do not analyze extern inline
961         funtions when not optimizing; skip comdat locals.
962
963 2014-12-14  H.J. Lu  <hongjiu.lu@intel.com>
964
965         PR rtl-optimization/64037
966         * combine.c (setup_incoming_promotions): Pass the argument
967         before any promotions happen to promote_function_mode.
968
969 2014-12-12  Thomas Schwinge  <thomas@codesourcery.com>
970
971         * config/nvptx/nvptx.h (ASM_OUTPUT_ALIGN): Define as a C statment.
972
973 2014-12-12  Vladimir Makarov  <vmakarov@redhat.com>
974
975         PR target/64110
976         * lra-constraints.c (process_alt_operands): Refuse alternative
977         when reload pseudo of given class can not hold value of given
978         mode.
979
980 2014-12-12  Thomas Schwinge  <thomas@codesourcery.com>
981
982         * gimple-walk.c (walk_gimple_op) <GIMPLE_OMP_FOR>: Also check
983         intermediate walk_tree results for for_incr.
984         <GIMPLE_OMP_TARGET>: Walk child_fn and data_arg, too.
985         <GIMPLE_OMP_CRITICAL, GIMPLE_OMP_ATOMIC_STORE>: Pretty printing.
986
987 2014-12-12  Richard Sandiford  <richard.sandiford@arm.com>
988
989         PR middle-end/64182
990         * wide-int.h (wi::div_round, wi::mod_round): Fix rounding of tied
991         cases.
992         * double-int.c (div_and_round_double): Fix handling of unsigned
993         cases.  Use same rounding approach as wide-int.h.
994
995 2014-12-12  Marek Polacek  <polacek@redhat.com>
996
997         PR middle-end/64274
998         * fold-const.c (fold_binary_loc): Add ANY_INTEGRAL_TYPE_P check.
999
1000 2014-12-12  Jakub Jelinek  <jakub@redhat.com>
1001
1002         PR tree-optimization/64269
1003         * tree-ssa-forwprop.c (simplify_builtin_call): Bail out if
1004         len2 or diff are too large.
1005
1006 2014-12-12  Richard Biener  <rguenther@suse.de>
1007
1008         PR middle-end/64280
1009         * tree-cfg.c (replace_uses_by): Guard assert properly.
1010
1011 2014-12-12  Anthony Green  <green@moxielogic.com>
1012
1013         * config/moxie/moxie.md: Add use of zex instruction.
1014
1015 2014-12-12  Marc Glisse  <marc.glisse@inria.fr>
1016
1017         * real.h (HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
1018         HONOR_SIGN_DEPENDENT_ROUNDING): Replace macros with 3 overloaded
1019         declarations.
1020         * real.c (HONOR_NANS): Fix indentation.
1021         (HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
1022         HONOR_SIGN_DEPENDENT_ROUNDING): Define three overloads.
1023         * builtins.c (fold_builtin_cproj, fold_builtin_signbit,
1024         fold_builtin_fmin_fmax, fold_builtin_classify): Simplify argument
1025         of HONOR_*.
1026         * fold-const.c (operand_equal_p, fold_comparison, fold_binary_loc):
1027         Likewise.
1028         * gimple-fold.c (gimple_val_nonnegative_real_p): Likewise.
1029         * ifcvt.c (noce_try_move, noce_try_minmax, noce_try_abs): Likewise.
1030         * omp-low.c (omp_reduction_init): Likewise.
1031         * rtlanal.c (may_trap_p_1): Likewise.
1032         * simplify-rtx.c (simplify_const_relational_operation): Likewise.
1033         * tree-ssa-dom.c (record_equality, record_edge_info): Likewise.
1034         * tree-ssa-phiopt.c (value_replacement, abs_replacement): Likewise.
1035         * tree-ssa-reassoc.c (eliminate_using_constants): Likewise.
1036         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
1037
1038 2014-12-12  Jan Hubicka  <hubicka@ucw.cz>
1039
1040         * ipa-inline.c (ipa_inline): Fix condition on when
1041         TODO_remove_unreachable_functions is needed.
1042
1043 2014-12-12  Jan Hubicka  <hubicka@ucw.cz>
1044
1045         * ipa-devirt.c (possible_polymorphic_call_targets): Return early
1046         if otr_type has no BINFO.
1047
1048 2014-12-12  Zhenqiang Chen  <zhenqiang.chen@arm.com>
1049
1050         PR rtl-optimization/63917
1051         * ifcvt.c (cc_in_cond): New function.
1052         (end_ifcvt_sequence): Make sure new generated insns do not clobber CC.
1053         (noce_process_if_block, check_cond_move_block): Check CC references.
1054
1055 2014-12-11  Andrew Pinski  <apinski@cavium.com>
1056
1057         * config/aarch64/aarch64-protos.h (tune_params): Add align field.
1058         * config/aarch64/aarch64.c (generic_tunings): Specify align.
1059         (cortexa53_tunings): Likewise.
1060         (cortexa57_tunings): Likewise.
1061         (thunderx_tunings): Likewise.
1062         (aarch64_override_options): Set align_loops, align_jumps,
1063         align_functions based on what the tuning struct.
1064
1065 2014-12-11  Eric Botcazou  <ebotcazou@adacore.com>
1066
1067         * doc/md.texi (Insn Lengths): Fix description of (pc).
1068
1069 2014-12-11  Jan Hubicka  <hubicka@ucw.cz>
1070
1071         PR ipa/61324
1072         * passes.c (execute_todo): Update call of remove_unreachable_nodes.
1073         * ipa-chkp.c (chkp_produce_thunks): Use TODO_remove_functions.
1074         * cgraphunit.c (symbol_table::process_new_functions): Add
1075         IPA_SSA_AFTER_INLINING.
1076         (ipa_passes): Update call of remove_unreachable_nodes.
1077         (symbol_table::compile): Remove call of remove_unreachable_nodes.
1078         * ipa-inline.c (inline_small_functions): Do not ICE with
1079         -flto-partition=none
1080         (ipa_inline): Update symtab->state; fix formatting
1081         update call of remove_unreachable_nodes.
1082         * passes.c (execute_todo): Update call of remove_unreachable_nodes.
1083         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
1084         * cgraph.h (enum symtab_state): Add IPA_SSA_AFTER_INLINING.
1085         (remove_unreachable_nodes): Update.
1086         * ipa.c (process_references): Keep external references only
1087         when optimizing.
1088         (walk_polymorphic_call_targets): Keep possible polymorphic call
1089         target only when devirtualizing.
1090         (symbol_table::remove_unreachable_nodes): Remove BEFORE_INLINING_P
1091         parameter.
1092         (ipa_single_use): Update comment.
1093         * ipa-pure-const.c (cdtor_p): New function.
1094         (propagate_pure_const): Track if some cdtor was turned pure/const.
1095         (execute): Return TODO_remove_functions if needed.
1096         * ipa-comdats.c (ipa_comdats): Update comment.
1097
1098 2014-12-11  Aldy Hernandez  <aldyh@redhat.com>
1099
1100         * dwarf2out.c (gen_lexical_block_die): Remove unused `depth'
1101         parameter.
1102         (gen_inlined_subroutine_die): Same.
1103         (gen_block_die): Same.
1104         (decls_for_scope): Same.
1105
1106 2014-12-11  Renlin Li  <renlin.li@arm.com>
1107
1108         * config/aarch64/aarch64-cores.def: Change all AARCH64_FL_FPSIMD to
1109         AARCH64_FL_FOR_ARCH8.
1110         * config/aarch64/aarch64.c (all_cores): Use FLAGS from
1111         aarch64-cores.def file only.
1112
1113 2014-12-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1114
1115         PR fortran/44054
1116         * diagnostic.c (diagnostic_action_after_output): Make it extern.
1117         Take diagnostic_t argument instead of diagnostic_info. Count also
1118         DK_WERROR towards max_errors.
1119         (diagnostic_report_diagnostic): Update call according to the above.
1120         (error_recursion): Likewise.
1121         * diagnostic.h (diagnostic_action_after_output): Declare.
1122         * pretty-print.c (pp_formatted_text_data): Delete.
1123         (pp_append_r): Call output_buffer_append_r.
1124         (pp_formatted_text): Call output_buffer_formatted_text.
1125         (pp_last_position_in_text): Call output_buffer_last_position_in_text.
1126         * pretty-print.h (output_buffer_formatted_text): New.
1127         (output_buffer_append_r): New.
1128         (output_buffer_last_position_in_text): New.
1129
1130 2014-12-11  Kyrylo Tkachov  kyrylo.tkachov@arm.com
1131
1132         * config/aarch64/aarch64.c (aarch64_parse_extension): Update error
1133         message to say +no only when removing extension.
1134
1135 2014-12-11  Andrew MacLeod  <amacleod@redhat.com>
1136
1137         * config/tilepro/gen-mul-tables.cc: Add insn-codes.h to include list
1138         for generator file.  Add comment indicating it is a generated file.
1139         * config/tilepro/mul-tables.c: Update generated file.
1140         * config/tilegx/mul-tables.c: Likewise.
1141
1142 2014-12-11  Segher Boessenkool  <segher@kernel.crashing.org>
1143
1144         * combine.c (try_combine): Do not allow combining a PARALLEL I2
1145         with a register move I3 if that I2 is an asm.
1146
1147 2014-12-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1148
1149         * config/arm/arm_neon.h (vrndqn_f32): Rename to...
1150         (vrndnq_f32): ... this.
1151         (vrndqa_f32): Rename to...
1152         (vrndaq_f32): ... this.
1153         (vrndqp_f32): Rename to...
1154         (vrndpq_f32): ... this.
1155         (vrndqm_f32): Rename to...
1156         (vrndmq_f32): ... this.
1157         (vrndx_f32): New intrinsic.
1158         (vrndxq_f32): Likewise.
1159
1160 2014-12-11  Marek Polacek  <polacek@redhat.com>
1161
1162         * fold-const.c (fold_negate_expr): Add ANY_INTEGRAL_TYPE_P check.
1163         (extract_muldiv_1): Likewise.
1164         (maybe_canonicalize_comparison_1): Likewise.
1165         (fold_comparison): Likewise.
1166         (tree_binary_nonnegative_warnv_p): Likewise.
1167         (tree_binary_nonzero_warnv_p): Likewise.
1168         * gimple-ssa-strength-reduction.c (legal_cast_p_1): Likewise.
1169         * tree-scalar-evolution.c (simple_iv): Likewise.
1170         (scev_const_prop): Likewise.
1171         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
1172         * tree-vect-generic.c (expand_vector_operation): Likewise.
1173         * tree.h (ANY_INTEGRAL_TYPE_CHECK): Define.
1174         (ANY_INTEGRAL_TYPE_P): Define.
1175         (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED, TYPE_OVERFLOW_TRAPS):
1176         Add ANY_INTEGRAL_TYPE_CHECK.
1177         (any_integral_type_check): New function.
1178
1179 2014-12-11  Tobias Burnus  <burnus@net-b.de>
1180             Manuel López-Ibáñez  <manu@gcc.gnu.org>
1181
1182         * error.c (gfc_get_terminal_width): Renamed from
1183         get_terminal_width and use same-named common function.
1184         (gfc_error_init_1): Update call.
1185
1186 2014-12-10  Aldy Hernandez  <aldyh@redhat.com>
1187
1188         * gdbhooks.py (class DWDieRefPrinter): New class.
1189         (build_pretty_printer): Register dw_die_ref's.
1190
1191 2014-12-10  Ilya Tocar  <ilya.tocar@intel.com>
1192
1193         * config.gcc: Support "knl".
1194         * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knl".
1195         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
1196         PROCESSOR_KNL.
1197         * config/i386/i386.c (m_KNL): Define.
1198         (processor_target_table): Add "knl".
1199         (PTA_KNL): Define.
1200         (ix86_issue_rate): Add PROCESSOR_KNL.
1201         (ix86_adjust_cost): Ditto.
1202         (ia32_multipass_dfa_lookahead): Ditto.
1203         (get_builtin_code_for_version): Handle "knl".
1204         (fold_builtin_cpu): Ditto.
1205         * config/i386/i386.h (TARGET_KNL): Define.
1206         (processor_type): Add PROCESSOR_KNL.
1207         * config/i386/i386.md (attr "cpu"): Add knl.
1208         * config/i386/x86-tune.def: Add m_KNL.
1209
1210 2014-12-10  Jan Hubicka  <hubicka@ucw.cz>
1211
1212         * doc/invoke.texi: (-devirtualize-at-ltrans): Document.
1213         * lto-cgraph.c (lto_output_varpool_node): Mark initializer as removed
1214         when it is not streamed to the given ltrans.
1215         (compute_ltrans_boundary): Make code adding all polymorphic
1216         call targets conditional with !flag_wpa || flag_ltrans_devirtualize.
1217         * common.opt (fdevirtualize-at-ltrans): New flag.
1218
1219 2014-12-10  Ilya Verbin  <ilya.verbin@intel.com>
1220
1221         * varpool.c (varpool_node::get_create): Force output of vars with
1222         "omp declare target" attribute.
1223
1224 2014-12-10  Marc Glisse  <marc.glisse@inria.fr>
1225
1226         * real.h (HONOR_NANS): Replace macro with 3 overloaded declarations.
1227         * real.c: Include rtl.h and options.h.
1228         (HONOR_NANS): Define three overloads.
1229         * builtins.c (fold_builtin_classify, fold_builtin_unordered_cmp):
1230         Simplify argument of HONOR_NANS.
1231         * fold-const.c (combine_comparisons, fold_truth_not_expr,
1232         fold_cond_expr_with_comparison, merge_truthop_with_opposite_arm,
1233         fold_comparison, fold_binary_loc): Likewise.
1234         * ifcvt.c (noce_try_move, noce_try_minmax): Likewise.
1235         * ipa-inline-analysis.c (add_clause,
1236         set_cond_stmt_execution_predicate): Likewise.
1237         * match.pd: Likewise.
1238         * rtlanal.c (may_trap_p_1): Likewise.
1239         * simplify-rtx.c (simplify_const_relational_operation): Likewise.
1240         * tree-if-conv.c (parse_predicate): Likewise.
1241         * tree-ssa-ccp.c (valid_lattice_transition): Likewise.
1242         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
1243         * tree-ssa-phiopt.c (minmax_replacement, neg_replacement): Likewise.
1244         * tree-ssa-reassoc.c (eliminate_using_constants): Likewise.
1245         * tree-ssa-tail-merge.c (gimple_equal_p): Likewise.
1246
1247 2014-12-10  Jakub Jelinek  <jakub@redhat.com>
1248
1249         PR tree-optimization/62021
1250         * omp-low.c (simd_clone_adjust_return_type): Use
1251         vector of pointer_sized_int_node types instead vector of pointer
1252         types.
1253         (simd_clone_adjust_argument_types): Likewise.
1254
1255 2014-12-10  Jakub Jelinek  <jakub@redhat.com>
1256             Evgeny Stupachenko  <evstupac@gmail.com>
1257
1258         PR target/64252
1259         * config/i386/i386.c (expand_vec_perm_pblendv): If not testing_p,
1260         set dcopy.target to a new pseudo.
1261
1262 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
1263
1264         * config/rs6000/rs6000.md (*add<mode>3): Remove condition.
1265
1266 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
1267
1268         * config/rs6000/40x.md (ppc403-compare): Remove "compare".
1269         config/rs6000/440.md (ppc440-compare): Remove "compare".
1270         config/rs6000/476.md (ppc476-compare): Remove "compare".
1271         config/rs6000/601.md (ppc601-compare): Remove "compare".
1272         config/rs6000/603.md (ppc603-compare): Remove "compare".
1273         config/rs6000/6xx.md (ppc604-compare): Remove "compare".
1274         config/rs6000/7450.md (ppc7450-compare): Remove "compare".
1275         config/rs6000/7xx.md (ppc750-compare): Remove "compare".
1276         config/rs6000/8540.md (ppc8540_su): Remove "compare".
1277         config/rs6000/cell.md (cell-fast-cmp, cell-cmp-microcoded): Remove
1278         "compare".
1279         config/rs6000/e300c2c3.md (ppce300c3_cmp): Remove "compare".
1280         config/rs6000/e500mc.md (e500mc_su): Remove "compare".
1281         config/rs6000/e500mc64.md (e500mc64_su2): Remove "compare".
1282         config/rs6000/e5500.md (e5500_sfx2): Remove "compare".
1283         config/rs6000/e6500.md (e6500_sfx2): Remove "compare".
1284         config/rs6000/mpc.md (mpccore-compare): Remove "compare".
1285         config/rs6000/power4.md (power4-compare): Remove "compare".
1286         config/rs6000/power5.md (power5-compare): Remove "compare".
1287         config/rs6000/power6.md (power6-compare): Remove "compare".
1288         config/rs6000/power7.md (power7-compare): Remove "compare".
1289         config/rs6000/power8.md (power8-compare): Remove "compare".  Update
1290         comment.
1291         config/rs6000/rs6000.c (rs6000_adjust_cost) <TYPE_COMPARE>: Remove
1292         (three times).
1293         (is_cracked_insn): Remove TYPE_COMPARE case.
1294         (insn_must_be_first_in_group) <TYPE_COMPARE>: Remove (twice).
1295         config/rs6000/rs6000.md (type): Remove "compare".
1296         (cell_micro): Remove "compare".
1297         config/rs6000/rs64.md (rs64a-compare): Remove "compare".
1298
1299 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
1300
1301         * config/rs6000/rs6000.md (*anddi3_2rld_dot, *anddi3_rld_dot2):
1302         Change type from "compare" to "two".
1303
1304 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
1305
1306         PR target/64180
1307         * config/rs6000/predicates.md (unsigned_comparison_operator): New.
1308         (signed_comparison_operator): New.
1309         * config/rs6000/rs6000-protos.h (rs6000_emit_eqne): Declare.
1310         * config/rs6000/rs6000.c (rs6000_emit_eqne): New function.
1311         (rs6000_emit_sCOND): Remove ISEL test (move it to the expander).
1312         * config/rs6000/rs6000.md (add<mode>3 for SDI): Expand DImode
1313         add to addc,adde directly, if !TARGET_POWERPC64.
1314         (sub<mode>3 for SDI): Expand DImode sub to subfc,subfe directly,
1315         if !TARGET_POWERPC64.
1316         (neg<mode>2): Delete expander.
1317         (*neg<mode>2): Rename to "neg<mode>2".
1318         (addti3, subti3): Delete.
1319         (addti3, subti3): New expanders.
1320         (*adddi3_noppc64, *subdi3_noppc64, *negdi2_noppc64): Delete.
1321         (cstore<mode>4_unsigned): New expander.
1322         (cstore<mode>4): Allow GPR as output (not just SI).  Rewrite.
1323         (cstore<mode>4 for FP): Remove superfluous quotes.
1324         (*eq<mode>, *eq<mode>_compare, *plus_eqsi and splitter,
1325         *compare_plus_eqsi and splitter, *plus_eqsi_compare and splitter,
1326         *neg_eq0<mode>, *neg_eq<mode>, *ne0_<mode>, plus_ne0_<mode>,
1327         compare_plus_ne0_<mode> and splitter, *compare_plus_ne0_<mode>_1 and
1328         splitter, *plus_ne0_<mode>_compare and splitter, *leu<mode>,
1329         *leu<mode>_compare and splitter, *plus_leu<mode>, *neg_leu<mode>,
1330         *and_neg_leu<mode>, *ltu<mode>, *ltu<mode>_compare, *plus_ltu<mode>,
1331         *plus_ltu<mode>_1, *plus_ltu<mode>compare, *neg_ltu<mode>, *geu<mode>,
1332         *geu<mode>_compare and splitter, *plus_geu<mode>, *neg_geu<mode>,
1333         *and_neg_geu<mode>, *plus_gt0<mode>, *gtu<mode>, *gtu<mode>_compare,
1334         *plus_gtu<mode>, *plus_gtu<mode>_1, *plus_gtu<mode>_compare,
1335         *neg_gtu<mode>, 12 anonymous insns, and 12 anonymous splitters):
1336         Delete.
1337         (eq<mode>3, ne<mode>3): New.
1338         (*neg_eq_<mode>, *neg_ne_<mode>): New.
1339         (*plus_eq_<mode>, *plus_ne_<mode>): New.
1340         (*minus_eq_<mode>, *minus_ne_<mode>): New.
1341
1342 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
1343
1344         PR target/64180
1345         * config/rs6000/predicates.md (adde_operand): New.
1346         * config/rs6000/rs6000.md (add<mode>3_carry): New.
1347         (*add<mode>3_imm_carry_pos): New.
1348         (*add<mode>3_imm_carry_0): New.
1349         (*add<mode>3_imm_carry_m1): New.
1350         (*add<mode>3_imm_carry_neg): New.
1351         (add<mode>3_carry_in): New.
1352         (*add<mode>3_carry_in_internal): New.
1353         (add<mode>3_carry_in_0): New.
1354         (add<mode>3_carry_in_m1): New.
1355         (subf<mode>3_carry): New.
1356         (*subf<mode>3_imm_carry_0): New.
1357         (*subf<mode>3_imm_carry_m1): New.
1358         (subf<mode>3_carry_in): New.
1359         (*subf<mode>3_carry_in_internal): New.
1360         (subf<mode>3_carry_in_0): New.
1361         (subf<mode>3_carry_in_m1): New.
1362         (subf<mode>3_carry_in_xx): New.
1363
1364 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
1365
1366         PR target/64180
1367         * config/rs6000/rs6000.md (*add<mode>3_internal1): Rename to
1368         "*add<mode>3".
1369         (*add<mode>3_internal2, *add<mode>3_internal3, and (their splitters):
1370         Delete.
1371         (*add<mode>3_dot, *add<mode>3_dot2): New.
1372         (*add<mode>3_imm_dot, *add<mode>3_imm_dot2): New.
1373
1374 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
1375
1376         PR target/64180
1377         * config/rs6000/rs6000.md (*add<mode>3_internal1): Remove addic
1378         alternative.
1379
1380 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
1381
1382         PR target/64180
1383         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
1384         *ctr<mode>_internal5, *ctr<mode>_internal6): Change "r" alternatives
1385         to "b".  Increase length.
1386         (splitters for these): Split to cmp+addi instead of addic.
1387
1388 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
1389
1390         PR target/64180
1391         * config/rs6000/darwin.md (macho_low_si): Remove "r" alternative.
1392         (macho_low_di): Ditto.
1393         * config/rs6000/rs6000.md (*largetoc_low): Ditto.
1394         (tocref<mode>): Ditto.
1395         (elf_low): Ditto.
1396         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0_elf_low_be): Ditto.
1397         (mov_si<mode>_e500_subreg0_elf_low_le): Ditto.
1398         (mov_si<mode>_e500_subreg4_elf_low_be): Ditto.  Reformat condition.
1399         (mov_si<mode>_e500_subreg4_elf_low_le): Ditto.
1400
1401 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
1402
1403         PR target/64180
1404         * config/rs6000/rs6000.c (TARGET_MD_ASM_CLOBBERS): Define.
1405         (rs6000_md_asm_clobbers): New function.
1406
1407 2014-12-10  Felix Yang  <felix.yang@huawei.com>
1408
1409         * config/aarch64/aarch64-protos.h (aarch64_function_profiler): Remove
1410         declaration of removed function.
1411
1412 2014-12-10  Richard Biener  <rguenther@suse.de>
1413
1414         * tree-ssa-loop-im.c
1415         (move_computations_dom_walker::before_dom_children): Clear
1416         SSA_NAME_RANGE_INFO on moved stmts.
1417
1418 2014-12-10  Martin Liska  <mliska@suse.cz>
1419
1420         * sreal.c (sreal::shift_right): New implementation
1421         for int64_t as m_sig.
1422         (sreal::normalize): Likewise.
1423         (sreal::to_int): Likewise.
1424         (sreal::operator+): Likewise.
1425         (sreal::operator-): Likewise.
1426         (sreal::operator*): Likewise.
1427         (sreal::operator/): Likewise.
1428         (sreal::signedless_minus): Removed.
1429         (sreal::signedless_plus): Removed.
1430         (sreal::debug): const keyword is added.
1431         * sreal.h (sreal::operator<): New implementation
1432         for int64_t as m_sig.
1433         * ipa-inline.c (recursive_inlining): LONG_MIN is replaced
1434         with sreal::min ().
1435
1436 2014-12-10  Martin Liska  <mliska@suse.cz>
1437
1438         * gimple-iterator.h (gsi_start_bb_nondebug): New function.
1439         * ipa-icf-gimple.c (func_checker::compare_bb): Correct iteration
1440         replaces loop based on precomputed number of non-debug statements.
1441
1442 2014-12-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1443
1444         * config/linux.c (linux_has_ifunc_p): Remove.
1445         * config/linux.h (TARGET_HAS_IFUNC_P): Use default version.
1446
1447 2014-12-10  Mantas Mikaitis  <mantas.mikaitis@arm.com>
1448
1449         * contrib/check_GNU_style.sh (col): Got rid of cut operation
1450         from the pipe chain and instead added cut inside awk command.
1451
1452 2014-12-10  Richard Biener  <rguenther@suse.de>
1453
1454         PR tree-optimization/64191
1455         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not
1456         mark clobbers as necessary.
1457         (eliminate_unnecessary_stmts): Keep clobbers live if we can.
1458
1459 2014-12-10  Jakub Jelinek  <jakub@redhat.com>
1460
1461         PR target/63594
1462         * config/i386/sse.md (vec_dupv4sf): Move after
1463         <mask_codefor><avx512>_vec_dup_gpr<mode><mask_name> pattern.
1464         (*vec_dupv4si, *vec_dupv2di): Likewise.
1465         (<mask_codefor><avx512>_vec_dup_mem<mode><mask_name>): Merge into ...
1466         (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>): ... this
1467         pattern.
1468         (*vec_dup<mode> AVX2_VEC_DUP_MODE splitter): Disable for
1469         TARGET_AVX512VL (for QI/HI scalar modes only if TARGET_AVX512BW
1470         is set too).
1471         * config/i386/i386.c (enum ix86_builtins): Remove
1472         IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
1473         IX86_BUILTIN_PBROADCASTQ128_MEM_MASK and
1474         IX86_BUILTIN_PBROADCASTQ512_MEM.
1475         (bdesc_args): Use __builtin_ia32_pbroadcastq512_gpr_mask,
1476         __builtin_ia32_pbroadcastq256_gpr_mask and
1477         __builtin_ia32_pbroadcastq128_gpr_mask instead of *_mem_mask
1478         regardless of OPTION_MASK_ISA_64BIT.
1479         * config/i386/avx512fintrin.h (_mm512_set1_epi64,
1480         _mm512_mask_set1_epi64, _mm512_maskz_set1_epi64): Use *_gpr_mask
1481         builtins regardless of whether TARGET_64BIT is defined or not.
1482         * config/i386/avx512vlintrin.h (_mm256_mask_set1_epi64,
1483         _mm256_maskz_set1_epi64, _mm_mask_set1_epi64, _mm_maskz_set1_epi64):
1484         Likewise.
1485
1486         * config/i386/sse.md (*mov<mode>_internal, *avx512f_gatherdi<mode>_2):
1487         Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
1488
1489 2014-12-10  Oleg Endo  <olegendo@gcc.gnu.org>
1490
1491         PR target/53513
1492         * doc/extend.texi (__builtin_sh_set_fpscr): Fix typo.
1493
1494 2014-12-10  Marek Polacek  <polacek@redhat.com>
1495
1496         PR tree-optimization/61686
1497         * tree-ssa-reassoc.c (range_entry_cmp): Use q->high instead of
1498         p->high.
1499
1500 2014-12-10  Kito Cheng  <kito@0xlab.org>
1501
1502         * doc/libgcc.texi: Update text to match implementation in
1503         libgcc/libgcc2.c
1504
1505 2014-12-09  Trevor Saunders  <tsaunders@mozilla.com>
1506
1507         * plugin.c, plugin.def, ggc.h, ggc-common.c, gengtype.h, gengtype.c,
1508         gengtype-state.c, gengtype-parse.c, gentype-lex.l, gcc-plugin.h,
1509         doc/plugins.texi, doc/gty.texi: Remove support for if_marked and
1510         param_is.
1511
1512 2014-12-10  Oleg Endo  <olegendo@gcc.gnu.org>
1513
1514         PR target/53513
1515         * doc/extend.texi (__builtin_sh_get_fpscr, __builtin_sh_get_fpscr):
1516         Document it.
1517
1518 2014-12-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1519
1520         PR middle-end/64225
1521         * tree-ssa-reassoc.c (acceptable_pow_call): Disable transformation
1522         for BUILT_IN_POW when flag_errno_math is present.
1523
1524 2014-12-09  Ilya Verbin  <ilya.verbin@intel.com>
1525
1526         * lto-wrapper.c (compile_offload_image): Start processing in_argv
1527         from 0 instead of 1.
1528         (run_gcc): Put offload objects into offload_argv, put LTO objects and
1529         possible preceding arguments into lto_argv.
1530         Pass offload_argv to compile_images_for_offload_targets instead of argv.
1531         Use lto_argv for LTO recompilation instead of argv.
1532
1533 2014-12-09  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
1534
1535         * doc/install.texi: Describe --with-aix-soname option.
1536
1537 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
1538
1539         * config/aarch64/aarch64-simd.md (aarch64_get_lanedi): Remove.
1540
1541 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
1542
1543         PR target/63870
1544         * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane):
1545         Delete.
1546         * config/aarch64/aarch64-simd.md (aarch64_be_checked_get_lane<mode\>):
1547         Delete.
1548         * config/aarch64/arm_neon.h (aarch64_vget_lane_any): Use GCC
1549         vector extensions, __aarch64_lane, __builtin_aarch64_im_lane_boundsi.
1550         (__aarch64_vget_lane_f32, __aarch64_vget_lane_f64,
1551         __aarch64_vget_lane_p8, __aarch64_vget_lane_p16,
1552         __aarch64_vget_lane_s8, __aarch64_vget_lane_s16,
1553         __aarch64_vget_lane_s32, __aarch64_vget_lane_s64,
1554         __aarch64_vget_lane_u8, __aarch64_vget_lane_u16,
1555         __aarch64_vget_lane_u32, __aarch64_vget_lane_u64,
1556         __aarch64_vgetq_lane_f32, __aarch64_vgetq_lane_f64,
1557         __aarch64_vgetq_lane_p8, __aarch64_vgetq_lane_p16,
1558         __aarch64_vgetq_lane_s8, __aarch64_vgetq_lane_s16,
1559         __aarch64_vgetq_lane_s32, __aarch64_vgetq_lane_s64,
1560         __aarch64_vgetq_lane_u8, __aarch64_vgetq_lane_u16,
1561         __aarch64_vgetq_lane_u32, __aarch64_vgetq_lane_u64): Delete.
1562         (__aarch64_vdup_lane_any): Use __aarch64_vget_lane_any, remove
1563         'q2' argument.
1564         (__aarch64_vdup_lane_f32, __aarch64_vdup_lane_f64,
1565         __aarch64_vdup_lane_p8, __aarch64_vdup_lane_p16,
1566         __aarch64_vdup_lane_s8, __aarch64_vdup_lane_s16,
1567         __aarch64_vdup_lane_s32, __aarch64_vdup_lane_s64,
1568         __aarch64_vdup_lane_u8, __aarch64_vdup_lane_u16,
1569         __aarch64_vdup_lane_u32, __aarch64_vdup_lane_u64,
1570         __aarch64_vdup_laneq_f32, __aarch64_vdup_laneq_f64,
1571         __aarch64_vdup_laneq_p8, __aarch64_vdup_laneq_p16,
1572         __aarch64_vdup_laneq_s8, __aarch64_vdup_laneq_s16,
1573         __aarch64_vdup_laneq_s32, __aarch64_vdup_laneq_s64,
1574         __aarch64_vdup_laneq_u8, __aarch64_vdup_laneq_u16,
1575         __aarch64_vdup_laneq_u32, __aarch64_vdup_laneq_u64): Remove argument
1576         to __aarch64_vdup_lane_any.
1577         (vget_lane_f32, vget_lane_f64, vget_lane_p8, vget_lane_p16,
1578         vget_lane_s8, vget_lane_s16, vget_lane_s32, vget_lane_s64,
1579         vget_lane_u8, vget_lane_u16, vget_lane_u32, vget_lane_u64,
1580         vgetq_lane_f32, vgetq_lane_f64, vgetq_lane_p8, vgetq_lane_p16,
1581         vgetq_lane_s8, vgetq_lane_s16, vgetq_lane_s32, vgetq_lane_s64,
1582         vgetq_lane_u8, vgetq_lane_u16, vgetq_lane_u32, vgetq_lane_u64,
1583         vdupb_lane_p8, vdupb_lane_s8, vdupb_lane_u8, vduph_lane_p16,
1584         vduph_lane_s16, vduph_lane_u16, vdups_lane_f32, vdups_lane_s32,
1585         vdups_lane_u32, vdupb_laneq_p8, vdupb_laneq_s8, vdupb_laneq_u8,
1586         vduph_laneq_p16, vduph_laneq_s16, vduph_laneq_u16, vdups_laneq_f32,
1587         vdups_laneq_s32, vdups_laneq_u32, vdupd_laneq_f64, vdupd_laneq_s64,
1588         vdupd_laneq_u64, vfmas_lane_f32, vfma_laneq_f64, vfmad_laneq_f64,
1589         vfmas_laneq_f32, vfmss_lane_f32, vfms_laneq_f64, vfmsd_laneq_f64,
1590         vfmss_laneq_f32, vmla_lane_f32, vmla_lane_s16, vmla_lane_s32,
1591         vmla_lane_u16, vmla_lane_u32, vmla_laneq_f32, vmla_laneq_s16,
1592         vmla_laneq_s32, vmla_laneq_u16, vmla_laneq_u32, vmlaq_lane_f32,
1593         vmlaq_lane_s16, vmlaq_lane_s32, vmlaq_lane_u16, vmlaq_lane_u32,
1594         vmlaq_laneq_f32, vmlaq_laneq_s16, vmlaq_laneq_s32, vmlaq_laneq_u16,
1595         vmlaq_laneq_u32, vmls_lane_f32, vmls_lane_s16, vmls_lane_s32,
1596         vmls_lane_u16, vmls_lane_u32, vmls_laneq_f32, vmls_laneq_s16,
1597         vmls_laneq_s32, vmls_laneq_u16, vmls_laneq_u32, vmlsq_lane_f32,
1598         vmlsq_lane_s16, vmlsq_lane_s32, vmlsq_lane_u16, vmlsq_lane_u32,
1599         vmlsq_laneq_f32, vmlsq_laneq_s16, vmlsq_laneq_s32, vmlsq_laneq_u16,
1600         vmlsq_laneq_u32, vmul_lane_f32, vmul_lane_s16, vmul_lane_s32,
1601         vmul_lane_u16, vmul_lane_u32, vmuld_lane_f64, vmuld_laneq_f64,
1602         vmuls_lane_f32, vmuls_laneq_f32, vmul_laneq_f32, vmul_laneq_f64,
1603         vmul_laneq_s16, vmul_laneq_s32, vmul_laneq_u16, vmul_laneq_u32,
1604         vmulq_lane_f32, vmulq_lane_s16, vmulq_lane_s32, vmulq_lane_u16,
1605         vmulq_lane_u32, vmulq_laneq_f32, vmulq_laneq_f64, vmulq_laneq_s16,
1606         vmulq_laneq_s32, vmulq_laneq_u16, vmulq_laneq_u32) : Use
1607         __aarch64_vget_lane_any.
1608
1609 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
1610
1611         PR target/63870
1612         * gcc/config/aarch64-builtins.c (aarch64_simd_expand_args): Update error
1613         message for SIMD_ARG_CONSTANT.
1614
1615 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
1616
1617         PR target/63870
1618         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
1619         TYPES_BINOPV): Delete.
1620         (enum aarch64_builtins): Add AARCH64_BUILTIN_SIMD_LANE_CHECK and
1621         AARCH64_SIMD_PATTERN_START.
1622         (aarch64_init_simd_builtins): Register
1623         __builtin_aarch64_im_lane_boundsi; use  AARCH64_SIMD_PATTERN_START.
1624         (aarch64_simd_expand_builtin): Handle AARCH64_BUILTIN_LANE_CHECK; use
1625         AARCH64_SIMD_PATTERN_START.
1626
1627         * config/aarch64/aarch64-simd.md (aarch64_im_lane_boundsi): Delete.
1628         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound): Delete.
1629
1630         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK): New.
1631         (__aarch64_vget_lane_f64, __aarch64_vget_lane_s64,
1632         __aarch64_vget_lane_u64, __aarch64_vset_lane_any, vdupd_lane_f64,
1633         vdupd_lane_s64, vdupd_lane_u64, vext_f32, vext_f64, vext_p8, vext_p16,
1634         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
1635         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
1636         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
1637         vextq_u64, vmulq_lane_f64): Use __AARCH64_LANE_CHECK.
1638
1639 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
1640
1641         PR target/63950
1642         * config/aarch64/arm_neon.h (__AARCH64_NUM_LANES, __aarch64_lane *2):
1643         New.
1644         (aarch64_vset_lane_any): Redefine using previous, same for BE + LE.
1645         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
1646         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
1647         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64): Remove
1648         number of lanes.
1649         (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8, vld1_lane_p16,
1650         vld1_lane_s8, vld1_lane_s16, vld1_lane_s32, vld1_lane_s64,
1651         vld1_lane_u8, vld1_lane_u16, vld1_lane_u32, vld1_lane_u64): Call
1652         __aarch64_vset_lane_any rather than vset_lane_xxx.
1653
1654 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
1655
1656         * config/aarch64/aarch64.md (absdi2): Remove scratch operand by
1657         earlyclobbering result operand.
1658
1659         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
1660         Remove final qualifier_internal.
1661         (aarch64_fold_builtin): Stop folding abs builtins, except on floats.
1662
1663 2014-12-09  Wilco Dijkstra  <wilco.dijkstra@arm.com>
1664
1665         * gcc/config/aarch64/aarch64-protos.h (tune-params): Add reasociation
1666         tuning parameters.
1667         * gcc/config/aarch64/aarch64.c (TARGET_SCHED_REASSOCIATION_WIDTH):
1668         Define.
1669         (aarch64_reassociation_width): New function.
1670         (generic_tunings): Add reassociation tuning parameters.
1671         (cortexa53_tunings): Likewise.
1672         (cortexa57_tunings): Likewise.
1673         (thunderx_tunings): Likewise.
1674
1675 2014-12-09  Andrew Pinski  <apinski@cavium.com>
1676             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1677
1678         * config/aarch64/aarch64.c (AARCH64_FUSE_CMP_BRANCH): New define.
1679         (thunderx_tunings): Add AARCH64_FUSE_CMP_BRANCH to fuseable_ops.
1680         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_CMP_BRANCH.
1681
1682 2014-12-09  David Malcolm  <dmalcolm@redhat.com>
1683
1684         PR jit/64166
1685         * dumpfile.c (gcc::dump_manager::get_dump_file_info_by_switch):
1686         New function.
1687         (gcc::dump_manager::get_dump_file_name): Split out bulk of
1688         implementation into a new overloaded variant taking a
1689         dump_file_info *.
1690         * dumpfile.h (gcc::dump_manager::get_dump_file_info_by_switch):
1691         New function.
1692         (gcc::dump_manager::get_dump_file_name): New overloaded variant of
1693         this function, taking a dump_file_info *.
1694
1695 2014-12-09  Uros Bizjak  <ubizjak@gmail.com>
1696
1697         PR bootstrap/64213
1698         Revert:
1699         2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>
1700
1701         PR rtl-optimization/64037
1702         * combine.c (setup_incoming_promotions): Pass the argument
1703         before any promotions happen to promote_function_mode.
1704
1705 2014-12-09  Richard Biener  <rguenther@suse.de>
1706
1707         PR tree-optimization/64193
1708         * tree-ssa-alias.c (walk_non_aliased_vuses): Add valueize parameter
1709         and valueize the VUSE before looking up the def stmt.
1710         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
1711         * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Pass vn_valueize
1712         to walk_non_aliased_vuses.
1713         (vn_reference_lookup): Likewise.
1714         * tree-ssa-dom.c (lookup_avail_expr): Pass NULL as valueize
1715         callback to walk_non_aliased_vuses.
1716
1717 2014-12-09  Richard Biener  <rguenther@suse.de>
1718
1719         PR middle-end/64199
1720         * fold-const.c (fold_binary_loc): Use TREE_OVERFLOW_P.
1721
1722 2014-12-09  Richard Biener  <rguenther@suse.de>
1723
1724         PR tree-optimization/64191
1725         * tree-vect-stmts.c (vect_stmt_relevant_p): Clobbers are
1726         not relevant (nor are their uses).
1727
1728 2014-12-09  Ilya Enkovich  <ilya.enkovich@intel.com>
1729
1730         * lto/lto-partition.c (privatize_symbol_name): Correctly
1731         privatize instrumentation clones.
1732
1733 2014-12-09  Ilya Enkovich  <ilya.enkovich@intel.com>
1734
1735         * lto-cgraph.c (input_cgraph_1): Don't break existing
1736         instrumentation clone references.
1737         * lto/lto-symtab.c (lto_cgraph_replace_node): Redirect
1738         instrumented_version references appropriately.
1739
1740 2014-12-09  Ilya Enkovich  <ilya.enkovich@intel.com>
1741
1742         PR bootstrap/63995
1743         * tree-chkp.c (chkp_make_static_bounds): Share bounds var
1744         between nodes sharing assembler name.
1745
1746 2014-12-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
1747
1748         PR target/64204
1749         * config/rs6000/rs6000.c (rs6000_emit_move): Do not split TFmode
1750         constant moves if -mupper-regs-df.
1751
1752         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Optimize moving
1753         0.0L to TFmode.
1754         (movtd_64bit_nodm): Likewise.
1755         (mov<mode>_32bit, FMOVE128 case): Likewise.
1756
1757 2014-12-08  Sandra Loosemore  <sandra@codesourcery.com>
1758
1759         * simplify-rtx.c (simplify_relational_operation_1): Handle
1760         simplification identities for BICS patterns.
1761
1762 2014-12-08  Trevor Saunders  <tsaunders@mozilla.com>
1763
1764         * config/nvptx/nvptx.c: Convert htabs to hash_table.
1765
1766 2014-12-08  David Edelsohn  <dje.gcc@gmail.com>
1767
1768         PR target/64226
1769         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner)
1770         [SYMBOL_REF]: Do not explicitly call create_TOC_reference for
1771         TARGET_TOC. Always use rs6000_emit_move.
1772
1773 2014-12-08  Mark Wielaard  <mjw@redhat.com>
1774
1775         PR debug/60782
1776         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_ATOMIC.
1777
1778 2014-11-15  David Wohlferd <dw@LimeGreenSocks.com>
1779
1780         PR target/61692
1781         * cfgexpand.c (expand_asm_operands): Count all inline asm params.
1782
1783 2014-12-08  David Malcolm  <dmalcolm@redhat.com>
1784
1785         PR jit/63854
1786         * cgraph.h (xstrdup_for_dump): New function.
1787         * cgraph.c (cgraph_node::get_create): Replace use of xstrdup
1788         within fprintf with xstrdup_for_dump.
1789         (cgraph_edge::make_speculative): Likewise.
1790         (cgraph_edge::resolve_speculation): Likewise.
1791         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
1792         (cgraph_node::dump): Likewise.
1793         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
1794         * ipa-cp.c (perhaps_add_new_callers): Likewise.
1795         * ipa-inline.c (report_inline_failed_reason): Likewise.
1796         (want_early_inline_function_p): Likewise.
1797         (edge_badness): Likewise.
1798         (update_edge_key): Likewise.
1799         (flatten_function): Likewise.
1800         (inline_always_inline_functions): Likewise.
1801         * ipa-profile.c (ipa_profile): Likewise.
1802         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
1803         (ipa_make_edge_direct_to_target): Likewise.
1804         (remove_described_reference): Likewise.
1805         (propagate_controlled_uses): Likewise.
1806         * ipa-utils.c (ipa_merge_profiles): Likewise.
1807
1808 2014-12-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1809
1810         PR ipa/64049
1811         * ipa-polymorphic-call.c
1812         (pa_polymorphic_call_context::ipa_polymorphic_call): Allow RESULT_DECL.
1813
1814 2014-12-08  Alex Velenko  <Alex.Velenko@arm.com>
1815
1816         * config/aarch64/aarch64.md (and_one_cmpl<mode>3_compare0_no_reuse):
1817         New define_insn.
1818         * (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse):
1819         Likewise.
1820
1821 2014-12-08  Felix Yang  <felix.yang@huawei.com>
1822             Haijian Zhang  <z.zhanghaijian@huawei.com>
1823             Jiji Jiang  <jiangjiji@huawei.com>
1824             Pengfei Sui  <suipengfei@huawei.com>
1825
1826         * config/aarch64/arm_neon.h (vrecpe_u32, vrecpeq_u32): Rewrite using
1827         builtin functions.
1828         (vfma_f32, vfmaq_f32, vfmaq_f64, vfma_n_f32, vfmaq_n_f32, vfmaq_n_f64,
1829         vfms_f32, vfmsq_f32, vfmsq_f64): Likewise.
1830         (vhsub_s8, vhsub_u8, vhsub_s16, vhsub_u16, vhsub_s32, vhsub_u32,
1831         vhsubq_s8, vhsubq_u8, vhsubq_s16, vhsubq_u16, vhsubq_s32, vhsubq_u32,
1832         vsubhn_s16, vsubhn_u16, vsubhn_s32, vsubhn_u32, vsubhn_s64, vsubhn_u66,
1833         vrsubhn_s16, vrsubhn_u16, vrsubhn_s32, vrsubhn_u32, vrsubhn_s64,
1834         vrsubhn_u64, vsubhn_high_s16, vsubhn_high_u16, vsubhn_high_s32,
1835         vsubhn_high_u32, vsubhn_high_s64, vsubhn_high_u64, vrsubhn_high_s16,
1836         vrsubhn_high_u16, vrsubhn_high_s32, vrsubhn_high_u32, vrsubhn_high_s64,
1837         vrsubhn_high_u64): Likewise.
1838         * config/aarch64/iterators.md (VDQ_SI): New mode iterator.
1839         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_URECPE.
1840         * config/aarch64/aarch64-simd.md (aarch64_urecpe<mode>): New pattern.
1841         * config/aarch64/aarch64-simd-builtins.def (shsub, uhsub, subhn, rsubhn,
1842         subhn2, rsubhn2, urecpe): New builtins.
1843
1844 2014-12-08  Ilya Tocar  <ilya.tocar@intel.com>
1845
1846         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Handle v64qi.
1847         * config/i386/sse.md (VEC_PERM_AVX2): Add v64qi.
1848
1849 2014-12-08  Ilya Tocar  <ilya.tocar@intel.com>
1850
1851         * config/i386/i386.c (expand_vec_perm_broadcast_1): Handle v64qi.
1852         (expand_vec_perm_vpermi2_vpshub2): New.
1853         (ix86_expand_vec_perm_const_1): Use it.
1854         (ix86_vectorize_vec_perm_const_ok): Handle v64qi.
1855         * config/i386/sse.md (VEC_PERM_CONST): Add v64qi.
1856
1857 2014-12-08  Ilya Enkovich  <ilya.enkovich@intel.com>
1858
1859         * tree-chkp.c (chkp_build_returned_bound): Don't predict
1860         return bounds for strchr calls.
1861
1862 2014-12-08  Ilya Enkovich  <ilya.enkovich@intel.com>
1863
1864         * tree-chkp.c (chkp_call_returns_bounds_p): New.
1865         (chkp_build_returned_bound): Use zero bounds as
1866         returned by calls not returning bounds.
1867
1868 2014-12-08  Richard Biener  <rguenther@suse.de>
1869
1870         * builtins.c (fold_builtin_0): Remove unused ignore parameter.
1871         (fold_builtin_1): Likewise.
1872         (fold_builtin_3): Likewise.
1873         (fold_builtin_varargs): Likewise.
1874         (fold_builtin_2): Likewise.  Do not fold stpcpy here.
1875         (fold_builtin_n): Adjust.
1876         (fold_builtin_stpcpy): Move to gimple-fold.c.
1877         (gimple_fold_builtin_stpcpy): Moved and gimplified from builtins.c.
1878         (gimple_fold_builtin): Fold stpcpy here.
1879
1880 2014-12-07  Trevor Saunders  <tsaunders@mozilla.com>
1881
1882         * symtab.c (symtab_node::verify): Check for section attribute before
1883         asserting something isn't in a section and a comdat group.
1884
1885 2014-12-07  Oleg Endo  <olegendo@gcc.gnu.org>
1886
1887         PR target/50751
1888         * config/sh/sh.md (extendqihi2): Allow only for TARGET_SH1.
1889
1890 2014-12-07  Eric Botcazou  <ebotcazou@adacore.com>
1891
1892         * compare-elim.c: Fix head comment.
1893         (conforming_compare): Remove redundant test.
1894         (can_eliminate_compare): New function extracted from...
1895         (before_dom_children): ...here.  Use it, replace direct uses of
1896         flag_non_call_exceptions and tidy up.
1897         (maybe_select_cc_mode): Tidy up.
1898
1899 2014-12-07  Felix Yang  <felix.yang@huawei.com>
1900             Shanyao Chen  <chenshanyao@huawei.com>
1901
1902         * config/aarch64/aarch64-simd.md (clrsb<mode>2, popcount<mode>2): New
1903         patterns.
1904         * config/aarch64/aarch64-simd-builtins.def (clrsb, popcount): New
1905         builtins.
1906         * config/aarch64/arm_neon.h (vcls_s8, vcls_s16, vcls_s32, vclsq_s8,
1907         vclsq_s16, vclsq_s32, vcnt_p8, vcnt_s8, vcnt_u8, vcntq_p8, vcntq_s8,
1908         vcntq_u8): Rewrite using builtin functions.
1909
1910 2014-12-07  Jan Hubicka  <hubicka@ucw.cz>
1911
1912         * symtab.c (symtab_node::equal_address_to): New function.
1913         * cgraph.h (symtab_node::equal_address_to): Declare.
1914         * fold-const.c (fold_comparison, fold_binary_loc): Use it.
1915         * c-family/c-common.c: Refuse weaks for symbols that can not change
1916         visibility.
1917
1918 2014-12-07  Jonathan Wakely  <jwakely@redhat.com>
1919
1920         * doc/invoke.texi (Warning Options): Fix spelling and grammar.
1921
1922 2014-12-06  James Greenhalgh  <james.greenhalgh@arm.com>
1923             Sebastian Pop  <s.pop@samsung.com>
1924             Brian Rzycki  <b.rzycki@samsung.com>
1925
1926         PR tree-optimization/54742
1927         * params.def (max-fsm-thread-path-insns, max-fsm-thread-length,
1928         max-fsm-thread-paths): New.
1929
1930         * doc/invoke.texi (max-fsm-thread-path-insns, max-fsm-thread-length,
1931         max-fsm-thread-paths): Documented.
1932
1933         * tree-cfg.c (split_edge_bb_loc): Export.
1934         * tree-cfg.h (split_edge_bb_loc): Declared extern.
1935
1936         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Restore the
1937         original value of cond when simplification fails.
1938         (fsm_find_thread_path): New.
1939         (fsm_find_control_statement_thread_paths): New.
1940         (thread_through_normal_block): Call find_control_statement_thread_paths.
1941
1942         * tree-ssa-threadupdate.c (dump_jump_thread_path): Pretty print
1943         EDGE_FSM_THREAD.
1944         (verify_seme): New.
1945         (duplicate_seme_region): New.
1946         (thread_through_all_blocks): Generate code for EDGE_FSM_THREAD edges
1947         calling duplicate_seme_region.
1948
1949         * tree-ssa-threadupdate.h (jump_thread_edge_type): Add EDGE_FSM_THREAD.
1950
1951 2014-12-06  H.J. Lu  <hongjiu.lu@intel.com>
1952
1953         PR target/64200
1954         * config/i386/i386.c (decide_alg): Don't assert "alg != libcall"
1955         for TARGET_INLINE_STRINGOPS_DYNAMICALLY.
1956
1957 2014-12-05  Jakub Jelinek  <jakub@redhat.com>
1958
1959         PR sanitizer/64170
1960         * sanopt.c (maybe_optimize_asan_check_ifn): If base_checks is
1961         non-NULL, call maybe_get_dominating_check on it even if g is
1962         non-NULL.
1963
1964 2014-12-05  Jeff Law  <law@redhat.com>
1965
1966         * doc/md.texi: Note problems using function calls to determine
1967         insn lengths and point readers to a potential workaround.
1968
1969 2014-12-05  Andreas Schwab  <schwab@linux-m68k.org>
1970
1971         * combine.c (is_parallel_of_n_reg_sets)
1972         (can_split_parallel_of_n_reg_sets): Only define if !HAVE_cc0.
1973
1974 2014-12-05  Andrew Pinski  <apinski@cavium.com>
1975
1976         * config/aarch64/aarch64-simd-builtins.def (bswap): Use CF2 rather
1977         than CF10 so 2 is appended on the code.
1978         * config/aarch64/aarch64-simd.md (bswap<mode>): Rename to ...
1979         (bswap<mode>2): This so it matches for the optabs.
1980
1981 2014-12-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1982
1983         * regrename.c (find_best_rename_reg): Rename to ...
1984         (find_rename_reg): This. Also add a parameter to skip tick check.
1985         * regrename.h: Likewise.
1986         * config/c6x/c6x.c (try_rename_operands): Adapt to above renaming.
1987
1988 2014-12-05  Martin Jambor  <mjambor@suse.cz>
1989
1990         PR ipa/64192
1991         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Convert alignment
1992         from bits to bytes after checking they are byte-aligned.
1993
1994 2014-12-05  Renlin Li  <renlin.li@arm.com>
1995
1996         * config/aarch64/aarch64-opts.h (AARCH64_CORE): Rename IDENT to SCHED.
1997         * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
1998         * config/aarch64/aarch64.c (AARCH64_CORE): Rename X to IDENT,
1999         IDENT to SCHED.
2000
2001 2014-12-05  Bin Cheng  <bin.cheng@arm.com>
2002
2003         * config/aarch64/aarch64.md (load_pair<mode>): Split to
2004         load_pairsi, load_pairdi, load_pairsf and load_pairdf.
2005         (load_pairsi, load_pairdi, load_pairsf, load_pairdf): Split
2006         from load_pair<mode>.  New alternative to support int/fp
2007         registers in fp/int mode patterns.
2008         (store_pair<mode>:): Split to store_pairsi, store_pairdi,
2009         store_pairsf and store_pairdi.
2010         (store_pairsi, store_pairdi, store_pairsf, store_pairdf): Split
2011         from store_pair<mode>.  New alternative to support int/fp
2012         registers in fp/int mode patterns.
2013         (*load_pair_extendsidi2_aarch64): New pattern.
2014         (*load_pair_zero_extendsidi2_aarch64): New pattern.
2015         (aarch64-ldpstp.md): Include.
2016         * config/aarch64/aarch64-ldpstp.md: New file.
2017         * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
2018         New.
2019         (extract_base_offset_in_addr): New.
2020         (aarch64_operands_ok_for_ldpstp): New.
2021         (aarch64_operands_adjust_ok_for_ldpstp): New.
2022         * config/aarch64/aarch64.c (enum sched_fusion_type): New enum.
2023         (TARGET_SCHED_FUSION_PRIORITY): New hook.
2024         (fusion_load_store): New functon.
2025         (extract_base_offset_in_addr): New function.
2026         (aarch64_gen_adjusted_ldpstp): New function.
2027         (aarch64_sched_fusion_priority): New function.
2028         (aarch64_operands_ok_for_ldpstp): New function.
2029         (aarch64_operands_adjust_ok_for_ldpstp): New function.
2030
2031 2014-12-05  Olivier Hainque  <hainque@adacore.com>
2032
2033         * defaults.h: (DWARF_REG_TO_UNWIND_COLUMN): Define default.
2034         * dwarf2cfi.c (init_one_dwarf_reg_size): Honor
2035         DWARF_REG_TO_UNWIND_COLUMN.
2036
2037 2014-12-05  Olivier Hainque  <hainque@adacore.com>
2038
2039         * dwarf2cfi.c (init_one_dwarf_reg_size): New helper, processing
2040         one particular reg for expand_builtin_init_dwarf_reg_sizes.
2041         (expand_builtin_init_dwarf_reg_sizes): Rework to use helper and
2042         account for dwarf register spans.
2043
2044 2014-12-05  Ilya Enkovich  <ilya.enkovich@intel.com>
2045
2046         PR target/64003
2047         * config/i386/i386.md (*jcc_1_bnd): New.
2048         (*jcc_2_bnd): New.
2049         (jump_bnd): New.
2050         (*jcc_1): Remove bnd prefix.
2051         (*jcc_2): Likewise.
2052         (jump): Likewise.
2053
2054 2014-12-05  Renlin Li  <renlin.li@arm.com>
2055
2056         * config/aarch64/aarch64.c (aarch64_parse_cpu): Don't define
2057         selected_tune.
2058         (aarch64_override_options): Use selected_cpu's tuning.
2059
2060 2014-12-05  David Edelsohn  <dje.gcc@gmail.com>
2061
2062         * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append
2063         alignment to section name. Increase default alignment to word.
2064
2065 2014-12-05  Martin Jambor  <mjambor@suse.cz>
2066
2067         * cgraph.h (cgraph_node): New method expand_all_artificial_thunks.
2068         (cgraph_edge): New method redirect_callee_duplicating_thunks.
2069         * cgraphclones.c (duplicate_thunk_for_node): Donot expand newly
2070         created thunks.
2071         (redirect_edge_duplicating_thunks): Turned into edge method
2072         redirect_callee_duplicating_thunks.
2073         (cgraph_node::expand_all_artificial_thunks): New method.
2074         (create_clone): Call expand_all_artificial_thunks.
2075         * ipa-cp.c (perhaps_add_new_callers): Call
2076         redirect_callee_duplicating_thunks instead of redirect_callee.
2077         Also call expand_all_artificial_thunks.
2078
2079 2014-12-05  Ilya Enkovich  <ilya.enkovich@intel.com>
2080
2081         PR target/64056
2082         * doc/sourcebuild.texi: Add mempcpy and stpcpy for Effective-Target
2083         Keywords.
2084
2085 2014-12-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2086
2087         * diagnostic.h (diagnostic_expand_location): New inline function.
2088         * diagnostic.c (diagnostic_build_prefix): Use it.
2089         (diagnostic_show_locus): Likewise.
2090
2091 2014-12-04  H.J. Lu  <hongjiu.lu@intel.com>
2092
2093         PR bootstrap/64189
2094         * configure.ac (HAVE_LD_PIE_COPYRELOC): Always define.
2095         * configure: Regenerated.
2096
2097 2014-12-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2098
2099         * diagnostic.c (diagnostic_color_init): New.
2100         * diagnostic.h: Declare.
2101         * gcc.c (driver::global_initializations): Use it.
2102         (driver_handle_option): Handle -fdiagnostics-color_.
2103         * toplev.c: Do not include diagnostic-color.h.
2104         (process_options): Do not initialize color diagnostics here.
2105         * common.opt (fdiagnostics-color=): Add Driver.
2106         * opts-global.c (init_options_once): Initialize color here.
2107         * opts.c (common_handle_option): Use diagnostics_color_init.
2108         * diagnostic-color.h: Fix comment.
2109
2110 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
2111
2112         * tree-pretty-print.c (INDENT): Rename "buffer" to "pp".
2113         (NIY): Likewise.
2114         (buffer): Rename this variable to...
2115         (tree_pp): ...this.
2116
2117         (do_niy): Rename param from "buffer" to "pp".
2118         (dump_decl_name): Likewise.
2119         (dump_function_name): Likewise.
2120         (dump_function_declaration): Likewise.
2121         (dump_array_domain): Likewise.
2122         (dump_omp_clause): Likewise.
2123         (dump_omp_clauses): Likewise.
2124         (dump_location): Likewise.
2125         (dump_block_node): Likewise.
2126         (dump_generic_node): Likewise.
2127         (print_declaration): Likewise.
2128         (print_struct_decl): Likewise.
2129         (print_call_name): Likewise.
2130         (pretty_print_string): Likewise.
2131         (newline_and_indent): Likewise.
2132
2133         (print_generic_decl): Update for renaming of "buffer" to
2134         "tree_pp".
2135         (print_generic_stmt): Likewise.
2136         (print_generic_stmt_indented): Likewise.
2137         (print_generic_expr): Likewise.
2138         (maybe_init_pretty_print): Likewise.
2139
2140 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
2141
2142         PR jit/63854
2143         * tree-pretty-print.c: Eliminate include of <new>.
2144         (buffer): Convert this variable from a pretty_printer to a
2145         pretty_printer *.
2146         (initialized): Eliminate this variable in favor of the NULL-ness
2147         of "buffer".
2148         (print_generic_decl): Update for "buffer" becoming a pointer.
2149         (print_generic_stmt): Likewise.
2150         (print_generic_stmt_indented): Likewise.
2151         (print_generic_expr): Likewise.
2152         (maybe_init_pretty_print): Likewise, allocating "buffer" on the
2153         heap and using its non-NULL-ness to ensure idempotency.
2154
2155 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
2156
2157         PR jit/63854
2158         * ipa-prop.c (ipa_register_cgraph_hooks): Guard insertion of
2159         ipa_add_new_function on function_insertion_hook_holder being
2160         non-NULL.
2161         * ipa-reference.c (ipa_reference_c_finalize): Remove
2162         node_removal_hook_holder and node_duplication_hook_holder if
2163         they've been added to symtab.
2164         * toplev.c (toplev::finalize): Call ipa_reference_c_finalize
2165         before cgraph_c_finalize so that the former can access "symtab".
2166
2167 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
2168
2169         * doc/cfg.texi (GIMPLE statement iterators): Add note about
2170         gphi_iterator, and use one in the example.
2171         * doc/gimple.texi (Tuple specific accessors): Add missing
2172         GIMPLE_GOTO section and menu item.
2173         (gimple_build_asm, gimple gimple_build_assign_with_ops)
2174         gimple_call_mark_uninlinable, gimple_call_cannot_inline_p): Remove
2175         description of removed functions.
2176         (gimple_build_assign, gimple_build_bind, gimple_build_call,
2177         gimple_build_call_from_tree, gimple_build_call_vec,
2178         gimple_build_catch, gimple_build_cond,
2179         gimple_build_cond_from_tree, gimple_build_debug_bind,
2180         gimple_build_eh_filter, gimple_build_label, gimple_build_goto,
2181         gimple_build_omp_atomic_load, gimple_build_omp_atomic_store,
2182         gimple_build_omp_continue, gimple_build_omp_critical,
2183         gimple_build_omp_for, gimple_build_omp_parallel,
2184         gimple_build_omp_sections, gimple_build_omp_single,
2185         gimple_build_return, gimple_build_resx, gimple_build_switch,
2186         gimple_build_try): Update return type within description to
2187         reflect changes in gimple.h to using gimple subclasses.
2188         (gimple_build_asm_vec): Update return type, params and
2189         description.
2190         (gimple_asm_ninputs): Update param.
2191         (gimple_asm_noutputs, gimple_asm_nclobbers, gimple_asm_input_op
2192         gimple_asm_set_input_op, gimple_asm_output_op
2193         gimple_asm_set_output_op, gimple_asm_clobber_op,
2194         gimple_asm_set_clobber_op, gimple_asm_string,
2195         gimple_asm_volatile_p, gimple_asm_set_volatile, gimple_bind_vars,
2196         gimple_bind_set_vars, gimple_bind_append_vars, gimple_bind_body,
2197         gimple_bind_set_body, gimple_bind_add_stmt, gimple_bind_add_seq,
2198         gimple_bind_block, gimple_bind_set_block, gimple_call_set_fn,
2199         gimple_call_return_type, gimple_call_set_chain,
2200         gimple_call_set_tail, gimple_call_tail_p,
2201         gimple_call_copy_skip_args, gimple_catch_types,
2202         gimple_catch_types_ptr, gimple_catch_handler,
2203         gimple_catch_set_types, gimple_catch_set_handler,
2204         gimple_cond_set_code, gimple_cond_set_lhs, gimple_cond_set_rhs,
2205         gimple_cond_true_label, gimple_cond_set_true_label,
2206         gimple_cond_set_false_label, gimple_cond_false_label,
2207         gimple_cond_make_false, gimple_cond_make_true,
2208         gimple_eh_filter_set_types, gimple_eh_filter_set_failure,
2209         gimple_eh_must_not_throw_fndecl,
2210         gimple_eh_must_not_throw_set_fndecl, gimple_label_label,
2211         gimple_label_set_label, gimple_goto_set_dest,
2212         gimple_omp_atomic_load_set_lhs, gimple_omp_atomic_load_lhs,
2213         gimple_omp_atomic_load_set_rhs, gimple_omp_atomic_load_rhs,
2214         gimple_omp_atomic_store_set_val, gimple_omp_atomic_store_val,
2215         gimple_omp_continue_control_def,
2216         gimple_omp_continue_control_def_ptr,
2217         gimple_omp_continue_set_control_def,
2218         gimple_omp_continue_control_use,
2219         gimple_omp_continue_control_use_ptr,
2220         gimple_omp_continue_set_control_use, gimple_omp_critical_name,
2221         gimple_omp_critical_name_ptr, gimple_omp_critical_set_name,
2222         gimple_omp_parallel_clauses_ptr, gimple_omp_parallel_set_clauses,
2223         gimple_omp_parallel_child_fn, gimple_omp_parallel_child_fn_ptr,
2224         gimple_omp_parallel_set_child_fn, gimple_omp_parallel_data_arg,
2225         gimple_omp_parallel_data_arg_ptr,
2226         gimple_omp_parallel_set_data_arg, gimple_omp_single_set_clauses,
2227         gimple_phi_set_result, gimple_phi_set_arg, gimple_resx_region,
2228         gimple_resx_set_region, gimple_return_retval,
2229         gimple_return_set_retval, gimple_switch_num_labels,
2230         gimple_switch_set_num_labels, gimple_switch_index,
2231         gimple_switch_set_index, gimple_switch_label,
2232         gimple_switch_set_label, gimple_switch_default_label,
2233         gimple_switch_set_default_label, gimple_try_set_eval,
2234         gimple_try_set_cleanup): Update initial param within description
2235         to reflect changes in gimple.h to using gimple subclasses.
2236         (Adding a new GIMPLE statement code): Update to reflect gimple
2237         statement subclassing.
2238
2239 2014-12-04  Sriraman Tallam  <tmsriram@google.com>
2240             H.J. Lu  <hongjiu.lu@intel.com>
2241
2242         * configure.ac (HAVE_LD_PIE_COPYRELOC): Defined to 1 if
2243         Linux/x86-64 linker supports PIE with copy reloc.
2244         * config.in: Regenerated.
2245         * configure: Likewise.
2246
2247         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
2248         pc-relative address for undefined, non-weak, non-function
2249         symbol reference in 64-bit PIE if linker supports PIE with
2250         copy reloc.
2251
2252         * doc/sourcebuild.texi: Document pie_copyreloc target.
2253
2254 2014-12-04  Marek Polacek  <polacek@redhat.com>
2255
2256         PR middle-end/56917
2257         * fold-const.c (fold_unary_loc): Perform the negation in A's type
2258         when transforming ~ (A - 1) or ~ (A + -1) to -A.
2259
2260 2014-12-04  Tobias Burnus  <burnus@net-b.de>
2261
2262         * Makefile.in: Remove CLOOGLIB and CLOOGINC.
2263
2264 2014-12-04  Richard Biener  <rguenther@suse.de>
2265
2266         * doc/match-and-simplify.texi: Update for recent changes.
2267
2268 2014-12-04  Martin Jambor  <mjambor@suse.cz>
2269
2270         * ipa-prop.h (ipa_alignment): New type.
2271         (ipa_jump_func): New field alignment.
2272         (ipcp_transformation_summary) New type.
2273         (ipcp_grow_transformations_if_necessary): Declare.
2274         (ipa_node_agg_replacements): Removed.
2275         (ipcp_transformations): Declare.
2276         (ipcp_get_transformation_summary): New function.
2277         (ipa_get_agg_replacements_for_node): Use it.
2278         * ipa-cp.c (ipcp_param_lattices): New field alignment.
2279         (print_all_lattices): Also print alignment.
2280         (alignment_bottom_p): New function.
2281         (set_alignment_to_bottom): Likewise.
2282         (set_all_contains_variable): Also set alignment to bottom.
2283         (initialize_node_lattices): Likewise.
2284         (propagate_alignment_accross_jump_function): New function.
2285         (propagate_constants_accross_call): Call it.
2286         (ipcp_store_alignment_results): New function.
2287         (ipcp_driver): Call it.
2288         * ipa-prop.c (ipa_node_agg_replacements): Removed.
2289         (ipcp_transformations): New.
2290         (ipa_print_node_jump_functions_for_edge): Also print alignment.
2291         (ipa_set_jf_unknown): New function.
2292         (detect_type_change_from_memory_writes): Use ipa_set_jf_unknown.
2293         (ipa_compute_jump_functions_for_edge): Also calculate alignment.
2294         (update_jump_functions_after_inlining): Use ipa_set_jf_unknown.
2295         (ipcp_grow_transformations_if_necessary): New function.
2296         (ipa_set_node_agg_value_chain): Use ipcp_transformations.
2297         (ipa_node_removal_hook): Likewise.
2298         (ipa_node_duplication_hook): Also duplicate alignment results.
2299         (ipa_write_jump_function): Also stream alignments.
2300         (ipa_read_jump_function): Use ipa_set_jf_unknown, also stream
2301         alignments.
2302         (write_agg_replacement_chain): Renamed to
2303         write_ipcp_transformation_info, also stream alignments.
2304         (read_agg_replacement_chain): Renamed to
2305         read_ipcp_transformation_info, also stream alignments.
2306         (ipa_prop_write_all_agg_replacement): Renamed to
2307         ipcp_write_transformation_summaries. Stream always.
2308         (ipa_prop_read_all_agg_replacement): Renamed to
2309         ipcp_read_transformation_summaries.
2310         (ipcp_update_alignments): New function.
2311         (ipcp_transform_function): Call it, free also alignments.
2312
2313 2014-12-04  Richard Biener  <rguenther@suse.de>
2314
2315         * gimple-fold.c (replace_stmt_with_simplification): Properly
2316         fail when maybe_push_res_to_seq fails.
2317
2318 2014-12-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
2319
2320         * config/aarch64/aarch64.md (define_insn "prefetch"): New.
2321
2322 2014-12-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2323
2324         * doc/install.texi: Remove mentions of cloog and ppl.
2325         * doc/invoke.texi: Likewise
2326
2327 2014-12-04  Jakub Jelinek  <jakub@redhat.com>
2328
2329         PR c++/56493
2330         * convert.c (convert_to_real, convert_to_expr, convert_to_complex):
2331         Handle COMPOUND_EXPR.
2332
2333 2014-12-04  Richard Biener  <rguenther@suse.de>
2334
2335         * builtins.c (target_newline): Export.
2336         (target_percent_s_newline): Likewise.
2337         (fold_builtin_1): Do not fold printf functions here.
2338         (fold_builtin_2): Likewise.
2339         (fold_builtin_3): Likewise, do not fold strncat.
2340         (fold_builtin_strncat): Move to gimple-fold.c.
2341         (fold_builtin_printf): Likewise.
2342         * builtins.h (target_newline): Declare.
2343         (target_percent_s_newline): Likewise.
2344         * gimple-fold.c (gimple_fold_builtin_strncat): Move from
2345         builtins.c and gimplify.
2346         (gimple_fold_builtin_printf): Likewise.
2347         (gimple_fold_builtin): Fold strncat, printf, printf_unlocked,
2348         vprintf, printf_chk and vprintf_chk here.
2349
2350 2014-12-03  David Edelsohn  <dje.gcc@gmail.com>
2351
2352         * config/rs6000/rs6000.md (floatsidf2_internal): Use std::swap.
2353         (floatunssidf2_internal): Same.
2354         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Same.
2355         (rs6000_emit_int_cmove): Same.
2356         (rs6000_sched_reorder): Same.
2357         (altivec_expand_vec_perm_const): Same.
2358         (rs6000_expand_vec_perm_const_1): Same.
2359
2360 2014-12-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2361
2362         PR rtl-optimization/64010
2363         * reload.c (push_reload): Before reusing a register contained
2364         in an operand as input reload register, ensure that it is not
2365         used in CALL_INSN_FUNCTION_USAGE.
2366
2367 2014-12-03  Ulrich Drepper  <drepper@gmail.com>
2368
2369         * Makefile.in: Use $(LN_S) instead of $(LN) -s and remove file first
2370         if it exists.
2371
2372 2014-12-03  Jakub Jelinek  <jakub@redhat.com>
2373
2374         * expmed.c (expand_mult): Use std::swap.
2375
2376         PR c/59708
2377         * expmed.c (expand_widening_mult): Return const0_rtx if
2378         coeff is 0.
2379
2380         * doc/gimple.texi (gimple_build_assign_with_ops): Remove.
2381         (gimple_build_assign): Document the new overloads.
2382
2383 2014-12-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
2384
2385         PR target/64019
2386         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
2387         not create LO_SUM address for constant addresses if the type can
2388         go in Altivec registers.
2389
2390 2014-12-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2391
2392         PR fortran/44054
2393         * pretty-print.c (output_buffer::output_buffer): Init flush_p to true.
2394         (pp_flush): Flush only if flush_p.
2395         (pp_really_flush): New.
2396         * pretty-print.h (struct output_buffer): Add flush_p.
2397         (pp_really_flush): Declare.
2398
2399 2014-12-03  Jakub Jelinek  <jakub@redhat.com>
2400
2401         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add $(GENGTYPE_OBJS),
2402         gcc-ar.o, gcc-nm.o and gcc-ranlib.o.
2403         (GENGTYPE_OBJS): New.
2404         (gengtype-lex.o, gengtype-parse.o, gengtype-state.o, gengtype.o):
2405         Remove explicit dependencies.
2406         (CFLAGS-gengtype-lex.o, CFLAGS-gengtype-parse.o,
2407         CFLAGS-gengtype-state.o, CFLAGS-gengtype.o): Add -DHOST_GENERATOR_FILE
2408         instead of -DGENERATOR_FILE.
2409         (CFLAGS-errors.o): New.
2410         * gengtype.c: Instead of testing GENERATOR_FILE define, test
2411         HOST_GENERATOR_FILE.  If defined, include config.h and define
2412         GENERATOR_FILE afterwards, otherwise include bconfig.h.
2413         * gengtype-parse.c: Likewise.
2414         * gengtype-state.c: Likewise.
2415         * gengtype-lex.l: Likewise.
2416         * errors.c: Likewise.
2417
2418 2014-12-03  Joern Rennecke  <joern.rennecke@embecosm.com>
2419
2420         * config/epiphany/epiphany.c (epiphany_override_options):
2421         If TARGET_SOFT_CMPSF is not enabled, set flag_finite_math_only.
2422         * config/epiphany/epiphany.md (mov<mode>cc): Don't use
2423         reverse_condition_maybe_unordered if flag_finite_math_only is set.
2424
2425 2014-12-03  Andrew Stubbs  <ams@codesourcery.com>
2426
2427         Revert:
2428
2429         2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
2430         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
2431         when architecture is older than ARMv7.
2432
2433 2014-12-03  Richard Biener  <rguenther@suse.de>
2434
2435         * builtins.c (target_percent_c): Export.
2436         (fold_builtin_fprintf): Move to gimple-fold.c.
2437         (fold_builtin_2): Do not fold fprintf functions.
2438         (fold_builtin_3): Likewise.
2439         (fold_builtin_4): Remove.
2440         (fold_builtin_n): Do not call fold_builtin_4.
2441         * builtins.h (target_percent_c): Declare.
2442         * gimple-fold.c (gimple_fold_builtin_fprintf): Move from
2443         builtins.c and gimplify.
2444         (gimple_fold_builtin): Fold fprintf, fprintf_unlocked, vfprintf,
2445         fprintf_chk and vfprintf_chk here.
2446
2447 2014-12-03  Martin Jambor  <mjambor@suse.cz>
2448
2449         PR ipa/64153
2450         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Check
2451         type sizes before view_converting.
2452
2453 2014-12-03  H.J. Lu  <hongjiu.lu@intel.com>
2454
2455         PR rtl-optimization/64151
2456         PR rtl-optimization/64156
2457         * ira-costs.c (scan_one_insn): Revert r218266.
2458
2459 2014-12-03  Richard Biener  <rguenther@suse.de>
2460
2461         * builtins.c (fold_builtin_fpclassify): Change to take
2462         array of arguments instead of CALL_EXPR tree.
2463         (MAX_ARGS_TO_FOLD_BUILTIN): Remove.
2464         (fold_builtin_n): Dispatch to fold_builtin_varargs.
2465         (fold_call_expr): Always use fold_builtin_n.
2466         (fold_builtin_call_array): Change to not build the unfolded call,
2467         always use fold_builtin_n.
2468         (fold_builtin_varargs): Change to take array of arguments instead
2469         of CALL_EXPR tree.
2470         (fold_call_stmt): Always use fold_builtin_n.
2471         * tree.c (build_call_expr_loc_array): Use fold_build_call_array_loc.
2472         * fold-const.c (fold_build_call_array_loc): Build the call
2473         if fold_builtin_call_array returned NULL_TREE.
2474         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Do not build
2475         a CALL_EXPR and use fold_builtin_call_array instead of
2476         fold_call_expr.
2477
2478 2014-12-03  Alan Lawrence  <alan.lawrence@arm.com>
2479
2480         * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>, orn<mode>3,
2481         bic<mode>3, add<mode>3, sub<mode>3, neg<mode>2, abs<mode>2, and<mode>3,
2482         ior<mode>3, xor<mode>3, one_cmpl<mode>2,
2483         aarch64_simd_lshr<mode> ,arch64_simd_ashr<mode>,
2484         aarch64_simd_imm_shl<mode>, aarch64_simd_reg_sshl<mode>,
2485         aarch64_simd_reg_shl<mode>_unsigned, aarch64_simd_reg_shr<mode>_signed,
2486         ashl<mode>3, lshr<mode>3, ashr<mode>3, vashl<mode>3,
2487         reduc_plus_scal_<mode>, aarch64_vcond_internal<mode><mode>,
2488         vcondu<mode><mode>, aarch64_cm<optab><mode>, aarch64_cmtst<mode>):
2489         Change VDQ to VDQ_I.
2490
2491         (mul<mode>3): Change VDQM to VDQ_BHSI.
2492         (aarch64_simd_vec_set<mode>,vashr<mode>3, vlshr<mode>3, vec_set<mode>,
2493         aarch64_mla<mode>, aarch64_mls<mode>, <su><maxmin><mode>3,
2494         aarch64_<sur>h<addsub><mode>): Change VQ_S to VDQ_BHSI.
2495
2496         (*aarch64_<su>mlal<mode>, *aarch64_<su>mlsl<mode>,
2497         aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>,
2498         aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>, aarch64_<sur>shll_n<mode>):
2499         Change VDW to VD_BHSI.
2500         (*aarch64_combinez<mode>, *aarch64_combinez_be<mode>):
2501         Change VDIC to VD_BHSI.
2502
2503         * config/aarch64/aarch64-simd-builtins.def (saddl, uaddl, ssubl, usubl,
2504         saddw, uaddw, ssubw, usubw, shadd, uhadd, srhadd, urhadd, sshll_n,
2505         ushll_n): Change BUILTIN_VDW to BUILTIN_VD_BHSI.
2506
2507         * config/aarch64/iterators.md (SDQ_I, VDQ, VQ_S, VSDQ_I_BHSI, VDQM, VDW,
2508         VDIC, VDQQHS): Remove.
2509         (Vwtype): Update comment (changing VDW to VD_BHSI).
2510
2511 2014-12-03  Richard Biener  <rguenther@suse.de>
2512
2513         PR middle-end/14541
2514         * builtins.c (fold_builtin_logarithm): Implement simplifications ...
2515         * match.pd: ... here as patterns.
2516
2517 2014-12-03  Prachi Godbole  <prachi.godbole@imgtec.com>
2518
2519         * config/mips/p5600.md (define_automaton, define_cpu_unit): Replace
2520         p5600_agen_pipe and p5600_alu_pipe with p5600_agen_alq_pipe.
2521         (p5600_int_arith_1, p5600_int_arith_2, p5600_int_arith_4): Change
2522         reservation order.
2523
2524 2014-12-03  Tom de Vries  <tom@codesourcery.com>
2525
2526         PR rtl-optimization/63957
2527         * doc/invoke.texi: Replace -fuse-caller-save with -fipa-ra.
2528         * final.c (rest_of_handle_final): Replace flag_use_caller_save with
2529         flag_ipa_ra.
2530         (get_call_reg_set_usage): Same.
2531         * lra-assigns.c (lra_assign): Same.
2532         * lra-constraints.c (need_for_call_save_p): Same.
2533         * lra-lives.c (process_bb_lives): Same.
2534         * lra.c (lra): Same.
2535         * calls.c (expand_call): Same.
2536         (emit_library_call_value_1): Same.
2537         * config/arm/arm.c (arm_option_override): Same.
2538         * opts.c (default_options_table): Replace OPT_fuse_caller_save with
2539         OPT_fipa_ra.
2540         * target.def (call_fusage_contains_non_callee_clobbers): Replace
2541         fuse-caller-save with fipa-ra.
2542         * doc/tm.texi (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Same.
2543         * common.opt: Same.
2544
2545 2014-12-03  Yury Gribov  <y.gribov@samsung.com>
2546
2547         * sanopt.c (maybe_get_single_definition): New function.
2548         (maybe_get_dominating_check): Ditto.
2549         (can_remove_asan_check): Ditto.
2550         (struct tree_map_traits): New struct.
2551         (struct sanopt_ctx): Use custom traits for asan_check_map.
2552         (maybe_optimize_ubsan_null_ifn): Move code to
2553         maybe_get_dominating_check.
2554         (maybe_optimize_asan_check_ifn): Move code and take non-SSA expressions
2555         into account when optimizing.
2556         (sanopt_optimize_walker): Optimize ASan checks even when
2557         recovering.
2558
2559 2014-12-03  Ilya Enkovich  <ilya.enkovich@intel.com>
2560
2561         * config/i386/constraints.md (Yr): New.
2562         * config/i386/i386.h (reg_class): Add NO_REX_SSE_REGS.
2563         (REG_CLASS_NAMES): Likewise.
2564         (REG_CLASS_CONTENTS): Likewise.
2565         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add alternatives
2566         which use only NO_REX_SSE_REGS.
2567         (vec_set<mode>_0): Likewise.
2568         (*vec_setv4sf_sse4_1): Likewise.
2569         (sse4_1_insertps): Likewise.
2570         (*sse4_1_extractps): Likewise.
2571         (*sse4_1_mulv2siv2di3<mask_name>): Likewise.
2572         (*<sse4_1_avx2>_mul<mode>3<mask_name>): Likewise.
2573         (*sse4_1_<code><mode>3<mask_name>): Likewise.
2574         (*sse4_1_<code><mode>3): Likewise.
2575         (*sse4_1_eqv2di3): Likewise.
2576         (sse4_2_gtv2di3): Likewise.
2577         (*vec_extractv4si): Likewise.
2578         (*vec_concatv2si_sse4_1): Likewise.
2579         (vec_concatv2di): Likewise.
2580         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Likewise.
2581         (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Likewise.
2582         (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Likewise.
2583         (<vi8_sse4_1_avx2_avx512>_movntdqa): Likewise.
2584         (<sse4_1_avx2>_mpsadbw): Likewise.
2585         (<sse4_1_avx2>packusdw<mask_name>): Likewise.
2586         (<sse4_1_avx2>_pblendvb): Likewise.
2587         (sse4_1_pblendw): Likewise.
2588         (sse4_1_phminposuw): Likewise.
2589         (sse4_1_<code>v8qiv8hi2<mask_name>): Likewise.
2590         (sse4_1_<code>v4qiv4si2<mask_name>): Likewise.
2591         (sse4_1_<code>v4hiv4si2<mask_name>): Likewise.
2592         (sse4_1_<code>v2qiv2di2<mask_name>): Likewise.
2593         (sse4_1_<code>v2hiv2di2<mask_name>): Likewise.
2594         (sse4_1_<code>v2siv2di2<mask_name>): Likewise.
2595         (sse4_1_ptest): Likewise.
2596         (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Likewise.
2597         (sse4_1_round<ssescalarmodesuffix>): Likewise.
2598         * config/i386/subst.md (mask_prefix4): New.
2599         * config/i386/x86-tune.def (X86_TUNE_AVOID_4BYTE_PREFIXES): New.
2600
2601 2014-12-03  Segher Boessenkool  <segher@kernel.crashing.org>
2602
2603         PR rtl-optimization/52714
2604         * combine.c (try_combine): Allow combining two insns into two
2605         new insns if at least one of those is a noop.
2606
2607 2014-12-03  Bin Cheng  <bin.cheng@arm.com>
2608
2609         * target.def (fusion_priority): Wrap code with @smallexample.
2610         * doc/tm.texi: Regenerated.
2611
2612 2014-12-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2613
2614         * diagnostic.c (diagnostic_show_locus): Honor override_column when
2615         placing the caret.
2616
2617 2014-12-02  Dmitry Vyukov  <dvyukov@google.com>
2618
2619         * asan.c: (asan_finish_file): Use default priority for constructors
2620         in kernel mode.
2621
2622 2014-12-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2623
2624         PR target/64115
2625         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove
2626         invalid UNSPEC_TOCREL sanity check under ENABLE_CHECKING.
2627
2628 2014-12-02  H.J. Lu  <hongjiu.lu@intel.com>
2629
2630         PR target/64108
2631         * config/i386/i386.c (decide_alg): Stop only if there aren't
2632         any usable algorithms.
2633
2634 2014-12-02  Tom de Vries  <tom@codesourcery.com>
2635
2636         PR rtl-optimization/63718
2637         * config/arm/arm.c (arm_option_override): Disable fuse-caller-save for
2638         Thumb1.
2639
2640 2014-12-02  Richard Biener  <rguenther@suse.de>
2641
2642         * match.pd: When combining divisions exclude the degenerate
2643         case involving INT_MIN from overflow handling.
2644
2645 2014-12-02  Wilco Dijkstra  <wilco.dijkstra@arm.com>
2646
2647         * ira-costs.c (scan_one_insn): Improve spill cost adjustment.
2648
2649 2014-12-02  Martin Jambor  <mjambor@suse.cz>
2650
2651         PR ipa/63814
2652         * ipa-cp.c (same_node_or_its_all_contexts_clone_p): New function.
2653         (cgraph_edge_brings_value_p): New parameter dest, use
2654         same_node_or_its_all_contexts_clone_p and check availability.
2655         (cgraph_edge_brings_value_p): Likewise.
2656         (get_info_about_necessary_edges): New parameter dest, pass it to
2657         cgraph_edge_brings_value_p.  Update caller.
2658         (gather_edges_for_value): Likewise.
2659         (perhaps_add_new_callers): Use cgraph_edge_brings_value_p to check
2660         both the destination and availability.
2661
2662 2014-12-02  Uros Bizjak  <ubizjak@gmail.com>
2663
2664         PR target/64113
2665         * config/alpha/alpha.md (call_value_osf_tlsgd): Do not split insn
2666         using post-reload splitter.  Use peephole2 pass instead.
2667         (call_value_osf_tlsldm): Ditto.
2668         (TLS_CALL): New int iterator.
2669         (tls): New int attribute.
2670         (call_value_osf_<tls>): Merge insn pattern from call_value_osf_tlsgd
2671         and call_value_tlsldm using TLS_CALL int iterator.
2672
2673 2014-12-02  Richard Biener  <rguenther@suse.de>
2674             Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
2675
2676         * genmatch.c: Include hash-set.h.
2677         (fatal_at): Add source_location overload.
2678         (parser::record_operlist): New method.
2679         (parser::push_simplify): Likewise.
2680         (parser::oper_lists_set): New member.
2681         (parser::oper_lists): Likewise.
2682         (parser::parse_operation): Record seen operator list references.
2683         (parser::parse_c_expr): Likewise.
2684         (parser::parse_simplify): Init oper_lists_set and oper_lists
2685         and use push_simplify.
2686         (parser::parser): Init oper_lists_set and oper_lists.
2687
2688 2014-12-02  Richard Biener  <rguenther@suse.de>
2689
2690         * match.pd: Restrict division combining to trunc_div and
2691         exact_div.
2692
2693 2014-12-02  Jakub Jelinek  <jakub@redhat.com>
2694
2695         * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv):
2696         Remove NULL last argument from create_tmp_var calls.
2697         * config/mips/mips.c (mips_atomic_assign_expand_fenv): Likewise.
2698         * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Likewise.
2699         * config/i386/i386.c (add_condition_to_bb,
2700         ix86_atomic_assign_expand_fenv): Likewise.
2701         * config/mep/mep.c (mep_gimplify_va_arg_expr): Likewise.
2702         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
2703         * config/aarch64/aarch64-builtins.c
2704         (aarch64_atomic_assign_expand_fenv): Likewise.
2705         * config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr):
2706         Likewise.
2707         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Likewise.
2708         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Likewise.
2709         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
2710
2711         * config/alpha/alpha.c (alpha_gimple_fold_builtin): Use
2712         gimple_build_assign instead of gimple_build_assign_with_ops and swap
2713         the order of first two arguments.
2714         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
2715         Likewise.  Remove last NULL_TREE argument.
2716
2717 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
2718
2719         PR rtl-optimization/59278
2720         * combine (reg_dead_at_p): Consider REG_UNUSED notes.
2721
2722 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
2723
2724         * combine.c (try_combine): Use is_parallel_of_n_reg_sets some more.
2725
2726 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
2727
2728         * combine.c (is_parallel_of_n_reg_sets): New function.
2729         (can_split_parallel_of_n_reg_sets): New function.
2730         (try_combine): If I2 is a PARALLEL of two SETs, split it into
2731         two insns if possible.
2732
2733 2014-12-01  Tobias Burnus  <burnus@net-b.de>
2734             Jack Howarth  <howarth@bromo.med.uc.edu>
2735
2736         PR middle-end/64017
2737         * configure.ac (ac_has_isl_schedule_constraints_compute_schedule):
2738         New check.
2739         * doc/install.texi (ISL): Permit ISL 0.14.
2740         * graphite-optimize-isl.c (getScheduleForBandList, optimize_isl):
2741         Conditionally use ISL 0.13+ functions.
2742         * graphite-interchange.c: Make 'extern "C"' conditional.
2743         * graphite-isl-ast-to-gimple.c: Ditto.
2744         * graphite-poly.c: Ditto.
2745         * graphite-sese-to-poly.c: Ditto.
2746         * config.in: Regenerate.
2747         * gcc/configure: Regenerate.
2748
2749 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
2750
2751         * combine.c (distribute_links): Handle multiple SETs.
2752
2753 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
2754
2755         * combine.c (struct insn_link): New field `regno'.
2756         (alloc_insn_link): New parameter `regno'.  Use it.
2757         (find_single_use): Check the new field.
2758         (can_combine_def_p, can_combine_use_p): New functions.  Split
2759         off from ...
2760         (create_log_links): ... here.  Correct data type of `regno'.
2761         Adjust call to alloc_insn_link.
2762         (adjust_for_new_dest): Find regno, use it in call to
2763         alloc_insn_link.
2764         (try_combine): Check reg_used_between_p when combining a PARALLEL
2765         as earlier insn.  Adjust call to alloc_insn_link.
2766         (distribute_links): Check the new field.
2767
2768 2014-12-01  David Malcolm  <dmalcolm@redhat.com>
2769
2770         PR jit/63854
2771         * real.c (real_from_string): Add missing mpfr_clear.
2772
2773 2014-12-01  David Malcolm  <dmalcolm@redhat.com>
2774
2775         PR jit/63854
2776         * tree-ssa-math-opts.c (execute_cse_sincos_1): Fix a missing
2777         release of stmts by converting it to an auto_vec.
2778
2779 2014-12-01  Richard Biener  <rguenther@suse.de>
2780
2781         * Makefile.in (gimple-match.o-warn): Use -Wno-unused instead of
2782         -Wno-unused-variable and -Wno-unused-but-set-variable to restore
2783         bootstrap with old GCC.
2784         (generic-match.o-warn): Likewise.
2785
2786 2014-12-01  Richard Biener  <rguenther@suse.de>
2787
2788         * fold-const.c (const_binop): Handle POINTER_PLUS_EXPR.
2789         Properly handle FIXED_CST shifts by INTEGER_CST.
2790         (const_binop): Move COMPLEX_EXPR, VEC_PACK_TRUNC_EXPR,
2791         VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR,
2792         VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_EVEN_EXPR and
2793         VEC_WIDEN_MULT_ODD_EXPR handling here from ...
2794         (fold_binary_loc): ... here.  Call const_binop overload
2795         with result type.
2796
2797 2014-12-01  Marek Polacek  <polacek@redhat.com>
2798             Jakub Jelinek  <jakub@redhat.com>
2799
2800         PR sanitizer/64121
2801         * ubsan.c (instrument_object_size): Stop searching if the base
2802         occurs in abnormal phi.
2803
2804 2014-12-01  Marek Polacek  <polacek@redhat.com>
2805
2806         PR sanitizer/63956
2807         * ubsan.c (is_ubsan_builtin_p): Check also built-in class.
2808
2809 2014-12-01  Jakub Jelinek  <jakub@redhat.com>
2810
2811         * gimple.h (gimple_build_assign_stat): Remove prototype.
2812         (gimple_build_assign): Remove define.  Add overload prototypes
2813         with tree lhs and either a tree rhs, or enum tree_code and
2814         1, 2 or 3 tree operands.
2815         * gimple.c (gimple_build_assign_stat): Renamed to...
2816         (gimple_build_assign): ... this.  Add overloads with
2817         enum tree_code and 1, 2 or 3 tree operands.
2818         (gimple_build_assign_with_ops): Remove 1 and 2 operand overloads.
2819         Rename the 3 operand overload to ...
2820         (gimple_build_assign_1): ... this.  Make it static inline.
2821         * tree-ssa-strlen.c (get_string_length): Use gimple_build_assign
2822         instead of gimple_build_assign_with_ops, swap the order of first
2823         two arguments and adjust formatting where necessary.
2824         * tree-vect-slp.c (vect_get_constant_vectors,
2825         vect_create_mask_and_perm): Likewise.
2826         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
2827         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
2828         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
2829         * tsan.c (instrument_builtin_call): Likewise.
2830         * tree-chkp.c (chkp_compute_bounds_for_assignment,
2831         chkp_generate_extern_var_bounds): Likewise.
2832         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
2833         * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
2834         * gimple-builder.c (build_assign, build_type_cast): Likewise.
2835         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
2836         * value-prof.c (gimple_divmod_fixed_value, gimple_mod_pow2,
2837         gimple_mod_subtract): Likewise.
2838         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
2839         * tree-vect-patterns.c (vect_recog_dot_prod_pattern,
2840         vect_recog_sad_pattern, vect_handle_widen_op_by_const,
2841         vect_recog_widen_mult_pattern, vect_recog_pow_pattern,
2842         vect_recog_widen_sum_pattern, vect_operation_fits_smaller_type,
2843         vect_recog_over_widening_pattern, vect_recog_widen_shift_pattern,
2844         vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
2845         vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
2846         adjust_bool_pattern_cast, adjust_bool_pattern,
2847         vect_recog_bool_pattern): Likewise.
2848         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge,
2849         insert_initializers, introduce_cast_before_cand,
2850         replace_one_candidate): Likewise.
2851         * tree-ssa-math-opts.c (insert_reciprocals, powi_as_mults_1,
2852         powi_as_mults, build_and_insert_binop, build_and_insert_cast,
2853         pass_cse_sincos::execute, bswap_replace, convert_mult_to_fma):
2854         Likewise.
2855         * tree-tailcall.c (adjust_return_value_with_ops,
2856         update_accumulator_with_ops): Likewise.
2857         * tree-predcom.c (reassociate_to_the_same_stmt): Likewise.
2858         * tree-ssa-reassoc.c (build_and_add_sum,
2859         optimize_range_tests_to_bit_test, update_ops,
2860         maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
2861         negate_value, repropagate_negates, attempt_builtin_powi,
2862         reassociate_bb): Likewise.
2863         * tree-vect-loop.c (vect_is_simple_reduction_1,
2864         get_initial_def_for_induction, vect_create_epilog_for_reduction):
2865         Likewise.
2866         * ipa-split.c (split_function): Likewise.
2867         * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
2868         abs_replacement, neg_replacement): Likewise.
2869         * tree-profile.c (gimple_gen_edge_profiler): Likewise.
2870         * tree-vrp.c (simplify_truth_ops_using_ranges,
2871         simplify_float_conversion_using_ranges,
2872         simplify_internal_call_using_ranges): Likewise.
2873         * gimple-fold.c (rewrite_to_defined_overflow, gimple_build): Likewise.
2874         * tree-vect-generic.c (expand_vector_divmod,
2875         optimize_vector_constructor): Likewise.
2876         * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn,
2877         instrument_bool_enum_load): Likewise.
2878         * tree-ssa-loop-manip.c (create_iv): Likewise.
2879         * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
2880         expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
2881         expand_cilk_for, simd_clone_adjust): Likewise.
2882         * trans-mem.c (expand_transaction): Likewise.
2883         * tree-vect-data-refs.c (bump_vector_ptr, vect_permute_store_chain,
2884         vect_setup_realignment, vect_permute_load_chain,
2885         vect_shift_permute_load_chain): Likewise.
2886         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
2887         vectorizable_simd_clone_call, vect_gen_widened_results_half,
2888         vect_create_vectorized_demotion_stmts, vectorizable_conversion,
2889         vectorizable_shift, vectorizable_operation, vectorizable_store,
2890         permute_vec_elements, vectorizable_load): Likewise.
2891
2892 2014-12-01  Richard Biener  <rguenther@suse.de>
2893
2894         PR middle-end/64111
2895         * tree.c (int_cst_hasher::hash): Use TYPE_UID instead of
2896         htab_hash_pointer to not break PCH.
2897
2898 2014-12-01  Richard Biener  <rguenther@suse.de>
2899
2900         PR tree-optimization/15346
2901         * Makefile.in (gimple-match.o-warn): Remove -Wno-unused-parameter,
2902         add -Wno-unused-but-set-variable.
2903         * match.pd: Combine two successive divisions.
2904
2905 2014-12-01  Richard Biener  <rguenther@suse.de>
2906
2907         PR middle-end/64126
2908         * match.pd: Allow conversions in ~A + 1 -> -A, add -A - 1 -> ~A
2909         and -1 - A -> ~A.
2910         * fold-const.c (fold_binary_loc): Remove transforms here.
2911
2912 2014-12-01  Maciej W. Rozycki  <macro@codesourcery.com>
2913
2914         * config/mips/mips.c (mips16_build_call_stub): Move the save of
2915         the return address in $18 ahead of passing arguments to FPRs.
2916
2917 2014-12-01  Ilya Enkovich  <ilya.enkovich@intel.com>
2918
2919         PR target/64055
2920         * tree-chkp.c (chkp_find_bound_slots_1): Allow non constant
2921         values in array domain.
2922
2923 2014-12-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
2924
2925         PR tree-optimization/63941
2926         * tree-if-conv.c (add_to_predicate_list): Delete wrong assertion that
2927         DOM_BB has non-true predicate, conditionally set non-true predicate
2928         for BB.
2929
2930 2014-12-01  Martin Jambor  <mjambor@suse.cz>
2931
2932         PR ipa/63551
2933         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Convert
2934         value of the argument to the type of the value in the condition.
2935
2936 2014-12-01  Oleg Endo  <olegendo@gcc.gnu.org>
2937
2938         PR target/63986
2939         PR target/51244
2940         * config/sh/sh.c (sh_unspec_insn_p,
2941         sh_insn_operands_modified_between_p): New functions.
2942         (sh_split_movrt_negc_to_movt_xor): Do not delete insn if its operands
2943         are modified or if it has side effects, may trap or is volatile.
2944
2945 2014-11-29  Jakub Jelinek  <jakub@redhat.com>
2946
2947         * gimple-expr.h (create_tmp_var_raw, create_tmp_var,
2948         create_tmp_reg): Add default NULL value to last argument.
2949         * tree-ssanames.h (make_ssa_name, copy_ssa_name): Likewise.
2950         * gimple-low.c (lower_builtin_posix_memalign): Remove NULL
2951         last argument from create_tmp_var_raw, create_tmp_var,
2952         create_tmp_reg, make_ssa_name and copy_ssa_name calls.
2953         * tree-ssa-strlen.c (get_string_length): Likewise.
2954         * tree-emutls.c (gen_emutls_addr, lower_emutls_1): Likewise.
2955         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
2956         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
2957         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
2958         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
2959         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
2960         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
2961         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
2962         * tsan.c (instrument_expr, instrument_builtin_call,
2963         instrument_func_entry): Likewise.
2964         * varpool.c (add_new_static_var): Likewise.
2965         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
2966         * gimplify.c (internal_get_tmp_var, gimplify_return_expr,
2967         gimplify_modify_expr_to_memcpy, gimplify_modify_expr_to_memset,
2968         gimplify_init_ctor_eval_range, gimplify_init_constructor,
2969         gimplify_omp_atomic, gimplify_expr): Likewise.
2970         * gimple-builder.c (build_assign, build_type_cast): Likewise.
2971         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1,
2972         slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge,
2973         vect_loop_versioning): Likewise.
2974         * tree-if-conv.c (version_loop_for_if_conversion): Likewise.
2975         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
2976         * tree-vect-patterns.c (vect_handle_widen_op_by_const,
2977         vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
2978         vect_recog_over_widening_pattern): Likewise.
2979         * tree-sra.c (build_ref_for_offset, create_access_replacement):
2980         Likewise.
2981         * tree-cfg.c (make_blocks): Likewise.
2982         * tree-eh.c (lower_eh_constructs_2, lower_resx, lower_eh_dispatch):
2983         Likewise.
2984         * tree-ssa-propagate.c (update_call_from_tree): Likewise.
2985         * tree-complex.c (get_component_ssa_name, expand_complex_div_wide):
2986         Likewise.
2987         * tree-ssa-math-opts.c (build_and_insert_cast): Likewise.
2988         * tree-tailcall.c (update_accumulator_with_ops): Likewise.
2989         * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm,
2990         execute_load_motion, reassociate_to_the_same_stmt): Likewise.
2991         * tree-ssa-reassoc.c (build_and_add_sum,
2992         optimize_range_tests_to_bit_test, update_ops,
2993         maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
2994         negate_value, repropagate_negates): Likewise.
2995         * tree-vect-loop.c (vect_is_simple_reduction_1,
2996         vect_create_epilog_for_reduction): Likewise.
2997         * ipa-split.c (split_function): Likewise.
2998         * tree-inline.c (remap_ssa_name, setup_one_parameter,
2999         declare_return_variable, tree_function_versioning): Likewise.
3000         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
3001         * cfgexpand.c (update_alias_info_with_stack_vars, expand_used_vars):
3002         Likewise.
3003         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
3004         neg_replacement): Likewise.
3005         * gimplify-me.c (force_gimple_operand_1, gimple_regimplify_operands):
3006         Likewise.
3007         * tree-vrp.c (simplify_truth_ops_using_ranges,
3008         simplify_float_conversion_using_ranges,
3009         simplify_internal_call_using_ranges): Likewise.
3010         * tree-switch-conversion.c (emit_case_bit_tests,
3011         build_one_array, build_arrays, gen_def_assigns): Likewise.
3012         * gimple-fold.c (gimple_fold_builtin_memory_op,
3013         gimple_fold_builtin_strcat, gimple_fold_call, gimple_build): Likewise.
3014         * tree-vect-generic.c (expand_vector_divmod,
3015         optimize_vector_constructor): Likewise.
3016         * ubsan.c (ubsan_encode_value, ubsan_expand_null_ifn,
3017         ubsan_expand_objsize_ifn, instrument_si_overflow,
3018         instrument_bool_enum_load, instrument_nonnull_arg): Likewise.
3019         * tree-outof-ssa.c (insert_backedge_copies): Likewise.
3020         * tree-ssa-loop-manip.c (create_iv,
3021         tree_transform_and_unroll_loop): Likewise.
3022         * omp-low.c (scan_omp_parallel, lower_rec_simd_input_clauses,
3023         lower_rec_input_clauses, lower_lastprivate_clauses,
3024         expand_parallel_call, expand_omp_for_static_chunk,
3025         expand_omp_atomic_pipeline, expand_omp_target,
3026         maybe_add_implicit_barrier_cancel, lower_omp_single_simple,
3027         lower_omp_critical, lower_omp_for, task_copyfn_copy_decl,
3028         lower_depend_clauses, lower_omp_target, lower_omp_1,
3029         ipa_simd_modify_stmt_ops, simd_clone_adjust): Likewise.
3030         * tree-parloops.c (take_address_of, create_phi_for_local_result,
3031         create_call_for_reduction_1, separate_decls_in_region,
3032         create_parallel_loop): Likewise.
3033         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_dependence,
3034         handle_scalar_deps_crossing_scop_limits): Likewise.
3035         * trans-mem.c (lower_transaction, build_tm_load, build_tm_store,
3036         expand_assign_tm, expand_call_tm, expand_transaction,
3037         ipa_tm_insert_gettmclone_call): Likewise.
3038         * tree-vect-data-refs.c (bump_vector_ptr, vect_setup_realignment):
3039         Likewise.
3040         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
3041         vectorizable_call, vectorizable_simd_clone_call,
3042         vectorizable_conversion, vectorizable_store, permute_vec_elements,
3043         vectorizable_load): Likewise.
3044
3045 2014-11-29  Tobias Burnus  <burnus@net-b.de>
3046             Manuel López-Ibáñez  <manu@gcc.gnu.org>
3047
3048         * opt-functions.awk (lang_enabled_by): Support || for
3049         enabled-by.
3050         * optc-gen.awk: Ditto.
3051         * doc/options.texi (LangEnabledBy, EnabledBy): Document the
3052         || syntax.
3053
3054 2014-11-28  Mike Stump  <mikestump@comcast.net>
3055
3056         * bitmap.c (bitmap_ior): Zap current as it could be deleted.
3057         (bitmap_ior_and_compl): Likewise.
3058
3059 2014-11-28  Vladimir Makarov  <vmakarov@redhat.com>
3060
3061         PR target/64061
3062         * lra.c (lra_substitute_pseudo): Ignore constant with int mode for
3063         subreg.
3064
3065 2014-11-28  Segher Boessenkool  <segher@kernel.crashing.org>
3066
3067         PR target/64093
3068         * config/rs6000/rs6000.md (and<mode>3): Don't generate
3069         and<mode>3_imm unless rs6000_gen_cell_microcode is true.
3070
3071 2014-11-28  Vladimir Makarov  <vmakarov@redhat.com>
3072
3073         PR rtl-optimization/64087
3074         * lra-lives.c (process_bb_lives): Add debug output.
3075         (lra_create_live_ranges): Don't remove dead insn on the second
3076         call of lra_create_live_ranges_1.
3077
3078 2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>
3079
3080         PR rtl-optimization/64037
3081         * combine.c (setup_incoming_promotions): Pass the argument
3082         before any promotions happen to promote_function_mode.
3083
3084 2014-11-28  Evgeny Stupachenko  <evstupac@gmail.com>
3085
3086         * tree-vect-data-refs.c (vect_transform_grouped_load): Limit shift
3087         permutations to loads group of size 3.
3088
3089 2014-11-28  Jiong Wang  <jiong.wang@arm.com>
3090
3091         * config/arm/arm.md (copysignsf3): New pattern.
3092         (copysigndf3): Likewise.
3093
3094 2014-11-28  Andrey Turetskiy  <andrey.turetskiy@intel.com>
3095             Ilya Verbin  <ilya.verbin@intel.com>
3096
3097         * omp-low.c (lower_omp_critical): Mark critical sections
3098         inside target functions as offloadable.
3099
3100 2014-11-28  Ilya Verbin  <ilya.verbin@intel.com>
3101
3102         * lto-wrapper.c (run_gcc): Set have_lto and have_offload if at least one
3103         file contains sections with LTO and offload IR, respectively.
3104
3105 2014-11-28  Ilya Verbin  <ilya.verbin@intel.com>
3106
3107         * cgraphunit.c (ipa_passes): Handle flag_generate_offload.
3108         (symbol_table::compile): Set flag_generate_offload if there is something
3109         to offload.
3110         * common.opt (flag_generate_offload): New Variable declaration.
3111         * dwarf2out.c (dwarf2out_finish): Handle flag_generate_offload.
3112         * ipa-inline-analysis.c (inline_generate_summary): Do not skip if
3113         flag_generate_offload is set.
3114         * lto-streamer.c (gate_lto_out): Handle flag_generate_offload.
3115         * passes.c (ipa_write_summaries): Do not skip if flag_generate_offload
3116         is set.
3117         * toplev.c (compile_file): Emit LTO marker if offload info has been
3118         previously emitted.  Do not emit lto_slim marker if
3119         flag_generate_offload is without flag_generate_lto.
3120         * tree.c (free_lang_data): Do not skip if flag_generate_offload is set.
3121
3122 2014-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3123
3124         * config/arm/arm-cores.def (cortex-a17.cortex-a7): New entry.
3125         * config/arm/arm-tables.opt: Regenerate.
3126         * config/arm/arm-tune.md: Regenerate.
3127         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a17.cortex-a7.
3128         * config/arm/t-aprofile: Add cortex-a17.cortex-a7 entry to
3129         MULTILIB_MATCHES.
3130
3131 2014-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3132
3133         * config/arm/arm.md (generic_sched): Specify cortexa17 in 'no' list.
3134         Include cortex-a17.md.
3135         * config/arm/arm.c (arm_issue_rate): Specify 2 for cortexa17.
3136         * config/arm/arm-cores.def (cortex-a17): New entry.
3137         * config/arm/arm-tables.opt: Regenerate.
3138         * config/arm/arm-tune.md: Regenerate.
3139         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=cortex-a17.
3140         * config/arm/cortex-a17.md: New file.
3141         * config/arm/cortex-a17-neon.md: New file.
3142         * config/arm/driver-arm.c (arm_cpu_table): Add entry for cortex-a17.
3143         * config/arm/t-aprofile: Add cortex-a17 entries to MULTILIB_MATCHES.
3144
3145 2014-11-28  Richard Biener  <rguenther@suse.de>
3146
3147         PR middle-end/64084
3148         * genmatch.c (dt_node::gen_kids_1): New function, split out
3149         from dt_node::gen_kids.
3150         (decision_tree::cmp_node): DT_TRUE are generally not equal.
3151         (decision_tree::find_node): Treat DT_TRUE as barrier for
3152         node CSE on the same level.
3153         (dt_node::append_node): Do not keep DT_TRUE last.
3154         (dt_node::gen_kids): Emit code after each DT_TRUE node seen.
3155
3156 2014-11-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3157
3158         * config/arm/t-aprofile (MULTILIB_MATCHES): New entry for
3159         -march=armv8-a+crc.
3160
3161 2014-11-27  Uros Bizjak  <ubizjak@gmail.com>
3162
3163         * config/i386/i386.md (preferred_for_size): New attribute
3164         (*pushxf): Split Yx*r constraints to r,*r.  Use preferred_for_size
3165         attribute to conditionally disable alternative 1.
3166         (*pushdf): Split Yd*r constraints to r,*r.  Use preferred_for_size
3167         and prefered_for_speed attributes to conditionally disable
3168         alternative 1.
3169         (*movxf_internal): Split Yx*r constraints to r,*r.  Use
3170         preferred_for_size attribute to conditionally disable
3171         alternatives 3 and 4.
3172         (*movdf_internal): Split Yd*r constraints to r,*r.  Use
3173         preferred_for_size and prefered_for_speed attributes to conditionally
3174         disable alternatives 3 and 4.
3175         * config/i386/constraints.md (Yd, Yx): Remove register constraints.
3176
3177 2014-11-27  Eric Botcazou  <ebotcazou@adacore.com>
3178
3179         * dwarf2out.c (set_block_origin_self): Skip nested functions.
3180
3181 2014-11-27  H.J. Lu  <hongjiu.lu@intel.com>
3182
3183         PR target/63833
3184         * config/i386/i386.h (REAL_PIC_OFFSET_TABLE_REGNUM): Use
3185         R15_REG for 64-bit.
3186         * config/i386/rdos64.h (REAL_PIC_OFFSET_TABLE_REGNUM): Removed.
3187
3188 2014-11-27  Martin Liska  <mliska@suse.cz>
3189             David Malcolm  <dmalcolm@redhat.com>
3190
3191         * ipa-icf.c (sem_function::equals_private): int* is replaced with
3192         auto_vec.
3193         (sem_function::bb_dict_test): Likewise.
3194         * ipa-icf.h: Likewise.
3195
3196 2014-11-27  Richard Biener  <rguenther@suse.de>
3197
3198         PR middle-end/64088
3199         * fold-const.c (const_unop): Re-instantiate missing condition
3200         before calling fold_abs_const.
3201
3202         PR tree-optimization/64088
3203         * tree-ssa-tail-merge.c (update_debug_stmt): After resetting
3204         the stmt break from the loop over use operands.
3205
3206 2014-11-27  Ilya Tocar  <ilya.tocar@intel.com>
3207
3208         * config/i386/cpuid.h (bit_MPX, bit_BNDREGS, bit_BNDCSR):
3209         Define.
3210         * config/i386/i386.c (get_builtin_code_for_version): Add avx512f.
3211         (fold_builtin_cpu): Ditto.
3212         * doc/extend.texi: Documment it.
3213
3214 2014-11-27  Jakub Jelinek  <jakub@redhat.com>
3215
3216         PR middle-end/64067
3217         * expr.c (expand_expr_addr_expr_1) <case COMPOUND_LITERAL_EXPR>:
3218         Handle it by returning address of COMPOUND_LITERAL_EXPR_DECL
3219         not only if modifier is EXPAND_INITIALIZER, but whenever
3220         COMPOUND_LITERAL_EXPR_DECL is non-NULL and TREE_STATIC.
3221
3222         PR tree-optimization/64024
3223         * tree-vectorizer.h (struct _stmt_vec_info): Remove simd_clone_fndecl
3224         field.  Add simd_clone_info field.
3225         (STMT_VINFO_SIMD_CLONE_FNDECL): Remove.
3226         (STMT_VINFO_SIMD_CLONE_INFO): Define.
3227         * tree-vect-stmts.c (vectorizable_simd_clone_call): Adjust for
3228         STMT_VINFO_SIMD_CLONE_FNDECL becoming first element of
3229         STMT_VINFO_SIMD_CLONE_INFO vector.  For linear arguments, remember
3230         base and linear_step from analysis phase and use it during transform
3231         phase, biased by the difference between LOOP_VINFO_NITERS{_UNCHANGED,}
3232         multiplied by linear_step.
3233         (free_stmt_vec_info): Release STMT_VINFO_SIMD_CLONE_INFO.
3234
3235         PR lto/64025
3236         * alias.c (find_base_term): Use std::swap.  Prefer tmp2
3237         if it is CONSTANT_P other than CONST_INT.
3238
3239 2014-11-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3240
3241         PR target/59593
3242         * config/arm/arm.c (dump_minipool): dispatch to consttable pattern
3243         based on mode size.
3244         * config/arm/arm.md (consttable_1): Move from config/arm/thumb1.md and
3245         make it TARGET_EITHER.
3246         (consttable_2): Move from config/arm/thumb1.md, make it TARGET_EITHER
3247         and move HFmode handling from consttable_4 to it.
3248         (consttable_4): Move HFmode handling to consttable_2 pattern.
3249         * config/arm/thumb1.md (consttable_1): Move to config/arm/arm.md.
3250         (consttable_2): Ditto.
3251
3252 2014-11-27  Richard Biener  <rguenther@suse.de>
3253
3254         * tree-ssa-sccvn.c (try_to_simplify): Allow
3255         gimple_fold_stmt_to_constant_1 to follow SSA edges.
3256
3257 2014-11-27  Richard Biener  <rguenther@suse.de>
3258
3259         PR tree-optimization/64083
3260         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
3261         forcibly mark loop for removal the wrong way.
3262
3263 2014-11-27  Richard Biener  <rguenther@suse.de>
3264
3265         PR middle-end/63704
3266         * alias.c (mems_in_disjoint_alias_sets_p): Remove assert
3267         and instead return false when !fstrict-aliasing.
3268
3269 2014-11-27  Richard Biener  <rguenther@suse.de>
3270
3271         PR tree-optimization/61634
3272         * tree-vect-slp.c: Include gimple-walk.h.
3273         (vect_detect_hybrid_slp_stmts): Rewrite to propagate hybrid
3274         down the SLP tree for one scalar statement.
3275         (vect_detect_hybrid_slp_1): New walker function.
3276         (vect_detect_hybrid_slp_2): Likewise.
3277         (vect_detect_hybrid_slp): Properly handle pattern statements
3278         in a pre-scan over all loop stmts.
3279
3280 2014-11-27  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
3281
3282         Revert:
3283         2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
3284         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
3285         aarch64_convert_mode, aarch64_gen_ccmp_first,
3286         aarch64_gen_ccmp_next): New functions.
3287         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.
3288
3289 2014-11-26  Jakub Jelinek  <jakub@redhat.com>
3290
3291         * gcc.c (SANITIZER_SPEC): Don't error on -fsanitize=thread
3292         without -pie or -shared, error on -fsanitize=thread -static instead.
3293
3294 2014-11-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3295
3296         PR ipa/61190
3297         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Fix comment.
3298         (cgraph_node::function_or_virtual_thunk_symbol): New function.
3299         (cgraph_node::call_for_symbol_and_aliases): Fix comment.
3300         (cgraph_node::call_for_symbol_thunks_and_aliases): Adjust comment.
3301         Add new optional parameter exclude_virtual_thunks.
3302         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Add new
3303         optional parameter exclude_virtual_thunks.
3304         (cgraph_node::set_const_flag): Don't propagate to virtual thunks.
3305         (cgraph_node::set_pure_flag): Likewise.
3306         (cgraph_node::function_symbol): Simplified.
3307         (cgraph_node::function_or_virtual_thunk_symbol): New function.
3308         * ipa-pure-const.c (analyze_function): For virtual thunks set
3309         pure_const_state to IPA_NEITHER.
3310         (propagate_pure_const): Use function_or_virtual_thunk_symbol.
3311
3312 2014-11-26  Richard Biener  <rguenther@suse.de>
3313
3314         PR middle-end/63738
3315         * tree-data-ref.c (split_constant_offset_1): Do not follow
3316         SSA edges for SSA names with SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
3317
3318 2014-11-26  Richard Biener  <rguenther@suse.de>
3319
3320         * fold-const.h (const_unop): Declare.
3321         (const_binop): Likewise.
3322         * fold-const.c (const_binop): Export overload that expects
3323         a type parameter and dispatches to fold_relational_const as well.
3324         Check both operand kinds for guarding the transforms.
3325         (const_unop): New function, with constant folding from fold_unary_loc.
3326         (fold_unary_loc): Dispatch to const_unop for tcc_constant operand.
3327         Remove constant folding done there from the simplifications.
3328         (fold_binary_loc): Check for constants using CONSTANT_CLASS_P.
3329         (fold_negate_expr): Remove dead code from the REAL_CST case.
3330         Avoid building garbage in the COMPLEX_CST case.
3331         * gimple-match-head.c (gimple_resimplify1): Dispatch to
3332         const_unop.
3333         (gimple_resimplify2): Dispatch to const_binop.
3334         (gimple_simplify): Likewise.
3335
3336 2014-11-26  Ilya Enkovich  <ilya.enkovich@intel.com>
3337
3338         PR bootstrap/63995
3339         * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Ignore
3340         debug statement when searching for a new position for
3341         bounds load/creation statement.
3342
3343 2014-11-26  Marek Polacek  <polacek@redhat.com>
3344
3345         PR sanitizer/63788
3346         * asan.c (initialize_sanitizer_builtins): Add BT_FN_SIZE_CONST_PTR_INT
3347         var.  Conditionally build BUILT_IN_OBJECT_SIZE decl.
3348         (ATTR_PURE_NOTHROW_LEAF_LIST): Define.
3349
3350 2014-11-26  Ilya Enkovich  <ilya.enkovich@intel.com>
3351
3352         PR lto/64075
3353         * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Use
3354         proper size for function_code bitfield.
3355         (pack_ts_function_decl_value_fields): Likewise.
3356
3357 2014-11-21  Mark Wielaard  <mjw@redhat.com>
3358
3359         * doc/invoke.texi (-gdwarf-@{version}): Mention experimental DWARFv5.
3360         * opts.c (common_handle_option): Accept -gdwarf-5.
3361         * dwarf2out.c (is_cxx): Add DW_LANG_C_plus_plus_11 and
3362         DW_LANG_C_plus_plus_14.
3363         (lower_bound_default): Likewise. Plus DW_LANG_C11.
3364         (gen_compile_unit_die): Output DW_LANG_C_plus_plus_11,
3365         DW_LANG_C_plus_plus_14 or DW_LANG_C11.
3366         (output_compilation_unit_header): Output at most a DWARFv4 header.
3367         (output_skeleton_debug_sections): Likewise.
3368         (output_line_info): Likewise.
3369         (output_aranges): Document header version number.
3370
3371 2014-11-26  Richard Biener  <rguenther@suse.de>
3372
3373         * gimple-fold.c (get_symbol_constant_value): Allow all
3374         GIMPLE register type zero-constants.
3375
3376 2014-11-26  Mark Wielaard  <mjw@redhat.com>
3377
3378         * dwarf2out.c (gen_subprogram_die): Add DW_AT_noreturn when the
3379         function decl has TREE_THIS_VOLATILE.
3380
3381 2014-11-26  Richard Biener  <rguenther@suse.de>
3382
3383         PR tree-optimization/62238
3384         * tree-predcom.c (ref_at_iteration): Unshare the expression
3385         before gimplifying it.
3386         (prepare_initializers_chain): Discard unused seq.
3387
3388 2014-11-26  Prachi Godbole  <prachi.godbole@imgtec.com>
3389
3390         * config/mips/mips.c (mips_rtx_cost_data): Fix memory_latency cost
3391         for p5600.
3392
3393 2014-11-25  Vladimir Makarov  <vmakarov@redhat.com>
3394
3395         * ira-lives.c (process_bb_node_lives): Make code with conditional
3396         REAL_PIC_OFFSET_TABLE_REGNUM.
3397
3398 2014-11-25  Vladimir Makarov  <vmakarov@redhat.com>
3399
3400         PR target/63527
3401         * ira-lives.c (process_bb_node_lives): Check and remove conflict
3402         of pic pseudo with pic hard reg.
3403
3404 2014-11-25  Rohit  <rohitarulraj@freescale.com>
3405
3406         PR bootstrap/63703
3407         * config/rs6000/darwin.h (REGISTER_NAMES): Update based on 32 newly
3408         added GCC hard register numbers for SPE high registers.
3409
3410 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
3411
3412         * bt-load.c (migrate_btr_defs): Get the key of a heap entry
3413         before removing it, not after.
3414
3415 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
3416
3417         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Remove
3418         PATTERN call.
3419
3420 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
3421
3422         * config/rs6000/sysv4.h (ASM_OUTPUT_REG_POP): Use addi instead
3423         of addic.
3424
3425 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
3426
3427         * config/rs6000/rs6000.md (iorxor, IORXOR): Delete code_attrs.
3428         (rest of file): Replace those with code resp. CODE.
3429
3430 2014-11-25  Tom de Vries  <tom@codesourcery.com>
3431
3432         * tree-cfg.c (verify_sese): New function.
3433         (move_sese_region_to_fn): Call verify_sese.
3434         * tree-cfg.h (verify_sese): Declare.
3435
3436 2014-11-25  Richard Biener  <rguenther@suse.de>
3437
3438         PR lto/64065
3439         * lto-streamer-out.c (output_struct_function_base): Stream
3440         last_clique field.
3441         * lto-streamer-in.c (input_struct_function_base): Likewise.
3442
3443 2014-11-25  Martin Liska  <mliska@suse.cz>
3444
3445         PR bootstrap/64050
3446         PR ipa/64060
3447         * sreal.c (sreal::operator+): Addition fixed.
3448         (sreal::signedless_plus): Negative numbers are
3449         handled correctly.
3450         (sreal::operator-): Subtraction is fixed.
3451         (sreal::signedless_minus): Negative numbers are
3452         handled correctly.
3453         * sreal.h (sreal::operator<): Equal negative numbers
3454         are compared correctly.
3455         (sreal::shift): New checking asserts are introduced.
3456         Operation is fixed.
3457
3458 2014-11-25  Richard Biener  <rguenther@suse.de>
3459
3460         PR tree-optimization/61927
3461         * tree-vect-loop.c (vect_analyze_loop_2): Revert ordering
3462         of group and pattern analysis to the one in GCC 4.8.
3463
3464 2014-11-25  Ilya Tocar  <ilya.tocar@intel.com>
3465             Jakub Jelinek  <jakub@redhat.com>
3466
3467         * gcc.c (handle_foffload_option): Remove unnecessary calls to strchr,
3468         strlen, strncpy.
3469         * lto-wrapper.c (append_offload_options): Likewise.
3470
3471 2014-11-25  Eric Botcazou  <ebotcazou@adacore.com>
3472
3473         * config/rs6000/rs6000.c (rs6000_call_aix): For the AIX ABI, do not
3474         load the static chain if the call was originally direct.
3475
3476 2014-11-25  Jan Hubicka  <hubicka@ucw.cz>
3477
3478         PR ipa/64059
3479         * ipa-prop.c (ipa_analyze_call_uses): Don't call get_dynamic_type when
3480         devirtualization is disabled.
3481
3482 2014-11-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3483
3484         PR target/63965
3485         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
3486         Altivec & -16 mask if the type is not valid for Altivec registers.
3487         (rs6000_secondary_reload_memory): Add support for ((reg + const) +
3488         reg) that occurs during push_reload processing.
3489
3490         * config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
3491         alternative for moving constant vectors which are easy altivec
3492         constants to GPRs.  Set the length attribute each of the
3493         alternatives.
3494
3495         * config/rs6000/rs6000-cpus.def: Undo November 21st changes, a
3496         work in progress patch was committed instead of the fixes for
3497         63965.
3498         * config/rs6000/rs6000.c: Likewise.
3499
3500 2014-11-22  Jan Hubicka  <hubicka@ucw.cz>
3501
3502         PR ipa/63671
3503         * ipa-inline-transform.c (can_remove_node_now_p_1): Handle alises
3504         and -fno-devirtualize more carefully.
3505         (can_remove_node_now_p): Update.
3506
3507 2014-11-24  Andrew Pinski  <apinski@cavium.com>
3508
3509         PR rtl-opt/63972
3510         * shrink-wrap.c (move_insn_for_shrink_wrap): Allow LO_SUM also.
3511
3512 2014-11-24  Alan Lawrence  <alan.lawrence@arm.com>
3513
3514         * config/aarch64/aarch64-simd.md (vec_shr<mode>): New.
3515
3516 2014-11-24  Alan Lawrence  <alan.lawrence@arm.com>
3517
3518         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
3519         Refactor by combining switch statements and make arrays into scalars.
3520
3521 2014-11-24  David Edelsohn  <dje.gcc@gmail.com>
3522
3523         PR c++/58561
3524         * dbxout.c: Include stringpool.h
3525         (dbxout_type) [default]: Ignore auto type.
3526
3527 2014-11-24  Richard Biener  <rguenther@suse.de>
3528
3529         PR tree-optimization/63679
3530         * tree-ssa-sccvn.c: Include ipa-ref.h, plugin-api.h and cgraph.h.
3531         (copy_reference_ops_from_ref): Fix non-constant ADDR_EXPR case
3532         to properly leave off at -1.
3533         (fully_constant_vn_reference_p): Generalize folding from
3534         constant initializers.
3535         (vn_reference_lookup_3): When looking through aggregate copies
3536         handle offsetted reads and try simplifying the result to
3537         a constant.
3538         * gimple-fold.h (fold_ctor_reference): Export.
3539         * gimple-fold.c (fold_ctor_reference): Likewise.
3540
3541 2014-11-24  Petr Murzin  <petr.murzin@intel.com>
3542
3543         * simplify-rtx.c (simplify_ternary_operation): Simplify
3544         vec_merge (vec_duplicate (vec_select)).
3545
3546 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3547
3548         * config/aarch64/aarch64.c (AARCH64_FUSE_ADRP_LDR): Define.
3549         (cortexa53_tunings): Specify AARCH64_FUSE_ADRP_LDR in fuseable_ops.
3550         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_LDR.
3551
3552 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3553
3554         * config/aarch64/aarch64.c (AARCH64_FUSE_MOVK_MOVK): Define.
3555         (cortexa53_tunings): Specify AARCH64_FUSE_MOVK_MOVK in fuseable_ops.
3556         (cortexa57_tunings): Likewise.
3557         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_MOVK_MOVK.
3558
3559 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3560
3561         * sched-deps.c (sched_macro_fuse_insns): Do not check modified_in_p
3562         in the not conditional jump case.
3563         * doc/tm.texi (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
3564         * target.def (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
3565
3566 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3567
3568         * config/aarch64/aarch64.c: Include tm-constrs.h
3569         (AARCH64_FUSE_ADRP_ADD): Define.
3570         (cortexa57_tunings): Add AARCH64_FUSE_ADRP_ADD to fuseable_ops.
3571         (cortexa53_tunings): Likewise.
3572         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_ADD.
3573
3574 2014-11-24  Martin Liska  <mliska@suse.cz>
3575
3576         * ipa-inline.c (edge_badness): long is replaced by sreal
3577         as fibonacci_heap template type.
3578         (update_edge_key): Likewise.
3579         (inline_small_functions): Likewise.
3580
3581 2014-11-24  Martin Liska  <mliska@suse.cz>
3582
3583         * predict.c (propagate_freq): More elegant sreal API is used.
3584         (estimate_bb_frequencies): Precomputed constants replaced by integer
3585         constants.
3586         * sreal.c (sreal::normalize): New function.
3587         (sreal::to_int): Likewise.
3588         (sreal::operator+): Likewise.
3589         (sreal::operator-): Likewise.
3590         (sreal::signedless_plus): Likewise.
3591         (sreal::signedless_minus): Likewise.
3592         (sreal::operator/): Negative number support is added.
3593         * sreal.h: Definition of new functions added.
3594         (inline sreal operator<<): New function.
3595         (inline sreal operator>>): Likewise.
3596
3597 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3598
3599         * config/aarch64/aarch64-protos.h (struct tune_params): Add
3600         fuseable_ops field.
3601         * config/aarch64/aarch64.c (generic_tunings): Specify fuseable_ops.
3602         (cortexa53_tunings): Likewise.