]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
Part 2 of the collect-utils library, now also used for collect2.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
eb9ccb01 12014-06-26 Bernd Schmidt <bernds@codesourcery.com>
2
39ef03bb 3 * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
4 (LTO_WRAPPER_OBJS): New variable.
5 (lto-wrapper$(exeext)): Use it.
6 * collect2.c: Include "collect-utils.h".
7 (verbose, debug): Remove variables.
8 (at_file_supplied): No longer static.
9 (tool_name): New variable.
10 (do_wait, fork_execute, maybe_unlink): Don't declare.
11 (tool_cleanup): No longer static.
12 (notice): Remove function.
13 (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
14 fork_execute calls.
15 (collect_wait, do_wait, collect_execute): Remove functions.
16 (maybe_unlink): No longer static.
17 * collect2.h (verbose, debug): Don't declare.
18 (at_file_supplied): Declare.
19 * collect-utils.c (utils_cleanup): New arg from_signal. All callers
20 changed.
21 (collect_execute): Replace with implementation from collect2, plus a
22 new arg use_atfile. All callers changed.
23 (collect_wait): Replace with implementation from collect2.
24 (maybe_unlink_file): Remove function.
25 (fork_execute): Replace with implementation from collect2, plus a
26 new arg use_atfile. All callers changed.
27 (do_wait): Add call to utils_cleanup to the error path.
28 * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
29 (tool_cleanup): Adjust declarations.
30 * lto-wrapper.c (tool_cleanup): Add unused bool argument.
31 * tlink.c: Include "collect-utils.h".
32 (tlink_execute): New arg use_atfile. All callers changed.
33 (tlink_init, tlink_execute): Remove declarations.
34
572cae00 35 * collect-utils.c (save_temps): New variable.
36 (do_wait): Use it instead of debug. Use fatal_error.
37 * collect-utils.h (save_temps): Declare.
38 * collect2.c (verbose): Rename from vflag. All uses changed.
39 (tool_cleanup): New function, copied from collect_atexit.
40 (collect_atexit, handler): Just call it.
41 * collect2.h (verbose): Declaration renamed from vflag.
42 * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
43 debug.
44
eb9ccb01 45 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
46 (lto-wrapper$(exeext)): Link with collect-utils.o.
47 * collect-utils.c: New file.
48 * collect-utils.h: New file.
49 * lto-wrapper.c: Include "collect-utils.h".
50 (args_name): Delete variable.
51 (tool_name): New variable.
52 (tool_cleanup): New function.
53 (maybe_unlink): Renamed from maybe_unlink_file. All callers changed.
54 (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait,
55 fork_execute): Remove functions.
56
f9da215d 572014-06-26 Nick Clifton <nickc@redhat.com>
58
334e3c3a 59 * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
60
f9da215d 61 * doc/extend.texi (Function Attributes): Fix typo in description
62 of RX vector attribute.
63
86aa4b48 642014-06-26 James Greenhalgh <james.greenhalgh@arm.com>
65
66 * config.gcc (supported_defaults): Error when passing either
67 --with-tune or --with-arch in conjunction with --with-cpu for ARM.
68
cd78733e 692014-06-26 Richard Biener <rguenther@suse.de>
70
71 * tree-ssa-dom.c (cprop_operand): Remove restriction on
72 propagating volatile pointers.
73
c08f3525 742014-06-26 Richard Biener <rguenther@suse.de>
75
76 PR tree-optimization/61607
77 * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
78 loop if we redirected its latch edge.
79 (thread_block_1): Do not cancel loops prematurely.
80
e0ff5636 812014-06-25 Jan Hubicka <hubicka@ucw.cz>
82
83 * toplev.c (backend_init_target): Move init_emit_regs and init_regs to...
84 (backend_init) ... here; skip ira_init_once and backend_init_target.
85 (target_reinit) ... and here; clear this_target_rtl->lang_dependent_initialized.
86 (lang_dependent_init_target): Clear this_target_rtl->lang_dependent_initialized;
87 break out rtl initialization to ...
88 (initialize_rtl): ... here; call also backend_init_target and ira_init_once.
89 * toplev.h (initialize_rtl): New function.
90 * function.c: Include toplev.h
91 (init_function_start): Call initialize_rtl.
92 * rtl.h (target_rtl): Add target_specific_initialized,
93 lang_dependent_initialized.
94
5f243933 952014-06-25 Paul Gortmaker <paul.gortmaker@windriver.com>
96 Jakub Jelinek <jakub@redhat.com>
97
98 * gcc.c (set_multilib_dir): Malloc "." pointer as well.
99
84d6e2ab 1002014-06-25 Tom de Vries <tom@codesourcery.com>
101
102 * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
103
8f79c655 1042014-06-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
105
106 * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
107 check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
108 Issue a strict overflow warning if appropriate.
109
51ce5652 1102014-06-25 Martin Liska <mliska@suse.cz>
111
112 IPA REF refactoring
113 * Makefile.in: Removed header file (ipa-ref-inline.h).
114 * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
115 called.
116 (cgraph_speculative_call_info): Likewise.
117 (cgraph_for_node_thunks_and_aliases): Likewise.
118 (cgraph_for_node_and_aliases): Likewise.
119 (verify_cgraph_node): Likewise.
120 * cgraph.h: Batch of IPA REF functions become member functions of
121 symtab_node: add_reference, maybe_add_reference, clone_references,
122 clone_referring, clone_reference, find_reference,
123 remove_stmt_references, remove_all_references,
124 remove_all_referring, dump_references, dump_referring,
125 has_alias_p, iterate_reference, iterate_referring.
126 * cgraphbuild.c (record_reference): New IPA REF function used.
127 (record_type_list): Likewise.
128 (record_eh_tables): Likewise.
129 (mark_address): Likewise.
130 (mark_load): Likewise.
131 (mark_store): Likewise.
132 (pass_build_cgraph_edges): Likewise.
133 (rebuild_cgraph_edge): Likewise.
134 (cgraph_rebuild_references): Likewise.
135 (pass_remove_cgraph_callee_edges): Likewise.
136 * cgraphclones.c (cgraph_clone_node): Likewise.
137 (cgraph_create_virtual_clone): Likewise.
138 (cgraph_materialize_clone): Likewise.
139 (cgraph_materialize_all_clones): Likewise.
140 * cgraphunit.c (cgraph_reset_node): Likewise.
141 (cgraph_reset_node): Likewise.
142 (analyze_function): Likewise.
143 (assemble_thunks_and_aliases): Likewise.
144 (expand_function): Likewise.
145 * ipa-comdats.c (propagate_comdat_group): Likewise.
146 (enqueue_references): Likewise.
147 * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
148 (create_specialized_node): Likewise.
149 * ipa-devirt.c (referenced_from_vtable_p): Likewise.
150 * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
151 * ipa-inline.c (reset_edge_caches): Likewise.
152 (update_caller_keys): Likewise.
153 (execute): Likewise.
154 * ipa-prop.c (remove_described_reference): Likewise.
155 (propagate_controlled_uses): Likewise.
156 (ipa_edge_duplication_hook): Likewise.
157 (ipa_modify_call_arguments): Likewise.
158 * ipa-pure-const.c (propagate_pure_const): Likewise.
159 * ipa-ref-inline.h: Header file removed, functions moved
160 to symtab_node class.
161 * ipa-ref.c (remove_reference): New class member function.
162 (cannot_lead_to_return): New class member function.
163 (referring_ref_list): Likewise.
164 (referred_ref_list): Likewise.
165 Rest of functions moved to symtab_node class.
166 * ipa-ref.h: New member functions remove_reference,
167 cannot_lead_to_return, referring_ref_list, referred_ref_list added
168 to ipa_ref class.
169 ipa_ref_list class has new member functions: first_reference,
170 first_referring, clear, nreferences.
171 * ipa-reference.c (analyze_function): New IPA REF function used.
172 (write_node_summary_p): Likewise.
173 (ipa_reference_write_optimization_summary): Likewise.
174 * ipa-split.c (split_function): Likewise.
175 * ipa-utils.c (ipa_reverse_postorder): Likewise.
176 * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
177 (function_and_variable_visibility): Likewise.
178 * ipa.c (has_addr_references_p): Likewise.
179 (process_references): Argument type changed.
180 (symtab_remove_unreachable_nodes): New IPA REF function used.
181 (process_references): Likewise.
182 (set_writeonly_bit): Likewise.
183 * lto-cgraph.c: Implementation of new symtab_node member functions
184 that uses new IPA REF functions.
185 * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF function used.
186 * lto-streamer-out.c (output_symbol_p): Likewise.
187 * lto-streamer.h (referenced_from_this_partition_p): Argument type
188 changed.
189 * lto/lto-partition.c (add_references_to_partition): New IPA REF function
190 used.
191 (add_symbol_to_partition_1): Likewise.
192 (lto_balanced_map): Likewise.
193 * lto/lto-symtab.c (lto_cgraph_replace_node): Likewise.
194 * symtab.c: Implementation of new IPA REF API.
195 * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
196 (ipa_tm_create_version): Likewise.
197 (ipa_tm_execute): Likewise.
198 * tree-emutls.c (gen_emutls_addr): Likewise.
199 * tree-inline.c (copy_bb): Likewise.
200 (delete_unreachable_blocks_update_callgraph): Likewise.
201 * varpool.c (varpool_remove_unreferenced_decls): Likewise.
202 (varpool_for_node_and_aliases): Likewise.
203
83751f2c 2042014-06-25 Trevor Saunders <tsaunders@mozilla.com>
205
206 * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
207
eeeaa773 2082014-06-25 Trevor Saunders <tsaunders@mozilla.com>
209
210 PR bootstrap/61598
211 * fold-const.c (fold_checksum_tree): Use a hash_table of const
212 tree_node * instead of tree_node *.
213 (fold): Adjust.
214 (print_fold_checksum): Likewise.
215 (fold_check_failed): Likewise.
216 (debug_fold_checksum): Likewise.
217 (fold_build1_stat_loc): Likewise.
218 (fold_build2_stat_loc): Likewise.
219 (fold_build3_stat_loc): Likewise.
220 (fold_build_call_array_loc): Likewise.
221
49ebf9ae 2222014-06-25 David Edelsohn <dje.gcc@gmail.com>
223
224 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
225 implementation with call to...
226 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
227 function.
228 * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
229 Declare.
230
9e2c064e 2312014-06-25 Marc Glisse <marc.glisse@inria.fr>
232
233 PR tree-optimization/57742
234 * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
235 after replacing the statement.
236
d88fa80d 2372014-06-25 Nick Clifton <nickc@redhat.com>
238
239 * config/v850/v850.c (GHS_default_section_names): Change to const
240 char * type.
241 (GHS_current_section_names): Likewise.
242 (v850_insert_attributes): Do not build strings, just assign the
243 names directly. Change the type of 'chosen_section' to const
244 char*.
245 * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
246 directly to the array entry.
247 * config/v850/v850.h (GHS_default_section_names): Change to const
248 char * type.
249 (GHS_current_section_names): Likewise.
250
9580cb79 2512014-06-25 Jakub Jelinek <jakub@redhat.com>
252
253 * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
254 (LANG_HOOKS_DECLS): Add it.
255 * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
256 has correct type.
257 * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
258 * langhooks.h (struct lang_hooks_for_decls): Add
259 omp_clause_linear_ctor hook.
260 * omp-low.c (lower_rec_input_clauses): Set max_vf even if
261 OMP_CLAUSE_LINEAR_ARRAY is set. Don't fold_convert
262 OMP_CLAUSE_LINEAR_STEP. For OMP_CLAUSE_LINEAR_ARRAY in
263 combined simd loop use omp_clause_linear_ctor hook.
264
a2287001 2652014-06-24 Cong Hou <congh@google.com>
266
267 * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
268 pattern recognition.
269 (type_conversion_p): PROMOTION is true if it's a type promotion
270 conversion, and false otherwise. Return true if the given expression
271 is a type conversion one.
272 * tree-vectorizer.h: Adjust the number of patterns.
273 * tree.def: Add SAD_EXPR.
274 * optabs.def: Add sad_optab.
275 * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
276 * expr.c (expand_expr_real_2): Likewise.
277 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
278 * gimple.c (get_gimple_rhs_num_ops): Likewise.
279 * optabs.c (optab_for_tree_code): Likewise.
280 * tree-cfg.c (estimate_operator_cost): Likewise.
281 * tree-ssa-operands.c (get_expr_operands): Likewise.
282 * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
283 * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
284 * doc/generic.texi: Add document for SAD_EXPR.
285 * doc/md.texi: Add document for ssad and usad.
286
fe19425a 2872014-06-24 Trevor Saunders <tsaunders@mozilla.com>
288
289 * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
290 qualification in cast.
291
9c2e58d0 2922014-06-24 Jan Hubicka <hubicka@ucw.cz>
293
294 * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
295 * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
296 * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
297 (tree_function_decl): ... here.
298 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
299 streaming of vindex to ...
300 (write_ts_function_decl_tree_pointers): ... here.
301 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
302 Do not stream DECL_VINDEX.
303 (lto_input_ts_function_decl_tree_pointers): Stream it here.
304
0e6eb9e2 3052014-06-24 Catherine Moore <clm@codesourcery.com>
306 Sandra Loosemore <sandra@codesourcery.com>
307
308 * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
309 * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
310 * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
311
cc67b6b7 3122014-06-24 Marc Glisse <marc.glisse@inria.fr>
313
314 * doc/invoke.texi (Warning Options): Remove duplicated
315 -Wmaybe-uninitialized.
316
9f15ed6e 3172014-06-24 Marc Glisse <marc.glisse@inria.fr>
318
319 PR tree-optimization/57742
320 * tree-ssa-strlen.c (get_string_length): Ignore malloc.
321 (handle_builtin_malloc, handle_builtin_memset): New functions.
322 (strlen_optimize_stmt): Call them.
323 * passes.def: Move strlen after loop+dom but before vrp.
324
10b9f8d4 3252014-06-24 Jakub Jelinek <jakub@redhat.com>
326
327 PR target/61570
328 * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
329 model family 6 CPU with has_longmode never use a CPU without
330 64-bit support.
331
f83a3614 3322014-06-24 H.J. Lu <hongjiu.lu@intel.com>
333
334 PR target/61570
335 * config/i386/driver-i386.c (host_detect_local_cpu): Revert
336 the last change.
337
d62dd039 3382014-06-24 Trevor Saunders <tsaunders@mozilla.com>
339
340 * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
341 * dominance.c (iterate_fix_dominators): Use hash_map instead of
342 pointer_map.
343 * hash-map.h: New file.
344 * ipa-comdats.c: Use hash_map instead of pointer_map.
345 * ipa.c: Likewise.
346 * lto-section-out.c: Adjust.
347 * lto-streamer.h: Replace pointer_map with hash_map.
348 * symtab.c (verify_symtab): Likewise.
349 * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
350 * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
351 * tree-streamer.h: Likewise.
352 * tree-streamer.c: Adjust.
353 * pointer-set.h: Remove pointer_map.
354
2933f7af 3552014-06-24 Trevor Saunders <tsaunders@mozilla.com>
356
357 * hash-table.h: Add a template arg to choose between storing values
358 and storing pointers to values, and then provide partial
359 specializations for both.
360 * tree-browser.c (tree_upper_hasher): Provide the type the hash table
361 should store, not the type values should point to.
362 * tree-into-ssa.c (var_info_hasher): Likewise.
363 * tree-ssa-dom.c (expr_elt_hasher): Likewise.
364 * tree-complex.c: Adjust.
365 * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
366 table instead of int_tree_map *.
367 * tree-parloops.c: Adjust.
368 * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
369 type is being stored.
370 * tree-vectorizer.c: Adjust.
371
c1f445d2 3722014-06-24 Trevor Saunders <tsaunders@mozilla.com>
373
374 * hash-table.h: Remove a layer of indirection from hash_table so that
375 it contains the hash table's data instead of a pointer to the data.
376 * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
377 config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
378 config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
379 data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
380 fold-const.c, gcse.c, ggc-common.c,
381 gimple-ssa-strength-reduction.c, gimplify.c,
382 graphite-clast-to-gimple.c, graphite-dependences.c,
383 graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
384 ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
385 loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
386 lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
387 postreload-gcse.c, sese.c, statistics.c, store-motion.c,
388 trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
389 tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
390 tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
391 tree-ssa-live.c, tree-ssa-loop-im.c,
392 tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
393 tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
394 tree-ssa-structalias.c, tree-ssa-tail-merge.c,
395 tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
396tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
397tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
398vtable-verify.c, vtable-verify.h: Adjust.
399
7ec37726 4002014-06-24 Richard Biener <rguenther@suse.de>
401
402 PR tree-optimization/61572
403 * tree-ssa-sink.c (statement_sink_location): Do not sink
404 loads from hard registers.
405
c3f3b68d 4062014-06-24 Jakub Jelinek <jakub@redhat.com>
407
e471cc6f 408 * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
409 not mentioned in clauses use private clause if the iterator is
410 declared in #pragma omp for simd, and when adding lastprivate
411 instead, add it to the outer #pragma omp for too. Diagnose
412 if the variable is private in outer context. For simd collapse > 1
413 loops, replace all iterators with temporaries.
414 * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
415 same even in collapse > 1 loops.
416
c3f3b68d 417 * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
418 OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
419 non-NULL.
420 <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
421 (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
422 non-NULL.
423 (gimplify_adjust_omp_clauses): Likewise.
424 * omp-low.c (lower_rec_simd_input_clauses,
425 lower_rec_input_clauses, expand_omp_simd): Handle non-constant
426 safelen the same as safelen(1).
427 * tree-nested.c (convert_nonlocal_omp_clauses,
428 convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED. For
429 OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
430 (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
431 Fixup handling of GIMPLE_OMP_TARGET.
432 (convert_tramp_reference_stmt, convert_gimple_call): Handle
433 GIMPLE_OMP_TARGET.
434
42691e36 4352014-06-24 Chung-Lin Tang <cltang@codesourcery.com>
436
437 PR tree-optimization/61554
438 * tree-ssa-propagate.c: Include "bitmap.h".
439 (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
440 properly update constructor/destructor.
441 (substitute_and_fold_dom_walker::before_dom_children):
442 Remove call to gimple_purge_dead_eh_edges, add bb->index to
443 need_eh_cleaup instead.
444 (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
445 need_eh_cleanup.
446
3f1f2be0 4472014-06-23 Jan Hubicka <hubicka@ucw.cz>
448
449 * varpool.c (dump_varpool_node): Dump used_by_single_function.
450 * tree-pass.h (make_pass_ipa_single_use): New pass.
451 * cgraph.h (used_by_single_function): New flag.
452 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
453 it.
454 * passes.def (pass_ipa_single_use): Scedule.
455 * ipa.c (BOTTOM): New macro.
456 (meet): New function
457 (propagate_single_user): New function.
458 (ipa_single_use): New function.
459 (pass_data_ipa_single_use): New pass.
460 (pass_ipa_single_use): New pass.
461 (pass_ipa_single_use::gate): New gate.
462 (make_pass_ipa_single_use): New function.
463
5a72e1db 4642014-06-23 Kai Tietz <ktietz@redhat.com>
465
466 PR target/39284
467 * passes.def (peephole2): Move peephole2 pass before
468 before sched2 pass.
469 * config/i386/i386.md (peehole2): Combine memories
470 and indirect jumps.
471
ef3f2b6f 4722014-06-23 Richard Biener <rguenther@suse.de>
473
474 * tree-ssa-loop.c (gate_loop): New function.
475 (pass_tree_loop::gate): Call it.
476 (pass_data_tree_no_loop, pass_tree_no_loop,
477 make_pass_tree_no_loop): New.
478 * tree-vectorizer.c: Include tree-scalar-evolution.c
479 (pass_slp_vectorize::execute): Initialize loops and SCEV if
480 required.
481 (pass_slp_vectorize::clone): New method.
482 * timevar.def (TV_TREE_NOLOOP): New.
483 * tree-pass.h (make_pass_tree_no_loop): Declare.
484 * passes.def (pass_tree_no_loop): New pass group with
485 SLP vectorizer.
486
79cf3b31 4872014-06-23 H.J. Lu <hongjiu.lu@intel.com>
488
489 PR target/61570
490 * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
491 to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
492
eb8fdbe9 4932014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
494
495 * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
496 "yes" where needed.
497
519aed8f 4982014-06-23 Alan Modra <amodra@gmail.com>
499
500 PR bootstrap/61583
501 * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
502 to zero on debug statements.
503
12fc7207 5042014-06-19 Alan Lawrence <alan.lawrence@arm.com>
505
506 PR target/60825
507 * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
508 Ignore third operand if present by marking qualifier_internal.
509
510 * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
511
512 * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
513 vector extension.
514 (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
515 arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
516 (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
517 vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
518 vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
519 vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
520 vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
521 vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
522 vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
523 vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
524 vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
525 vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
526 vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
527 vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
528 vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
529 vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
530 logic in GCC vector extensions
519aed8f 531
12fc7207 532 (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
533 vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
534 vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
535 vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
536 vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
537 vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
538 vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
539 vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
540 vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
541 vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
542
543 (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
544
545 (vget_high_s64, vget_high_u64): Reimplement with GCC vector
546 extensions.
547
548 (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
549 (vget_low_s64): Use __GET_LOW macro.
550 (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
551 gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
552 (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
553 (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
554 __builtin_aarch64_lane_boundsi, use GCC vector extensions.
555
556 (vcombine_s64): Use GCC vector extensions; remove cast.
557 (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
558 vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
559 vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
560 Fix type signature; remove cast.
561
ac292ff5 5622014-06-19 Alan Lawrence <alan.lawrence@arm.com>
563
564 PR target/60825
565 * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
566 V1DFmode.
567 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
568 add V1DFmode
569 (BUILTIN_VD1): New.
570 (BUILTIN_VD_RE): Remove.
571 (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
572 (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
573 * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
574 variant but not df.
575 (vreinterpretv1df*, vreinterpret*v1df): New.
576 (vreinterpretdf*, vreinterpret*df): Remove.
577 * config/aarch64/aarch64-simd.md (aarch64_create, aarch64_reinterpret*):
578 Generate V1DFmode pattern not DFmode.
579 * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
580 (VD1): New.
581 * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
582 (vcreate_f64): Remove cast, use v1df builtin.
583 (vcombine_f64): Remove cast, get elements with gcc vector extensions.
584 (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
585 vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
586 vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
587 vmov_n_f64, vst1_f64): Use gcc vector extensions.
588 (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
589 add range check using __builtin_aarch64_im_lane_boundsi.
590 (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
591 vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
592 type signature, use gcc vector extensions.
593 (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
594 vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
595 vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
596 vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
597 vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
598 vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
599 vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
600 vreinterpret_u64_f64): Use v1df builtin not df.
601
8412c05c 6022014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
603
604 * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
605 vector registers.
606
68ce6e1a 6072014-06-23 Jan Hubicka <hubicka@ucw.cz>
608
609 * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini priority
610 directly.
611
9b59e217 6122014-06-23 Zhenqiang Chen <zhenqiang.chen@linaro.org>
613
614 * loop-invariant.c (pre_check_invariant_p): New function.
615 (find_invariant_insn): Call pre_check_invariant_p.
616
55ed9dcf 6172014-06-22 Richard Henderson <rth@redhat.com>
618
619 PR target/61565
620 * compare-elim.c (struct comparison): Add eh_note.
621 (find_comparison_dom_walker::before_dom_children): Don't eliminate
622 a redundant comparison in a different EH region. Purge EH edges if
623 necessary.
624
4e1baabd 6252014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
626
627 * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
628 (var_shift): Use it.
629 (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
630 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
631 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
632 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
633 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
634 *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
635 *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
636 *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
637 *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
638 *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
639 *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
640 *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
641 *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
642 *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
643 *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
644 *rotldi3_internal15be): Use the new attribute. Merge register and
645 integer alternatives.
646
0d1b962c 6472014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
648
649 * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
650 define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
651 split, *ashrdi3_internal3 and split): Delete, merge into...
652 (ashr<mode>3): New expander.
653 (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
654 (*ashrsi3_64): Fix formatting. Replace "i" by "n".
655
e3d83c3b 6562014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
657
658 * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
659 *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
660 *rotldi3_internal3 and split): Delete, merge into...
661 (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
662 (*rotlsi3_64): Fix formatting. Fix condition. Replace "i" by "n".
663 Use "rotlw" extended mnemonic.
664
1ac001ec 6652014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
666
667 * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
668 and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
669 and split, *ashldi3_internal3 and split): Delete, merge into...
670 (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
671 (*ashlsi3_64): Fix formatting. Replace "i" by "n".
672
75a1f705 6732014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
674
675 * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
676 (lshrsi3, two anonymous define_insns and define_splits,
677 lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
678 *lshrdi3_internal3 and split): Delete, merge into...
679 (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
680 (*lshrsi3_64): Fix formatting. Replace "i" by "n".
681
7999898f 6822014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
683
684 * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
685 Remove "O" alternative.
686
d8686b0a 6872014-06-22 Richard Sandiford <rdsandiford@googlemail.com>
688
689 * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
690 (mips_move_from_gpr_cost): Likewise.
691 (mips_register_move_cost): Update accordingly.
692 (mips_secondary_reload_class): Remove name of in_p.
693
b5453d1e 6942014-06-22 Marc Glisse <marc.glisse@inria.fr>
695
696 PR target/61503
697 * config/i386/i386.md (x86_64_shrd, x86_shrd,
698 ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
699
5e393679 7002014-06-21 Jan-Benedict Glaw <jbglaw@lug-owl.de>
701
702 * config/nios2/nios2.c: Include "builtins.h".
703
b7393cee 7042014-06-20 Jan Hubicka <hubicka@ucw.cz>
705
706 * cgraph.h (tls_model_names): New variable.
707 * print-tree.c (print_node): Simplify.
708 * varpool.c (tls_model_names): New variable.
709 (dump_varpool_node): Output tls model.
710
4696e459 7112014-06-20 Jan Hubicka <hubicka@ucw.cz>
712
713 * ipa-visibility.c (function_and_variable_visibility): Disable
714 temporarily local aliases for some targets.
715
5ef6b660 7162014-06-20 Marek Polacek <polacek@redhat.com>
717
718 * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
719 * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
720 into SANITIZE_UNDEFINED.
721 * doc/invoke.texi: Describe -fsanitize=bounds.
722 * gimplify.c (gimplify_call_expr): Add gimplification of internal
723 functions created in the FEs.
724 * internal-fn.c: Move "internal-fn.h" after "tree.h".
725 (expand_UBSAN_BOUNDS): New function.
726 * internal-fn.def (UBSAN_BOUNDS): New internal function.
727 * internal-fn.h: Don't define internal functions here.
728 * opts.c (common_handle_option): Add -fsanitize=bounds.
729 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
730 BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
731 * tree-core.h: Define internal functions here.
732 (struct tree_base): Add ifn field.
733 * tree-pretty-print.c: Include "internal-fn.h".
734 (dump_generic_node): Handle functions without CALL_EXPR_FN.
735 * tree.c (get_callee_fndecl): Likewise.
736 (build_call_expr_internal_loc): New function.
737 * tree.def (CALL_EXPR): Update description.
738 * tree.h (CALL_EXPR_IFN): Define.
739 (build_call_expr_internal_loc): Declare.
740 * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
741 types.
742 (ubsan_type_descriptor): Change bool parameter to enum
743 ubsan_print_style. Adjust the code. Add handling of
744 UBSAN_PRINT_ARRAY.
745 (ubsan_expand_bounds_ifn): New function.
746 (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
747 (ubsan_build_overflow_builtin): Likewise.
748 (instrument_bool_enum_load): Likewise.
749 (ubsan_instrument_float_cast): Likewise.
750 * ubsan.h (enum ubsan_print_style): New enum.
751 (ubsan_expand_bounds_ifn): Declare.
752 (ubsan_type_descriptor): Adjust declaration. Use a default parameter.
753
b4f626d7 7542014-06-20 Maciej W. Rozycki <macro@codesourcery.com>
755
756 * config/rs6000/rs6000.md: Append `DONE' to preparation
757 statements of `bswap' pattern splitters.
758
9e203f5c 7592014-06-20 Tom de Vries <tom@codesourcery.com>
760
761 * target.def (call_fusage_contains_non_callee_clobbers): Update
762 definition.
763 * doc/tm.texi: Regenerate.
764
fea7cc1e 7652014-06-20 Yury Gribov <y.gribov@samsung.com>
766 Max Ostapenko <m.ostapenko@partner.samsung.com>
767
768 PR sanitizer/61547
769 * asan.c (instrument_strlen_call): Fixed instrumentation of
770 trailing byte.
771
49c3fb73 7722014-06-20 Martin Jambor <mjambor@suse.cz>
773
774 PR ipa/61540
775 * ipa-prop.c (impossible_devirt_target): New function.
776 (try_make_edge_direct_virtual_call): Use it, also instead of
777 asserting.
778
3c2f2de7 7792014-06-20 Yury Gribov <y.gribov@samsung.com>
780 Max Ostapenko <m.ostapenko@partner.samsung.com>
781
782 PR sanitizer/61530
783 * asan.c (build_check_stmt): Add condition.
784
543e8d1d 7852014-06-20 Martin Jambor <mjambor@suse.cz>
786
787 PR ipa/61211
788 * cgraph.c (clone_of_p): Allow skipped_branch to deal with
789 expanded clones.
790
c7a2a326 7912014-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
792
793 * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
794 Update comments.
795 (VCONQ): Make comment more helpful.
796 (VCON): Delete.
797 * config/aarch64/aarch64-simd.md
798 (aarch64_sqdmulh_lane<mode>):
799 Use VCOND for operands 2. Update lane checking and flipping logic.
800 (aarch64_sqrdmulh_lane<mode>): Likewise.
801 (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
802 (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
803 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
804 attribute of operand 3 to VCOND.
805 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
806 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
807 (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
808 (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
809 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
810 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
811 define_insn.
812 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
813 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
814 (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
815 (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
816 (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
817 (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
818 operand to VCOND. Update lane flipping and bounds checking logic.
819 (aarch64_sqdmlal2_lane<mode>): Likewise.
820 (aarch64_sqdmlsl_lane<mode>): Likewise.
821 (aarch64_sqdmull_lane<mode>): Likewise.
822 (aarch64_sqdmull2_lane<mode>): Likewise.
823 (aarch64_sqdmlal_laneq<mode>):
824 Replace VCON usage with VCONQ.
825 Emit aarch64_sqdmlal_laneq<mode>_internal insn.
826 (aarch64_sqdmlal2_laneq<mode>): Emit
827 aarch64_sqdmlal2_laneq<mode>_internal insn.
828 Replace VCON with VCONQ.
829 (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
830 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
831 (aarch64_sqdmull_laneq<mode>): Emit
832 aarch64_sqdmull_laneq<mode>_internal insn.
833 Replace VCON with VCONQ.
834 (aarch64_sqdmull2_laneq<mode>): Emit
835 aarch64_sqdmull2_laneq<mode>_internal insn.
836 (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
837 * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
838 of 3rd argument to int16x4_t.
839 (vqdmlalh_lane_s16): Likewise.
840 (vqdmlslh_lane_s16): Likewise.
841 (vqdmull_high_lane_s16): Likewise.
842 (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
843 (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
844 (vqdmlsl_lane_s16): Likewise.
845 (vqdmull_lane_s16): Don't create temporary int16x8_t value.
846 (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
847 (vqdmlals_lane_s32): Likewise.
848 (vqdmlsls_lane_s32): Likewise.
849 (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
850 (vqdmulls_lane_s32): Likewise.
851 (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
852 (vqdmlsl_lane_s32): Likewise.
853 (vqdmull_lane_s32): Don't create temporary int32x4_t value.
854 (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
855 (vqrdmulhh_lane_s16): Likewise.
856 (vqdmlsl_high_lane_s16): Likewise.
857 (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
858 (vqdmlsl_high_lane_s32): Likewise.
859 (vqrdmulhs_lane_s32): Likewise.
860
df9a2dbd 8612014-06-20 Tom de Vries <tom@codesourcery.com>
862
863 * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
864 get_call_reg_set_usage.
865
cda974e6 8662014-06-20 Tom de Vries <tom@codesourcery.com>
867
868 * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
869 it contains all call_used_regs.
870
a9909cdd 8712014-06-20 Tom de Vries <tom@codesourcery.com>
872
873 * final.c (collect_fn_hard_reg_usage): Add and use variable
874 function_used_regs.
875
9db80d42 8762014-06-20 Jan Hubicka <hubicka@ucw.cz>
877
878 * cgraph.h (struct symtab_node): Add field in_init_priority_hash
879 (set_init_priority, get_init_priority, set_fini_priority,
880 get_fini_priority): New methods.
881 * tree.c (init_priority_for_decl): Remove.
882 (init_ttree): Do not initialize init priority.
883 (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
884 (decl_priority_info): Remove.
885 (decl_init_priority_insert): Rewrite.
886 (decl_fini_priority_insert): Rewrite.
887 * tree.h (tree_priority_map_eq, tree_priority_map_hash,
888 tree_priority_map_marked_p): Remove.
889 * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
890 * lto-streamer-out.c (hash_tree): Do not hash priorities.
891 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
892 not output priorities.
893 (pack_ts_function_decl_value_fields): Likewise.
894 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
895 not input priorities.
896 (unpack_ts_function_decl_value_fields): Likewise.
897 * symtab.c (symbol_priority_map): Declare.
898 (init_priority_hash): Declare.
899 (symtab_unregister_node): Unregister from priority hash, too.
900 (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
901 New methods.
902 (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
903 (symbol_priority_info): New function.
904 (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
905 New methods.
906 * tree-core.h (tree_priority_map): Remove.
907
706fd3a4 9082014-06-20 Jakub Jelinek <jakub@redhat.com>
909
910 * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
911 0xff to uint64_t before shifting it up.
912
ee204f66 9132014-06-20 Julian Brown <julian@codesourcery.com>
914 Chung-Lin Tang <cltang@codesourcery.com>
915
916 * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
917 TARGET_THUMB1_ONLY. Add comments.
918
3bc53c66 9192014-06-19 Tom de Vries <tom@codesourcery.com>
920
921 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
922 return type to void.
923 * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
924
10a11071 9252014-06-19 Zhenqiang Chen <zhenqiang.chen@linaro.org>
926
927 * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
928 as "move", from depends_on.
929
42dc494c 9302014-06-19 Terry Guo <terry.guo@arm.com>
931
932 * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
933 stage.
934
72dc204f 9352014-06-18 Segher Boessenkool <segher@kernel.crashing.org>
936
937 * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
938 Remove cr5.
939 (REG_ALLOC_ORDER): Update comment. Move cr5 earlier.
940
5ad4e904 9412014-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
942
943 PR target/61550
944 * config/sh/sh.c (prepare_move_operands): Don't process TLS
945 addresses here if reload in progress or completed.
946
d03288b6 9472014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
948
3c0e3fb9 949 * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
950 "TARGET_MIPS16 ? M16_REGS : GR_REGS".
951 * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
952 (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
953 (mips_register_priority): New function that implements the target
954 hook TARGET_REGISTER_PRIORITY.
955 (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
956 (mips_lra_p): Likewise for TARGET_LRA_P.
957 (TARGET_REGISTER_PRIORITY): Define macro.
958 (TARGET_SPILL_CLASS): Likewise.
959 (TARGET_LRA_P): Likewise.
960 * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
961 classes.
962 (REG_CLASS_NAMES): Likewise.
963 (REG_CLASS_CONTENTS): Likewise.
964 (BASE_REG_CLASS): Use M16_SP_REGS.
965 * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
966 New set attribute to enable alternatives depending on the register
967 allocator used.
968 (*mul_acc_si_r3900, *mul_sub_si): Likewise.
969 (*lea64): Disable pattern for MIPS16.
970 * config/mips/mips.opt (mlra): New option.
971
9722014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
973
519aed8f 974 * lra-constraints.c (base_to_reg): New function.
975 (process_address): Use new function.
d03288b6 976
ba189be5 9772014-06-18 Tom de Vries <tom@codesourcery.com>
978
979 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
980 * config/aarch64/aarch64.c
981 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
982 (aarch64_emit_call_insn): New function.
983 (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
984 of emit_call_insn.
985 * config/aarch64/aarch64.md (define_expand "call_internal")
986 (define_expand "call_value_internal", define_expand "sibcall_internal")
987 (define_expand "sibcall_value_internal"): New.
988 (define_expand "call", define_expand "call_value")
989 (define_expand "sibcall", define_expand "sibcall_value"): Use internal
990 expand variant and aarch64_emit_call_insn.
991
ca373797 9922014-06-18 Radovan Obradovic <robradovic@mips.com>
993 Tom de Vries <tom@codesourcery.com>
994
995 * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
996 * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
997 Redefine to true.
998 (arm_emit_call_insn): Add and use sibcall parameter. Add IP and CC
999 clobbers to CALL_INSN_FUNCTION_USAGE.
1000 (define_expand "sibcall_internal")
1001 (define_expand "sibcall_value_internal"): New.
1002 (define_expand "call", define_expand "call_value"): Add argument to
1003 arm_emit_call_insn.
1004 (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
1005 (define_expand "sibcall_value"): Use sibcall_value_internal and
1006 arm_emit_call_insn.
1007
0f7d7124 10082014-06-18 Charles Baylis <charles.baylis@linaro.org>
1009
1010 * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
1011
5c025b04 10122014-06-18 Charles Baylis <charles.baylis@linaro.org>
1013
1014 * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
1015 __udivmoddi4.
1016
5d2a30dc 10172014-06-18 Charles Baylis <charles.baylis@linaro.org>
1018
1019 * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
1020 push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
1021 annotations. Fix DWARF information.
1022
64431ec1 10232014-06-18 Charles Baylis <charles.baylis@linaro.org>
1024
1025 * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
1026 __udivmoddi4, and fixups for negative operands.
1027
17ec8cc2 10282014-06-18 Charles Baylis <charles.baylis@linaro.org>
1029
1030 * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
1031
29f3c355 10322014-06-18 Charles Baylis <charles.baylis@linaro.org>
1033
1034 * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
1035 to __udivmoddi4.
1036
6e966685 10372014-06-18 Charles Baylis <charles.baylis@linaro.org>
1038
1039 * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
1040 manipulation.
1041
79ebbd41 10422014-06-18 Charles Baylis <charles.baylis@linaro.org>
1043
1044 * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
1045 describing register usage on function entry and exit.
1046
d64f11b7 10472014-06-18 Charles Baylis <charles.baylis@linaro.org>
1048
1049 * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
1050 (__aeabi_ldivmod): Fix whitespace.
1051
5d1de8b6 10522014-06-18 Andreas Schwab <schwab@suse.de>
1053
1054 * doc/md.texi (Standard Names): Use @itemx for grouped items.
1055 Remove blank line after @item.
1056
af7a3dfd 10572014-06-18 Richard Henderson <rth@redhat.com>
1058
1059 PR target/61545
1060 * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
1061
df8fbfda 10622014-06-18 Charles Baylis <charles.baylis@linaro.org>
1063
1064 * config/arm/arm.c (neon_vector_mem_operand): Allow register
1065 POST_MODIFY for neon loads and stores.
1066 (arm_print_operand): Output post-index register for neon loads and
1067 stores.
1068
ae331343 10692014-06-18 Richard Biener <rguenther@suse.de>
1070
1071 * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
1072
c919e493 10732014-06-18 Richard Biener <rguenther@suse.de>
1074
1075 * tree-pass.h (make_pass_dce_loop): Remove.
1076 * passes.def: Replace pass_dce_loop with pass_dce.
1077 * tree-ssa-dce.c (perform_tree_ssa_dce): If something
1078 changed free niter estimates and reset the scev cache.
1079 (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
1080 make_pass_dce_loop): Remove.
1081 * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
1082 (fini_copy_prop): Return whether something changed. Always
1083 let substitute_and_fold perform DCE and free niter estimates
1084 and reset the scev cache if so.
1085 (execute_copy_prop): If sth changed schedule cleanup-cfg.
1086 (pass_data_copy_prop): Do not unconditionally schedule
1087 cleanup-cfg or update-ssa.
1088
f8212648 10892014-06-18 Yuri Rumyantsev <ysrumyan@gmail.com>
1090
1091 PR tree-optimization/61518
1092 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
1093 reduction var is used in reduction stmt or phi-function only.
1094
ce1f2135 10952014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1096
1097 * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
1098
29314253 10992014-06-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
1100
1101 PR tree-optimization/61517
1102 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
1103 whose rhs's first tree is the source expression instead of the
1104 expression itself.
1105 (find_bswap_or_nop): Likewise.
1106 (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
1107 gimple stmt whose rhs's first tree is the source. In the memory source
1108 case, move the stmt to be replaced close to one of the original load to
1109 avoid the problem of a store between the load and the stmt's original
1110 location.
1111 (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
1112 signature.
1113
d4177981 11142014-06-18 Andreas Schwab <schwab@suse.de>
1115
1116 PR rtl-optimization/54555
1117 * postreload.c (move2add_use_add2_insn): Substitute
1118 STRICT_LOW_PART only if it is cheaper.
1119
e51f8b8f 11202014-06-18 Uros Bizjak <ubizjak@gmail.com>
1121
1122 * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
1123 Do not use unspec as call operand. Use memory_operand instead of
1124 memory_nox32_operand and add "m" operand constraint. Disable
1125 pattern for TARGET_X32.
1126 (*sibcall_pop_memory): Ditto.
1127 (*sibcall_value_memory): Ditto.
1128 (*sibcall_value_pop_memory): Ditto.
1129 (sibcall peepholes): Merge SImode and DImode patterns using
1130 W mode iterator. Use memory_operand instead of memory_nox32_operand.
1131 Disable pattern for TARGET_X32. Check if eliminated register is
1132 really dead after call insn. Generate call RTX without unspec operand.
1133 (sibcall_value peepholes): Ditto.
1134 (sibcall_pop peepholes): Fix call insn RTXes. Use memory_operand
1135 instead of memory_nox32_operand. Check if eliminated register is
1136 really dead after call insn. Generate call RTX without unspec operand.
1137 (sibcall_value_pop peepholes): Ditto.
1138 * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
1139
3df31d76 11402014-06-18 Terry Guo <terry.guo@arm.com>
1141
1142 PR target/61544
1143 * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
1144 reach the head.
1145
f4953d40 11462014-06-18 Olivier Hainque <hainque@adacore.com>
1147
1148 * tree-core.h (tree_block): Add an "end_locus" field, allowing
1149 memorization of the end of block source location.
1150 * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
1151 * gimplify.c (gimplify_bind_expr): Propagate the block start and
1152 end source location info we have on the block entry/exit code we
1153 generate.
1154
3dac50cc 11552014-06-18 Richard Biener <rguenther@suse.de>
1156
1157 * common.opt (fssa-phiopt): New option.
1158 * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
1159 but not with -Og.
1160 * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
1161 * doc/invoke.texi (-fssa-phiopt): Document.
1162
a4858153 11632014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1164
1165 * genattrtab.c (n_bypassed): New variable.
1166 (process_bypasses): Initialise n_bypassed.
1167 Count number of bypassed reservations.
1168 (make_automaton_attrs): Allocate space for bypassed reservations
1169 rather than number of bypasses.
1170
28e7c0f5 11712014-06-18 Richard Biener <rguenther@suse.de>
1172
1173 * tree-ssa-propagate.c (replace_phi_args_in): Return whether
1174 we propagated anything.
1175 (substitute_and_fold_dom_walker::before_dom_children): Something
1176 changed if we propagated into PHI arguments.
1177 * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
1178 we removed a stmt.
1179
926f7a02 11802014-06-18 Evgeny Stupachenko <evstupac@gmail.com>
1181
1182 * config/i386/i386.c (ix86_reassociation_width): Add alternative for
1183 vector case.
1184 * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
1185 * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
1186 * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
1187 Introduces alternative way of loads group permutaions.
1188 (vect_transform_grouped_load): Try alternative way of permutations.
1189
691447ab 11902014-06-18 Jakub Jelinek <jakub@redhat.com>
1191
e51f8b8f 1192 * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
1193 changed in ORT_TARGET region, don't jump to do_outer.
691447ab 1194 (struct gimplify_adjust_omp_clauses_data): New type.
1195 (gimplify_adjust_omp_clauses_1): Adjust for data being
1196 a struct gimplify_adjust_omp_clauses_data pointer instead
1197 of tree *. Pass pre_p as a new argument to
1198 lang_hooks.decls.omp_finish_clause hook.
1199 (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
1200 splay_tree_foreach to pass both list_p and pre_p.
1201 (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
1202 gimplify_omp_workshare, gimplify_omp_target_update): Adjust
1203 gimplify_adjust_omp_clauses callers.
1204 * langhooks.c (lhd_omp_finish_clause): New function.
1205 * langhooks-def.h (lhd_omp_finish_clause): New prototype.
1206 (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
1207 * langhooks.h (struct lang_hooks_for_decls): Add a new
1208 gimple_seq * argument to omp_finish_clause hook.
1209 * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
1210 non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
1211 (scan_omp_parallel, lower_omp_for): When adding
e51f8b8f 1212 _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
691447ab 1213 * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
1214 * tree-nested.c (convert_nonlocal_omp_clauses,
1215 convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
e51f8b8f 1216 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
691447ab 1217
78c0c31c 12182014-06-17 Andrew MacLeod <amacleod@redhat.com>
1219
1220 * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
1221 * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
1222
50d9ae66 12232014-06-17 Xinliang David Li <davidxl@google.com>
1224
1225 * tree-pretty-print.c (dump_function_header): Print cgraph uid.
1226 * passes.c (pass_init_dump_file): Do not set initialize
1227 flag to false unconditionally.
1228
90a2d741 12292014-06-17 Richard Biener <rguenther@suse.de>
1230
1231 * genopinit.c (main): Use vec<>::qsort method.
1232 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
1233 Likewise.
1234 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
1235
a4e3876b 12362014-06-17 Matthew Fortune <matthew.fortune@imgtec.com>
1237
1238 * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
1239 * config/mips/mips.c (mips_expand_fcc_reload): Remove.
1240 (mips_move_to_gpr_cost): Remove ST_REGS case.
1241 (mips_move_from_gpr_cost): Likewise.
1242 (mips_register_move_cost): Likewise.
1243 (mips_secondary_reload_class): Likewise.
1244
5f4d66ea 12452014-06-17 Richard Biener <rguenther@suse.de>
1246
1247 * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
1248 (pass_all_optimizations): Move 3rd copy-prop pass from after
1249 fre to before ifcombine/phiopt.
1250
1c36b19f 12512014-06-17 Richard Biener <rguenther@suse.de>
1252
1253 * tree-switch-conversion.c (collect_switch_conv_info): Simplify
1254 and allow all blocks to be forwarders.
1255
ba5f7cbc 12562014-06-17 Yufeng Zhang <yufeng.zhang@arm.com>
1257
1258 PR target/61483
1259 * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
1260 variable 'size'; calculate 'size' right in the front; use
1261 'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
1262 pcum->aapcs_stack_words.
1263
b7c21933 12642014-06-17 Nick Clifton <nickc@redhat.com>
1265
1266 * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
1267 (umulhi3, mulsidi3, umulsidi3): Likewise.
1268
2cb18322 12692014-06-17 Thomas Schwinge <thomas@codesourcery.com>
1270
1271 PR middle-end/61508
1272 * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
1273 check for section name.
1274
39b62084 12752014-06-17 Richard Biener <rguenther@suse.de>
1276
1277 * tree-ssa-propagate.c: Include domwalk.h.
1278 (substitute_and_fold): Outline main worker into a domwalker ...
1279 (substitute_and_fold_dom_walker::before_dom_children): ... here.
1280 Schedule stmts we can fully propagate for removal. Remove
1281 poor-mans DCE.
1282 (substitute_and_fold): Apply a dominator walk to perform
1283 substitution. Process stmts scheduled for removal here.
1284
07f7799f 12852014-06-17 Richard Biener <rguenther@suse.de>
1286
1287 * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
1288 of PHI node moving.
1289
20455a47 12902014-06-17 Kugan Vivekanandarajah <kuganv@linaro.org>
1291
1292 * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
1293 default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
1294 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
1295 __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
1296 * config/arm/vfp.md (set_fpscr): Make pattern conditional on
1297 TARGET_HARD_FLOAT.
1298 (get_fpscr) : Likewise.
1299
1a68e833 13002014-06-16 Vladimir Makarov <vmakarov@redhat.com>
1301
1302 PR rtl-optimization/61325
1303 * lra-constraints.c (valid_address_p): Add forward declaration.
1304 (simplify_operand_subreg): Check address validity before and after
1305 alter_reg of memory subreg.
1306
b6073eb2 13072014-06-16 Uros Bizjak <ubizjak@gmail.com>
1308
1309 * config/i386/i386.c (decide_alg): Correctly handle
1310 maximum size of stringop algorithm.
1311
c1892ae1 13122014-06-16 Yury Gribov <y.gribov@samsung.com>
1313
1314 * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
1315
0b32b9ec 13162014-06-16 Vladimir Makarov <vmakarov@redhat.com>
1317
1318 PR rtl-optimization/61522
b6073eb2 1319 * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
0b32b9ec 1320
aca3df3b 13212014-06-16 Jan Hubicka <hubicka@ucw.cz>
1322
1323 Revert:
1324 * symtab.c (symtab_node::reset_section): New method.
1325 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
1326 for localization.
1327 * cgraph.h (reset_section): Declare.
1328 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
1329 do not consider comdat locals.
1330 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
1331 for new symbol.
1332 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
1333 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
1334 reset sections of symbols dragged out of the comdats.
e51f8b8f 1335 (function_and_variable_visibility): Reset sections of
1336 localized symbols.
aca3df3b 1337
6ee295d9 13382014-06-16 Richard Biener <rguenther@suse.de>
1339
1340 PR tree-optimization/61482
1341 * tree-vrp.c (adjust_range_with_scev): Avoid setting of
1342 [-INF(OVF), +INF(OVF)] range.
1343
d2282604 13442014-06-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
1345
476a9357 1346 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
1347 instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
d2282604 1348 handling 32-bit multiplication.
1349
89bf872d 13502014-06-16 Chung-Lin Tang <cltang@codesourcery.com>
1351
1352 PR middle-end/61430
1353 * lra-lives.c (process_bb_lives): Skip creating copy during
1354 insn scan when src/dest has constrained to same regno.
1355
8cab13cf 13562014-06-15 Jan Hubicka <hubicka@ucw.cz>
1357
1358 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
1359 DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
1360
4f86f720 13612014-06-16 Yury Gribov <y.gribov@samsung.com>
1362
1363 * asan.c (check_func): New function.
1364 (maybe_create_ssa_name): Likewise.
1365 (build_check_stmt_with_calls): Likewise.
1366 (use_calls_p): Likewise.
1367 (report_error_func): Change interface.
1368 (build_check_stmt): Allow non-integer lengths; add support
1369 for new parameter.
1370 (asan_instrument): Likewise.
b6073eb2 1371 (instrument_mem_region_access): Moved code to build_check_stmt.
4f86f720 1372 (instrument_derefs): Likewise.
1373 (instrument_strlen_call): Likewise.
b6073eb2 1374 * cfgcleanup.c (old_insns_match_p): Add support for new functions.
4f86f720 1375 * doc/invoke.texi: Describe new parameter.
1376 * params.def: Define new parameter.
1377 * params.h: Likewise.
1378 * sanitizer.def: Describe new builtins.
1379
ee3265e4 13802014-06-16 Richard Biener <rguenther@suse.de>
1381
1382 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1383 Make all defs available at the end.
1384 (eliminate): If we remove a PHI node schedule cfg-cleanup.
1385
d28d917c 13862014-06-18 Jakub Jelinek <jakub@redhat.com>
1387
1388 PR plugins/45078
1389 * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
1390
e8403abd 13912014-06-16 Richard Sandiford <rdsandiford@googlemail.com>
1392
1393 PR bootstrap/61516
1394 * auto-inc-dec.c (merge_in_block): Fix location of insn_info
1395 initialization. Replace remaining use of uid.
1396
5e68df57 13972014-06-15 Jan Hubicka <hubicka@ucw.cz>
1398
b6073eb2 1399 * c-family/c-common.c (handle_tls_model_attribute): Use
1400 set_decl_tls_model.
ee3265e4 1401 * c-family/c-common.c (handle_tls_model_attribute): Use
1402 set_decl_tls_model.
5e68df57 1403 * cgraph.h (struct varpool_node): Add tls_model.
1404 * tree.c (decl_tls_model, set_decl_tls_model): New functions.
1405 * tree.h (DECL_TLS_MODEL): Update.
1406 (DECL_THREAD_LOCAL_P): Check that variable is static.
1407 (decl_tls_model): Declare.
1408 (set_decl_tls_model): Declare.
1409 * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
1410 set symbol prorperties.
1411 (get_emutls_init_templ_addr): Cleanup.
1412 (new_emutls_decl): Update.
1413 * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
1414 (lto_input_varpool_node): Likewise.
1415 * lto-streamer-out.c (hash_tree): Likewise.
1416 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
1417 not stream DECL_TLS_MODEL.
58b15582 1418 * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
1419 * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
5e68df57 1420
32a8a89e 14212014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
1422
1423 * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
1424
ddc2d0e3 14252014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
1426
1427 * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
1428 (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
1429 lists.
1430 (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
1431 (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
1432 (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
1433 (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
1434 (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
1435 (df_get_artificial_defs, df_get_artificial_uses)
1436 (df_single_def, df_single_use): Update accordingly.
1437 (df_refs_chain_dump): Take the first element in a linked list as
1438 parameter, rather than a pointer to an array of pointers.
1439 * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
1440 * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
1441 (df_chain_create_bb_process_use): Likewise.
1442 (df_md_bb_local_compute_process_def): Likewise.
1443 * fwprop.c (process_defs, process_uses): Likewise.
1444 (register_active_defs, update_uses): Likewise.
1445 (forward_propagate_asm): Update for new df_ref linking.
1446 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
1447 (df_null_ref_rec, df_null_mw_rec): Likewise.
1448 (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
1449 explicitly.
1450 (df_scan_free_bb_info): Remove check for null artificial_defs.
1451 (df_install_ref_incremental): Adjust for new df_ref linking.
1452 Use a single-element insertion rather than a full sort.
1453 (df_ref_chain_delete_du_chain): Take the first element
1454 in a linked list as parameter, rather than a pointer to an array of
1455 pointers.
1456 (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
1457 (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
1458 (df_insn_info_delete): Remove check for null defs and call to
1459 df_scan_free_mws_vec.
1460 (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
1461 null rather than df_null_*_rec.
1462 (df_insn_rescan_debug_internal): Likewise, and update null
1463 checks in the same way. Remove check for null defs.
1464 (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
1465 Move a single element rather doing a full sort.
1466 (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
1467 linking.
1468 (df_notes_rescan): Likewise. Use a merge rather than a full sort.
1469 Initialize df_ref and df_mw_hardreg lists to null rather than
1470 df_null_*_rec.
1471 (df_ref_compare): Take df_refs as parameter, transferring the
1472 old interface to...
1473 (df_ref_ptr_compare): ...this new function.
1474 (df_sort_and_compress_refs): Update accordingly.
1475 (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
1476 old interface to...
1477 (df_mw_ptr_compare): ...this new function.
1478 (df_sort_and_compress_mws): Update accordingly.
1479 (df_install_refs, df_install_mws): Return a linked list rather than
1480 an array of pointers.
1481 (df_refs_add_to_chains): Assert that old lists are empty rather
1482 than freeing them.
1483 (df_insn_refs_verify): Don't handle null defs speciailly.
1484 * web.c (union_match_dups): Update for new df_ref linking.
1485
7b416b3f 14862014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
1487
1488 * df.h (df_ref_create, df_ref_remove): Delete.
1489 * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
1490 (df_ref_remove): Likewise.
1491
f83d4fdc 14922014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
1493
1494 * df.h (df_single_def, df_single_use): New functions.
1495 * ira.c (find_moveable_pseudos): Use them.
1496
f8d83750 14972014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
1498
1499 * df.h (FOR_EACH_INSN_INFO_MW): New macro.
1500 * df-problems.c (df_note_bb_compute): Use it.
1501 * regstat.c (regstat_bb_compute_ri): Likewise.
1502
f1c570a6 15032014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
1504
1505 * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
1506 * cse.c (cse_extended_basic_block): Use them.
1507 * dce.c (mark_artificial_use): Likewise.
1508 * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
1509 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
1510 (df_chain_remove_problem, df_chain_bb_dump): Likewise.
1511 (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
1512 (df_simulate_initialize_backwards): Likewise.
1513 (df_simulate_finalize_backwards): Likewise.
1514 (df_simulate_initialize_forwards): Likewise.
1515 (df_md_simulate_artificial_defs_at_top): Likewise.
1516 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
1517 * regrename.c (init_rename_info): Likewise.
1518 * regstat.c (regstat_bb_compute_ri): Likewise.
1519 (regstat_bb_compute_calls_crossed): Likewise.
1520
be10bb5a 15212014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
1522
1523 * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
1524 (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
1525 (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
1526 * auto-inc-dec.c (find_inc, merge_in_block): Use them.
1527 * combine.c (create_log_links): Likewise.
1528 * compare-elim.c (find_flags_uses_in_insn): Likewise.
1529 (try_eliminate_compare): Likewise.
1530 * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
1531 * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
1532 (remove_reg_equal_equiv_notes_for_defs): Likewise.
1533 (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
1534 (word_dce_process_block, dce_process_block): Likewise.
1535 * ddg.c (def_has_ccmode_p): Likewise.
1536 * df-core.c (df_bb_regno_first_def_find): Likewise.
1537 (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
1538 * df-problems.c (df_rd_simulate_one_insn): Likewise.
1539 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
1540 (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
1541 (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
1542 (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
1543 (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
1544 (df_simulate_find_defs, df_simulate_find_uses): Likewise.
1545 (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
1546 (df_simulate_uses, df_md_simulate_one_insn): Likewise.
1547 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
1548 * fwprop.c (local_ref_killed_between_p): Likewise.
1549 (all_uses_available_at, free_load_extend): Likewise.
1550 * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
1551 * hw-doloop.c (scan_loop): Likewise.
1552 * ifcvt.c (dead_or_predicable): Likewise.
1553 * init-regs.c (initialize_uninitialized_regs): Likewise.
1554 * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
1555 (process_bb_node_lives): Likewise.
1556 * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
1557 (find_moveable_pseudos): Likewise.
1558 * loop-invariant.c (check_dependencies, record_uses): Likewise.
1559 * recog.c (peep2_find_free_register): Likewise.
1560 * ree.c (get_defs): Likewise.
1561 * regstat.c (regstat_bb_compute_ri): Likewise.
1562 (regstat_bb_compute_calls_crossed): Likewise.
1563 * sched-deps.c (find_inc, find_mem): Likewise.
1564 * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
1565 (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
1566 * shrink-wrap.c (requires_stack_frame_p): Likewise.
1567 (prepare_shrink_wrap): Likewise.
1568 * store-motion.c (compute_store_table, build_store_vectors): Likewise.
1569 * web.c (union_defs, pass_web::execute): Likewise.
1570 * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
1571 (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
1572
3d1f79d1 15732014-06-13 Vladimir Makarov <vmakarov@redhat.com>
1574
1575 * lra-assign.c (assign_by_spills): Add code to assign vector regs
1576 to inheritance pseudos.
1577 * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
1578
1d2fa40a 15792014-06-13 Peter Bergner <bergner@vnet.ibm.com>
1580
1581 PR target/61415
1582 * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
1583 (BU_MISC_2): Rename to ...
1584 (BU_LDBL128_2): ... this.
1585 * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
1586 (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
1587 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
1588 RS6000_BTM_LDBL128.
1589 (rs6000_invalid_builtin): Add long double 128-bit builtin support.
1590 (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
1591 * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
1592 (unpacktf_1): Likewise.
1593 * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
1594 (__builtin_longdouble_dw1): Likewise.
1595 * doc/sourcebuild.texi (longdouble128): Document.
1596
f49037f2 15972014-06-13 Jeff Law <law@redhat.com>
1598
1599 PR rtl-optimization/61094
1600 PR rtl-optimization/61446
1601 * ree.c (combine_reaching_defs): Get the mode for the copy from
1602 the extension insn rather than the defining insn.
1603
75252acf 16042014-06-13 Dehao Chen <dehao@google.com>
1605
1606 * dwarf2out.c (add_linkage_name): Emit more linkage name.
1607
1015a063 16082014-06-13 Thomas Schwinge <thomas@codesourcery.com>
1609
1610 * doc/install.texi (--enable-linker-plugin-configure-flags)
1611 (--enable-linker-plugin-flags): Document new flags.
1612
034f210b 16132014-06-13 Martin Jambor <mjambor@suse.cz>
1614
1615 PR ipa/61186
1616 * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
1617 cache_token if returning early.
1618
9d05e48d 16192014-06-13 Nick Clifton <nickc@redhat.com>
1620
1621 * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
1622 requested alignment is active.
1623 (LABEL_ALIGN): Likewise.
1624 (LOOP_ALIGN): Likewise.
1625
60760c70 16262014-06-13 Richard Biener <rguenther@suse.de>
1627
1628 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1629 Rewrite to propagate the VN result into all uses where
1630 possible and to remove stmts becoming dead because of that.
1631 (eliminate): Generalize stmt removal handling, remove in
1632 reverse dominator order to support proper debug stmt
1633 generation. Update stmts before removing stmts.
b6073eb2 1634 * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
60760c70 1635
c0dd3a90 16362014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
1637
1638 PR tree-optimization/61375
1639 * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
1640 symbolic number cannot be represented in an uint64_t.
1641 (find_bswap_or_nop_1): Likewise.
1642
922f76a8 16432014-06-12 Jan Hubicka <hubicka@ucw.cz>
1644
1645 * symtab.c (symtab_node::reset_section): New method.
1646 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
1647 for localization.
1648 * cgraph.h (reset_section): Declare.
1649 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
1650 do not consider comdat locals.
1651 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
1652 for new symbol.
1653 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
1654 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
1655 reset sections of symbols dragged out of the comdats.
b6073eb2 1656 (function_and_variable_visibility): Reset sections of
1657 localized symbols.
922f76a8 1658
454eae94 16592014-06-12 Jan Hubicka <hubicka@ucw.cz>
1660
1661 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
1662 to use symtab and decl_binds_to_current_def_p
1663 * tree-vectorizer.c (increase_alignment): Increase alignment
1664 of alias target, too.
1665
5fddcf34 16662014-06-12 Jakub Jelinek <jakub@redhat.com>
1667
1668 PR middle-end/61486
1669 * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
1670 (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
1671 if outer combined construct is distribute.
1672 (gimplify_omp_for): For OMP_DISTRIBUTE set
1673 gimplify_omp_ctxp->distribute.
1674 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
1675 GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
1676 mapping into decl map.
1677
f2c0954e 16782014-06-12 Jason Merrill <jason@redhat.com>
1679
1680 * common.opt (fabi-version): Change default to 0.
1681
f591db9a 16822014-06-12 Jason Merrill <jason@redhat.com>
1683
1684 * toplev.c (process_options): Reject -fabi-version=1.
1685
2e920d0f 16862014-06-12 Jeff Law <law@redhat.com>
1687
476a9357 1688 PR tree-optimization/61009
2e920d0f 1689 * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
1690 value when we stop processing a block due to problematic PHIs.
1691
fb6917f5 16922014-06-12 Alan Lawrence <alan.lawrence@arm.com>
1693
1694 * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
1695 vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
1696 vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
1697 vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
1698 vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
1699 vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
b6073eb2 1700 vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
1701 are not in the spec.
fb6917f5 1702
d70050b8 17032014-06-10 Alan Lawrence <alan.lawrence@arm.com>
1704
1705 PR target/59843
1706 * config/aarch64/aarch64-modes.def: Add V1DFmode.
1707 * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
1708 Support V1DFmode.
1709
0c0f572f 17102014-06-12 Eric Botcazou <ebotcazou@adacore.com>
1711
1712 * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
1713
29dc0f25 17142014-06-12 Georg-Johann Lay <avr@gjlay.de>
1715
1716 PR target/61443
1717 * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
1718 loading from address spaces.
1719
a89006bf 17202014-06-12 Martin Liska <mliska@suse.cz>
1721
1722 PR ipa/61462
1723 * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
476a9357 1724 statement is reachable.
a89006bf 1725
738a6bda 17262014-06-11 Jan Hubicka <hubicka@ucw.cz>
1727
1728 * symtab.c (section_hash): New hash.
1729 (symtab_unregister_node): Clear section before freeing.
1730 (hash_section_hash_entry): New haser.
1731 (eq_sections): New function.
1732 (symtab_node::set_section_for_node): New method.
1733 (set_section_1): Update.
1734 (symtab_node::set_section): Take string instead of tree as parameter.
1735 (symtab_resolve_alias): Update.
1736 * cgraph.h (section_hash_entry_d): New structure.
1737 (section_hash_entry): New typedef.
1738 (cgraph_node): Change comdat_group_ to x_comdat_group,
1739 change section_ to x_section and turn into section_hash_entry;
1740 update accestors; put set_section_for_node offline.
1741 * tree.c (decl_section_name): Turn into string.
1742 (set_decl_section_name): Change parameter to be string.
1743 * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
1744 * sdbout.c (sdbout_one_type): Update.
1745 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
e51f8b8f 1746 * varasm.c (IN_NAMED_SECTION, get_named_section,
1747 resolve_unique_section, hot_function_section, get_named_text_section,
b6073eb2 1748 USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
1749 make_decl_rtl, default_unique_section): Update.
738a6bda 1750 * config/c6x/c6x.c (c6x_in_small_data_p): Update.
1751 (c6x_elf_unique_section): Update.
1752 * config/nios2/nios2.c (nios2_in_small_data_p): Update.
1753 * config/pa/pa.c (pa_function_section): Update.
1754 * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
1755 * config/ia64/ia64.c (ia64_in_small_data_p): Update.
1756 * config/arc/arc.c (arc_in_small_data_p): Update.
1757 * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
1758 * config/mcore/mcore.c (mcore_unique_section): Update.
1759 * config/mips/mips.c (mips16_build_function_stub): Update.
1760 (mips16_build_call_stub): Update.
1761 (mips_function_rodata_section): Update.
1762 (mips_in_small_data_p): Update.
1763 * config/score/score.c (score_in_small_data_p): Update.
1764 * config/rx/rx.c (rx_in_small_data): Update.
1765 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
1766 (rs6000_xcoff_asm_named_section): Update.
1767 (rs6000_xcoff_unique_section): Update.
1768 * config/frv/frv.c (frv_string_begins_with): Update.
1769 (frv_in_small_data_p): Update.
1770 * config/v850/v850.c (v850_encode_data_area): Update.
1771 * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
1772 (bfin_handle_l1_data_attribute): Update.
1773 (bfin_handle_l2_attribute): Update.
1774 * config/mep/mep.c (mep_unique_section): Update.
b6073eb2 1775 * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
1776 Update.
738a6bda 1777 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
1778 (h8300_handle_tiny_data_attribute): Update.
1779 * config/m32r/m32r.c (m32r_in_small_data_p): Update.
1780 (m32r_in_small_data_p): Update.
1781 * config/alpha/alpha.c (alpha_in_small_data_p): Update.
1782 * config/i386/i386.c (ix86_in_large_data_p): Update.
1783 * config/i386/winnt.c (i386_pe_unique_section): Update.
1784 * config/darwin.c (darwin_function_section): Update.
1785 * config/lm32/lm32.c (lm32_in_small_data_p): Update.
1786 * tree-emutls.c (get_emutls_init_templ_addr): Update.
1787 (new_emutls_decl): Update.
1788 * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
1789 input_varpool_node): Update.
1790 (ead_string_cst): Turn to ...
1791 (read_string): ... this one.
1792 * dwarf2out.c (secname_for_decl): Update.
1793 * asan.c (asan_protect_global): Update.
1794
e6cf07b2 17952014-06-11 DJ Delorie <dj@redhat.com>
1796
958c4dc5 1797 * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
1798 cache lines.
1799 * config/rx/rx.c (rx_option_override): Likewise.
1800 (rx_align_for_label): Likewise.
1801
e6cf07b2 1802 * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
1803
59ca4e31 18042014-06-11 Maciej W. Rozycki <macro@codesourcery.com>
1805
1806 * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
1807 prototype.
1808
69449463 18092014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
1810
1811 * common.md: New file.
1812 * doc/md.texi: Update description of generic, machine-independent
1813 constraints.
1814 * config/s390/constraints.md (e): Delete.
1815 * Makefile.in (md_file): Include common.md.
1816 * config/m32c/t-m32c (md_file): Likewise.
1817 * genpreds.c (general_mem): New array.
1818 (generic_constraint_letters): Remove constraints now defined by
1819 common.md.
1820 (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
1821 Allow the first character to be '<' or '>' as well.
1822 * genoutput.c (general_mem): New array.
1823 (indep_constraints): Remove constraints now defined by common.md.
1824 (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
1825 Remove special handling of 'm'.
1826 * ira-costs.c (record_reg_classes): Remove special handling of
1827 constraints now defined by common.md.
1828 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
1829 * ira-lives.c (single_reg_class): Likewise.
1830 (ira_implicitly_set_insn_hard_regs): Likewise.
1831 * lra-constraints.c (reg_class_from_constraints): Likewise.
1832 (process_alt_operands, process_address, curr_insn_transform): Likewise.
1833 * postreload.c (reload_cse_simplify_operands): Likewise.
1834 * reload.c (push_secondary_reload, scratch_reload_class)
1835 (find_reloads, alternative_allows_const_pool_ref): Likewise.
1836 * reload1.c (maybe_fix_stack_asms): Likewise.
1837 * targhooks.c (default_secondary_reload): Likewise.
1838 * stmt.c (parse_output_constraint): Likewise.
1839 * recog.c (preprocess_constraints): Likewise.
1840 (constrain_operands, peep2_find_free_register): Likewise.
1841 (asm_operand_ok): Likewise, but add a comment saying why 'o'
1842 must be handled specially.
1843
e3c57fd2 18442014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
1845
1846 * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
1847 * genpreds.c (have_const_dbl_constraints): Delete.
1848 (add_constraint): Don't set it.
1849 (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
1850 * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
1851 constraints using the lookup_constraint logic.
1852 * ira-lives.c (single_reg_class): Likewise.
1853 * ira.c (ira_setup_alts): Likewise.
1854 * lra-constraints.c (process_alt_operands): Likewise.
1855 * recog.c (asm_operand_ok, constrain_operands): Likewise.
1856 * reload.c (find_reloads): Likewise.
1857
4e67d0bf 18582014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
1859
1860 * genpreds.c (const_int_start, const_int_end): New variables.
1861 (choose_enum_order): Output CONST_INT constraints before memory
1862 constraints.
1863 (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
1864 Add CT_CONST_INT.
1865 * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
1866 * ira.c (ira_setup_alts): Likewise.
1867 * lra-constraints.c (process_alt_operands): Likewise.
1868 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
1869 * reload.c (find_reloads): Likewise.
1870
46520e8a 18712014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
1872
1873 * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
1874 decmem_ok and incmem_ok. Reformat other bitfields for consistency.
1875 * recog.c (preprocess_constraints): Update accordingly.
1876
79bc09fb 18772014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
1878
1879 * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
1880 (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
1881 (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
1882 * genpreds.c (print_type_tree): New function.
1883 (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
1884 REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
1885 EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
1886 Write out enum constraint_type and get_constraint_type.
1887 * lra-constraints.c (satisfies_memory_constraint_p): Take a
1888 constraint_num rather than a constraint string.
1889 (satisfies_address_constraint_p): Likewise.
1890 (reg_class_from_constraints): Avoid old constraint macros.
1891 (process_alt_operands, process_address_1): Likewise.
1892 (curr_insn_transform): Likewise.
1893 * ira-costs.c (record_reg_classes): Likewise.
1894 (record_operand_costs): Likewise.
1895 * ira-lives.c (single_reg_class): Likewise.
1896 (ira_implicitly_set_insn_hard_regs): Likewise.
1897 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
1898 * postreload.c (reload_cse_simplify_operands): Likewise.
1899 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
1900 (constrain_operands, peep2_find_free_register): Likewise.
1901 * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
1902 (find_reloads, alternative_allows_const_pool_ref): Likewise.
1903 * reload1.c (maybe_fix_stack_asms): Likewise.
1904 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
1905 * targhooks.c (default_secondary_reload): Likewise.
1906 * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
1907 to EXTRA_CONSTRAINT_STR.
1908 * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
1909
ad5d2f05 19102014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
1911
1912 * genpreds.c (write_constraint_satisfied_p_1): Replace with...
1913 (write_constraint_satisfied_p_array): ...this new function.
1914 (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
1915 an array.
1916 (write_insn_preds_c): Update accordingly.
1917
76d4a13c 19182014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
1919
1920 * genpreds.c (write_lookup_constraint): Rename to...
1921 (write_lookup_constraint_1): ...this.
1922 (write_lookup_constraint_array): New function.
1923 (write_tm_preds_h): Define lookup_constraint as an inline function
1924 that uses write_lookup_constraint_array where possible.
1925 (write_insn_preds_c): Update for the changes above.
1926
f0737592 19272014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
1928
1929 * doc/md.texi (regclass_for_constraint): Rename to...
1930 (reg_class_for_constraint): ...this.
1931 * genpreds.c (num_constraints, enum_order, register_start)
1932 (register_end, satisfied_start, memory_start, memory_end)
1933 (address_start, address_end): New variables.
1934 (add_constraint): Count the number of constraints.
1935 (choose_enum_order): New function.
1936 (write_enum_constraint_num): Iterate over enum_order.
1937 (write_regclass_for_constraint): Rename to...
1938 (write_reg_class_for_constraint_1): ...this and update output
1939 accordingly.
1940 (write_constraint_satisfied_p): Rename to...
1941 (write_constraint_satisfied_p_1): ...this and update output
1942 accordingly. Do nothing if all extra constraints are register
1943 constraints.
1944 (write_insn_extra_memory_constraint): Delete.
1945 (write_insn_extra_address_constraint): Delete.
1946 (write_range_function): New function.
1947 (write_tm_preds_h): Define constraint_satisfied_p and
1948 reg_class_for_constraint as inline functions that do a range check
1949 before calling the out-of-line function. Use write_range_function
1950 to implement insn_extra_{register,memory,address}_constraint,
1951 the first of which is new.
1952 (write_insn_preds_c): Update after above changes to write_* functions.
1953 (main): Call choose_enum_order.
1954
7101c0cf 19552014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
1956
1957 PR tree-optimization/61306
1958 * tree-ssa-math-opts.c (struct symbolic_number): Store type of
1959 expression instead of its size.
1960 (do_shift_rotate): Adapt to change in struct symbolic_number. Return
1961 false to prevent optimization when the result is unpredictable due to
1962 arithmetic right shift of signed type with highest byte is set.
1963 (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
1964 (init_symbolic_number): Likewise.
1965 (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
1966 when the result is unpredictable due to sign extension.
1967
bc360af8 19682014-06-11 Terry Guo <terry.guo@arm.com>
1969
1970 * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
1971 (*thumb1_addsi3): Ditto.
1972 (*thumb_subdi3): Ditto.
1973 (thumb1_subsi3_insn): Ditto.
1974 (*thumb_mulsi3): Ditto.
1975 (*thumb_mulsi3_v6): Ditto.
1976 (*thumb1_andsi3_insn): Ditto.
1977 (thumb1_bicsi3): Ditto.
1978 (*thumb1_iorsi3_insn): Ditto.
1979 (*thumb1_xorsi3_insn): Ditto.
1980 (*thumb1_ashlsi3): Ditto.
1981 (*thumb1_ashrsi3): Ditto.
1982 (*thumb1_lshrsi3): Ditto.
1983 (*thumb1_rotrsi3): Ditto.
1984 (*thumb1_negdi2): Ditto.
1985 (*thumb1_negsi2): Ditto.
1986 (*thumb1_abssi2): Ditto.
1987 (*thumb1_neg_abssi2): Ditto.
1988 (*thumb1_one_cmplsi2): Ditto.
1989 (*thumb1_zero_extendhisi2): Ditto.
1990 (*thumb1_zero_extendqisi2): Ditto.
1991 (*thumb1_zero_extendqisi2_v6): Ditto.
1992 (thumb1_extendhisi2): Ditto.
1993 (thumb1_extendqisi2): Ditto.
1994 (*thumb1_movdi_insn): Ditto.
1995 (*thumb1_movsi_insn): Ditto.
1996 (*thumb1_movhi_insn): Ditto.
1997 (thumb_movhi_clobber): Ditto.
1998 (*thumb1_movqi_insn): Ditto.
1999 (*thumb1_movhf): Ditto.
2000 (*thumb1_movsf_insn): Ditto.
2001 (*thumb_movdf_insn): Ditto.
2002 (movmem12b): Ditto.
2003 (movmem8b): Ditto.
2004 (cbranchqi4): Ditto.
2005 (cbranchsi4_insn): Ditto.
2006 (cbranchsi4_scratch): Ditto.
2007 (*negated_cbranchsi4): Ditto.
2008 (*tbit_cbranch): Ditto.
2009 (*tlobits_cbranch): Ditto.
2010 (*tstsi3_cbranch): Ditto.
2011 (*cbranchne_decr1): Ditto.
2012 (*addsi3_cbranch): Ditto.
2013 (*addsi3_cbranch_scratch): Ditto.
2014 (*thumb_cmpdi_zero): Ditto.
2015 (cstoresi_eq0_thumb1): Ditto.
2016 (cstoresi_ne0_thumb1): Ditto.
2017 (*cstoresi_eq0_thumb1_insn): Ditto.
2018 (*cstoresi_ne0_thumb1_insn): Ditto.
2019 (cstoresi_nltu_thumb1): Ditto.
2020 (cstoresi_ltu_thumb1): Ditto.
2021 (thumb1_addsi3_addgeu): Ditto.
2022 (*thumb_jump): Ditto.
2023 (*call_reg_thumb1_v5): Ditto.
2024 (*call_reg_thumb1): Ditto.
2025 (*call_value_reg_thumb1_v5): Ditto.
2026 (*call_value_reg_thumb1): Ditto.
2027 (*call_insn): Ditto.
2028 (*call_value_insn): Ditto.
2029 (thumb1_casesi_internal_pic): Ditto.
2030 (thumb1_casesi_dispatch): Ditto.
2031 (*thumb1_indirect_jump): Ditto.
2032 (prologue_thumb1_interwork): Ditto.
2033 (*epilogue_insns): Ditto.
2034 (consttable_1): Ditto.
2035 (consttable_2): Ditto.
2036 (tablejump): Ditto.
2037 (*thumb1_tablejump): Ditto.
2038 (thumb_eh_return): Ditto.
2039 (define_peephole2): Two of them are thumb1 only and got moved into
2040 new file thumb1.md.
2041 (define_split): Six of them are thumb1 only and got moved into new
2042 file thumb1.md.
2043 * config/arm/thumb1.md: New file comprised of above thumb1 only
2044 patterns.
2045
d6add4cb 20462014-06-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2047
2048 * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
2049 * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
2050 dependencies.
2051 * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
2052 (aarch64_crc_builtin_datum): New struct.
2053 (aarch64_crc_builtin_data): New.
2054 (aarch64_init_crc32_builtins): New function.
2055 (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
2056 (aarch64_crc32_expand_builtin): New.
2057 (aarch64_expand_builtin): Add CRC32 builtin expansion case.
2058 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
2059 __ARM_FEATURE_CRC32 when appropriate.
2060 (TARGET_CRC32): Define.
2061 * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
2062 UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
2063 UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
2064 (aarch64_<crc_variant>): New pattern.
2065 * config/aarch64/arm_acle.h: New file.
2066 * config/aarch64/iterators.md (CRC): New int iterator.
2067 (crc_variant, crc_mode): New int attributes.
2068 * doc/aarch64-acle-intrinsics.texi: New file.
2069 * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
2070 Include aarch64-acle-intrinsics.texi.
2071
d53391a8 20722014-06-11 Evgeny Stupachenko <evstupac@gmail.com>
2073
2074 * tree-vect-data-refs.c (vect_grouped_store_supported): New
2075 check for stores group of length 3.
2076 (vect_permute_store_chain): New permutations for stores group of
2077 length 3.
2078 * tree-vect-stmts.c (vect_model_store_cost): Change cost
2079 of vec_perm_shuffle for the new permutations.
2080
6f24ab3b 20812014-06-11 Jan Hubicka <hubicka@ucw.cz>
2082
b6073eb2 2083 * ipa-visibility.c (function_and_variable_visibility): Disable virtual
2084 table rewriting temporarily on targets not supporting ONE_ONLY.
6f24ab3b 2085
30a578e8 20862014-06-11 Richard Biener <rguenther@suse.de>
2087
2088 PR middle-end/61437
2089 Revert
2090 2014-06-04 Richard Biener <rguenther@suse.de>
2091
2092 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
2093 TREE_PUBLIC and DECL_EXTERNAL decls.
2094
e4c07a06 20952014-06-10 Jan Hubicka <hubicka@ucw.cz>
2096
2097 * varasm.c (set_implicit_section): New function.
2098 (resolve_unique_section): Use it to set implicit section
2099 for aliases, too.
2100 (get_named_text_section): Use symtab_get_node (decl)->implicit_section
2101 (default_function_section): Likewise.
2102 (decl_binds_to_current_def_p): Constify argument.
2103 * varasm.h (decl_binds_to_current_def_p): Update prototype.
30a578e8 2104 * asan.c (asan_protect_global): Use
2105 symtab_get_node (decl)->implicit_section.
e4c07a06 2106 * symtab.c (dump_symtab_base): Dump implicit sections.
2107 (verify_symtab_base): Verify sanity of sectoins and comdats.
2108 (symtab_resolve_alias): Alias share the section of its target.
2109 (set_section_1): New function.
2110 (symtab_node::set_section): Move here, recurse to aliases.
2111 (verify_symtab): Check for duplicated symtab lists.
2112 * tree-core.h (implicit_section_name_p): Remove.
2113 * tree-vect-data-refs.c: Include varasm.h.
2114 (vect_can_force_dr_alignment_p): Fix conditional on when
2115 decl bints to current definition; use
2116 symtab_get_node (decl)->implicit_section.
2117 * cgraph.c (cgraph_make_node_local_1): Fix section set.
2118 * cgraph.h (struct symtab_node): Add implicit_section.
2119 (set_section): Rename to ...
2120 (set_section_for_node): ... this one.
2121 (set_section): Declare.
2122 * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
2123 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
2124 input_overwrite_node, input_varpool_node): Stream implicit_section.
2125 * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
2126 removal; it will fail in LTO.
2127
94f2c0a7 21282014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2129
2130 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
2131 Change second alternative type to f_mcr.
2132 * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
2133 and 12th alternatives' types to f_mcr and f_mrc.
2134 (*movdi_aarch64): Same for 12th and 13th alternatives.
2135 (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
2136 (aarch64_movtilow_tilow): Change type to fmov.
2137
b08261cc 21382014-06-10 Jiong Wang <jiong.wang@arm.com>
2139
2140 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
2141 (aarch64_save_or_restore_callee_save_registers): Fix layout.
2142
03a7bf5a 21432014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2144
2145 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
2146 New expander.
2147 (aarch64_sqrdmulh_lane<mode>): Likewise.
2148 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
2149 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
2150 (aarch64_sqdmulh_laneq<mode>): New expander.
2151 (aarch64_sqrdmulh_laneq<mode>): Likewise.
2152 (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
2153 (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
2154 (aarch64_sqdmulh_lane<mode>): New expander.
2155 (aarch64_sqrdmulh_lane<mode>): Likewise.
2156 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
2157 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
2158 (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
2159 (aarch64_sqdmlal_laneq<mode>): Likewise.
2160 (aarch64_sqdmlsl_lane<mode>): Likewise.
2161 (aarch64_sqdmlsl_laneq<mode>): Likewise.
2162 (aarch64_sqdmlal2_lane<mode>): Likewise.
2163 (aarch64_sqdmlal2_laneq<mode>): Likewise.
2164 (aarch64_sqdmlsl2_lane<mode>): Likewise.
2165 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
2166 (aarch64_sqdmull_lane<mode>): Likewise.
2167 (aarch64_sqdmull_laneq<mode>): Likewise.
2168 (aarch64_sqdmull2_lane<mode>): Likewise.
2169 (aarch64_sqdmull2_laneq<mode>): Likewise.
2170
3213fe73 21712014-06-10 Richard Biener <rguenther@suse.de>
2172
2173 PR tree-optimization/61438
2174 * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
2175 (eliminate_dom_walker::before_dom_children): Only try to inhibit
2176 insertion of IVs if running PRE.
2177 (eliminate): Adjust.
2178 (pass_pre::execute): Likewise.
2179 (pass_fre::execute): Likewise.
2180
608927af 21812014-06-10 Richard Biener <rguenther@suse.de>
2182
2183 PR middle-end/61456
2184 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
2185 Do not use the main variant for the type comparison.
2186 (ncr_compar): Likewise.
2187 (nonoverlapping_component_refs_p): Likewise.
2188
c2bd30f8 21892014-06-10 Marcus Shawcroft <marcus.shawcroft@arm.com>
2190
2191 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
2192 REG_CFA_RESTORE mode.
2193
5c0d660c 21942014-06-10 Evgeny Stupachenko <evstupac@gmail.com>
2195
2196 * config/i386/i386.c (expand_vec_perm_pblendv): New.
2197 * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
2198 expand_vec_perm_pblendv.
2199
b9a4a3fd 22002014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2201
2202 * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
2203 available.
2204 Simplify description of __crc32d and __crc32cd intrinsics.
2205 * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
2206 availability.
2207
d968efea 22082014-06-10 Thomas Schwinge <thomas@codesourcery.com>
2209
2210 PR lto/61334
e51f8b8f 2211 * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
d968efea 2212 * config.in: Regenerate.
2213 * configure: Likewise.
2214
ad28f8e5 22152014-06-10 Jan Hubicka <hubicka@ucw.cz>
2216
b6073eb2 2217 * ipa-reference.c (is_proper_for_analysis): Exclude addressable
2218 and public vars.
ad28f8e5 2219 (intersect_static_var_sets): Remove.
2220 (propagate): Do not prune local statics.
2221
cf5f881f 22222014-06-10 Jakub Jelinek <jakub@redhat.com>
2223
2224 PR fortran/60928
2225 * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
2226 Set lastprivate_firstprivate even if omp_private_outer_ref
2227 langhook returns true.
2228 <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
2229 langhook, call unshare_expr on new_var and call
2230 build_outer_var_ref to get the last argument.
2231
35402d60 22322014-06-10 Marek Polacek <polacek@redhat.com>
2233
2234 PR c/60988
2235 * doc/extend.texi: Add cindex for transparent_union.
2236
935abe57 22372014-06-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
2238
2239 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
2240 init_symbolic_number ().
2241
11c8949c 22422014-05-18 John David Anglin <danglin@gcc.gnu.org>
2243
2244 PR middle-end/61141
2245 * emit-rtl.c (reset_all_used_flags): In a sequence, check that
2246 XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
476a9357 2247 (verify_rtl_sharing): Likewise.
11c8949c 2248
1aa498d2 22492014-06-09 Marc Glisse <marc.glisse@inria.fr>
2250
2251 PR c++/54442
2252 * tree.c (build_qualified_type): Use a canonical type for
2253 TYPE_CANONICAL.
2254
a0d031b1 22552014-06-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2256
2257 * config/arm/arm-modes.def: Remove XFmode.
2258
a7a73438 22592014-06-09 Alan Lawrence <alan.lawrence@arm.com>
2260
2261 PR target/61062
2262 * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
2263 vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
b6073eb2 2264 vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
2265 vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
2266 vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
2267 vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
2268 vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
2269 vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
2270 vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
a7a73438 2271
2df0c9c2 22722014-06-09 Jan Hubicka <hubicka@ucw.cz>
2273
2274 * tree-core.h (tree_decl_with_vis): Remove section_name.
2275
2d983bac 22762014-06-09 Kito Cheng <kito@0xlab.org>
2277
2278 * ira.c (ira): Don't call init_caller_save if LRA enabled
2279 since LRA use its own infrastructure to handle that.
2280
71e19e54 22812014-06-07 Jan Hubicka <hubicka@ucw.cz>
2282
2283 * symtab.c (dump_symtab_base): Update dumping.
2284 (symtab_make_decl_local): Clear only DECL_COMDAT.
2285 * tree-vect-data-refs.c (Check that variable is static before
2286 tampering with sections.
2287 * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
2288 (cgraph_create_virtual_clone): Likewise.
2289 * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
2290 (decl_section_name, set_decl_section_name): New accessors.
2291 (find_decls_types_r): Do not walk section name
b6073eb2 2292 * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
71e19e54 2293 (decl_comdat_group, decl_comdat_group_id): Constify.
2294 (decl_section_name, set_decl_section_name): Update.
b6073eb2 2295 * varpool.c (varpool_finalize_named_section_flags): Use get_section.
71e19e54 2296 * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
2297 (cgraph_make_node_local_1): Clear section and comdat group.
2298 * cgraph.h (set_comdat_group): Sanity check.
2299 (get_section, set_section): New.
2300 * ipa-comdats.c (ipa_comdats): Use get_section.
2301 * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
2302 * lto-streamer-out.c: Do not follow section names.
b6073eb2 2303 * c-family/c-common.c (handle_section_attribute): Update.
71e19e54 2304 * lto-cgraph.c (lto_output_node): Output section.
2305 (lto_output_varpool_node): Likewise.
2306 (read_comdat_group): Rename to ...
2307 (read_identifier): ... this one.
2308 (read_string_cst): New function.
2309 (input_node, input_varpool_node): Input section names.
2310 * tree-emutls.c (get_emutls_init_templ_addr): Update.
2311 (new_emutls_decl): Update.
b6073eb2 2312 (secname_for_decl): Check section names only of static vars.
71e19e54 2313 * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
2314 * config/i386/winnt.c (i386_pe_unique_section): Likewise.
2315 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
2316 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
2317 * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
2318 * config/mcore/mcore.c (mcore_unique_section): Likewise.
2319 * config/mips/mips.c (mips16_build_function_stub): Likewise.
2320 * config/v850/v850.c (v850_insert_attributes): Likewise.
b6073eb2 2321 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
71e19e54 2322 Likewise.
2323 (h8300_handle_tiny_data_attribute): Likewise.
2324 * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
2325 (bfin_handle_l2_attribute): Likewise.
2326
338af93e 23272014-06-07 Jan Hubicka <hubicka@ucw.cz>
2328
2329 * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
2330 remove static initializer.
2331
18aedd60 23322014-06-07 Jan Hubicka <hubicka@ucw.cz>
2333
b6073eb2 2334 * varasm.c (use_blocks_for_decl_p): Check symbol table
2335 instead of alias attribute.
18aedd60 2336 (place_block_symbol): Recurse on aliases.
2337
825463d4 23382014-06-07 Jan Hubicka <hubicka@ucw.cz>
2339
2340 * ipa-visibility.c: Include varasm.h
2341 (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
2342
1b39e0df 23432014-06-07 Jan Hubicka <hubicka@ucw.cz>
2344
2345 * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
2346 outputting aliases.
2347
e899b9f2 23482014-06-07 Steven Bosscher <steven@gcc.gnu.org>
2349
476a9357 2350 * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
e899b9f2 2351 from test_insn into GGC space escape via SET_SRC.
2352
4be182b9 23532014-06-07 Eric Botcazou <ebotcazou@adacore.com>
2354
2355 * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
2356 call statement, if any.
2357 (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
2358 statements, if any. Tidy up.
2359
ac243d3a 23602014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
2361
2362 PR target/61431
2363 * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
2364 iterators, VSX_D that handles 64-bit types, and VSX_LE that
2365 handles swapping the two 64-bit double words on little endian
2366 systems. Include V1TImode and optionally TImode in VSX_LE so that
2367 these types are properly swapped. Change all of the insns and
2368 splits that do the 64-bit swaps to use VSX_LE.
2369 (vsx_le_perm_load_<mode>): Likewise.
2370 (vsx_le_perm_store_<mode>): Likewise.
2371 (splitters for little endian memory operations): Likewise.
2372 (vsx_xxpermdi2_le_<mode>): Likewise.
2373 (vsx_lxvd2x2_le_<mode>): Likewise.
2374 (vsx_stxvd2x2_le_<mode>): Likewise.
2375
cf47b929 23762014-06-06 Uros Bizjak <ubizjak@gmail.com>
2377
2378 PR target/61423
2379 * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
2380 define_insn_and_split pattern, merged from *floatunssi<mode>2_1
2381 and corresponding splitters. Zero extend general register
2382 or memory input operand to XMM temporary. Enable for
2383 TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
2384 (floatunssi<mode>2): Update expander predicate.
2385
bbf73e27 23862014-06-06 Vladimir Makarov <vmakarov@redhat.com>
2387
2388 PR rtl-optimization/61325
2389 * lra-constraints.c (process_address_1): Check scale equal to one
2390 to prevent transformation: base + scale * index => base + new_reg.
2391
9cc12bed 23922014-06-06 Richard Biener <rguenther@suse.de>
2393
2394 PR tree-optimization/59299
2395 * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
2396 a def operand.
2397 (nearest_common_dominator_of_uses): Likewise.
2398 (statement_sink_location): Adjust. Support sinking loads.
2399
63380ec1 24002014-06-06 Martin Jambor <mjambor@suse.cz>
2401
2402 * ipa-prop.c (get_place_in_agg_contents_list): New function.
2403 (build_agg_jump_func_from_list): Likewise.
2404 (determine_known_aggregate_parts): Renamed to
2405 determine_locally_known_aggregate_parts. Moved some functionality
2406 to the two functions above, removed bound checks.
2407
a7007121 24082014-06-06 James Greenhalgh <james.greenhalgh@arm.com>
2409
2410 * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
2411 * config/aarch64/aarch64.c (aarch64_move_pointer): New.
2412 (aarch64_progress_pointer): Likewise.
2413 (aarch64_copy_one_part_and_move_pointers): Likewise.
2414 (aarch64_expand_movmen): Likewise.
2415 * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
2416 * config/aarch64/aarch64.md (movmem<mode>): New.
2417
c820693e 24182014-06-06 Bingfeng Mei <bmei@broadcom.com>
2419
2420 * targhooks.c (default_add_stmt_cost): Call target specific
2421 hook instead of default one.
2422
89d0fbd4 24232014-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
2424
2425 * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
2426 endianness instead of host endianness.
2427 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
2428 comments.
2429
eac967db 24302014-06-06 Eric Botcazou <ebotcazou@adacore.com>
2431
2432 PR debug/53927
2433 * function.c (instantiate_decls): Process the saved static chain.
2434 (expand_function_start): If not optimizing, save the static chain
2435 onto the stack.
2436 * tree-nested.c (convert_all_function_calls): Always create the static
2437 chain for nested functions if not optimizing.
2438
ba54c62e 24392014-06-06 Eric Botcazou <ebotcazou@adacore.com>
2440
2441 * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
2442
b3083327 24432014-06-06 Richard Biener <rguenther@suse.de>
2444
2445 * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
2446 (construct_init_block): Likewise.
2447 (construct_exit_block): Likewise.
2448 (pass_expand::execute): Likewise.
2449 * graphite.c (graphite_transforms): Replace check for current_loops
2450 with a check for > 1 loops.
2451 (pass_graphite_transforms::execute): Adjust.
2452 * ipa-split.c (split_function): Remove check for current_loops.
2453 * omp-low.c (expand_parallel_call): Likewise.
2454 (expand_omp_for_init_counts): Likewise.
2455 (extract_omp_for_update_vars): Likewise.
2456 (expand_omp_for_generic): Likewise.
2457 (expand_omp_sections): Likewise.
2458 (expand_omp_target): Likewise.
2459 * tracer.c (tail_duplicate): Likewise.
2460 (pass_tracer::execute): Likewise.
2461 * trans-mem.c (expand_transaction): Likewise.
2462 * tree-complex.c (expand_complex_div_wide): Likewise.
2463 * tree-eh.c (lower_resx): Likewise.
2464 (cleanup_empty_eh_merge_phis): Likewise.
2465 * tree-predcom.c (run_tree_predictive_commoning): Replace check for
2466 current_loops with a check for > 1 loops.
2467 (pass_predcom::execute): Adjust.
2468 * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
2469 * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
2470 * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
2471 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
2472 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
2473 * tree-switch-conversion.c (process_switch): Likewise.
2474 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
2475 * tree-vrp.c (vrp_visit_phi_node): Likewise.
2476 (execute_vrp): Likewise.
2477 * ubsan.c (ubsan_expand_null_ifn): Likewise.
2478
0e7ae557 24792014-06-06 Eric Botcazou <ebotcazou@adacore.com>
2480
2481 * rtl.h (insn_location): Declare.
2482 * cfgcleanup.c (try_forward_edges): Compare the locus of locations
2483 with UNKNOWN_LOCATION.
2484 * emit-rtl.c (insn_location): New function.
2485 * final.c (notice_source_line): Check that the instruction has a
2486 location before retrieving it and use insn_location.
2487 * modulo-sched.c (loop_single_full_bb_p): Likewise.
2488 * print-rtl.c (print_rtx): Likewise.
2489
b037180f 24902014-06-06 Richard Biener <rguenther@suse.de>
2491
2492 * passes.def: Move 2nd VRP pass before phi-only-cprop.
2493
413fb820 24942014-06-06 Christian Bruel <christian.bruel@st.com>
2495
2496 PR tree-optimization/43934
b037180f 2497 * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
2498 cost.
413fb820 2499
c91b6d86 25002014-06-06 Richard Sandiford <rdsandiford@googlemail.com>
2501
2502 * ira-lives.c (single_reg_class): Add missing break. Explicitly
2503 return NO_REGS for extra address and memory constraints. Handle
2504 operands that match (or are equivalent to something that matches)
2505 extra constant constraints. Ignore other non-register operands.
2506
02114c95 25072014-06-06 Alan Modra <amodra@gmail.com>
2508
2509 PR target/61300
2510 * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
2511 * doc/tm.texi: Regenerate.
2512 * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
2513 Use throughout in place of REG_PARM_STACK_SPACE.
2514 * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
2515 "incoming" param. Pass to rs6000_function_parms_need_stack.
2516 (rs6000_function_parms_need_stack): Add "incoming" param, ignore
2517 prototype_p when incoming. Use function decl when incoming
2518 to handle K&R style functions.
2519 * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
2520 (INCOMING_REG_PARM_STACK_SPACE): Define.
2521
14a3093e 25222014-06-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
2523
2524 PR target/52472
2525 * cfgexpand.c (expand_debug_expr): Use address space of nested
2526 TREE_TYPE for ADDR_EXPR and MEM_REF.
2527
4b16a1ea 25282014-06-05 Jeff Law <law@redhat.com>
2529
2530 PR tree-optimization/61289
2531 * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
2532 DST_MAP parameters. Invalidate by walking all the SSA_NAME_VALUES
2533 looking for those which match LHS. All callers changed.
2534 (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
2535 parameters and code which manipulated them. All callers changed.
2536 (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
2537 and DST_MAP parameters. Simplify invalidation code by just calling
2538 invalidate_equivalences. All callers changed.
2539 (thread_across_edge): Simplify now that we don't need to maintain
2540 the map of equivalences to invalidate.
2541
7a66cc6b 25422014-06-05 Kai Tietz <ktietz@redhat.com>
2543 Richard Henderson <rth@redhat.com>
2544
2545 PR target/46219
2546 * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
2547 checking for !TARGET_X32.
2548 * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
2549 (sibcall_intern): New define_insn, plus required peepholes.
2550 (sibcall_pop_intern): Likewise.
2551 (sibcall_value_intern): Likewise.
2552 (sibcall_value_pop_intern): Likewise.
2553
ebb00042 25542014-06-05 Ilya Enkovich <ilya.enkovich@intel.com>
2555
2556 * tree-inline.c (tree_function_versioning): Check DF info existence
2557 before accessing it.
2558
ee32c719 25592014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
2560
2561 * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
2562 frame_size.
2563 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
2564 aarch64_frame hard_fp_offset and frame_size.
2565 (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
2566 frame_size; remove original_frame_size.
2567 (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
2568 (aarch64_initial_elimination_offset): Remove frame_size and
2569 offset. Use aarch64_frame frame_size.
2570
5286c9d9 25712014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
2572 Jiong Wang <jiong.wang@arm.com>
3f1c8dea 2573 Renlin <renlin.li@arm.com>
5286c9d9 2574
2575 * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
2576 initialization of R30 offset. Update offset. Iterate core
2577 regisers upto X30. Remove X29, X30 specific code.
2578
4fae7ffc 25792014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
2580 Jiong Wang <jiong.wang@arm.com>
2581
2582 * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
2583 (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
2584 (aarch64_register_saved_on_entry): Adjust test.
2585
a42e2676 25862014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
2587
2588 * config/aarch64/aarch64.h (machine_function): Move
2589 saved_varargs_size from here...
3f1c8dea 2590 (aarch64_frame): ... to here.
a42e2676 2591
2592 * config/aarch64/aarch64.c (aarch64_expand_prologue)
2593 (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
2594 (aarch64_initial_elimination_offset)
2595 (aarch64_setup_incoming_varargs): Adjust location of
2596 saved_varargs_size.
2597
37f9433c 25982014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
2599
2600 * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
2601 layout comment.
2602
c3440169 26032014-06-05 Jaydeep Patil <Jaydeep.Patil@imgtec.com>
2604 Prachi Godbole <Prachi.Godbole@imgtec.com>
2605
2606 * config/mips/mips-cpus.def: Add definition for p5600. Updated
2607 mips32r5 entry to use PROCESSOR_P5600.
2608 * config/mips/mips-tables.opt: Regenerate.
2609 * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
2610 * config/mips/mips.c (mips_fmadd_bypass): New function.
2611 (mips_rtx_cost_data): Add costs for p5600.
2612 (mips_issue_rate): Add support for p5600.
2613 (mips_multipass_dfa_lookahead): Likewise.
2614 * config/mips/mips.h (TUNE_P5600): New define.
2615 (TUNE_MACC_CHAINS): Add TUNE_P5600.
2616 (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
2617 * config/mips/mips.md: Include p5600.md.
2618 (processor): Add p5600.
2619 * config/mips/p5600.md: New file.
2620
bafd306d 26212014-06-05 Evgeny Stupachenko <evstupac@gmail.com>
2622
2623 * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
2624 * config/i386/predicates.md (palignr_operand): New.
2625 Indicates if permutation is suitable for palignr instruction.
2626
3c7bf6da 26272014-06-05 Yuri Rumyantsev <ysrumyan@gmail.com>
2628
2629 PR tree-optimization/61319
2630 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
2631 stmt belongs to loop.
2632
3ed3b9c9 26332014-06-05 Richard Biener <rguenther@suse.de>
2634
2635 * gimplify.c (create_tmp_from_val): Remove is_formal parameter
2636 and set DECL_GIMPLE_REG_P unconditionally if appropriate.
2637 (lookup_tmp_var): Adjust.
2638 (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
2639
951a3f72 26402014-06-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2641
2642 * config/arm/arm.md (enabled): Disable opt_enabled attribute.
2643
32dc1512 26442014-06-05 Marek Polacek <polacek@redhat.com>
2645
2646 PR c/49706
2647 * doc/invoke.texi: Document -Wlogical-not-parentheses.
2648
6da874c9 26492014-06-04 Tom de Vries <tom@codesourcery.com>
2650
2651 * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
2652 CONST_INT.
2653
6c96fe34 26542014-06-04 Marc Glisse <marc.glisse@inria.fr>
2655
2656 PR tree-optimization/61385
2657 * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
2658
8a109010 26592014-06-04 Bernd Schmidt <bernds@codesourcery.com>
2660
2661 * lto-wrapper.c (fatal, fatal_perror): Remove functions. All callers
2662 changed to use fatal_error.
2663 (main): Ensure lto_wrapper_cleanup is run atexit.
2664
67e22af9 26652014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
2666
2667 * lra-constraints.c (valid_address_p): Move earlier in file.
2668 (address_eliminator): New structure.
2669 (satisfies_memory_constraint_p): New function.
2670 (satisfies_address_constraint_p): Likewise.
2671 (process_alt_operands, process_address, curr_insn_transform): Use them.
2672
92b4b904 26732014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
2674
2675 * lra-int.h (lra_static_insn_data): Make operand_alternative a
2676 const pointer.
2677 (target_lra_int, default_target_lra_int, this_target_lra_int)
2678 (op_alt_data): Delete.
2679 * lra.h (lra_init): Delete.
2680 * lra.c (default_target_lra_int, this_target_lra_int): Delete.
2681 (init_insn_code_data_once): Remove op_alt_data handling.
2682 (finish_insn_code_data_once): Likewise.
2683 (init_op_alt_data): Delete.
2684 (get_static_insn_data): Initialize operand_alternative to null.
2685 (free_insn_recog_data): Cast operand_alternative before freeing it.
2686 (setup_operand_alternative): Take the operand_alternative as
2687 parameter and assume it isn't already cached in the static
2688 insn data.
2689 (lra_set_insn_recog_data): Update accordingly.
2690 (lra_init): Delete.
2691 * ira.c (ira_init): Don't call lra_init.
2692 * target-globals.h (this_target_lra_int): Declare.
2693 (target_globals): Remove lra_int.
2694 (restore_target_globals): Update accordingly.
2695 * target-globals.c: Don't include lra-int.h.
2696 (default_target_globals, save_target_globals): Remove lra_int.
2697
8eaaac4d 26982014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
2699
2700 * recog.h (operand_alternative): Convert reg_class, reject,
2701 matched and matches into bitfields.
2702 (preprocess_constraints): New overload.
2703 (preprocess_insn_constraints): New function.
2704 (preprocess_constraints): Take the insn as parameter.
2705 (recog_op_alt): Change into a pointer.
2706 (target_recog): Add x_op_alt.
2707 * recog.c (asm_op_alt): New variable.
2708 (recog_op_alt): Change into a pointer.
2709 (preprocess_constraints): New overload, replacing the old function
2710 definition with one that doesn't use global state.
2711 (preprocess_insn_constraints): New function.
2712 (preprocess_constraints): Use them. Take the insn as parameter.
2713 Use asm_op_alt for asms.
2714 (recog_init): Free existing x_op_alt entries.
2715 * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
2716 pointer const.
2717 (make_early_clobber_and_input_conflicts): Likewise.
2718 (process_bb_node_lives): Pass the insn to process_constraints.
2719 * reg-stack.c (check_asm_stack_operands): Likewise.
2720 (subst_asm_stack_regs): Likewise.
2721 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
2722 * regrename.c (build_def_use): Likewise.
2723 * sched-deps.c (sched_analyze_insn): Likewise.
2724 * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
2725 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
2726 (note_invalid_constants): Likewise.
2727 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
2728 (ix86_legitimate_combined_insn): Make operand_alternative pointer
2729 const.
2730
b5b87913 27312014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
2732
2733 * recog.c (preprocess_constraints): Don't skip disabled alternatives.
2734 * ira-lives.c (check_and_make_def_conflict): Check for disabled
2735 alternatives.
2736 (make_early_clobber_and_input_conflicts): Likewise.
2737 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
2738
89a7a6a5 27392014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
2740
2741 * recog.h (alternative_class): New function.
2742 (which_op_alt): Return a const recog_op_alt.
2743 * reg-stack.c (check_asm_stack_operands): Update type accordingly.
2744 (subst_asm_stack_regs): Likewise.
2745 * config/arm/arm.c (note_invalid_constants): Likewise.
2746 * regcprop.c (copyprop_hardreg_forward_1): Likewise. Don't modify
2747 the operand_alternative; use alternative class instead.
2748 * sel-sched.c (get_reg_class): Likewise.
2749 * regrename.c (build_def_use): Likewise.
2750 (hide_operands, restore_operands, record_out_operands): Update type
2751 accordingly.
2752
757fefec 27532014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
2754
2755 * recog.h (recog_op_alt): Convert to a flat array.
2756 (which_op_alt): New function.
2757 * recog.c (recog_op_alt): Convert to a flat array.
2758 (preprocess_constraints): Update accordingly, grouping all
2759 operands of the same alternative together, rather than the
2760 other way around.
2761 * ira-lives.c (check_and_make_def_conflict): Likewise.
2762 (make_early_clobber_and_input_conflicts): Likewise.
2763 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
2764 * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
2765 (subst_asm_stack_regs): Likewise.
2766 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
2767 * regrename.c (hide_operands, record_out_operands): Likewise.
2768 (build_def_use): Likewise.
2769 * sel-sched.c (get_reg_class): Likewise.
2770 * config/arm/arm.c (note_invalid_constants): Likewise.
2771
10621300 27722014-06-04 Jason Merrill <jason@redhat.com>
2773
2774 PR c++/51253
2775 PR c++/61382
2776 * gimplify.c (gimplify_arg): Non-static.
2777 * gimplify.h: Declare it.
2778
cf0c5d93 27792014-06-04 Richard Biener <rguenther@suse.de>
2780
2781 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
2782 TREE_PUBLIC and DECL_EXTERNAL decls.
2783
1aafbb7e 27842014-06-04 Matthew Fortune <matthew.fortune@imgtec.com>
2785
476a9357 2786 * regcprop.c (copyprop_hardreg_forward_1): Account for
1aafbb7e 2787 HARD_REGNO_CALL_PART_CLOBBERED.
2788
d515e136 27892014-06-04 Richard Biener <rguenther@suse.de>
2790
2791 * configure.ac: Check whether the underlying type of int64_t
2792 is long or long long.
2793 * configure: Regenerate.
2794 * config.in: Likewise.
2795 * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
2796 (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
2797
88114c9f 27982014-06-04 Richard Biener <rguenther@suse.de>
2799
2800 PR tree-optimization/60098
2801 * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
2802 we hit a kill.
2803 (dse_optimize_stmt): Simplify, now that we found a kill
2804 earlier.
2805
2e333543 28062014-06-04 Richard Biener <rguenther@suse.de>
2807
2808 * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
2809 of accesses with non-invariant address.
2810
cb8994e9 28112014-06-04 Martin Liska <mliska@suse.cz>
2812
2813 * cgraph.h (cgraph_make_wrapper): New function introduced.
2814 * cgraphunit.c (cgraph_make_wrapper): The function implementation.
2815 * ipa-inline.h (inline_analyze_function): The function is global.
2816 * ipa-inline-analysis.c (inline_analyze_function): Likewise.
2817
72c984f2 28182014-06-04 Martin Liska <mliska@suse.cz>
2819
2820 * tree.h (private_lookup_attribute_starting): New function.
2821 (lookup_attribute_starting): Likewise.
2822 * tree.c (private_lookup_attribute_starting): Likewise.
2823
46e5ad0c 28242014-06-04 Martin Liska <mliska@suse.cz>
2825
2826 * cgraph.h (expand_thunk): New argument added.
2827 (address_taken_from_non_vtable_p): New global function.
2828 * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
2829 * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
2830 * cgraphunit.c (analyze_function): Likewise.
2831 (assemble_thunks_and_aliases): Argument added to call.
2832 (expand_thunk): New argument forces to produce GIMPLE thunk.
2833
a06672d4 28342014-06-04 Martin Liska <mliska@suse.cz>
2835
2836 * coverage.h (coverage_compute_cfg_checksum): Argument added.
2837 * coverage.c (coverage_compute_cfg_checksum): Likewise.
2838 * profile.c (branch_prob): Likewise.
2839
5cb7c8cf 28402014-06-04 Martin Jambor <mjambor@suse.cz>
2841
2842 PR ipa/61340
2843 * ipa-pure-const.c (propagate_pure_const): Add unreachable default
2844 handler for switch on an ipa_ref_use enum.
2845 * ipa-reference.c (analyze_function): Likewise.
2846
cc9e6e20 28472014-06-04 Kai Tietz <ktietz@redhat.com>
2848
2849 * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
2850 from old call-instruction.
2851
8013ad1b 28522014-06-04 Bin Cheng <bin.cheng@arm.com>
2853
2854 * config/aarch64/aarch64.c (aarch64_classify_address)
2855 (aarch64_legitimize_reload_address): Support full addressing modes
2856 for vector modes.
2857 * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
2858 (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
2859
2f76a745 28602014-06-03 Andrew Pinski <apinski@cavium.com>
2861
2862 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
2863 for OP0.
2864
28652014-06-03 Andrew Pinski <apinski@cavium.com>
39f4504d 2866
2867 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
2868 (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
2869
c20a94d3 28702014-06-03 Kai Tietz <ktietz@redhat.com>
2871
2872 * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
2873 for 64-bit ms-abi.
2874
6da869e1 28752014-06-03 Dehao Chen <dehao@google.com>
2876
2877 * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
2878 the same loop.
2879
c69ec07d 28802014-06-03 Marek Polacek <polacek@redhat.com>
2881
2882 PR c/60439
2883 * doc/invoke.texi: Document -Wswitch-bool.
2884 * function.c (stack_protect_epilogue): Cast controlling expression of
2885 the switch to int.
2886 * gengtype.c (walk_type): Generate switch expression with its
2887 controlling expression cast to int.
2888
28892014-06-03 Vishnu K S <Vishnu.k_s@atmel.com>
b4b0f2ca 2890
2891 * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
2892 and attiny841.
2893 * config/avr/avr-tables.opt: Regenerate.
2894 * config/avr/t-multilib: Regenerate.
2895 * doc/avr-mmcu.texi: Regenerate.
2896
c69ec07d 28972014-06-03 Vishnu K S <vishnu.k_s@atmel.com>
2898 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
b4b0f2ca 2899
2900 * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
2901 (ata6617c, ata664251): Add new avr35 devices.
2902 (ata6612c): Add new avr4 device.
2903 (ata6613c, ata6614q): Add new avr5 devices.
2904 * config/avr/avr-tables.opt: Regenerate.
2905 * config/avr/t-multilib: Regenerate.
2906 * doc/avr-mmcu.texi: Regenerate.
2907
42b87b5f 29082014-06-03 Alan Lawrence <alan.lawrence@arm.com>
2909
2910 * gcc/config/aarch64/aarch64-builtins.c
2911 (aarch64_types_binop_ssu_qualifiers): New static data.
2912 (TYPES_BINOP_SSU): Define.
2913 * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
2914 urshr_n, ushll_n): Use appropriate unsigned qualifiers.
2915 * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
2916 vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
2917 vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
2918 vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
2919 vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
2920 vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
2921 vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
2922 suffix to builtin function name, remove cast.
2923 (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
2924 vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
2925 vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
2926
201e54b7 29272014-06-03 Alan Lawrence <alan.lawrence@arm.com>
2928
2929 * gcc/config/aarch64/aarch64-builtins.c
2930 (aarch64_types_binop_uus_qualifiers,
2931 aarch64_types_shift_to_unsigned_qualifiers,
2932 aarch64_types_unsigned_shiftacc_qualifiers): Define.
2933 * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
2934 uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
2935 sqshlu_n, uqshl_n): Update qualifiers.
2936 * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
2937 vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
2938 vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
2939 vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
2940 vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
2941 vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
2942 vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
2943 vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
2944 vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
2945 vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
2946 vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
2947 vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
2948 vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
2949 vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
2950 vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
2951 vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
2952 vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
2953 vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
2954 vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
2955 vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
2956 vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
2957 vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
2958 vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
2959 vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
2960 vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
2961 vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
2962 vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
2963
48ea9269 29642014-06-03 Teresa Johnson <tejohnson@google.com>
2965
2966 * tree-sra.c (modify_function): Record caller nodes after rebuild.
2967
1d4adab2 29682014-06-02 Jason Merrill <jason@redhat.com>
2969
2970 PR c++/61020
2971 * varpool.c (ctor_for_folding): Handle uninitialized vtables.
2972
6bfe261e 29732014-06-03 Alan Lawrence <alan.lawrence@arm.com>
2974
2975 * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
2976 location == 0.
2977
5f5fccf7 29782014-06-03 Alan Lawrence <alan.lawrence@arm.com>
2979
2980 * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
2981 New pattern.
2982 * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
2983 (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
2984 * config/aarch64/iterators.md (REVERSE): New iterator.
2985 (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
2986 (rev_op): New int_attribute.
2987 * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
2988 vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
2989 vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
2990 vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
2991 vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
2992 vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
2993 vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
2994 Replace temporary __asm__ with __builtin_shuffle.
2995
cf47b929 29962014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
32ac2387 2997
2998 * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
2999 mips64r5.
3000 * config/mips/mips-tables.opt: Regenerate.
3001 * config/mips/mips.c (mips_compute_frame_info): Changed if statement
3002 to use mips_isa_rev rather than ISA_MIPS32R2.
3003 * config/mips/mips.h (ISA_MIPS32R3): New define.
3004 (ISA_MIPS32R5): New define.
3005 (ISA_MIPS64R3): New define.
3006 (ISA_MIPS64R5): New define.
cf47b929 3007 (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
3008 ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
32ac2387 3009 (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
3010 and mips64r5.
3011 (MIPS_ISA_SYNCI_SPEC): Likewise.
3012 (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
3013 (LINK_SPEC): Added mips32r3 and mips32r5.
3014 * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
3015 to mips32r2; and mips64r3 and mips64r5 to mips64r2.
3016 * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
3017 * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
3018 * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
3019 * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
3020 * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
3021
c7078bf2 30222014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
3023
3024 * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
3025 options.
3026 * config/mips/mips.opt (mxpa): New option.
cf47b929 3027 * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
c7078bf2 3028 assembler.
3029
7c1c3c97 30302014-06-03 Martin Jambor <mjambor@suse.cz>
3031
3032 PR ipa/61160
3033 * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
3034 thunks.
3035
ee054e83 30362014-06-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
3037
3038 PR tree-optimization/61328
3039 * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
3040 initialization from find_bswap_or_nop_1.
3041 (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
3042 in source_expr2 before using the size value the function sets. Also
3043 make use of init_symbolic_number () in both the old place and
3044 find_bswap_or_nop_load () to avoid reading uninitialized memory when
3045 doing recursion in the GIMPLE_BINARY_RHS case.
3046
ab8f103c 30472014-06-03 Richard Biener <rguenther@suse.de>
3048
3049 PR tree-optimization/61383
3050 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
3051 stmts can't trap.
3052
dd41ed59 30532014-06-03 Richard Sandiford <rdsandiford@googlemail.com>
3054
3055 * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
3056 (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
3057 (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
3058 (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
3059 in this file.
3060 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
3061 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
3062 * system.h: ...here and make it unconditional.
3063 * target.def (conditional_register_usage): Mention
3064 define_register_constraint instead of old-style constraint macros.
3065 * doc/tm.texi.in: Remove documentation for old-style constraint macros.
3066 * doc/tm.texi: Regenerate.
3067 * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
3068 protected by !USE_MD_CONSTRAINTS.
3069 * config/frv/frv.md: Remove quote from old version of documentation.
3070 * config/frv/frv.c (frv_conditional_register_usage): Likewise.
3071 * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
3072 CONST_DOUBLE_OK_FOR_LETTER.
3073 * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
3074
6cd01217 30752014-06-02 Andrew Pinski <apinski@cavium.com>
cf47b929 3076
00889865 3077 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
3078 /lib/ld-linux32-aarch64.so.1 is used for ILP32.
6cd01217 3079 (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
3080 file whose name depends on -mabi= and -mbig-endian.
00889865 3081 * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
3082 Handle LP64 better and handle ilp32 too.
6cd01217 3083 (MULTILIB_OPTIONS): Delete.
3084 (MULTILIB_DIRNAMES): Delete.
3085
f7715905 30862014-06-02 Andrew MacLeod <amacleod@redhat.com>
3087
3088 * expr.h: Remove prototypes of functions defined in builtins.c.
3089 * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
3090 Remove prototypes of functions defined in builtins.c.
3091 * builtins.h: Update prototype list to include all exported functions.
3092 * builtins.c: (default_libc_has_function, gnu_libc_has_function,
3093 no_c99_libc_has_function): Move to targhooks.c
3094 (build_string_literal, build_call_expr_loc_array,
3095 build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
3096 to tree.c.
3097 (expand_builtin_object_size, fold_builtin_object_size): Make static.
3098 * targhooks.c (default_libc_has_function, gnu_libc_has_function,
3099 no_c99_libc_has_function): Relocate from builtins.c.
3100 * tree.c: Include builtins.h.
3101 (build_call_expr_loc_array, build_call_expr_loc_vec,
3102 build_call_expr_loc, build_call_expr, build_string_literal): Relocate
3103 from builtins.c.
3104 * fold-const.h (fold_fma): Move prototype to builtins.h.
3105 * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
3106 * asan.c: Include builtins.h.
3107 * cfgexpand.c: Likewise.
3108 * convert.c: Likewise.
3109 * emit-rtl.c: Likewise.
3110 * except.c: Likewise.
3111 * expr.c: Likewise.
3112 * fold-const.c: Likewise.
3113 * gimple-fold.c: Likewise.
3114 * gimple-ssa-strength-reduction.c: Likewise.
3115 * gimplify.c: Likewise.
3116 * ipa-inline.c: Likewise.
3117 * ipa-prop.c: Likewise.
3118 * lto-streamer-out.c: Likewise.
3119 * stmt.c: Likewise.
3120 * tree-inline.c: Likewise.
3121 * tree-object-size.c: Likewise.
3122 * tree-sra.c: Likewise.
3123 * tree-ssa-ccp.c: Likewise.
3124 * tree-ssa-forwprop.c: Likewise.
3125 * tree-ssa-loop-ivcanon.c: Likewise.
3126 * tree-ssa-loop-ivopts.c: Likewise.
3127 * tree-ssa-math-opts.c: Likewise.
3128 * tree-ssa-reassoc.c: Likewise.
3129 * tree-ssa-threadedge.c: Likewise.
3130 * tree-streamer-in.c: Likewise.
3131 * tree-vect-data-refs.c: Likewise.
3132 * tree-vect-patterns.c: Likewise.
3133 * tree-vect-stmts.c: Likewise.
3134 * config/aarch64/aarch64.c: Likewise.
3135 * config/alpha/alpha.c: Likewise.
3136 * config/arc/arc.c: Likewise.
3137 * config/arm/arm.c: Likewise.
3138 * config/avr/avr.c: Likewise.
3139 * config/bfin/bfin.c: Likewise.
3140 * config/c6x/c6x.c: Likewise.
3141 * config/cr16/cr16.c: Likewise.
3142 * config/cris/cris.c: Likewise.
3143 * config/epiphany/epiphany.c: Likewise.
3144 * config/fr30/fr30.c: Likewise.
3145 * config/frv/frv.c: Likewise.
3146 * config/h8300/h8300.c: Likewise.
3147 * config/i386/i386.c: Likewise.
3148 * config/i386/winnt.c: Likewise.
3149 * config/ia64/ia64.c: Likewise.
3150 * config/iq2000/iq2000.c: Likewise.
3151 * config/lm32/lm32.c: Likewise.
3152 * config/m32c/m32c.c: Likewise.
3153 * config/m32r/m32r.c: Likewise.
3154 * config/m68k/m68k.c: Likewise.
3155 * config/mcore/mcore.c: Likewise.
3156 * config/mep/mep.c: Likewise.
3157 * config/microblaze/microblaze.c: Likewise.
3158 * config/mips/mips.c: Likewise.
3159 * config/mmix/mmix.c: Likewise.
3160 * config/mn10300/mn10300.c: Likewise.
3161 * config/moxie/moxie.c: Likewise.
3162 * config/msp430/msp430.c: Likewise.
3163 * config/nds32/nds32.c: Likewise.
3164 * config/pa/pa.c: Likewise.
3165 * config/pdp11/pdp11.c: Likewise.
3166 * config/picochip/picochip.c: Likewise.
3167 * config/rl78/rl78.c: Likewise.
3168 * config/rs6000/rs6000.c: Likewise.
3169 * config/rx/rx.c: Likewise.
3170 * config/s390/s390.c: Likewise.
3171 * config/score/score.c: Likewise.
3172 * config/sh/sh.c: Likewise.
3173 * config/sparc/sparc.c: Likewise.
3174 * config/spu/spu.c: Likewise.
3175 * config/stormy16/stormy16.c: Likewise.
3176 * config/tilegx/tilegx.c: Likewise.
3177 * config/tilepro/tilepro.c: Likewise.
3178 * config/v850/v850.c: Likewise.
3179 * config/vax/vax.c: Likewise.
3180 * config/xtensa/xtensa.c: Likewise.
3181
19c83bfb 31822014-06-02 Jeff Law <law@redhat.com>
3183
3184 PR rtl-optimization/61094
3185 * ree.c (combine_reaching_defs): Do not reextend an insn if it
3186 was marked as do_no_reextend. If a copy is needed to eliminate
3187 an extension, then mark it as do_not_reextend.
3188
7c2e48e4 31892014-06-02 Marcus Shawcroft <marcus.shawcroft@arm.com>
3190
3191 * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
3192
90449b57 31932014-06-02 Richard Henderson <rth@redhat.com>
3194
3195 PR target/61336
3196 * config/alpha/alpha.c (print_operand_address): Allow symbolic
3197 addresses inside asms. Use output_operand_lossage instead of
3198 gcc_unreachable.
3199
e1dbb208 32002014-06-02 Uros Bizjak <ubizjak@gmail.com>
3201
3202 PR target/61239
3203 * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
3204 GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
3205
16a5eb2d 32062014-06-02 Tom de Vries <tom@codesourcery.com>
3207
3208 * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
3209 case that x has VOIDmode.
3210
4be04e56 32112014-06-02 Bernd Schmidt <bernds@codesourcery.com>
3212
3213 * varasm.c (copy_constant): Delete function.
3214 (build_constant_desc): Don't call it.
3215
e6dd3afa 32162014-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3217
3218 PR target/61154
3219 * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
3220 * config/arm/arm.md (mov64 splitter): Replace const_double_operand
3221 with immediate_operand.
3222
a99cebb7 32232014-06-02 Andreas Schwab <schwab@suse.de>
3224
3225 * config/ia64/ia64.c
3226 (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
3227 pending_data_specs first.
3228
2eb57bc3 32292014-06-02 Richard Biener <rguenther@suse.de>
3230
3231 PR tree-optimization/61378
3232 * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
3233 valueized_anything.
3234
bfc603d6 32352014-06-01 Uros Bizjak <ubizjak@gmail.com>
3236
3237 * config/i386/constraints.md (Bw): Rename from 'w'.
3238 (Bz): Rename from 'z'.
3239 * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
3240
31916c59 32412014-06-01 Kai Tietz <ktietz@redhat.com>
3242
3243 PR target/61377
bfc603d6 3244 * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
3245 * config/i386/i386.md (sibcall_insn_operand): Use Bs
3246 instead of m constraint.
31916c59 3247
47a6c561 32482014-05-31 Andreas Schwab <schwab@linux-m68k.org>
3249
3250 * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
3251 a separate alternative where the scratch operand 2 is marked as
3252 early clobber.
3253
7fdcd7bc 32542014-05-31 Kugan Vivekanandarajah <kuganv@linaro.org>
3255
3256 * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
3257 (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
3258 (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
3259 and __builtins_arm_get_fpscr.
3260 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
3261 __builtins_arm_get_fpscr.
3262 (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
3263 __builtins_arm_ldfpscr.
3264 (arm_atomic_assign_expand_fenv): New function.
3265 * config/arm/vfp.md (set_fpscr): New pattern.
3266 (get_fpscr) : Likewise.
3267 * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
3268 VUNSPEC_SET_FPSCR.
3269 * doc/extend.texi (AARCH64 Built-in Functions) : Document
3270 __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
3271
86d3a572 32722014-05-30 Jakub Jelinek <jakub@redhat.com>
3273
93e990a3 3274 * asan.c (report_error_func): Add SLOW_P argument, use
3275 BUILT_IN_ASAN_*_N if set.
3276 (build_check_stmt): Likewise.
3277 (instrument_derefs): If T has insufficient alignment,
3278 force same handling as for odd sizes.
3279
86d3a572 3280 * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
3281 BUILT_IN_ASAN_REPORT_STORE_N): New.
3282 * asan.c (struct asan_mem_ref): Change access_size type to
3283 HOST_WIDE_INT.
3284 (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
3285 update_mem_ref_hash_table): Likewise.
3286 (asan_mem_ref_hasher::hash): Hash in a HWI.
3287 (report_error_func): Change size_in_bytes argument to HWI.
3288 Use *_N builtins if size_in_bytes is larger than 16 or not power of
3289 two.
3290 (build_shadow_mem_access): New function.
3291 (build_check_stmt): Use it. Change size_in_bytes argument to HWI.
3292 Handle size_in_bytes not power of two or larger than 16.
3293 (instrument_derefs): Don't give up if size_in_bytes is not
3294 power of two or is larger than 16.
3295
3d1eef54 32962014-05-30 Kai Tietz <ktietz@redhat.com>
3297
3298 PR target/60104
3299 * config/i386/i386.c (x86_output_mi_thunk): Add memory case
3300 for sibling-tail-calls.
3301 * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
3302 to its use.
3303 * config/i386/predicates.md (sibcall_memory_operand): New predicate.
3304 (sibcall_insn_operand): Add check for sibcall_memory_operand.
3305
8e796310 33062014-05-30 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
3307
3308 * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
3309 * config/avr/avr-tables.opt: Regenerate.
3310 * config/avr/t-multilib: Regenerate.
3311 * doc/avr-mmcu.texi: Regenerate.
3312
8776d2d7 33132014-05-30 Ian Lance Taylor <iant@google.com>
3314
3315 * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
3316 target("sse").
3317
c86468ff 33182014-05-30 Tom de Vries <tom@codesourcery.com>
3319
3320 * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
3321 Redefine as true.
3322
f2cc6708 33232014-05-30 Tom de Vries <tom@codesourcery.com>
3324
3325 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
3326 * lra.c (initialize_lra_reg_info_element): Add init of
3327 actual_call_used_reg_set field.
3328 (lra): Call lra_create_live_ranges before lra_inheritance for
3329 -fuse-caller-save.
3330 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
3331 -fuse-caller-save.
3332 * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
3333 instead of call_used_reg_set for -fuse-caller-save.
3334 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
3335
def44e01 33362014-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3337
3338 * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
3339 to mov_imm.
3340 * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
3341
e0d2c864 33422014-05-30 Richard Sandiford <rdsandiford@googlemail.com>
3343
3344 * ira.c (ira_get_dup_out_num): Check for output operands at
3345 the start of the loop. Handle cases where an included alternative
3346 follows an excluded one.
3347
f6edf584 33482014-05-29 Mike Stump <mikestump@comcast.net>
3349
3350 PR debug/61352
3351 * collect2.c (maybe_run_lto_and_relink): Be sure to always run
3352 post ld passes when lto is used.
3353
dcd5393f 33542014-05-29 Vladimir Makarov <vmakarov@redhat.com>
3355
3356 PR rtl-optimization/61325
e1dbb208 3357 * lra-constraints.c (process_address): Rename to process_address_1.
dcd5393f 3358 (process_address): New function.
3359
582dc50a 33602014-05-29 Alan Lawrence <alan.lawrence@arm.com>
3361
3362 * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
3363 TYPES_BINOPV): New static data.
e1dbb208 3364 * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
3365 New builtin.
3366 * config/aarch64/aarch64-simd.md (aarch64_ext,
3367 aarch64_im_lane_boundsi): New patterns.
582dc50a 3368 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
3369 patterns for EXT.
3370 (aarch64_evpc_ext): New function.
3371
3372 * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
3373
3374 * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
3375 vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
3376 vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
3377 vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
3378 vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
3379
dd9571fd 33802014-05-29 Tom de Vries <tom@codesourcery.com>
3381
3382 * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
3383
0abea32c 33842014-05-29 Richard Earnshaw <rearnsha@arm.com>
e1dbb208 3385 Richard Sandiford <rdsandiford@googlemail.com>
0abea32c 3386
e1dbb208 3387 * arm/iterators.md (shiftable_ops): New code iterator.
3388 (t2_binop0, arith_shift_insn): New code attributes.
0abea32c 3389 * arm/predicates.md (shift_nomul_operator): New predicate.
e1dbb208 3390 * arm/arm.md (insn_enabled): Delete.
3391 (enabled): Remove insn_enabled test.
3392 (*arith_shiftsi): Delete. Replace with ...
3393 (*<arith_shift_insn>_multsi): ... new pattern.
0abea32c 3394 (*<arith_shift_insn>_shiftsi): ... new pattern.
3395 * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
3396
9d0ddb1d 33972014-05-29 Radovan Obradovic <robradovic@mips.com>
e1dbb208 3398 Tom de Vries <tom@codesourcery.com>
9d0ddb1d 3399
3400 * config/mips/mips.h (POST_CALL_TMP_REG): Define.
3401 * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
3402 clobber.
3403 (mips_split_call): Use POST_CALL_TMP_REG.
3404 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
3405
e00f9348 34062014-05-29 Tom de Vries <tom@codesourcery.com>
3407
3408 * final.c (collect_fn_hard_reg_usage): Guard variable declaration
3409 with #ifdef STACK_REGS.
3410
1a344a3f 34112014-05-28 Jan Hubicka <hubicka@ucw.cz>
3412
3413 * varasm.c (get_variable_section): Walk aliases.
3414 (place_block_symbol): Walk aliases.
3415
c2061482 34162014-05-28 Tom de Vries <tom@codesourcery.com>
3417
3418 Revert:
3419 2014-05-28 Tom de Vries <tom@codesourcery.com>
3420
3421 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
3422 * lra.c (initialize_lra_reg_info_element): Add init of
3423 actual_call_used_reg_set field.
3424 (lra): Call lra_create_live_ranges before lra_inheritance for
3425 -fuse-caller-save.
3426 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
3427 -fuse-caller-save.
e1dbb208 3428 * lra-constraints.c (need_for_call_save_p): Use
3429 actual_call_used_reg_set instead of call_used_reg_set for
3430 -fuse-caller-save.
c2061482 3431 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
3432
205c3b0a 34332014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
3434
3435 * doc/md.texi: Document that the % constraint character must
3436 be at the beginning of the string.
3437 * genoutput.c (validate_insn_alternatives): Check that '=',
3438 '+' and '%' only appear at the beginning of a constraint.
3439 * ira.c (commutative_constraint_p): Delete.
3440 (ira_get_dup_out_num): Expect the '%' commutativity marker to be
3441 at the start of the string.
3442 * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
3443 duplicate '='s.
3444 * config/arm/neon.md (bicdi3_neon): Likewise.
3445 * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
3446 (slt_si, sltu_si): Likewise.
3447 * config/vax/vax.md (sbcdi3): Likewise.
3448 * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
3449 * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
3450 (mul64): Move '%' to beginning of constraint.
3451 * config/arm/arm.md (*xordi3_insn): Likewise.
3452 * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
3453 (xorsi3): Likewise.
3454
75b115f4 34552014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
3456
3457 * doc/md.texi: Document the restrictions on the "enabled" attribute.
3458
1d9ca4f0 34592014-05-28 Jason Merrill <jason@redhat.com>
3460
3461 PR c++/47202
3462 * cgraph.h (symtab_node::get_comdat_group_id): New.
3463 * cgraphunit.c (analyze_functions): Call it.
3464 * symtab.c (dump_symtab_node): Likewise.
3465 * tree.c (decl_comdat_group_id): New.
3466 * tree.h: Declare it.
3467 * lto-streamer-out.c (write_symbol): Use it.
3468 * trans-mem.c (ipa_tm_create_version_alias): Likewise.
3469
fdfe65e2 34702014-05-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3471
3472 PR bootstrap/PR61146
3473 * wide-int.cc: Do not include longlong.h when compiling with clang.
3474
0d4c8cda 34752014-05-28 Richard Biener <rguenther@suse.de>
3476
3477 * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
3478 * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
3479 (vrp_visit_assignment_or_call): Print less vertical space.
3480 (vrp_visit_stmt): Likewise.
3481 (vrp_visit_phi_node): Likewise. For a PHI argument with
3482 VR_VARYING range consider recording it as copy.
3483
09fb1a0a 34842014-05-28 Richard Biener <rguenther@suse.de>
3485
3486 Revert
3487 2014-05-28 Richard Biener <rguenther@suse.de>
3488
3489 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
3490
dbe2840a 34912014-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
3492
3493 * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
3494 sufficiently aligned and an offset is used at the same time.
3495 (expand_expr_real_1): Likewise.
3496
753a9c15 34972014-05-28 Richard Biener <rguenther@suse.de>
3498
3499 PR middle-end/61045
3500 * fold-const.c (fold_comparison): When folding
3501 X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
3502 the sign of the remaining constant operand stays the same.
3503
9227ba81 35042014-05-28 Kaushik Phatak <kaushik.phatak@kpit.com>
3505
3506 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
3507 __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
3508 (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
3509 to the assembler.
e1dbb208 3510 (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
9227ba81 3511 * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
3512 (m32bit-doubles) Likewise.
3513 * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
3514 * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
3515 option for RL78.
3516
53037a4d 35172014-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3518
3519 * configure.ac ($gcc_cv_ld_clearcap): New test.
3520 * configure: Regenerate.
3521 * config.in: Regenerate.
3522 * config/sol2.opt (mclear-hwcap): New option.
3523 * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
3524 * config/sol2-clearcap.map: Moved here from
3525 testsuite/gcc.target/i386/clearcap.map.
3526 * config/sol2-clearcapv2.map: Move here from
3527 gcc.target/i386/clearcapv2.map.
3528 * config/t-sol2 (install): Depend on install-clearcap-map.
3529 (install-clearcap-map): New target.
3530 * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
3531 -mclear-hwcap.
3532
f1714fa0 35332014-05-28 Richard Biener <rguenther@suse.de>
3534
3535 * hwint.h (*_HALF_WIDE_INT*): Move to ...
3536 * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
3537 ... here and remove the rest.
3538 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
3539
0bf90b7b 35402014-05-28 Richard Biener <rguenther@suse.de>
3541
3542 PR tree-optimization/61335
3543 * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
3544 new range fails, drop to varying.
3545
f4953d40 35462014-05-28 Olivier Hainque <hainque@adacore.com>
3547
3548 * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
3549 (CPP_SPEC): Add entry for -mcpu=8548.
3550 * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
3551 * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
3552
e5d9420b 35532014-05-28 Tom de Vries <tom@codesourcery.com>
3554
3555 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
3556 * lra.c (initialize_lra_reg_info_element): Add init of
3557 actual_call_used_reg_set field.
3558 (lra): Call lra_create_live_ranges before lra_inheritance for
3559 -fuse-caller-save.
3560 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
3561 -fuse-caller-save.
e1dbb208 3562 * lra-constraints.c (need_for_call_save_p): Use
3563 actual_call_used_reg_set instead of call_used_reg_set for
3564 -fuse-caller-save.
e5d9420b 3565 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
3566
c72a450a 35672014-05-28 Radovan Obradovic <robradovic@mips.com>
e1dbb208 3568 Tom de Vries <tom@codesourcery.com>
c72a450a 3569
e1dbb208 3570 * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
3571 to gccoptlist.
c72a450a 3572 (@item -fuse-caller-save): New item.
3573
ec0d1d64 35742014-05-28 Radovan Obradovic <robradovic@mips.com>
e1dbb208 3575 Tom de Vries <tom@codesourcery.com>
ec0d1d64 3576
3577 * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
3578 OPT_fuse_caller_save.
3579
754158d9 35802014-05-28 Radovan Obradovic <robradovic@mips.com>
e1dbb208 3581 Tom de Vries <tom@codesourcery.com>
754158d9 3582
3583 * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
3584 * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
3585 get_call_reg_set_usage.
3586 * resource.c (mark_set_resources, mark_target_live_regs): Use
3587 get_call_reg_set_usage.
3588 * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
3589 field.
3590 (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
3591 * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
3592 Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
3593 * ira-build.c (ira_create_allocno): Init
3594 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
3595 (create_cap_allocno, propagate_allocno_info)
3596 (propagate_some_info_from_allocno)
3597 (copy_info_to_removed_store_destinations): Handle
3598 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
3599 * ira-costs.c (ira_tune_allocno_costs): Use
3600 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
3601
9ac9a758 36022014-05-28 Radovan Obradovic <robradovic@mips.com>
e1dbb208 3603 Tom de Vries <tom@codesourcery.com>
9ac9a758 3604
3605 * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
3606 and function_used_regs_valid fields.
3607 * final.c: Move include of hard-reg-set.h to before rtl.h to declare
3608 find_all_hard_reg_sets.
3609 (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
3610 (get_call_reg_set_usage): New function.
3611 (rest_of_handle_final): Use collect_fn_hard_reg_usage.
3612 * regs.h (get_call_reg_set_usage): Declare.
3613
db2d2950 36142014-05-28 Georg-Johann Lay <avr@gjlay.de>
3615
3616 PR libgcc/61152
3617 * config/dbx.h (License): Add Runtime Library Exception.
3618 * config/newlib-stdint.h (License): Same.
3619 * config/rtems.h (License): Same
3620 * config/initfini-array.h (License): Same
3621 * config/v850/v850.h (License): Same.
3622 * config/v850/v850-opts.h (License): Same
3623 * config/v850/rtems.h (License): Same.
3624
30b4a99c 36252014-05-28 Georg-Johann Lay <avr@gjlay.de>
3626
3627 PR target/61044
3628 * doc/extend.texi (Local Labels): Note that label differences are
3629 not supported for AVR.
3630
f4953d40 36312014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
3632 Olivier Hainque <hainque@adacore.com>
3633
3634 * rtl.h (set_for_reg_notes): Declare.
3635 * emit-rtl.c (set_for_reg_notes): New function.
3636 (set_unique_reg_note): Use it.
3637 * optabs.c (add_equal_note): Likewise
3638
7ea5b9d9 36392014-05-27 Andrew Pinski <apinski@cavium.com>
3640
3641 * config/aarch64/aarch64.md (stack_protect_set_<mode>):
3642 Use <w> for the register in assembly template.
e1dbb208 3643 (stack_protect_test): Use the mode of operands[0] for the result.
7ea5b9d9 3644 (stack_protect_test_<mode>): Use <w> for the register
3645 in assembly template.
3646
7ce85a1f 36472014-05-27 DJ Delorie <dj@redhat.com>
3648
3649 * config/rx/rx.c (add_vector_labels): New.
3650 (rx_output_function_prologue): Call it.
3651 (rx_handle_func_attribute): Don't require empty arguments.
3652 (rx_handle_vector_attribute): New.
3653 (rx_attribute_table): Add "vector" attribute.
3654 * doc/extend.texi (interrupt, vector): Document new/changed
3655 RX-specific attributes.
3656
3657 * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
3658
5692b79c 36592014-05-27 Eric Botcazou <ebotcazou@adacore.com>
3660
3661 * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
3662 predicate to detect a negative quotient.
3663
32ce9a5c 36642014-05-27 Eric Botcazou <ebotcazou@adacore.com>
3665
3666 * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
3667 to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
3668 Add X - Y CMP 0 to X CMP Y transformation.
3669 (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
3670
49523e2f 36712014-05-27 Segher Boessenkool <segher@kernel.crashing.org>
3672
3673 * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
3674 before printing.
3675
ac374833 36762014-05-27 Steve Ellcey <sellcey@mips.com>
3677
3678 * config/mips/mips.c: Add include of cgraph.h.
3679
487fea84 36802014-05-27 Richard Biener <rguenther@suse.de>
3681
3682 * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
3683
6f0c730b 36842014-05-27 Georg-Johann Lay <avr@gjlay.de>
3685
3686 PR libgcc/61152
3687 * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
3688 * config/arm/arm-cores.def (License): Same.
3689 * config/arm/arm-opts.h (License): Same.
3690 * config/arm/aout.h (License): Same.
3691 * config/arm/bpabi.h (License): Same.
3692 * config/arm/elf.h (License): Same.
3693 * config/arm/linux-elf.h (License): Same.
3694 * config/arm/linux-gas.h (License): Same.
3695 * config/arm/netbsd-elf.h (License): Same.
3696 * config/arm/uclinux-eabi.h (License): Same.
3697 * config/arm/uclinux-elf.h (License): Same.
3698 * config/arm/vxworks.h (License): Same.
3699
0a8b68fa 37002014-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3701
3702 * config/arm/neon.md (neon_bswap<mode>): New pattern.
3703 * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
3704 (arm_init_neon_builtins): Handle NEON_BSWAP.
3705 Define required type nodes.
3706 (arm_expand_neon_builtin): Handle NEON_BSWAP.
3707 (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
3708 * config/arm/arm_neon_builtins.def (bswap): Define builtins.
3709 * config/arm/iterators.md (VDQHSD): New mode iterator.
3710
949d4c6f 37112014-05-27 Richard Biener <rguenther@suse.de>
3712
3713 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
3714 Try using literal operands when comparing value-ranges failed.
3715
41a5159c 37162014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
3717
3718 * ira.c (commutative_operand): Adjust for change to recog_data.
3719 [Missing from previous commit.]
3720
d2b854bc 37212014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
3722
3723 * system.h (TEST_BIT): New macro.
3724 * recog.h (alternative_mask): New type.
3725 (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
3726 (recog_data_d): Replace alternative_enabled_p array with
3727 enabled_alternatives.
3728 (target_recog): New structure.
3729 (default_target_recog, this_target_recog): Declare.
3730 (get_enabled_alternatives, recog_init): Likewise.
3731 * recog.c (default_target_recog, this_target_recog): New variables.
3732 (get_enabled_alternatives): New function.
3733 (extract_insn): Use it.
3734 (recog_init): New function.
3735 (preprocess_constraints, constrain_operands): Adjust for change to
3736 recog_data.
3737 * postreload.c (reload_cse_simplify_operands): Likewise.
3738 * reload.c (find_reloads): Likewise.
3739 * ira-costs.c (record_reg_classes): Likewise.
3740 * ira-lives.c (single_reg_class): Likewise. Fix bug in which
3741 all alternatives after a disabled one would be skipped.
3742 (ira_implicitly_set_insn_hard_regs): Likewise.
3743 * ira.c (ira_setup_alts): Adjust for change to recog_data.
3744 * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
3745 with enabled_alternatives.
3746 * lra.c (free_insn_recog_data): Update accordingly.
3747 (lra_update_insn_recog_data): Likewise.
3748 (lra_set_insn_recog_data): Likewise. Use get_enabled_alternatives.
3749 * lra-constraints.c (process_alt_operands): Likewise. Handle
3750 only_alternative as part of the enabled mask.
3751 * target-globals.h (this_target_recog): Declare.
3752 (target_globals): Add a recog field.
3753 (restore_target_globals): Restore this_target_recog.
3754 * target-globals.c: Include recog.h.
3755 (default_target_globals): Initialize recog field.
3756 (save_target_globals): Likewise.
3757 * reginfo.c (reinit_regs): Call recog_init.
3758 * toplev.c (backend_init_target): Likewise.
3759
6add2e69 37602014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
3761
3762 * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
3763 rather than any named insn's code.
3764
0f894684 37652014-05-27 Georg-Johann Lay <avr@gjlay.de>
3766
3767 PR libgcc/61152
3768 * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
3769 * config/arm/arm-cores.def (License): Same.
3770
7bbf0ff2 37712014-05-26 Jan Hubicka <hubicka@ucw.cz>
3772
3773 * tree.h (decl_comdat_group): Declare.
3774 * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
3775 * tree.c (decl_comdat_group): Here.
3776
b704209e 37772014-05-26 Richard Sandiford <r.sandiford@uk.ibm.com>
3778
3779 PR rtl-optimization/61222
3780 * combine.c (simplify_shift_const_1): When moving a PLUS outside
3781 the shift, truncate the PLUS operand to the result mode.
3782
665b47a5 37832014-05-26 Uros Bizjak <ubizjak@gmail.com>
3784
3785 PR target/61271
3786 * config/i386/i386.c (ix86_rtx_costs)
3787 <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
3788 Fix condition.
3789
d7fdb365 37902014-05-26 Martin Jambor <mjambor@suse.cz>
3791
3792 * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
3793 subreg uses.
3794
c3fc0093 37952014-05-26 Richard Biener <rguenther@suse.de>
3796
3797 * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
3798 wi::int_traits <long long>, wi::int_traits <unsigned long long>):
3799 Provide specializations.
3800 (wi::int_traits <HOST_WIDE_INT>,
3801 wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
3802
c159ef5e 38032014-05-26 Alan Modra <amodra@gmail.com>
3804
3805 PR target/61098
3806 * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
3807 params and return a bool. Remove dead code. Update comment.
3808 Assert we have a const_int source. Remove bogus code from
3809 32-bit HWI days. Move !TARGET_POWERPC64 handling, and correct
3810 handling of constants > 2G and reg_equal note, from..
3811 (rs6000_emit_set_long_const): ..here. Remove unneeded param and
3812 return value. Update comment. If we can, use a new pseudo
3813 for intermediate calculations.
3814 * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
3815 prototype.
3816 * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
3817 call to rs6000_emit_set_const in splitter.
3818 (movdi_internal64+2, +3): Likewise.
3819
3a4303e7 38202014-05-26 Richard Biener <rguenther@suse.de>
3821
3822 * system.h: Define __STDC_FORMAT_MACROS before
3823 including inttypes.h.
3824 * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
3825 HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
3826 HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
3827 HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
3828 HOST_WIDEST_INT_C): Remove.
3829 (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
3830 if C99 inttypes.h is not available.
3831 * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
3832 * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
3833 * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
3834 * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
3835 * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
3836 (struct output_info): Likewise.
3837 (print_statistics): Adjust.
3838 (dump_bitmap_statistics): Likewise.
3839 * bt-load.c (migrate_btr_defs): Print with PRId64.
3840 * cfg.c (dump_edge_info, dump_bb_info): Likewise.
3841 (MAX_SAFE_MULTIPLIER): Adjust.
3842 * cfghooks.c (dump_bb_for_graph): Print with PRId64.
3843 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
3844 dump_cgraph_node): Likewise.
3845 * final.c (dump_basic_block_info): Likewise.
3846 * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
3847 * gcov.c (format_gcov): Likewise.
3848 * ipa-cp.c (good_cloning_opportunity_p): Likewise. Use int64_t
3849 for calculation.
3850 (get_clone_agg_value): Use HOST_WIDE_INT for offset.
3851 * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
3852 (inline_small_functions, dump_overall_stats, dump_inline_stats):
3853 Use PRId64 for dumping.
3854 * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
3855 * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
3856 (add_allocno_hard_regs): Adjust.
3857 * loop-doloop.c (doloop_modify): Print using PRId64.
3858 * loop-iv.c (inverse): Compute in uint64_t.
3859 (determine_max_iter, iv_number_of_iterations): Likewise.
3860 * loop-unroll.c (decide_peel_completely, decide_peel_simple):
3861 Print using PRId64.
3862 * lto-streamer-out.c (write_symbol): Use uint64_t.
3863 * mcf.c (CAP_INFINITY): Use int64_t maximum.
3864 (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
3865 find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
3866 * modulo-sched.c (const_iteration_count): Use int64_t.
3867 (sms_schedule): Dump using PRId64.
3868 * predict.c (dump_prediction): Likewise.
3869 * pretty-print.h (pp_widest_integer): Remove.
3870 * profile.c (get_working_sets, is_edge_inconsistent,
3871 is_inconsistent, read_profile_edge_counts): Dump using PRId64.
3872 * tree-pretty-print.c (pp_double_int): Remove case handling
3873 HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
3874 * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
3875 and adjust users.
3876 (pass_optimize_bswap::execute): Remove restriction on hosts.
3877 * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
3878 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
3879 * tree.c (widest_int_cst_value): Remove.
3880 * tree.h (widest_int_cst_value): Likewise.
3881 * value-prof.c (dump_histogram_value): Print using PRId64.
3882 * gengtype.c (main): Also inject int64_t.
3883 * ggc-page.c (struct max_alignment): Use int64_t.
3884 * alloc-pool.c (struct allocation_object_def): Likewise.
3885 * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
3886 for computation.
3887 * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
3888 * doc/tm.texi: Regenerated.
3889 * gengtype-lex.l (IWORD): Handle [u]int64_t.
3890 * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
3891 * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
3892 mmix_output_register_setting): Use [u]int64_t in prototypes.
3893 * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
3894 mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
3895 mmix_output_octa, mmix_output_shifted_value): Adjust.
3896 (mmix_intval): Adjust. Remove unreachable case.
665b47a5 3897 * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
3a4303e7 3898
1c8ad86a 38992014-05-26 Richard Biener <rguenther@suse.de>
3900
3901 * configure.ac: Drop __int64 type check. Insist that we
3902 found uint64_t and int64_t.
3903 * hwint.h (HOST_BITS_PER___INT64): Remove.
665b47a5 3904 (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
1c8ad86a 3905 (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
3906 (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
3907 (HOST_WIDEST_FAST_INT): Remove __int64 case.
3908 * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
3909 for dst_q_src_df_rms_cdt.
3910 * configure: Regenerate.
3911 * config.in: Likewise.
3912
12b0759e 39132014-05-26 Michael Tautschnig <mt@debian.org>
3914
3915 PR target/61249
a142dffd 3916 * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
3917 __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
12b0759e 3918
0cd43ac7 39192014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
3920
3921 PR rtl-optimization/61278
3922 * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
3923
ceecb56c 39242014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
3925
3926 PR rtl-optimization/61220
3927 Part of PR rtl-optimization/61225
3928 * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
3929 insn; skip split_edge for a block with only one successor.
3930
19b03318 39312014-05-23 Jan Hubicka <hubicka@ucw.cz>
3932
12b0759e 3933 * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
3934 for variables.
19b03318 3935
b7cebaf8 39362014-05-23 Jan Hubicka <hubicka@ucw.cz>
3937
3938 * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
3939 (update_vtable_references): New function.
3940 (function_and_variable_visibility): Rewrite also vtable initializers.
3941 * varpool.c (cgraph_variable_initializer_availability): Remove assert.
3942
4f78e0a8 39432014-05-23 Jan Hubicka <hubicka@ucw.cz>
3944
3945 * ggc.h (ggc_grow): New function.
3946 * ggc-none.c (ggc_grow): New function.
3947 * ggc-page.c (ggc_grow): Likewise.
3948
7aeffc5f 39492014-05-23 Jan Hubicka <hubicka@ucw.cz>
3950
12b0759e 3951 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
3952 address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
3953 comdat_can_be_unshared_p, cgraph_externally_visible_p,
7aeffc5f 3954 varpool_externally_visible_p, can_replace_by_local_alias,
3955 update_visibility_by_resolution_info, function_and_variable_visibility,
3956 pass_data_ipa_function_and_variable_visibility,
3957 make_pass_ipa_function_and_variable_visibility,
3958 whole_program_function_and_variable_visibility,
3959 pass_data_ipa_whole_program_visibility,
3960 make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
3961 * cgraph.h (cgraph_local_node_p): Declare.
3962 * ipa-visibility.c: New file.
3963 * Makefile.in (OBJS): Add ipa-visiblity.o
3964
fb5bde82 39652014-05-23 Jan Hubicka <hubicka@ucw.cz>
3966
3967 * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
3968 that var decl is available.
3969
8c016392 39702014-05-23 Jan Hubicka <hubicka@ucw.cz>
3971
3972 * tree-core.h (tree_decl_with_vis): Replace comdat_group by
3973 symtab_node pointer.
12b0759e 3974 * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
8c016392 3975 (find_decls_types_r): Do not walk COMDAT_GROUP.
3976 * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
3977 * varasm.c (make_decl_one_only): Use set_comdat_group;
3978 create node if needed.
3979 * ipa-inline-transform.c (save_inline_function_body): Update
3980 way we decl->symtab mapping.
3981 * symtab.c (symtab_hash, hash_node, eq_node
3982 symtab_insert_node_to_hashtable): Remove.
3983 (symtab_register_node): Update.
3984 (symtab_unregister_node): Update.
3985 (symtab_get_node): Reimplement as inline function.
3986 (symtab_add_to_same_comdat_group): Update.
3987 (symtab_dissolve_same_comdat_group_list): Update.
3988 (dump_symtab_base): Update.
3989 (verify_symtab_base): Update.
3990 (symtab_make_decl_local): Update.
3991 (fixup_same_cpp_alias_visibility): Update.
3992 (symtab_nonoverwritable_alias): Update.
3993 * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
3994 * ipa.c (update_visibility_by_resolution_info): UPdate.
3995 * bb-reorder.c: Include cgraph.h
3996 * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
3997 with comdat groups.
3998 * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
3999 * cgraph.c (cgraph_get_create_node): Update.
4000 * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
4001 and comdat_group_.
4002 (symtab_get_node): Make inline.
4003 (symtab_insert_node_to_hashtable): Remove.
4004 (symtab_can_be_discarded): Update.
4005 (decl_comdat_group): New function.
12b0759e 4006 * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
4007 Update.
8c016392 4008 * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
4009 comdat group name.
4010 (read_comdat_group): New function.
4011 (input_node, input_varpool_node): Use it.
4012 * trans-mem.c (ipa_tm_create_version_alias): Update code creating
4013 comdat groups.
4014 * mips.c (mips_start_unique_function): Likewise.
4015 (ix86_code_end): Likewise.
4016 (rs6000_code_end): Likweise.
12b0759e 4017 * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
8c016392 4018
03edaad8 40192014-05-23 Jan Hubicka <hubicka@ucw.cz>
4020
4021 * gengtype-state.c (fatal_reading_state): Bring offline.
4022 * optabs.c (widening_optab_handler): Bring offline.
4023 * optabs.h (widening_optab_handler): Likewise.
4024 * final.c (get_attr_length_1): Likewise.
4025
00366146 40262014-05-23 Jan Hubicka <hubicka@ucw.cz>
4027
4028 * sched-int.h (sd_iterator_cond): Manually tail recurse.
4029
3c428170 40302014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
4031
12b0759e 4032 * config/rs6000/440.md (ppc440-integer): Include shift without dot.
3c428170 4033 (ppc440-compare): Include shift with dot.
12b0759e 4034 * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
3c428170 4035 * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
4036 without dot.
4037 * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
4038 without dot.
4039 (e6500_sfx2): Include it.
4040 * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
4041 *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
4042 *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
4043 andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
4044 *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
4045 *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
4046 *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
4047 *lshiftrt_internal1le, *lshiftrt_internal1be,
4048 *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
4049 *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
4050 *rotldi3_internal10le, *rotldi3_internal10be,
4051 *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
4052 ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
4053 ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
4054 *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
4055 define_insns): Use type "shift" in the appropriate alternatives.
4056
74d42578 40572014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
4058
4059 * config/rs6000/rs6000.md (type): Add "logical". Delete
4060 "fast_compare".
4061 (dot): Adjust comment.
4062 (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
4063 *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
4064 *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
4065 anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
4066 *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
4067 *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
12b0759e 4068 *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
74d42578 4069 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
4070
12b0759e 4071 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
4072 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
4073 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
4074 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
4075 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
4076 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
4077 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
4078 * config/rs6000/8540.md (ppc8540_su): Adjust.
4079 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
74d42578 4080 cell-cmp-microcoded): Adjust.
12b0759e 4081 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
4082 * config/rs6000/e500mc.md (e500mc_su): Adjust.
4083 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
4084 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
4085 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
4086 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
4087 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
4088 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
4089 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
74d42578 4090 Adjust.
12b0759e 4091 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
4092 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
74d42578 4093 Adjust. Adjust comment.
12b0759e 4094 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
4095 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
74d42578 4096
7f15413b 40972014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
4098
4099 * config/rs6000/rs6000.md (type): Add "add".
4100 (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
4101 *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
4102 define_insns): Use it.
4103 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
4104
4105 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
4106 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
12b0759e 4107 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
7f15413b 4108 * config/rs6000/601.md (ppc601-integer): Adjust.
4109 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
4110 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
4111 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
4112 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
4113 * config/rs6000/8540.md (ppc8540_su): Adjust.
4114 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
4115 cell-cmp-microcoded): Adjust.
4116 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
4117 * config/rs6000/e500mc.md (e500mc_su): Adjust.
4118 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
4119 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
4120 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
4121 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
4122 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
4123 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
4124 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
4125 Adjust.
4126 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
12b0759e 4127 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
7f15413b 4128 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
4129 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
4130
7d307a6a 41312014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
4132
4133 * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
4134 "delayed_compare", "var_delayed_compare".
4135 (var_shift): New attribute.
4136 (cell_micro): Adjust.
4137 (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
4138 *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
4139 rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
4140 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
4141 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
4142 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
4143 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
4144 *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
4145 *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
4146 *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
4147 *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
4148 rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
4149 *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
4150 *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
4151 *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
4152 *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
4153 *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
4154 *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
4155 *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
4156 *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
4157 *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
4158 *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
4159 *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
4160 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
4161 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
4162
4163 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
4164 * config/rs6000/440.md (ppc440-integer): Adjust.
12b0759e 4165 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
7d307a6a 4166 * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
4167 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
4168 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
12b0759e 4169 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
7d307a6a 4170 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
4171 * config/rs6000/8540.md (ppc8540_su): Adjust.
4172 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
4173 cell-cmp-microcoded): Adjust.
4174 * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
4175 * config/rs6000/e500mc.md (e500mc_su): Adjust.
4176 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
4177 e500mc64_delayed): Adjust.
4178 * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
4179 * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
4180 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
12b0759e 4181 * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
4182 * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
7d307a6a 4183 * config/rs6000/power6.md (power6-shift, power6-var-rotate,
4184 power6-delayed-compare, power6-var-delayed-compare): Adjust.
12b0759e 4185 * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
7d307a6a 4186 * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
4187 Adjust comment.
4188 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
4189 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
4190
90e4483f 41912014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
4192
12b0759e 4193 * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv". Add "div".
90e4483f 4194 (bits): New mode_attr.
4195 (idiv_ldiv): Delete mode_attr.
4196 (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
4197 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
4198 rs6000_adjust_priority, is_nonpipeline_insn,
4199 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
4200
4201 * config/rs6000/40x.md (ppc403-idiv): Adjust.
4202 * config/rs6000/440.md (ppc440-idiv): Adjust.
4203 * config/rs6000/476.md (ppc476-idiv): Adjust.
4204 * config/rs6000/601.md (ppc601-idiv): Adjust.
4205 * config/rs6000/603.md (ppc603-idiv): Adjust.
4206 * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
4207 ppc620-ldiv): Adjust.
4208 * config/rs6000/7450.md (ppc7450-idiv): Adjust.
4209 * config/rs6000/7xx.md (ppc750-idiv): Adjust.
4210 * config/rs6000/8540.md (ppc8540_divide): Adjust.
4211 * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
4212 * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
4213 * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
4214 * config/rs6000/e500mc.md (e500mc_divide): Adjust.
4215 * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
4216 * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
4217 * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
4218 * config/rs6000/mpc.md (mpccore-idiv): Adjust.
4219 * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
4220 * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
4221 * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
4222 * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
4223 * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
4224 * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
4225 * config/rs6000/titan.md (titan_fxu_div): Adjust.
4226
b6786e14 42272014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
4228
4229 * config/rs6000/rs6000.md (type): Delete "insert_word",
4230 "insert_dword". Add "insert".
4231 (size): Update comment.
4232 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
4233 insn_must_be_first_in_group): Adjust.
4234 (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
4235 *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
4236 *insvsi_internal6, insvdi_internal): Adjust.
4237
4238 * config/rs6000/40x.md (ppc403-integer): Adjust.
4239 * config/rs6000/440.md (ppc440-integer): Adjust.
4240 * config/rs6000/476.md (ppc476-simple-integer): Adjust.
4241 * config/rs6000/601.md (ppc601-integer): Adjust.
4242 * config/rs6000/603.md (ppc603-integer): Adjust.
4243 * config/rs6000/6xx.md (ppc604-integer): Adjust.
4244 * config/rs6000/7450.md (ppc7450-integer): Adjust.
4245 * config/rs6000/7xx.md (ppc750-integer): Adjust.
4246 * config/rs6000/8540.md (ppc8540_su): Adjust.
4247 * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
4248 * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
4249 * config/rs6000/e500mc.md (e500mc_su): Adjust.
4250 * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
4251 * config/rs6000/e5500.md (e5500_sfx): Adjust.
4252 * config/rs6000/e6500.md (e6500_sfx): Adjust.
4253 * config/rs6000/mpc.md (mpccore-integer): Adjust.
4254 * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
4255 * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
12b0759e 4256 * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
b6786e14 4257 * config/rs6000/power7.md (power7-integer): Adjust.
4258 * config/rs6000/power8.md (power8-1cyc): Adjust.
4259 * config/rs6000/rs64.md (rs64a-integer): Adjust.
4260 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
4261
86c149d4 42622014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
4263
4264 * config/rs6000/rs6000.md (type): Add "mul". Delete "imul",
4265 "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
4266 (size): New attribute.
4267 (dot): New attribute.
4268 (cell_micro): Adjust.
4269 (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
4270 umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
4271 *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
4272 umuldi3_highpart): Adjust.
4273 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
4274 rs6000_adjust_priority, is_nonpipeline_insn,
4275 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
4276
4277 * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
4278 ppc405-imul3): Adjust.
4279 * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
4280 * config/rs6000/476.md (ppc476-imul): Adjust.
4281 * config/rs6000/601.md (ppc601-imul): Adjust.
4282 * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
4283 * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
4284 ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
4285 * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
4286 * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
4287 Adjust.
4288 * config/rs6000/8540.md (ppc8540_multiply): Adjust.
4289 * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
4290 * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
4291 cell-imul): Adjust.
4292 * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
4293 * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
4294 * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
4295 * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
4296 * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
4297 * config/rs6000/mpc.md (mpccore-imul): Adjust.
4298 * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
4299 power4-lmul, power4-imul, power4-imul3): Adjust.
4300 * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
4301 power5-lmul, power5-imul, power5-imul3): Adjust.
4302 * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
4303 power6-lmul, power6-imul, power6-imul3): Adjust.
4304 * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
4305 * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
4306
4307 * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
4308 rs64a-lmul): Adjust.
4309 * config/rs6000/titan.md (titan_imul): Adjust.
4310
18f0a24b 43112014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
4312
4313 * config/rs6000/rs6000.md (type): Add new value "halfmul".
4314 (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
4315 *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
4316 *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
4317 *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
12b0759e 4318 *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
18f0a24b 4319 * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
4320 * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
4321 * config/rs6000/476.md (ppc476-imul): Add type halfmul.
4322 * config/rs6000/titan.md: Delete nonsensical comment.
4323 (titan_imul): Add type imul3.
4324 (titan_mulhw): Remove type imul3; add type halfmul.
4325
0bca1ae2 43262014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
4327
4328 * config/rs6000/rs6000.md (type): Reorder, reformat.
4329
24430d08 43302014-05-23 Martin Jambor <mjambor@suse.cz>
4331
4332 PR tree-optimization/53787
4333 * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
4334 * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
4335 analysis_done, update all uses.
4336 * ipa-prop.c: Include domwalk.h
4337 (param_analysis_info): Removed.
4338 (param_aa_status): New type.
4339 (ipa_bb_info): Likewise.
4340 (func_body_info): Likewise.
4341 (ipa_get_bb_info): New function.
4342 (aa_overwalked): Likewise.
4343 (find_dominating_aa_status): Likewise.
4344 (parm_bb_aa_status_for_bb): Likewise.
4345 (parm_preserved_before_stmt_p): Changed to use new param AA info.
4346 (load_from_unmodified_param): Accept func_body_info as a parameter
4347 instead of parms_ainfo.
4348 (parm_ref_data_preserved_p): Changed to use new param AA info.
4349 (parm_ref_data_pass_through_p): Likewise.
4350 (ipa_load_from_parm_agg_1): Likewise. Update callers.
4351 (compute_complex_assign_jump_func): Changed to use new param AA info.
4352 (compute_complex_ancestor_jump_func): Likewise.
4353 (ipa_compute_jump_functions_for_edge): Likewise.
4354 (ipa_compute_jump_functions): Removed.
4355 (ipa_compute_jump_functions_for_bb): New function.
4356 (ipa_analyze_indirect_call_uses): Likewise, moved variable
4357 declarations down.
4358 (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
4359 and info, moved variable declarations down.
4360 (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
4361 node and info.
4362 (ipa_analyze_stmt_uses): Likewise.
4363 (ipa_analyze_params_uses): Removed.
4364 (ipa_analyze_params_uses_in_bb): New function.
4365 (ipa_analyze_controlled_uses): Likewise.
4366 (free_ipa_bb_info): Likewise.
4367 (analysis_dom_walker): New class.
4368 (ipa_analyze_node): Handle node-specific forbidden analysis,
4369 initialize and free func_body_info, use dominator walker.
4370 (ipcp_modif_dom_walker): New class.
4371 (ipcp_transform_function): Create and free func_body_info, use
4372 ipcp_modif_dom_walker, moved a lot of functionality there.
4373
c8cc2651 43742014-05-23 Marek Polacek <polacek@redhat.com>
4375 Jakub Jelinek <jakub@redhat.com>
4376
4377 * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
4378 * gcc.c (sanitize_spec_function): Likewise.
4379 * convert.c (convert_to_integer): Include "ubsan.h". Add
4380 floating-point to integer instrumentation.
4381 * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
4382 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
4383 SANITIZE_NONDEFAULT.
4384 * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
4385 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
4386 BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
4387 * ubsan.c: Include "realmpfr.h" and "dfp.h".
4388 (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
4389 (ubsan_type_descriptor): Set tkind to 0xffff for types other than
4390 float/double/long double.
4391 (ubsan_instrument_float_cast): New function.
4392 * ubsan.h (ubsan_instrument_float_cast): Declare.
4393
e1dbb208 43942014-05-23 Jiong Wang <jiong.wang@arm.com>
1718b6c1 4395
4396 * config/aarch64/predicates.md (aarch64_call_insn_operand): New
4397 predicate.
4398 * config/aarch64/constraints.md ("Ucs", "Usf"): New constraints.
4399 * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
4400 Adjust for tailcalling through registers.
4401 * config/aarch64/aarch64.h (enum reg_class): New caller save
4402 register class.
4403 (REG_CLASS_NAMES): Likewise.
4404 (REG_CLASS_CONTENTS): Likewise.
4405 * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
4406 Allow tailcalling without decls.
4407
93481288 44082014-05-23 Thomas Schwinge <thomas@codesourcery.com>
4409
a5426c73 4410 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
4411 Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
4412
93481288 4413 * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
4414 gsi, and variables v_* to v*.
4415
87b5d1e6 44162014-05-23 Eric Botcazou <ebotcazou@adacore.com>
4417
4418 * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
4419
87123a8c 44202014-05-23 Thomas Schwinge <thomas@codesourcery.com>
4421
10c55644 4422 * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
4423 * omp-low.c: Update accordingly.
4424
271fe9cf 4425 * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
4426 for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
4427 GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
4428 GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
4429 GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
4430 GF_OMP_TARGET_KIND_UPDATE.
4431
87123a8c 4432 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
4433 Explicitly enumerate the expected region types.
4434
9e237073 44352014-05-23 Paul Eggert <eggert@cs.ucla.edu>
4436
4437 PR other/56955
4438 * doc/extend.texi (Function Attributes): Fix __attribute__ ((malloc))
4439 documentation; the old documentation didn't clearly state the
4440 constraints on the contents of the pointed-to storage.
4441
2a46f340 44422014-05-23 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
4443
4444 Fix bootstrap error on ia64
4445 * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
4446 Return default value.
4447
470d5bb5 44482014-05-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
4449
4450 PR tree-optimization/54733
4451 * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
4452 (CMPNOP): Define.
4453 (find_bswap_or_nop_load): New.
4454 (find_bswap_1): Renamed to ...
4455 (find_bswap_or_nop_1): This. Also add support for memory source.
4456 (find_bswap): Renamed to ...
4457 (find_bswap_or_nop): This. Also add support for memory source and
89d0fbd4 4458 detection of bitwise operations equivalent to load in target
4459 endianness.
470d5bb5 4460 (execute_optimize_bswap): Likewise. Also move its leading comment back
4461 in place and split statement transformation into ...
4462 (bswap_replace): This.
4463
10258db7 44642014-05-22 Vladimir Makarov <vmakarov@redhat.com>
4465
4466 PR rtl-optimization/61215
4467 * lra-elelimination.c (lra_eliminate_regs_1): Don't use
4468 simplify_gen_subreg until final substitution.
4469
c0798a90 44702014-05-23 Alan Modra <amodra@gmail.com>
4471
4472 PR target/61231
4473 * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
4474 * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
4475 Use "Y" constraint rather than "m".
4476
1343c5e0 44772014-05-23 Kugan Vivekanandarajah <kuganv@linaro.org>
4478
4479 * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
4480 define.
4481 * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
4482 New function declaration.
4483 * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
4484 AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
4485 AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
4486 (aarch64_init_builtins) : Initialize builtins
4487 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
4488 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
4489 (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
4490 __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
4491 and __builtins_aarch64_set_fpsr.
4492 (aarch64_atomic_assign_expand_fenv): New function.
4493 * config/aarch64/aarch64.md (set_fpcr): New pattern.
4494 (get_fpcr) : Likewise.
4495 (set_fpsr) : Likewise.
4496 (get_fpsr) : Likewise.
4497 (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
4498 and UNSPECV_SET_FPSR.
4499 * doc/extend.texi (AARCH64 Built-in Functions) : Document
4500 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
4501 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
4502
c5d7f2f6 45032014-05-22 Vladimir Makarov <vmakarov@redhat.com>
4504
4505 PR rtl-optimization/60969
4506 * ira-costs.c (record_reg_classes): Process NO_REGS for matching
4507 constraints. Set up mem cost for NO_REGS case.
4508
3c77ca67 45092014-05-22 Thomas Schwinge <thomas@codesourcery.com>
4510
4511 * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
4512
47131315 45132012-05-22 Bernd Schmidt <bernds@codesourcery.com>
4514
4515 * config/darwin.c: Include "lto-section-names.h".
4516 (LTO_SEGMENT_NAME): Don't define.
4517 * config/i386/winnt.c: Include "lto-section-names.h".
4518 * lto-streamer.c: Include "lto-section-names.h".
4519 * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
4520 * lto-wrapper.c: Include "lto-section-names.h".
4521 (LTO_SECTION_NAME_PREFIX): Don't define.
4522 * lto-section-names.h: New file.
4523 * cgraphunit.c: Include "lto-section-names.h".
4524
6cd4152b 45252014-05-22 Peter Bergner <bergner@vnet.ibm.com>
4526
4527 * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
4528
1a86364b 45292014-05-22 Richard Earnshaw <rearnsha@arm.com>
4530
4531 PR target/61208
4532 * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
4533
514e354d 45342014-05-22 Nick Clifton <nickc@redhat.com>
4535
12b0759e 4536 * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
514e354d 4537
f0365515 45382014-05-22 Eric Botcazou <ebotcazou@adacore.com>
4539
4540 * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
4541 -> (T)A transformation to integer types.
4542
f1919901 45432014-05-22 Teresa Johnson <tejohnson@google.com>
4544
4545 * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
4546 (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
4547 (gcov_rewrite): Use gcov_nonruntime_assert.
4548 (gcov_open): Ditto.
4549 (gcov_write_words): Ditto.
4550 (gcov_write_length): Ditto.
4551 (gcov_read_words): Use gcov_nonruntime_assert, and remove
4552 gcc_assert from IN_LIBGCOV code.
4553 (gcov_read_summary): Use gcov_error to flag profile corruption.
4554 (gcov_sync): Use gcov_nonruntime_assert.
4555 (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
4556 (gcov_histo_index): Use gcov_nonruntime_assert.
4557 (static void gcov_histogram_merge): Ditto.
4558 (compute_working_sets): Ditto.
4559 * gcov-io.h (gcov_nonruntime_assert): Define.
4560 (gcov_error): Define for !IN_LIBGCOV
4561
ee890734 45622014-05-22 Richard Biener <rguenther@suse.de>
4563
4564 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
4565 BUILT_IN_REALLOC like BUILT_IN_STRDUP.
4566 (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
4567 and deallocation site.
4568 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
4569 Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
4570 passing through the incoming points-to set.
4571 (handle_lhs_call): Use flags argument instead of recomputing it.
4572 (find_func_aliases_for_call): Call handle_lhs_call with proper
4573 call return flags.
4574
2b8335eb 45752014-05-22 Jakub Jelinek <jakub@redhat.com>
4576
4577 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
4578 all padding bits in REAL_VALUE_TYPE are cleared.
4579
d9d89d92 45802014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
4581
4582 Cleanup and improve multipass_dfa_lookahead_guard
12b0759e 4583 * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
4584 (core2i7_first_cycle_multipass_begin,)
4585 (core2i7_first_cycle_multipass_issue,)
4586 (core2i7_first_cycle_multipass_backtrack): Update signature.
4587 * config/ia64/ia64.c
4588 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
4589 (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
4590 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
4591 hook definition.
4592 (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
4593 ia64_first_cycle_multipass_dfa_lookahead_guard_spec. Update return
4594 values.
4595 * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
4596 return values.
4597 * doc/tm.texi: Regenerate.
4598 * doc/tm.texi.in
4599 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
4600 * haifa-sched.c (ready_try): Make signed to allow negative values.
4601 (rebug_ready_list_1): Update.
4602 (choose_ready): Simplify.
4603 (sched_extend_ready_list): Update.
d9d89d92 4604
507af1c1 46052014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
4606
4607 Remove IA64 speculation tweaking flags
12b0759e 4608 * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
4609 speculation tuning flags.
4610 (msched-prefer-non-data-spec-insns,)
4611 (msched-prefer-non-control-spec-insns): Obsolete options.
4612 * haifa-sched.c (choose_ready): Remove handling of
4613 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
4614 * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
4615 and PREFER_NON_DATA_SPEC.
4616 * sel-sched.c (process_spec_exprs): Remove handling of
4617 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
507af1c1 4618
f4e5c383 46192014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
4620
4621 Improve scheduling debug output
4622 * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
4623 (advance_one_cycle): Update.
4624 (schedule_insn, queue_to_ready): Add debug printouts.
4625 (debug_ready_list_1): New static function.
4626 (debug_ready_list): Update.
4627 (max_issue): Add debug printouts.
4628 (dump_insn_stream): New static function.
4629 (schedule_block): Use it. Also better indent printouts.
4630
46312014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
4632
4633 Fix sched_insn debug counter
4634 * haifa-sched.c (schedule_insn): Update.
4635 (struct haifa_saved_data): Add nonscheduled_insns_begin.
4636 (save_backtrack_point, restore_backtrack_point): Update.
4637 (first_nonscheduled_insn): New static function.
4638 (queue_to_ready, choose_ready): Use it.
4639 (schedule_block): Init nonscheduled_insns_begin.
4640 (sched_emit_insn): Update.
4641
4642
e5160b8b 46432014-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
4644
4645 * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
4646 to GENERAL_REGS.
4647 (aarch64_secondary_reload) : LikeWise.
4648 (aarch64_class_max_nregs) : Remove CORE_REGS.
4649 * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
4650 (REG_CLASS_NAMES) : Likewise.
4651 (REG_CLASS_CONTENTS) : LikeWise.
4652 (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
4653
d8bb54e9 46542014-05-21 Guozhi Wei <carrot@google.com>
4655
4656 PR target/61202
4657 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
4658 constraint.
4659 (vqdmulhq_n_s16): Likewise.
4660
fc8d6335 46612014-05-21 Segher Boessenkool <segher@kernel.crashing.org>
4662
4663 * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
4664
8e74a69c 46652014-05-21 Marek Polacek <polacek@redhat.com>
4666
4667 PR sanitizer/61272
4668 * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
4669
d1aa9af0 46702014-05-21 Martin Jambor <mjambor@suse.cz>
4671
4672 * doc/invoke.texi (Optimize Options): Document parameters
4673 ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
4674 ipa-cp-array-index-hint-bonus.
4675
1b006e46 46762014-05-21 Mark Wielaard <mjw@redhat.com>
4677
4678 PR debug/16063
4679 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
4680 version >= 3 or not strict DWARF.
4681 * langhooks.h (struct lang_hooks_for_types): Add
4682 enum_underlying_base_type.
4683 * langhooks.c (lhd_enum_underlying_base_type): New function.
4684 * gcc/langhooks.h (struct lang_hooks_for_types): Add
4685 enum_underlying_base_type.
4686 * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
4687 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
4688 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
4689
64f4aeca 46902014-05-21 Richard Biener <rguenther@suse.de>
4691
12b0759e 4692 * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
64f4aeca 4693
463553db 46942014-05-21 John Marino <gnugcc@marino.st>
4695
4696 * config.gcc (*-*-dragonfly*): New target.
4697 * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
4698 * configure: Regenerate.
4699 * config/dragonfly-stdint.h: New.
4700 * config/dragonfly.h: New.
4701 * config/dragonfly.opt: New.
4702 * config/i386/dragonfly.h: New.
4703 * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
4704
3ab4693e 47052014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
4706
4707 * tree.def (VOID_CST): New.
4708 * tree-core.h (TI_VOID): New.
4709 * tree.h (void_node): New.
4710 * tree.c (tree_node_structure_for_code, tree_code_size)
4711 (iterative_hash_expr): Handle VOID_CST.
4712 (build_common_tree_nodes): Initialize void_node.
4713
e22c35e9 47142014-05-21 Bernd Schmidt <bernds@codesourcery.com>
4715
519477f4 4716 * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
4717 functions.
4718 (reload, calculate_needs_all_insns, reload_as_needed): Use them.
4719
6da4b49c 4720 * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
4721 more places.
4722
e22c35e9 4723 * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
4724 flag_reorder_blocks_and_partition.
4725 * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
4726
9fe92a1f 47272014-05-21 Oleg Endo <olegendo@gcc.gnu.org>
4728
4729 PR target/54236
4730 * config/sh/sh.md (*addc_r_1): Rename to addc_t_r. Remove empty
4731 constraints.
4732 (*addc_r_t): Add new insn_and_split.
4733
2712b6de 47342014-05-21 Jakub Jelinek <jakub@redhat.com>
4735
4736 PR middle-end/61252
4737 * omp-low.c (handle_simd_reference): New function.
4738 (lower_rec_input_clauses): Use it. Defer adding reference
4739 initialization even for reduction without placeholder if in simd,
4740 handle it properly later on.
4741
59425620 47422014-05-20 Jan Hubicka <hubicka@ucw.cz>
4743
4744 PR tree-optimization/60899
4745 * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
4746 assume all static symbols will have definition wile parsing and
4747 check the do have definition later in compilation; check that
4748 variable referring symbol will be output before concluding that
4749 reference is safe; be conservative for referring local statics;
4750 be more precise about when comdat is output in other partition.
4751
7c5c01f1 47522014-05-20 Jan Hubicka <hubicka@ucw.cz>
4753
4754 PR bootstrap/60984
12b0759e 4755 * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
4756 parameter.
7c5c01f1 4757 * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
12b0759e 4758 (ipa_inline): Loop inline_to_all_callers until no more aliases
4759 are removed.
7c5c01f1 4760
4206bfac 47612014-05-20 Jan Hubicka <hubicka@ucw.cz>
4762
4763 * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
4764 set writeonly flag only for vars actually written to.
4765
27754c3a 47662014-05-20 Dehao Chen <dehao@google.com>
4767
4768 * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
4769 and callee count to get clone count.
4770 * tree-inline.c (expand_call_inline): Use callee count instead of bb
4771 count in copy_body.
4772
01762951 47732014-05-20 Richard Sandiford <rdsandiford@googlemail.com>
4774
4775 PR rtl-optimization/61243
4776 * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
4777
ceb49bba 47782014-05-20 Xinliang David Li <davidxl@google.com>
4779
4780 * cgraphunit.c (walk_polymorphic_call_targets): Add
4781 dbgcnt and fopt-info support.
4782 * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
4783 * ipa-devirt.c (ipa_devirt): Ditto.
12b0759e 4784 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
ceb49bba 4785 * ipa.c (walk_polymorphic_call_targets): Ditto.
4786 * gimple-fold.c (fold_gimple_assign): Ditto.
4787 (gimple_fold_call): Ditto.
4788 * dbgcnt.def: New counter.
4789
8c4f4485 47902014-05-20 DJ Delorie <dj@redhat.com>
4791
4792 * config/msp430/msp430.md (split): Don't allow subregs when
4793 splitting SImode adds.
4794 (andneghi): Fix subtraction logic.
4795 * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
4796
b395f451 47972014-05-20 Jan Hubicka <hubicka@ucw.cz>
4798
4799 * tree.h (DECL_ONE_ONLY): Return true only for externally visible
4800 symbols.
4801 * except.c (switch_to_exception_section, resolve_unique_section,
12b0759e 4802 get_named_text_section, default_function_rodata_section,
b395f451 4803 align_variable, get_block_for_decl, default_section_type_flags):
4804 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
4805 * symtab.c (symtab_add_to_same_comdat_group,
4806 symtab_make_decl_local, fixup_same_cpp_alias_visibility,
4807 symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
4808 Likewise.
4809 * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
4810 * bb-reorder.c (pass_partition_blocks::gate): Likewise.
4811 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
4812 (c6x_function_in_section_p): Likewise.
4813 * config/darwin.c (machopic_select_section): Likewise.
4814 * config/arm/arm.c (arm_function_in_section_p): Likewise.
4815 * config/mips/mips.c (mips_function_rodata_section): Likewise.
4816 * config/mep/mep.c (mep_select_section): LIkewise.
4817 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
4818
27b0e9e4 48192014-05-20 Eric Botcazou <ebotcazou@adacore.com>
4820
4821 * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
4822 EH region of calls to pure functions that can throw an exception.
4823 * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
4824 (copy_reference_ops_from_call): Also copy the EH region of the call if
4825 it can throw an exception.
4826
6e21a145 48272014-05-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4828
4829 * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
4830 nested VEC_SELECTs that are inverses of each other.
4831
c443af04 48322014-05-20 Richard Biener <rguenther@suse.de>
4833
12b0759e 4834 * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
c443af04 4835 (extract_and_process_scc_for_name): not here.
4836 (cond_dom_walker::before_dom_children): Only process
4837 stmts that end the BB in interesting ways.
4838 (run_scc_vn): Mark param uses as visited.
4839
74ef923b 48402014-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4841
4842 * config/arm/arm.md (arith_shiftsi): Do not predicate for
4843 arm_restrict_it.
4844
ec75c1d1 48452014-05-20 Nick Clifton <nickc@redhat.com>
4846
58f45145 4847 * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
4848 (msp430_gimplify_va_arg_expr): New function.
4849 (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
4850
ec75c1d1 4851 * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
4852 operand 0 in order to prevent confusion about the number of
4853 registers involved.
4854
b8a2283e 48552014-05-20 Richard Biener <rguenther@suse.de>
4856
4857 PR tree-optimization/61221
4858 * tree-ssa-pre.c (el_to_update): Remove.
4859 (eliminate_dom_walker::before_dom_children): Handle released
4860 VDEFs by value-numbering them to the associated VUSE. Update
4861 stmt immediately for substituted call address.
4862 (eliminate): Remove delayed stmt updating code.
4863 * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
4864 possibly late re-numbered vuses.
4865 (vn_reference_lookup_2): Adjust.
4866 (vn_reference_lookup_pieces): Likewise.
4867 (vn_reference_lookup): Likewise.
4868
a3034794 48692014-05-20 Richard Biener <rguenther@suse.de>
4870
4871 * config.gcc: Remove need_64bit_hwint.
4872 * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
4873 * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
4874 it to be true.
4875 * config.in: Regenerate.
4876 * configure: Likewise.
4877
52b68a8a 48782014-05-19 David Wohlferd <dw@LimeGreenSocks.com>
4879
4880 * doc/extend.texi: Create Label Attributes section,
4881 move all label attributes into it and reference it.
4882
68730fed 48832014-05-19 Richard Earnshaw <rearnsha@arm.com>
4884
4885 * arm.c (thumb1_reorg): When scanning backwards skip anything
4886 that's not a proper insn.
4887
22499a39 48882014-05-19 Richard Biener <rguenther@suse.de>
4889
4890 PR tree-optimization/61221
4891 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
4892 Do nothing for unreachable blocks.
4893 * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
4894 Improve unreachability detection.
4895
85ba79cb 48962014-05-19 Richard Biener <rguenther@suse.de>
4897
4898 PR tree-optimization/61209
4899 * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
4900
755fa8c2 49012014-05-19 Nick Clifton <nickc@redhat.com>
4902
4903 * except.c (init_eh): Fix computation of builtin setjmp buffer
4904 size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
4905
42081cd6 49062014-05-19 Richard Biener <rguenther@suse.de>
4907
4908 PR tree-optimization/61184
4909 * tree-vrp.c (is_negative_overflow_infinity): Use
4910 TREE_OVERFLOW_P and do that check first.
4911 (is_positive_overflow_infinity): Likewise.
4912 (is_overflow_infinity): Likewise.
4913 (vrp_operand_equal_p): Properly treat operands with
4914 differing overflow as not equal.
4915
bed5e85e 49162014-05-19 Bernd Schmidt <bernds@codesourcery.com>
4917
4918 * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
4919 shift simplification where it was intended.
4920
e733f349 49212014-05-19 Christian Bruel <christian.bruel@st.com>
4922
4923 PR target/61195
4924 * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
4925
56a707a3 49262014-05-19 Richard Sandiford <r.sandiford@uk.ibm.com>
4927
4928 PR target/61084
4929 * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
4930 than wide_int.
4931
8f869004 49322014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
4933
4934 * reg-notes.def (CROSSING_JUMP): Likewise.
4935 * rtl.h (rtx_def): Update comment for jump flag.
4936 (CROSSING_JUMP_P): Define.
4937 * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
4938 of a REG_CROSSING_JUMP note.
4939 * cfghooks.c (tidy_fallthru_edges): Likewise.
4940 * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
4941 * emit-rtl.c (try_split): Likewise.
4942 * haifa-sched.c (sched_create_recovery_edges): Likewise.
4943 * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
4944 * jump.c (redirect_jump_2): Likewise.
4945 * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
4946 (relax_delay_slots): Likewise.
4947 * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
4948 (bbit_di): Likewise.
4949 * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
4950 * config/sh/sh.md (jump_compact): Likewise.
4951 * bb-reorder.c (rotate_loop): Likewise.
4952 (pass_duplicate_computed_gotos::execute): Likewise.
4953 (add_reg_crossing_jump_notes): Rename to...
4954 (update_crossing_jump_flags): ...this.
4955 (pass_partition_blocks::execute): Update accordingly.
4956
718d0021 49572014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
4958
4959 * tree.h: Remove extraneous template <>.
4960
04f65f92 49612014-05-17 Jan Hubicka <hubicka@ucw.cz>
4962
4963 * ipa.c (symtab_remove_unreachable_nodes): Remove
4964 symbol from comdat group if its body was eliminated.
12b0759e 4965 (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
4966 * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
04f65f92 4967 (symtab_unregister_node): ... this one.
4968 (verify_symtab_base): More strict checking of comdats.
4969 * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
4970
cf8b23bb 49712014-05-17 Jan Hubicka <hubicka@ucw.cz>
4972
4973 * tree-pass.h (make_pass_ipa_comdats): New pass.
4974 * timevar.def (TV_IPA_COMDATS): New timevar.
4975 * passes.def (pass_ipa_comdats): Add.
4976 * Makefile.in (OBJS): Add ipa-comdats.o
4977 * ipa-comdats.c: New file.
4978
17354446 49792014-05-17 Jan Hubicka <hubicka@ucw.cz>
4980
4981 * ipa.c (update_visibility_by_resolution_info): New function.
4982 (function_and_variable_visibility): Use it.
4983
52638b9c 49842014-05-17 Jan Hubicka <hubicka@ucw.cz>
4985
4986 * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
4987 New functions.
4988 (FOR_EACH_DEFINED_SYMBOL): New macro.
4989 (varpool_first_static_initializer, varpool_next_static_initializer,
12b0759e 4990 varpool_first_defined_variable, varpool_next_defined_variable):
4991 Fix comments.
52638b9c 4992 (symtab_in_same_comdat_p): Correctly deal with inline functions.
4993
92960204 49942014-05-17 Trevor Saunders <tsaunders@mozilla.com>
4995
4996 * ggc-page.c (ggc_handle_finalizers): Add comment.
4997
92f06184 49982014-05-17 Trevor Saunders <tsaunders@mozilla.com>
4999
5000 * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
5001 * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
5002 (ggc_internal_cleared_alloc): Likewise.
5003 * ggc-page.c (finalizer): New class.
b540cb16 5004 (vec_finalizer): Likewise.
92f06184 5005 (globals::finalizers): New member.
b540cb16 5006 (globals::vec_finalizers): Likewise.
92f06184 5007 (ggc_internal_alloc): Record the finalizer if any for the block being
5008 allocated.
5009 (ggc_handle_finalizers): New function.
5010 (ggc_collect): Call ggc_handle_finalizers.
5011 * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
5012 finalizer.
5013 (ggc_internal_cleared_alloc): Likewise.
5014 (finalize): New function.
5015 (need_finalization_p): Likewise.
5016 (ggc_alloc): Install the type's destructor as the finalizer if it
5017 might do something.
5018 (ggc_cleared_alloc): Likewise.
5019 (ggc_vec_alloc): Likewise.
5020 (ggc_cleared_vec_alloc): Likewise.
5021
16f97f36 50222014-05-17 Trevor Saunders <tsaunders@mozilla.com>
5023
5024 * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
5025
25a27413 50262014-05-17 Trevor Saunders <tsaunders@mozilla.com>
5027
5028 * alias.c (record_alias_subset): Adjust.
5029 * bitmap.c (bitmap_element_allocate): Likewise.
5030 (bitmap_gc_alloc_stat): Likewise.
5031 * cfg.c (init_flow): Likewise.
5032 (alloc_block): Likewise.
5033 (unchecked_make_edge): Likewise.
5034 * cfgloop.c (alloc_loop): Likewise.
5035 (flow_loops_find): Likewise.
5036 (rescan_loop_exit): Likewise.
5037 * cfgrtl.c (init_rtl_bb_info): Likewise.
5038 * cgraph.c (insert_new_cgraph_node_version): Likewise.
5039 (cgraph_allocate_node): Likewise.
5040 (cgraph_create_edge_1): Likewise.
5041 (cgraph_allocate_init_indirect_info): Likewise.
5042 * cgraphclones.c (cgraph_clone_edge): Likewise.
5043 * cgraphunit.c (add_asm_node): Likewise.
5044 (init_lowered_empty_function): Likewise.
b540cb16 5045 * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
25a27413 5046 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
5047 (alpha_use_linkage): Likewise.
5048 * config/arc/arc.c (arc_init_machine_status): Likewise.
5049 * config/arm/arm.c (arm_init_machine_status): Likewise.
5050 * config/avr/avr.c (avr_init_machine_status): Likewise.
5051 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
5052 * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
5053 * config/cris/cris.c (cris_init_machine_status): Likewise.
5054 * config/darwin.c (machopic_indirection_name): Likewise.
5055 (darwin_build_constant_cfstring): Likewise.
5056 (darwin_enter_string_into_cfstring_table): Likewise.
b540cb16 5057 * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
25a27413 5058 * config/frv/frv.c (frv_init_machine_status): Likewise.
5059 * config/i386/i386.c (get_dllimport_decl): Likewise.
5060 (ix86_init_machine_status): Likewise.
5061 (assign_386_stack_local): Likewise.
b540cb16 5062 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
25a27413 5063 (i386_pe_maybe_record_exported_symbol): Likewise.
5064 (i386_pe_record_stub): Likewise.
5065 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
5066 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
5067 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
5068 (m32c_note_pragma_address): Likewise.
5069 * config/mep/mep.c (mep_init_machine_status): Likewise.
5070 (mep_note_pragma_flag): Likewise.
5071 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
5072 (mips16_local_alias): Likewise.
5073 (mips_init_machine_status): Likewise.
5074 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
5075 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
5076 * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
5077 * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
5078 * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
5079 * config/pa/pa.c (pa_init_machine_status): Likewise.
5080 (pa_get_deferred_plabel): Likewise.
5081 * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
5082 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
5083 (rs6000_init_machine_status): Likewise.
5084 (output_toc): Likewise.
5085 * config/s390/s390.c (s390_init_machine_status): Likewise.
5086 * config/score/score.c (score_output_external): Likewise.
5087 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
5088 * config/spu/spu.c (spu_init_machine_status): Likewise.
5089 * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
b540cb16 5090 * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
25a27413 5091 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
5092 * coverage.c (coverage_end_function): Likewise.
5093 * dbxout.c (dbxout_init): Likewise.
5094 * doc/gty.texi: Don't mention variable_size attribute.
5095 * dwarf2cfi.c (new_cfi): Adjust.
5096 (new_cfi_row): Likewise.
5097 (copy_cfi_row): Likewise.
5098 (create_cie_data): Likewise.
5099 * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
5100 (new_loc_descr): Likewise.
5101 (find_AT_string_in_table): Likewise.
5102 (add_addr_table_entry): Likewise.
5103 (new_die): Likewise.
5104 (add_var_loc_to_decl): Likewise.
5105 (clone_die): Likewise.
5106 (clone_as_declaration): Likewise.
5107 (break_out_comdat_types): Likewise.
5108 (new_loc_list): Likewise.
5109 (add_loc_descr_to_each): Likewise.
5110 (add_location_or_const_value_attribute): Likewise.
5111 (add_linkage_name): Likewise.
5112 (lookup_filename): Likewise.
5113 (dwarf2out_var_location): Likewise.
5114 (new_line_info_table): Likewise.
5115 (dwarf2out_init): Likewise.
5116 (mem_loc_descriptor): Likewise.
5117 (loc_descriptor): Likewise.
5118 (add_const_value_attribute): Likewise.
5119 (tree_add_const_value_attribute): Likewise.
5120 (comp_dir_string): Likewise.
5121 (dwarf2out_vms_debug_main_pointer): Likewise.
5122 (string_cst_pool_decl): Likewise.
5123 * emit-rtl.c (set_mem_attrs): Likewise.
5124 (get_reg_attrs): Likewise.
5125 (start_sequence): Likewise.
5126 (init_emit): Likewise.
5127 (init_emit_regs): Likewise.
5128 * except.c (init_eh_for_function): Likewise.
5129 (gen_eh_region): Likewise.
5130 (gen_eh_region_catch): Likewise.
5131 (gen_eh_landing_pad): Likewise.
5132 (add_call_site): Likewise.
5133 * function.c (add_frame_space): Likewise.
5134 (insert_temp_slot_address): Likewise.
5135 (assign_stack_temp_for_type): Likewise.
5136 (get_hard_reg_initial_val): Likewise.
5137 (allocate_struct_function): Likewise.
5138 (prepare_function_start): Likewise.
5139 (types_used_by_var_decl_insert): Likewise.
5140 * gengtype.c (variable_size_p): Remove function.
5141 (enum alloc_quantity): Remove enum.
5142 (write_typed_alloc_def): Remove function.
5143 (write_typed_struct_alloc_def): Likewise.
5144 (write_typed_typedef_alloc_def): Likewise.
5145 (write_typed_alloc_defns): Likewise.
5146 (main): Adjust.
5147 * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
5148 (ggc_cleared_alloc_ptr_array_two_args): Likewise.
5149 * ggc.h (ggc_alloc): new function.
5150 (ggc_cleared_alloc): Likewise.
5151 (ggc_vec_alloc): Template on type of vector element, and remove
5152 element size argument.
5153 (ggc_cleared_vec_alloc): Likewise.
5154 * gimple.c (gimple_build_omp_for): Adjust.
5155 (gimple_copy): Likewise.
5156 * ipa-cp.c (get_replacement_map): Likewise.
5157 (find_aggregate_values_for_callers_subset): Likewise.
5158 (known_aggs_to_agg_replacement_list): Likewise.
5159 * ipa-devirt.c (get_odr_type): Likewise.
5160 * ipa-prop.c (ipa_node_duplication_hook): Likewise.
5161 (read_agg_replacement_chain): Likewise.
5162 * loop-iv.c (get_simple_loop_desc): Likewise.
5163 * lto-cgraph.c (input_node_opt_summary): Likewise.
5164 * lto-section-in.c (lto_new_in_decl_state): Likewise.
5165 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
5166 (input_eh_region): Likewise.
5167 (input_eh_lp): Likewise.
5168 (input_cfg): Likewise.
5169 * optabs.c (set_optab_libfunc): Likewise.
5170 (init_tree_optimization_optabs): Likewise.
5171 (set_conv_libfunc): Likewise.
5172 * passes.c (do_per_function_toporder): Likewise.
5173 * rtl.h: Don't use variable_size gty attribute.
5174 * sese.c (if_region_set_false_region): Adjust.
5175 * stringpool.c (gt_pch_save_stringpool): Likewise.
5176 * target-globals.c (save_target_globals): Likewise.
5177 * toplev.c (general_init): Likewise.
5178 * trans-mem.c (record_tm_replacement): Likewise.
5179 (split_bb_make_tm_edge): Likewise.
5180 * tree-cfg.c (move_sese_region_to_fn): Likewise.
5181 * tree-data-ref.h (lambda_vector_new): Likewise.
5182 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
5183 * tree-iterator.c (tsi_link_before): Likewise.
5184 (tsi_link_after): Likewise.
5185 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
5186 * tree-ssa-loop-niter.c (record_estimate): Likewise.
5187 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
5188 * tree-ssa-operands.h: Don't use variable_size gty attribute.
5189 * tree-ssa.c (init_tree_ssa): Adjust.
5190 * tree-ssanames.c (set_range_info): Likewise.
5191 (get_ptr_info): Likewise.
5192 (duplicate_ssa_name_ptr_info): Likewise.
5193 (duplicate_ssa_name_range_info): Likewise.
5194 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
5195 (unpack_ts_fixed_cst_value_fields): Likewise.
5196 * tree.c (build_fixed): Likewise.
5197 (build_real): Likewise.
5198 (build_string): Likewise.
5199 (decl_priority_info): Likewise.
5200 (decl_debug_expr_insert): Likewise.
5201 (decl_value_expr_insert): Likewise.
5202 (decl_debug_args_insert): Likewise.
5203 (type_hash_add): Likewise.
5204 (build_omp_clause): Likewise.
5205 * ubsan.c (decl_for_type_insert): Likewise.
5206 * varasm.c (get_unnamed_section): Likewise.
5207 (get_noswitch_section): Likewise.
5208 (get_section): Likewise.
5209 (get_block_for_section): Likewise.
5210 (create_block_symbol): Likewise.
5211 (build_constant_desc): Likewise.
5212 (create_constant_pool): Likewise.
5213 (force_const_mem): Likewise.
5214 (record_tm_clone_pair): Likewise.
5215 * varpool.c (varpool_create_empty_node): Likewise.
5216
881f903e 52172014-05-17 Trevor Saunders <tsaunders@mozilla.com>
5218
5219 * dwarf2out.c (tree_add_const_value_attribute): Call
5220 ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
5221 * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
5222 instead of ggc_internal_<x>alloc_stat.
5223 * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
5224 (ggc_realloc): Likewise.
5225 * ggc-none.c (ggc_internal_alloc): Likewise.
5226 (ggc_internal_cleared_alloc): Likewise.
5227 * ggc-page.c: Likewise.
5228 * ggc.h (ggc_internal_alloc_stat): Likewise.
5229 (ggc_internal_alloc): Remove macro.
5230 (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
5231 (ggc_internal_cleared_alloc): Remove macro.
5232 (GGC_RESIZEVEC): Adjust.
5233 (ggc_resizevar): Remove macro.
5234 (ggc_internal_vec_alloc_stat): Drop _stat suffix.
5235 (ggc_internal_cleared_vec_alloc_stat): Likewise.
5236 (ggc_internal_vec_cleared_alloc): Remove macro.
5237 (ggc_alloc_atomic_stat): Drop _stat suffix.
5238 (ggc_alloc_atomic): Remove macro.
5239 (ggc_alloc_cleared_atomic): Remove macro.
5240 (ggc_alloc_string_stat): Drop _stat suffix.
5241 (ggc_alloc_string): Remove macro.
5242 (ggc_alloc_rtx_def_stat): Adjust.
5243 (ggc_alloc_tree_node_stat): Likewise.
5244 (ggc_alloc_cleared_tree_node_stat): Likewise.
5245 (ggc_alloc_cleared_gimple_statement_stat): Likewise.
5246 (ggc_alloc_cleared_simd_clone_stat): Likewise.
5247 * gimple.c (gimple_build_omp_for): Likewise.
5248 (gimple_copy): Likewise.
5249 * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
5250 * toplev.c (realloc_for_line_map): Adjust.
5251 * tree-data-ref.h (lambda_vector_new): Likewise.
5252 * tree-phinodes.c (allocate_phi_node): Likewise.
5253 * tree.c (grow_tree_vec_stat): Likewise.
5254 * vec.h (va_gc::reserve): Adjust.
5255
b540cb16 52562014-05-17 Ajit Agarwal <ajitkum@xilinx.com>
0f718e59 5257
b540cb16 5258 * config/microblaze/microblaze.c (break_handler): New Declaration.
5259 (microblaze_break_function_p,microblaze_is_break_handler): New.
5260 (compute_frame_size): Use microblaze_break_function_p.
5261 Add the test of break_handler.
5262 (microblaze_function_prologue) : Add the test of variable
5263 break_handler. Check the fnname by BREAK_HANDLER_NAME.
5264 (microblaze_function_epilogue) : Add the test of break_handler.
5265 (microblaze_globalize_label) : Add the test of break_handler.
5266 Check the name by BREAK_HANDLER_NAME.
0f718e59 5267
b540cb16 5268 * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
0f718e59 5269
b540cb16 5270 * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
5271 microblaze_is_break_handler test.
5272 (call_internal1,call_value_intern): Use microblaze_break_function_p.
5273 Use SYMBOL_REF_DECL.
0f718e59 5274
5275 * config/microblaze/microblaze-protos.h
b540cb16 5276 (microblaze_break_function_p,microblaze_is_break_handler):
5277 New Declaration.
0f718e59 5278
b540cb16 5279 * doc/extend.texi (MicroBlaze break_handler Functions): Document
5280 new MicroBlaze break_handler functions.
0f718e59 5281
d9b9b19e 52822014-05-17 Uros Bizjak <ubizjak@gmail.com>
5283
5284 * doc/extend.texi (Size of an asm): Move node text according
5285 to its @menu entry position.
5286
43fbec4a 52872014-05-17 Marc Glisse <marc.glisse@inria.fr>
5288
5289 PR tree-optimization/61140
5290 PR tree-optimization/61150
5291 PR tree-optimization/61197
5292 * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
5293
2e7e4604 52942014-05-17 Uros Bizjak <ubizjak@gmail.com>
5295
5296 * doc/invoke.texi (free): Mention Alpha. Also enabled at -Os.
5297
f7bd62a6 52982014-05-17 Richard Sandiford <r.sandiford@uk.ibm.com>
5299
5300 * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
5301 __SIZEOF_INT128__ is defined.
5302
9c853a49 53032014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
5304
5305 * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
5306 (rs6000_delegitimize_address): Use it.
5307
5cc04e45 53082014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
5309
5310 * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
5311 inplace argument. Store the new address in the original MEM when true.
5312 * emit-rtl.c (change_address_1): Likewise.
5313 (adjust_address_1, adjust_automodify_address_1, offset_address):
5314 Update accordingly.
5315 * rtl.h (plus_constant): Add an inplace argument.
5316 * explow.c (plus_constant): Likewise. Try to reuse the original PLUS
5317 when true. Avoid generating (plus X (const_int 0)).
5318 * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
5319 in-place. Pass true to plus_constant.
5320 (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
5321
29e953a5 53222014-05-16 Dehao Chen <dehao@google.com>
5323
5324 * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
5325
25cc2065 53262014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
5327
5328 PR target/54089
5329 * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
5330 patterns.
5331 * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
5332
e604463f 53332014-05-16 Dehao Chen <dehao@google.com>
5334
8d86bf1c 5335 * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
5336 optimize_function_for_size_p.
e604463f 5337 * regs.h (REG_FREQ_FROM_BB): Likewise.
5338
a02ddf20 53392014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
5340
5341 PR target/51244
5342 * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
5343 negt_reg_operand cases.
5344 * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
5345 predicate.
5346 * config/sh/predicates.md (cbranch_treg_value): Simplify.
5347
e2c18ed9 53482014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
5349
5350 * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
5351 target variants.
5352
ccd42569 53532014-05-16 David Malcolm <dmalcolm@redhat.com>
5354
5355 Revert:
5356 2014-04-29 David Malcolm <dmalcolm@redhat.com>
5357
5358 * tree-cfg.c (dump_function_to_file): Dump the return type of
5359 functions, in a line to itself before the function body, mimicking
5360 the layout of a C function.
5361
fe0ef478 53622014-05-16 Dehao Chen <dehao@google.com>
5363
5364 * cfghooks.c (make_forwarder_block): Use direct computation to
5365 get fall-through edge's count and frequency.
5366
8d86bf1c 53672014-05-16 Benno Schulenberg <bensberg@justemail.net>
de7af99e 5368
5369 * config/arc/arc.c (arc_init): Fix typo in error message.
5370 * config/i386/i386.c (ix86_expand_builtin): Likewise.
5371 (split_stack_prologue_scratch_regno): Likewise.
5372 * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
5373 word from error message.
5374
2628e0e8 53752014-05-16 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
5376
5377 * ira-costs.c: Fix typo in comment.
5378
fa366627 53792014-05-16 David Wohlferd <dw@LimeGreenSocks.com>
5380
8d86bf1c 5381 * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
fa366627 5382
703ad42c 53832014-05-16 Jan Hubicka <hubicka@ucw.cz>
5384
5385 * varpool.c (dump_varpool_node): Dump write-only flag.
5386 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
5387 write-only flag.
8d86bf1c 5388 * tree-cfg.c (execute_fixup_cfg): Remove statements setting
5389 write-only variables.
5390 * ipa.c (process_references): New function.
5391 (set_readonly_bit): New function.
5392 (set_writeonly_bit): New function.
5393 (clear_addressable_bit): New function.
5394 (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
5395 fix handling of aliases.
5396 * cgraph.h (struct varpool_node): Add writeonly flag.
703ad42c 5397
1e5911a9 53982014-05-16 Vladimir Makarov <vmakarov@redhat.com>
5399
5400 PR rtl-optimization/60969
5401 * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
5402 Calculate costs for this case.
5403
2d537109 54042014-05-16 Eric Botcazou <ebotcazou@adacore.com>
5405
5406 * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
5407 <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
5408
60711c82 54092014-05-16 Richard Biener <rguenther@suse.de>
5410
5411 PR tree-optimization/61194
5412 * tree-vect-patterns.c (adjust_bool_pattern): Also handle
5413 bool patterns ending in a COND_EXPR.
5414
40018c37 54152014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
5416
5417 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
5418
10e934bc 54192014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
5420
5421 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
5422 where we were unable to cost an RTX.
5423
d369e66f 54242014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
5425
5426 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
5427 HIGH, LO_SUM.
5428
4a8f9d52 54292014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
5430 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
5431
5432 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
5433
d31e8ed0 54342014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
5435 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
5436
5437 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
5438 FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
5439
7105f3a4 54402014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
5441 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
5442
5443 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
5444 operators.
5445
8065e8b4 54462014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
5447 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
5448
5449 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
5450 DIV/MOD.
5451
54522014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
d515bbc9 5453 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
5454
5455 * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
5456 (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
5457
89821004 54582014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
5459 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
5460
5461 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
5462 rotates and shifts.
5463
81d1eb9d 54642014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
5465 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
5466
5467 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
5468 ZERO_EXTEND and SIGN_EXTEND better.
5469
69ddbb92 54702014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
5471 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
5472
5473 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
5474 logical operations.
5475
af274096 54762014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
5477 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
5478
5479 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
5480 costs when costing loads and stores to memory.
5481
600207df 54822014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
5483 Philip Tomsich <philipp.tomsich@theobroma-systems.com>
5484
5485 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
5486 for SET RTX.
5487
8c31cc62 54882014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
5489
5490 * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
5491
2f0038b0 54922014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
5493 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
5494
5495 * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
5496 to...
5497 (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
5498 well formed.
5499 (aarch64_rtx_mult_cost): New.
5500 (aarch64_rtx_costs): Use it, refactor as appropriate.
5501
3967ee63 55022014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
5503 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
5504
5505 * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
5506 emit instructions, return number of instructions which would
5507 be emitted.
5508 (aarch64_add_constant): Update call to aarch64_build_constant.
5509 (aarch64_output_mi_thunk): Likewise.
8d86bf1c 5510 (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
3967ee63 5511 a CONST_DOUBLE.
5512
e50295b3 55132014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
5514
5515 * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
5516 (TARGET_RTX_COSTS): Call it.
5517
3172ca83 55182014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
5519
5520 * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
5521 (cortexa57_vector_cost): Likewise.
5522 (cortexa57_tunings): Use them.
5523
3d70178f 55242014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
5525
5526 * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
5527 (cpu_addrcost_table): Use it.
5528 * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
5529 (aarch64_address_cost): Rewrite using aarch64_classify_address,
5530 move it.
5531
85e9a542 55322014-05-16 Richard Biener <rguenther@suse.de>
5533
5534 * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
5535 (set_ssa_val_to): Handle unexpected sets to VN_TOP.
5536 (visit_phi): Ignore edges marked as not executable.
5537 (class cond_dom_walker): New.
5538 (cond_dom_walker::before_dom_children): Value-number
5539 control statements and mark successor edges as not
5540 executable if possible.
5541 (run_scc_vn): First walk all control statements in
5542 dominator order, marking edges as not executable.
5543 * tree-inline.c (copy_edges_for_bb): Be not confused
5544 about random edge flags.
5545
b15c78f2 55462014-05-16 Richard Biener <rguenther@suse.de>
5547
5548 * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
5549
7fb0a3e6 55502014-05-15 Peter Bergner <bergner@vnet.ibm.com>
5551
5552 PR target/61193
5553 * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
5554 (__TM_simple_begin): Use it.
5555 (__TM_begin): Likewise.
5556
5faf263f 55572014-05-15 Martin Jambor <mjambor@suse.cz>
5558
5559 PR ipa/61085
5560 * ipa-prop.c (update_indirect_edges_after_inlining): Check
5561 type_preserved flag when the indirect edge is polymorphic.
5562
e66f5696 55632014-05-15 Martin Jambor <mjambor@suse.cz>
5564
5565 PR tree-optimization/61090
5566 * tree-sra.c (sra_modify_expr): Pass the current gsi to
5567 build_ref_for_model.
5568
9eb00f69 55692014-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5570
5571 * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
5572 enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
5573
d0a5f61c 55742014-05-15 Jakub Jelinek <jakub@redhat.com>
5575
5576 PR tree-optimization/61158
5577 * fold-const.c (fold_binary_loc): If X is zero-extended and
5578 shiftc >= prec, make sure zerobits is all ones instead of
5579 invoking undefined behavior.
5580
59483f68 55812014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
5582
5583 * regcprop.h: New file.
5584 * regcprop.c (skip_debug_insn_p): New decl.
5585 (replace_oldest_value_reg): Check skip_debug_insn_p.
d0a5f61c 5586 (copyprop_hardreg_forward_bb_without_debug_insn): New function.
5587 * shrink-wrap.c: Include regcprop.h.
5588 (prepare_shrink_wrap): Call
5589 copyprop_hardreg_forward_bb_without_debug_insn.
59483f68 5590
808bdd17 55912014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
5592
5593 * shrink-wrap.h: Update comment.
5594 * shrink-wrap.c: Update comment.
5595 (next_block_for_reg): Rename to live_edge_for_reg.
5596 (live_edge_for_reg): Allow live_edge->dest has two predecessors.
5597 (move_insn_for_shrink_wrap): Split live_edge.
5598 (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
5599
07ae93ca 56002014-05-14 Eric Botcazou <ebotcazou@adacore.com>
5601
5602 * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
5603 Delete.
5604 * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
5605 * config/sparc/sparc.md (fptype_ut699): New attribute.
5606 (in_branch_delay): Return false if -mfix-ut699 is specified and
5607 fptype_ut699 is set to single.
5608 (truncdfsf2): Add fptype_ut699 attribute.
5609 (fix_truncdfsi2): Likewise.
5610 (floatsisf2): Change fptype attribute.
5611 (fix_truncsfsi2): Likewise.
5612 (negtf2_notv9): Delete.
5613 (negtf2_v9): Likewise.
5614 (negtf2_hq): New instruction.
5615 (negtf2): New instruction and splitter.
5616 (negdf2_notv9): Rewrite.
5617 (abstf2_notv9): Delete.
5618 (abstf2_hq_v9): Likewise.
5619 (abstf2_v9): Likewise.
5620 (abstf2_hq): New instruction.
5621 (abstf2): New instruction and splitter.
5622 (absdf2_notv9): Rewrite.
5623
ecee9e92 56242014-05-14 Cary Coutant <ccoutant@google.com>
5625
8d86bf1c 5626 PR debug/61013
ecee9e92 5627 * opts.c (common_handle_option): Don't special-case "-g".
5628 (set_debug_level): Default to at least level 2 with "-g".
5629
9f70b545 56302014-05-14 DJ Delorie <dj@redhat.com>
5631
5632 * config/msp430/msp430.c (msp430_builtin): Add
5633 MSP430_BUILTIN_DELAY_CYCLES.
5634 (msp430_init_builtins): Register void __delay_cycles(long long).
5635 (msp430_builtin_decl): Add it.
5636 (cg_magic_constant): New.
5637 (msp430_expand_delay_cycles): New.
5638 (msp430_expand_builtin): Call it.
5639 (msp430_print_operand_raw): Change integer printing from "int" to
5640 HOST_WIDE_INT.
5641 * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
5642 (delay_cycles_start): New.
5643 (delay_cycles_end): New.
5644 (delay_cycles_32): New.
5645 (delay_cycles_32x): New.
5646 (delay_cycles_16): New.
5647 (delay_cycles_16x): New.
5648 (delay_cycles_2): New.
5649 (delay_cycles_1): New.
5650 * doc/extend.texi: Document __delay_cycles().
5651
6077c035 56522014-05-14 Sandra Loosemore <sandra@codesourcery.com>
5653
5654 * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
5655 length attribute computation.
5656
a8336256 56572014-05-14 Richard Sandiford <rdsandiford@googlemail.com>
5658
5659 PR debug/61188
5660 * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
5661
e0db3f6a 56622014-05-14 Richard Sandiford <r.sandiford@uk.ibm.com>
5663
5664 PR target/61084
5665 * config/sparc/sparc.md: Fix types of low and high in DI constant
5666 splitter. Use gen_int_mode in some other splitters.
5667
fa19d637 56682014-05-14 Martin Jambor <mjambor@suse.cz>
5669
5670 PR ipa/60897
5671 * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
5672
d046e809 56732014-05-14 James Norris <jnorris@codesourcery.com>
5674
5675 * omp-low.c (expand_parallel_call): Remove shadow variable.
5676 (expand_omp_taskreg): Likewise.
5677
2ed44428 56782014-05-14 Ilya Tocar <ilya.tocar@intel.com>
5679
5680 * common/config/i386/i386-common.c
5681 (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
5682 (OPTION_MASK_ISA_XSAVES_SET): Ditto.
5683 (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
5684 (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
5685 (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
5686 (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
8d86bf1c 5687 (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
2ed44428 5688 * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
5689 xsavecintrin.h, xsavesintrin.h.
5690 (x86_64-*-*): Ditto.
5691 * config/i386/clflushoptintrin.h: New.
5692 * config/i386/xsavecintrin.h: Ditto.
5693 * config/i386/xsavesintrin.h: Ditto.
5694 * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
5695 (bit_XSAVES): Ditto.
5696 (bit_XSAVES): Ditto.
5697 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
5698 -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
5699 -mno-clflushopt.
5700 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
5701 OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
5702 OPTION_MASK_ISA_XSAVES.
5703 * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
5704 -mxsavec, -mxsaves.
5705 (PTA_CLFLUSHOPT) Define.
5706 (PTA_XSAVEC): Ditto.
5707 (PTA_XSAVES): Ditto.
5708 (ix86_option_override_internal): Handle new options.
5709 (ix86_valid_target_attribute_inner_p): Ditto.
5710 (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
5711 IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
5712 IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
8d86bf1c 5713 (bdesc_special_args): Add __builtin_ia32_xsaves,
5714 __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
5715 __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
2ed44428 5716 (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
5717 (ix86_expand_builtin): Handle new builtins.
5718 * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
5719 (TARGET_CLFLUSHOPT_P): Ditto.
5720 (TARGET_XSAVEC): Ditto.
5721 (TARGET_XSAVEC_P): Ditto.
5722 (TARGET_XSAVES): Ditto.
5723 (TARGET_XSAVES_P): Ditto.
5724 * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
5725 (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
5726 (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
5727 (ANY_XRSTOR): New.
5728 (ANY_XRSTOR64): Ditto.
5729 (xrstor): Ditto.
5730 (xrstor): Change into <xrstor>.
5731 (xrstor_rex64): Change into <xrstor>_rex64.
5732 (xrstor64): Change into <xrstor>64
5733 (clflushopt): New.
5734 * config/i386/i386.opt (mclflushopt): New.
5735 (mxsavec): Ditto.
5736 (mxsaves): Ditto.
5737 * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
5738 xsavecintrin.h.
5739 * doc/invoke.texi: Document new options.
5740
8d1881f5 57412014-05-14 Andrey Belevantsev <abel@ispras.ru>
5742
5743 PR rtl-optimization/60866
5744 * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
5745 Default it to -1. Pass it down to init_simplejump_data.
5746 (init_simplejump_data): New parameter old_seqno. Pass it down
5747 to get_seqno_for_a_jump.
5748 (get_seqno_for_a_jump): New parameter old_seqno. Use it for
5749 initializing new jump seqno as a last resort. Add comment.
5750 (sel_redirect_edge_and_branch): Save old seqno of the conditional
5751 jump and pass it down to sel_init_new_insn.
5752 (sel_redirect_edge_and_branch_force): Likewise.
5753
a80fc64d 57542014-05-14 Georg-Johann Lay <avr@gjlay.de>
5755
5756 * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
5757 shifted values to avoid build warning.
5758
36ebb5b6 57592014-05-14 Eric Botcazou <ebotcazou@adacore.com>
5760
5761 * cfgcleanup.c (try_forward_edges): Use location_t for locations.
5762 * cfgrtl.c (rtl_merge_blocks): Fix comment.
5763 (cfg_layout_merge_blocks): Likewise.
5764 * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
5765
a509ca9d 57662014-05-14 Andrey Belevantsev <abel@ispras.ru>
5767
5768 PR rtl-optimization/60901
5769 * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
5770 bb predecessor belongs to the same scheduling region. Adjust comment.
5771
e1179276 57722014-05-13 Peter Bergner <bergner@vnet.ibm.com>
5773
5774 * doc/sourcebuild.texi: (dfp_hw): Document.
5775 (p8vector_hw): Likewise.
5776 (powerpc_eabi_ok): Likewise.
5777 (powerpc_elfv2): Likewise.
5778 (powerpc_htm_ok): Likewise.
5779 (ppc_recip_hw): Likewise.
5780 (vsx_hw): Likewise.
5781
74b21252 57822014-05-13 Cary Coutant <ccoutant@google.com>
5783
5784 * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
5785
782fb915 57862014-05-13 David Malcolm <dmalcolm@redhat.com>
5787
5788 * gengtype-parse.c (require3): Eliminate in favor of...
5789 (require4): New.
5790 (require_template_declaration): Update to support optional single *
5791 on a type.
5792
5793 * gengtype.c (get_ultimate_base_class): Add a non-const overload.
5794 (create_user_defined_type): Handle a single level of explicit
5795 pointerness within template arguments.
5796 (struct write_types_data): Add field "kind".
5797 (filter_type_name): Handle "*" character.
5798 (write_user_func_for_structure_ptr): Require a write_types_data
5799 rather than just a prefix string, so that we can look up the kind
5800 of the wtd and use it as an index into wrote_user_func_for_ptr,
5801 ensuring that such functions are written at most once. Support
8d86bf1c 5802 subclasses by invoking the marking function of the ultimate base class.
782fb915 5803 (write_user_func_for_structure_body): Require a write_types_data
5804 rather than just a prefix string, so that we can pass this to
5805 write_user_func_for_structure_ptr.
5806 (write_func_for_structure): Likewise.
5807 (ggc_wtd): Add initializer of new "kind" field.
5808 (pch_wtd): Likewise.
5809
5810 * gengtype.h (enum write_types_kinds): New.
5811 (struct type): Add field wrote_user_func_for_ptr to the "s"
5812 union member.
5813
b988436f 58142014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
5815
5816 * fold-const.c (optimize_bit_field_compare): Use wi:: operations
5817 instead of const_binop.
5818 (fold_binary_loc): Likewise.
5819
012e5b9b 58202014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
5821
5822 * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
5823 calculation to match get_ref_base_and_extent.
5824
aab5ced3 58252014-05-13 Catherine Moore <clm@codesourcery.com>
5826 Sandra Loosemore <sandra@codesourcery.com>
5827
5828 * configure.ac: Fix assembly for explicit JALR relocation check.
5829 * configure: Regenerate.
5830
b5013dad 58312014-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5832
5833 * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
5834 (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
5835 Remove associated type declarations and initialisations.
5836 (arm_expand_neon_builtin): Likewise.
5837 (neon_emit_pair_result_insn): Delete.
5838 * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
5839 * config/arm/neon.md (neon_vtrn<mode>): Delete.
5840 (neon_vzip<mode>): Likewise.
5841 (neon_vuzp<mode>): Likewise.
5842
c0af8582 58432014-05-13 Richard Biener <rguenther@suse.de>
5844
5845 PR ipa/60973
5846 * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
5847 it needs revisiting whether the call still may be tail-called.
5848
8854855c 58492014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
5850
5851 * rtl.def (SYMBOL_REF): Remove middle "0" field.
5852 * rtl.h (block_symbol): Reduce number of fields to 2.
5853 (rtx_def): Add u2.symbol_ref_flags.
5854 (SYMBOL_REF_FLAGS): Use it.
5855 (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
5856 (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
5857 * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
5858 Lower index of SYMBOL_REF_DATA.
5859 * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
5860 Print SYMBOL_REF_FLAGS at the same time.
5861 * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
5862
e1398578 58632014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
5864
5865 * rtl.def (VAR_LOCATION): Remove "i" field.
5866 * rtl.h (rtx_def): Add u2.var_location_status.
5867 (PAT_VAR_LOCATION_STATUS): Use it.
5868 (gen_rtx_VAR_LOCATION): Declare.
5869 * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
5870 * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
5871 * var-tracking.c (emit_note_insn_var_location): Remove casts.
5872
78c24cc9 58732014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
5874
5875 * rtl.def (scratch): Fix outdated comment and remove "0" field.
5876 * gengtype.c (adjust_field_rtx_def): Update accordingly.
5877
5cda2bd0 58782014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
5879
5880 * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
5881 (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
5882 * rtl.h (rtx_def): Add insn_uid to u2 field.
5883 (RTX_FLAG_CHECK8): Delete in favor of...
5884 (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
5885 (INSN_DELETED_P): Update accordingly.
5886 (INSN_UID): Use u2.insn_uid.
5887 (INSN_CHAIN_CODE_P): Define.
5888 (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
5889 (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
5890 (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
5891 (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
5892 (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
5893 indices accordingly.
5894 * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
5895 Update indices for insn-chain rtxes.
5896 * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
5897 (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
5898 * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
5899 * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
5900 * combine.c (try_combine): Likewise.
5901 * ira.c (setup_prohibited_mode_move_regs): Likewise.
5902
4db4d2a2 59032014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
5904
5905 * rtl.def (REG): Remove middle field.
5906 * rtl.h (rtx_def): Add orignal_regno to u2.
5907 (ORIGINAL_REGNO): Use it instead of field 1.
5908 (REG_ATTRS): Lower field index accordingly.
5909 * gengtype.c (adjust_field_rtx_def): Remove handling of
5910 ORIGINAL_REGNO. Move REG_ATTRS index down.
5911 * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
5912 code that prints the REGNO.
5913
7bcffce7 59142014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
5915
5916 * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
5917 GENERATOR_FILE.
5918
b4d2ccf4 59192014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
5920
5921 * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
5922
a48a7147 59232014-05-13 Bin Cheng <bin.cheng@arm.com>
5924
5925 * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
5926 (alloc_iv): Lower base expressions containing ADDR_EXPR.
5927
d5a682f1 59282014-05-13 Ian Bolton <ian.bolton@arm.com>
5929
5930 * config/aarch64/aarch64-protos.h
5931 (aarch64_hard_regno_caller_save_mode): New prototype.
5932 * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
5933 New function.
5934 * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
5935
cea19dab 59362014-05-13 Christian Bruel <christian.bruel@st.com>
5937
5938 * target.def (mode_switching): New hook vector.
5939 (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
5940 (mode_exit, modepriority_to_mode): Likewise.
5941 * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
5942 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
cea19dab 5943 * target.h: Include tm.h and hard-reg-set.h.
5944 * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
5945 (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
5946 * doc/tm.texi Regenerate.
5947 * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
5948 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
5949 * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
5950 (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
5951 * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
5952 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
5953 * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
5954 (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
8d86bf1c 5955 * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
5956 (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
5957 (ix86_emit_mode_set): Hookify.
cea19dab 5958 * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
8d86bf1c 5959 Delete.
cea19dab 5960 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
cea19dab 5961 * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
5962 (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
5963 (epiphany_mode_priority_to_mode): Remove declaration.
5964 * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
5965 (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
5966 (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
5967 Likewise.
8d86bf1c 5968 (epiphany_mode_priority_to_mode): Change priority type. Hookify.
cea19dab 5969 (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
5970 (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
5971
c256ccd8 59722014-05-13 Jakub Jelinek <jakub@redhat.com>
5973
5974 PR target/61060
5975 * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
5976 is const0_rtx, return immediately. Don't test count == 0 when
5977 it is always true.
5978
c562205f 59792014-05-13 Zhenqiang Chen <zhenqiang.chen@linaro.org>
5980
5981 * Makefile.in: add shrink-wrap.o.
5982 * config/i386/i386.c: include "shrink-wrap.h"
5983 * function.c: Likewise.
5984 (requires_stack_frame_p, next_block_for_reg,
5985 move_insn_for_shrink_wrap, prepare_shrink_wrap,
5986 dup_block_and_redirect): Move to shrink-wrap.c
5987 (thread_prologue_and_epilogue_insns): Extract three code segments
5988 as functions in shrink-wrap.c
5989 * function.h: Move #ifdef HAVE_simple_return ... #endif block to
5990 shrink-wrap.h
5991 * shrink-wrap.c: New file.
5992 * shrink-wrap.h: New file.
5993
d7e52bea 59942014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
5995
5996 * doc/extend.texi: Reflect current numbers of pragmas. Remove
5997 reference to Solaris.
5998
429b0b3f 59992014-05-12 Mike Stump <mikestump@comcast.net>
6000
6001 PR other/31778
6002 * genattrtab.c (filename): Add.
6003 (convert_set_attr_alternative): Improve error message.
6004 (check_defs): Restore read_md_filename for error messages.
6005 (gen_insn): Save filename.
6006
cea476aa 60072014-05-12 Dimitris Papavasiliou <dpapavas@gmail.com>
6008
6009 * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
6010 -fno-local-ivars and -fivar-visibility.
6011 * c-family/c.opt: Make -Wshadow also implicitly enable
6012 -Wshadow-ivar.
6013
8d86bf1c 60142014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
ccc46213 6015
6016 * doc/tm.texi: Remove reference to deleted macro.
6017 * doc/tm.texi.in: Likewise.
6018
467dcd24 60192014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
6020
6021 PR target/60991
6022 * config/avr/avr.c (avr_out_store_psi): Use correct constant
6023 to restore Y.
6024
b81ef88d 60252014-05-12 Georg-Johann Lay <avr@gjlay.de>
6026
0f894684 6027 PR libgcc/61152
b81ef88d 6028 * config/arm/arm.h (License): Add GCC Runtime Library Exception.
6029 * config/arm/aout.h (License): Same.
6030 * config/arm/bpabi.h (License): Same.
6031 * config/arm/elf.h (License): Same.
6032 * config/arm/linux-elf.h (License): Same.
6033 * config/arm/linux-gas.h (License): Same.
6034 * config/arm/netbsd-elf.h (License): Same.
6035 * config/arm/uclinux-eabi.h (License): Same.
6036 * config/arm/uclinux-elf.h (License): Same.
6037 * config/arm/vxworks.h (License): Same.
6038
15b28553 60392014-05-11 Jakub Jelinek <jakub@redhat.com>
6040
6041 * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
6042 * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
6043 number of operands to 3.
6044 (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
6045 * tree-nested.c (convert_nonlocal_omp_clauses,
6046 convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
6047 * gimplify.c (gimplify_scan_omp_clauses): Handle
6048 OMP_CLAUSE_LINEAR_STMT.
6049 * omp-low.c (lower_rec_input_clauses): Fix typo.
6050 (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
6051 cast between Fortran boolean_type_node and C _Bool if
6052 needed.
6053
cc56a54c 60542014-05-11 Richard Sandiford <rdsandiford@googlemail.com>
6055
6056 PR tree-optimization/61136
6057 * wide-int.h (multiple_of_p): Define a version that doesn't return
6058 the quotient.
6059 * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
6060 integer_zerop/const_binop pair.
6061 (multiple_of_p): Likewise, converting both operands to widest_int
6062 precision.
6063
fbe8cb74 60642014-05-09 Teresa Johnson <tejohnson@google.com>
6065
6066 * cgraphunit.c (analyze_functions): Use correct dump file.
6067
ec4af1be 60682014-05-09 Florian Weimer <fweimer@redhat.com>
6069
6070 * cfgexpand.c (stack_protect_decl_p): New function, extracted from
6071 expand_used_vars.
6072 (stack_protect_return_slot_p): New function.
6073 (expand_used_vars): Call stack_protect_decl_p and
6074 stack_protect_return_slot_p for -fstack-protector-strong.
6075
bb195fbb 60762014-05-09 David Wohlferd <LimeGreenSocks@yahoo.com>
6077 Andrew Haley <aph@redhat.com>
6078 Richard Sandiford <rdsandiford@googlemail.com>
6079
6080 * doc/extend.texi: Rewrite inline asm page / re-org asm-related
6081 pages.
6082
63062035 60832014-05-09 Kenneth Zadeck <zadeck@naturalbridge.com>
7fada633 6084
6085 PR middle-end/61111
6086 * fold-const.c (fold_binary_loc): Changed width of mask.
6087
cdd32d28 60882014-05-09 Georg-Johann Lay <avr@gjlay.de>
6089
6090 * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
6091 unsigned int initializers for regno_in, regno_out.
6092
c455e5d3 60932014-05-09 Georg-Johann Lay <avr@gjlay.de>
6094
6095 PR target/61055
6096 * config/avr/avr.md (cc): Add new attribute set_vzn.
6097 (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
6098 Set cc insn attribute to set_vzn instead of set_zn for alternatives
6099 with INC, DEC or NEG.
6100 * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
6101 (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
6102 INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
6103
bf3a4033 61042014-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6105
6106 Revert:
6107 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6108
6109 * wide-int.cc (UTItype): Define.
6110 (UDWtype): Define for appropriate W_TYPE_SIZE.
6111
4a3826df 61122014-05-09 Richard Biener <rguenther@suse.de>
6113
6114 * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
6115 * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
6116 (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
6117 (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
6118 ssa_propagate): Adjust.
6119
80ede13b 61202014-05-08 Jeff Law <law@redhat.com>
6121
6122 PR tree-optimization/61009
6123 * tree-ssa-threadedge.c (thread_through_normal_block): Return a
6124 tri-state rather than a boolean. When a block is too big to
6125 thread through, inform caller via negative return value.
6126 (thread_across_edge): If a block was too big for normal threading,
6127 then it's too big for a joiner too, so remove temporary equivalences
6128 and return immediately.
6129
2e6c58c4 61302014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
6131 Matthias Klose <doko@ubuntu.com>
6132
6133 PR driver/61106
6134 * optc-gen.awk: Fix option handling for -Wunused-parameter.
6135
44badaf8 61362014-05-08 Uros Bizjak <ubizjak@gmail.com>
6137
6138 PR target/59952
6139 * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
6140
e3825818 61412014-05-08 Uros Bizjak <ubizjak@gmail.com>
6142
6143 PR target/61092
6144 * config/alpha/alpha.c: Include gimple-iterator.h.
6145 (alpha_gimple_fold_builtin): New function. Move
6146 ALPHA_BUILTIN_UMULH folding from ...
6147 (alpha_fold_builtin): ... here.
6148 (TARGET_GIMPLE_FOLD_BUILTIN): New define.
6149
6b50e5dc 61502014-05-08 Wei Mi <wmi@google.com>
6151
6152 PR target/58066
e3825818 6153 * config/i386/i386.c (ix86_compute_frame_layout): Update
6154 preferred_stack_boundary for call, expanded from tls descriptor.
6155 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
6156 to depend on SP register.
6b50e5dc 6157 (*tls_local_dynamic_base_32_gnu): Ditto.
6158 (*tls_local_dynamic_32_once): Ditto.
6159 (tls_global_dynamic_64_<mode>): Set
6160 ix86_tls_descriptor_calls_expanded_in_cfun.
6161 (tls_local_dynamic_base_64_<mode>): Ditto.
6162 (tls_global_dynamic_32): Set
6163 ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
6164 to depend on SP register.
6165 (tls_local_dynamic_base_32): Ditto.
6166
ed50168b 61672014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6168
6169 * config/arm/arm_neon.h: Update comment.
6170 * config/arm/neon-docgen.ml: Delete.
6171 * config/arm/neon-gen.ml: Delete.
6172 * doc/arm-neon-intrinsics.texi: Update comment.
6173
b237f2f6 61742014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6175
6176 * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
6177 and v4sf versions.
6178 (vand, vorr, veor, vorn, vbic): Remove.
6179 * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
6180 iterator.
6181 (neon_vsub_unspec): Likewise.
6182 (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
6183
f8ccff16 61842014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6185
6186 * config/arm/arm_neon.h (vadd_s8): GNU C implementation
6187 (vadd_s16): Likewise.
6188 (vadd_s32): Likewise.
6189 (vadd_f32): Likewise.
6190 (vadd_u8): Likewise.
6191 (vadd_u16): Likewise.
6192 (vadd_u32): Likewise.
6193 (vadd_s64): Likewise.
6194 (vadd_u64): Likewise.
6195 (vaddq_s8): Likewise.
6196 (vaddq_s16): Likewise.
6197 (vaddq_s32): Likewise.
6198 (vaddq_s64): Likewise.
6199 (vaddq_f32): Likewise.
6200 (vaddq_u8): Likewise.
6201 (vaddq_u16): Likewise.
6202 (vaddq_u32): Likewise.
6203 (vaddq_u64): Likewise.
6204 (vmul_s8): Likewise.
6205 (vmul_s16): Likewise.
6206 (vmul_s32): Likewise.
6207 (vmul_f32): Likewise.
6208 (vmul_u8): Likewise.
6209 (vmul_u16): Likewise.
6210 (vmul_u32): Likewise.
6211 (vmul_p8): Likewise.
6212 (vmulq_s8): Likewise.
6213 (vmulq_s16): Likewise.
6214 (vmulq_s32): Likewise.
6215 (vmulq_f32): Likewise.
6216 (vmulq_u8): Likewise.
6217 (vmulq_u16): Likewise.
6218 (vmulq_u32): Likewise.
6219 (vsub_s8): Likewise.
6220 (vsub_s16): Likewise.
6221 (vsub_s32): Likewise.
6222 (vsub_f32): Likewise.
6223 (vsub_u8): Likewise.
6224 (vsub_u16): Likewise.
6225 (vsub_u32): Likewise.
6226 (vsub_s64): Likewise.
6227 (vsub_u64): Likewise.
6228 (vsubq_s8): Likewise.
6229 (vsubq_s16): Likewise.
6230 (vsubq_s32): Likewise.
6231 (vsubq_s64): Likewise.
6232 (vsubq_f32): Likewise.
6233 (vsubq_u8): Likewise.
6234 (vsubq_u16): Likewise.
6235 (vsubq_u32): Likewise.
6236 (vsubq_u64): Likewise.
6237 (vand_s8): Likewise.
6238 (vand_s16): Likewise.
6239 (vand_s32): Likewise.
6240 (vand_u8): Likewise.
6241 (vand_u16): Likewise.
6242 (vand_u32): Likewise.
6243 (vand_s64): Likewise.
6244 (vand_u64): Likewise.
6245 (vandq_s8): Likewise.
6246 (vandq_s16): Likewise.
6247 (vandq_s32): Likewise.
6248 (vandq_s64): Likewise.
6249 (vandq_u8): Likewise.
6250 (vandq_u16): Likewise.
6251 (vandq_u32): Likewise.
6252 (vandq_u64): Likewise.
6253 (vorr_s8): Likewise.
6254 (vorr_s16): Likewise.
6255 (vorr_s32): Likewise.
6256 (vorr_u8): Likewise.
6257 (vorr_u16): Likewise.
6258 (vorr_u32): Likewise.
6259 (vorr_s64): Likewise.
6260 (vorr_u64): Likewise.
6261 (vorrq_s8): Likewise.
6262 (vorrq_s16): Likewise.
6263 (vorrq_s32): Likewise.
6264 (vorrq_s64): Likewise.
6265 (vorrq_u8): Likewise.
6266 (vorrq_u16): Likewise.
6267 (vorrq_u32): Likewise.
6268 (vorrq_u64): Likewise.
6269 (veor_s8): Likewise.
6270 (veor_s16): Likewise.
6271 (veor_s32): Likewise.
6272 (veor_u8): Likewise.
6273 (veor_u16): Likewise.
6274 (veor_u32): Likewise.
6275 (veor_s64): Likewise.
6276 (veor_u64): Likewise.
6277 (veorq_s8): Likewise.
6278 (veorq_s16): Likewise.
6279 (veorq_s32): Likewise.
6280 (veorq_s64): Likewise.
6281 (veorq_u8): Likewise.
6282 (veorq_u16): Likewise.
6283 (veorq_u32): Likewise.
6284 (veorq_u64): Likewise.
6285 (vbic_s8): Likewise.
6286 (vbic_s16): Likewise.
6287 (vbic_s32): Likewise.
6288 (vbic_u8): Likewise.
6289 (vbic_u16): Likewise.
6290 (vbic_u32): Likewise.
6291 (vbic_s64): Likewise.
6292 (vbic_u64): Likewise.
6293 (vbicq_s8): Likewise.
6294 (vbicq_s16): Likewise.
6295 (vbicq_s32): Likewise.
6296 (vbicq_s64): Likewise.
6297 (vbicq_u8): Likewise.
6298 (vbicq_u16): Likewise.
6299 (vbicq_u32): Likewise.
6300 (vbicq_u64): Likewise.
6301 (vorn_s8): Likewise.
6302 (vorn_s16): Likewise.
6303 (vorn_s32): Likewise.
6304 (vorn_u8): Likewise.
6305 (vorn_u16): Likewise.
6306 (vorn_u32): Likewise.
6307 (vorn_s64): Likewise.
6308 (vorn_u64): Likewise.
6309 (vornq_s8): Likewise.
6310 (vornq_s16): Likewise.
6311 (vornq_s32): Likewise.
6312 (vornq_s64): Likewise.
6313 (vornq_u8): Likewise.
6314 (vornq_u16): Likewise.
6315 (vornq_u32): Likewise.
6316 (vornq_u64): Likewise.
6317
75a9ca84 63182014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6319
6320 * wide-int.cc (UTItype): Define.
e3825818 6321 (UDWtype): Define for appropriate W_TYPE_SIZE.
75a9ca84 6322
b6814ca0 63232014-05-08 Marc Glisse <marc.glisse@inria.fr>
6324
6325 PR tree-optimization/59100
6326 * tree-ssa-phiopt.c: Include tree-inline.h.
6327 (neutral_element_p, absorbing_element_p): New functions.
6328 (value_replacement): Handle conditional binary operations with a
6329 neutral or absorbing element.
6330
ff99a695 63312014-05-08 Richard Biener <rguenther@suse.de>
6332
6333 * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
6334 folding the expression.
6335 (valueize_expr): Remove.
6336 (visit_reference_op_load): Do not valueize the result of
6337 vn_get_expr_for.
6338 (simplify_binary_expression): Likewise.
6339 (simplify_unary_expression): Likewise.
6340
61ac9677 63412014-05-08 Richard Biener <rguenther@suse.de>
6342
6343 * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
6344 looking at TYPE_ARG_TYPES.
6345
9fa165ac 63462014-05-08 Richard Biener <rguenther@suse.de>
6347
6348 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
6349 pointer propagation special-case.
6350
2e8bfa0b 63512014-05-08 Bin Cheng <bin.cheng@arm.com>
6352
6353 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
6354 core part of address expressions.
6355
14b1b0c3 63562014-05-08 Alan Modra <amodra@gmail.com>
6357
6358 PR target/60737
6359 * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
6360 loads and stores when -mno-strict-align at any alignment.
6361 (expand_block_clear): Similarly. Also correct calculation of
6362 instruction count.
6363
c289c229 63642014-05-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
6365
6366 PR middle-end/39246
6367 * tree-complex.c (expand_complex_move): Keep line info when expanding
6368 complex move.
6369 * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
6370 of complex expression. Use new argument to display correct location
6371 for values coming from phi statement.
6372 (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
6373 (warn_uninitialized_phi): Pass location of phi argument to
6374 warn_uninit.
6375 * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
6376 COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
6377
631c977b 63782014-05-07 Segher Boessenkool <segher@kernel.crashing.org>
6379
6380 * config/rs6000/predicates.md (indexed_address_mem): New.
6381 * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
6382 load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
6383 fpstore_ux, fpstore_u.
6384 (sign_extend, indexed, update): New.
6385 (cell_micro): Adjust.
6386 (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
6387 *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
6388 *movsi_internal1, *movsi_internal1_single, *movhi_internal,
6389 *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
6390 *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
6391 *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
6392 *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
6393 *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
6394 *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
6395 *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
6396 *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
6397 *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
6398 *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
6399 *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
6400 *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
6401
6402 * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
6403 * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
6404 *vsx_extract_<mode>_store): Adjust.
6405 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
6406 is_cracked_insn, insn_must_be_first_in_group,
6407 insn_must_be_last_in_group): Adjust.
6408
6409 * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
6410 Adjust.
6411 * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
6412 ppc440-fpstore): Adjust.
6413 * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
6414 ppc476-fpstore): Adjust.
6415 * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
6416 ppc601-fpstore): Adjust.
6417 * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
6418 Adjust.
6419 * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
6420 Adjust.
6421 * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
6422 ppc7450-fpstore): Adjust.
6423 * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
6424 * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
6425 * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
6426 Adjust.
6427 * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
6428 cell-fpload, cell-fpload-update, cell-store, cell-store-update,
6429 cell-fpstore, cell-fpstore-update): Adjust.
6430 * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
6431 ppce300c3_store, ppce300c3_fpstore): Adjust.
6432 * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
6433 e500mc_fpstore): Adjust.
6434 * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
6435 e500mc64_store, e500mc64_fpstore): Adjust.
6436 * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
6437 e5500_fpstore): Adjust.
6438 * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
6439 e6500_fpstore): Adjust.
6440 * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
6441 Adjust.
6442 * config/rs6000/power4.md (power4-load, power4-load-ext,
6443 power4-load-ext-update, power4-load-ext-update-indexed,
6444 power4-load-update-indexed, power4-load-update, power4-fpload,
6445 power4-fpload-update, power4-store, power4-store-update,
6446 power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
6447 Adjust.
6448 * config/rs6000/power5.md (power5-load, power5-load-ext,
6449 power5-load-ext-update, power5-load-ext-update-indexed,
6450 power5-load-update-indexed, power5-load-update, power5-fpload,
6451 power5-fpload-update, power5-store, power5-store-update,
6452 power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
6453 Adjust.
6454 * config/rs6000/power6.md (power6-load, power6-load-ext,
6455 power6-load-update, power6-load-update-indexed,
6456 power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
6457 power6-fpload-update, power6-store, power6-store-update,
6458 power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
6459 Adjust.
6460 * config/rs6000/power7.md (power7-load, power7-load-ext,
6461 power7-load-update, power7-load-update-indexed,
6462 power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
6463 power7-fpload-update, power7-store, power7-store-update,
6464 power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
6465 Adjust.
6466 * config/rs6000/power8.md (power8-load, power8-load-update,
6467 power8-load-ext, power8-load-ext-update, power8-fpload,
6468 power8-fpload-update, power8-store, power8-store-update-indexed,
6469 power8-fpstore, power8-fpstore-update): Adjust.
6470 * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
6471 Adjust.
6472 * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
6473 titan_lsu_store, titan_lsu_fpstore): Adjust.
6474 * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
6475
9c00010f 64762014-05-07 Oleg Endo <olegendo@gcc.gnu.org>
6477
6478 PR target/60884
6479 * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
6480 unrolled byte insns. Emit address increments after move insns.
6481
0211cffc 64822014-05-07 David Malcolm <dmalcolm@redhat.com>
6483
6484 * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
6485 const_gimple, rather than a gimple.
6486 (gimple_call_builtin_p): Likewise, for the three variants.
6487
6488 * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
6489 (gimple_call_builtin_p): Likewise, for the three variants.
6490
6e5e0d6b 64912014-05-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
6492
6493 PR tree-optimization/61095
6494 * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
6495
38168b16 64962014-05-07 Richard Biener <rguenther@suse.de>
6497
6498 PR tree-optimization/61034
6499 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
6500 (maybe_skip_until): Use translate to take into account
6501 lattices when trying to do disambiguations.
6502 (get_continuation_for_phi_1): Likewise.
e3825818 6503 (get_continuation_for_phi): Adjust for added translate arguments.
38168b16 6504 (walk_non_aliased_vuses): Likewise.
e3825818 6505 * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
38168b16 6506 (walk_non_aliased_vuses): Likewise.
6507 (call_may_clobber_ref_p_1): Declare.
e3825818 6508 * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
6509 calls. Stop early if we are only supposed to disambiguate.
38168b16 6510 * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
6511
8d756247 65122014-05-07 Joern Rennecke <joern.rennecke@embecosm.com>
6513
6514 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
6515 Emit an error when the function has arguments.
6516
2f85801a 65172014-05-07 Thomas Schwinge <thomas@codesourcery.com>
6518
6519 * cfgloop.h (unswitch_loops): Remove.
6520 * doc/passes.texi: Remove references to loop-unswitch.c
6521 * timevar.def (TV_LOOP_UNSWITCH): Remove.
6522
1e1bca71 65232014-05-07 Evgeny Stupachenko <evstupac@gmail.com>
6524
6525 * tree-vect-data-refs.c (vect_grouped_load_supported): New
6526 check for loads group of length 3.
6527 (vect_permute_load_chain): New permutations for loads group of
6528 length 3.
6529 * tree-vect-stmts.c (vect_model_load_cost): Change cost
6530 of vec_perm_shuffle for the new permutations.
6531
549412c4 65322014-05-07 Alan Lawrence <alan.lawrence@arm.com>
6533
6534 * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
6535 vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
6536 vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
6537 vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
6538 vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
6539 vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
6540 vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
6541 vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
6542
81283dac 65432014-05-07 Thomas Schwinge <thomas@codesourcery.com>
6544
6545 * loop-unswitch.c: Delete.
6546
da3c842e 65472014-05-07 Richard Biener <rguenther@suse.de>
6548
6549 * config.gcc: Always set need_64bit_hwint to yes.
6550
f0f563f9 65512014-05-07 Chung-Ju Wu <jasonwucj@gmail.com>
6552
6553 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
6554 of using optimize_size.
6555
fff23ef2 65562014-05-06 Mike Stump <mikestump@comcast.net>
6557
6558 * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
6559
7d460314 65602014-05-06 Joseph Myers <joseph@codesourcery.com>
6561
6562 * config/i386/sse.md (*mov<mode>_internal)
6563 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
6564 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
6565 (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
6566 (*<code><mode>3, *andnot<mode>3<mask_name>)
6567 (<mask_codefor><code><mode>3<mask_name>): Only consider
6568 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
6569
d3c5aa49 65702014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
6571
6572 Revert:
6573 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
6574
6575 * lra-constraints.c (valid_address_p): Move earlier in file.
6576 Add a constraint argument to the address_info version.
6577 (satisfies_memory_constraint_p): New function.
6578 (satisfies_address_constraint_p): Likewise.
6579 (process_alt_operands, curr_insn_transform): Use them.
6580 (process_address): Pass the constraint to valid_address_p when
6581 checking address operands.
6582
5abc516d 65832014-05-06 Richard Sandiford <r.sandiford@uk.ibm.com>
6584
6585 * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
6586 to their respective blocks. Fix inadvertent use of "node".
6587
8059b95a 65882014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
6589
6590 * emit-rtl.c (init_derived_machine_modes): New functionm, split
6591 out from...
6592 (init_emit_once): ...here.
6593 * rtl.h (init_derived_machine_modes): Declare.
6594 * toplev.c (do_compile): Call it even if no_backend.
6595
960d5a55 65962014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
6597 Mike Stump <mikestump@comcast.net>
6598 Richard Sandiford <rdsandiford@googlemail.com>
6599 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6600
6601 * alias.c (ao_ref_from_mem): Use wide-int interfaces.
6602 (rtx_equal_for_memref_p): Update comment.
6603 (adjust_offset_for_component_ref): Use wide-int interfaces.
6604 * builtins.c (get_object_alignment_2): Likewise.
6605 (c_readstr): Likewise.
6606 (target_char_cast): Add comment.
6607 (determine_block_size): Use wide-int interfaces.
6608 (expand_builtin_signbit): Likewise.
6609 (fold_builtin_int_roundingfn): Likewise.
6610 (fold_builtin_bitop): Likewise.
6611 (fold_builtin_bswap): Likewise.
6612 (fold_builtin_logarithm): Use signop.
6613 (fold_builtin_pow): Likewise.
6614 (fold_builtin_memory_op): Use wide-int interfaces.
6615 (fold_builtin_object_size): Likewise.
6616 * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
6617 nb_iterations_estimate.
6618 (record_niter_bound): Use wide-int interfaces.
6619 (get_estimated_loop_iterations_int): Likewise.
6620 (get_estimated_loop_iterations): Likewise.
6621 (get_max_loop_iterations): Likewise.
6622 * cfgloop.h: Include wide-int.h.
6623 (struct nb_iter_bound): Change bound to widest_int.
6624 (struct loop): Change nb_iterations_upper_bound and
6625 nb_iterations_estimate to widest_int.
6626 (record_niter_bound): Switch to use widest_int.
6627 (get_estimated_loop_iterations): Likewise.
6628 (get_max_loop_iterations): Likewise.
6629 (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
6630 update for wide-int.
6631 * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
6632 * combine.c (try_combine): Likewise.
6633 (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
6634 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
6635 interfaces.
6636 (aarch64_float_const_representable_p): Likewise.
6637 * config/arc/arc.c: Include wide-int.h.
6638 (arc_can_use_doloop_p): Use wide-int interfaces.
6639 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
6640 (vfp3_const_double_index): Likewise.
6641 * config/avr/avr.c (avr_out_round): Likewise.
6642 (avr_fold_builtin): Likewise.
6643 * config/bfin/bfin.c (bfin_local_alignment): Likewise.
6644 (bfin_can_use_doloop_p): Likewise.
6645 * config/darwin.c (darwin_mergeable_constant_section): Likewise.
6646 (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
6647 * config/i386/i386.c: Include wide-int.h.
6648 (ix86_data_alignment): Use wide-int interfaces.
6649 (ix86_local_alignment): Likewise.
6650 (ix86_emit_swsqrtsf): Update real_from_integer.
6651 * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
6652 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
6653 * config/rs6000/predicates.md (any_operand): Add const_wide_int.
6654 (zero_constant): Likewise.
6655 (input_operand): Likewise.
6656 (splat_input_operand): Likewise.
6657 (non_logical_cint_operand): Change const_double to const_wide_int.
6658 * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
6659 (easy_altivec_constant): Remove comment.
6660 (paired_expand_vector_init): Use CONSTANT_P.
6661 (rs6000_legitimize_address): Handle CONST_WIDE_INT.
6662 (rs6000_emit_move): Update checks.
6663 (rs6000_aggregate_candidate): Use wide-int interfaces.
6664 (rs6000_expand_ternop_builtin): Likewise.
6665 (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
6666 (rs6000_assemble_integer): Likewise.
6667 (rs6000_hash_constant): Likewise.
6668 (output_toc): Likewise.
6669 (rs6000_rtx_costs): Likewise.
6670 (rs6000_emit_swrsqrt); Update call to real_from_integer.
6671 * config/rs6000/rs6000-c.c: Include wide-int.h.
6672 (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
6673 * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
6674 * config/rs6000/rs6000.md: Use const_scalar_int_operand.
6675 Handle CONST_WIDE_INT.
6676 * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
6677 Use tree_fits_uhwi_p.
6678 * config/sparc/sparc.c: Include wide-int.h.
6679 (sparc_fold_builtin): Use wide-int interfaces.
6680 * config/vax/vax.c: Include wide-int.h.
6681 (vax_float_literal): Use real_from_integer.
6682 * coretypes.h (struct hwivec_def): New.
6683 (hwivec): New.
6684 (const_hwivec): New.
6685 * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
6686 (equiv_constant): Handle CONST_WIDE_INT.
6687 * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
6688 (cselib_hash_rtx): Handle CONST_WIDE_INT.
6689 * dbxout.c (stabstr_U): Use wide-int interfaces.
6690 (dbxout_type): Update to use cst_fits_shwi_p.
6691 * defaults.h (LOG2_BITS_PER_UNIT): Define.
6692 (TARGET_SUPPORTS_WIDE_INT): Add default.
6693 * dfp.c: Include wide-int.h.
6694 (decimal_real_to_integer2): Use wide-int interfaces and rename to
6695 decimal_real_to_integer.
6696 * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
6697 decimal_real_to_integer.
6698 * doc/generic.texi (Constant expressions): Update for wide_int.
6699 * doc/rtl.texi (const_double): Likewise.
6700 (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
6701 (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
6702 * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
6703 (REAL_VALUE_FROM_INT): Remove.
6704 (TARGET_SUPPORTS_WIDE_INT): New.
6705 * doc/tm.texi: Regenerate.
6706 * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
6707 * double-int.h: Include wide-int.h.
6708 (struct wi::int_traits): New.
6709 * dwarf2out.c (get_full_len): New.
6710 (dw_val_equal_p): Add case dw_val_class_wide_int.
6711 (size_of_loc_descr): Likewise.
6712 (output_loc_operands): Likewise.
6713 (insert_double): Remove.
6714 (insert_wide_int): New.
6715 (add_AT_wide): New.
6716 (print_die): Add case dw_val_class_wide_int.
6717 (attr_checksum): Likewise.
6718 (attr_checksum_ordered): Likewise.
6719 (same_dw_val_p): Likewise.
6720 (size_of_die): Likewise.
6721 (value_format): Likewise.
6722 (output_die): Likewise.
6723 (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
6724 Use wide-int.
6725 (clz_loc_descriptor): Use wide-int interfaces.
6726 (mem_loc_descriptor): Likewise. Handle CONST_WIDE_INT.
6727 (loc_descriptor): Use wide-int interfaces. Handle CONST_WIDE_INT.
6728 (round_up_to_align): Use wide-int interfaces.
6729 (field_byte_offset): Likewise.
6730 (insert_double): Rename to insert_wide_int. Use wide-int interfaces.
6731 (add_const_value_attribute): Handle CONST_WIDE_INT. Update
6732 CONST_DOUBLE handling. Use wide-int interfaces.
6733 (add_bound_info): Use tree_fits_uhwi_p. Use wide-int interfaces.
6734 (gen_enumeration_type_die): Use add_AT_wide.
6735 (hash_loc_operands): Add case dw_val_class_wide_int.
6736 (compare_loc_operands): Likewise.
6737 * dwarf2out.h: Include wide-int.h.
6738 (wide_int_ptr): New.
6739 (enum dw_val_class): Add dw_val_class_wide_int.
6740 (struct dw_val_struct): Add val_wide.
6741 * emit-rtl.c (const_wide_int_htab): New.
6742 (const_wide_int_htab_hash): New.
6743 (const_wide_int_htab_eq): New.
6744 (lookup_const_wide_int): New.
6745 (const_double_htab_hash): Use wide-int interfaces.
6746 (const_double_htab_eq): Likewise.
6747 (rtx_to_double_int): Conditionally compile for wide-int.
6748 (immed_double_int_const): Rename to immed_wide_int_const and
6749 update for wide-int.
6750 (immed_double_const): Conditionally compile for wide-int.
6751 (init_emit_once): Use wide-int interfaces.
6752 * explow.c (plus_constant): Likewise.
6753 * expmed.c (mask_rtx): Move further up file. Use wide-int interfaces.
6754 (lshift_value): Use wide-int interfaces.
6755 (expand_mult): Likewise.
6756 (choose_multiplier): Likewise.
6757 (expand_smod_pow2): Likewise.
6758 (make_tree): Likewise.
6759 * expr.c (convert_modes): Consolidate handling of constants.
6760 Use wide-int interfaces.
6761 (emit_group_load_1): Add note.
6762 (store_expr): Update comment.
6763 (get_inner_reference): Use wide-int interfaces.
6764 (expand_constructor): Update comment.
6765 (expand_expr_real_2): Use wide-int interfaces.
6766 (expand_expr_real_1): Likewise.
6767 (reduce_to_bit_field_precision): Likewise.
6768 (const_vector_from_tree): Likewise.
6769 * final.c: Include wide-int-print.h.
6770 (output_addr_const): Handle CONST_WIDE_INT. Use CONST_DOUBLE_AS_INT_P.
6771 * fixed-value.c: Include wide-int.h.
6772 (fixed_from_string): Use wide-int interfaces.
6773 (fixed_to_decimal): Likewise.
6774 (fixed_convert_from_real): Likewise.
6775 (real_convert_from_fixed): Likewise.
6776 * fold-const.h (mem_ref_offset): Return an offset_int.
6777 (div_if_zero_remainder): Remove code parameter.
6778 * fold-const.c (div_if_zero_remainder): Remove code parameter.
6779 Use wide-int interfaces.
6780 (may_negate_without_overflow_p): Use wide-int interfaces.
6781 (negate_expr_p): Likewise.
6782 (fold_negate_expr): Likewise.
6783 (int_const_binop_1): Likewise.
6784 (const_binop): Likewise.
6785 (fold_convert_const_int_from_int): Likewise.
6786 (fold_convert_const_int_from_real): Likewise.
6787 (fold_convert_const_int_from_fixed): Likewise.
6788 (fold_convert_const_fixed_from_int): Likewise.
6789 (all_ones_mask_p): Take an unsigned size. Use wide-int interfaces.
6790 (sign_bit_p): Use wide-int interfaces.
6791 (make_range_step): Likewise.
6792 (build_range_check): Likewise. Pass an integer of the correct type
6793 instead of using integer_one_node.
6794 (range_predecessor): Pass an integer of the correct type instead
6795 of using integer_one_node.
6796 (range_successor): Likewise.
6797 (merge_ranges): Likewise.
6798 (unextend): Use wide-int interfaces.
6799 (extract_muldiv_1): Likewise.
6800 (fold_div_compare): Likewise.
6801 (fold_single_bit_test): Likewise.
6802 (fold_sign_changed_comparison): Likewise.
6803 (try_move_mult_to_index): Update calls to div_if_zero_remainder.
6804 (fold_plusminus_mult_expr): Use wide-int interfaces.
6805 (native_encode_int): Likewise.
6806 (native_interpret_int): Likewise.
6807 (fold_unary_loc): Likewise.
6808 (pointer_may_wrap_p): Likewise.
6809 (size_low_cst): Likewise.
6810 (mask_with_tz): Likewise.
6811 (fold_binary_loc): Likewise.
6812 (fold_ternary_loc): Likewise.
6813 (multiple_of_p): Likewise.
6814 (tree_call_nonnegative_warnv_p): Update calls to
6815 tree_int_cst_min_precision and real_from_integer.
6816 (fold_negate_const): Use wide-int interfaces.
6817 (fold_abs_const): Likewise.
6818 (fold_relational_const): Use tree_int_cst_lt.
6819 (round_up_loc): Use wide-int interfaces.
6820 * genemit.c (gen_exp): Add CONST_WIDE_INT case.
6821 * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
6822 * gengtype.c: Remove include of double-int.h.
6823 (do_typedef): Use wide-int interfaces.
6824 (open_base_files): Add wide-int.h.
6825 (main): Add offset_int and widest_int typedefs.
6826 * gengtype-lex.l: Handle "^".
6827 (CXX_KEYWORD): Add "static".
6828 * gengtype-parse.c (require3): New.
6829 (require_template_declaration): Handle constant template arguments
6830 and nested templates.
6831 * gengtype-state.c: Don't include "double-int.h".
6832 * genpreds.c (write_one_predicate_function): Update comment.
6833 (write_tm_constrs_h): Add check for hval and lval use in
6834 CONST_WIDE_INT.
6835 * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
6836 (add_to_sequence): Likewise.
6837 * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
6838 and const_double_operand.
6839 * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
6840 interfaces.
6841 * gimple-fold.c (get_base_constructor): Likewise.
6842 (fold_array_ctor_reference): Likewise.
6843 (fold_nonarray_ctor_reference): Likewise.
6844 (fold_const_aggregate_ref_1): Likewise.
6845 (gimple_val_nonnegative_real_p): Likewise.
6846 (gimple_fold_indirect_ref): Likewise.
6847 * gimple-pretty-print.c (dump_ssaname_info): Likewise.
6848 * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
6849 (struct slsr_cand_d): Change index to be widest_int.
6850 (struct incr_info_d): Change incr to be widest_int.
6851 (alloc_cand_and_find_basis): Use wide-int interfaces.
6852 (slsr_process_phi): Likewise.
6853 (backtrace_base_for_ref): Likewise. Return a widest_int.
6854 (restructure_reference): Take a widest_int instead of a double_int.
6855 (slsr_process_ref): Use wide-int interfaces.
6856 (create_mul_ssa_cand): Likewise.
6857 (create_mul_imm_cand): Likewise.
6858 (create_add_ssa_cand): Likewise.
6859 (create_add_imm_cand): Take a widest_int instead of a double_int.
6860 (slsr_process_add): Use wide-int interfaces.
6861 (slsr_process_cast): Likewise.
6862 (slsr_process_copy): Likewise.
6863 (dump_candidate): Likewise.
6864 (dump_incr_vec): Likewise.
6865 (replace_ref): Likewise.
6866 (cand_increment): Likewise. Return a widest_int.
6867 (cand_abs_increment): Likewise.
6868 (replace_mult_candidate): Take a widest_int instead of a double_int.
6869 (replace_unconditional_candidate): Use wide-int interfaces.
6870 (incr_vec_index): Take a widest_int instead of a double_int.
6871 (create_add_on_incoming_edge): Likewise.
6872 (create_phi_basis): Use wide-int interfaces.
6873 (replace_conditional_candidate): Likewise.
6874 (record_increment): Take a widest_int instead of a double_int.
6875 (record_phi_increments): Use wide-int interfaces.
6876 (phi_incr_cost): Take a widest_int instead of a double_int.
6877 (lowest_cost_path): Likewise.
6878 (total_savings): Likewise.
6879 (analyze_increments): Use wide-int interfaces.
6880 (ncd_with_phi): Take a widest_int instead of a double_int.
6881 (ncd_of_cand_and_phis): Likewise.
6882 (nearest_common_dominator_for_cands): Likewise.
6883 (insert_initializers): Use wide-int interfaces.
6884 (all_phi_incrs_profitable): Likewise.
6885 (replace_one_candidate): Likewise.
6886 (replace_profitable_candidates): Likewise.
6887 * godump.c: Include wide-int-print.h.
6888 (go_output_typedef): Use wide-int interfaces.
6889 * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
6890 * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
6891 (build_loop_iteration_domains): Likewise.
6892 * hooks.h: Include wide-int.h rather than double-int.h.
6893 (hook_bool_dint_dint_uint_bool_true): Delete.
6894 (hook_bool_wint_wint_uint_bool_true): Declare.
6895 * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
6896 (hook_bool_wint_wint_uint_bool_true): New.
6897 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
6898 interfaces.
6899 (ubsan_expand_si_overflow_mul_check): Likewise.
6900 * ipa-devirt.c (get_polymorphic_call_info): Likewise.
6901 * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
6902 (get_ancestor_addr_info): Likewise.
6903 (ipa_modify_call_arguments): Likewise.
6904 * loop-doloop.c (doloop_modify): Likewise.
6905 (doloop_optimize): Likewise.
6906 * loop-iv.c (iv_number_of_iterations): Likewise.
6907 * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
6908 (unroll_loop_constant_iterations): Likewise.
6909 (decide_unroll_runtime_iterations): Likewise.
6910 (unroll_loop_runtime_iterations): Likewise.
6911 (decide_peel_simple): Likewise.
6912 (decide_unroll_stupid): Likewise.
6913 * lto-streamer-in.c (streamer_read_wi): Add.
6914 (input_cfg): Use wide-int interfaces.
6915 (lto_input_tree_1): Likewise.
6916 * lto-streamer-out.c (streamer_write_wi): Add.
6917 (hash_tree): Use wide-int interfaces.
6918 (output_cfg): Likewise.
6919 * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
6920 (GTFILES): Add wide-int.h and signop.h.
6921 (TAGS): Look for .cc files too.
6922 * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
6923 * optabs.c (expand_subword_shift): Likewise.
6924 (expand_doubleword_shift): Likewise.
6925 (expand_absneg_bit): Likewise.
6926 (expand_copysign_absneg): Likewise.
6927 (expand_copysign_bit): Likewise.
6928 * postreload.c (reload_cse_simplify_set): Likewise.
6929 * predict.c (predict_iv_comparison): Likewise.
6930 * pretty-print.h: Include wide-int-print.h.
6931 (pp_wide_int) New.
6932 * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
6933 * print-tree.c: Include wide-int-print.h.
6934 (print_node_brief): Use wide-int interfaces.
6935 (print_node): Likewise.
6936 * read-rtl.c (validate_const_wide_int): New.
6937 (read_rtx_code): Add CONST_WIDE_INT case.
6938 * real.c: Include wide-int.h.
6939 (real_to_integer2): Delete.
6940 (real_to_integer): New function, returning a wide_int.
6941 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
6942 (ten_to_ptwo): Update call to real_from_integer.
6943 (real_digit): Likewise.
6944 * real.h: Include signop.h, wide-int.h and insn-modes.h.
6945 (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
6946 (REAL_VALUE_TO_INT): Delete.
6947 (real_to_integer): Declare a wide-int form.
6948 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
6949 * recog.c (const_int_operand): Improve comment.
6950 (const_scalar_int_operand): New.
6951 (const_double_operand): Add a separate definition for CONST_WIDE_INT.
6952 * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
6953 (split_double): Likewise.
6954 * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
6955 (rtx_size): Likewise.
6956 (rtx_alloc_stat_v): New.
6957 (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
6958 (cwi_output_hex): New.
6959 (iterative_hash_rtx): Handle CONST_WIDE_INT.
6960 (cwi_check_failed_bounds): New.
6961 * rtl.def (CONST_WIDE_INT): New.
6962 * rtl.h: Include <utility> and wide-int.h.
6963 (struct hwivec_def): New.
6964 (CWI_GET_NUM_ELEM): New.
6965 (CWI_PUT_NUM_ELEM): New.
6966 (struct rtx_def): Add num_elem and hwiv.
6967 (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
6968 (CASE_CONST_UNIQUE): Likewise.
6969 (CASE_CONST_ANY): Likewise.
6970 (CONST_SCALAR_INT_P): Likewise.
6971 (CONST_WIDE_INT_P): New.
6972 (CWI_ELT): New.
6973 (HWIVEC_CHECK): New.
6974 (cwi_check_failed_bounds): New.
6975 (CWI_ELT): New.
6976 (HWIVEC_CHECK): New.
6977 (CONST_WIDE_INT_VEC) New.
6978 (CONST_WIDE_INT_NUNITS) New.
6979 (CONST_WIDE_INT_ELT) New.
6980 (rtx_mode_t): New type.
6981 (wi::int_traits <rtx_mode_t>): New.
6982 (wi::shwi): New.
6983 (wi::min_value): New.
6984 (wi::max_value): New.
6985 (rtx_alloc_v) New.
6986 (const_wide_int_alloc): New.
6987 (immed_wide_int_const): New.
6988 * sched-vis.c (print_value): Handle CONST_WIDE_INT.
6989 * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
6990 * signop.h: New file.
6991 * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
6992 (simplify_const_unary_operation): Use wide-int interfaces.
6993 (simplify_binary_operation_1): Likewise.
6994 (simplify_const_binary_operation): Likewise.
6995 (simplify_const_relational_operation): Likewise.
6996 (simplify_immed_subreg): Likewise.
6997 * stmt.c (expand_case): Likewise.
6998 * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
6999 signop rather than a bool.
7000 * stor-layout.c (layout_type): Use wide-int interfaces.
7001 (initialize_sizetypes): Update calls to
7002 set_min_and_max_values_for_integral_type.
7003 (set_min_and_max_values_for_integral_type): Take a signop rather
7004 than a bool. Use wide-int interfaces.
7005 (fixup_signed_type): Update accordingly. Remove
7006 HOST_BITS_PER_DOUBLE_INT limit.
7007 (fixup_unsigned_type): Likewise.
7008 * system.h (STATIC_CONSTANT_P): New.
7009 (STATIC_ASSERT): New.
7010 * target.def (can_use_doloop_p): Take widest_ints rather than
7011 double_ints.
7012 * target.h: Include wide-int.h rather than double-int.h.
7013 * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
7014 than double_ints.
7015 * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
7016 rather than INT_CST_LT_UNSIGNED.
7017 (can_use_doloop_if_innermost): Take widest_ints rather than
7018 double_ints.
7019 * tree-affine.c: Include wide-int-print.h.
7020 (double_int_ext_for_comb): Delete.
7021 (wide_int_ext_for_comb): New.
7022 (aff_combination_zero): Use wide-int interfaces.
7023 (aff_combination_const): Take a widest_int instead of a double_int.
7024 (aff_combination_elt): Use wide-int interfaces.
7025 (aff_combination_scale): Take a widest_int instead of a double_int.
7026 (aff_combination_add_elt): Likewise.
7027 (aff_combination_add_cst): Likewise.
7028 (aff_combination_add): Use wide-int interfaces.
7029 (aff_combination_convert): Likewise.
7030 (tree_to_aff_combination): Likewise.
7031 (add_elt_to_tree): Take a widest_int instead of a double_int.
7032 (aff_combination_to_tree): Use wide-int interfaces.
7033 (aff_combination_remove_elt): Likewise.
7034 (aff_combination_add_product): Take a widest_int instead of
7035 a double_int.
7036 (aff_combination_mult): Use wide-int interfaces.
7037 (aff_combination_expand): Likewise.
7038 (double_int_constant_multiple_p): Delete.
7039 (wide_int_constant_multiple_p): New.
7040 (aff_combination_constant_multiple_p): Take a widest_int pointer
7041 instead of a double_int pointer.
7042 (print_aff): Use wide-int interfaces.
7043 (get_inner_reference_aff): Take a widest_int pointer
7044 instead of a double_int pointer.
7045 (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
7046 * tree-affine.h: Include wide-int.h.
7047 (struct aff_comb_elt): Change type of coef to widest_int.
7048 (struct affine_tree_combination): Change type of offset to widest_int.
7049 (double_int_ext_for_comb): Delete.
7050 (wide_int_ext_for_comb): New.
7051 (aff_combination_const): Use widest_int instead of double_int.
7052 (aff_combination_scale): Likewise.
7053 (aff_combination_add_elt): Likewise.
7054 (aff_combination_constant_multiple_p): Likewise.
7055 (get_inner_reference_aff): Likewise.
7056 (aff_comb_cannot_overlap_p): Likewise.
7057 (aff_combination_zero_p): Use wide-int interfaces.
7058 * tree.c: Include tree.h.
7059 (init_ttree): Use make_int_cst.
7060 (tree_code_size): Removed code for INTEGER_CST case.
7061 (tree_size): Add INTEGER_CST case.
7062 (make_node_stat): Update comment.
7063 (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
7064 (build_int_cst_type): Use wide-int interfaces.
7065 (double_int_to_tree): Likewise.
7066 (double_int_fits_to_tree_p): Delete.
7067 (force_fit_type_double): Delete.
7068 (force_fit_type): New.
7069 (int_cst_hash_hash): Use wide-int interfaces.
7070 (int_cst_hash_eq): Likewise.
7071 (build_int_cst_wide): Delete.
7072 (wide_int_to_tree): New.
7073 (cache_integer_cst): Use wide-int interfaces.
7074 (build_low_bits_mask): Likewise.
7075 (cst_and_fits_in_hwi): Likewise.
7076 (real_value_from_int_cst): Likewise.
7077 (make_int_cst_stat): New.
7078 (integer_zerop): Use wide_int interfaces.
7079 (integer_onep): Likewise.
7080 (integer_all_onesp): Likewise.
7081 (integer_pow2p): Likewise.
7082 (integer_nonzerop): Likewise.
7083 (tree_log2): Likewise.
7084 (tree_floor_log2): Likewise.
7085 (tree_ctz): Likewise.
7086 (int_size_in_bytes): Likewise.
7087 (mem_ref_offset): Return an offset_int rather than a double_int.
7088 (build_type_attribute_qual_variant): Use wide_int interfaces.
7089 (type_hash_eq): Likewise
7090 (tree_int_cst_equal): Likewise.
7091 (tree_int_cst_lt): Delete.
7092 (tree_int_cst_compare): Likewise.
7093 (tree_fits_shwi_p): Use wide_int interfaces.
7094 (tree_fits_uhwi_p): Likewise.
7095 (tree_int_cst_sign_bit): Likewise.
7096 (tree_int_cst_sgn): Likewise.
7097 (tree_int_cst_min_precision): Take a signop rather than a bool.
7098 (simple_cst_equal): Use wide_int interfaces.
7099 (compare_tree_int): Likewise.
7100 (iterative_hash_expr): Likewise.
7101 (int_fits_type_p): Likewise. Use tree_int_cst_lt rather than
7102 INT_CST_LT.
7103 (get_type_static_bounds): Use wide_int interfaces.
7104 (tree_int_cst_elt_check_failed): New.
7105 (build_common_tree_nodes): Reordered to set prec before filling in
7106 value.
7107 (int_cst_value): Check cst_and_fits_in_hwi.
7108 (widest_int_cst_value): Use wide_int interfaces.
7109 (upper_bound_in_type): Likewise.
7110 (lower_bound_in_type): Likewise.
7111 (num_ending_zeros): Likewise.
7112 (drop_tree_overflow): Likewise.
7113 * tree-call-cdce.c (check_pow): Update call to real_from_integer.
7114 (gen_conditions_for_pow_cst_base): Likewise.
7115 * tree-cfg.c: Include wide-int.h and wide-int-print.h.
7116 (group_case_labels_stmt): Use wide-int interfaces.
7117 (verify_gimple_assign_binary): Likewise.
7118 (print_loop): Likewise.
7119 * tree-chrec.c (tree_fold_binomial): Likewise.
7120 * tree-core.h (struct tree_base): Add int_length.
7121 (struct tree_int_cst): Change rep of value.
7122 * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
7123 (dr_may_alias_p): Likewise.
7124 (max_stmt_executions_tree): Likewise.
7125 * tree.def (INTEGER_CST): Update comment.
7126 * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
7127 * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
7128 * tree-dump.c: Include wide-int.h and wide-int-print.h.
7129 (dequeue_and_dump): Use wide-int interfaces.
7130 * tree.h: Include wide-int.h.
7131 (NULL_TREE): Moved to earlier loc in file.
7132 (TREE_INT_CST_ELT_CHECK): New.
7133 (tree_int_cst_elt_check_failed): New.
7134 (TYPE_SIGN): New.
7135 (TREE_INT_CST): Delete.
7136 (TREE_INT_CST_LOW): Use wide-int interfaces.
7137 (TREE_INT_CST_HIGH): Delete.
7138 (TREE_INT_CST_NUNITS): New.
7139 (TREE_INT_CST_EXT_NUNITS): Likewise.
7140 (TREE_INT_CST_OFFSET_NUNITS): Likewise.
7141 (TREE_INT_CST_ELT): Likewise.
7142 (INT_CST_LT): Delete.
7143 (tree_int_cst_elt_check): New (two forms).
7144 (type_code_size): Update comment.
7145 (make_int_cst_stat, make_int_cst): New.
7146 (tree_to_double_int): Delete.
7147 (double_int_fits_to_tree_p): Delete.
7148 (force_fit_type_double): Delete.
7149 (build_int_cstu): Replace with out-of-line function.
7150 (build_int_cst_wide): Delete.
7151 (tree_int_cst_lt): Define inline.
7152 (tree_int_cst_le): New.
7153 (tree_int_cst_compare): Define inline.
7154 (tree_int_cst_min_precision): Take a signop rather than a bool.
7155 (wi::int_traits <const_tree>): New.
7156 (wi::int_traits <tree>): New.
7157 (wi::extended_tree): New.
7158 (wi::int_traits <wi::extended_tree>): New.
7159 (wi::to_widest): New.
7160 (wi::to_offset): New.
7161 (wi::fits_to_tree_p): New.
7162 (wi::min_value): New.
7163 (wi::max_value): New.
7164 * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
7165 (copy_tree_body_r): Likewise.
7166 * tree-object-size.c (compute_object_offset): Likewise.
7167 (addr_object_size): Likewise.
7168 * tree-predcom.c: Include wide-int-print.h.
7169 (struct dref_d): Change type of offset to widest_int.
7170 (dump_dref): Call wide-int printer.
7171 (aff_combination_dr_offset): Use wide-int interfaces.
7172 (determine_offset): Take a widest_int pointer rather than a
7173 double_int pointer.
7174 (split_data_refs_to_components): Use wide-int interfaces.
7175 (suitable_component_p): Likewise.
7176 (order_drefs): Likewise.
7177 (add_ref_to_chain): Likewise.
7178 (valid_initializer_p): Likewise.
7179 (determine_roots_comp): Likewise.
7180 * tree-pretty-print.c: Include wide-int-print.h.
7181 (dump_generic_node): Use wide-int interfaces.
7182 * tree-sra.c (sra_ipa_modify_expr): Likewise.
7183 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
7184 (move_fixed_address_to_symbol): Likewise.
7185 (move_hint_to_base): Likewise.
7186 (move_pointer_to_base): Likewise.
7187 (move_variant_to_index): Likewise.
7188 (most_expensive_mult_to_index): Likewise.
7189 (addr_to_parts): Likewise.
7190 (copy_ref_info): Likewise.
7191 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
7192 (indirect_refs_may_alias_p): Likewise.
7193 (stmt_kills_ref_p_1): Likewise.
7194 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
7195 * tree-ssa-ccp.c: Update comment at top of file. Include
7196 wide-int-print.h.
7197 (struct prop_value_d): Change type of mask to widest_int.
7198 (extend_mask): New function.
7199 (dump_lattice_value): Use wide-int interfaces.
7200 (get_default_value): Likewise.
7201 (set_constant_value): Likewise.
7202 (set_value_varying): Likewise.
7203 (valid_lattice_transition): Likewise.
7204 (set_lattice_value): Likewise.
7205 (value_to_double_int): Delete.
7206 (value_to_wide_int): New.
7207 (get_value_from_alignment): Use wide-int interfaces.
7208 (get_value_for_expr): Likewise.
7209 (do_dbg_cnt): Likewise.
7210 (ccp_finalize): Likewise.
7211 (ccp_lattice_meet): Likewise.
7212 (bit_value_unop_1): Use widest_ints rather than double_ints.
7213 (bit_value_binop_1): Likewise.
7214 (bit_value_unop): Use wide-int interfaces.
7215 (bit_value_binop): Likewise.
7216 (bit_value_assume_aligned): Likewise.
7217 (evaluate_stmt): Likewise.
7218 (ccp_fold_stmt): Likewise.
7219 (visit_cond_stmt): Likewise.
7220 (ccp_visit_stmt): Likewise.
7221 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
7222 (constant_pointer_difference): Likewise.
7223 (associate_pointerplus): Likewise.
7224 (combine_conversions): Likewise.
7225 * tree-ssa-loop.h: Include wide-int.h.
7226 (struct tree_niter_desc): Change type of max to widest_int.
7227 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
7228 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
7229 (remove_redundant_iv_tests): Likewise.
7230 (canonicalize_loop_induction_variables): Likewise.
7231 * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
7232 (constant_multiple_of): Take a widest_int pointer instead of
7233 a double_int pointer.
7234 (get_computation_aff): Use wide-int interfaces.
7235 (ptr_difference_cost): Likewise.
7236 (difference_cost): Likewise.
7237 (get_loop_invariant_expr_id): Likewise.
7238 (get_computation_cost_at): Likewise.
7239 (iv_elimination_compare_lt): Likewise.
7240 (may_eliminate_iv): Likewise.
7241 * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
7242 instead of double_int.
7243 (max_loop_iterations): Likewise.
7244 (max_stmt_executions): Likewise.
7245 (estimated_stmt_executions): Likewise.
7246 * tree-ssa-loop-niter.c: Include wide-int-print.h.
7247 (split_to_var_and_offset): Use wide-int interfaces.
7248 (determine_value_range): Likewise.
7249 (bound_difference_of_offsetted_base): Likewise.
7250 (bounds_add): Take a widest_int instead of a double_int.
7251 (number_of_iterations_ne_max): Use wide-int interfaces.
7252 (number_of_iterations_ne): Likewise.
7253 (number_of_iterations_lt_to_ne): Likewise.
7254 (assert_loop_rolls_lt): Likewise.
7255 (number_of_iterations_lt): Likewise.
7256 (number_of_iterations_le): Likewise.
7257 (number_of_iterations_cond): Likewise.
7258 (number_of_iterations_exit): Likewise.
7259 (finite_loop_p): Likewise.
7260 (derive_constant_upper_bound_assign): Likewise.
7261 (derive_constant_upper_bound): Return a widest_int.
7262 (derive_constant_upper_bound_ops): Likewise.
7263 (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
7264 (record_estimate): Take a widest_int rather than a double_int.
7265 (record_nonwrapping_iv): Use wide-int interfaces.
7266 (double_int_cmp): Delete.
7267 (wide_int_cmp): New.
7268 (bound_index): Take a widest_int rather than a double_int.
7269 (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
7270 (maybe_lower_iteration_bound): Likewise.
7271 (estimate_numbers_of_iterations_loop): Likewise.
7272 (estimated_loop_iterations): Take a widest_int pointer than than
7273 a double_int pointer.
7274 (estimated_loop_iterations_int): Use wide-int interfaces.
7275 (max_loop_iterations): Take a widest_int pointer than than
7276 a double_int pointer.
7277 (max_loop_iterations_int): Use wide-int interfaces.
7278 (max_stmt_executions): Take a widest_int pointer than than
7279 a double_int pointer.
7280 (estimated_stmt_executions): Likewise.
7281 (n_of_executions_at_most): Use wide-int interfaces.
7282 (scev_probably_wraps_p): Likewise.
7283 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
7284 to real_to_integer.
7285 * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
7286 interfaces.
7287 * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
7288 double_ints. Adjust for trailing_wide_ints <3> representation.
7289 (set_nonzero_bits): Likewise.
7290 (get_range_info): Return wide_ints rather than double_ints.
7291 Adjust for trailing_wide_ints <3> representation.
7292 (get_nonzero_bits): Likewise.
7293 (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
7294 representation.
7295 * tree-ssanames.h (struct range_info_def): Replace min, max and
7296 nonzero_bits with a trailing_wide_ints <3>.
7297 (set_range_info): Use wide_int_refs rather than double_ints.
7298 (set_nonzero_bits): Likewise.
7299 (get_range_info): Return wide_ints rather than double_ints.
7300 (get_nonzero_bits): Likewise.
7301 * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
7302 * tree-ssa-pre.c (phi_translate_1): Likewise.
7303 * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
7304 (acceptable_pow_call): Likewise.
7305 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
7306 interfaces.
7307 (vn_reference_fold_indirect): Likewise.
7308 (vn_reference_maybe_forwprop_address): Likewise.
7309 (valueize_refs_1): Likewise.
7310 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
7311 * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
7312 tree_int_cst_lt and tree_int_cst_le.
7313 * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
7314 interfaces.
7315 (streamer_alloc_tree): Likewise.
7316 * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
7317 (streamer_write_tree_header): Likewise.
7318 (streamer_write_integer_cst): Likewise.
7319 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
7320 (build_constructors): Likewise.
7321 (array_value_type): Likewise.
7322 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
7323 (vect_check_gather): Likewise.
7324 * tree-vect-generic.c (build_replicated_const): Likewise.
7325 (expand_vector_divmod): Likewise.
7326 * tree-vect-loop.c (vect_transform_loop): Likewise.
7327 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
7328 (vect_do_peeling_for_alignment): Likewise.
7329 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
7330 * tree-vrp.c: Include wide-int.h.
7331 (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
7332 (extract_range_from_assert): Use wide-int interfaces.
7333 (vrp_int_const_binop): Likewise.
7334 (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
7335 double_int pointers.
7336 (ranges_from_anti_range): Use wide-int interfaces.
7337 (quad_int_cmp): Delete.
7338 (quad_int_pair_sort): Likewise.
7339 (extract_range_from_binary_expr_1): Use wide-int interfaces.
7340 (extract_range_from_unary_expr_1): Likewise.
7341 (adjust_range_with_scev): Likewise.
7342 (masked_increment): Take and return wide_ints rather than double_ints.
7343 (register_edge_assert_for_2): Use wide-int interfaces.
7344 (check_array_ref): Likewise.
7345 (search_for_addr_array): Likewise.
7346 (maybe_set_nonzero_bits): Likewise.
7347 (union_ranges): Pass an integer of the correct type instead of
7348 using integer_one_node.
7349 (intersect_ranges): Likewise.
7350 (simplify_truth_ops_using_ranges): Likewise.
7351 (simplify_bit_ops_using_ranges): Use wide-int interfaces.
7352 (range_fits_type_p): Likewise.
7353 (simplify_cond_using_ranges): Likewise. Take a signop rather than
7354 a bool.
7355 (simplify_conversion_using_ranges): Use wide-int interfaces.
7356 (simplify_float_conversion_using_ranges): Likewise.
7357 (vrp_finalize): Likewise.
7358 * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
7359 (gimple_stringops_transform): Likewise.
7360 * varasm.c (decode_addr_const): Likewise.
7361 (const_hash_1): Likewise.
7362 (const_rtx_hash_1): Likewise
7363 (output_constant): Likewise.
7364 (array_size_for_constructor): Likewise.
7365 (output_constructor_regular_field): Likewise.
7366 (output_constructor_bitfield): Likewise.
7367 * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
7368 * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
7369 GENERATOR_FILEs.
7370 * gencheck.c: Define BITS_PER_UNIT.
7371 * wide-int.cc: New.
7372 * wide-int.h: New.
7373 * wide-int-print.cc: New.
7374 * wide-int-print.h: New.
7375
50f39f78 73762014-05-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7377
7378 * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
7379
8b88439e 73802014-05-06 Richard Biener <rguenther@suse.de>
7381
7382 * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
7383 TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
7384 (TODO_verify_all): Adjust.
7385 * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
7386 TODO_verify_stmts and TODO_verify_rtl_sharing.
7387 * bb-reorder.c: Likewise.
7388 * cfgexpand.c: Likewise.
7389 * cprop.c: Likewise.
7390 * cse.c: Likewise.
7391 * function.c: Likewise.
7392 * fwprop.c: Likewise.
7393 * gcse.c: Likewise.
7394 * gimple-ssa-isolate-paths.c: Likewise.
7395 * gimple-ssa-strength-reduction.c: Likewise.
7396 * ipa-split.c: Likewise.
7397 * loop-init.c: Likewise.
7398 * loop-unroll.c: Likewise.
7399 * lower-subreg.c: Likewise.
7400 * modulo-sched.c: Likewise.
7401 * postreload-gcse.c: Likewise.
7402 * predict.c: Likewise.
7403 * recog.c: Likewise.
7404 * sched-rgn.c: Likewise.
7405 * store-motion.c: Likewise.
7406 * tracer.c: Likewise.
7407 * trans-mem.c: Likewise.
7408 * tree-call-cdce.c: Likewise.
7409 * tree-cfg.c: Likewise.
7410 * tree-cfgcleanup.c: Likewise.
7411 * tree-complex.c: Likewise.
7412 * tree-eh.c: Likewise.
7413 * tree-emutls.c: Likewise.
7414 * tree-if-conv.c: Likewise.
7415 * tree-into-ssa.c: Likewise.
7416 * tree-loop-distribution.c: Likewise.
7417 * tree-object-size.c: Likewise.
7418 * tree-parloops.c: Likewise.
7419 * tree-pass.h: Likewise.
7420 * tree-sra.c: Likewise.
7421 * tree-ssa-ccp.c: Likewise.
7422 * tree-ssa-copy.c: Likewise.
7423 * tree-ssa-copyrename.c: Likewise.
7424 * tree-ssa-dce.c: Likewise.
7425 * tree-ssa-dom.c: Likewise.
7426 * tree-ssa-dse.c: Likewise.
7427 * tree-ssa-forwprop.c: Likewise.
7428 * tree-ssa-ifcombine.c: Likewise.
7429 * tree-ssa-loop-ch.c: Likewise.
7430 * tree-ssa-loop-ivcanon.c: Likewise.
7431 * tree-ssa-loop.c: Likewise.
7432 * tree-ssa-math-opts.c: Likewise.
7433 * tree-ssa-phiopt.c: Likewise.
7434 * tree-ssa-phiprop.c: Likewise.
7435 * tree-ssa-pre.c: Likewise.
7436 * tree-ssa-reassoc.c: Likewise.
7437 * tree-ssa-sink.c: Likewise.
7438 * tree-ssa-strlen.c: Likewise.
7439 * tree-ssa-tail-merge.c: Likewise.
7440 * tree-ssa-uncprop.c: Likewise.
7441 * tree-switch-conversion.c: Likewise.
7442 * tree-tailcall.c: Likewise.
7443 * tree-vect-generic.c: Likewise.
7444 * tree-vectorizer.c: Likewise.
7445 * tree-vrp.c: Likewise.
7446 * tsan.c: Likewise.
7447 * var-tracking.c: Likewise.
7448 * bt-load.c: Likewise.
7449 * cfgcleanup.c: Likewise.
7450 * combine-stack-adj.c: Likewise.
7451 * combine.c: Likewise.
7452 * compare-elim.c: Likewise.
7453 * config/epiphany/resolve-sw-modes.c: Likewise.
7454 * config/i386/i386.c: Likewise.
7455 * config/mips/mips.c: Likewise.
7456 * config/s390/s390.c: Likewise.
7457 * config/sh/sh_treg_combine.cc: Likewise.
7458 * config/sparc/sparc.c: Likewise.
7459 * dce.c: Likewise.
7460 * dse.c: Likewise.
7461 * final.c: Likewise.
7462 * ifcvt.c: Likewise.
7463 * mode-switching.c: Likewise.
7464 * passes.c: Likewise.
7465 * postreload.c: Likewise.
7466 * ree.c: Likewise.
7467 * reg-stack.c: Likewise.
7468 * regcprop.c: Likewise.
7469 * regrename.c: Likewise.
7470 * web.c: Likewise.
7471
d72243e8 74722014-05-06 Richard Biener <rguenther@suse.de>
7473
7474 PR middle-end/61070
7475 * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
7476 * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
7477
25807eb8 74782014-05-05 Jan Hubicka <hubicka@ucw.cz>
7479
7480 PR ipa/60965
7481 * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
7482
e9eaaa6a 74832014-05-05 Radovan Obradovic <robradovic@mips.com>
e3825818 7484 Tom de Vries <tom@codesourcery.com>
e9eaaa6a 7485
e3825818 7486 * target.def (call_fusage_contains_non_callee_clobbers): New
7487 DEFHOOKPOD.
e9eaaa6a 7488 * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
7489 Hooks to @menu.
7490 (@node Miscellaneous Register Hooks): New node.
7491 (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
7492 * doc/tm.texi: Regenerate.
7493
008f3532 74942014-05-05 Marek Polacek <polacek@redhat.com>
7495
7496 PR driver/61065
7497 * opts.c (common_handle_option): Call error_at instead of warning_at.
7498
4e1527fb 74992014-05-05 Richard Biener <rguenther@suse.de>
7500
7501 * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
7502 from last_verified if update_ssa ran. Move TODO_verify_rtl_sharing
7503 under the TODO_verify_il umbrella.
7504
00d06379 75052014-05-05 Richard Biener <rguenther@suse.de>
7506
7507 * passes.c (execute_function_todo): Move TODO_verify_flow under
7508 the TODO_verify_ul umbrella.
7509
9bcd5e16 75102014-05-05 Richard Biener <rguenther@suse.de>
7511
7512 PR middle-end/61010
e3825818 7513 * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
7514 X & CST away from a CST that is the mask of a mode.
9bcd5e16 7515
3cc9bbed 75162014-05-05 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7517
7518 * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
7519 int argument to enum machine_mode.
7520 (picochip_class_max_nregs): Ditto.
7521 * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
7522 (picochip_class_max_nregs): Ditto.
7523
0ac109b5 75242014-05-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7525
7526 * target.def: Add new target hook.
7527 * doc/tm.texi: Regenerate.
7528 * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
7529 * targhooks.c (default_keep_leaf_when_profiled): New function.
7530
7531 * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
7532 (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
7533
1b83c31b 75342014-05-05 Bin Cheng <bin.cheng@arm.com>
7535
7536 PR tree-optimization/60363
7537 * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
7538 (copy_phi_args): New parameters. Call get_value_locus_in_path.
7539 (update_destination_phis): New parameter.
7540 (create_edge_and_update_destination_phis): Ditto.
7541 (ssa_fix_duplicate_block_edges): Pass new arguments.
7542 (thread_single_edge): Ditto.
7543
4fcd5227 75442014-05-04 Peter Bergner <bergner@vnet.ibm.com>
7545
7546 * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
7547 (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
7548 (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
7549 * config/rs6000/rs6000-builtin.def (BU_MISC_1):
7550 Use RS6000_BTM_HARD_FLOAT.
7551 (BU_MISC_2): Likewise.
7552 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
7553 RS6000_BTM_HARD_FLOAT.
7554 (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
7555 is explicitly used.
7556 (rs6000_invalid_builtin): Add hard floating builtin support.
7557 (rs6000_expand_builtin): Relax the gcc_assert to allow the new
7558 hard float builtins.
7559 (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
7560
85c68200 75612014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
7562
7563 * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
7564 Add missing function* argument.
7565
e928facd 75662014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
7567
7568 * lra-constraints.c (valid_address_p): Move earlier in file.
7569 Add a constraint argument to the address_info version.
7570 (satisfies_memory_constraint_p): New function.
7571 (satisfies_address_constraint_p): Likewise.
7572 (process_alt_operands, curr_insn_transform): Use them.
7573 (process_address): Pass the constraint to valid_address_p when
7574 checking address operands.
7575
95faea77 75762014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
7577
7578 * config/mips/mips.c (mips_isa_rev): New variable.
7579 (mips_set_architecture): Set it.
7580 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
7581 from mips_isa_rev.
7582 (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
7583 (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
7584 (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
7585 (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
7586 (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
7587 conditions in terms of mips_isa_rev.
7588 (mips_isa_rev): Declare.
7589
f4a24c51 75902014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
7591
7592 * config/sh/sh-mem.cc: Use tabs instead of spaces.
7593 (prob_unlikely, prob_likely): Make variables const.
7594
952bb49f 75952014-05-03 Denis Chertykov <chertykov@gmail.com>
7596
7597 * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
7598
5e8551bd 75992014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
7600
7601 * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
7602
f0a8ace1 76032014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
7604
7605 * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
7606 (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
7607 * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
7608 functions.
7609 (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
7610 sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
7611 sh_pass_in_reg_p.
7612 Replace usage of ROUND_REG with sh_round_reg.
7613 Use CEIL instead of ROUND_ADVANCE.
7614
c8a347fc 76152014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
7616
7617 PR target/61026
7618 * config/sh/sh.c: Include stdlib headers before everything else.
7619
9d172013 76202014-05-02 Jakub Jelinek <jakub@redhat.com>
7621
7622 * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
7623 GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
7624 (gimplify_adjust_omp_clauses): Simd region is never
7625 directly nested in combined parallel. Instead, for linear
7626 with copyin/copyout, if in combined for simd loop, make decl
7627 firstprivate/lastprivate on OMP_FOR.
7628 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
7629 expand_omp_for_static_chunk): When setting endvar, also set
7630 fd->loop.v to the same value.
7631
2f40fa7e 76322014-05-02 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
7633
7634 * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
7635
51590909 76362014-05-02 Alan Lawrence <alan.lawrence@arm.com>
7637
7638 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
7639 expression.
7640
2e64cd72 76412014-05-02 Marek Polacek <polacek@redhat.com>
7642
7643 * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
7644
443c40ad 76452014-05-02 Kito Cheng <kito@0xlab.org>
f64087e0 7646
7647 * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
7648 to a C expression marco.
7649 * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
7650 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
7651 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
7652 * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
7653 HONOR_REG_ALLOC_ORDER.
7654 * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
7655
22dd1354 76562014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7657
7658 * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
7659
41b512d6 76602014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7661
7662 * config/arc/arc.c (arc_select_cc_mode): Fix typo.
7663
0b6de244 76642014-05-01 Yuri Rumyantsev <ysrumyan@gmail.com>
7665
7666 * tree-if-conv.c (is_cond_scalar_reduction): New function.
7667 (convert_scalar_cond_reduction): Likewise.
7668 (predicate_scalar_phi): Add recognition and transformation
7669 of simple conditioanl reduction to be vectorizable.
7670
e4ab2ef3 76712014-05-01 Marek Polacek <polacek@redhat.com>
7672
7673 PR c/43245
7674 * doc/invoke.texi: Document -Wdiscarded-qualifiers.
7675
8a21d39c 76762014-04-30 Alan Lawrence <alan.lawrence@arm.com>
7677
7678 * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
7679 vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
7680 vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
7681 vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
7682 vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
7683 vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
7684 vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
7685 vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
7686
9efce292 76872014-04-30 Joern Rennecke <joern.rennecke@embecosm.com>
7688
7689 * config/arc/arc.opt (mlra): Move comment above option name
7690 to avoid mis-parsing as language options.
7691
fc99725b 76922014-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7693
7694 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
7695 * config/sol2.h: ... here.
7696 * config/sol2-10.h: Remove.
7697
7698 * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
7699 (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
7700 (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
7701 (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
7702 (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
7703 * config/sol2.h: ... here.
7704 (SECTION_NAME_FORMAT): Don't redefine.
7705 (STARTFILE_ARCH32_SPEC): Rename to ...
7706 (STARTFILE_ARCH_SPEC): ... this.
7707 (ASM_OUTPUT_ALIGNED_COMMON): Move ...
7708 * config/sparc/sol2.h: ... here.
7709 (SECTION_NAME_FORMAT): Don't undef.
7710 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
7711 (SUBTARGET_EXTRA_SPECS): Remove.
7712 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
7713
7714 * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
7715 (MD_STARTFILE_PREFIX): Remove.
7716 (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
7717 (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
7718 (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
7719 (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
7720 (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
7721 (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
7722 * config/i386/sol2.h: ... here.
7723 (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
7724 * config/i386/sol2-bi.h: Remove.
7725 * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
7726 (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
7727
7728 * config/i386/t-sol2-64: Rename to ...
7729 * config/i386/t-sol2: ... this.
7730 * config/sparc/t-sol2-64: Rename to ...
7731 * config/sparc/t-sol2: ... this.
7732
7733 * config.gcc (*-*-solaris2*): Split sol2_tm_file into
7734 sol2_tm_file_head, sol2_tm_file_tail.
7735 Include ${cpu_type}/sol2.h before sol2.h.
7736 Remove sol2-10.h.
7737 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
7738 i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
7739 Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
7740 Reflect i386/t-sol2-64 renaming.
7741 (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
7742 Reflect sparc/t-sol2-64 renaming.
7743
71b65939 77442014-04-30 Richard Biener <rguenther@suse.de>
7745
7746 * passes.c (execute_function_todo): Move TODO_verify_stmts
7747 and TODO_verify_ssa under the TODO_verify_il umbrella.
7748 * tree-ssa.h (verify_ssa): Adjust prototype.
7749 * tree-ssa.c (verify_ssa): Add parameter to tell whether
7750 we should verify SSA operands.
7751 * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
7752 * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
7753 whether we should verify whether not throwing stmts have EH info.
7754 * graphite-scop-detection.c (create_sese_edges): Adjust.
7755 * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
7756 * tree-eh.c (lower_try_finally_switch): Do not add the
7757 default case label twice.
7758
52cc0072 77592014-04-30 Marek Polacek <polacek@redhat.com>
7760
7761 * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
7762 * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
7763 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
7764 * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
7765
e1506184 77662014-04-29 Alan Lawrence <alan.lawrence@arm.com>
7767
7768 * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
7769 vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
7770 vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
7771 vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
7772 vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
7773 vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
7774 vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
7775 vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
7776
1f09cb43 77772014-04-29 David Malcolm <dmalcolm@redhat.com>
7778
7779 * tree-cfg.c (dump_function_to_file): Dump the return type of
7780 functions, in a line to itself before the function body, mimicking
7781 the layout of a C function.
7782
b1562bbb 77832014-04-29 Jakub Jelinek <jakub@redhat.com>
7784
7785 PR tree-optimization/60971
7786 * tree-tailcall.c (process_assignment): Reject conversions which
7787 reduce precision.
7788
bf29c577 77892014-04-29 James Greenhalgh <james.greenhalgh@arm.com>
7790
7791 * calls.c (initialize_argument_information): Always treat
7792 PUSH_ARGS_REVERSED as 1, simplify code accordingly.
7793 (expand_call): Likewise.
7794 (emit_library_call_calue_1): Likewise.
7795 * expr.c (PUSH_ARGS_REVERSED): Do not define.
7796 (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
7797 code accordingly.
7798
c0b06633 77992014-04-29 Nick Clifton <nickc@redhat.com>
7800
7801 * config/msp430/msp430.md (umulsidi): Fix typo.
7802 (mulhisi3): Enable even inside interrupt handlers.
7803 * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
7804 bigger return address pushed in large mode.
7805
92e46ab1 78062014-04-29 Nick Clifton <nickc@redhat.com>
7807
7808 * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
7809 (arc_init_reg_tables): Use a machine_mode enum to iterate over
7810 available modes.
7811 * config/m32r/m32r.c (init_reg_tables): Likewise.
7812 * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
7813 enum to hold the modes.
7814
21a003a7 78152014-04-29 Richard Biener <rguenther@suse.de>
7816
7817 * dominance.c (free_dominance_info): Add overload with
7818 function parameter.
7819 (dom_info_state): Likewise.
7820 (dom_info_available_p): Likewise.
7821 * basic-block.h (free_dominance_info, dom_info_state,
7822 dom_info_available_p): Declare overloads.
7823 * passes.c (execute_function_todo): Verify that verifiers
7824 don't change dominator info state. Drop dominator info
7825 for IPA pass invocations.
7826 * cgraph.c (release_function_body): Restore asserts that
7827 dominator information is released.
7828
54751bcf 78292014-04-29 Patrick Palka <patrick@parcs.ath.cx>
7830
7831 * doc/invoke.texi: Fix typo.
7832 * tree-vrp.c: Fix typos.
e3825818 7833 * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
54751bcf 7834
615d3db9 78352014-04-29 Zhenqiang Chen <zhenqiang.chen@linaro.org>
7836
7837 * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
7838
657d877a 78392014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
7840
7841 * config/aarch64/aarch64-builtins.c
7842 (aarch64_types_storestruct_lane_qualifiers): New.
7843 (TYPES_STORESTRUCT_LANE): Likewise.
7844 * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
7845 (st3_lane): Likewise.
7846 (st4_lane): Likewise.
7847 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
7848 (vec_store_lanesci_lane<mode>): Likewise.
7849 (vec_store_lanesxi_lane<mode>): Likewise.
7850 (aarch64_st2_lane<VQ:mode>): Likewise.
7851 (aarch64_st3_lane<VQ:mode>): Likewise.
7852 (aarch64_st4_lane<VQ:mode>): Likewise.
7853 * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
7854 * config/aarch64/arm_neon.h
7855 (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
7856 use new macro arguments.
7857 (__ST3_LANE_FUNC): Likewise.
7858 (__ST4_LANE_FUNC): Likewise.
7859 * config/aarch64/iterators.md (V_TWO_ELEM): New.
7860 (V_THREE_ELEM): Likewise.
7861 (V_FOUR_ELEM): Likewise.
7862
ed17a4a3 78632014-04-28 David Malcolm <dmalcolm@redhat.com>
7864
7865 * doc/gimple.texi: Replace the description of the now-defunct
7866 union gimple_statement_d with a diagram showing the
7867 gimple_statement_base class hierarchy and its relationships to
7868 the GSS_ and GIMPLE_ enums.
7869
610b1acb 78702014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
7871
7872 * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
7873 * config/aarch64/aarch64.c
7874 (aarch64_cannot_change_mode_class): Weaken conditions.
7875 (aarch64_modes_tieable_p): New.
7876 * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
7877
66240e32 78782014-04-28 Pat Haugen <pthaugen@us.ibm.com>
7879
7880 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
7881 (loadsync_<mode>): Change mode.
7882 (load_quadpti, store_quadpti): New.
7883 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
7884 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
7885
5e62a0e5 78862014-04-28 Martin Jambor <mjambor@suse.cz>
7887
7888 * tree-sra.c (sra_modify_expr): Generate new memory accesses with
7889 same alias type as the original statement.
7890 (subreplacement_assignment_data): New type.
7891 (handle_unscalarized_data_in_subtree): New type of parameter,
7892 generate new memory accesses with same alias type as the original
7893 statement.
7894 (load_assign_lhs_subreplacements): Likewise.
7895 (sra_modify_constructor_assign): Generate new memory accesses with
7896 same alias type as the original statement.
7897
2bdae241 78982014-04-28 Richard Biener <rguenther@suse.de>
7899
7900 * tree-pass.h (TODO_verify_il): Define.
7901 (TODO_verify_all): Complete properly.
7902 * passes.c (execute_function_todo): Move existing loop-closed
7903 SSA verification under TODO_verify_il.
7904 (execute_one_pass): Trigger TODO_verify_il at todo-after time.
7905 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
7906 Fix tree sharing issue.
7907
060fc206 79082014-04-28 Richard Biener <rguenther@suse.de>
7909
7910 PR middle-end/60092
7911 * builtins.def (DEF_C11_BUILTIN): Add.
7912 (BUILT_IN_ALIGNED_ALLOC): Likewise.
7913 * coretypes.h (enum function_class): Add function_c11_misc.
7914 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
7915 BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
7916 (call_may_clobber_ref_p_1): Likewise.
7917 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
7918 (mark_all_reaching_defs_necessary_1): Likewise.
7919 (propagate_necessity): Likewise.
7920 (eliminate_unnecessary_stmts): Likewise.
7921 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
7922
b7f05e98 79232014-04-28 Richard Biener <rguenther@suse.de>
7924
7925 * tree-vrp.c (vrp_var_may_overflow): Remove.
7926 (vrp_visit_phi_node): Rather than bumping to +-INF possibly
7927 with overflow immediately bump to one before that value and
7928 let iteration figure out overflow status.
7929
b90976fa 79302014-04-28 Richard Biener <rguenther@suse.de>
7931
7932 * configure.ac: Do valgrind header checks unconditionally.
7933 Add --enable-valgrind-annotations.
7934 * system.h: Guard valgrind header inclusion with
7935 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
7936 * alloc-pool.c (pool_alloc, pool_free): Use
7937 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
7938 to guard possibly dead code.
7939 * config.in: Regenerated.
7940 * configure: Likewise.
7941
96902209 79422014-04-28 Jeff Law <law@redhat.com>
7943
7944 PR tree-optimization/60902
7945 * tree-ssa-threadedge.c
7946 (record_temporary_equivalences_from_stmts_at_dest): Only iterate
7947 over real defs when invalidating outputs from statements that do not
7948 produce useful outputs for threading.
7949
0cb40176 79502014-04-28 Richard Biener <rguenther@suse.de>
7951
7952 PR tree-optimization/60979
7953 * graphite-scop-detection.c (scopdet_basic_block_info): Reject
7954 SCOPs that end in a block with a successor with abnormal
7955 predecessors.
7956
3538ae0d 79572014-04-28 Richard Biener <rguenther@suse.de>
7958
7959 * tree-pass.h (execute_pass_list): Adjust prototype.
e3825818 7960 * passes.c (pass_manager::execute_early_local_passes): Adjust.
3538ae0d 7961 (do_per_function): Change callback signature, push all actual
7962 work to the callbals.
7963 (do_per_function_toporder): Likewise.
7964 (execute_function_dump): Adjust.
7965 (execute_function_todo): Likewise.
7966 (clear_last_verified): Likewise.
7967 (verify_curr_properties): Likewise.
7968 (update_properties_after_pass): Likewise.
7969 (execute_pass_list_1): Split out from ...
7970 (execute_pass_list): ... here. Adjust.
7971 (execute_ipa_pass_list): Likewise.
7972 * cgraphunit.c (cgraph_add_new_function): Adjust.
7973 (analyze_function): Likewise.
7974 (expand_function): Likewise.
7975 * cgraph.c (release_function_body): Free dominance info
7976 here instead of asserting it was magically freed elsewhere.
7977
51494e08 79782014-04-28 Eric Botcazou <ebotcazou@adacore.com>
7979
7980 * configure.ac: Tweak GAS check for LEON instructions on SPARC.
7981 * configure: Regenerate.
7982 * config/sparc/sparc.opt (muser-mode): New option.
7983 * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
7984 for LEON3.
7985 (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
7986 * doc/invoke.texi (SPARC options): Document -muser-mode.
7987
c4096777 79882014-04-27 Richard Sandiford <rdsandiford@googlemail.com>
7989
7990 * cselib.c (find_slot_memmode): Delete.
7991 (cselib_hasher): Change compare_type to a struct.
7992 (cselib_hasher::equal): Update accordingly. Don't expect wrapped
7993 constants.
7994 (preserve_constants_and_equivs): Adjust for new compare_type.
7995 (cselib_find_slot): Likewise. Take the mode of the rtx as argument.
7996 (wrap_constant): Delete.
7997 (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
7998
c763997f 79992014-04-26 Markus Trippelsdorf <markus@trippelsdorf.de>
8000
8001 * doc/install.texi (Building with profile feedback): Remove
8002 outdated sentence.
8003
fe6543eb 80042014-04-26 Tom de Vries <tom@codesourcery.com>
8005
8006 * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
8007 array accesses.
8008
f4c44374 80092014-04-25 Cary Coutant <ccoutant@google.com>
8010
e3825818 8011 PR debug/60929
f4c44374 8012 * dwarf2out.c (should_move_die_to_comdat): A type definition
e3825818 8013 can contain a subprogram definition, but don't move it to a
8014 comdat unit.
f4c44374 8015 (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
e3825818 8016 (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
8017 from original DIE.
f4c44374 8018 (clone_tree_hash): Rename to...
8019 (clone_tree_partial): ...this; change callers. Copy
e3825818 8020 DW_TAG_subprogram DIEs as declarations.
f4c44374 8021 (copy_decls_walk): Don't copy children of a declaration into a
e3825818 8022 type unit.
f4c44374 8023
4b3db529 80242014-04-25 H.J. Lu <hongjiu.lu@intel.com>
8025
8026 PR target/60969
8027 * config/i386/i386.md (*movsf_internal): Set MODE to SI for
8028 alternative 12.
8029
3112c3f7 80302014-04-25 Jiong Wang <jiong.wang@arm.com>
8031
8032 * config/arm/predicates.md (call_insn_operand): Add long_call check.
8033 * config/arm/arm.md (sibcall, sibcall_value): Force the address to
8034 reg for long_call.
8035 * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
8036 restriction.
8037
dc1913c5 80382014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8039
e3825818 8040 * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
dc1913c5 8041
05a4798a 80422014-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8043
8044 PR tree-optimization/60930
8045 * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject
8046 creating a multiply candidate by folding two constant
8047 multiplicands when the result overflows.
8048
7ecc7511 80492014-04-25 Jakub Jelinek <jakub@redhat.com>
8050
8051 PR tree-optimization/60960
8052 * tree-vect-generic.c (expand_vector_operation): Only call
8053 expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
8054
e67cfba4 80552014-04-25 Tom de Vries <tom@codesourcery.com>
8056
8057 * expr.c (clobber_reg_mode): New function.
8058 * expr.h (clobber_reg): New function.
8059
6792947d 80602014-04-25 Tom de Vries <tom@codesourcery.com>
8061
8062 * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
8063 clobbers.
8064
1630ba6e 80652014-04-25 Radovan Obradovic <robradovic@mips.com>
e3825818 8066 Tom de Vries <tom@codesourcery.com>
1630ba6e 8067
8068 * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
8069 handle.
8070 * rtl.h (find_all_hard_reg_sets): Add bool parameter.
8071 * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
8072 new argument to find_all_hard_reg_sets call.
8073
4ea1b263 80742014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8075
8076 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
8077 Use HOST_WIDE_INT_C for mask literal.
8078 (aarch_rev16_shleft_mask_imm_p): Likewise.
8079
49eafa82 80802014-04-25 Eric Botcazou <ebotcazou@adacore.com>
8081
8082 PR target/60941
8083 * config/sparc/sparc.md (ashlsi3_extend): Delete.
8084
04e3bdf9 80852014-04-25 Marc Glisse <marc.glisse@inria.fr>
8086
8087 PR preprocessor/56540
8088 * config/i386/i386-c.c (ix86_target_macros): Define
8089 __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
8090
ee02dd56 80912014-04-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8092
8093 * configure.ac (tga_func): Remove.
8094 (LIB_TLS_SPEC): Remove.
8095 * configure: Regenerate.
8096 * config.in: Regenerate.
8097 * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
8098
aab7170d 80992014-04-25 Richard Biener <rguenther@suse.de>
8100
8101 PR ipa/60912
8102 * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
8103 call stmt use/clobber sets during stmt walk instead of
8104 walking the possibly incomplete set of caller edges.
8105
645773da 81062014-04-25 Richard Biener <rguenther@suse.de>
8107
8108 PR ipa/60911
8109 * passes.c (apply_ipa_transforms): Inline into only caller ...
8110 (execute_one_pass): ... here. Properly bring in function
8111 bodies for nodes we want to apply IPA transforms to.
8112
a16d0316 81132014-04-24 Cong Hou <congh@google.com>
8114
8115 PR tree-optimization/60896
8116 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
8117 all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
8118 (vect_mark_pattern_stmts): Set the def type of all statements in
8119 PATTERN_DEF_SEQ as vect_internal_def.
8120
ac0adecc 81212014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
8122
8123 * doc/extend.texi (PowerPC Built-in Functions): Document new
e3825818 8124 powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
ac0adecc 8125 (PowerPC AltiVec/VSX Built-in Functions): Likewise.
8126
8127 * config/rs6000/predicates.md (const_0_to_3_operand): New
8128 predicate to match 0..3 integer constants.
8129
8130 * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
8131 to support adding miscellaneous builtin functions.
8132 (BU_DFP_MISC_2): Likewise.
8133 (BU_P7_MISC_1): Likewise.
8134 (BU_P7_MISC_2): Likewise.
8135 (BU_P8V_MISC_3): Likewise.
8136 (BU_MISC_1): Likewise.
8137 (BU_MISC_2): Likewise.
8138 (DIVWE): Add extended divide builtin functions.
8139 (DIVWEO): Likewise.
8140 (DIVWEU): Likewise.
8141 (DIVWEUO): Likewise.
8142 (DIVDE): Likewise.
8143 (DIVDEO): Likewise.
8144 (DIVDEU): Likewise.
8145 (DIVDEUO): Likewise.
8146 (DXEX): Add decimal floating-point builtin functions.
8147 (DXEXQ): Likewise.
8148 (DDEDPD): Likewise.
8149 (DDEDPDQ): Likewise.
8150 (DENBCD): Likewise.
8151 (DENBCDQ): Likewise.
8152 (DIEX): Likewise.
8153 (DIEXQ): Likewise.
8154 (DSCLI): Likewise.
8155 (DSCLIQ): Likewise.
8156 (DSCRI): Likewise.
8157 (DSCRIQ): Likewise.
8158 (CDTBCD): Add new BCD builtin functions.
8159 (CBCDTD): Likewise.
8160 (ADDG6S): Likewise.
8161 (BCDADD): Likewise.
8162 (BCDADD_LT): Likewise.
8163 (BCDADD_EQ): Likewise.
8164 (BCDADD_GT): Likewise.
8165 (BCDADD_OV): Likewise.
8166 (BCDSUB): Likewise.
8167 (BCDSUB_LT): Likewise.
8168 (BCDSUB_EQ): Likewise.
8169 (BCDSUB_GT): Likewise.
8170 (BCDSUB_OV): Likewise.
8171 (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
8172 (UNPACK_TD): Likewise.
8173 (PACK_TF): Likewise.
8174 (UNPACK_TF): Likewise.
8175 (UNPACK_TF_0): Likewise.
8176 (UNPACK_TF_1): Likewise.
8177 (PACK_V1TI): Likewise.
8178 (UNPACK_V1TI): Likewise.
8179
8180 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
8181 support for decimal floating point builtin functions.
8182 (rs6000_expand_ternop_builtin): Add checks for the new builtin
8183 functions that take constant arguments.
e3825818 8184 (rs6000_invalid_builtin): Add decimal floating point builtin support.
ac0adecc 8185 (rs6000_init_builtins): Setup long double, _Decimal64, and
8186 _Decimal128 types for new builtin functions.
8187 (builtin_function_type): Set the unsigned flags appropriately for
8188 the new builtin functions.
8189 (rs6000_opt_masks): Add support for decimal floating point builtin
8190 functions.
8191
8192 * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
8193 floating point builtin functions.
8194 (RS6000_BTM_COMMON): Likewise.
8195 (RS6000_BTI_long_double): Likewise.
8196 (RS6000_BTI_dfloat64): Likewise.
8197 (RS6000_BTI_dfloat128): Likewise.
8198 (long_double_type_internal_node): Likewise.
8199 (dfloat64_type_internal_node): Likewise.
8200 (dfloat128_type_internal_node): Likewise.
8201
8202 * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
8203 2.07 bcd arithmetic instructions.
8204 (UNSPEC_BCDSUB): Likewise.
8205 (UNSPEC_BCD_OVERFLOW): Likewise.
8206 (UNSPEC_BCD_ADD_SUB): Likewise.
8207 (bcd_add_sub): Likewise.
8208 (BCD_TEST): Likewise.
8209 (bcd<bcd_add_sub>): Likewise.
8210 (bcd<bcd_add_sub>_test): Likewise.
8211 (bcd<bcd_add_sub>_test2): Likewise.
8212 (bcd<bcd_add_sub>_<code>): Likewise.
8213 (peephole2 for combined bcd ops): Likewise.
8214
8215 * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
8216 decimal floating point builtin functions.
8217 (UNSPEC_DENBCD): Likewise.
8218 (UNSPEC_DXEX): Likewise.
8219 (UNSPEC_DIEX): Likewise.
8220 (UNSPEC_DSCLI): Likewise.
8221 (UNSPEC_DSCRI): Likewise.
8222 (D64_D128): Likewise.
8223 (dfp_suffix): Likewise.
8224 (dfp_ddedpd_<mode>): Likewise.
8225 (dfp_denbcd_<mode>): Likewise.
8226 (dfp_dxex_<mode>): Likewise.
8227 (dfp_diex_<mode>): Likewise.
8228 (dfp_dscli_<mode>): Likewise.
8229 (dfp_dscri_<mode>): Likewise.
8230
8231 * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
8232 builtin functions.
8233 (UNSPEC_CDTBCD): Likewise.
8234 (UNSPEC_CBCDTD): Likewise.
e3825818 8235 (UNSPEC_DIVE): Add support for new extended divide builtin functions.
ac0adecc 8236 (UNSPEC_DIVEO): Likewise.
8237 (UNSPEC_DIVEU): Likewise.
8238 (UNSPEC_DIVEUO): Likewise.
8239 (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
8240 pack/unpack 128-bit types.
8241 (UNSPEC_PACK_128BIT): Likewise.
8242 (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
8243 (udiv<mode>3): Use idiv_ldiv mode attribute.
8244 (div<mode>3): Likewise.
8245 (addg6s): Add new BCD builtin functions.
8246 (cdtbcd): Likewise.
8247 (cbcdtd): Likewise.
e3825818 8248 (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
ac0adecc 8249 (div_extend): Likewise.
8250 (div<div_extend>_<mode>"): Likewise.
8251 (FP128_64): Add support for new builtin functions to pack/unpack
8252 128-bit types.
8253 (unpack<mode>): Likewise.
8254 (unpacktf_0): Likewise.
8255 (unpacktf_1): Likewise.
8256 (unpack<mode>_dm): Likewise.
8257 (unpack<mode>_nodm): Likewise.
8258 (pack<mode>): Likewise.
8259 (unpackv1ti): Likewise.
8260 (packv1ti): Likewise.
8261
dbf10c97 82622014-04-24 Vishnu K S <Vishnu.k_s@atmel.com>
8263
8264 * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
8265 is disabled.
8266
2b536a17 82672014-04-24 Jakub Jelinek <jakub@redhat.com>
8268
8269 * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
8270 * gimplify.c (omp_is_private): Change last argument's type to int.
8271 Only diagnose lastprivate if the simd argument is 1, only diagnose
8272 linear if the simd argument is 2.
8273 (gimplify_omp_for): Adjust omp_is_private callers. When adding
8274 lastprivate or private, add the clause to OMP_FOR_CLAUSES. Pass
8275 GOVD_EXPLICIT to omp_add_variable. For simd with collapse == 1
8276 create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
8277 If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
8278 increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
8279 * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
8280 OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
8281 * tree-nested.c (convert_nonlocal_omp_clauses,
8282 convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
8283
dd1b652b 82842014-04-24 Segher Boessenkool <segher@kernel.crashing.org>
8285
8286 PR target/60822
8287 * config/m68k/m68k.md (extendplussidi): Don't allow memory for
8288 operand 1.
8289
06511efd 82902014-04-24 Dimitris Papavasiliou <dpapavas@gmail.com>
8291
8292 * flag-types.h (enum ivar_visibility): Add.
8293
8c6fc7d1 82942014-04-24 Trevor Saunders <tsaunders@mozilla.com>
8295
8296 * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
8297 function * argument.
8298
a2d41015 82992014-04-24 Alan Lawrence <alan.lawrence@arm.com>
8300
8301 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
8302
2e3b0d0f 83032014-04-24 Radovan Obradovic <robradovic@mips.com>
e3825818 8304 Tom de Vries <tom@codesourcery.com>
2e3b0d0f 8305
8306 * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
8307 * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
8308 reg-note.
8309 * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
8310 * emit-rtl.c (try_split): Same.
8311
2cc49064 83122014-04-24 Radovan Obradovic <robradovic@mips.com>
e3825818 8313 Tom de Vries <tom@codesourcery.com>
2cc49064 8314
8315 * common.opt (fuse-caller-save): New option.
8316
bc92d1f7 83172014-04-24 Tejas Belagod <tejas.belagod@arm.com>
8318
e3825818 8319 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
8320 elements for big-endian.
bc92d1f7 8321
903906b6 83222014-04-24 Richard Biener <rguenther@suse.de>
8323
8324 * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
8325 during TER and instead use the sepops interface for expanding
8326 non-GIMPLE_SINGLE_RHS.
8327
27179d4f 83282014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8329
8330 * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
8331 if not HAVE_AS_IX86_DIFF_SECT_DELTA.
8332
8acf9183 83332014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8334
8335 * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
8336 assembler 64-bit option.
8337 * configure: Regenerate.
8338
dbee6ab1 83392014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8340
8341 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
8342 TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
8343 (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
8344 (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
8345 (TARGET_CRYPTO): Take TARGET_SIMD into account.
8346
e98e78fa 83472014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8348
8349 * config/aarch64/aarch64-builtins.c
8350 (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
8351 BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
8352 * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
8353 * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
8354 builtins.
8355 * config/aarch64/iterator.md (VDQHSD): New mode iterator.
8356 (Vrevsuff): New mode attribute.
8357
85aec174 83582014-04-24 Terry Guo <terry.guo@arm.com>
8359
8360 * config/arm/arm.h (machine_function): Define variable
8361 after_arm_reorg here.
8362 * config/arm/arm.c (after_arm_reorg): Remove the definition.
8363 (arm_split_constant): Update the way to access variable
8364 after_arm_reorg.
8365 (arm_reorg): Ditto.
8366 (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
8367
1d31f4ea 83682014-04-23 Tom de Vries <tom@codesourcery.com>
8369
8370 * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
8371
13cbeaac 83722014-04-23 David Malcolm <dmalcolm@redhat.com>
8373
8374 * is-a.h: Update comments to reflect the following changes to the
8375 "pointerness" of the API, making the template parameter match the
8376 return type, allowing use of is-a.h with typedefs of pointers.
8377 (is_a_helper::cast): Return a T rather then a pointer to a T, so
8378 that the return type matches the parameter to the is_a_helper.
8379 (as_a): Likewise.
8380 (dyn_cast): Likewise.
8381
8382 * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
8383 pointer from the is-a.h API.
8384
8385 * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
8386 (is_a_helper <cgraph_node *>::test): ...this, matching change to
8387 is-a.h API.
8388 (is_a_helper <varpool_node>::test): Likewise, convert to...
8389 (is_a_helper <varpool_node *>::test): ...this.
8390
8391 (varpool_first_variable): Update for removal of implicit pointer
8392 from the is-a.h API.
8393 (varpool_next_variable): Likewise.
8394 (varpool_first_static_initializer): Likewise.
8395 (varpool_next_static_initializer): Likewise.
8396 (varpool_first_defined_variable): Likewise.
8397 (varpool_next_defined_variable): Likewise.
8398 (cgraph_first_defined_function): Likewise.
8399 (cgraph_next_defined_function): Likewise.
8400 (cgraph_first_function): Likewise.
8401 (cgraph_next_function): Likewise.
8402 (cgraph_first_function_with_gimple_body): Likewise.
8403 (cgraph_next_function_with_gimple_body): Likewise.
8404 (cgraph_alias_target): Likewise.
8405 (varpool_alias_target): Likewise.
8406 (cgraph_function_or_thunk_node): Likewise.
8407 (varpool_variable_node): Likewise.
8408 (symtab_real_symbol_p): Likewise.
8409 * cgraphunit.c (referred_to_p): Likewise.
8410 (analyze_functions): Likewise.
8411 (handle_alias_pairs): Likewise.
8412 * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
8413 * gimple-ssa.h (gimple_vuse_op): Likewise.
8414 (gimple_vdef_op): Likewise.
8415 * gimple-streamer-in.c (input_gimple_stmt): Likewise.
8416 * gimple.c (gimple_build_asm_1): Likewise.
8417 (gimple_build_try): Likewise.
8418 (gimple_build_resx): Likewise.
8419 (gimple_build_eh_dispatch): Likewise.
8420 (gimple_build_omp_for): Likewise.
8421 (gimple_omp_for_set_clauses): Likewise.
8422
8423 * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
8424 (is_a_helper <gimple_statement_asm *>::test): ...this.
8425 (is_a_helper <gimple_statement_bind>::test): Convert to...
8426 (is_a_helper <gimple_statement_bind *>::test): ...this.
8427 (is_a_helper <gimple_statement_call>::test): Convert to...
8428 (is_a_helper <gimple_statement_call *>::test): ...this.
8429 (is_a_helper <gimple_statement_catch>::test): Convert to...
8430 (is_a_helper <gimple_statement_catch *>::test): ...this.
8431 (is_a_helper <gimple_statement_resx>::test): Convert to...
8432 (is_a_helper <gimple_statement_resx *>::test): ...this.
8433 (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
8434 (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
8435 (is_a_helper <gimple_statement_eh_else>::test): Convert to...
8436 (is_a_helper <gimple_statement_eh_else *>::test): ...this.
8437 (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
8438 (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
8439 (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
8440 (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
8441 (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
8442 (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
8443 (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
8444 (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
8445 (is_a_helper <gimple_statement_omp_return>::test): Convert to...
8446 (is_a_helper <gimple_statement_omp_return *>::test): ...this.
8447 (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
8448 (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
8449 (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
8450 (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
8451 (is_a_helper <gimple_statement_omp_for>::test): Convert to...
8452 (is_a_helper <gimple_statement_omp_for *>::test): ...this.
8453 (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
8454 (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
8455 (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
8456 (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
8457 (is_a_helper <gimple_statement_omp_target>::test): Convert to...
8458 (is_a_helper <gimple_statement_omp_target *>::test): ...this.
8459 (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
8460 (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
8461 (is_a_helper <gimple_statement_omp_single>::test): Convert to...
8462 (is_a_helper <gimple_statement_omp_single *>::test): ...this.
8463 (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
8464 (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
8465 (is_a_helper <gimple_statement_omp_task>::test): Convert to...
8466 (is_a_helper <gimple_statement_omp_task *>::test): ...this.
8467 (is_a_helper <gimple_statement_phi>::test): Convert to...
8468 (is_a_helper <gimple_statement_phi *>::test): ...this.
8469 (is_a_helper <gimple_statement_transaction>::test): Convert to...
8470 (is_a_helper <gimple_statement_transaction *>::test): ...this.
8471 (is_a_helper <gimple_statement_try>::test): Convert to...
8472 (is_a_helper <gimple_statement_try *>::test): ...this.
8473 (is_a_helper <gimple_statement_wce>::test): Convert to...
8474 (is_a_helper <gimple_statement_wce *>::test): ...this.
8475 (is_a_helper <const gimple_statement_asm>::test): Convert to...
8476 (is_a_helper <const gimple_statement_asm *>::test): ...this.
8477 (is_a_helper <const gimple_statement_bind>::test): Convert to...
8478 (is_a_helper <const gimple_statement_bind *>::test): ...this.
8479 (is_a_helper <const gimple_statement_call>::test): Convert to...
8480 (is_a_helper <const gimple_statement_call *>::test): ...this.
8481 (is_a_helper <const gimple_statement_catch>::test): Convert to...
8482 (is_a_helper <const gimple_statement_catch *>::test): ...this.
8483 (is_a_helper <const gimple_statement_resx>::test): Convert to...
8484 (is_a_helper <const gimple_statement_resx *>::test): ...this.
e3825818 8485 (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
8486 (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
8487 (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
13cbeaac 8488 (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
8489 (is_a_helper <const gimple_statement_omp_atomic_load>::test):
8490 Convert to...
8491 (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
8492 ...this.
8493 (is_a_helper <const gimple_statement_omp_atomic_store>::test):
8494 Convert to...
8495 (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
8496 ...this.
e3825818 8497 (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
13cbeaac 8498 (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
8499 (is_a_helper <const gimple_statement_omp_continue>::test): Convert
8500 to...
8501 (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
8502 (is_a_helper <const gimple_statement_omp_critical>::test): Convert
8503 to...
8504 (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
8505 (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
8506 (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
e3825818 8507 (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
13cbeaac 8508 (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
8509 (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
8510 to...
8511 (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
e3825818 8512 (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
13cbeaac 8513 (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
8514 (is_a_helper <const gimple_statement_omp_sections>::test): Convert
8515 to...
8516 (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
e3825818 8517 (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
13cbeaac 8518 (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
e3825818 8519 (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
13cbeaac 8520 (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
e3825818 8521 (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
13cbeaac 8522 (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
8523 (is_a_helper <const gimple_statement_phi>::test): Convert to...
8524 (is_a_helper <const gimple_statement_phi *>::test): ...this.
e3825818 8525 (is_a_helper <const gimple_statement_transaction>::test): Convert to...
13cbeaac 8526 (is_a_helper <const gimple_statement_transaction *>::test): ...this.
e3825818 8527 (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
13cbeaac 8528 (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
8529 (is_a_helper <gimple_statement_with_ops>::test): Convert to...
8530 (is_a_helper <gimple_statement_with_ops *>::test): ...this.
e3825818 8531 (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
8532 to...
13cbeaac 8533 (is_a_helper <const gimple_statement_with_memory_ops *>::test):
8534 ...this.
e3825818 8535 (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
13cbeaac 8536 (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
8537
8538 (gimple_use_ops): Update for removal of implicit pointer from the
8539 is-a.h API.
8540 (gimple_set_use_ops): Likewise.
8541 (gimple_vuse): Likewise.
8542 (gimple_vdef): Likewise.
8543 (gimple_vuse_ptr): Likewise.
8544 (gimple_vdef_ptr): Likewise.
8545 (gimple_set_vuse): Likewise.
8546 (gimple_set_vdef): Likewise.
8547 (gimple_omp_return_set_lhs): Likewise.
8548 (gimple_omp_return_lhs): Likewise.
8549 (gimple_omp_return_lhs_ptr): Likewise.
8550 (gimple_call_fntype): Likewise.
8551 (gimple_call_set_fntype): Likewise.
8552 (gimple_call_set_internal_fn): Likewise.
8553 (gimple_call_use_set): Likewise.
8554 (gimple_call_clobber_set): Likewise.
8555 (gimple_bind_vars): Likewise.
8556 (gimple_bind_set_vars): Likewise.
8557 (gimple_bind_body_ptr): Likewise.
8558 (gimple_bind_set_body): Likewise.
8559 (gimple_bind_add_stmt): Likewise.
8560 (gimple_bind_block): Likewise.
8561 (gimple_bind_set_block): Likewise.
8562 (gimple_asm_ninputs): Likewise.
8563 (gimple_asm_noutputs): Likewise.
8564 (gimple_asm_nclobbers): Likewise.
8565 (gimple_asm_nlabels): Likewise.
8566 (gimple_asm_input_op): Likewise.
8567 (gimple_asm_input_op_ptr): Likewise.
8568 (gimple_asm_output_op): Likewise.
8569 (gimple_asm_output_op_ptr): Likewise.
8570 (gimple_asm_set_output_op): Likewise.
8571 (gimple_asm_clobber_op): Likewise.
8572 (gimple_asm_set_clobber_op): Likewise.
8573 (gimple_asm_label_op): Likewise.
8574 (gimple_asm_set_label_op): Likewise.
8575 (gimple_asm_string): Likewise.
8576 (gimple_catch_types): Likewise.
8577 (gimple_catch_types_ptr): Likewise.
8578 (gimple_catch_handler_ptr): Likewise.
8579 (gimple_catch_set_types): Likewise.
8580 (gimple_catch_set_handler): Likewise.
8581 (gimple_eh_filter_types): Likewise.
8582 (gimple_eh_filter_types_ptr): Likewise.
8583 (gimple_eh_filter_failure_ptr): Likewise.
8584 (gimple_eh_filter_set_types): Likewise.
8585 (gimple_eh_filter_set_failure): Likewise.
8586 (gimple_eh_must_not_throw_fndecl): Likewise.
8587 (gimple_eh_must_not_throw_set_fndecl): Likewise.
8588 (gimple_eh_else_n_body_ptr): Likewise.
8589 (gimple_eh_else_e_body_ptr): Likewise.
8590 (gimple_eh_else_set_n_body): Likewise.
8591 (gimple_eh_else_set_e_body): Likewise.
8592 (gimple_try_eval_ptr): Likewise.
8593 (gimple_try_cleanup_ptr): Likewise.
8594 (gimple_try_set_eval): Likewise.
8595 (gimple_try_set_cleanup): Likewise.
8596 (gimple_wce_cleanup_ptr): Likewise.
8597 (gimple_wce_set_cleanup): Likewise.
8598 (gimple_phi_capacity): Likewise.
8599 (gimple_phi_num_args): Likewise.
8600 (gimple_phi_result): Likewise.
8601 (gimple_phi_result_ptr): Likewise.
8602 (gimple_phi_set_result): Likewise.
8603 (gimple_phi_arg): Likewise.
8604 (gimple_phi_set_arg): Likewise.
8605 (gimple_resx_region): Likewise.
8606 (gimple_resx_set_region): Likewise.
8607 (gimple_eh_dispatch_region): Likewise.
8608 (gimple_eh_dispatch_set_region): Likewise.
8609 (gimple_omp_critical_name): Likewise.
8610 (gimple_omp_critical_name_ptr): Likewise.
8611 (gimple_omp_critical_set_name): Likewise.
8612 (gimple_omp_for_clauses): Likewise.
8613 (gimple_omp_for_clauses_ptr): Likewise.
8614 (gimple_omp_for_set_clauses): Likewise.
8615 (gimple_omp_for_collapse): Likewise.
8616 (gimple_omp_for_index): Likewise.
8617 (gimple_omp_for_index_ptr): Likewise.
8618 (gimple_omp_for_set_index): Likewise.
8619 (gimple_omp_for_initial): Likewise.
8620 (gimple_omp_for_initial_ptr): Likewise.
8621 (gimple_omp_for_set_initial): Likewise.
8622 (gimple_omp_for_final): Likewise.
8623 (gimple_omp_for_final_ptr): Likewise.
8624 (gimple_omp_for_set_final): Likewise.
8625 (gimple_omp_for_incr): Likewise.
8626 (gimple_omp_for_incr_ptr): Likewise.
8627 (gimple_omp_for_set_incr): Likewise.
8628 (gimple_omp_for_pre_body_ptr): Likewise.
8629 (gimple_omp_for_set_pre_body): Likewise.
8630 (gimple_omp_parallel_clauses): Likewise.
8631 (gimple_omp_parallel_clauses_ptr): Likewise.
8632 (gimple_omp_parallel_set_clauses): Likewise.
8633 (gimple_omp_parallel_child_fn): Likewise.
8634 (gimple_omp_parallel_child_fn_ptr): Likewise.
8635 (gimple_omp_parallel_set_child_fn): Likewise.
8636 (gimple_omp_parallel_data_arg): Likewise.
8637 (gimple_omp_parallel_data_arg_ptr): Likewise.
8638 (gimple_omp_parallel_set_data_arg): Likewise.
8639 (gimple_omp_task_clauses): Likewise.
8640 (gimple_omp_task_clauses_ptr): Likewise.
8641 (gimple_omp_task_set_clauses): Likewise.
8642 (gimple_omp_task_child_fn): Likewise.
8643 (gimple_omp_task_child_fn_ptr): Likewise.
8644 (gimple_omp_task_set_child_fn): Likewise.
8645 (gimple_omp_task_data_arg): Likewise.
8646 (gimple_omp_task_data_arg_ptr): Likewise.
8647 (gimple_omp_task_set_data_arg): Likewise.
8648 (gimple_omp_taskreg_clauses): Likewise.
8649 (gimple_omp_taskreg_clauses_ptr): Likewise.
8650 (gimple_omp_taskreg_set_clauses): Likewise.
8651 (gimple_omp_taskreg_child_fn): Likewise.
8652 (gimple_omp_taskreg_child_fn_ptr): Likewise.
8653 (gimple_omp_taskreg_set_child_fn): Likewise.
8654 (gimple_omp_taskreg_data_arg): Likewise.
8655 (gimple_omp_taskreg_data_arg_ptr): Likewise.
8656 (gimple_omp_taskreg_set_data_arg): Likewise.
8657 (gimple_omp_task_copy_fn): Likewise.
8658 (gimple_omp_task_copy_fn_ptr): Likewise.
8659 (gimple_omp_task_set_copy_fn): Likewise.
8660 (gimple_omp_task_arg_size): Likewise.
8661 (gimple_omp_task_arg_size_ptr): Likewise.
8662 (gimple_omp_task_set_arg_size): Likewise.
8663 (gimple_omp_task_arg_align): Likewise.
8664 (gimple_omp_task_arg_align_ptr): Likewise.
8665 (gimple_omp_task_set_arg_align): Likewise.
8666 (gimple_omp_single_clauses): Likewise.
8667 (gimple_omp_single_clauses_ptr): Likewise.
8668 (gimple_omp_single_set_clauses): Likewise.
8669 (gimple_omp_target_clauses): Likewise.
8670 (gimple_omp_target_clauses_ptr): Likewise.
8671 (gimple_omp_target_set_clauses): Likewise.
8672 (gimple_omp_target_child_fn): Likewise.
8673 (gimple_omp_target_child_fn_ptr): Likewise.
8674 (gimple_omp_target_set_child_fn): Likewise.
8675 (gimple_omp_target_data_arg): Likewise.
8676 (gimple_omp_target_data_arg_ptr): Likewise.
8677 (gimple_omp_target_set_data_arg): Likewise.
8678 (gimple_omp_teams_clauses): Likewise.
8679 (gimple_omp_teams_clauses_ptr): Likewise.
8680 (gimple_omp_teams_set_clauses): Likewise.
8681 (gimple_omp_sections_clauses): Likewise.
8682 (gimple_omp_sections_clauses_ptr): Likewise.
8683 (gimple_omp_sections_set_clauses): Likewise.
8684 (gimple_omp_sections_control): Likewise.
8685 (gimple_omp_sections_control_ptr): Likewise.
8686 (gimple_omp_sections_set_control): Likewise.
8687 (gimple_omp_for_set_cond): Likewise.
8688 (gimple_omp_for_cond): Likewise.
8689 (gimple_omp_atomic_store_set_val): Likewise.
8690 (gimple_omp_atomic_store_val): Likewise.
8691 (gimple_omp_atomic_store_val_ptr): Likewise.
8692 (gimple_omp_atomic_load_set_lhs): Likewise.
8693 (gimple_omp_atomic_load_lhs): Likewise.
8694 (gimple_omp_atomic_load_lhs_ptr): Likewise.
8695 (gimple_omp_atomic_load_set_rhs): Likewise.
8696 (gimple_omp_atomic_load_rhs): Likewise.
8697 (gimple_omp_atomic_load_rhs_ptr): Likewise.
8698 (gimple_omp_continue_control_def): Likewise.
8699 (gimple_omp_continue_control_def_ptr): Likewise.
8700 (gimple_omp_continue_set_control_def): Likewise.
8701 (gimple_omp_continue_control_use): Likewise.
8702 (gimple_omp_continue_control_use_ptr): Likewise.
8703 (gimple_omp_continue_set_control_use): Likewise.
8704 (gimple_transaction_body_ptr): Likewise.
8705 (gimple_transaction_label): Likewise.
8706 (gimple_transaction_label_ptr): Likewise.
8707 (gimple_transaction_set_body): Likewise.
8708 (gimple_transaction_set_label): Likewise.
8709
8710 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
8711 * ipa-inline-analysis.c (inline_write_summary): Likewise.
8712 * ipa-ref.c (ipa_record_reference): Likewise.
8713 * ipa-reference.c (analyze_function): Likewise.
8714 (ipa_reference_write_optimization_summary): Likewise.
8715 * ipa.c (symtab_remove_unreachable_nodes): Likewise.
8716 (address_taken_from_non_vtable_p): Likewise.
8717 (comdat_can_be_unshared_p_1): Likewise.
8718 * lto-cgraph.c (lto_output_ref): Likewise.
8719 (add_references): Likewise.
8720 (compute_ltrans_boundary): Likewise.
8721 (output_symtab): Likewise.
8722 (input_ref): Likewise.
8723 (input_cgraph_1): Likewise.
8724 (output_cgraph_opt_summary): Likewise.
8725 * lto-streamer-out.c (lto_output): Likewise.
8726 (output_symbol_p): Likewise.
8727 * lto-streamer.h (lsei_next_function_in_partition): Likewise.
8728 (lsei_start_function_in_partition): Likewise.
8729 (lsei_next_variable_in_partition): Likewise.
8730 (lsei_start_variable_in_partition): Likewise.
8731 * symtab.c (insert_to_assembler_name_hash): Likewise.
8732 (unlink_from_assembler_name_hash): Likewise.
8733 (symtab_unregister_node): Likewise.
8734 (symtab_remove_node): Likewise.
8735 (dump_symtab_node): Likewise.
8736 (verify_symtab_base): Likewise.
8737 (verify_symtab_node): Likewise.
8738 (symtab_make_decl_local): Likewise.
8739 (symtab_alias_ultimate_target): Likewise.
8740 (symtab_resolve_alias): Likewise.
8741 (symtab_get_symbol_partitioning_class): Likewise.
8742 * tree-phinodes.c (allocate_phi_node): Likewise.
8743 (reserve_phi_args_for_new_edge): Likewise.
8744 (remove_phi_args): Likewise.
8745 * varpool.c (varpool_node_for_asm): Likewise.
8746 (varpool_remove_unreferenced_decls): Likewise.
8747
bb3a8839 87482014-04-23 Jeff Law <law@redhat.com>
8749
8750 PR tree-optimization/60902
8751 * tree-ssa-threadedge.c
8752 (record_temporary_equivalences_from_stmts_at_dest): Make sure to
8753 invalidate outputs from statements that do not produce useful
8754 outputs for threading.
8755
e3825818 87562014-04-23 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
6c14686e 8757
8758 * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
8759 (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
8760 machine descriptions for Stack Smashing Protector.
8761
e523eda9 87622014-04-23 Richard Earnshaw <rearnsha@arm.com>
8763
8764 * aarch64.md (<optab>_rol<mode>3): New pattern.
8765 (<optab>_rolsi3_uxtw): Likewise.
8766 * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
8767
427f9c56 87682014-04-23 James Greenhalgh <james.greenhalgh@arm.com>
8769
8770 * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
8771 (arm_cortex_a12_tune): Likewise.
8772
b1aadd97 87732014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8774
8775 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
8776
09f69e55 87772014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8778
8779 * config/arm/arm.md (arm_rev16si2): New pattern.
8780 (arm_rev16si2_alt): Likewise.
8781 * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
8782
d049924d 87832014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8784
e3825818 8785 * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
8786 (rev16<mode>2_alt): Likewise.
8787 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
8788 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
8789 (aarch_rev16_shleft_mask_imm_p): Likewise.
8790 (aarch_rev16_p_1): Likewise.
8791 (aarch_rev16_p): Likewise.
8792 * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
8793 (aarch_rev16_shright_mask_imm_p): Likewise.
8794 (aarch_rev16_shleft_mask_imm_p): Likewise.
d049924d 8795
3ee55116 87962014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8797
e3825818 8798 * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
8799 * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
8800 rev cost.
8801 (cortex_a53_extra_costs): Likewise.
8802 (cortex_a57_extra_costs): Likewise.
8803 * config/arm/arm.c (cortexa9_extra_costs): Likewise.
8804 (cortexa7_extra_costs): Likewise.
8805 (cortexa8_extra_costs): Likewise.
8806 (cortexa12_extra_costs): Likewise.
8807 (cortexa15_extra_costs): Likewise.
8808 (v7m_extra_costs): Likewise.
8809 (arm_new_rtx_costs): Handle BSWAP.
3ee55116 8810
57e34225 88112013-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8812
e3825818 8813 * config/arm/arm.c (cortexa8_extra_costs): New table.
8814 (arm_cortex_a8_tune): New tuning struct.
8815 * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
57e34225 8816
9d4fe153 88172014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8818
e3825818 8819 * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
9d4fe153 8820
b99ab275 88212014-04-23 Richard Biener <rguenther@suse.de>
8822
8823 * Makefile.in (OBJS): Remove loop-unswitch.o.
b99ab275 8824 * tree-pass.h (make_pass_rtl_unswitch): Remove.
8825 * passes.def (pass_rtl_unswitch): Likewise.
8826 * loop-init.c (gate_rtl_unswitch): Likewise.
8827 (rtl_unswitch): Likewise.
8828 (pass_data_rtl_unswitch): Likewise.
8829 (pass_rtl_unswitch): Likewise.
8830 (make_pass_rtl_unswitch): Likewise.
8831 * rtl.h (reversed_condition): Likewise.
8832 (compare_and_jump_seq): Likewise.
8833 * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
8834 and make static.
8835 * loop-unroll.c (compare_and_jump_seq): Likewise.
8836
a1ccf30d 88372014-04-23 Richard Biener <rguenther@suse.de>
8838
8839 PR tree-optimization/60903
8840 * tree-ssa-loop-im.c (analyze_memory_references): Remove
8841 commented code block.
8842 (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
8843 loop flags to newly created BBs and edges.
8844
c05cbf30 88452014-04-23 Nick Clifton <nickc@redhat.com>
8846
8847 * config/msp430/msp430.c (msp430_handle_option): Move function
8848 to msp430-common.c
8849 (msp430_option_override): Simplify mcu and mcpu option handling.
8850 (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult. Add
8851 support for -mhwmult command line option.
8852 (has_32bit_hwmult): Rename to use_32bit_hwmult. Add support for
8853 -mhwmult command line option.
8854 (msp430_hwmult_enabled): Delete.
e3825818 8855 (msp43o_output_labelref): Add support for -mhwmult command line option.
c05cbf30 8856 * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
8857 (umulsidi3): Likewise.
8858 * config/msp430/msp430.opt (mmcu): Add Report attribute.
8859 (mcpu, mlarge, msmall): Likewise.
8860 (mhwmult): New option.
8861 * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
8862 prototype.
8863 (msp430_is_f5_mcu): Remove prototype.
8864 (msp430_use_f5_series_hwmult): Add prototype.
8865 * config/msp430/msp430-opts.h: New file.
8866 * common/config/msp430: New directory.
8867 * common/config/msp430/msp430-common.c: New file.
8868 * config.gcc (msp430): Remove target_has_targetm_common.
8869 * doc/invoke.texi: Document -mhwmult command line option.
8870
291a0806 88712014-04-23 Nick Clifton <nickc@redhat.com>
8872
8873 * config/i386/cygwin.h (ENDFILE_SPEC): Include
8874 default-manifest.o if it can be found in the search path.
8875 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
8876
83c80d45 88772014-04-23 Terry Guo <terry.guo@arm.com>
8878
8879 * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
8880
586641e3 88812014-04-23 Richard Biener <rguenther@suse.de>
8882
8883 PR middle-end/60895
8884 * tree-inline.c (declare_return_variable): Use mark_addressable.
8885
37dc09f8 88862014-04-23 Richard Biener <rguenther@suse.de>
8887
8888 PR middle-end/60891
8889 * loop-init.c (loop_optimizer_init): Make sure to apply
8890 LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
8891
7311d7c1 88922014-04-22 Jakub Jelinek <jakub@redhat.com>
8893
8894 PR sanitizer/60275
8895 * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
8896 New options.
8897 * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
8898 if flag_sanitize_undefined_trap_on_error.
8899 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
8900 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
8901 BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
8902 BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
8903 BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
8904 BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
8905 BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
8906 BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
8907 BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
8908 * ubsan.c (ubsan_instrument_unreachable): Return
8909 __builtin_trap () if flag_sanitize_undefined_trap_on_error.
8910 (ubsan_expand_null_ifn): Emit __builtin_trap ()
8911 if flag_sanitize_undefined_trap_on_error and
8912 __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
8913 (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
8914 instrument_bool_enum_load): Emit __builtin_trap () if
8915 flag_sanitize_undefined_trap_on_error and
8916 __builtin_handle_*_abort () if !flag_sanitize_recover.
8917 * doc/invoke.texi (-fsanitize-recover,
8918 -fsanitize-undefined-trap-on-error): Document.
8919
a3371bc3 89202014-04-22 Christian Bruel <christian.bruel@st.com>
8921
8922 * config/sh/sh.md (mov<mode>): Replace movQIHI.
8923 Force immediates to SImode.
8924
960249a9 89252014-04-22 Sandra Loosemore <sandra@codesourcery.com>
8926
8927 * config/nios2/nios2.md (UNSPEC_ROUND): New.
8928 (lroundsfsi2): New.
8929 * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
8930 * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
8931 * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
8932 (nios2_fpu_insn): Add entry for round.
8933 (N2FPU_NO_ERRNO_P): Define.
8934 (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
8935 flag_errno_math.
8936 * doc/invoke.texi (Nios II Options): Document -mcustom-round.
8937
d1ae7bb9 89382014-04-22 Richard Henderson <rth@redhat.com>
8939
8940 * config/aarch64/aarch64 (addti3, subti3): New expanders.
8941 (add<GPI>3_compare0): Remove leading * from name.
8942 (add<GPI>3_carryin): Likewise.
8943 (sub<GPI>3_compare0): Likewise.
8944 (sub<GPI>3_carryin): Likewise.
8945 (<su_optab>mulditi3): New expander.
8946 (multi3): New expander.
8947 (madd<GPI>): Remove leading * from name.
8948
9be0994b 89492014-04-22 Martin Jambor <mjambor@suse.cz>
8950
8951 * cgraphclones.c (cgraph_function_versioning): Copy
8952 ipa_transforms_to_apply instead of asserting it is empty.
8953
d91e9622 89542014-04-22 H.J. Lu <hongjiu.lu@intel.com>
8955
8956 PR target/60868
291a0806 8957 * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
d91e9622 8958 on count_exp to get mode.
8959
718da8fb 89602014-04-22 Andrew Pinski <apinski@cavium.com>
8961
8962 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
8963 Handle TLS for ILP32.
8964 * config/aarch64/aarch64.md (tlsie_small): Rename to ...
8965 (tlsie_small_<mode>): this and handle PTR.
8966 (tlsie_small_sidi): New pattern.
8967 (tlsle_small): Change to an expand to handle ILP32.
8968 (tlsle_small_<mode>): New pattern.
8969 (tlsdesc_small): Rename to ...
8970 (tlsdesc_small_<mode>): this and handle PTR.
8971
c0277521 89722014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8973
8974 * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
8975
fe44ff96 89762014-04-22 Alex Velenko <Alex.Velenko@arm.com>
8977
8978 * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
8979 (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
8980 (aarch64_types_signed_poly_qualifiers): Likewise.
8981 (aarch64_types_unsigned_signed_qualifiers): Likewise.
8982 (aarch64_types_poly_signed_qualifiers): Likewise.
8983 (TYPES_REINTERP_SS): Type macro added.
8984 (TYPES_REINTERP_SU): Likewise.
8985 (TYPES_REINTERP_SP): Likewise.
8986 (TYPES_REINTERP_US): Likewise.
8987 (TYPES_REINTERP_PS): Likewise.
8988 (aarch64_fold_builtin): New expression folding added.
8989 * config/aarch64/aarch64-simd-builtins.def (REINTERP):
8990 Declarations removed.
8991 (REINTERP_SS): Declarations added.
8992 (REINTERP_US): Likewise.
8993 (REINTERP_PS): Likewise.
8994 (REINTERP_SU): Likewise.
8995 (REINTERP_SP): Likewise.
8996 * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
8997 (vreinterpretq_p8_f64): Likewise.
8998 (vreinterpret_p16_f64): Likewise.
8999 (vreinterpretq_p16_f64): Likewise.
9000 (vreinterpret_f32_f64): Likewise.
9001 (vreinterpretq_f32_f64): Likewise.
9002 (vreinterpret_f64_f32): Likewise.
9003 (vreinterpret_f64_p8): Likewise.
9004 (vreinterpret_f64_p16): Likewise.
9005 (vreinterpret_f64_s8): Likewise.
9006 (vreinterpret_f64_s16): Likewise.
9007 (vreinterpret_f64_s32): Likewise.
9008 (vreinterpret_f64_s64): Likewise.
9009 (vreinterpret_f64_u8): Likewise.
9010 (vreinterpret_f64_u16): Likewise.
9011 (vreinterpret_f64_u32): Likewise.
9012 (vreinterpret_f64_u64): Likewise.
9013 (vreinterpretq_f64_f32): Likewise.
9014 (vreinterpretq_f64_p8): Likewise.
9015 (vreinterpretq_f64_p16): Likewise.
9016 (vreinterpretq_f64_s8): Likewise.
9017 (vreinterpretq_f64_s16): Likewise.
9018 (vreinterpretq_f64_s32): Likewise.
9019 (vreinterpretq_f64_s64): Likewise.
9020 (vreinterpretq_f64_u8): Likewise.
9021 (vreinterpretq_f64_u16): Likewise.
9022 (vreinterpretq_f64_u32): Likewise.
9023 (vreinterpretq_f64_u64): Likewise.
9024 (vreinterpret_s64_f64): Likewise.
9025 (vreinterpretq_s64_f64): Likewise.
9026 (vreinterpret_u64_f64): Likewise.
9027 (vreinterpretq_u64_f64): Likewise.
9028 (vreinterpret_s8_f64): Likewise.
9029 (vreinterpretq_s8_f64): Likewise.
9030 (vreinterpret_s16_f64): Likewise.
9031 (vreinterpretq_s16_f64): Likewise.
9032 (vreinterpret_s32_f64): Likewise.
9033 (vreinterpretq_s32_f64): Likewise.
9034 (vreinterpret_u8_f64): Likewise.
9035 (vreinterpretq_u8_f64): Likewise.
9036 (vreinterpret_u16_f64): Likewise.
9037 (vreinterpretq_u16_f64): Likewise.
9038 (vreinterpret_u32_f64): Likewise.
9039 (vreinterpretq_u32_f64): Likewise.
9040
dbdcebb4 90412014-04-22 Alex Velenko <Alex.Velenko@arm.com>
9042
9043 * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
9044 * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
9045 (vreinterpret_p8_s8): Likewise.
9046 * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
9047 (vreinterpret_p8_s16): Likewise.
9048 (vreinterpret_p8_s32): Likewise.
9049 (vreinterpret_p8_s64): Likewise.
9050 (vreinterpret_p8_f32): Likewise.
9051 (vreinterpret_p8_u8): Likewise.
9052 (vreinterpret_p8_u16): Likewise.
9053 (vreinterpret_p8_u32): Likewise.
9054 (vreinterpret_p8_u64): Likewise.
9055 (vreinterpret_p8_p16): Likewise.
9056 (vreinterpretq_p8_s8): Likewise.
9057 (vreinterpretq_p8_s16): Likewise.
9058 (vreinterpretq_p8_s32): Likewise.
9059 (vreinterpretq_p8_s64): Likewise.
9060 (vreinterpretq_p8_f32): Likewise.
9061 (vreinterpretq_p8_u8): Likewise.
9062 (vreinterpretq_p8_u16): Likewise.
9063 (vreinterpretq_p8_u32): Likewise.
9064 (vreinterpretq_p8_u64): Likewise.
9065 (vreinterpretq_p8_p16): Likewise.
9066 (vreinterpret_p16_s8): Likewise.
9067 (vreinterpret_p16_s16): Likewise.
9068 (vreinterpret_p16_s32): Likewise.
9069 (vreinterpret_p16_s64): Likewise.
9070 (vreinterpret_p16_f32): Likewise.
9071 (vreinterpret_p16_u8): Likewise.
9072 (vreinterpret_p16_u16): Likewise.
9073 (vreinterpret_p16_u32): Likewise.
9074 (vreinterpret_p16_u64): Likewise.
9075 (vreinterpret_p16_p8): Likewise.
9076 (vreinterpretq_p16_s8): Likewise.
9077 (vreinterpretq_p16_s16): Likewise.
9078 (vreinterpretq_p16_s32): Likewise.
9079 (vreinterpretq_p16_s64): Likewise.
9080 (vreinterpretq_p16_f32): Likewise.
9081 (vreinterpretq_p16_u8): Likewise.
9082 (vreinterpretq_p16_u16): Likewise.
9083 (vreinterpretq_p16_u32): Likewise.
9084 (vreinterpretq_p16_u64): Likewise.
9085 (vreinterpretq_p16_p8): Likewise.
9086 (vreinterpret_f32_s8): Likewise.
9087 (vreinterpret_f32_s16): Likewise.
9088 (vreinterpret_f32_s32): Likewise.
9089 (vreinterpret_f32_s64): Likewise.
9090 (vreinterpret_f32_u8): Likewise.
9091 (vreinterpret_f32_u16): Likewise.
9092 (vreinterpret_f32_u32): Likewise.
9093 (vreinterpret_f32_u64): Likewise.
9094 (vreinterpret_f32_p8): Likewise.
9095 (vreinterpret_f32_p16): Likewise.
9096 (vreinterpretq_f32_s8): Likewise.
9097 (vreinterpretq_f32_s16): Likewise.
9098 (vreinterpretq_f32_s32): Likewise.
9099 (vreinterpretq_f32_s64): Likewise.
9100 (vreinterpretq_f32_u8): Likewise.
9101 (vreinterpretq_f32_u16): Likewise.
9102 (vreinterpretq_f32_u32): Likewise.
9103 (vreinterpretq_f32_u64): Likewise.
9104 (vreinterpretq_f32_p8): Likewise.
9105 (vreinterpretq_f32_p16): Likewise.
9106 (vreinterpret_s64_s8): Likewise.
9107 (vreinterpret_s64_s16): Likewise.
9108 (vreinterpret_s64_s32): Likewise.
9109 (vreinterpret_s64_f32): Likewise.
9110 (vreinterpret_s64_u8): Likewise.
9111 (vreinterpret_s64_u16): Likewise.
9112 (vreinterpret_s64_u32): Likewise.
9113 (vreinterpret_s64_u64): Likewise.
9114 (vreinterpret_s64_p8): Likewise.
9115 (vreinterpret_s64_p16): Likewise.
9116 (vreinterpretq_s64_s8): Likewise.
9117 (vreinterpretq_s64_s16): Likewise.
9118 (vreinterpretq_s64_s32): Likewise.
9119 (vreinterpretq_s64_f32): Likewise.
9120 (vreinterpretq_s64_u8): Likewise.
9121 (vreinterpretq_s64_u16): Likewise.
9122 (vreinterpretq_s64_u32): Likewise.
9123 (vreinterpretq_s64_u64): Likewise.
9124 (vreinterpretq_s64_p8): Likewise.
9125 (vreinterpretq_s64_p16): Likewise.
9126 (vreinterpret_u64_s8): Likewise.
9127 (vreinterpret_u64_s16): Likewise.
9128 (vreinterpret_u64_s32): Likewise.
9129 (vreinterpret_u64_s64): Likewise.
9130 (vreinterpret_u64_f32): Likewise.
9131 (vreinterpret_u64_u8): Likewise.
9132 (vreinterpret_u64_u16): Likewise.
9133 (vreinterpret_u64_u32): Likewise.
9134 (vreinterpret_u64_p8): Likewise.
9135 (vreinterpret_u64_p16): Likewise.
9136 (vreinterpretq_u64_s8): Likewise.
9137 (vreinterpretq_u64_s16): Likewise.
9138 (vreinterpretq_u64_s32): Likewise.
9139 (vreinterpretq_u64_s64): Likewise.
9140 (vreinterpretq_u64_f32): Likewise.
9141 (vreinterpretq_u64_u8): Likewise.
9142 (vreinterpretq_u64_u16): Likewise.
9143 (vreinterpretq_u64_u32): Likewise.
9144 (vreinterpretq_u64_p8): Likewise.
9145 (vreinterpretq_u64_p16): Likewise.
9146 (vreinterpret_s8_s16): Likewise.
9147 (vreinterpret_s8_s32): Likewise.
9148 (vreinterpret_s8_s64): Likewise.
9149 (vreinterpret_s8_f32): Likewise.
9150 (vreinterpret_s8_u8): Likewise.
9151 (vreinterpret_s8_u16): Likewise.
9152 (vreinterpret_s8_u32): Likewise.
9153 (vreinterpret_s8_u64): Likewise.
9154 (vreinterpret_s8_p8): Likewise.
9155 (vreinterpret_s8_p16): Likewise.
9156 (vreinterpretq_s8_s16): Likewise.
9157 (vreinterpretq_s8_s32): Likewise.
9158 (vreinterpretq_s8_s64): Likewise.
9159 (vreinterpretq_s8_f32): Likewise.
9160 (vreinterpretq_s8_u8): Likewise.
9161 (vreinterpretq_s8_u16): Likewise.
9162 (vreinterpretq_s8_u32): Likewise.
9163 (vreinterpretq_s8_u64): Likewise.
9164 (vreinterpretq_s8_p8): Likewise.
9165 (vreinterpretq_s8_p16): Likewise.
9166 (vreinterpret_s16_s8): Likewise.
9167 (vreinterpret_s16_s32): Likewise.
9168 (vreinterpret_s16_s64): Likewise.
9169 (vreinterpret_s16_f32): Likewise.
9170 (vreinterpret_s16_u8): Likewise.
9171 (vreinterpret_s16_u16): Likewise.
9172 (vreinterpret_s16_u32): Likewise.
9173 (vreinterpret_s16_u64): Likewise.
9174 (vreinterpret_s16_p8): Likewise.
9175 (vreinterpret_s16_p16): Likewise.
9176 (vreinterpretq_s16_s8): Likewise.
9177 (vreinterpretq_s16_s32): Likewise.
9178 (vreinterpretq_s16_s64): Likewise.
9179 (vreinterpretq_s16_f32): Likewise.
9180 (vreinterpretq_s16_u8): Likewise.
9181 (vreinterpretq_s16_u16): Likewise.
9182 (vreinterpretq_s16_u32): Likewise.
9183 (vreinterpretq_s16_u64): Likewise.
9184 (vreinterpretq_s16_p8): Likewise.
9185 (vreinterpretq_s16_p16): Likewise.
9186 (vreinterpret_s32_s8): Likewise.
9187 (vreinterpret_s32_s16): Likewise.
9188 (vreinterpret_s32_s64): Likewise.
9189 (vreinterpret_s32_f32): Likewise.
9190 (vreinterpret_s32_u8): Likewise.
9191 (vreinterpret_s32_u16): Likewise.
9192 (vreinterpret_s32_u32): Likewise.
9193 (vreinterpret_s32_u64): Likewise.
9194 (vreinterpret_s32_p8): Likewise.
9195 (vreinterpret_s32_p16): Likewise.
9196 (vreinterpretq_s32_s8): Likewise.
9197 (vreinterpretq_s32_s16): Likewise.
9198 (vreinterpretq_s32_s64): Likewise.
9199 (vreinterpretq_s32_f32): Likewise.
9200 (vreinterpretq_s32_u8): Likewise.
9201 (vreinterpretq_s32_u16): Likewise.
9202 (vreinterpretq_s32_u32): Likewise.
9203 (vreinterpretq_s32_u64): Likewise.
9204 (vreinterpretq_s32_p8): Likewise.
9205 (vreinterpretq_s32_p16): Likewise.
9206 (vreinterpret_u8_s8): Likewise.
9207 (vreinterpret_u8_s16): Likewise.
9208 (vreinterpret_u8_s32): Likewise.
9209 (vreinterpret_u8_s64): Likewise.
9210 (vreinterpret_u8_f32): Likewise.
9211 (vreinterpret_u8_u16): Likewise.
9212 (vreinterpret_u8_u32): Likewise.
9213 (vreinterpret_u8_u64): Likewise.
9214 (vreinterpret_u8_p8): Likewise.
9215 (vreinterpret_u8_p16): Likewise.
9216 (vreinterpretq_u8_s8): Likewise.
9217 (vreinterpretq_u8_s16): Likewise.
9218 (vreinterpretq_u8_s32): Likewise.
9219 (vreinterpretq_u8_s64): Likewise.
9220 (vreinterpretq_u8_f32): Likewise.
9221 (vreinterpretq_u8_u16): Likewise.
9222 (vreinterpretq_u8_u32): Likewise.
9223 (vreinterpretq_u8_u64): Likewise.
9224 (vreinterpretq_u8_p8): Likewise.
9225 (vreinterpretq_u8_p16): Likewise.
9226 (vreinterpret_u16_s8): Likewise.
9227 (vreinterpret_u16_s16): Likewise.
9228 (vreinterpret_u16_s32): Likewise.
9229 (vreinterpret_u16_s64): Likewise.
9230 (vreinterpret_u16_f32): Likewise.
9231 (vreinterpret_u16_u8): Likewise.
9232 (vreinterpret_u16_u32): Likewise.
9233 (vreinterpret_u16_u64): Likewise.
9234 (vreinterpret_u16_p8): Likewise.
9235 (vreinterpret_u16_p16): Likewise.
9236 (vreinterpretq_u16_s8): Likewise.
9237 (vreinterpretq_u16_s16): Likewise.
9238 (vreinterpretq_u16_s32): Likewise.
9239 (vreinterpretq_u16_s64): Likewise.
9240 (vreinterpretq_u16_f32): Likewise.
9241 (vreinterpretq_u16_u8): Likewise.
9242 (vreinterpretq_u16_u32): Likewise.
9243 (vreinterpretq_u16_u64): Likewise.
9244 (vreinterpretq_u16_p8): Likewise.
9245 (vreinterpretq_u16_p16): Likewise.
9246 (vreinterpret_u32_s8): Likewise.
9247 (vreinterpret_u32_s16): Likewise.
9248 (vreinterpret_u32_s32): Likewise.
9249 (vreinterpret_u32_s64): Likewise.
9250 (vreinterpret_u32_f32): Likewise.
9251 (vreinterpret_u32_u8): Likewise.
9252 (vreinterpret_u32_u16): Likewise.
9253 (vreinterpret_u32_u64): Likewise.
9254 (vreinterpret_u32_p8): Likewise.
9255 (vreinterpret_u32_p16): Likewise.
9256 (vreinterpretq_u32_s8): Likewise.
9257 (vreinterpretq_u32_s16): Likewise.
9258 (vreinterpretq_u32_s32): Likewise.
9259 (vreinterpretq_u32_s64): Likewise.
9260 (vreinterpretq_u32_f32): Likewise.
9261 (vreinterpretq_u32_u8): Likewise.
9262 (vreinterpretq_u32_u16): Likewise.
9263 (vreinterpretq_u32_u64): Likewise.
9264 (vreinterpretq_u32_p8): Likewise.
9265 (vreinterpretq_u32_p16): Likewise.
9266
a9aae8ec 92672014-04-22 Alex Velenko <Alex.Velenko@arm.com>
9268
9269 * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
9270 Pattern extended.
e3825818 9271 * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
a9aae8ec 9272 (sqabs): Likewise.
9273 * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
9274 (vqnegd_s64): Likewise.
9275 (vqabs_s64): Likewise.
9276 (vqabsd_s64): Likewise.
9277
95db5675 92782014-04-22 Richard Henderson <rth@redhat.com>
9279
9280 * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
9281 computation to the top of the loop.
9282
cb0fe2f0 92832014-04-22 Renlin <renlin.li@arm.com>
9284 Jiong Wang <jiong.wang@arm.com>
9285
9286 * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
9287 * config/aarch64/aarch64.c (aarch64_layout_frame)
9288 (aarch64_initial_elimination_offset): Likewise.
9289
57c414e7 92902014-04-22 Marcus Shawcroft <marcus.shawcroft@arm.com>
9291
9292 * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
9293 Fix indentation.
9294
ac875fa4 92952014-04-22 Richard Sandiford <rdsandiford@googlemail.com>
9296
9297 * machmode.h (bitwise_mode_for_mode): Declare.
9298 * stor-layout.h (bitwise_type_for_mode): Likewise.
9299 * stor-layout.c (bitwise_mode_for_mode): New function.
9300 (bitwise_type_for_mode): Likewise.
9301 * builtins.c (fold_builtin_memory_op): Use it instead of
9302 int_mode_for_mode and build_nonstandard_integer_type.
9303
3efb5d22 93042014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9305
9306 * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
9307 (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
9308 (*-*-solaris2*): Simplify.
9309 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
9310 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
9311 *-*-solaris2.9* handling.
9312
9313 * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
9314 as bug.
9315 (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
9316 (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
9317 handling, simplify.
9318 (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
9319 * configure: Regenerate.
9320
9321 * config/i386/sol2-9.h: Remove.
9322
9323 * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
9324 (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
9325 Remove Solaris 9 references.
9326
38fb5910 93272014-04-22 Vidya Praveen <vidyapraveen@arm.com>
9328
9329 * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
9330 (floatuns<GPI:mode><GPF:mode>2): Remove.
9331 (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
9332 and floatuns conversions.
9333 (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
9334 and floatuns conversions.
9335 * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
9336 (w1,w2): New mode attributes for inequal width conversions.
9337
9a9ae780 93382014-04-22 Renlin Li <Renlin.Li@arm.com>
9339
9340 * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
9341 the output asm format.
9342
daebd468 93432014-04-22 James Greenhalgh <james.greenhalgh@arm.com>
9344
9345 * config/aarch64/aarch64-simd.md
9346 (aarch64_cm<optab>di): Always split.
9347 (*aarch64_cm<optab>di): New.
9348 (aarch64_cmtstdi): Always split.
9349 (*aarch64_cmtstdi): New.
9350
2d78e89f 93512014-04-22 Jakub Jelinek <jakub@redhat.com>
9352
9353 PR tree-optimization/60823
9354 * omp-low.c (ipa_simd_modify_function_body): Go through
9355 all SSA_NAMEs and for those refering to vector arguments
9356 which are going to be replaced adjust SSA_NAME_VAR and,
9357 if it is a default definition, change it into a non-default
9358 definition assigned at the beginning of function from new_decl.
9359 (ipa_simd_modify_stmt_ops): Rewritten.
9360 * tree-dfa.c (set_ssa_default_def): When removing default def,
9361 check for NULL loc instead of NULL *loc.
9362
19f58014 93632014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9364
9365 * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
9366 restrictions on core registers for DImode values in Thumb2.
9367
d8cd5fa0 93682014-04-22 Ian Bolton <ian.bolton@arm.com>
9369
9370 * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
9371 * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
9372
17de73f2 93732014-04-22 Ian Bolton <ian.bolton@arm.com>
9374
9375 * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
9376 (*iordi_notzesidi_di): Likewise.
9377 (*iordi_notsesidi_di): Likewise.
9378
8eb4a30f 93792014-04-22 Ian Bolton <ian.bolton@arm.com>
9380
9381 * config/arm/arm-protos.h (tune_params): New struct members.
9382 * config/arm/arm.c: Initialise tune_params per processor.
9383 (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
9384 for speed, based on new tune_params.
9385
90231a68 93862014-04-22 Alex Velenko <Alex.Velenko@arm.com>
9387
e3825818 9388 * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
9389 * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
9390 * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
90231a68 9391 * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
9392 * config/aarch64/arm_neon.h (vrnd_f64): Added.
9393 (vrnda_f64): Likewise.
9394 (vrndi_f64): Likewise.
9395 (vrndm_f64): Likewise.
9396 (vrndn_f64): Likewise.
9397 (vrndp_f64): Likewise.
9398 (vrndx_f64): Likewise.
9399
55f2a76b 94002014-04-22 Zhenqiang Chen <zhenqiang.chen@linaro.org>
9401
9402 * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
9403 GET_MODE_SIZE argument is enum machine_mode.
9404
c739e0d6 94052014-04-22 Jakub Jelinek <jakub@redhat.com>
9406
9407 PR target/60910
9408 * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
9409 value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
9410
f89175bb 94112014-04-22 Lin Zuojian <manjian2006@gmail.com>
9412
9413 PR middle-end/60281
9414 * asan.c (asan_emit_stack_protection): Force the base to align to
9415 appropriate bits if STRICT_ALIGNMENT. Set shadow_mem align to
9416 appropriate bits if STRICT_ALIGNMENT.
9417 * cfgexpand.c (expand_stack_vars): Set base_align appropriately
9418 when asan is on.
9419 (expand_used_vars): Leave a space in the stack frame for alignment
9420 if STRICT_ALIGNMENT.
9421
14e1449b 94222014-04-21 David Malcolm <dmalcolm@redhat.com>
9423
9424 * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
9425 than a gimple.
9426 (gimple_store_p): Likewise.
9427 (gimple_assign_load_p): Likewise.
9428 (gimple_assign_cast_p): Likewise.
9429 (gimple_clobber_p): Likewise.
9430
9431 * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
9432 rather than a gimple.
9433 (gimple_assign_cast_p): Likewise.
9434
a263f822 94352014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
9436
9437 PR target/60735
9438 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
9439 If mode is DDmode and TARGET_E500_DOUBLE allow move.
9440
9441 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
9442 more debug information for E500 if -mdebug=reg.
9443
7a8a3a7e 94442014-04-21 Uros Bizjak <ubizjak@gmail.com>
9445
9446 PR target/60909
9447 * config/i386/i386.c (ix86_expand_builtin)
9448 <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
9449 register for target RTX.
9450 <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
9451
c9156338 94522014-04-18 Cong Hou <congh@google.com>
9453
9454 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
7a8a3a7e 9455 the widen-mult pattern by handling two operands with different sizes,
9456 and operands whose size is smaller than half of the result type.
c9156338 9457
3072aa32 94582014-04-18 Jan Hubicka <hubicka@ucw.cz>
9459
9460 * ipa-inline.h (INLINE_HINT_known_hot): New hint.
9461 * ipa-inline-analysis.c (dump_inline_hints): Dump it.
9462 (do_estimate_edge_time): Compute it.
9463 * ipa-inline.c (want_inline_small_function_p): Bypass
7a8a3a7e 9464 INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
3072aa32 9465
b10aade1 94662014-04-18 Jan Hubicka <hubicka@ucw.cz>
9467
9468 * ipa-inline.c (spec_rem): New static variable.
9469 (dump_overall_stats): New function.
9470 (dump_inline_stats): New function.
9471
52e9ac01 94722014-04-18 Richard Henderson <rth@redhat.com>
9473
9474 * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
9475 to GET_MODE_SIZE, not a reg_class_t.
9476
0f453918 94772014-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9478
7a8a3a7e 9479 * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
0f453918 9480 (vsx_xxmrglw_<mode>): Likewise.
9481
50ec903a 94822014-04-17 Michael Meissner <meissner@linux.vnet.ibm.com>
9483
9484 PR target/60876
9485 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
7a8a3a7e 9486 GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
50ec903a 9487 (rs6000_init_hard_regno_mode_ok): Likewise.
9488
57cc3349 94892014-04-17 Jan Hubicka <hubicka@ucw.cz>
9490
9491 * ipa-inline.c (inline_small_functions): Account only non-cold
9492 functions.
9493 * doc/invoke.texi (inline-unit-growth): Update documentation.
9494
ad1d5f7b 94952014-04-17 Pat Haugen <pthaugen@us.ibm.com>
9496
9497 * config/rs6000/rs6000.md (addti3, subti3): New.
9498
191f8e83 94992014-04-17 H.J. Lu <hongjiu.lu@intel.com>
9500
9501 PR target/60863
9502 * config/i386/i386.c (ix86_expand_clear): Remove outdated
9503 comment. Check optimize_insn_for_size_p instead of
9504 optimize_insn_for_speed_p.
9505
1605ba4b 95062014-04-17 Martin Jambor <mjambor@suse.cz>
9507
9508 * gimple-iterator.c (gsi_start_edge): New function.
9509 * gimple-iterator.h (gsi_start_edge): Declare.
9510 * tree-sra.c (single_non_eh_succ): New function.
9511 (disqualify_ops_if_throwing_stmt): Renamed to
9512 disqualify_if_bad_bb_terminating_stmt. Allow throwing statements
9513 having one non-EH successor BB.
9514 (sra_modify_expr): If stmt ends bb, use single non-EH successor to
9515 generate loads into replacements.
9516 (sra_modify_assign): Likewise and and also use the simple path for
9517 such statements.
9518 (sra_modify_function_body): Commit statements on edges.
9519
bd5e1815 95202014-04-17 Richard Biener <rguenther@suse.de>
9521
9522 PR middle-end/60849
9523 * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
9524 comparison results and add clarifying comment.
9525
e2ec52ca 95262014-04-17 Jakub Jelinek <jakub@redhat.com>
9527
9528 * genmodes.c (struct mode_data): Add need_bytesize_adj field.
9529 (blank_mode): Initialize it.
9530 (emit_mode_size_inline, emit_mode_nunits_inline,
9531 emit_mode_inner_inline): New functions.
9532 (emit_insn_modes_h): Call them and surround their output with
9533 #if GCC_VERSION >= 4001 ... #endif.
9534 * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
9535 For GCC_VERSION >= 4001 use mode_*_inline routines instead of
9536 mode_* arrays if the argument is __builtin_constant_p.
9537 * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
9538 is enum machine_mode.
9539
65b0537f 95402014-04-17 Trevor Saunders <tsaunders@mozilla.com>
9541
9542 * passes.c (opt_pass::execute): Adjust.
9543 (pass_manager::execute_pass_mode_switching): Likewise.
9544 (early_local_passes::execute): Likewise.
9545 (execute_one_pass): Pass cfun to the pass's execute method.
9546 * tree-pass.h (opt_pass::execute): Add function * argument.
9547 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
9548 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
9549 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
9550 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
9551 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
9552 config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
9553 except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
9554 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
9555 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
9556 ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
9557 ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
9558 lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
9559 postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
9560 reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
9561 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
9562 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
9563 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
9564 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
9565 tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
9566 tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
9567 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
9568 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
9569 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
9570 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
9571 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
9572 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
9573 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
9574 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
9575 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
9576 Adjust.
9577
31315c24 95782014-04-17 Trevor Saunders <tsaunders@mozilla.com>
9579
9580 * passes.c (opt_pass::gate): Take function * argument.
9581 (gate_all_early_local_passes): Merge into
9582 (early_local_passes::gate): this.
9583 (gate_all_early_optimizations): Merge into
9584 (all_early_optimizations::gate): this.
9585 (gate_all_optimizations): Mege into
9586 (all_optimizations::gate): this.
9587 (gate_all_optimizations_g): Merge into
9588 (all_optimizations_g::gate): this.
9589 (gate_rest_of_compilation): Mege into
9590 (rest_of_compilation::gate): this.
9591 (gate_postreload): Merge into
9592 (postreload::gate): this.
9593 (dump_one_pass): Pass cfun to the pass's gate method.
9594 (execute_ipa_summary_passes): Likewise.
9595 (execute_one_pass): Likewise.
9596 (ipa_write_summaries_2): Likewise.
9597 (ipa_write_optimization_summaries_1): Likewise.
9598 (ipa_read_summaries_1): Likewise.
9599 (ipa_read_optimization_summaries_1): Likewise.
9600 (execute_ipa_stmt_fixups): Likewise.
9601 * tree-pass.h (opt_pass::gate): Add function * argument.
9602 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
9603 combine-stack-adj.c, combine.c, compare-elim.c,
9604 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
9605 config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
9606 config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
9607 dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c, fwprop.c, gcse.c,
9608 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
9609 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
9610 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
9611 loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
9612 omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
9613 reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
9614 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
9615 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
9616 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
9617 tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
9618 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
9619 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
9620 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
9621 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
9622 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
9623 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
9624 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
9625 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
9626 tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
9627 tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
9628 var-tracking.c, vtable-verify.c, web.c: Adjust.
9629
70e17394 96302014-04-17 Trevor Saunders <tsaunders@mozilla.com>
9631
9632 * configure.ac: Check for -Woverloaded-virtual and enable it if found.
9633 * configure: Regenerate.
9634
92b56240 96352014-04-17 Trevor Saunders <tsaunders@mozilla.com>
7a8a3a7e 9636
92b56240 9637 * passes.c (dump_one_pass): don't check pass->has_gate.
9638 (execute_ipa_summary_passes): Likewise.
9639 (execute_one_pass): Likewise.
9640 (ipa_write_summaries_2): Likewise.
9641 (ipa_write_optimization_summaries_1): Likewise.
9642 (ipa_read_optimization_summaries_1): Likewise.
9643 (execute_ipa_stmt_fixups): Likewise.
9644 * tree-pass.h (pass_data::has_gate): Remove.
9645 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
9646 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
9647 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
9648 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
9649 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
9650 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
9651 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
9652 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
9653 gimple-low.c, gimple-ssa-isolate-paths.c,
9654 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
9655 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
9656 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
9657 ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
9658 modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
9659 recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
9660 reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
9661 trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
9662 tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
9663 tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
9664 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
9665 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
9666 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
9667 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
9668 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
9669 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
9670 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
9671 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
9672 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
9673 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
9674 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
9675 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
9676 Adjust.
9677
3a8e4375 96782014-04-17 Trevor Saunders <tsaunders@mozilla.com>
9679
7a8a3a7e 9680 * pass_manager.h (pass_manager::register_dump_files_1): Remove
9681 declaration.
3a8e4375 9682 * passes.c (pass_manager::register_dump_files_1): Merge into
9683 (pass_manager::register_dump_files): this, and remove its handling of
9684 properties since the pass always has the properties anyway.
9685 (pass_manager::pass_manager): Adjust.
9686
3377fc2b 96872014-04-17 Trevor Saunders <tsaunders@mozilla.com>
9688
9689 * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
9690 * passes.c (pass_manager::register_dump_files_1): Remove dead code
9691 dealing with properties.
9692 (pass_manager::register_dump_files): Adjust.
9693
7de380af 96942014-03-20 Mark Wielaard <mjw@redhat.com>
9695
9696 * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
9697 then represent the bound as normal constant value.
9698
de11c63e 96992014-04-17 Jakub Jelinek <jakub@redhat.com>
9700
9701 PR target/60847
9702 Forward port from 4.8 branch
9703 2013-07-19 Kirill Yukhin <kirill.yukhin@intel.com>
9704
9705 * config/i386/bmiintrin.h (_blsi_u32): New.
9706 (_blsi_u64): Ditto.
9707 (_blsr_u32): Ditto.
9708 (_blsr_u64): Ditto.
9709 (_blsmsk_u32): Ditto.
9710 (_blsmsk_u64): Ditto.
9711 (_tzcnt_u32): Ditto.
9712 (_tzcnt_u64): Ditto.
9713
645f3563 97142014-04-17 Kito Cheng <kito@0xlab.org>
9715
9716 * gcc.c (used_arg): Prevent out of bound access for multilib_options.
9717
f540a052 97182014-04-17 Richard Biener <rguenther@suse.de>
9719
9720 PR middle-end/60849
9721 * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
9722 boolean results for comparisons.
9723
aae8f543 97242014-04-17 Richard Biener <rguenther@suse.de>
9725
9726 PR tree-optimization/60836
9727 * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
9728 initial PHI args to be gimple values.
9729
e1dbb208 97302014-04-17 Richard Biener <rguenther@suse.de>
ca91d3f8 9731
9732 PR tree-optimization/60841
9733 * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
9734 * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
9735 of stmts to SLP build.
9736 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
9737 (vect_analyze_slp): Likewise.
9738 (vect_analyze_slp_instance): Likewise.
9739 (vect_build_slp_tree): Limit overall SLP tree growth.
9740 * tree-vectorizer.h (vect_analyze_data_refs,
9741 vect_analyze_slp): Adjust prototypes.
9742
f73446a2 97432014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
9744
9745 * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
9746 Silvermont.
9747
d00487f0 97482014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
9749
9750 * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
9751 * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
9752 * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
9753 for TARGET_SLOW_PSHUFB
9754
5c6ea002 97552014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
9756
9757 * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
9758 * config/i386/i386.c (intel_cost): Ditto.
9759
e87649a3 97602014-04-17 Joey Ye <joey.ye@arm.com>
9761
9762 * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
9763
704db68e 97642014-04-16 Jan Hubicka <hubicka@ucw.cz>
9765
9766 * opts.c (common_handle_option): Disable -fipa-reference coorectly
9767 with -fuse-profile.
9768
afb44165 97692014-04-16 Jan Hubicka <hubicka@ucw.cz>
9770
9771 * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
9772 (type_all_derivations_known_p): New predicate.
9773 (type_all_ctors_visible_p): New predicate.
9774 (type_possibly_instantiated_p): New predicate.
9775 (get_odr_type): Compute all_derivations_known.
9776 (dump_odr_type): Dump the flag.
9777 (maybe_record_type): Cleanup.
9778 (record_target_from_binfo): Add bases_to_consider array;
9779 record bases for types w/o instances and skip CXX destructor.
9780 (possible_polymorphic_call_targets_1): Add bases_to_consider
7a8a3a7e 9781 and consider_construction parameters; check if type may have instance.
afb44165 9782 (get_polymorphic_call_info): Set maybe_in_construction to true
9783 when we know nothing.
9784 (record_targets_from_bases): Skip CXX destructors; they are
9785 never called for types in construction.
9786 (possible_polymorphic_call_targets): Do not record target when
9787 type may not have instance.
9788
89ae81e0 97892014-04-16 Jan Hubicka <hubicka@ucw.cz>
9790
9791 PR ipa/60854
9792 * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
9793 external aliases alive, too.
9794
e4b851a3 97952014-04-16 Andrew Pinski <apinski@cavium.com>
9796
9797 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
7a8a3a7e 9798 definition.
e4b851a3 9799
9e7cf504 98002014-04-16 Eric Botcazou <ebotcazou@adacore.com>
9801
9802 * final.c (compute_alignments): Do not apply loop alignment to a block
9803 falling through to the exit.
9804
3fe9ace4 98052014-04-16 Catherine Moore <clm@codesourcery.com>
9806
9807 * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
9808 Adjust constraints for microMIPS store patterns.
9809
fa5a8e68 98102014-04-16 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
9811
9812 * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
9813
8792d9c3 98142014-04-16 Eric Botcazou <ebotcazou@adacore.com>
9815
9816 * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
9817 (append_use): Run at -O0.
9818 (append_vdef): Likewise.
9819 * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
9820 * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
9821
54675e05 98222014-04-16 Jakub Jelinek <jakub@redhat.com>
9823
9824 PR tree-optimization/60844
9825 * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
9826 (propagate_op_to_single_use, remove_visited_stmt_chain,
9827 linearize_expr, repropagate_negates, reassociate_bb): Use it
9828 instead of gsi_remove.
9829
2cf4c3b3 98302014-04-16 Martin Jambor <mjambor@suse.cz>
9831
9832 * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
9833 ipa_transforms_to_apply.
9834 (cgraph_function_versioning): Assert that old_node has empty
9835 ipa_transforms_to_apply.
9836 * trans-mem.c (ipa_tm_create_version): Likewise.
9837 * tree-inline.c (tree_function_versioning): Do not duplicate
9838 ipa_transforms_to_apply.
9839
cb648ea4 98402014-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9841
9842 PR target/60817
9843 * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
9844 x86_64-*-* cases.
9845 Pass necessary as flags on 64-bit Solaris/x86.
9846 Use lowercase relocs for x86_64-*-*.
9847 * configure: Regenerate.
9848
b6f66fd7 98492014-04-15 Jan Hubicka <jh@suse.cz>
9850
9851 * ipa-devirt.c (referenced_from_vtable_p): New predicate.
9852 (maybe_record_node, likely_target_p): Use it.
9853
290b73c0 98542014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9855
9856 PR target/60839
9857 Revert following patch
9858
9859 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
9860
9861 PR target/60735
9862 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
9863 software floating point or no floating point registers, do not
9864 allow any type in the FPRs. Eliminate a test for SPE SIMD types
9865 in GPRs that occurs after we tested for GPRs that would never be
9866 true.
9867
9868 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
9869 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
9870 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
9871 specifically allow DDmode, since that does not use the SPE SIMD
9872 instructions.
9873
53160379 98742014-03-21 Mark Wielaard <mjw@redhat.com>
9875
9876 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
9877 as unsigned or int depending on type and value used.
9878
f270d2a0 98792014-04-15 Richard Biener <rguenther@suse.de>
9880
9881 PR rtl-optimization/56965
9882 * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
9883 * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
9884 ... here.
9885 * alias.c (true_dependence_1): Do not call
9886 nonoverlapping_component_refs_p.
9887 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
9888 nonoverlapping_component_refs_p.
9889 (indirect_refs_may_alias_p): Likewise.
9890
731d420e 98912014-04-15 Teresa Johnson <tejohnson@google.com>
9892
9893 * cfg.c (dump_bb_info): Fix flags check.
9894 * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
9895
4d7b66d5 98962014-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9897
9898 PR rtl-optimization/60663
9899 * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
9900 avoid 0 cost.
9901
82e24ec3 99022014-04-15 Richard Biener <rguenther@suse.de>
9903
9904 * lto-streamer.h (LTO_major_version): Bump to 4.
9905
4a137074 99062014-04-15 Richard Biener <rguenther@suse.de>
9907
9908 * common.opt (lto_partition_model): New enum.
9909 (flto-partition=): Merge separate options with a single with argument,
9910 add -flto-partition=one support.
9911 * flag-types.h (enum lto_partition_model): Declare.
9912 * opts.c (finish_options): Remove duplicate -flto-partition=
9913 option check.
9914 * lto-wrapper.c (run_gcc): Adjust.
9915
fc89f544 99162014-04-15 Richard Biener <rguenther@suse.de>
9917
9918 * alias.c (ncr_compar): New function.
9919 (nonoverlapping_component_refs_p): Re-implement in O (n log n).
9920
519aac8e 99212014-04-15 Richard Biener <rguenther@suse.de>
9922
9923 * alias.c (record_component_aliases): Do not walk BINFOs.
9924
e2a4f08e 99252014-04-15 Richard Biener <rguenther@suse.de>
9926
9927 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
9928 Add struct function argument and adjust.
9929 (find_func_aliases_for_call): Likewise.
9930 (find_func_aliases): Likewise.
9931 (find_func_clobbers): Likewise.
9932 (intra_create_variable_infos): Likewise.
9933 (compute_points_to_sets): Likewise.
9934 (ipa_pta_execute): Adjust. Do not push/pop cfun.
9935
235620e5 99362014-04-15 Richard Biener <rguenther@suse.de>
9937
9938 * tree.c (iterative_hash_expr): Use enum tree_code_class
9939 to store TREE_CODE_CLASS.
9940 (tree_block): Likewise.
9941 (tree_set_block): Likewise.
9942 * tree.h (fold_build_pointer_plus_loc): Use
9943 convert_to_ptrofftype_loc.
9944
d78cc47b 99452014-04-15 Jakub Jelinek <jakub@redhat.com>
9946
9947 PR plugins/59335
9948 * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
9949 added in 4.9.
9950
eb71996d 99512014-04-15 Eric Botcazou <ebotcazou@adacore.com>
9952
9953 * cfgloop.h (struct loop): Move force_vectorize down.
9954 * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
9955 (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
9956 * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
9957 * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
9958 * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
9959 * tree-core.h (enum annot_expr_kind): Add new kind values.
9960 * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
9961 * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
9962 kinds.
9963 * tree.def (ANNOTATE_EXPR): Tweak comment.
9964
49209ca7 99652014-04-14 Jan Hubicka <hubicka@ucw.cz>
9966
9967 * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
9968 cxa_pure_virtual).
9969
48dcce25 99702014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
9971
9972 * tree.h (TYPE_IDENTIFIER): Declare.
9973 * tree.c (subrange_type_for_debug_p): Use it.
9974 * godump.c (go_format_type): Likewise.
9975 * dwarf2out.c (is_cxx_auto, modified_type_die,
9976 gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
9977 * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
9978
e1dbb208 99792014-04-14 Jan Hubicka <hubicka@ucw.cz>
1a8f6e9c 9980
9981 PR lto/60820
9982 * varpool.c (varpool_remove_node): Do not alter decls when streaming.
9983
40e08eb2 99842014-04-14 Uros Bizjak <ubizjak@gmail.com>
9985
9986 * config/i386/i386.c (examine_argument): Return bool. Return true if
9987 parameter should be passed in memory.
9988 <case X86_64_COMPLEX_X87_CLASS>: Adjust.
9989 (construct_container): Update calls to examine_argument.
9990 (function_arg_advance_64): Ditto.
9991 (return_in_memory_32): Merge with ix86_return_in_memory.
9992 (return_in_memory_64): Ditto.
9993 (return_in_memory_ms_64): Ditto.
9994
df565eb6 99952014-04-14 Jan Hubicka <hubicka@ucw.cz>
9996
9997 * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
9998 * coverage.c (coverage_compute_profile_id): Handle externally visible
9999 symbols.
10000
fa484aac 100012014-04-14 Martin Jambor <mjambor@suse.cz>
10002
10003 * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
10004 DECL_DISREGARD_INLINE_LIMITS functions.
10005
ca48453d 100062014-04-14 H.J. Lu <hongjiu.lu@intel.com>
10007
10008 PR target/60827
40e08eb2 10009 * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
ca48453d 10010
0c2979b4 100112014-04-14 H.J. Lu <hongjiu.lu@intel.com>
10012
10013 PR target/60827
10014 * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
10015 optimize_insn_for_speed_p instead of
10016 optimize_function_for_speed_p.
10017
00258a37 100182014-04-14 Yufeng Zhang <yufeng.zhang@arm.com>
10019
10020 * doc/invoke.texi (free): Document AArch64.
10021
4a7ce9e2 100222014-04-14 Richard Biener <rguenther@suse.de>
10023
10024 PR tree-optimization/60042
10025 * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
10026 (insert_into_preds_of_block): Do not prevent PHI insertion
10027 for REFERENCE exprs here ...
10028 (eliminate_dom_walker::before_dom_children): ... but prevent
10029 their use here under similar conditions when applied to the
10030 IL after PRE optimizations.
10031
41f94d6c 100322014-04-14 Richard Biener <rguenther@suse.de>
10033
10034 * passes.def: Move early points-to after early SRA.
10035
00bffa46 100362014-04-14 Richard Biener <rguenther@suse.de>
10037
10038 * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
10039 check for which sign-changes we allow when forwarding
10040 a converted value into a switch.
10041
46515aeb 100422014-04-14 Eric Botcazou <ebotcazou@adacore.com>
10043
10044 * stor-layout.c (place_field): Finalize non-constant offset for the
10045 field, if any.
10046
637a765f 100472014-04-14 Richard Biener <rguenther@suse.de>
10048
10049 * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
10050 as argument.
10051 (expand_switch_using_bit_tests_p): Likewise.
10052 (process_switch): Compute and pass on speed_p based on the
10053 switch stmt.
10054 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
10055 optimize_bb_for_speed_p.
10056
4c73695b 100572014-04-14 Eric Botcazou <ebotcazou@adacore.com>
10058
10059 * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
10060 * function.h (struct function): Rename has_force_vect_loops into
10061 has_force_vectorize_loops.
10062 * lto-streamer-in.c (input_cfg): Adjust for renaming.
10063 (input_struct_function_base): Likewise.
10064 * lto-streamer-out.c (output_cfg): Likewise.
10065 (output_struct_function_base): Likewise.
10066 * omp-low.c (expand_omp_simd): Likewise.
10067 * tree-cfg.c (move_sese_region_to_fn): Likewise.
10068 * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
10069 (version_loop_for_if_conversion): Likewise.
10070 (tree_if_conversion): Likewise.
10071 (main_tree_if_conversion): Likewise.
10072 (gate_tree_if_conversion): Likewise.
10073 * tree-inline.c (copy_loops): Likewise.
10074 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
10075 * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
10076 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
10077 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
10078 * tree-vectorizer.c (vectorize_loops): Likewise.
10079 * tree-vectorizer.h (unlimited_cost_model): Likewise.
10080
d9ef6695 100812014-04-14 Richard Biener <rguenther@suse.de>
10082
10083 PR lto/60720
10084 * lto-streamer-out.c (wrap_refs): New function.
10085 (lto_output): Wrap symbol references in global initializes in
10086 type-preserving MEM_REFs.
10087
751d4d6f 100882014-04-14 Christian Bruel <christian.bruel@st.com>
10089
7a8a3a7e 10090 * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
751d4d6f 10091
1878fb5b 100922014-04-14 Christian Bruel <christian.bruel@st.com>
10093
10094 * config/sh/sh.md (setmemqi): New expand pattern.
10095 * config/sh/sh.h (CLEAR_RATIO): Define.
10096 * config/sh/sh-mem.cc (sh_expand_setmem): Define.
10097 * config/sh/sh-protos.h (sh_expand_setmem): Declare.
10098
cb799f0a 100992014-04-14 Richard Biener <rguenther@suse.de>
10100
10101 PR middle-end/55022
10102 * fold-const.c (negate_expr_p): Don't negate directional rounding
10103 division.
10104 (fold_negate_expr): Likewise.
10105
98acb419 101062014-04-14 Richard Biener <rguenther@suse.de>
10107
10108 PR tree-optimization/59817
10109 PR tree-optimization/60453
10110 * graphite-scop-detection.c (graphite_can_represent_scev): Complete
10111 recursion to catch all CHRECs in the scalar evolution and restrict
10112 the predicate for the remains appropriately.
10113
8deb0486 101142014-04-12 Catherine Moore <clm@codesourcery.com>
10115
10116 * config/mips/constraints.md: Add new register constraint "kb".
10117 * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
10118 (*movhi_internal): Likewise.
10119 (*movqi_internal): Likewise.
10120 * config/mips/mips.h (M16_STORE_REGS): New register class.
10121 (REG_CLASS_NAMES): Add M16_STORE_REGS.
10122 (REG_CLASS_CONTENTS): Likewise.
10123 * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
10124
4012a986 101252014-04-11 Tobias Burnus <burnus@net-b.de>
10126
10127 PR c/60194
10128 * doc/invoke.texi (-Wformat-signedness): Document it.
10129 (Wformat=2): Mention that this enables -Wformat-signedness.
10130
e8f53f72 101312014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
10132
10133 * common/config/epiphany/epiphany-common.c
10134 (epiphany_option_optimization_table): Enable section anchors by
10135 default at -O1 or higher.
10136 * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
10137 (TARGET_MIN_ANCHOR_OFFSET): Likewise.
10138 (epiphany_rtx_costs) <SET>: For binary operators, the set as such
10139 carries no extra cost.
10140 (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
10141 * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
10142 * config/epiphany/predicates.md (memclob_operand): New predicate.
10143 * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
10144 Use memclob_operand predicate and X constraint for operand 3.
10145
4af44dbd 101462014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
10147
10148 * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
10149 with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
10150 its operands.
10151
6d0a5596 101522014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
10153
10154 PR rtl-optimization/60651
10155 * mode-switching.c (optimize_mode_switching): Make sure to emit
10156 sets of a lower numbered entity before sets of a higher numbered
10157 entity to a mode of the same or lower priority.
10158 When creating a seginfo for a basic block that starts with a code
10159 label, move the insertion point past the code label.
10160 (new_seginfo): Document and enforce requirement that
10161 NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
10162 * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
10163 * doc/tm.texi: Regenerate.
10164
c3779d1f 101652014-01-11 Joern Rennecke <joern.rennecke@embecosm.com>
10166
10167 PR target/60811
10168 * config/arc/arc.c (arc_save_restore): Fix assert typo.
10169
0be1362f 101702013-04-11 Jakub Jelinek <jakub@redhat.com>
10171
bb507066 10172 * BASE-VER: Set to 4.10.0.
0be1362f 10173
ec86f0be 101742014-04-11 Tobias Burnus <burnus@net-b.de>
10175
10176 PR other/59055
40e08eb2 10177 * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
ec86f0be 10178 * doc/gcc.texi (Service): Update description in the @menu
10179 * doc/invoke.texi (Option Summary): Remove misplaced and
10180 duplicated @menu.
10181
155586ea 101822014-04-11 Steve Ellcey <sellcey@mips.com>
10183 Jakub Jelinek <jakub@redhat.com>
10184
10185 PR middle-end/60556
10186 * expr.c (convert_move): Use emit_store_flag_force instead of
10187 emit_store_flag. Pass lowpart_mode instead of VOIDmode as 5th
10188 argument to it.
10189
b0a8d6c8 101902014-04-11 Richard Biener <rguenther@suse.de>
10191
10192 PR middle-end/60797
10193 * varasm.c (assemble_alias): Avoid endless error reporting
10194 recursion by setting TREE_ASM_WRITTEN.
10195
cfa0a736 101962014-04-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10197
10198 * config/s390/s390.md: Add a splitter for NOT rtx.
10199
f3f18244 102002014-04-11 Jakub Jelinek <jakub@redhat.com>
10201
10202 PR rtl-optimization/60663
40e08eb2 10203 * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
f3f18244 10204
31c03a14 102052014-04-10 Jan Hubicka <hubicka@ucw.cz>
10206 Jakub Jelinek <jakub@redhat.com>
9a6559b5 10207
31c03a14 10208 PR lto/60567
40e08eb2 10209 * ipa.c (function_and_variable_visibility): Copy forced_by_abi
10210 flag from decl_node to node.
9a6559b5 10211
5ad494f9 102122014-04-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10213
10214 PR debug/60655
10215 * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
10216 (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
10217 ameliorating the cases where it can be.
10218
7c9e467e 102192014-04-09 David Edelsohn <dje.gcc@gmail.com>
10220
10221 Revert
10222 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
10223
10224 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
10225 (loadsync_<mode>): Change mode.
10226 (load_quadpti, store_quadpti): New.
10227 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
10228 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
10229 * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
10230
a4f867b1 102312014-04-09 Cong Hou <congh@google.com>
10232
10233 PR testsuite/60773
10234 * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
10235 documentation.
10236
cf5f2562 102372014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10238
10239 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
10240 instead of vnor to exploit possible fusion opportunity in the
10241 future.
10242 (altivec_expand_vec_perm_const_le): Likewise.
10243
7cdf0026 102442014-04-08 Pat Haugen <pthaugen@us.ibm.com>
10245
10246 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
10247 (loadsync_<mode>): Change mode.
10248 (load_quadpti, store_quadpti): New.
10249 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
10250 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
10251
ddf36f4d 102522014-04-08 Richard Sandiford <rdsandiford@googlemail.com>
10253
10254 PR target/60763
10255 * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
10256 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
10257 Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
10258
3bd308b2 102592014-04-08 Richard Biener <rguenther@suse.de>
10260
10261 PR middle-end/60706
10262 * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
10263 a 64bit widest int print double-int similar to on HWI64 hosts.
10264
f5f9fa15 102652014-04-08 Richard Biener <rguenther@suse.de>
10266
10267 PR tree-optimization/60785
10268 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
10269 default defs properly.
10270
3da466c2 102712014-04-08 Nathan Sidwell <nathan@codesourcery.com>
10272
10273 * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
10274 (Weffc++): Likewise.
10275
a198c09e 102762014-04-07 Jan Hubicka <hubcika@ucw.cz>
10277
10278 * ipa-devirt.c (maybe_record_node): When node is not recorded,
10279 set completep to false rather than true.
10280
e03556d9 102812014-04-07 Douglas B Rupp <rupp@adacore.com>
10282
10283 PR target/60504
10284 * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
10285 ARM_TARGET2_DWARF_FORMAT.
10286
01a19f4c 102872014-04-07 Charles Baylis <charles.baylis@linaro.org>
10288
10289 PR target/60609
10290 * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
10291 (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
10292 ADDR_DIFF_VEC.
10293
07eb9386 102942014-04-07 Richard Biener <rguenther@suse.de>
10295
10296 PR tree-optimization/60766
e03556d9 10297 * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
10298 (may_eliminate_iv): Convert cand_value_at result to desired type.
07eb9386 10299
6d5d95d6 103002014-04-07 Jason Merrill <jason@redhat.com>
10301
10302 PR c++/60731
10303 * common.opt (-fno-gnu-unique): Add.
10304 * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
10305
a56bd70d 103062014-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10307
10308 * haifa-sched.c: Fix outdated function reference and minor
10309 grammar errors in introductory comment.
10310
66be7346 103112014-04-07 Richard Biener <rguenther@suse.de>
10312
10313 PR middle-end/60750
10314 * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
10315 for noreturn calls.
10316 * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
10317
be85a9c4 103182014-04-06 John David Anglin <danglin@gcc.gnu.org>
10319
10320 PR debug/55794
10321 * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
10322 size accounting for thunks.
10323 (pa_asm_output_mi_thunk): Use final_start_function() and
10324 final_end_function() to output function start and end directives.
10325
976c7653 103262014-04-05 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
10327
40e08eb2 10328 * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
10329 device specific ISA/ feature information. Remove short_sp and
10330 errata_skip ds. Add avr_device_specific_features enum to have device
10331 specific info.
976c7653 10332 * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
10333 errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
10334 * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
10335 updated device specific info.
10336 * config/avr/avr-mcus.def: Merge device specific details to
10337 dev_attribute field.
10338 * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
10339 errata_skip.
10340 * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
10341 * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
10342 assembler if RMW isa supported by current device.
10343 * config/avr/genmultilib.awk: Update as device info structure changed.
10344 * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
10345
4fc29ce4 103462014-04-04 Cong Hou <congh@google.com>
10347
10348 PR tree-optimization/60656
10349 * tree-vect-stmts.c (supportable_widening_operation):
10350 Fix a bug that elements in a vector with vect_used_by_reduction
10351 property are incorrectly reordered when the operation on it is not
10352 consistant with the one in reduction operation.
10353
97f436b3 103542014-04-04 John David Anglin <danglin@gcc.gnu.org>
10355
10356 PR rtl-optimization/60155
10357 * gcse.c (record_set_data): New function.
10358 (single_set_gcse): New function.
10359 (gcse_emit_move_after): Use single_set_gcse instead of single_set.
10360 (hoist_code): Likewise.
10361 (get_pressure_class_and_nregs): Likewise.
10362
d9d7686b 103632014-04-04 Eric Botcazou <ebotcazou@adacore.com>
10364
10365 * explow.c (probe_stack_range): Emit a final optimization blockage.
10366
12b772b3 103672014-04-04 Anthony Green <green@moxielogic.com>
10368
10369 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
10370 typos.
10371
f0d26d57 103722014-04-04 Jan Hubicka <hubicka@ucw.cz>
10373
10374 PR ipa/59626
10375 * lto-cgraph.c (input_overwrite_node): Check that partitioning
10376 flags are set only during streaming.
10377 * ipa.c (process_references, walk_polymorphic_call_targets,
10378 symtab_remove_unreachable_nodes): Drop bodies of always inline
10379 after early inlining.
10380 (symtab_remove_unreachable_nodes): Remove always_inline attribute.
976c7653 10381
8a65c663 103822014-04-04 Jakub Jelinek <jakub@redhat.com>
10383 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10384
10385 PR debug/60655
10386 * dwarf2out.c (const_ok_for_output_1): Reject expressions
10387 containing a NOT.
10388
68063ed2 103892014-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10390
10391 PR bootstrap/60743
10392 * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
10393 duration.
10394 (cortex_a53_fdivd): Likewise.
10395
98d52bcd 103962014-04-04 Martin Jambor <mjambor@suse.cz>
10397
10398 PR ipa/60640
7a8a3a7e 10399 * cgraph.h (cgraph_clone_node): New parameter added to declaration.
10400 Adjust all callers.
98d52bcd 10401 * cgraph.c (clone_of_p): Also return true if thunks match.
10402 (verify_edge_corresponds_to_fndecl): Removed extraneous call to
10403 cgraph_function_or_thunk_node and an obsolete comment.
7a8a3a7e 10404 * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
10405 file.
10406 (build_function_decl_skip_args): Likewise.
98d52bcd 10407 (set_new_clone_decl_and_node_flags): New function.
7a8a3a7e 10408 (duplicate_thunk_for_node): Likewise.
10409 (redirect_edge_duplicating_thunks): Likewise.
10410 (cgraph_clone_node): New parameter args_to_skip, pass it to
10411 redirect_edge_duplicating_thunks which is called instead of
10412 cgraph_redirect_edge_callee.
10413 (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
98d52bcd 10414 moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
10415
809003b3 104162014-04-04 Jeff Law <law@redhat.com>
10417
69a105b0 10418 PR target/60657
809003b3 10419 * config/arm/predicates.md (const_int_I_operand): New predicate.
10420 (const_int_M_operand): Similarly.
10421 * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
10422 const_int_operand.
10423 (insv_t2, extv_reg, extzv_t2): Likewise.
10424 (load_multiple_with_writeback): Similarly for const_int_I_operand.
10425 (pop_multiple_with_writeback_and_return): Likewise.
10426 (vfp_pop_multiple_with_writeback): Likewise
10427
98107def 104282014-04-04 Richard Biener <rguenther@suse.de>
10429
10430 PR ipa/60746
10431 * tree-ssanames.c (make_ssa_name_fn): Fix assert.
10432 * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
10433 non-GIMPLE_LABELs.
10434 * gimplify.h (gimple_add_tmp_var_fn): Declare.
10435 * gimplify.c (gimple_add_tmp_var_fn): New function.
10436 * gimple-expr.h (create_tmp_reg_fn): Declare.
10437 * gimple-expr.c (create_tmp_reg_fn): New function.
10438 * gimple-low.c (record_vars_into): Don't change cfun.
10439 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
10440 code generation without cfun.
10441
23913915 104422014-04-04 Thomas Schwinge <thomas@codesourcery.com>
10443
10444 PR bootstrap/60719
10445 * Makefile.in (install-driver): Fix shell scripting.
10446
004a94a5 104472014-04-03 Cong Hou <congh@google.com>
10448
10449 PR tree-optimization/60505
10450 * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
40e08eb2 10451 threshold of number of iterations below which no vectorization
10452 will be done.
004a94a5 10453 * tree-vect-loop.c (new_loop_vec_info):
10454 Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
10455 * tree-vect-loop.c (vect_analyze_loop_operations):
10456 Set LOOP_VINFO_COST_MODEL_THRESHOLD.
10457 * tree-vect-loop.c (vect_transform_loop):
10458 Use LOOP_VINFO_COST_MODEL_THRESHOLD.
10459 * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
10460 of iterations of the loop and see if we should build the epilogue.
10461
b1e946ea 104622014-04-03 Richard Biener <rguenther@suse.de>
10463
40e08eb2 10464 * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
b1e946ea 10465 (streamer_tree_cache_create): Adjust.
10466 * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
10467 to allow optional nodes array.
10468 (streamer_tree_cache_insert_1): Use next_idx to assign idx.
10469 (streamer_tree_cache_append): Likewise.
10470 (streamer_tree_cache_create): Create nodes array optionally
10471 as specified by parameter.
10472 * lto-streamer-out.c (create_output_block): Avoid maintaining
10473 the node array in the writer cache.
10474 (DFS_write_tree): Remove assertion.
40e08eb2 10475 (produce_asm_for_decls): Free the out decl state hash table early.
b1e946ea 10476 * lto-streamer-in.c (lto_data_in_create): Adjust for
10477 streamer_tree_cache_create prototype change.
10478
21630e60 104792014-04-03 Richard Biener <rguenther@suse.de>
10480
10481 * tree-streamer-out.c (streamer_write_chain): Do not temporarily
10482 set TREE_CHAIN to NULL_TREE.
10483
5da4c394 104842014-04-03 Richard Biener <rguenther@suse.de>
10485
10486 PR tree-optimization/60740
10487 * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
10488 over all GIMPLE_COND operands.
10489
a35a8e18 104902014-04-03 Nathan Sidwell <nathan@codesourcery.com>
10491
10492 * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
10493 (Weffc++): Remove Scott's numbering, merge lists and reference
10494 Wnon-virtual-dtor.
10495
4ff0c5b4 104962014-04-03 Nick Clifton <nickc@redhat.com>
10497
10498 * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
10499 properly.
10500
3083a0b3 105012014-04-03 Martin Jambor <mjambor@suse.cz>
10502
10503 * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
10504 mention gcc_unreachable before failing.
10505 * ipa.c (symtab_remove_unreachable_nodes): Also print order of
10506 removed symbols.
10507
e863e8f6 105082014-04-02 Jan Hubicka <hubicka@ucw.cz>
10509
10510 PR ipa/60659
40e08eb2 10511 * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
10512 inconsistent code and instead mark the context inconsistent.
e863e8f6 10513 (possible_polymorphic_call_targets): For inconsistent contexts
10514 return empty complete list.
10515
92364a36 105162014-04-02 Anthony Green <green@moxielogic.com>
10517
10518 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
10519 (extendqisi2, extendhisi2): Define.
10520 * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
10521 (WCHAR_TYPE): Change to unsigned int.
10522
f626787a 105232014-04-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10524
10525 PR tree-optimization/60733
10526 * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
10527 insertion point for PHI candidates to be the end of the feeding
10528 block for the PHI argument.
10529
53f1eb5d 105302014-04-02 Vladimir Makarov <vmakarov@redhat.com>
10531
10532 PR rtl-optimization/60650
10533 * lra-constraints.c (process_alt_operands): Decrease reject for
10534 earlyclobber matching.
10535
0bc377b9 105362014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10537
10538 * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
10539
4f8e39e2 105402014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10541
10542 * config/spu/spu.c (pad_bb): Do not crash when the last
10543 insn is CODE_FOR_blockage.
10544
19578ee0 105452014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10546
10547 * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
10548 lies outside the target mode.
10549
f959b415 105502014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
10551
10552 PR target/60735
10553 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
10554 software floating point or no floating point registers, do not
10555 allow any type in the FPRs. Eliminate a test for SPE SIMD types
10556 in GPRs that occurs after we tested for GPRs that would never be
10557 true.
10558
10559 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
10560 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
10561 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
10562 specifically allow DDmode, since that does not use the SPE SIMD
10563 instructions.
10564
cc9e213a 105652014-04-02 Richard Biener <rguenther@suse.de>
10566
10567 PR middle-end/60729
10568 * optabs.c (expand_abs_nojump): Honor flag_trapv only for
10569 MODE_INTs. Properly use negv_optab.
10570 (expand_abs): Likewise.
10571
ad41d5a7 105722014-04-02 Richard Biener <rguenther@suse.de>
10573
10574 PR bootstrap/60719
10575 * Makefile.in (install-driver): Guard extra installs with special
10576 names properly.
10577
f22fa178 105782014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com>
10579
10580 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
10581 Document vec_vgbbd.
10582
62eeedd7 105832014-04-01 Richard Henderson <rth@redhat.com>
10584
10585 PR target/60704
10586 * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
10587 alternative enabled before register allocation.
10588
546f6cf0 105892014-04-01 Chung-Lin Tang <cltang@codesourcery.com>
10590
10591 * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
10592 * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
10593 typo.
10594 (nios2_large_got_address): Remove unneeded 'sym' parameter.
10595 (nios2_got_address): Update nios2_large_got_address call site.
10596 (nios2_delegitimize_address): New function.
10597 (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
10598 * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
10599 (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
10600
f771ad0e 106012014-04-01 Martin Husemann <martin@duskware.de>
10602
10603 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
10604 for -mabi=32.
10605
95eb2df4 106062014-04-01 Richard Sandiford <rdsandiford@googlemail.com>
10607
10608 PR rtl-optimization/60604
10609 * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
10610 check from register_operand.
10611 (register_operand): Redefine in terms of general_operand.
10612 (nonmemory_operand): Use register_operand for the non-constant cases.
10613
7e30ab00 106142014-04-01 Richard Biener <rguenther@suse.de>
10615
40e08eb2 10616 * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
7e30ab00 10617
4f09b43f 106182014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
10619
10620 * doc/invoke.texi (mapp-regs): Clarify.
10621
1ca2dcea 106222014-03-31 Ulrich Drepper <drepper@gmail.com>
10623
10624 * config/i386/avx512fintrin.h (__v32hi): Define type.
10625 (__v64qi): Likewise.
10626 (_mm512_set1_epi8): Define.
10627 (_mm512_set1_epi16): Define.
10628 (_mm512_set4_epi32): Define.
10629 (_mm512_set4_epi64): Define.
10630 (_mm512_set4_pd): Define.
10631 (_mm512_set4_ps): Define.
10632 (_mm512_setr4_epi64): Define.
10633 (_mm512_setr4_epi32): Define.
10634 (_mm512_setr4_pd): Define.
10635 (_mm512_setr4_ps): Define.
10636 (_mm512_setzero_epi32): Define.
10637
95e1bae8 106382014-03-31 Martin Jambor <mjambor@suse.cz>
10639
10640 PR middle-end/60647
10641 * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
10642 callsite_arguments_match_p. Updated all callers. Also check types of
10643 corresponding formal parameters and actual arguments.
10644 (not_all_callers_have_enough_arguments_p) Renamed to
10645 some_callers_have_mismatched_arguments_p.
10646
9a34a249 106472014-03-31 Yuri Rumyantsev <ysrumyan@gmail.com>
10648
10649 * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
10650
f79e87ea 106512014-03-31 Kugan Vivekanandarajah <kuganv@linaro.org>
10652
10653 PR target/60034
10654 * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
10655 section anchor.
10656
8211f5a2 106572014-03-30 Uros Bizjak <ubizjak@gmail.com>
10658
10659 * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
10660 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
10661 Split out
10662 <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
10663 Use FMAMODE_NOVF512 mode iterator.
10664 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
10665 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
10666 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
10667 (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
10668 Split out
10669 <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
10670 Use VF_128_256 mode iterator.
10671 (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
10672 Ditto.
10673
7a33f452 106742014-03-28 Jan Hubicka <hubicka@ucw.cz>
10675
10676 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
10677 static chain if needed.
10678
28f7a2af 106792014-03-28 Vladimir Makarov <vmakarov@redhat.com>
10680
10681 PR target/60697
10682 * lra-constraints.c (index_part_to_reg): New.
10683 (process_address): Use it.
10684
178ef0b6 106852014-03-27 Jeff Law <law@redhat.com>
6e70f6fb 10686 Jakub Jelinek <jakub@redhat.com>
178ef0b6 10687
10688 PR target/60648
6e70f6fb 10689 * expr.c (do_tablejump): Use simplify_gen_binary rather than
10690 gen_rtx_{PLUS,MULT} to build up the address expression.
178ef0b6 10691
6e70f6fb 10692 * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
10693 creating non-canonical RTL.
178ef0b6 10694
db197f90 106952014-03-28 Jan Hubicka <hubicka@ucw.cz>
10696
10697 PR ipa/60243
10698 * ipa-inline.c (want_inline_small_function_p): Short circuit large
10699 functions; reorganize to make cheap checks first.
10700 (inline_small_functions): Do not estimate growth when dumping;
10701 it is expensive.
10702 * ipa-inline.h (inline_summary): Add min_size.
10703 (growth_likely_positive): New function.
10704 * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
10705 (set_cond_stmt_execution_predicate): Cleanup.
10706 (estimate_edge_size_and_time): Compute min_size.
10707 (estimate_calls_size_and_time): Likewise.
10708 (estimate_node_size_and_time): Likewise.
10709 (inline_update_overall_summary): Update min_size.
10710 (do_estimate_edge_time): Likewise.
10711 (do_estimate_edge_size): Update.
10712 (do_estimate_edge_hints): Update.
10713 (growth_likely_positive): New function.
10714
bdc8fe1f 107152014-03-28 Jakub Jelinek <jakub@redhat.com>
10716
10717 PR target/60693
10718 * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
10719 also if addr has VOIDmode.
10720
98d7984b 107212014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10722
10723 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
10724 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
10725 Declare extern.
10726 * config/arm/cortex-a53.md: Add reservations and bypass for crypto
10727 instructions as well as AdvancedSIMD loads.
10728
31c72114 107292014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10730
10731 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
10732 Use crypto_aese type.
10733 (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
10734 * config/arm/arm.md (is_neon_type): Replace crypto_aes with
10735 crypto_aese, crypto_aesmc. Move to types.md.
10736 * config/arm/types.md (crypto_aes): Split into crypto_aese,
10737 crypto_aesmc.
10738 * config/arm/iterators.md (crypto_type): Likewise.
10739
ebd03cf7 107402014-03-28 Jan Hubicka <hubicka@ucw.cz>
10741
10742 * cgraph.c: Include expr.h and tree-dfa.h.
8211f5a2 10743 (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
10744 remove LHS.
ebd03cf7 10745
d2e86786 107462014-03-28 Vladimir Makarov <vmakarov@redhat.com>
10747
10748 PR target/60675
10749 * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
10750 regs from checking multi-reg pseudos.
10751
7c667675 107522014-03-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10753
10754 * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
10755
48397a2a 107562014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10757
10758 * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
10759 if it would clobber the stack pointer, even temporarily.
10760
78985618 107612014-03-28 Eric Botcazou <ebotcazou@adacore.com>
10762
10763 * mode-switching.c: Make small adjustments to the top comment.
10764
a1546352 107652014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
10766
10767 * config/rs6000/constraints.md (wD constraint): New constraint to
10768 match the constant integer to get the top DImode/DFmode out of a
10769 vector in a VSX register.
10770
10771 * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
10772 match the constant integer to get the top DImode/DFmode out of a
10773 vector in a VSX register.
10774
10775 * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
10776 for ISA 2.07.
10777
10778 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10779 vbpermq builtins.
10780
10781 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
10782 -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
10783
10784 * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
10785 Optimize vec_extract of 64-bit values, where the value being
10786 extracted is in the top word, where we can use scalar
10787 instructions. Add direct move and store support. Combine the big
8211f5a2 10788 endian/little endian vector select load support into a single insn.
a1546352 10789 (vsx_extract_<mode>_internal1): Likewise.
10790 (vsx_extract_<mode>_internal2): Likewise.
10791 (vsx_extract_<mode>_load): Likewise.
10792 (vsx_extract_<mode>_store): Likewise.
10793 (vsx_extract_<mode>_zero): Delete, big and little endian insns are
10794 combined into vsx_extract_<mode>_load.
10795 (vsx_extract_<mode>_one_le): Likewise.
10796
10797 * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
10798 define the top 64-bit vector element.
10799
10800 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
10801 constraint.
10802
f17d6dfa 10803 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
10804 Document vec_vbpermq builtin.
10805
a1546352 10806 PR target/60672
10807 * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
10808 enable use of xxsldwi and xxpermdi builtin functions.
10809 (vec_xxpermdi): Likewise.
10810
10811 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
10812 Document use of vec_xxsldwi and vec_xxpermdi builtins.
10813
1f558530 108142014-03-27 Vladimir Makarov <vmakarov@redhat.com>
10815
10816 PR rtl-optimization/60650
53f1eb5d 10817 * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
1f558530 10818 first_p. Use it.
10819 (find_spills_for): New.
10820 (assign_by_spills): Pass the new parameter to find_hard_regno_for.
10821 Spill all pseudos on the second iteration.
10822
e2ed0ab0 108232014-03-27 Marek Polacek <polacek@redhat.com>
10824
10825 PR c/50347
10826 * doc/extend.texi (ffs Builtins): Change unsigned types to signed
10827 types.
10828
06fa0630 108292014-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10830
10831 * config/s390/s390.c (s390_can_use_return_insn): Check for
10832 call-saved FPRs on 31 bit.
10833
ef8cfd4d 108342014-03-27 Jakub Jelinek <jakub@redhat.com>
10835
10836 PR middle-end/60682
10837 * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
10838 if they need regimplification, just drop them instead of
10839 calling gimple_regimplify_operands on them.
10840
743de8ed 108412014-03-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
10842
10843 PR target/60580
10844 * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
10845 (aarch64_frame_pointer_required): Adjust logic.
10846 (aarch64_can_eliminate): Adjust logic.
10847 (aarch64_override_options_after_change): Adjust logic.
10848
0bc23e2b 108492014-03-27 Dehao Chen <dehao@google.com>
10850
10851 * ipa-inline.c (early_inliner): Update node's inline info.
10852
bb0803fb 108532014-03-26 Dehao Chen <dehao@google.com>
10854
10855 * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
10856 compiler inserted conditional jumps for NAN float check.
10857
58e9c2b3 108582014-03-26 Jakub Jelinek <jakub@redhat.com>
10859
d4d068c0 10860 * ubsan.h (ubsan_create_data): Change second argument's type
10861 to const location_t *.
10862 * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
10863 _("<unknown>").
10864 (ubsan_create_data): Change second argument to const location_t *PLOC.
10865 Create Loc field whenever PLOC is non-NULL.
10866 (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
10867 ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
10868 callers.
10869
58e9c2b3 10870 PR other/59545
10871 * real.c (real_to_integer2): Change type of low to UHWI.
10872
7b300408 108732014-03-26 Tobias Burnus <burnus@net-b.de>
10874
10875 * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
10876 (CILK_SELF_SPECS): New define.
10877 (driver_self_specs): Use it.
10878
a8cae5c5 108792014-03-26 Richard Biener <rguenther@suse.de>
10880
10881 * tree-pretty-print.c (percent_K_format): Implement special
10882 case for LTO and its stripped down BLOCK tree.
10883
ce8e6661 108842014-03-26 Jakub Jelinek <jakub@redhat.com>
10885
57e011dc 10886 PR sanitizer/60636
10887 * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
10888
ce8e6661 10889 * tree-vrp.c (simplify_internal_call_using_ranges): If only
10890 one range is range_int_cst_p, but not both, at least optimize
10891 addition/subtraction of 0 and multiplication by 0 or 1.
10892 * gimple-fold.c (gimple_fold_call): Fold
10893 IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
10894 (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
10895 INTEGER_CSTs, try to fold at least x * 0 and y - y.
10896
be8108ee 108972014-03-26 Eric Botcazou <ebotcazou@adacore.com>
10898
10899 PR rtl-optimization/60452
10900 * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
10901 <case REG>: Return 1 for invalid offsets from the frame pointer.
10902
c051a294 109032014-03-26 Marek Polacek <polacek@redhat.com>
10904
10905 PR c/37428
10906 * doc/extend.texi (C Extensions): Mention variable-length arrays in
10907 a structure/union.
10908
f25f1b25 109092014-03-26 Marek Polacek <polacek@redhat.com>
10910
10911 PR c/39525
10912 * doc/extend.texi (Designated Inits): Describe what happens to omitted
10913 field members.
10914
93750926 109152014-03-26 Marek Polacek <polacek@redhat.com>
10916
10917 PR other/59545
10918 * ira-color.c (update_conflict_hard_regno_costs): Perform the
10919 multiplication in unsigned type.
10920
ed1601d3 109212014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
10922
10923 * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
10924
7815c595 109252014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
10926
10927 * doc/contrib.texi: Add myself as Andes nds32 port contributor.
10928
5a7ad253 109292014-03-25 Jan Hubicka <hubicka@ucw.cz>
10930
10931 PR ipa/60315
10932 * cif-code.def (UNREACHABLE) New code.
8211f5a2 10933 * ipa-inline.c (inline_small_functions): Skip edges to
10934 __builtlin_unreachable.
5a7ad253 10935 (estimate_edge_growth): Allow edges to __builtlin_unreachable.
10936 * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
10937 predicate to __bulitin_unreachable.
8211f5a2 10938 (set_cond_stmt_execution_predicate): Fix issue when
10939 invert_tree_comparison returns ERROR_MARK.
5a7ad253 10940 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
10941 propagate to inline clones.
10942 * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
10943 to unreachable.
10944 * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
10945 * cgraphclones.c (cgraph_clone_node): If call destination is already
10946 ureachable, do not redirect it back.
10947 * tree-inline.c (fold_marked_statements): Hanlde calls becoming
10948 unreachable.
10949
ce2d198d 109502014-03-25 Jan Hubicka <hubicka@ucw.cz>
10951
10952 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
10953 Do not modify inline clones.
10954
d1eb2d97 109552014-03-25 Jakub Jelinek <jakub@redhat.com>
10956
10957 * config/i386/i386.md (general_sext_operand): New mode attr.
10958 (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
10959 don't generate (sign_extend (const_int)).
10960 (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
8211f5a2 10961 operands[2]. Use We constraint instead of <i> and
10962 <general_sext_operand> predicate instead of <general_operand>.
d1eb2d97 10963 (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
10964 * config/i386/constraints.md (We): New constraint.
10965 * config/i386/predicates.md (x86_64_sext_operand,
10966 sext_operand): New predicates.
10967
9a225e5a 109682014-03-25 Martin Jambor <mjambor@suse.cz>
10969
10970 PR ipa/60600
10971 * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
10972 inconsistent devirtualizations to __builtin_unreachable.
10973
c7555cab 109742014-03-25 Marek Polacek <polacek@redhat.com>
10975
10976 PR c/35449
10977 * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
10978
0c1c0992 109792014-03-25 Alan Lawrence <alan.lawrence@arm.com>
10980
10981 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
10982 order of elements for big-endian.
10983
2637468b 109842014-03-25 Richard Biener <rguenther@suse.de>
10985
10986 PR middle-end/60635
10987 * gimplify-me.c (gimple_regimplify_operands): Update the
10988 re-gimplifed stmt.
10989
dda4feee 109902014-03-25 Martin Jambor <mjambor@suse.cz>
10991
10992 PR ipa/59176
10993 * lto-cgraph.c (lto_output_node): Stream body_removed flag.
10994 (lto_output_varpool_node): Likewise.
10995 (input_overwrite_node): Likewise.
10996 (input_varpool_node): Likewise.
10997
fa8ceef2 109982014-03-25 Richard Biener <rguenther@suse.de>
10999
8211f5a2 11000 * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
fa8ceef2 11001 (run_gcc): Likewise.
11002
0274601c 110032014-03-25 Jakub Jelinek <jakub@redhat.com>
11004
9ec27261 11005 * combine.c (simplify_compare_const): Add MODE argument.
11006 Handle mode_width 0 as very large mode_width.
11007 (try_combine, simplify_comparison): Adjust callers.
11008
0274601c 11009 * cselib.c (cselib_hash_rtx): Perform addition in unsigned
11010 type to avoid signed integer overflow.
11011 * explow.c (plus_constant): Likewise.
11012
38f165ba 110132014-03-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
11014
11015 * doc/generic.texi: Correct typos.
11016
fa4b1532 110172014-03-24 Tobias Burnus <burnus@net-b.de>
11018
11019 * doc/invoke.texi (-flto): Expand section about
11020 using static libraries with LTO.
11021
79127ad5 110222014-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11023
11024 PR rtl-optimization/60501
11025 * optabs.def (addptr3_optab): New optab.
11026 * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
11027 * doc/md.texi ("addptrm3"): Document new RTL standard expander.
11028 * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
11029
11030 * lra.c (emit_add3_insn): Use the addptr pattern if available.
11031
11032 * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
11033
0fc245cd 110342014-03-24 Ulrich Drepper <drepper@gmail.com>
11035
56afa794 11036 * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
11037 _mm512_set1_pd.
11038
0fc245cd 11039 * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
11040 (_mm256_undefined_ps): Define.
11041 (_mm256_undefined_pd): Define.
11042 * config/i386/emmintrin.h (_mm_undefined_si128): Define.
11043 (_mm_undefined_pd): Define.
11044 * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
11045 * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
11046 (_mm512_undefined_ps): Define.
11047 (_mm512_undefined_pd): Define.
11048 Use _mm*_undefined_*.
11049 * config/i386/avx2intrin.h: Use _mm*_undefined_*.
11050
bed34e83 110512014-03-24 Alex Velenko <Alex.Velenko@arm.com>
11052
11053 * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
11054 (lshr_simd): DI mode added.
11055 * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
11056 (aarch64_ushr_simddi): Likewise.
11057 * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
11058 * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
11059 (vshrd_n_u64): Likewise.
11060
af780f1a 110612014-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11062
11063 * Makefile.in (s-macro_list): Depend on cc1.
11064
25be82ca 110652014-03-23 Teresa Johnson <tejohnson@google.com>
11066
11067 * ipa-utils.c (ipa_print_order): Use specified dump file.
11068
13858b08 110692014-03-23 Eric Botcazou <ebotcazou@adacore.com>
11070
11071 PR rtl-optimization/60601
11072 * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
11073
11074 * gcc.c (eval_spec_function): Initialize save_growing_value.
11075
80dc2066 110762014-03-22 Jakub Jelinek <jakub@redhat.com>
11077
c866ebee 11078 PR sanitizer/60613
11079 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
11080 code == MINUS_EXPR, never swap op0 with op1.
11081
80dc2066 11082 * toplev.c (init_local_tick): Avoid signed integer multiplication
11083 overflow.
11084 * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
11085 shift by first operand's bitsize.
11086
c2e66792 110872014-03-21 Jakub Jelinek <jakub@redhat.com>
11088
11089 PR target/60610
11090 * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
11091 redefine to 1 or 0.
11092 * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
11093 TARGET_ISA_64BIT_P(x).
11094
05eee151 110952014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11096
11097 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
11098 pattern for vector nor instead of subtract from splat(-1).
11099 (altivec_expand_vec_perm_const_le): Likewise.
11100
4f997567 111012014-03-21 Richard Henderson <rth@twiddle.net>
11102
11103 PR target/60598
11104 * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
11105 related insns after epilogue_completed.
11106
fa4052b3 111072014-03-21 Martin Jambor <mjambor@suse.cz>
11108
11109 PR ipa/59176
11110 * cgraph.h (symtab_node): New flag body_removed.
11111 * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
11112 when removing bodies.
11113 * symtab.c (dump_symtab_base): Dump body_removed flag.
11114 * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
11115 had their bodies removed.
11116
95d0bdb9 111172014-03-21 Martin Jambor <mjambor@suse.cz>
11118
11119 PR ipa/60419
11120 * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
11121 in the border.
11122
e7e44439 111232014-03-21 Richard Biener <rguenther@suse.de>
11124
11125 PR tree-optimization/60577
11126 * tree-core.h (struct tree_base): Document nothrow_flag use
0c0f572f 11127 in DECL_NONALIASED.
11128 * tree.h (DECL_NONALIASED): New.
e7e44439 11129 (may_be_aliased): Adjust.
0c0f572f 11130 * coverage.c (build_var): Set DECL_NONALIASED.
e7e44439 11131
217d5117 111322014-03-20 Eric Botcazou <ebotcazou@adacore.com>
11133
11134 * expr.c (expand_expr_real_1): Remove outdated comment.
11135
b726fd97 111362014-03-20 Jakub Jelinek <jakub@redhat.com>
11137
4b07180e 11138 PR middle-end/60597
11139 * ira.c (adjust_cleared_regs): Call copy_rtx on
11140 *reg_equiv[REGNO (loc)].src_p before passing it to
11141 simplify_replace_fn_rtx.
11142
b726fd97 11143 PR target/60568
11144 * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
11145 into CONST, put pic register as first operand of PLUS. Use
11146 gen_const_mem for both 32-bit and 64-bit PIC got loads.
11147
f5837032 111482014-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11149
11150 * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
11151
c495d615 111522014-03-20 Eric Botcazou <ebotcazou@adacore.com>
11153
11154 * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
11155 around for store forwarding issue in the FPU on the UT699.
11156 * config/sparc/sparc.md (in_branch_delay): Return false for single FP
11157 loads and operations if -mfix-ut699 is specified.
11158 (divtf3_hq): Tweak attribute.
11159 (sqrttf2_hq): Likewise.
11160
9f495e8d 111612014-03-20 Eric Botcazou <ebotcazou@adacore.com>
11162
11163 * calls.c (store_one_arg): Remove incorrect const qualification on the
11164 type of the temporary.
11165 * cfgexpand.c (expand_return): Likewise.
11166 * expr.c (expand_constructor): Likewise.
11167 (expand_expr_real_1): Likewise.
11168
a70457b0 111692014-03-20 Zhenqiang Chen <zhenqiang.chen@linaro.org>
11170
11171 * config/arm/arm.c (arm_dwarf_register_span): Update the element number
11172 of parts.
11173
c60e5d07 111742014-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
11175
11176 PR target/60039
11177 * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
11178
cde4685b 111792014-03-19 James Greenhalgh <james.greenhalgh@arm.com>
11180
11181 * config/arm/aarch-common-protos.h
11182 (alu_cost_table): Fix spelling of "extend".
11183 * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
11184
73249b1e 111852014-03-19 Richard Biener <rguenther@suse.de>
11186
11187 PR middle-end/60553
11188 * tree-core.h (tree_type_common): Re-order pointer members
11189 to reduce recursion depth during GC walks.
11190
93f7d05a 111912014-03-19 Marek Polacek <polacek@redhat.com>
11192
11193 PR sanitizer/60569
11194 * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
11195 before accessing it.
11196
1df9b23b 111972014-03-19 Richard Biener <rguenther@suse.de>
11198
11199 PR lto/59543
11200 * lto-streamer-in.c (input_function): In WPA stage do not drop
11201 debug stmts.
11202
da7a2b38 112032014-03-19 Jakub Jelinek <jakub@redhat.com>
11204
11205 PR tree-optimization/60559
11206 * vectorizable_mask_load_store): Replace scalar MASK_LOAD
11207 with build_zero_cst assignment.
11208
7020833c 112092014-03-18 Kai Tietz <ktietz@redhat.com>
11210
11211 PR rtl-optimization/56356
11212 * sdbout.c (sdbout_parms): Verify that parms'
11213 incoming argument is valid.
11214 (sdbout_reg_parms): Likewise.
11215
f3d693fa 112162014-03-18 Richard Henderson <rth@redhat.com>
11217
11218 PR target/60562
11219 * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
11220 be shadowed by *float<SWI48><MODEF>2_sse. Test X87_ENABLE_FLOAT.
f249fe8a 11221 (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
84bf5802 11222
112232014-03-18 Basile Starynkevitch <basile@starynkevitch.net>
11224
6e70f6fb 11225 * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
8211f5a2 11226 * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
6e70f6fb 11227 Italicize plugin event names in description. Explain that
8211f5a2 11228 PLUGIN_PRAGMAS has no sense for lto1. Explain PLUGIN_INCLUDE_FILE.
11229 Remind that no GCC functions should be called after PLUGIN_FINISH.
6e70f6fb 11230 Explain what pragmas with expansion are.
84bf5802 11231
ac3cd7ce 112322014-03-18 Martin Liska <mliska@suse.cz>
11233
11234 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
11235 gimple call statement is update.
11236 * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
11237 GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
11238
0baf842d 112392014-03-18 Jakub Jelinek <jakub@redhat.com>
11240
8af7a3f6 11241 PR sanitizer/60557
11242 * ubsan.c (ubsan_instrument_unreachable): Call
11243 initialize_sanitizer_builtins.
11244 (ubsan_pass): Likewise.
11245
0baf842d 11246 PR sanitizer/60535
11247 * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
11248 varpool_finalize_decl instead of rest_of_decl_compilation.
11249
53b880f3 112502014-03-18 Richard Biener <rguenther@suse.de>
11251
11252 * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
11253 by using bitmap_and_compl instead of bitmap_and_compl_into.
11254 (df_rd_transfer_function): Likewise.
11255
d3432056 112562014-03-18 Richard Biener <rguenther@suse.de>
11257
11258 * doc/lto.texi (fresolution): Fix typo.
11259
ca0b14a4 112602014-03-18 Richard Biener <rguenther@suse.de>
11261
11262 * doc/invoke.texi (flto): Update for changes in 4.9.
11263
044e2e4b 112642014-03-18 Richard Biener <rguenther@suse.de>
11265
11266 * doc/loop.texi: Remove section on the removed lambda framework.
11267 Update loop docs with recent changes in preserving loop structure.
11268
ad6466f3 112692014-03-18 Richard Biener <rguenther@suse.de>
11270
11271 * doc/lto.texi (-fresolution): Document.
11272
d48aee15 112732014-03-18 Richard Biener <rguenther@suse.de>
11274
11275 * doc/contrib.texi: Adjust my name.
11276
c83059be 112772014-03-18 Jakub Jelinek <jakub@redhat.com>
11278
11279 PR ipa/58721
11280 * internal-fn.c: Include diagnostic-core.h.
11281 (expand_BUILTIN_EXPECT): New function.
11282 * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
11283 (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
11284 IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
11285 * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
11286 IFN_BUILTIN_EXPECT.
11287 * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
11288 Revert 3 argument __builtin_expect code.
11289 (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
11290 * gimple-fold.c (gimple_fold_call): Likewise.
11291 * tree.h (fold_builtin_expect): New prototype.
11292 * builtins.c (build_builtin_expect_predicate): Add predictor
11293 argument, if non-NULL, create 3 argument __builtin_expect.
11294 (fold_builtin_expect): No longer static. Add ARG2 argument,
11295 pass it through to build_builtin_expect_predicate.
11296 (fold_builtin_2): Adjust caller.
11297 (fold_builtin_3): Handle BUILT_IN_EXPECT.
11298 * internal-fn.def (BUILTIN_EXPECT): New.
11299
113002014-03-18 Tobias Burnus <burnus@net-b.de>
11301
11302 PR ipa/58721
11303 * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
11304 PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
11305 PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
11306
113072014-03-18 Jan Hubicka <hubicka@ucw.cz>
11308
11309 PR ipa/58721
11310 * predict.c (combine_predictions_for_bb): Fix up formatting.
11311 (expr_expected_value_1, expr_expected_value): Add predictor argument,
11312 fill what it points to if non-NULL.
11313 (tree_predict_by_opcode): Adjust caller, use the predictor.
11314 * predict.def (PRED_COMPARE_AND_SWAP): Add.
11315
53b04d27 113162014-03-18 Eric Botcazou <ebotcazou@adacore.com>
11317
11318 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
11319 proper constant for the store mode.
11320
7b324376 113212014-03-18 Ilya Enkovich <ilya.enkovich@intel.com>
11322
11323 * symtab.c (change_decl_assembler_name): Fix transparent alias
11324 chain construction.
11325
02bf77ed 113262014-03-16 Renlin Li <Renlin.Li@arm.com>
11327
11328 * config/aarch64/aarch64.c: Correct the comments about the
11329 aarch64 stack layout.
11330
7c01fa6c 113312014-03-18 Thomas Schwinge <thomas@codesourcery.com>
11332
11333 * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
11334 check for GF_OMP_FOR_KIND_FOR.
11335
d14c1c82 113362013-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
11337
11338 * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
11339 ymm and zmm register names.
11340
74700902 113412014-03-17 Jakub Jelinek <jakub@redhat.com>
11342
11343 PR target/60516
11344 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
11345 note creation for the 2010-08-31 changes.
11346
ad45e43e 113472014-03-17 Marek Polacek <polacek@redhat.com>
11348
11349 PR middle-end/60534
11350 * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
11351 as -fno-tree-loop-vectorize.
11352 (expand_omp_simd): Likewise.
11353
6b5f7be2 113542014-03-15 Eric Botcazou <ebotcazou@adacore.com>
11355
11356 * config/sparc/sparc-protos.h (tls_call_delay): Delete.
11357 (eligible_for_call_delay): New prototype.
11358 * config/sparc/sparc.c (tls_call_delay): Rename into...
11359 (eligible_for_call_delay): ...this. Return false if the instruction
11360 cannot be put in the delay slot of a branch.
11361 (eligible_for_restore_insn): Simplify.
11362 (eligible_for_return_delay): Return false if the instruction cannot be
11363 put in the delay slot of a branch and simplify.
11364 (eligible_for_sibcall_delay): Return false if the instruction cannot be
11365 put in the delay slot of a branch.
11366 * config/sparc/sparc.md (fix_ut699): New attribute.
11367 (tls_call_delay): Delete.
11368 (in_call_delay): Reimplement.
11369 (eligible_for_sibcall_delay): Rename into...
11370 (in_sibcall_delay): ...this.
11371 (eligible_for_return_delay): Rename into...
11372 (in_return_delay): ...this.
11373 (in_branch_delay): Reimplement.
11374 (in_uncond_branch_delay): Delete.
11375 (in_annul_branch_delay): Delete.
11376
4c5e8838 113772014-03-14 Richard Henderson <rth@redhat.com>
11378
11379 PR target/60525
11380 * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
11381 define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
11382 (*floathi<X87MODEF>2_i387_with_temp): Remove.
11383 (floathi splitters): Remove.
11384 (float<SWI48x>xf2): New pattern.
11385 (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2. Drop
11386 code that tried to handle DImode for 32-bit, but which was excluded
11387 by the pattern's condition. Drop allocation of stack temporary.
11388 (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
11389 (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
11390 (*float<SWI48><MODEF>2_mixed_interunit): Remove.
11391 (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
11392 (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
11393 (*float<SWI48><MODEF>2_sse_with_temp): Remove.
11394 (*float<SWI48><MODEF>2_sse_interunit): Remove.
11395 (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
11396 (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
11397 (*float<SWI48x><X87MODEF>2_i387): Remove.
11398 (all float _with_temp splitters): Remove.
11399 (*float<SWI48x><MODEF>2_i387): New pattern.
11400 (*float<SWI48><MODEF>2_sse): New pattern.
11401 (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
11402 (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
11403
6aaca0b4 114042014-03-14 Jakub Jelinek <jakub@redhat.com>
11405 Marek Polacek <polacek@redhat.com>
11406
11407 PR middle-end/60484
11408 * common.opt (dump_base_name_prefixed): New Variable.
11409 * opts.c (finish_options): Don't prepend directory to x_dump_base_name
11410 if x_dump_base_name_prefixed is already set, set it at the end.
11411
6cadc8f7 114122014-03-14 Vladimir Makarov <vmakarov@redhat.com>
11413
11414 PR rtl-optimization/60508
11415 * lra-constraints.c (get_reload_reg): Add new parameter
11416 in_subreg_p.
11417 (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
11418 Pass the new parameter values.
11419
370e8407 114202014-03-14 Richard Biener <rguenther@suse.de>
11421
11422 * common.opt: Revert unintented changes from r205065.
11423 * opts.c: Likewise.
11424
671fe650 114252014-03-14 Richard Biener <rguenther@suse.de>
11426
11427 PR middle-end/60518
11428 * cfghooks.c (split_block): Properly adjust all loops the
11429 block was a latch of.
11430
114312014-03-14 Martin Jambor <mjambor@suse.cz>
0f3c9fa8 11432
11433 PR lto/60461
11434 * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
11435 and simplify it.
11436
a11b2cf9 114372014-03-14 Georg-Johann Lay <avr@gjlay.de>
11438
11439 PR target/59396
11440 * config/avr/avr.c (avr_set_current_function): Pass function name
11441 through default_strip_name_encoding before sanity checking instead
11442 of skipping the first char of the assembler name.
11443
6ddd9e4c 114442014-03-13 Richard Henderson <rth@redhat.com>
11445
11446 PR debug/60438
11447 * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
11448 (ix86_force_to_memory, ix86_free_from_memory): Remove.
11449 * config/i386/i386-protos.h: Likewise.
11450 * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
11451 in the expander instead of a splitter.
11452 (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
11453 any possibility of requiring a memory.
11454 (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
11455 (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
11456 (fp branch splitters): Update for ix86_split_fp_branch.
11457 (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
11458 (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
11459 (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
11460 (*fop_<MODEF>_2_i387): Remove f/r alternative.
11461 (*fop_<MODEF>_3_i387): Likewise.
11462 (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
11463 (splitters for the fop_* register patterns): Remove.
11464 (fscalexf4_i387): Rename from *fscalexf4_i387.
11465 (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
6e70f6fb 11466
b20d2dcc 114672014-03-13 Jakub Jelinek <jakub@redhat.com>
11468
11469 PR tree-optimization/59779
11470 * tree-dfa.c (get_ref_base_and_extent): Use double_int
11471 type for bitsize and maxsize instead of HOST_WIDE_INT.
11472
6a5f2336 114732014-03-13 Steven Bosscher <steven@gcc.gnu.org>
11474
11475 PR rtl-optimization/57320
11476 * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
11477 the CFG after thread_prologue_and_epilogue_insns.
11478
c2d1c3eb 114792014-03-13 Vladimir Makarov <vmakarov@redhat.com>
11480
11481 PR rtl-optimization/57189
11482 * lra-constraints.c (process_alt_operands): Disfavor spilling
11483 vector pseudos.
11484
472d4060 114852014-03-13 Cesar Philippidis <cesar@codesourcery.com>
11486
8211f5a2 11487 * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
472d4060 11488
c89eca7b 114892014-03-13 Jakub Jelinek <jakub@redhat.com>
11490
11491 PR tree-optimization/59025
11492 PR middle-end/60418
11493 * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
11494 same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
11495
3269fce4 114962014-03-13 Georg-Johann Lay <avr@gjlay.de>
11497
11498 PR target/60486
11499 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
11500 calls of avr_out_plus_1.
11501
31a370d3 115022014-03-13 Bin Cheng <bin.cheng@arm.com>
11503
11504 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
11505 BB's single pred and update the father loop's latch info later.
11506
ae61c502 115072014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
11508
11509 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
11510 (VEC_M): Likewise.
11511 (VEC_N): Likewise.
11512 (VEC_R): Likewise.
11513 (VEC_base): Likewise.
11514 (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
11515 registers, we need to swap double words in little endian mode.
11516
11517 * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
11518 to be a container mode for 128-bit integer operations added in ISA
11519 2.07. Unlike TImode and PTImode, the preferred register set is
11520 the Altivec/VMX registers for the 128-bit operations.
11521
11522 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
11523 declarations.
11524 (rs6000_split_128bit_ok_p): Likewise.
11525
11526 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
11527 macros for creating ISA 2.07 normal and overloaded builtin
11528 functions with 3 arguments.
11529 (BU_P8V_OVERLOAD_3): Likewise.
11530 (VPERM_1T): Add support for V1TImode in 128-bit vector operations
11531 for use as overloaded functions.
11532 (VPERM_1TI_UNS): Likewise.
11533 (VSEL_1TI): Likewise.
11534 (VSEL_1TI_UNS): Likewise.
11535 (ST_INTERNAL_1ti): Likewise.
11536 (LD_INTERNAL_1ti): Likewise.
11537 (XXSEL_1TI): Likewise.
11538 (XXSEL_1TI_UNS): Likewise.
11539 (VPERM_1TI): Likewise.
11540 (VPERM_1TI_UNS): Likewise.
11541 (XXPERMDI_1TI): Likewise.
11542 (SET_1TI): Likewise.
11543 (LXVD2X_V1TI): Likewise.
11544 (STXVD2X_V1TI): Likewise.
11545 (VEC_INIT_V1TI): Likewise.
11546 (VEC_SET_V1TI): Likewise.
11547 (VEC_EXT_V1TI): Likewise.
11548 (EQV_V1TI): Likewise.
11549 (NAND_V1TI): Likewise.
11550 (ORC_V1TI): Likewise.
11551 (VADDCUQ): Add support for 128-bit integer arithmetic instructions
11552 added in ISA 2.07. Add both normal 'altivec' builtins, and the
11553 overloaded builtin.
11554 (VADDUQM): Likewise.
11555 (VSUBCUQ): Likewise.
11556 (VADDEUQM): Likewise.
11557 (VADDECUQ): Likewise.
11558 (VSUBEUQM): Likewise.
11559 (VSUBECUQ): Likewise.
11560
11561 * config/rs6000/rs6000-c.c (__int128_type): New static to hold
11562 __int128_t and __uint128_t types.
11563 (__uint128_type): Likewise.
11564 (altivec_categorize_keyword): Add support for vector __int128_t,
11565 vector __uint128_t, vector __int128, and vector unsigned __int128
11566 as a container type for TImode operations that need to be done in
11567 VSX/Altivec registers.
11568 (rs6000_macro_to_expand): Likewise.
11569 (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
11570 to support 128-bit integer instructions vaddcuq, vadduqm,
11571 vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
11572 (altivec_resolve_overloaded_builtin): Add support for V1TImode.
11573
11574 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
c253f380 11575 for V1TImode, and set up preferences to use VSX/Altivec registers.
11576 Setup VSX reload handlers.
ae61c502 11577 (rs6000_debug_reg_global): Likewise.
11578 (rs6000_init_hard_regno_mode_ok): Likewise.
11579 (rs6000_preferred_simd_mode): Likewise.
c253f380 11580 (vspltis_constant): Do not allow V1TImode as easy altivec constants.
ae61c502 11581 (easy_altivec_constant): Likewise.
11582 (output_vec_const_move): Likewise.
11583 (rs6000_expand_vector_set): Convert V1TImode set and extract to
11584 simple move.
11585 (rs6000_expand_vector_extract): Likewise.
11586 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
11587 addressing.
11588 (rs6000_const_vec): Add support for V1TImode.
11589 (rs6000_emit_le_vsx_load): Swap double words when loading or
11590 storing TImode/V1TImode.
11591 (rs6000_emit_le_vsx_store): Likewise.
11592 (rs6000_emit_le_vsx_move): Likewise.
11593 (rs6000_emit_move): Add support for V1TImode.
11594 (altivec_expand_ld_builtin): Likewise.
11595 (altivec_expand_st_builtin): Likewise.
11596 (altivec_expand_vec_init_builtin): Likewise.
11597 (altivec_expand_builtin): Likewise.
11598 (rs6000_init_builtins): Add support for V1TImode type. Add
11599 support for ISA 2.07 128-bit integer builtins. Define type names
11600 for the VSX/Altivec vector types.
11601 (altivec_init_builtins): Add support for overloaded vector
11602 functions with V1TImode type.
c253f380 11603 (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
ae61c502 11604 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
11605 external function.
11606 (rs6000_split_128bit_ok_p): Likewise.
11607 (rs6000_handle_altivec_attribute): Create V1TImode from vector
11608 __int128_t and vector __uint128_t.
11609
11610 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
11611 and mode attributes.
11612 (VSX_M): Likewise.
11613 (VSX_M2): Likewise.
11614 (VSm): Likewise.
11615 (VSs): Likewise.
11616 (VSr): Likewise.
11617 (VSv): Likewise.
11618 (VS_scalar): Likewise.
11619 (VS_double): Likewise.
c253f380 11620 (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
ae61c502 11621
c253f380 11622 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
11623 we support the ISA 2.07 128-bit integer arithmetic instructions.
ae61c502 11624 (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
11625 (enum rs6000_builtin_type_index): Add fields to hold V1TImode
11626 and TImode types for use with the builtin functions.
11627 (V1TI_type_node): Likewise.
11628 (unsigned_V1TI_type_node): Likewise.
11629 (intTI_type_internal_node): Likewise.
11630 (uintTI_type_internal_node): Likewise.
11631
c253f380 11632 * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
11633 128-bit builtin functions.
ae61c502 11634 (UNSPEC_VADDEUQM): Likewise.
11635 (UNSPEC_VADDECUQ): Likewise.
11636 (UNSPEC_VSUBCUQ): Likewise.
11637 (UNSPEC_VSUBEUQM): Likewise.
11638 (UNSPEC_VSUBECUQ): Likewise.
11639 (VM): Add V1TImode to vector mode iterators.
11640 (VM2): Likewise.
11641 (VI_unit): Likewise.
11642 (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
11643 (altivec_vaddcuq): Likewise.
11644 (altivec_vsubuqm): Likewise.
11645 (altivec_vsubcuq): Likewise.
11646 (altivec_vaddeuqm): Likewise.
11647 (altivec_vaddecuq): Likewise.
11648 (altivec_vsubeuqm): Likewise.
11649 (altivec_vsubecuq): Likewise.
11650
11651 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
11652 mode iterators.
11653 (BOOL_128): Likewise.
11654 (BOOL_REGS_OUTPUT): Likewise.
11655 (BOOL_REGS_OP1): Likewise.
11656 (BOOL_REGS_OP2): Likewise.
11657 (BOOL_REGS_UNARY): Likewise.
11658 (BOOL_REGS_AND_CR0): Likewise.
11659
11660 * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
11661 128-bit integer builtin support.
11662 (vec_vadduqm): Likewise.
11663 (vec_vaddecuq): Likewise.
11664 (vec_vaddeuqm): Likewise.
11665 (vec_vsubecuq): Likewise.
11666 (vec_vsubeuqm): Likewise.
11667 (vec_vsubcuq): Likewise.
11668 (vec_vsubuqm): Likewise.
11669
11670 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
11671 Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
11672 vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
11673 128-bit integer add/subtract to ISA 2.07.
11674
88bbaca4 116752014-03-12 Joern Rennecke <joern.rennecke@embecosm.com>
11676
11677 * config/arc/arc.c (arc_predicate_delay_insns):
11678 Fix third argument passed to conditionalize_nonjump.
11679
bbce8ac0 116802014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
11681
11682 * config/aarch64/aarch64-builtins.c
11683 (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
11684 BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
11685 * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
11686 instead of __builtin_lfloor.
11687 (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
11688
9202fd6a 116892014-03-12 Jakub Jelinek <jakub@redhat.com>
11690
11691 * tree-ssa-ifcombine.c (forwarder_block_to): New function.
11692 (tree_ssa_ifcombine_bb_1): New function.
11693 (tree_ssa_ifcombine_bb): Use it. Handle also cases where else_bb
11694 is an empty forwarder block to then_bb or vice versa and then_bb
11695 and else_bb are effectively swapped.
11696
972222f9 116972014-03-12 Christian Bruel <christian.bruel@st.com>
11698
11699 PR target/60264
c253f380 11700 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
11701 REG_CFA_DEF_CFA note.
972222f9 11702 (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
11703 (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
11704
88a7f155 117052014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
11706
11707 PR tree-optimization/60454
11708 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
11709
39543dd4 117102014-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11711
11712 * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
11713 Do not define target_cpu_default2 to generic.
11714 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
11715 * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
11716 * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
11717
c2c07119 117182014-03-12 Jakub Jelinek <jakub@redhat.com>
11719 Marc Glisse <marc.glisse@inria.fr>
11720
11721 PR tree-optimization/60502
11722 * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
11723 instead of build_low_bits_mask.
11724
5a0d3f9f 117252014-03-12 Jakub Jelinek <jakub@redhat.com>
11726
11727 PR middle-end/60482
11728 * tree-vrp.c (register_edge_assert_for_1): Don't add assert
11729 if there are multiple uses, but op doesn't live on E edge.
11730 * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
11731 clobber stmts before __builtin_unreachable.
11732
62dcb5c8 117332014-03-11 Richard Sandiford <rdsandiford@googlemail.com>
11734
11735 * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
11736 hard_frame_pointer_rtx.
11737 * cse.c (cse_insn): Remove volatile check.
11738 * cselib.c (cselib_process_insn): Likewise.
11739 * dse.c (scan_insn): Likewise.
11740
9bf3eaad 117412014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
11742
c253f380 11743 * config/arc/arc.c (conditionalize_nonjump): New function,
11744 broken out of ...
11745 (arc_ifcvt): ... this.
9bf3eaad 11746 (arc_predicate_delay_insns): Use it.
11747
efbc8d19 117482014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
11749
11750 * config/arc/predicates.md (extend_operand): During/after reload,
11751 allow const_int_operand.
11752 * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
11753 (umulsidi3_700): Likewise. Change operand 2 constraint back to "cL".
11754 (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
11755 to "i".
11756 (umulsi3_highpart_i): Likewise.
11757
84822e3d 117582014-03-11 Richard Biener <rguenther@suse.de>
11759
11760 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
11761 Add asserts to guard possible wrong-code bugs.
11762
e7a71ff8 117632014-03-11 Richard Biener <rguenther@suse.de>
11764
11765 PR tree-optimization/60429
11766 PR tree-optimization/60485
11767 * tree-ssa-structalias.c (set_union_with_increment): Properly
11768 take into account all fields that overlap the shifted vars.
11769 (do_sd_constraint): Likewise.
11770 (do_ds_constraint): Likewise.
11771 (get_constraint_for_ptr_offset): Likewise.
11772
80952abf 117732014-03-11 Chung-Lin Tang <cltang@codesourcery.com>
11774
11775 * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
11776 (nios2_compute_frame_layout):
11777 Add calculation of cfun->machine->fp_save_offset.
11778 (nios2_expand_prologue): Correct setting of frame pointer register
11779 in prologue.
11780 (nios2_expand_epilogue): Update recovery of stack pointer from
11781 frame pointer accordingly.
11782 (nios2_initial_elimination_offset): Update calculation of offset
11783 for eliminating to HARD_FRAME_POINTER_REGNUM.
11784
9f0b7378 117852014-03-10 Jakub Jelinek <jakub@redhat.com>
11786
11787 PR ipa/60457
11788 * ipa.c (symtab_remove_unreachable_nodes): Don't call
11789 cgraph_get_create_node on VAR_DECLs.
11790
87955082 117912014-03-10 Richard Biener <rguenther@suse.de>
11792
11793 PR middle-end/60474
11794 * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
11795
292feffe 117962014-03-08 Douglas B Rupp <rupp@gnat.com>
11797
11798 * config/vms/vms.opt (vms_float_format): New variable.
11799
8062b056 118002014-03-08 Tobias Burnus <burnus@net-b.de>
11801
c253f380 11802 * doc/invoke.texi (-fcilkplus): Update implementation status.
8062b056 11803
c9a24b37 118042014-03-08 Paulo Matos <paulo@matos-sorge.com>
11805 Richard Biener <rguenther@suse.de>
11806
11807 * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
11808 consistently accross all TUs.
11809 (run_gcc): Enable -fshort-double automatically at link at link-time
11810 and disallow override.
11811
52b6ed14 118122014-03-08 Richard Sandiford <rdsandiford@googlemail.com>
11813
11814 PR target/58271
11815 * config/mips/mips.c (mips_option_override): Promote -mpaired-single
11816 warning to an error. Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
11817 if they can't be used.
11818
fcc29059 118192014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11820
c253f380 11821 * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
11822 for Solaris 11/x86 ld.
fcc29059 11823 * configure: Regenerate.
11824
e727a9cd 118252014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11826
11827 * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
11828 (LIB_TLS_SPEC): Save as ld_tls_libs.
11829 (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
11830 (HAVE_AS_IX86_TLSLDM): New test.
11831 * configure, config.in: Regenerate.
11832 * config/i386/i386.c (legitimize_tls_address): Fall back to
11833 TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
11834 cannot support TLS_MODEL_LOCAL_DYNAMIC.
11835 * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
11836 instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
11837
155354e5 118382014-03-07 Paulo Matos <paulo@matos-sorge.com>
11839
11840 * common.opt (fira-loop-pressure): Mark as optimization.
11841
9ec099a3 118422014-03-07 Thomas Schwinge <thomas@codesourcery.com>
11843
11844 * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
11845 an OpenMP mappable type.
11846
8915b6c8 118472014-03-06 Matthias Klose <doko@ubuntu.com>
11848
11849 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
11850 MULTILIB_OSDIRNAMES is not defined.
11851
4fa1f892 118522014-03-06 Jakub Jelinek <jakub@redhat.com>
11853 Meador Inge <meadori@codesourcery.com>
11854
11855 PR target/58595
11856 * config/arm/arm.c (arm_tls_symbol_p): Remove.
11857 (arm_legitimize_address): Call legitimize_tls_address for any
11858 arm_tls_referenced_p expression, handle constant addend. Call it
11859 before testing for !TARGET_ARM.
11860 (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
11861
0f2f1551 118622014-03-06 Richard Biener <rguenther@suse.de>
11863
11864 PR middle-end/60445
11865 PR lto/60424
11866 PR lto/60427
11867 Revert
11868 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
11869
c253f380 11870 * tree-streamer.c (record_common_node): Assert we don't record
11871 nodes with type double.
11872 (preload_common_node): Skip type double, complex double and double
11873 pointer since it is now frontend dependent due to fshort-double option.
0f2f1551 11874
958d7687 118752014-03-06 Richard Biener <rguenther@suse.de>
11876
11877 * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
11878 or -fno-lto is specified and the linker has full plugin support.
c253f380 11879 * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
11880 (main): Remove -flto processing, adjust lto_mode using use_plugin late.
958d7687 11881 * lto-wrapper.c (merge_and_complain): Merge compile-time
11882 optimization levels.
11883 (run_gcc): And pass it through to the link options.
11884
6e70f6fb 118852014-03-06 Alexandre Oliva <aoliva@redhat.com>
c6fbbd72 11886
11887 PR debug/60381
11888 Revert:
6e70f6fb 11889 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
c6fbbd72 11890 PR debug/59992
11891 * cselib.c (remove_useless_values): Skip to avoid quadratic
11892 behavior if the condition moved from...
11893 (cselib_process_insn): ... here holds.
11894
8ecf2b4a 118952014-03-05 Jakub Jelinek <jakub@redhat.com>
11896
09de3e17 11897 PR plugins/59335
11898 * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
11899 ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
11900
8ecf2b4a 11901 PR plugins/59335
11902 * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
11903 (TM_H): Add x86-tune.def.
11904
1a3ae6f9 119052014-03-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11906
11907 * config/aarch64/aarch64.c (generic_tunings):
11908 Use cortexa57_extra_costs.
11909
45ddd4eb 119102014-03-05 Jakub Jelinek <jakub@redhat.com>
11911
11912 PR lto/60404
11913 * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
11914 of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
11915 * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
11916 cost for in_lto_p.
11917
2158068e 119182014-03-04 Heiher <r@hev.cc>
11919
11920 * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
11921 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
11922
d418f1d9 119232014-03-04 Uros Bizjak <ubizjak@gmail.com>
11924
11925 * config/i386/predicates.md (const2356_operand): Change to ...
11926 (const2367_operand): ... this.
11927 * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
11928 const2367_operand.
11929 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
11930 (*avx512pf_scatterpf<mode>sf): Ditto.
11931 (avx512pf_scatterpf<mode>df): Ditto.
11932 (*avx512pf_scatterpf<mode>df_mask): Ditto.
11933 (*avx512pf_scatterpf<mode>df): Ditto.
11934 * config/i386/i386.c (ix86_expand_builtin): Update
11935 incorrect hint operand error message.
11936
4692b23a 119372014-03-04 Richard Biener <rguenther@suse.de>
11938
11939 * lto-section-in.c (lto_get_section_data): Fix const cast.
d418f1d9 11940
1942e76f 119412014-03-04 Paulo Matos <paulo@matos-sorge.com>
11942
c253f380 11943 * tree-streamer.c (record_common_node): Assert we don't record
11944 nodes with type double.
11945 (preload_common_node): Skip type double, complex double and double
11946 pointer since it is now frontend dependent due to fshort-double option.
1942e76f 11947
baa4a2c6 119482014-03-04 Richard Biener <rguenther@suse.de>
11949
11950 PR lto/60405
d418f1d9 11951 * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
baa4a2c6 11952 (lto_input_toplevel_asms): Likewise.
11953 * lto-section-in.c (lto_get_section_data): Instead do it here
11954 for every section.
d418f1d9 11955
75f8b7c8 119562014-03-04 Richard Biener <rguenther@suse.de>
11957
11958 PR tree-optimization/60382
11959 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
11960 dead PHIs a reduction.
11961
25e01811 119622014-03-03 Uros Bizjak <ubizjak@gmail.com>
11963
11964 * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
11965 hint value.
11966 (_mm_prefetch): Move out of GCC target("sse") pragma.
11967 * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
11968 GCC target("prfchw") pragma.
11969 * config/i386/i386.md (prefetch): Emit prefetchwt1 only
11970 for locality <= 2.
11971 * config/i386/i386.c (ix86_option_override_internal): Enable
11972 -mprfchw with -mprefetchwt1.
11973
bbf906e4 119742014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
11975
11976 * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
11977 Mark as varying.
11978
d8f2baf5 119792014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
11980
11981 * opts.h (CL_PCH_IGNORE): Define.
11982 * targhooks.c (option_affects_pch_p):
11983 Return false for options that have CL_PCH_IGNORE set.
11984 * opt-functions.awk: Process PchIgnore.
11985 * doc/options.texi: Document PchIgnore.
11986
aab83f18 11987 * config/arc/arc.opt (misize): Add PchIgnore property.
11988
498714da 119892014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11990
11991 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
11992 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
11993 constraint on constants to permit them being loaded into
11994 GENERAL_REGS or BASE_REGS.
11995
6956ee35 119962014-03-03 Nick Clifton <nickc@redhat.com>
11997
11998 * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
11999 anti-cacnonical alternatives.
12000 (negandhi3_real): New pattern.
12001 * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
12002
dd872ef1 120032014-03-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
12004
12005 * config/avr/avr-mcus.def: Remove atxmega16x1.
12006 * config/avr/avr-tables.opt: Regenerate.
12007 * config/avr/t-multilib: Regenerate.
12008 * doc/avr-mmcu.texi: Regenerate.
12009
fa7884f6 120102014-03-03 Tobias Grosser <tobias@grosser.es>
25e01811 12011 Mircea Namolaru <mircea.namolaru@inria.fr>
fa7884f6 12012
12013 PR tree-optimization/58028
12014 * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
12015 scalar dimensions.
12016
877744d0 120172014-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12018
12019 * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
12020 not handled by recognizers.
12021
04e7d9cb 120222014-03-03 Jakub Jelinek <jakub@redhat.com>
12023
12024 PR middle-end/60175
12025 * function.c (expand_function_end): Don't emit
12026 clobber_return_register sequence if clobber_after is a BARRIER.
12027 * cfgexpand.c (construct_exit_block): Append instructions before
12028 return_label to prev_bb.
12029
18833bd1 120302014-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12031
12032 * config/rs6000/constraints.md: Document reserved use of "wc".
12033
36a3e498 120342014-03-02 Jan Hubicka <hubicka@ucw.cz>
12035
12036 PR ipa/60150
12037 * ipa.c (function_and_variable_visibility): When dissolving comdat
12038 group, also set all symbols to local.
12039
e4032363 120402014-03-02 Jan Hubicka <hubicka@ucw.cz>
6956ee35 12041
e4032363 12042 PR ipa/60306
12043
12044 Revert:
e1dbb208 12045 2013-12-14 Jan Hubicka <jh@suse.cz>
c253f380 12046 PR middle-end/58477
12047 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
e4032363 12048
369d6f24 120492014-03-02 Jon Beniston <jon@beniston.com>
12050
12051 PR bootstrap/48230
12052 PR bootstrap/50927
12053 PR bootstrap/52466
12054 PR target/46898
12055 * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
6956ee35 12056 (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
369d6f24 12057 * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
6956ee35 12058 (simple_return, *simple_return): New patterns
369d6f24 12059 * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
12060 * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
12061
2d791ea6 120622014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
12063
12064 * dwarf2out.c (gen_subprogram_die): Tidy.
12065
2bf6c3e6 120662014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
12067
12068 PR target/60071
12069 * config/sh/sh.md (*mov_t_msb_neg): Split into ...
12070 (*mov_t_msb_neg_negc): ... this new insn.
12071
55438e42 120722014-02-28 Jason Merrill <jason@redhat.com>
12073
12074 PR c++/58678
12075 * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
12076 function.
12077
c654c503 120782014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
12079
12080 PR c++/60314
12081 * dwarf2out.c (decltype_auto_die): New static.
12082 (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
12083 (gen_type_die_with_usage): Handle 'decltype(auto)'.
12084 (is_cxx_auto): Likewise.
12085
b5499fa3 120862014-02-28 Ian Bolton <ian.bolton@arm.com>
12087
12088 * config/aarch64/aarch64.h: Define __ARM_NEON by default if
12089 we are not using general regs only.
12090
0ab3f603 120912014-02-28 Richard Biener <rguenther@suse.de>
12092
12093 PR target/60280
12094 * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
12095 previous fix and only allow to remove trivial pre-headers
12096 and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
b74058ea 12097 (remove_forwarder_block): Properly update the latch of a loop.
0ab3f603 12098
6e70f6fb 120992014-02-28 Alexandre Oliva <aoliva@redhat.com>
7168cc34 12100
12101 PR debug/59992
12102 * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
12103 (cselib_preserved_hash_table): New.
12104 (preserve_constants_and_equivs): Move preserved vals to it.
12105 (cselib_find_slot): Look it up first.
12106 (cselib_init): Initialize it.
12107 (cselib_finish): Release it.
12108 (dump_cselib_table): Dump it.
12109
6e70f6fb 121102014-02-28 Alexandre Oliva <aoliva@redhat.com>
e6aeb304 12111
12112 PR debug/59992
12113 * cselib.c (remove_useless_values): Skip to avoid quadratic
12114 behavior if the condition moved from...
12115 (cselib_process_insn): ... here holds.
12116
6e70f6fb 121172014-02-28 Alexandre Oliva <aoliva@redhat.com>
50f4b776 12118
12119 PR debug/57232
12120 * var-tracking.c (vt_initialize): Apply the same condition to
12121 preserve the CFA base value.
12122
03ef363c 121232014-02-28 Joey Ye <joey.ye@arm.com>
12124
12125 PR target/PR60169
12126 * config/arm/arm.c (thumb_far_jump_used_p): Don't change
12127 if reload in progress or completed.
12128
d95140de 121292014-02-28 Tobias Burnus <burnus@net-b.de>
12130
12131 PR middle-end/60147
12132 * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
12133 NAMELIST_DECL.
12134
5b4ac966 121352014-02-27 H.J. Lu <hongjiu.lu@intel.com>
12136
12137 * doc/tm.texi.in (Condition Code Status): Update documention for
12138 relative locations of cc0-setter and cc0-user.
12139
7c7451c5 121402014-02-27 Jeff Law <law@redhat.com>
12141
12142 PR rtl-optimization/52714
12143 * combine.c (try_combine): When splitting an unrecognized PARALLEL
12144 into two independent simple sets, if I3 is a jump, ensure the
b74058ea 12145 pattern we place into I3 is a (set (pc) ...).
7c7451c5 12146
77cb85b2 121472014-02-27 Mikael Pettersson <mikpe@it.uu.se>
12148 Jeff Law <law@redhat.com>
12149
12150 PR rtl-optimization/49847
12151 * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
12152 are in different blocks.
12153 * doc/tm.texi (Condition Code Status): Update documention for
12154 relative locations of cc0-setter and cc0-user.
12155
1c1417f1 121562014-02-27 Vladimir Makarov <vmakarov@redhat.com>
12157
12158 PR target/59222
12159 * lra.c (lra_emit_add): Check SUBREG too.
12160
2bf2188d 121612014-02-27 Andreas Schwab <schwab@suse.de>
12162
12163 * config/m68k/m68k.c (m68k_option_override): Disable
12164 -flive-range-shrinkage for classic m68k.
12165 (m68k_override_options_after_change): Likewise.
12166
b12c4baf 121672014-02-27 Marek Polacek <polacek@redhat.com>
12168
12169 PR middle-end/59223
12170 * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
12171 -Wmaybe-uninitialized.
12172
d7c5d150 121732014-02-27 Alan Modra <amodra@gmail.com>
12174
872d3398 12175 PR target/57936
d7c5d150 12176 * reload1.c (emit_input_reload_insns): When reload_override_in,
12177 set old to rl->in_reg when rl->in_reg is a subreg.
12178
adfa3d5a 121792014-02-26 Richard Biener <rguenther@suse.de>
12180
12181 PR bootstrap/60343
12182 * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
12183
3befdeb0 121842014-02-25 Ilya Tocar <ilya.tocar@intel.com>
12185
12186 * common/config/i386/predicates.md (const1256_operand): Remove.
12187 (const2356_operand): New.
12188 (const_1_to_2_operand): Remove.
12189 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
12190 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
12191 (*avx512pf_gatherpf<mode>sf): Ditto.
12192 (avx512pf_gatherpf<mode>df): Ditto.
12193 (*avx512pf_gatherpf<mode>df_mask): Ditto.
12194 (*avx512pf_gatherpf<mode>df): Ditto.
12195 (avx512pf_scatterpf<mode>sf): Ditto.
12196 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
12197 (*avx512pf_scatterpf<mode>sf): Ditto.
12198 (avx512pf_scatterpf<mode>df): Ditto.
12199 (*avx512pf_scatterpf<mode>df_mask): Ditto.
12200 (*avx512pf_scatterpf<mode>df): Ditto.
12201 * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
12202
f46a34a6 122032014-02-26 Ilya Tocar <ilya.tocar@intel.com>
12204
12205 * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
12206 (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
12207 (_mm512_mask_testn_epi64_mask): Move to ...
12208 * config/i386/avx512cdintrin.h: Here.
12209 * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
12210 * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
12211 (avx512f_scalef<mode><mask_name><round_name>): Ditto.
12212 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
12213 TARGET_AVX512F from TARGET_AVX512CD.
12214
6469adde 122152014-02-26 Richard Biener <rguenther@suse.de>
12216
12217 PR ipa/60327
12218 * ipa.c (walk_polymorphic_call_targets): Properly guard
12219 call to inline_update_overall_summary.
12220
3c2e3ed6 122212014-02-26 Bin Cheng <bin.cheng@arm.com>
12222
12223 PR target/60280
b74058ea 12224 * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
12225 and latches only if requested. Fix latch if it is removed.
3c2e3ed6 12226 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
12227 LOOPS_HAVE_PREHEADERS.
12228
3ed779c3 122292014-02-25 Andrew Pinski <apinski@cavium.com>
12230
12231 * builtins.c (expand_builtin_thread_pointer): Create a new target
12232 when the target is NULL.
12233
eb3db740 122342014-02-25 Vladimir Makarov <vmakarov@redhat.com>
12235
12236 PR rtl-optimization/60317
12237 * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
12238 * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
12239 * lra-assigns.c: Include params.h.
12240 (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
12241 other reload pseudos considerations.
12242
f6339cd8 122432014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12244
a54ada24 12245 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
12246 to use canonical form for nor<mode>3.
f6339cd8 12247
07b2ba2c 122482014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12249
12250 PR target/55426
12251 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
12252 conversions.
12253
e3659231 122542014-02-25 Ilya Tocar <ilya.tocar@intel.com>
12255
12256 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
12257 (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
12258 (ix86_handle_option): Handle OPT_mprefetchwt1.
12259 * config/i386/cpuid.h (bit_PREFETCHWT1): New.
12260 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
12261 PREFETCHWT1 CPUID.
12262 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
12263 OPTION_MASK_ISA_PREFETCHWT1.
12264 * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
12265 (PTA_PREFETCHWT1): New.
12266 (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
12267 (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
b74058ea 12268 * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
e3659231 12269 * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
12270 (*prefetch_avx512pf_<mode>_: Change into ...
b74058ea 12271 (*prefetch_prefetchwt1_<mode>: This.
e3659231 12272 * config/i386/i386.opt (mprefetchwt1): New.
12273 * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
12274 (_mm_prefetch): Handle intent to write.
12275 * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
12276
8dc3230c 122772014-02-25 Richard Biener <rguenther@suse.de>
12278
12279 PR middle-end/60291
12280 * emit-rtl.c (mem_attrs_htab): Remove.
12281 (mem_attrs_htab_hash): Likewise.
12282 (mem_attrs_htab_eq): Likewise.
b74058ea 12283 (set_mem_attrs): Always allocate new mem-attrs when something changed.
8dc3230c 12284 (init_emit_once): Do not allocate mem_attrs_htab.
12285
e38bbd96 122862014-02-25 Richard Biener <rguenther@suse.de>
12287
12288 PR lto/60319
12289 * lto-opts.c (lto_write_options): Output non-explicit conservative
12290 -fwrapv, -fno-trapv and -fno-strict-overflow.
12291 * lto-wrapper.c (merge_and_complain): Handle merging those options.
12292 (run_gcc): And pass them through.
12293
dce9387e 122942014-02-25 Andrey Belevantsev <abel@ispras.ru>
e3659231 12295
dce9387e 12296 * sel-sched.c (calculate_new_fences): New parameter ptime.
12297 Calculate it as a maximum over all fence cycles.
12298 (sel_sched_region_2): Adjust the call to calculate_new_fences.
12299 Print the final schedule timing when sched_verbose.
12300
a0d15f90 123012014-02-25 Andrey Belevantsev <abel@ispras.ru>
12302
12303 PR rtl-optimization/60292
12304 * sel-sched.c (fill_vec_av_set): Do not reset target availability
12305 bit fot the fence instruction.
12306
a04100ab 123072014-02-24 Alangi Derick <alangiderick@gmail.com>
12308
12309 * calls.h: Fix typo in comment.
12310
23a61b5a 123112014-02-24 John David Anglin <danglin@gcc.gnu.org>
12312
12313 * config/pa/pa.c (pa_output_move_double): Don't valididate when
12314 adjusting offsetable addresses.
12315
9ca5fbe7 123162014-02-24 Guozhi Wei <carrot@google.com>
12317
12318 * sparseset.h (sparseset_pop): Fix the wrong index.
12319
2da35515 123202014-02-24 Walter Lee <walt@tilera.com>
12321
12322 * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
12323 (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
12324 triplet.
12325 * common/config/tilegx/tilegx-common.c
12326 (TARGET_DEFAULT_TARGET_FLAGS): Define.
12327 * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
12328 (LINK_SPEC): Ditto.
12329 * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
12330 * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
12331 (tilegx_gimplify_va_arg_expr): Handle big endian.
12332 (tilegx_expand_unaligned_load): Ditto.
12333 (tilegx_expand_unaligned_store): Ditto.
12334 (TARGET_RETURN_IN_MSB): New.
12335 * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
12336 (TARGET_ENDIAN_DEFAULT): New.
12337 (TARGET_BIG_ENDIAN): Handle big endian.
12338 (BYTES_BIG_ENDIAN): Ditto.
12339 (WORDS_BIG_ENDIAN): Ditto.
12340 (FLOAT_WORDS_BIG_ENDIAN): Ditto.
12341 (ENDIAN_SPEC): New.
12342 (EXTRA_SPECS): New.
12343 * config/tilegx/tilegx.md (extv): Handle big endian.
12344 (extzv): Ditto.
12345 (insn_st<n>): Ditto.
12346 (insn_st<n>_add<bitsuffix>): Ditto.
12347 (insn_stnt<n>): Ditto.
12348 (insn_stnt<n>_add<bitsuffix>):Ditto.
12349 (vec_interleave_highv8qi): Handle big endian.
12350 (vec_interleave_highv8qi_be): New.
12351 (vec_interleave_highv8qi_le): New.
12352 (insn_v1int_h): Handle big endian.
12353 (vec_interleave_lowv8qi): Handle big endian.
12354 (vec_interleave_lowv8qi_be): New.
12355 (vec_interleave_lowv8qi_le): New.
12356 (insn_v1int_l): Handle big endian.
12357 (vec_interleave_highv4hi): Handle big endian.
12358 (vec_interleave_highv4hi_be): New.
12359 (vec_interleave_highv4hi_le): New.
12360 (insn_v2int_h): Handle big endian.
12361 (vec_interleave_lowv4hi): Handle big endian.
12362 (vec_interleave_lowv4hi_be): New.
12363 (vec_interleave_lowv4hi_le): New.
12364 (insn_v2int_l): Handle big endian.
12365 (vec_interleave_highv2si): Handle big endian.
12366 (vec_interleave_highv2si_be): New.
12367 (vec_interleave_highv2si_le): New.
12368 (insn_v4int_h): Handle big endian.
12369 (vec_interleave_lowv2si): Handle big endian.
12370 (vec_interleave_lowv2si_be): New.
12371 (vec_interleave_lowv2si_le): New.
12372 (insn_v4int_l): Handle big endian.
12373 * config/tilegx/tilegx.opt (mbig-endian): New option.
12374 (mlittle-endian): New option.
12375 * doc/install.texi: Document tilegxbe-linux.
12376 * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
12377
019885b0 123782014-02-24 Martin Jambor <mjambor@suse.cz>
12379
12380 PR ipa/60266
12381 * ipa-cp.c (propagate_constants_accross_call): Bail out early if
12382 there are no parameter descriptors.
12383
91096e87 123842014-02-24 Andrey Belevantsev <abel@ispras.ru>
12385
12386 PR rtl-optimization/60268
12387 * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
12388 initialization to ...
12389 (sched_rgn_init): ... here.
12390 (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
12391
6e70f6fb 123922014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
b409442d 12393
91096e87 12394 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
12395 names.
b409442d 12396
6e70f6fb 123972014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
2a5e9bb0 12398
12399 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
12400 definition.
12401
6e70f6fb 124022014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
0462b5fb 12403
b74058ea 12404 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
12405 define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
0462b5fb 12406
6e70f6fb 124072014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
96a9db22 12408
12409 * config/microblaze/predicates.md: Add cmp_op predicate.
b74058ea 12410 * config/microblaze/microblaze.md: Add branch_compare instruction
96a9db22 12411 which uses cmp_op predicate and emits cmp insn before branch.
b74058ea 12412 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
96a9db22 12413 to microblaze_expand_conditional_branch and consolidate logic.
12414 (microblaze_expand_conditional_branch): emit branch_compare
12415 insn instead of handling cmp op separate from branch insn.
12416
d0e00ac3 124172014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12418
12419 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
12420 to permit subregs.
12421
6f73f6fe 124222014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12423
96a9db22 12424 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
12425 define_insn with define_expand and new define_insn
12426 *altivec_lve<VI_char>x_internal.
12427 (altivec_stve<VI_char>x): Replace define_insn with define_expand
12428 and new define_insn *altivec_stve<VI_char>x_internal.
12429 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
12430 prototype.
12431 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
12432 lve*x built-ins.
12433 (altivec_expand_stvex_be): New function.
6f73f6fe 12434
1cffa4f0 124352014-02-22 Joern Rennecke <joern.rennecke@embecosm.com>
12436
12437 * config/avr/avr.c (avr_can_eliminate): Allow elimination from
b74058ea 12438 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
1cffa4f0 12439 * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
12440 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
12441
ef0231e9 124422014-02-21 Vladimir Makarov <vmakarov@redhat.com>
12443
12444 PR target/60298
12445 * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
12446 instead of emit_move_insn.
12447
198ff083 124482014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12449
12450 * config/rs6000/altivec.md (altivec_vsumsws): Replace second
12451 vspltw with vsldoi.
12452 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
12453 gen_altivec_vsumsws.
12454
6d7bba7f 124552014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12456
12457 * config/rs6000/altivec.md (altivec_lvxl): Rename as
b74058ea 12458 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
6d7bba7f 12459 (altivec_lvxl_<mode>): New define_expand incorporating
12460 -maltivec=be semantics where needed.
12461 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
12462 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
12463 semantics where needed.
12464 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
12465 (altivec_stvx_<mode>): New define_expand incorporating
12466 -maltivec=be semantics where needed.
12467 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
12468 VM2 iterator instead of V4SI.
12469 (altivec_stvxl_<mode>): New define_expand incorporating
12470 -maltivec=be semantics where needed.
12471 * config/rs6000/rs6000-builtin.def: Add new built-in definitions
12472 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
b74058ea 12473 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
12474 STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
12475 STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
6d7bba7f 12476 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
12477 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
12478 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
12479 ALTIVEC_BUILTIN_STVXL.
b74058ea 12480 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
6d7bba7f 12481 (altivec_expand_stvx_be): Likewise.
12482 * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
12483 (altivec_expand_lvx_be): Likewise.
12484 (altivec_expand_stvx_be): Likewise.
12485 (altivec_expand_builtin): Add cases for
12486 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
12487 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
12488 (altivec_init_builtins): Add definitions for
12489 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
b74058ea 12490 __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
6d7bba7f 12491
486e9c5f 124922014-02-21 Catherine Moore <clm@codesourcery.com>
12493
12494 * doc/invoke.texi (mvirt, mno-virt): Document.
12495 * config/mips/mips.opt (mvirt): New option.
12496 * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
12497
a8cf7702 124982014-02-21 Richard Biener <rguenther@suse.de>
12499
12500 PR tree-optimization/60276
12501 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
12502 (STMT_VINFO_MIN_NEG_DIST): New macro.
12503 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
12504 STMT_VINFO_MIN_NEG_DIST.
12505 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
12506 made for negative dependence distances still hold.
12507
c8a9710d 125082014-02-21 Richard Biener <rguenther@suse.de>
12509
12510 PR middle-end/60291
12511 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
12512 DECL_INITIAL for globals not in the current function context.
12513
13e8ebe8 125142014-02-21 Jakub Jelinek <jakub@redhat.com>
12515
12516 PR tree-optimization/56490
12517 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
12518 * tree-ssa-uninit.c: Include params.h.
12519 (compute_control_dep_chain): Add num_calls argument, return false
12520 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
12521 num_calls to recursive call.
12522 (find_predicates): Change dep_chain into normal array,
12523 cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
12524 variable and adjust compute_control_dep_chain caller.
12525 (find_def_preds): Likewise.
12526
b12563e0 125272014-02-21 Thomas Schwinge <thomas@codesourcery.com>
12528
12529 * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
12530 <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
12531
90af79f4 125322014-02-21 Nick Clifton <nickc@redhat.com>
12533
12534 * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
12535 (pushhi1): Likewise.
12536 (popqi1): Add mode to pre_dec.
12537 (pophi1): Likewise.
12538
b2e4d90b 125392014-02-21 Jakub Jelinek <jakub@redhat.com>
12540
12541 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
12542 mode for mask of V8SFmode permutation.
12543
3c29a9ea 125442014-02-20 Richard Henderson <rth@redhat.com>
12545
12546 PR c++/60272
12547 * builtins.c (expand_builtin_atomic_compare_exchange): Always make
12548 a new pseudo for OLDVAL.
12549
b08864ff 125502014-02-20 Jakub Jelinek <jakub@redhat.com>
12551
12552 PR target/57896
12553 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
12554 gen_reg_rtx if d->testing_p.
12555 (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
12556 if d->testing_p and we will certainly return true.
12557 (expand_vec_perm_even_odd_1): Likewise. Don't call gen_reg_rtx
12558 if d->testing_p.
12559
b4c6ce9b 125602014-02-20 Uros Bizjak <ubizjak@gmail.com>
12561
12562 * emit-rtl.c (gen_reg_rtx): Assert that
12563 crtl->emit.regno_pointer_align_length is non-zero.
12564
125652014-02-20 Richard Henderson <rth@redhat.com>
d86e3752 12566
12567 PR c++/60272
12568 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
12569 on failure the store back into EXPECT.
12570
73e15dfc 125712014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
12572 Sandra Loosemore <sandra@codesourcery.com>
12573
12574 * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
b74058ea 12575 * config/nios2/nios2.c (nios2_function_profiler): Add
12576 -fPIC (flag_pic == 2) support.
73e15dfc 12577 (nios2_handle_custom_fpu_cfg): Fix warning parameter.
12578 (nios2_large_offset_p): New function.
12579 (nios2_unspec_reloc_p): Move up position, update to use
12580 nios2_large_offset_p.
12581 (nios2_unspec_address): Remove function.
12582 (nios2_unspec_offset): New function.
12583 (nios2_large_got_address): New function.
12584 (nios2_got_address): Add large offset support.
12585 (nios2_legitimize_tls_address): Update usage of removed and new
12586 functions.
12587 (nios2_symbol_binds_local_p): New function.
12588 (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
12589 (nios2_legitimize_address): Update to use nios2_large_offset_p.
12590 (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
12591 (nios2_print_operand): Merge H/L processing, add hiadj/lo
12592 processing for (const (unspec ...)).
12593 (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
12594
e4f45990 125952014-02-20 Richard Biener <rguenther@suse.de>
12596
12597 * tree-cfg.c (replace_uses_by): Mark altered BBs before
12598 doing the substitution.
b4c6ce9b 12599 (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
e4f45990 12600
fc635e81 126012014-02-20 Martin Jambor <mjambor@suse.cz>
12602
12603 PR ipa/55260
12604 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
12605 info when checking whether lattices are bottom.
12606
6b3688f5 126072014-02-20 Richard Biener <rguenther@suse.de>
12608
12609 PR middle-end/60221
12610 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
12611 regions at -O0.
12612
b8731470 126132014-02-20 Jan Hubicka <hubicka@ucw.cz>
12614
12615 PR ipa/58555
b4c6ce9b 12616 * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
12617 parameter specifying the scaling.
b8731470 12618 (inline_call): Update.
12619 (want_inline_recursively): Guard division by zero.
12620 (recursive_inlining): Update.
12621 * ipa-inline.h (clone_inlined_nodes): Update.
12622
fa52849f 126232014-02-20 Ilya Tocar <ilya.tocar@intel.com>
12624
12625 PR target/60204
12626 * config/i386/i386.c (classify_argument): Pass structures of size
12627 64 bytes or less in register.
12628
c4f782fd 126292014-02-20 Ilya Tocar <ilya.tocar@intel.com>
b4c6ce9b 12630 Kirill Yukhin <kirill.yukhin@intel.com>
c4f782fd 12631
12632 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
12633 (_mm_rcp28_round_ss): Ditto.
12634 (_mm_rsqrt28_round_sd): Ditto.
12635 (_mm_rsqrt28_round_ss): Ditto.
12636 * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
12637 (_mm_rcp14_round_ss): Ditto.
12638 (_mm_rsqrt14_round_sd): Ditto.
12639 (_mm_rsqrt14_round_ss): Ditto.
12640 * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
12641 the first input operand, get rid of match_dup.
12642 (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
12643 attribute to sse.
12644 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
12645 Ditto.
12646 (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
12647 operand as the first input operand, set type attribute.
12648 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
12649 Set type attribute.
12650 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
12651 operand as the first input operand, set type attribute.
12652
8b2edebd 126532014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12654
12655 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
12656 bit of zero.
12657
bd047e11 126582014-02-19 H.J. Lu <hongjiu.lu@intel.com>
12659
12660 PR target/60207
12661 * config/i386/i386.c (construct_container): Remove TFmode check
12662 for X86_64_INTEGER_CLASS.
12663
7680f324 126642014-02-19 Uros Bizjak <ubizjak@gmail.com>
12665
12666 PR target/59794
12667 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
12668 only when -Wpsabi is enabled.
12669
d7a05d41 126702014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
12671
12672 PR target/59799
12673 * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
12674 passing arrays in registers are the same as for structs, so remove the
12675 special case for them.
12676
fc0bb78b 126772014-02-19 Eric Botcazou <ebotcazou@adacore.com>
12678
12679 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
12680 destination type, extract only the valid bits if the source type is not
12681 integral and has a different mode.
12682
e3bba195 126832014-02-19 Richard Biener <rguenther@suse.de>
12684
12685 PR ipa/60243
12686 * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
12687 for all calls.
12688
4563499d 126892014-02-19 Richard Biener <rguenther@suse.de>
12690
12691 PR ipa/60243
12692 * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
12693 (ipa_modify_call_arguments): Emit an argument load explicitely and
12694 preserve virtual SSA form there and for the replacement call.
12695 Do not update SSA form nor free dominance info.
12696
1b713bfd 126972014-02-18 Jan Hubicka <hubicka@ucw.cz>
12698
12699 * ipa.c (function_and_variable_visibility): Also clear WEAK
12700 flag when disolving COMDAT_GROUP.
12701
0daac096 127022014-02-18 Jan Hubicka <hubicka@ucw.cz>
12703
12704 * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
12705 * ipa-prop.c (ipa_set_jf_known_type): Return early when
12706 not devirtualizing.
12707 (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
12708 do more sanity checks.
12709 (detect_type_change): Return true when giving up early.
12710 (compute_complex_assign_jump_func): Fix type parameter of
12711 ipa_set_ancestor_jf.
12712 (compute_complex_ancestor_jump_func): Likewise.
12713 (update_jump_functions_after_inlining): Fix updating of
12714 ancestor function.
7680f324 12715 * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
0daac096 12716
776e3d35 127172014-02-18 Jan Hubicka <hubicka@ucw.cz>
12718
12719 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
12720 inline clones when edge disappears.
12721
70d26ff6 127222014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
12723
12724 PR target/60203
12725 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
12726 Split 64-bit moves into 2 patterns. Do not allow the use of
12727 direct move for TDmode in little endian, since the decimal value
12728 has little endian bytes within a word, but the 64-bit pieces are
12729 ordered in a big endian fashion, and normal subreg's of TDmode are
12730 not allowed.
12731 (mov<mode>_64bit_dm): Likewise.
12732 (movtd_64bit_nodm): Likewise.
12733
81cab242 127342014-02-18 Eric Botcazou <ebotcazou@adacore.com>
12735
12736 PR tree-optimization/60174
12737 * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
12738 statement of an SSA_NAME that occurs in an abnormal PHI node.
12739
46ab8d2c 127402014-02-18 Jakub Jelinek <jakub@redhat.com>
12741
12742 PR sanitizer/60142
12743 * final.c (SEEN_BB): Remove.
12744 (SEEN_NOTE, SEEN_EMITTED): Renumber.
12745 (final_scan_insn): Don't force_source_line on second
12746 NOTE_INSN_BASIC_BLOCK.
12747
737ae9cc 127482014-02-18 Uros Bizjak <ubizjak@gmail.com>
12749
12750 PR target/60205
12751 * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
12752 * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
12753 (type_natural_mode): Warn ABI change when %zmm register is not
12754 available for AVX512F vector value passing.
12755
bebe7788 127562014-02-18 Kai Tietz <ktietz@redhat.com>
12757
12758 PR target/60193
737ae9cc 12759 * config/i386/i386.c (ix86_expand_prologue): Use value in
12760 rax register as displacement when restoring %r10 or %rax.
12761 Fix wrong offset when restoring both registers.
bebe7788 12762
0e384caf 127632014-02-18 Eric Botcazou <ebotcazou@adacore.com>
12764
12765 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
12766 assertion with conditional return.
12767
ccdeeb71 127682014-02-18 Jakub Jelinek <jakub@redhat.com>
12769 Uros Bizjak <ubizjak@gmail.com>
12770
12771 PR driver/60233
12772 * config/i386/driver-i386.c (host_detect_local_cpu): If
12773 YMM state is not saved by the OS, also clear has_f16c. Move
12774 CPUID 0x80000001 handling before YMM state saving checking.
12775
c3089433 127762014-02-18 Andrey Belevantsev <abel@ispras.ru>
12777
12778 PR rtl-optimization/58960
12779 * haifa-sched.c (alloc_global_sched_pressure_data): New,
12780 factored out from ...
12781 (sched_init): ... here.
12782 (free_global_sched_pressure_data): New, factored out from ...
12783 (sched_finish): ... here.
12784 * sched-int.h (free_global_sched_pressure_data): Declare.
12785 * sched-rgn.c (nr_regions_initial): New static global.
12786 (haifa_find_rgns): Initialize it.
12787 (schedule_region): Disable sched-pressure for the newly
12788 generated regions.
12789
bbf7a2bd 127902014-02-17 Richard Biener <rguenther@suse.de>
12791
12792 * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
12793 release SSA defs of pattern stmts.
12794
9f9170de 127952014-02-17 Richard Biener <rguenther@suse.de>
12796
12797 * tree-inline.c (expand_call_inline): Release the virtual
12798 operand defined by the call we are about to inline.
12799
fcf70d14 128002014-02-17 Richard Biener <rguenther@suse.de>
12801
12802 * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
12803
389b04c1 128042014-02-17 Kirill Yukhin <kirill.yukhin@intel.com>
12805 Ilya Tocar <ilya.tocar@intel.com>
12806
12807 * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
12808 arguments order in builtin.
12809 (_mm512_permutexvar_epi64): Ditto.
12810 (_mm512_mask_permutexvar_epi64): Ditto
12811 (_mm512_maskz_permutexvar_epi32): Ditto
12812 (_mm512_permutexvar_epi32): Ditto
12813 (_mm512_mask_permutexvar_epi32): Ditto
12814
7ac79e02 128152014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12816
737ae9cc 12817 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
7ac79e02 12818 (p8_vmrgow): Likewise.
12819
6305ff1b 128202014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12821
12822 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
12823 endian targets.
12824
8e2b3539 128252014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
12826
12827 PR target/60203
12828 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
12829 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
12830 into 64-bit and 32-bit moves. On 64-bit moves, add support for
12831 using direct move instructions on ISA 2.07. Also adjust
12832 instruction length for 64-bit.
12833 (mov<mode>_64bit, TFmode/TDmode): Likewise.
12834 (mov<mode>_32bit, TFmode/TDmode): Likewise.
12835
baca36cb 128362014-02-15 Alan Modra <amodra@gmail.com>
12837
12838 PR target/58675
12839 PR target/57935
12840 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
12841 find_replacement on parts of insn rtl that might be reloaded.
12842
335252cb 128432014-02-15 Richard Biener <rguenther@suse.de>
12844
12845 PR tree-optimization/60183
737ae9cc 12846 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
335252cb 12847 (tree_ssa_phiprop): Calculate and free post-dominators.
12848
8b997800 128492014-02-14 Jeff Law <law@redhat.com>
12850
12851 PR rtl-optimization/60131
12852 * ree.c (get_extended_src_reg): New function.
737ae9cc 12853 (combine_reaching_defs): Use it rather than assuming location of REG.
8b997800 12854 (find_and_remove_re): Verify first operand of extension is
12855 a REG before adding the insns to the copy list.
12856
e786f3a4 128572014-02-14 Roland McGrath <mcgrathr@google.com>
12858
12859 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
12860 * configure: Regenerated.
12861 * config.in: Regenerated.
12862 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
12863 instead of ASM_SHORT.
12864
77a00b11 128652014-02-14 Vladimir Makarov <vmakarov@redhat.com>
12866 Richard Earnshaw <rearnsha@arm.com>
12867
12868 PR rtl-optimization/59535
12869 * lra-constraints.c (process_alt_operands): Encourage alternative
12870 when unassigned pseudo class is superset of the alternative class.
12871 (inherit_reload_reg): Don't inherit when optimizing for code size.
12872 * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
12873 returning CORE_REGS for anything but Thumb1 and BASE_REGS for
12874 modes not less than 4 for Thumb1.
12875
f2139b9c 128762014-02-14 Kyle McMartin <kyle@redhat.com>
12877
12878 PR pch/60010
12879 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
12880
44e135a6 128812014-02-14 Richard Biener <rguenther@suse.de>
12882
12883 * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
12884 (get_frame_arg): Drop the assert with langhook types_compatible_p.
12885 Do not strip INDIRECT_REFs.
12886
f4c35256 128872014-02-14 Richard Biener <rguenther@suse.de>
12888
12889 PR lto/60179
12890 * lto-streamer-out.c (DFS_write_tree_body): Do not follow
12891 DECL_FUNCTION_SPECIFIC_TARGET.
12892 (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
12893 * tree-streamer-out.c (pack_ts_target_option): Remove.
737ae9cc 12894 (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
f4c35256 12895 (write_ts_function_decl_tree_pointers): Do not stream
12896 DECL_FUNCTION_SPECIFIC_TARGET.
12897 * tree-streamer-in.c (unpack_ts_target_option): Remove.
12898 (unpack_value_fields): Do not stream TS_TARGET_OPTION.
12899 (lto_input_ts_function_decl_tree_pointers): Do not stream
12900 DECL_FUNCTION_SPECIFIC_TARGET.
12901
0b308eee 129022014-02-14 Jakub Jelinek <jakub@redhat.com>
12903
737ae9cc 12904 * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
0b308eee 12905 (get_initial_def_for_induction, vectorizable_induction): Ignore
12906 debug stmts when looking for exit_phi.
12907 (vectorizable_live_operation): Fix up condition.
12908
0f32a27e 129092014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
12910
12911 * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
12912 nreverse() because it changes the content of original tree list.
12913
416cdb53 129142014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
12915
12916 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
12917 * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
12918
223d3656 129192014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
12920
12921 * config/nds32/nds32.c (nds32_naked_function_p): Follow the
12922 GNU coding standards.
12923
ecd153b4 129242014-02-13 Jakub Jelinek <jakub@redhat.com>
12925
12926 PR debug/60152
12927 * dwarf2out.c (gen_subprogram_die): Don't call
12928 add_calling_convention_attribute if subr_die is old_die.
12929
adb0119b 129302014-02-13 Sharad Singhai <singhai@google.com>
12931
12932 * doc/optinfo.texi: Fix order of nodes.
12933
ea47f46c 129342014-02-13 Uros Bizjak <ubizjak@gmail.com>
12935
12936 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
12937 operands[2], not operands[3].
12938
da09c7e6 129392014-02-13 Richard Biener <rguenther@suse.de>
12940
12941 PR bootstrap/59878
12942 * doc/install.texi (ISL): Update recommended version to 0.12.2,
12943 mention the possibility of an in-tree build.
12944 (CLooG): Update recommended version to 0.18.1, mention the
12945 possibility of an in-tree build and clarify that the ISL
12946 bundled with CLooG does not work.
12947
0614d12c 129482014-02-13 Jakub Jelinek <jakub@redhat.com>
12949
12950 PR target/43546
12951 * expr.c (compress_float_constant): If x is a hard register,
12952 extend into a pseudo and then move to x.
12953
ed87d3a6 129542014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
12955
12956 * config/s390/s390.c (s390_asm_output_function_label): Fix crash
12957 caused by bad second argument to warning_at() with -mhotpatch and
12958 nested functions (e.g. with gfortran).
12959
6f648625 129602014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
12961
12962 * opts.c (option_name): Remove "enabled by default" rider.
12963
30407823 129642014-02-12 John David Anglin <danglin@gcc.gnu.org>
12965
12966 * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
12967
195a2bf8 129682014-02-12 H.J. Lu <hongjiu.lu@intel.com>
12969 Uros Bizjak <ubizjak@gmail.com>
12970
12971 PR target/60151
ea47f46c 12972 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
195a2bf8 12973 * configure: Regenerated.
12974
ec456ba8 129752014-02-12 Richard Biener <rguenther@suse.de>
12976
12977 * vec.c (vec_prefix::calculate_allocation): Move as
12978 inline variant to vec.h.
12979 (vec_prefix::calculate_allocation_1): New out-of-line version.
12980 * vec.h (vec_prefix::calculate_allocation_1): Declare.
12981 (vec_prefix::m_has_auto_buf): Rename to ...
12982 (vec_prefix::m_using_auto_storage): ... this.
12983 (vec_prefix::calculate_allocation): Inline the easy cases
12984 and dispatch to calculate_allocation_1 which doesn't need the
12985 prefix address.
12986 (va_heap::reserve): Use gcc_checking_assert.
12987 (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
12988 m_using_auto_storage.
12989 (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
12990 member and adjust.
12991 (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
12992 (vec<T, va_heap, vl_ptr>::release): Avoid casting.
12993 (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
12994
b476835b 129952014-02-12 Richard Biener <rguenther@suse.de>
12996
12997 * gcse.c (compute_transp): break from loop over canon_modify_mem_list
12998 when we found a dependence.
12999
a4eb3f73 130002014-02-12 Thomas Schwinge <thomas@codesourcery.com>
13001
c09f306d 13002 * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
13003 common code...
13004 (maybe_fold_stmt): ... into this new function.
13005 * omp-low.c (lower_omp): Update comment.
13006
d8e1e68d 13007 * omp-low.c (lower_omp_target): Add clobber for sizes array, after
13008 last use.
13009
a4eb3f73 13010 * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
13011 dereference.
13012
93415fb5 130132014-02-12 James Greenhalgh <james.greenhalgh@arm.com>
13014
13015 * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
13016 identifiers in comments.
13017 (cortexa53_extra_costs): Likewise.
ea47f46c 13018 * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
93415fb5 13019 (cortexa7_extra_costs): Likewise.
13020 (cortexa12_extra_costs): Likewise.
13021 (cortexa15_extra_costs): Likewise.
13022 (v7m_extra_costs): Likewise.
13023
712bf3a3 130242014-02-12 Richard Biener <rguenther@suse.de>
13025
13026 PR middle-end/60092
13027 * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
13028 of posix_memalign being successful.
13029 (lower_stmt): Restrict lowering of posix_memalign to when
13030 -ftree-bit-ccp is enabled.
13031
7eba0028 130322014-02-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
13033
13034 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
13035 arg_loc.
13036 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
13037
b7417723 130382014-02-12 Eric Botcazou <ebotcazou@adacore.com>
13039
13040 PR rtl-optimization/60116
13041 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
13042 other_insn once the combination has been validated.
13043
857c5a0b 130442014-02-11 Jan Hubicka <hubicka@ucw.cz>
13045
13046 PR lto/59468
13047 * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
13048 and wrapper.
13049 * ipa-devirt.c: Include demangle.h
13050 (odr_violation_reported): New static variable.
13051 (add_type_duplicate): Update odr_violations.
13052 (maybe_record_node): Add completep parameter; update it.
13053 (record_target_from_binfo): Add COMPLETEP parameter;
13054 update it as needed.
13055 (possible_polymorphic_call_targets_1): Likewise.
13056 (struct polymorphic_call_target_d): Add nonconstruction_targets;
13057 rename FINAL to COMPLETE.
13058 (record_targets_from_bases): Sanity check we found the binfo;
13059 fix COMPLETEP updating.
13060 (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
13061 parameter, fix computing of COMPLETEP.
ea47f46c 13062 (dump_possible_polymorphic_call_targets): Imrove readability of dump;
13063 at LTO time do demangling.
857c5a0b 13064 (ipa_devirt): Use nonconstruction_targets; Improve dumps.
13065 * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
13066 parameter.
13067 (gimple_get_virt_method_for_binfo): Likewise.
13068 * gimple-fold.h (gimple_get_virt_method_for_binfo,
13069 gimple_get_virt_method_for_vtable): Update prototypes.
13070
b4dd42d9 130712014-02-11 Vladimir Makarov <vmakarov@redhat.com>
13072
13073 PR target/49008
13074 * genautomata.c (add_presence_absence): Fix typo with
13075 {final_}presence_list.
13076
94ae016e 130772014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
13078
13079 PR target/60137
13080 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
13081 for VSX/Altivec vectors that land in GPR registers.
13082
b3ab9719 130832014-02-11 Richard Henderson <rth@redhat.com>
13084 Jakub Jelinek <jakub@redhat.com>
13085
13086 PR debug/59776
13087 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
13088 around drhs if type conversion to lacc->type is not useless.
13089
d6426295 130902014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13091
13092 * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
13093 tuning struct.
13094 (cortex-a57.cortex-a53): Likewise.
13095 * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
13096
288c1588 130972014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13098
13099 * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
13100 arm_restrict_it.
13101
aa593e20 131022014-02-11 Renlin Li <Renlin.Li@arm.com>
13103
13104 * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
13105 add_options_for_arm_vfp3.
13106
1c634092 131072014-02-11 Jeff Law <law@redhat.com>
13108
13109 PR middle-end/54041
13110 * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
13111 object with an undesirable mode.
13112
48295d25 131132014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13114
13115 PR libgomp/60107
13116 * config/i386/sol2-9.h: New file.
13117 * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
13118 *-*-solaris2.9*): Use it.
13119
6e70f6fb 131202014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
1b04e24b 13121
13122 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
13123 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
13124
6e70f6fb 131252014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
24b9f6cb 13126
13127 * config/microblaze/microblaze.c: Extend mcpu version format
13128
6e70f6fb 131292014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
a5d3045e 13130
13131 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
13132
b4c6ce9b 131332014-02-10 Richard Henderson <rth@redhat.com>
85c35fbc 13134
13135 PR target/59927
13136 * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
13137 * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
13138 ms-abi vs -mno-accumulate-outgoing-args.
13139 (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
13140 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
13141 respect to ms-abi.
13142
c36804c0 131432014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
13144
13145 PR middle-end/60080
13146 * cfgexpand.c (expand_asm_operands): Attach source location to
13147 ASM_INPUT rtx objects.
13148 * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
13149
36706943 131502014-02-10 Nick Clifton <nickc@redhat.com>
13151
13152 * config/mn10300/mn10300.c (popcount): New function.
13153 (mn10300_expand_prologue): Include saved registers in stack usage
13154 count.
13155
76962ce8 131562014-02-10 Jeff Law <law@redhat.com>
13157
13158 PR middle-end/52306
13159 * reload1.c (emit_input_reload_insns): Do not create invalid RTL
ea47f46c 13160 when changing the SET_DEST of a prior insn to avoid an input reload.
76962ce8 13161
aff8f65e 131622014-02-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13163
13164 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
13165 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
13166 -mcall-openbsd, or -mcall-linux.
13167 (CC1_ENDIAN_BIG_SPEC): Remove.
13168 (CC1_ENDIAN_LITTLE_SPEC): Remove.
13169 (CC1_ENDIAN_DEFAULT_SPEC): Remove.
13170 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
13171 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
13172 and %cc1_endian_default.
13173 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
13174
cdf2f9e4 131752014-02-10 Richard Biener <rguenther@suse.de>
13176
13177 PR tree-optimization/60115
13178 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
13179 MEM_REF handling. Properly verify that the accesses are not
13180 out of the objects bound.
13181
96c7d4b1 131822014-02-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13183
13184 * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
13185 coretex to cortex.
13186
81c44146 131872014-02-10 Eric Botcazou <ebotcazou@adacore.com>
13188
13189 * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
13190 proper constants and fix formatting.
13191 (possible_polymorphic_call_targets): Fix formatting.
13192
23afdab7 131932014-02-10 Kirill Yukhin <kirill.yukhin@intel.com>
13194 Ilya Tocar <ilya.tocar@intel.com>
13195
13196 * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
13197 (_mm512_loadu_epi32): Renamed into...
13198 (_mm512_loadu_si512): This.
13199 (_mm512_storeu_epi32): Renamed into...
13200 (_mm512_storeu_si512): This.
13201 (_mm512_maskz_ceil_ps): Removed.
13202 (_mm512_maskz_ceil_pd): Ditto.
13203 (_mm512_maskz_floor_ps): Ditto.
13204 (_mm512_maskz_floor_pd): Ditto.
13205 (_mm512_floor_round_ps): Ditto.
13206 (_mm512_floor_round_pd): Ditto.
13207 (_mm512_ceil_round_ps): Ditto.
13208 (_mm512_ceil_round_pd): Ditto.
13209 (_mm512_mask_floor_round_ps): Ditto.
13210 (_mm512_mask_floor_round_pd): Ditto.
13211 (_mm512_mask_ceil_round_ps): Ditto.
13212 (_mm512_mask_ceil_round_pd): Ditto.
13213 (_mm512_maskz_floor_round_ps): Ditto.
13214 (_mm512_maskz_floor_round_pd): Ditto.
13215 (_mm512_maskz_ceil_round_ps): Ditto.
13216 (_mm512_maskz_ceil_round_pd): Ditto.
13217 (_mm512_expand_pd): Ditto.
13218 (_mm512_expand_ps): Ditto.
13219 * config/i386/i386.c (ix86_builtins): Remove
13220 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
13221 (bdesc_args): Ditto.
13222 * config/i386/predicates.md (const1256_operand): New.
13223 (const_1_to_2_operand): Ditto.
13224 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
13225 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
13226 (*avx512pf_gatherpf<mode>sf): Ditto.
13227 (avx512pf_gatherpf<mode>df): Ditto.
13228 (*avx512pf_gatherpf<mode>df_mask): Ditto.
13229 (*avx512pf_gatherpf<mode>df): Ditto.
13230 (avx512pf_scatterpf<mode>sf): Ditto.
13231 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
13232 (*avx512pf_scatterpf<mode>sf): Ditto.
13233 (avx512pf_scatterpf<mode>df): Ditto.
13234 (*avx512pf_scatterpf<mode>df_mask): Ditto.
13235 (*avx512pf_scatterpf<mode>df): Ditto.
13236 (avx512f_expand<mode>): Removed.
13237 (<shift_insn><mode>3<mask_name>): Change predicate type.
13238
237e78b1 132392014-02-08 Jakub Jelinek <jakub@redhat.com>
13240
4aaf064d 13241 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
13242 not at the end of datarefs vector use ordered_remove to avoid
13243 reordering datarefs vector.
13244
6d5a8d89 13245 PR c/59984
13246 * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
13247 mark local addressable non-static vars as GOVD_PRIVATE
13248 instead of GOVD_LOCAL.
13249 * omp-low.c (lower_omp_for): Move gimple_bind_vars
13250 and BLOCK_VARS of gimple_bind_block to new_stmt rather
13251 than copying them.
13252
237e78b1 13253 PR middle-end/60092
13254 * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
13255 if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
13256 assume_aligned or alloc_align attributes.
13257 (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
13258 arguments. Handle also assume_aligned and alloc_align attributes.
ea47f46c 13259 (evaluate_stmt): Adjust bit_value_assume_aligned caller. Handle
13260 calls to functions with assume_aligned or alloc_align attributes.
13261 * doc/extend.texi: Document assume_aligned and alloc_align attributes.
237e78b1 13262
9a0acc96 132632014-02-08 Terry Guo <terry.guo@arm.com>
13264
13265 * doc/invoke.texi: Document ARM -march=armv7e-m.
13266
83167671 132672014-02-08 Jakub Jelinek <jakub@redhat.com>
13268
4d46da26 13269 * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
13270 flag on __cilkrts_rethrow builtin.
13271
83167671 13272 PR ipa/60026
13273 * ipa-cp.c (determine_versionability): Fail at -O0
13274 or __attribute__((optimize (0))) or -fno-ipa-cp functions.
13275 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
13276
13277 Revert:
13278 2014-02-04 Jakub Jelinek <jakub@redhat.com>
13279
13280 PR ipa/60026
13281 * tree-inline.c (copy_forbidden): Fail for
13282 __attribute__((optimize (0))) functions.
13283
5c3e0e39 132842014-02-07 Jan Hubicka <hubicka@ucw.cz>
13285
13286 * varpool.c: Include pointer-set.h.
13287 (varpool_remove_unreferenced_decls): Variables in other partitions
13288 will not be output; be however careful to not lose information
13289 about partitioning.
13290
57b16855 132912014-02-07 Jan Hubicka <hubicka@ucw.cz>
13292
13293 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
13294 lookup in the vtable constructor.
13295
76184b40 132962014-02-07 Jeff Law <law@redhat.com>
13297
6ad9a408 13298 PR target/40977
13299 * config/m68k/m68k.md (ashldi_extsi): Turn into a
13300 define_insn_and_split.
13301
76184b40 13302 * ipa-inline.c (inline_small_functions): Fix typos.
13303
7a64c761 133042014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
13305
13306 * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
13307 (s390_can_use_return_insn): Declare.
13308 * config/s390/s390.h (EPILOGUE_USES): Define.
13309 * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
13310 instructions.
13311 (s390_chunkify_start): Handle return JUMP_LABELs.
13312 (s390_early_mach): Emit a main_pool instruction on the entry edge.
13313 (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
13314 (s390_can_use_return_insn): New functions.
13315 (s390_fix_long_loop_prediction): Handle conditional returns.
13316 (TARGET_SET_UP_BY_PROLOGUE): Define.
13317 * config/s390/s390.md (ANY_RETURN): New code iterator.
13318 (*creturn, *csimple_return, return, simple_return): New patterns.
13319
8240ec0e 133202014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
13321
13322 * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
13323 notes to each restore. Also add REG_CFA_DEF_CFA when restoring %r15.
13324 (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P. Update the
13325 REG_CFA_RESTORE list when deciding not to restore a register.
13326
0b8be04c 133272014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
13328
13329 * config/s390/s390.c: Include tree-pass.h and context.h.
13330 (s390_early_mach): New function, split out from...
13331 (s390_emit_prologue): ...here.
13332 (pass_data_s390_early_mach): New pass structure.
13333 (pass_s390_early_mach): New class.
13334 (s390_option_override): Create and register early_mach pass.
13335 Move to end of file.
13336
ae4c3615 133372014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
13338
13339 * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
13340 to match for the exit block.
13341
db57a6a4 133422014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13343
13344 * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
13345 ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
13346 Reject misaligned operands.
13347
ad985d61 133482014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13349
ea47f46c 13350 * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
ad985d61 13351
18593a2c 133522014-02-07 Richard Biener <rguenther@suse.de>
13353
13354 PR middle-end/60092
13355 * gimple-low.c (lower_builtin_posix_memalign): New function.
13356 (lower_stmt): Call it to lower posix_memalign in a way
13357 to make alignment info accessible.
13358
8df457cb 133592014-02-07 Jakub Jelinek <jakub@redhat.com>
13360
13361 PR c++/60082
13362 * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
13363 __builtin_setjmp_receiver.
13364
be2c7f8f 133652014-02-07 Richard Biener <rguenther@suse.de>
13366
13367 PR middle-end/60092
13368 * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
13369 * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
13370 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
13371 Handle BUILT_IN_POSIX_MEMALIGN.
13372 (find_func_clobbers): Likewise.
13373 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
13374 (call_may_clobber_ref_p_1): Likewise.
13375
d0f12d44 133762014-02-06 Jan Hubicka <hubicka@ucw.cz>
13377
13378 PR ipa/59918
ea47f46c 13379 * ipa-devirt.c (record_target_from_binfo): Remove overactive
13380 sanity check.
d0f12d44 13381
99b4edde 133822014-02-06 Jan Hubicka <hubicka@ucw.cz>
13383
13384 PR ipa/59469
13385 * lto-cgraph.c (lto_output_node): Use
13386 symtab_get_symbol_partitioning_class.
13387 (lto_output_varpool_node): likewise.
13388 (symtab_get_symbol_partitioning_class): Move here from
13389 lto/lto-partition.c
13390 * cgraph.h (symbol_partitioning_class): Likewise.
13391 (symtab_get_symbol_partitioning_class): Declare.
13392
ea7d8c7a 133932014-02-06 Jan Hubicka <hubicka@ucw.cz>
13394
13395 * ggc.h (ggc_internal_cleared_alloc): New macro.
13396 * vec.h (vec_safe_copy): Handle memory stats.
13397 * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
13398 * target-globals.c (save_target_globals): Likewise.
13399
134002014-02-06 Jan Hubicka <hubicka@ucw.cz>
dc7cdd37 13401
13402 PR target/60077
13403 * expr.c (emit_move_resolve_push): Export; be bit more selective
13404 on when to clear alias set.
13405 * expr.h (emit_move_resolve_push): Declare.
13406 * function.h (struct function): Add tail_call_marked.
13407 * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
13408 * config/i386/i386-protos.h (ix86_expand_push): Remove.
13409 * config/i386/i386.md (TImode move expander): De not call
13410 ix86_expand_push.
13411 (FP push expanders): Preserve memory attributes.
13412 * config/i386/sse.md (push<mode>1): Remove.
ea47f46c 13413 * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
dc7cdd37 13414 (ix86_expand_push): Remove.
13415 * config/i386/mmx.md (push<mode>1): Remove.
13416
45e9ff98 134172014-02-06 Jakub Jelinek <jakub@redhat.com>
13418
13419 PR rtl-optimization/60030
13420 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
13421 lopart with paradoxical subreg before shifting it up by hprec.
13422
73648acf 134232014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13424
13425 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
13426 Remove extra newline at end of file.
13427 * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
13428 (arm_issue_rate): Handle cortexa57.
13429 * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
13430 (cortex-a57.cortex-a53): Likewise.
13431
12033851 134322014-02-06 Jakub Jelinek <jakub@redhat.com>
13433
f6541ad2 13434 PR target/59575
13435 * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
13436 don't record in REG_FRAME_RELATED_EXPR registers not set in that
13437 bitmask.
13438 (arm_expand_prologue): Adjust all callers.
13439 (arm_unwind_emit_sequence): Allow saved, but not important for unwind
13440 info, registers also at the lowest numbered registers side. Use
13441 gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
13442 XEXP.
13443
12033851 13444 PR debug/59992
ea47f46c 13445 * var-tracking.c (adjust_mems): Before adding a SET to
13446 amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
12033851 13447
b7d639bb 134482014-02-06 Alan Modra <amodra@gmail.com>
13449
13450 PR target/60032
13451 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
13452 change SDmode to DDmode when lra_in_progress.
13453
9c3a43b7 134542014-02-06 Jakub Jelinek <jakub@redhat.com>
13455
53c3c39b 13456 PR middle-end/59150
13457 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
13458 free_data_ref on the dr first, and before goto again also set dr
13459 to the next dr. For simd_lane_access, free old datarefs[i] before
13460 overwriting it. For get_vectype_for_scalar_type failure, don't
13461 free_data_ref if simd_lane_access.
13462
1d7f9a87 13463 * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
13464
9c3a43b7 13465 PR target/60062
13466 * tree.h (opts_for_fn): New inline function.
13467 (opt_for_fn): Define.
13468 * config/i386/i386.c (ix86_function_regparm): Use
13469 opt_for_fn (decl, optimize) instead of optimize.
13470
c85e352b 134712014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
13472
13473 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
13474 for SYMBOL_REF in large memory model.
13475
a2e58276 134762014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13477
13478 * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
13479 and crypto support.
13480 (cortex-a57): Likewise.
13481 (cortex-a57.cortex-a53): Likewise.
13482
086db8b0 134832014-02-06 Yury Gribov <y.gribov@samsung.com>
13484 Kugan Vivekanandarajah <kuganv@linaro.org>
13485
13486 * config/arm/arm.c (arm_vector_alignment_reachable): Check
13487 unaligned_access.
13488 * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
13489
9069499c 134902014-02-06 Richard Biener <rguenther@suse.de>
13491
13492 * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
13493 set_loop_copy and initialize_original_copy_tables.
13494
ade3aaf0 134952014-02-06 Alex Velenko <Alex.Velenko@arm.com>
13496
13497 * config/aarch64/aarch64-simd.md
13498 (aarch64_ashr_simddi): Change QI to SI.
13499
74d6d072 135002014-02-05 Jan Hubicka <hubicka@ucw.cz>
13501 Jakub Jelinek <jakub@redhat.com>
13502
13503 PR middle-end/60013
13504 * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
13505 of the dataflow.
13506
0547d7e6 135072014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13508
13509 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
13510 CODE_FOR_altivec_vpku[hw]um to
13511 CODE_FOR_altivec_vpku[hw]um_direct.
13512 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
13513 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
13514 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
13515 UNSPEC_VUNPACK_LO_SIGN_DIRECT.
13516
479e91ce 135172014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13518
13519 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
13520 generation for -maltivec=be.
13521 (altivec_vsumsws): Simplify redundant test.
13522
b9cc9f84 135232014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13524
13525 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
13526 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
13527 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
13528 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
13529 gen_altivec_vpkuwum.
13530 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
13531 BYTES_BIG_ENDIAN.
13532 (altivec_vpks<VI_char>ss): Likewise.
13533 (altivec_vpks<VI_char>us): Likewise.
13534 (altivec_vpku<VI_char>us): Likewise.
13535 (altivec_vpku<VI_char>um): Likewise.
13536 (altivec_vpku<VI_char>um_direct): New (copy of
13537 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
13538 internal use).
13539 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
13540 target is little endian and -maltivec=be is not specified.
13541 (*altivec_vupkhs<VU_char>_direct): New (copy of
ea47f46c 13542 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
b9cc9f84 13543 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
13544 target is little endian and -maltivec=be is not specified.
13545 (*altivec_vupkls<VU_char>_direct): New (copy of
ea47f46c 13546 altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
b9cc9f84 13547 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
13548 little endian and -maltivec=be is not specified.
13549 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
13550 little endian and -maltivec=be is not specified.
13551
b4c6ce9b 135522014-02-05 Richard Henderson <rth@redhat.com>
617529e8 13553
13554 PR debug/52727
13555 * combine-stack-adj.c: Revert r206943.
13556 * sched-int.h (struct deps_desc): Add last_args_size.
13557 * sched-deps.c (init_deps): Initialize it.
13558 (sched_analyze_insn): Add OUTPUT dependencies between insns that
13559 contain REG_ARGS_SIZE notes.
13560
3e17769e 135612014-02-05 Jan Hubicka <hubicka@ucw.cz>
13562
13563 * lto-cgraph.c (asm_nodes_output): Make global.
13564 * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
ea47f46c 13565 * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
3e17769e 13566 (driver_handle_option): Handle OPT_fwpa.
13567
ae3a21c9 135682014-02-05 Jakub Jelinek <jakub@redhat.com>
13569
bd93c679 13570 PR ipa/59947
13571 * ipa-devirt.c (possible_polymorphic_call_targets): Fix
13572 a comment typo and formatting issue. If odr_hash hasn't been
13573 created, return vNULL and set *completep to false.
13574
ae3a21c9 13575 PR middle-end/57499
13576 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
13577 bb with no successors.
13578
7ffa2d72 135792014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
13580
13581 PR target/59718
13582 * doc/invoke.texi (-march): Clarify documentation for ARM.
13583 (-mtune): Likewise.
13584 (-mcpu): Likewise.
13585
1c7f4889 135862014-02-05 Richard Biener <rguenther@suse.de>
13587
13588 * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
13589 when not vectorizing because of too many alias checks.
13590 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
13591 Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
13592
f70166f6 135932014-02-05 Nick Clifton <nickc@redhat.com>
13594
13595 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
ea47f46c 13596 accept extended registers in any mode when compiling for the MN10300.
f70166f6 13597
3f52b85a 135982014-02-05 Yury Gribov <y.gribov@samsung.com>
13599
13600 * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
13601 * ipa-inline.c (report_inline_failed_reason): Handle mismatched
13602 sanitization attributes.
13603 (can_inline_edge_p): Likewise.
13604 (sanitize_attrs_match_for_inline_p): New function.
13605
5b864aa1 136062014-02-04 Jan Hubicka <hubicka@ucw.cz>
13607
13608 * ipa-prop.c (detect_type_change): Shor circuit testing of
13609 type changes on THIS pointer.
13610
b17eb183 136112014-02-04 John David Anglin <danglin@gcc.gnu.org>
13612
13613 PR target/59777
13614 * config/pa/pa.c (legitimize_tls_address): Return original address
13615 if not passed a SYMBOL_REF rtx.
13616 (hppa_legitimize_address): Call legitimize_tls_address for all TLS
13617 addresses.
13618 (pa_emit_move_sequence): Simplify TLS source operands.
13619 (pa_legitimate_constant_p): Reject all TLS constants.
13620 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
13621 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
13622
96a3dc39 136232014-02-04 Jan Hubicka <hubicka@ucw.cz>
13624
13625 * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
13626 groups when we know they are controlled by LTO.
13627 * varasm.c (default_binds_local_p_1): If object is in other partition,
13628 it will be resolved locally.
13629
bfd54518 136302014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
13631
c36804c0 13632 * config/host-linux.c (linux_gt_pch_use_address): Don't
ea47f46c 13633 use SSIZE_MAX because it is not always defined.
bfd54518 13634
7eec3701 136352014-02-04 Vladimir Makarov <vmakarov@redhat.com>
13636
13637 PR bootstrap/59913
13638 * lra-constraints.c (need_for_split_p): Use more 3 reloads as
13639 threshold for pseudo splitting.
13640 (update_ebb_live_info): Process call argument hard registers and
13641 hard registers from insn definition too.
13642 (max_small_class_regs_num): New constant.
13643 (inherit_in_ebb): Update live hard regs through EBBs. Update
13644 reloads_num only for small register classes. Don't split for
13645 outputs of jumps.
13646
bc58d800 136472014-02-04 Markus Trippelsdorf <markus@trippelsdorf.de>
13648
13649 PR ipa/60058
13650 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
13651 is non-null.
13652
bc8f61a2 136532014-02-04 Jan Hubicka <hubicka@ucw.cz>
13654
ea47f46c 13655 * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
13656 visibility is safe.
bc8f61a2 13657
b174be60 136582014-02-04 Marek Polacek <polacek@redhat.com>
13659
13660 * gdbinit.in (pel): Define.
13661
c8b3134c 136622014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
13663
13664 * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
13665 behavior.
13666
6541e9a1 136672014-02-04 Richard Biener <rguenther@suse.de>
13668
13669 PR lto/59723
13670 * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
13671 in function context local.
13672 (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
13673 * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
13674 similar to LTO_imported_decl_ref.
13675
20ebf4ca 136762014-02-04 Jakub Jelinek <jakub@redhat.com>
13677
de96bd4a 13678 PR tree-optimization/60002
13679 * cgraphclones.c (build_function_decl_skip_args): Clear
13680 DECL_LANG_SPECIFIC.
13681
4e459157 13682 PR tree-optimization/60023
13683 * tree-if-conv.c (predicate_mem_writes): Pass true instead of
13684 false to gsi_replace.
13685 * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
13686 has been in some EH region and vec_stmt could throw, add
13687 vec_stmt into the same EH region.
13688 * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
13689 has no lhs, ignore it.
13690 * internal-fn.c (expand_MASK_LOAD): Likewise.
13691
5ceeaef0 13692 PR ipa/60026
13693 * tree-inline.c (copy_forbidden): Fail for
13694 __attribute__((optimize (0))) functions.
13695
46c0fd4b 13696 PR other/58712
13697 * omp-low.c (simd_clone_struct_copy): If from->inbranch
13698 is set, copy one less argument.
6562533e 13699 (expand_simd_clones): Don't subtract clone_info->inbranch
13700 from simd_clone_struct_alloc argument.
46c0fd4b 13701
f84a6a0e 13702 PR rtl-optimization/57915
13703 * recog.c (simplify_while_replacing): If all unary/binary/relational
13704 operation arguments are constant, attempt to simplify those.
13705
20ebf4ca 13706 PR middle-end/59261
13707 * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
13708 if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
13709
0f52e33a 137102014-02-04 Richard Biener <rguenther@suse.de>
13711
13712 PR tree-optimization/60012
13713 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
13714 TBAA disambiguation to all DDRs.
13715
48118d02 137162014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13717
13718 PR target/59788
13719 * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
13720 (LINK_SPEC): Use it for -shared, -shared-libgcc.
13721
abcb2cab 137222014-02-03 Jan Hubicka <hubicka@ucw.cz>
13723
13724 PR ipa/59882
13725 * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
13726
137272014-02-03 Jan Hubicka <hubicka@ucw.cz>
8745f023 13728
13729 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
13730 * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
13731
abcb2cab 137322014-02-03 Jan Hubicka <hubicka@ucw.cz>
54176a57 13733
13734 PR ipa/59831
13735 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
13736 to figure out targets of polymorphic calls with known decl.
13737 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
13738 * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
13739 * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
13740 (get_polymorphic_call_info): ... here.
13741 (get_polymorphic_call_info_from_invariant): New function.
13742
abcb2cab 137432014-02-03 Jan Hubicka <hubicka@ucw.cz>
6750de5f 13744
13745 * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
13746 lookup via vtable pointer; check for type consistency
13747 and turn inconsitent facts into UNREACHABLE.
13748 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
ea47f46c 13749 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
13750 type inconsistent querries; return UNREACHABLE instead.
6750de5f 13751
842e1d3c 137522014-02-03 Richard Henderson <rth@twiddle.net>
13753
13754 PR tree-opt/59924
13755 * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
13756 already processed this node.
13757 (normalize_one_pred_1): Pass along mark_set.
13758 (normalize_one_pred): Create and destroy a pointer_set_t.
13759 (normalize_one_pred_chain): Likewise.
13760
ca3f7d34 137612014-02-03 Laurent Aflonsi <laurent.alfonsi@st.com>
13762
13763 PR gcov-profile/58602
ea47f46c 13764 * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
ca3f7d34 13765
02636da3 137662014-02-03 Jan Hubicka <hubicka@ucw.cz>
13767
13768 PR ipa/59831
ea47f46c 13769 * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
13770 -fno-devirtualize; try to devirtualize by the knowledge of
13771 virtual table pointer given by aggregate propagation.
02636da3 13772 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
ea47f46c 13773 (ipa_print_node_jump_functions): Dump also offset that
02636da3 13774 is relevant for polymorphic calls.
13775 (determine_known_aggregate_parts): Add arg_type parameter; use it
13776 instead of determining the type from pointer type.
13777 (ipa_compute_jump_functions_for_edge): Update call of
13778 determine_known_aggregate_parts.
13779 * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
13780 (gimple_get_virt_method_for_binfo): ... here; simplify using
13781 vtable_pointer_value_to_vtable.
13782 * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
13783 * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
ea47f46c 13784 to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
02636da3 13785 (vtable_pointer_value_to_vtable): Break out from ...; handle also
13786 POINTER_PLUS_EXPR.
13787 (vtable_pointer_value_to_binfo): ... here.
13788 * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
13789
9cf883aa 137902014-02-03 Teresa Johnson <tejohnson@google.com>
13791
13792 * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
13793 redef of outer loop index variable.
13794
caf62483 137952014-02-03 Marc Glisse <marc.glisse@inria.fr>
13796
13797 PR c++/53017
13798 PR c++/59211
13799 * doc/extend.texi (Function Attributes): Typo.
13800
512cbd67 138012014-02-03 Cong Hou <congh@google.com>
13802
13803 PR tree-optimization/60000
13804 * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
13805 if the vectorized statement is a store. A store statement can only
13806 appear at the end of pattern statements.
13807
1f81c8ed 138082014-02-03 H.J. Lu <hongjiu.lu@intel.com>
13809
13810 * config/i386/i386.c (flag_opts): Add -mlong-double-128.
13811 (ix86_option_override_internal): Default long double to 64-bit for
13812 32-bit Bionic and to 128-bit for 64-bit Bionic.
13813
13814 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
13815 TARGET_LONG_DOUBLE_128 is true.
13816 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
13817
13818 * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
13819 (mlong-double-64): Negate -mlong-double-128.
13820 (mlong-double-128): New option.
13821
13822 * config/i386/i386-c.c (ix86_target_macros): Define
13823 __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
13824
13825 * doc/invoke.texi: Document -mlong-double-128.
13826
ee331bc7 138272014-02-03 H.J. Lu <hongjiu.lu@intel.com>
13828
13829 PR rtl-optimization/60024
13830 * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
13831
4ec33c7b 138322014-02-03 Markus Trippelsdorf <markus@trippelsdorf.de>
13833
ea47f46c 13834 * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
4ec33c7b 13835
f18c3345 138362014-02-03 Andrey Belevantsev <abel@ispras.ru>
13837
13838 PR rtl-optimization/57662
13839 * sel-sched.c (code_motion_path_driver): Do not mark already not
13840 existing blocks in the visiting bitmap.
13841
2b7454f2 138422014-02-03 Andrey Belevantsev <abel@ispras.ru>
13843
13844 * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
13845 on the insn being emitted.
13846
a45ebe4f 138472014-02-03 James Greenhalgh <james.greenhalgh@arm.com>
13848 Will Deacon <will.deacon@arm.com>
13849
13850 * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
13851
4ad6208e 138522014-02-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13853
13854 * config/arm/arm-tables.opt: Regenerate.
13855
47f833a2 138562014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13857
13858 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
13859 for vector types other than V16QImode.
13860 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
13861 define_expand, and call altivec_expand_vec_perm_le when producing
13862 code with little endian element order.
13863 (*altivec_vperm_<mode>_internal): New insn having previous
13864 behavior of altivec_vperm_<mode>.
13865 (altivec_vperm_<mode>_uns): Change to a define_expand, and call
13866 altivec_expand_vec_perm_le when producing code with little endian
13867 element order.
13868 (*altivec_vperm_<mode>_uns_internal): New insn having previous
13869 behavior of altivec_vperm_<mode>_uns.
13870
6c65ab35 138712014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13872
13873 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
13874 (altivec_vsumsws): Add handling for -maltivec=be with a little
13875 endian target.
13876 (altivec_vsumsws_direct): New.
13877 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
13878 gen_altivec_vsumsws.
13879
abcb2cab 138802014-02-02 Jan Hubicka <hubicka@ucw.cz>
3a4f7ef5 13881
13882 * ipa-devirt.c (subbinfo_with_vtable_at_offset,
13883 vtable_pointer_value_to_binfo): New functions.
13884 * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
13885 * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
13886
1fa97c89 138872014-02-02 Sandra Loosemore <sandra@codesourcery.com>
13888
13889 * config/nios2/nios2.md (load_got_register): Initialize GOT
13890 pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
13891 * config/nios2/nios2.c (nios2_function_profiler): Likewise.
13892
ac66ebf1 138932014-02-02 Jan Hubicka <hubicka@ucw.cz>
13894
13895 * ipa-prop.c (update_jump_functions_after_inlining): When type is not
13896 preserverd by passthrough, do not propagate the type.
13897
9e5d4a37 138982014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
13899
13900 * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
13901 (mips_atomic_assign_expand_fenv): New function.
13902 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
13903
9641080c 139042014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
13905
13906 * doc/extend.texi (__builtin_mips_get_fcsr): Document.
13907 (__builtin_mips_set_fcsr): Likewise.
13908 * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
13909 MIPS_USI_FTYPE_VOID.
13910 * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
13911 (mips16_expand_set_fcsr): Likewise.
13912 * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
13913 (mips16_set_fcsr_stub): Likewise.
13914 (mips16_get_fcsr_one_only_stub): New class.
13915 (mips16_set_fcsr_one_only_stub): Likewise.
13916 (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
13917 (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
13918 (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
13919 (hard_float): New availability predicate.
13920 (mips_builtins): Add get_fcsr and set_fcsr.
13921 (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
13922 * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
13923 (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
13924 (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
13925 (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
13926 patterns.
13927
5372b74e 139282014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
13929
13930 * config/mips/mips.c (mips_one_only_stub): New class.
13931 (mips_need_mips16_rdhwr_p): Replace with...
13932 (mips16_rdhwr_stub): ...this new variable.
13933 (mips16_stub_call_address): New function.
13934 (mips16_rdhwr_one_only_stub): New class.
13935 (mips_expand_thread_pointer): Use mips16_stub_call_address.
13936 (mips_output_mips16_rdhwr): Delete.
13937 (mips_finish_stub): New function.
13938 (mips_code_end): Use it to handle rdhwr stubs.
13939
fd3c118d 139402014-02-02 Uros Bizjak <ubizjak@gmail.com>
13941
13942 PR target/60017
13943 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
13944 when calculating size of integer atomic types.
13945
007315c1 139462014-02-02 H.J. Lu <hongjiu.lu@intel.com>
13947
13948 * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
13949
b8e66853 139502014-02-01 Jakub Jelinek <jakub@redhat.com>
13951
13952 PR tree-optimization/60003
13953 * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
13954 * profile.c (branch_prob): Use gimple_call_builtin_p
13955 to check for BUILT_IN_SETJMP_RECEIVER.
13956 * tree-inline.c (copy_bb): Call notice_special_calls.
13957
92b64c52 139582014-01-31 Vladimir Makarov <vmakarov@redhat.com>
13959
13960 PR bootstrap/59985
13961 * lra-constraints.c (process_alt_operands): Update reload_sum only
13962 on the first pass.
13963
9ae6e329 139642014-01-31 Richard Henderson <rth@redhat.com>
13965
13966 PR middle-end/60004
13967 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
13968 until after else_eh is processed.
13969
bd7e5882 139702014-01-31 Ilya Tocar <ilya.tocar@intel.com>
13971
13972 * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
13973 (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
13974 (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
13975 in smmintrin.h, remove them.
13976 (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
13977 * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
13978 * config/i386/i386.md (ROUND_SAE): Fix value.
13979 * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
13980 (const48_operand): New.
13981 * config/i386/subst.md (round), (round_expand): Use
13982 const_4_or_8_to_11_operand.
13983 (round_saeonly), (round_saeonly_expand): Use const48_operand.
13984
a31e7f46 139852014-01-31 Ilya Tocar <ilya.tocar@intel.com>
13986
13987 * config/i386/constraints.md (Yk): Swap meaning with k.
13988 * config/i386/i386.md (movhi_internal): Change Yk to k.
13989 (movqi_internal): Ditto.
13990 (*k<logic><mode>): Ditto.
13991 (*andhi_1): Ditto.
13992 (*andqi_1): Ditto.
13993 (kandn<mode>): Ditto.
13994 (*<code>hi_1): Ditto.
13995 (*<code>qi_1): Ditto.
13996 (kxnor<mode>): Ditto.
13997 (kortestzhi): Ditto.
13998 (kortestchi): Ditto.
13999 (kunpckhi): Ditto.
14000 (*one_cmplhi2_1): Ditto.
14001 (*one_cmplqi2_1): Ditto.
14002 * config/i386/sse.md (): Change k to Yk.
14003 (avx512f_load<mode>_mask): Ditto.
14004 (avx512f_blendm<mode>): Ditto.
14005 (avx512f_store<mode>_mask): Ditto.
14006 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
14007 (avx512f_storedqu<mode>_mask): Ditto.
24ecc224 14008 (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
14009 Ditto.
a31e7f46 14010 (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
14011 (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
14012 (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
14013 (avx512f_maskcmp<mode>3): Ditto.
14014 (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
14015 (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
14016 (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
14017 (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
14018 (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
14019 (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
14020 (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
14021 (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
14022 (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
14023 (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
14024 (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
14025 (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
14026 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
14027 (vec_extract_lo_<mode>_maskm): Ditto.
14028 (vec_extract_hi_<mode>_maskm): Ditto.
14029 (avx512f_vternlog<mode>_mask): Ditto.
14030 (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
14031 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
14032 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
14033 (avx512f_<code>v8div16qi2_mask): Ditto.
14034 (avx512f_<code>v8div16qi2_mask_store): Ditto.
14035 (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
14036 (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
14037 (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
14038 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
14039 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
14040 (*avx512pf_gatherpf<mode>df_mask): Ditto.
14041 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
14042 (*avx512pf_scatterpf<mode>df_mask): Ditto.
14043 (avx512cd_maskb_vec_dupv8di): Ditto.
14044 (avx512cd_maskw_vec_dupv16si): Ditto.
14045 (avx512f_vpermi2var<mode>3_maskz): Ditto.
14046 (avx512f_vpermi2var<mode>3_mask): Ditto.
14047 (avx512f_vpermi2var<mode>3_mask): Ditto.
14048 (avx512f_vpermt2var<mode>3_maskz): Ditto.
14049 (*avx512f_gathersi<mode>): Ditto.
14050 (*avx512f_gathersi<mode>_2): Ditto.
14051 (*avx512f_gatherdi<mode>): Ditto.
14052 (*avx512f_gatherdi<mode>_2): Ditto.
14053 (*avx512f_scattersi<mode>): Ditto.
14054 (*avx512f_scatterdi<mode>): Ditto.
14055 (avx512f_compress<mode>_mask): Ditto.
14056 (avx512f_compressstore<mode>_mask): Ditto.
14057 (avx512f_expand<mode>_mask): Ditto.
14058 * config/i386/subst.md (mask): Change k to Yk.
14059 (mask_scalar_merge): Ditto.
14060 (sd): Ditto.
14061
ca91d208 140622014-01-31 Marc Glisse <marc.glisse@inria.fr>
14063
14064 * doc/extend.texi (Vector Extensions): Document ?: in C++.
14065
ce319529 140662014-01-31 Richard Biener <rguenther@suse.de>
14067
14068 PR middle-end/59990
14069 * builtins.c (fold_builtin_memory_op): Make sure to not
14070 use a floating-point mode or a boolean or enumeral type for
14071 the copy operation.
14072
9d636c05 140732014-01-30 DJ Delorie <dj@redhat.com>
14074
14075 * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
14076 * config/msp430/msp430.md (msp430_refsym_need_exit): New.
14077 * config/msp430/msp430.c (msp430_expand_epilogue): Call it
14078 whenever main() has an epilogue.
14079
65230b9f 140802014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14081
14082 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
14083 unused variable "field".
14084 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
14085 (vsx_mergeh_<mode>): Likewise.
14086 * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
14087 (altivec_vmrghh): Likewise.
14088 (altivec_vmrghw): Likewise.
14089 (altivec_vmrglb): Likewise.
14090 (altivec_vmrglh): Likewise.
14091 (altivec_vmrglw): Likewise.
14092 (altivec_vspltb): Add missing uses.
14093 (altivec_vsplth): Likewise.
14094 (altivec_vspltw): Likewise.
14095 (altivec_vspltsf): Likewise.
14096
97e155b1 140972014-01-30 Jakub Jelinek <jakub@redhat.com>
14098
14099 PR target/59923
14100 * ifcvt.c (cond_exec_process_insns): Don't conditionalize
14101 frame related instructions.
14102
6ba9136f 141032014-01-30 Vladimir Makarov <vmakarov@redhat.com>
14104
14105 PR rtl-optimization/59959
14106 * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
14107 any reload of register whose subreg is invalid.
14108
f6c01d8d 141092014-01-30 Jakub Jelinek <jakub@redhat.com>
14110
24ecc224 14111 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
f6c01d8d 14112 * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
14113 Add missing return type - void.
14114
8e6e94c4 141152014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14116
14117 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
14118 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
14119 remove element index adjustment for endian (now handled in vsx.md
14120 and altivec.md).
14121 (altivec_expand_vec_perm_const): Use
14122 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
14123 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
14124 (vsx_xxspltw_<mode>): Adjust element index for little endian.
14125 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
14126 define_expand and a new define_insn *altivec_vspltb_internal;
14127 adjust for -maltivec=be on a little endian target.
14128 (altivec_vspltb_direct): New.
14129 (altivec_vsplth): Divide into a define_expand and a new
14130 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
14131 little endian target.
14132 (altivec_vsplth_direct): New.
14133 (altivec_vspltw): Divide into a define_expand and a new
14134 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
14135 little endian target.
14136 (altivec_vspltw_direct): New.
14137 (altivec_vspltsf): Divide into a define_expand and a new
14138 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
14139 a little endian target.
14140
135b982d 141412014-01-30 Richard Biener <rguenther@suse.de>
14142
14143 PR tree-optimization/59993
14144 * tree-ssa-forwprop.c (associate_pointerplus): Check we
14145 can propagate form the earlier stmt and avoid the transform
14146 when the intermediate result is needed.
14147
59311f28 141482014-01-30 Alangi Derick <alangiderick@gmail.com>
14149
14150 * README.Portability: Fix typo.
14151
6e70f6fb 141522014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
fb32bcd7 14153
14154 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
14155 comparison_operator with ordered_comparison_operator.
14156
bc6d465d 141572014-01-30 Nick Clifton <nickc@redhat.com>
14158
14159 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
14160 Rename to mn10300_store_multiple_regs.
14161 * config/mn10300/mn10300.c: Likewise.
14162 * config/mn10300/mn10300.md (store_movm): Fix typo: call
14163 store_multiple_regs.
14164 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
14165 Call mn10300_store_multiple_regs.
14166
8a6bcd4e 141672014-01-30 Nick Clifton <nickc@redhat.com>
14168 DJ Delorie <dj@redhat.com>
14169
14170 * config/rl78/rl78.c (register_sizes): Make the "upper half" of
14171 %fp 2 to keep registers after it properly word-aligned.
14172 (rl78_alloc_physical_registers_umul): Handle the case where both
14173 input operands are the same.
14174
bb4b5e0f 141752014-01-30 Richard Biener <rguenther@suse.de>
14176
14177 PR tree-optimization/59903
14178 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
14179 check properly.
14180
08a057fa 141812014-01-30 Jason Merrill <jason@redhat.com>
14182
53874764 14183 PR c++/59633
14184 * tree.c (walk_type_fields): Handle VECTOR_TYPE.
14185
08a057fa 14186 PR c++/59645
14187 * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
14188
ab2dc680 141892014-01-30 Richard Biener <rguenther@suse.de>
14190
14191 PR tree-optimization/59951
24ecc224 14192 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
ab2dc680 14193
3a766d17 141942014-01-30 Savin Zlobec <savin.zlobec@gmail.com>
14195
14196 PR target/59784
14197 * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
14198 SFmode to DFmode case.
14199
587132de 142002014-01-29 DJ Delorie <dj@redhat.com>
14201
14202 * config/msp430/msp430.opt (-minrt): New.
14203 * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
14204 if -minrt given.
14205 (ENDFILE_SPEC): Likewise.
14206
abcb2cab 142072014-01-29 Jan Hubicka <hubicka@ucw.cz>
4c54368f 14208
14209 * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
14210 (estimate_function_body_sizes): Use it.
14211
65a3b224 142122014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
14213
14214 PR c++/58561
14215 * dwarf2out.c (is_cxx_auto): New.
14216 (is_base_type): Use it.
14217 (gen_type_die_with_usage): Likewise.
14218
f848237b 142192014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14220
14221 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
14222 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
14223 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
14224 -maltivec=be with LE targets.
14225 (vsx_mergeh_<mode>): Likewise.
24ecc224 14226 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
f848237b 14227 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
14228 (altivec_vmrghb): Replace with define_expand and new
24ecc224 14229 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
f848237b 14230 (altivec_vmrghb_direct): New define_insn.
14231 (altivec_vmrghh): Replace with define_expand and new
24ecc224 14232 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
f848237b 14233 (altivec_vmrghh_direct): New define_insn.
14234 (altivec_vmrghw): Replace with define_expand and new
24ecc224 14235 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
f848237b 14236 (altivec_vmrghw_direct): New define_insn.
14237 (*altivec_vmrghsf): Adjust for endianness.
14238 (altivec_vmrglb): Replace with define_expand and new
24ecc224 14239 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
f848237b 14240 (altivec_vmrglb_direct): New define_insn.
14241 (altivec_vmrglh): Replace with define_expand and new
24ecc224 14242 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
f848237b 14243 (altivec_vmrglh_direct): New define_insn.
14244 (altivec_vmrglw): Replace with define_expand and new
24ecc224 14245 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
f848237b 14246 (altivec_vmrglw_direct): New define_insn.
14247 (*altivec_vmrglsf): Adjust for endianness.
14248 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
14249 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
14250 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
14251 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
14252 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
14253 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
14254 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
14255 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
14256
e79f23c4 142572014-01-29 Marcus Shawcroft <marcus.shawcroft@arm.com>
14258
14259 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
14260 (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
14261 whitespace.
14262
b904104c 142632014-01-29 Richard Biener <rguenther@suse.de>
14264
14265 PR tree-optimization/58742
14266 * tree-ssa-forwprop.c (associate_pointerplus): Rename to
14267 associate_pointerplus_align.
14268 (associate_pointerplus_diff): New function.
14269 (associate_pointerplus): Likewise. Call associate_pointerplus_align
14270 and associate_pointerplus_diff.
14271
3dbd6a28 142722014-01-29 Richard Biener <rguenther@suse.de>
14273
14274 * lto-streamer.h (LTO_major_version): Bump to 3.
14275 (LTO_minor_version): Reset to 0.
14276
67127400 142772014-01-29 Renlin Li <Renlin.Li@arm.com>
14278
14279 * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
14280 * config/arm/arm.c (FL_FOR_ARCH7VE): New.
14281 (arm_file_start): Generate correct asm header for armv7ve.
14282 * config/arm/bpabi.h: Add multilib support for armv7ve.
14283 * config/arm/driver-arm.c: Change the architectures of cortex-a7
14284 and cortex-a15 to armv7ve.
14285 * config/arm/t-aprofile: Add multilib support for armv7ve.
14286 * doc/invoke.texi: Document -march=armv7ve.
14287
5a423a75 142882014-01-29 Richard Biener <rguenther@suse.de>
14289
14290 PR tree-optimization/58742
14291 * tree-ssa-forwprop.c (associate_plusminus): Return true
14292 if we changed sth, defer EH cleanup to ...
14293 (ssa_forward_propagate_and_combine): ... here. Call simplify_mult.
14294 (simplify_mult): New function.
14295
2975871c 142962014-01-29 Jakub Jelinek <jakub@redhat.com>
14297
b2c0e0b7 14298 PR middle-end/59917
14299 PR tree-optimization/59920
14300 * tree.c (build_common_builtin_nodes): Remove
14301 __builtin_setjmp_dispatcher initialization.
14302 * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
14303 * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
14304 instead of gsi_after_labels + manually skipping debug stmts.
14305 Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
14306 ignore bbs with IFN_ABNORMAL_DISPATCHER.
14307 * tree-inline.c (copy_edges_for_bb): Remove
14308 can_make_abnormal_goto argument, instead add abnormal_goto_dest
14309 argument. Ignore computed_goto_p stmts. Don't call
14310 make_abnormal_goto_edges. If a call might need abnormal edges
14311 for non-local gotos, see if it already has an edge to
14312 IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
14313 with true argument, don't do anything then, otherwise add
14314 EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
14315 (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
14316 caller.
14317 * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
14318 (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
14319 (lower_stmt): Don't set data->calls_builtin_setjmp.
14320 (lower_builtin_setjmp): Adjust comment.
14321 * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
14322 * tree-cfg.c (found_computed_goto): Remove.
14323 (factor_computed_gotos): Remove.
14324 (make_goto_expr_edges): Return bool, true for computed gotos.
14325 Don't call make_abnormal_goto_edges.
14326 (build_gimple_cfg): Don't set found_computed_goto, don't call
14327 factor_computed_gotos.
14328 (computed_goto_p): No longer static.
14329 (make_blocks): Don't set found_computed_goto.
14330 (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
14331 (make_edges): If make_goto_expr_edges returns true, push bb
14332 into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
14333 instead of calling make_abnormal_goto_edges push bb into ab_edge_call
14334 vector. Record mapping between bbs and OpenMP regions if there
14335 are any, adjust make_gimple_omp_edges caller. Call
14336 handle_abnormal_edges.
14337 (make_abnormal_goto_edges): Remove.
14338 * tree-cfg.h (make_abnormal_goto_edges): Remove.
14339 (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
14340 * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
24ecc224 14341 * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
b2c0e0b7 14342 * internal-fn.def (ABNORMAL_DISPATCHER): New.
14343 * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
14344 filling *region also set *region_idx to (*region)->entry->index.
14345
2975871c 14346 PR other/58712
14347 * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
14348 For REGs set ORIGINAL_REGNO.
14349
6a1d4887 143502014-01-29 Bingfeng Mei <bmei@broadcom.com>
14351
24ecc224 14352 * doc/md.texi: Mention that a target shouldn't implement
6a1d4887 14353 vec_widen_(s|u)mul_even/odd pair if it is less efficient
14354 than hi/lo pair.
14355
863a3781 143562014-01-29 Jakub Jelinek <jakub@redhat.com>
14357
14358 PR tree-optimization/59594
14359 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
14360 a copy of the datarefs vector rather than the vector itself.
14361
18bb3b80 143622014-01-28 Jason Merrill <jason@redhat.com>
14363
14364 PR c++/53756
14365 * dwarf2out.c (auto_die): New static.
14366 (gen_type_die_with_usage): Handle C++1y 'auto'.
14367 (gen_subprogram_die): If in-class DIE had 'auto', emit type again
14368 on definition.
14369
85389e19 143702014-01-28 H.J. Lu <hongjiu.lu@intel.com>
14371
14372 PR target/59672
14373 * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
14374 (SPEC_X32): Likewise.
14375 (SPEC_64): Likewise.
14376 * config/i386/i386.c (ix86_option_override_internal): Turn off
14377 OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
14378 for TARGET_16BIT.
14379 (x86_file_start): Output .code16gcc for TARGET_16BIT.
14380 * config/i386/i386.h (TARGET_16BIT): New macro.
14381 (TARGET_16BIT_P): Likewise.
14382 * config/i386/i386.opt: Add m16.
14383 * doc/invoke.texi: Document -m16.
14384
9e8234d0 143852014-01-28 Jakub Jelinek <jakub@redhat.com>
14386
14387 PR preprocessor/59935
14388 * input.c (location_get_source_line): Bail out on when line number
24ecc224 14389 is zero, and test the return value of lookup_or_add_file_to_cache_tab.
9e8234d0 14390
c223850c 143912014-01-28 Richard Biener <rguenther@suse.de>
14392
14393 PR tree-optimization/58742
14394 * tree-ssa-forwprop.c (associate_plusminus): Handle
14395 pointer subtraction of the form (T)(P + A) - (T)P.
14396
6f1e7264 143972014-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14398
14399 * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
14400 at const_int_cost.
14401
6bdbd138 144022014-01-28 Richard Biener <rguenther@suse.de>
14403
14404 Revert
14405 2014-01-28 Richard Biener <rguenther@suse.de>
14406
14407 PR rtl-optimization/45364
14408 PR rtl-optimization/59890
14409 * var-tracking.c (local_get_addr_clear_given_value): Handle
14410 already cleared slot.
14411 (val_reset): Handle not allocated local_get_addr_cache.
14412 (vt_find_locations): Use post-order on the inverted CFG.
14413
4060ba27 144142014-01-28 Richard Biener <rguenther@suse.de>
14415
24ecc224 14416 * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
4060ba27 14417
64eb97fb 144182014-01-28 Richard Biener <rguenther@suse.de>
14419
14420 PR rtl-optimization/45364
14421 PR rtl-optimization/59890
14422 * var-tracking.c (local_get_addr_clear_given_value): Handle
14423 already cleared slot.
14424 (val_reset): Handle not allocated local_get_addr_cache.
14425 (vt_find_locations): Use post-order on the inverted CFG.
14426
18350b2e 144272014-01-28 Alan Modra <amodra@gmail.com>
14428
14429 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
14430 * configure.ac <recursive call for build != host>: Define
14431 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
14432 and LD_FOR_BUILD too.
14433 * configure: Regenerate.
14434
b17a1fa8 144352014-01-27 Allan Sandfeld Jensen <sandfeld@kde.org>
14436
14437 * config/i386/i386.c (get_builtin_code_for_version): Separate
14438 Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
14439 Broadwell from Haswell.
14440
d0f587ec 144412014-01-27 Steve Ellcey <sellcey@mips.com>
14442
14443 * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
14444 Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
14445 * config/mips/mips.c (mips_option_override): Change setting
14446 of TARGET_DSP.
14447 * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
b17a1fa8 14448 * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
14449 Change from Mask to Var.
d0f587ec 14450
8a8639b6 144512014-01-27 Jeff Law <law@redhat.com>
14452
14453 * ipa-inline.c (inline_small_functions): Fix typo.
14454
f4a19f2a 144552014-01-27 Ilya Tocar <ilya.tocar@intel.com>
14456
14457 * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
14458 (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
14459 (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
14460 (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
14461 (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
14462 (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
14463 (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
14464 (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
14465 (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
14466 (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
14467 (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
14468 (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
14469 (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
14470 (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
14471 (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
14472 (_mm512_storeu_epi64): Ditto.
14473 (_mm512_cmpge_epi32_mask): Ditto.
14474 (_mm512_cmpge_epu32_mask): Ditto.
14475 (_mm512_cmpge_epi64_mask): Ditto.
14476 (_mm512_cmpge_epu64_mask): Ditto.
14477 (_mm512_cmple_epi32_mask): Ditto.
14478 (_mm512_cmple_epu32_mask): Ditto.
14479 (_mm512_cmple_epi64_mask): Ditto.
14480 (_mm512_cmple_epu64_mask): Ditto.
14481 (_mm512_cmplt_epi32_mask): Ditto.
14482 (_mm512_cmplt_epu32_mask): Ditto.
14483 (_mm512_cmplt_epi64_mask): Ditto.
14484 (_mm512_cmplt_epu64_mask): Ditto.
14485 (_mm512_cmpneq_epi32_mask): Ditto.
14486 (_mm512_cmpneq_epu32_mask): Ditto.
14487 (_mm512_cmpneq_epi64_mask): Ditto.
14488 (_mm512_cmpneq_epu64_mask): Ditto.
14489 (_mm512_expand_pd): Ditto.
14490 (_mm512_expand_ps): Ditto.
14491 * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
14492 VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
14493 VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
14494 * config/i386/i386.c (ix86_builtins): Add
14495 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
14496 IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
14497 IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
14498 IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
14499 IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
14500 IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
14501 IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
14502 IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
14503 IX86_BUILTIN_PMOVUSQW512_MEM.
14504 (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
14505 __builtin_ia32_pmovsqd512mem_mask,
14506 __builtin_ia32_pmovqd512mem_mask,
14507 __builtin_ia32_pmovusqw512mem_mask,
14508 __builtin_ia32_pmovsqw512mem_mask,
14509 __builtin_ia32_pmovqw512mem_mask,
14510 __builtin_ia32_pmovusdw512mem_mask,
14511 __builtin_ia32_pmovsdw512mem_mask,
14512 __builtin_ia32_pmovdw512mem_mask,
14513 __builtin_ia32_pmovqb512mem_mask,
14514 __builtin_ia32_pmovusqb512mem_mask,
14515 __builtin_ia32_pmovsqb512mem_mask,
14516 __builtin_ia32_pmovusdb512mem_mask,
14517 __builtin_ia32_pmovsdb512mem_mask,
14518 __builtin_ia32_pmovdb512mem_mask.
14519 (bdesc_args): Add __builtin_ia32_expanddf512,
14520 __builtin_ia32_expandsf512.
14521 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
14522 VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
14523 VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
14524 * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
14525 (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
14526 (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
14527 (avx512f_<code>v8div16qi2_mask_store): This.
14528 (avx512f_expand<mode>): New.
14529
0daf3bbe 145302014-01-27 Kirill Yukhin <kirill.yukhin@intel.com>
14531
ea47f46c 14532 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
b17a1fa8 14533 New.
0daf3bbe 14534 (_mm512_mask_prefetch_i64gather_pd): Ditto.
14535 (_mm512_prefetch_i32scatter_pd): Ditto.
14536 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
14537 (_mm512_prefetch_i64scatter_pd): Ditto.
14538 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
14539 (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
14540 (_mm512_mask_prefetch_i64gather_ps): Ditto.
14541 (_mm512_prefetch_i32scatter_ps): Ditto.
14542 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
14543 (_mm512_prefetch_i64scatter_ps): Ditto.
14544 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
14545 * config/i386/i386-builtin-types.def: Define
b17a1fa8 14546 VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
14547 and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
0daf3bbe 14548 * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
14549 IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
14550 IX86_BUILTIN_SCATTERPFQPD.
14551 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
14552 __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
14553 __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
14554 __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
14555 __builtin_ia32_scatterpfqps.
14556 (ix86_expand_builtin): Expand new built-ins.
14557 * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
14558 fix memory access data type.
14559 (*avx512pf_gatherpf<mode>_mask): Ditto.
14560 (*avx512pf_gatherpf<mode>): Ditto.
14561 (avx512pf_scatterpf<mode>): Ditto.
14562 (*avx512pf_scatterpf<mode>_mask): Ditto.
14563 (*avx512pf_scatterpf<mode>): Ditto.
14564 (GATHER_SCATTER_SF_MEM_MODE): New.
14565 (avx512pf_gatherpf<mode>df): Ditto.
14566 (*avx512pf_gatherpf<mode>df_mask): Ditto.
14567 (*avx512pf_scatterpf<mode>df): Ditto.
14568
a5ce6046 145692014-01-27 Jakub Jelinek <jakub@redhat.com>
14570
14571 PR bootstrap/59934
14572 * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
14573 know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
14574 reached.
14575
7b2c45ae 145762014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
14577
14578 * common/config/arm/arm-common.c
14579 (arm_rewrite_mcpu): Handle multiple names.
14580 * config/arm/arm.h
14581 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
14582
01b7a8ce 145832014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
14584
14585 * gimple-builder.h (create_gimple_tmp): Delete.
14586
42e035a5 145872014-01-27 Christian Bruel <christian.bruel@st.com>
14588
14589 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
14590 words comparisons.
14591
1688a966 145922014-01-26 John David Anglin <danglin@gcc.gnu.org>
14593
68385542 14594 * config/pa/pa.md (call): Generate indirect long calls to non-local
14595 functions when outputing 32-bit code.
14596 (call_value): Likewise except for special call to buggy powf function.
14597
1688a966 14598 * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
14599 portable runtime and PIC indirect calls.
14600 (pa_output_indirect_call): Remove unnecessary nop from portable runtime
14601 and PIC call sequences. Use ldo instead of blr to set return register
14602 in PIC call sequence.
14603
b1bd31f5 146042014-01-25 Walter Lee <walt@tilera.com>
14605
14606 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
14607 avoid clobbering a live register.
14608
50fa19e4 146092014-01-25 Walter Lee <walt@tilera.com>
14610
42e035a5 14611 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
50fa19e4 14612 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
42e035a5 14613 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
50fa19e4 14614 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
14615
ba24c653 146162014-01-25 Walter Lee <walt@tilera.com>
14617
14618 * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
14619 arguments on even registers.
14620 (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
14621 STACK_BOUNDARY.
14622 * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
14623 (BIGGEST_ALIGNMENT): Ditto.
14624 (BIGGEST_FIELD_ALIGNMENT): Ditto.
14625
4231cb46 146262014-01-25 Walter Lee <walt@tilera.com>
14627
14628 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
14629 insns before bundling.
b17a1fa8 14630 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
4231cb46 14631
cfbf78c0 146322014-01-25 Walter Lee <walt@tilera.com>
14633
14634 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
14635 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
14636 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
030ad6c7 14637
cfbf78c0 146382014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
42e035a5 14639
030ad6c7 14640 * config/mips/constraints.md (kl): Delete.
14641 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
14642 define expands, using...
14643 (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
14644 instructions for MIPS16.
14645 (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
14646 non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
14647
9433582b 146482014-01-25 Walter Lee <walt@tilera.com>
14649
b17a1fa8 14650 * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
9433582b 14651 (clzdi2): Ditto.
14652 (ffsdi2): Ditto.
14653
ce51867b 146542014-01-25 Walter Lee <walt@tilera.com>
14655
14656 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
14657 (TARGET_EXPAND_TO_RTL_HOOK): Define.
14658
d7f4ca1d 146592014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
14660
14661 * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
14662 Handle XOR.
14663
a5229641 146642014-01-25 Jakub Jelinek <jakub@redhat.com>
14665
7c3f3cf3 14666 * print-rtl.c (in_call_function_usage): New var.
14667 (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
14668 EXPR_LIST mode as mode and not as reg note name.
14669
a5229641 14670 PR middle-end/59561
14671 * cfgloopmanip.c (copy_loop_info): If
14672 loop->warned_aggressive_loop_optimizations, make sure
14673 the flag is set in target loop too.
14674
a89e6c15 146752014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
14676
14677 * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
14678 flag_cilkplus.
14679 * builtins.def: Likewise.
14680 * cilk.h (fn_contains_cilk_spawn_p): Likewise.
14681 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
14682 * ira.c (ira_setup_eliminable_regset): Likewise.
14683 * omp-low.c (gate_expand_omp): Likewise.
14684 (execute_lower_omp): Likewise.
14685 (diagnose_sb_0): Likewise.
14686 (gate_diagnose_omp_blocks): Likewise.
14687 (simd_clone_clauses_extract): Likewise.
14688 (gate): Likewise.
14689
bc9669de 146902014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14691
14692 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
14693 correction for little endian...
14694 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
14695 here.
14696
d3d3f7c2 146972014-01-24 Jeff Law <law@redhat.com>
14698
14699 PR tree-optimization/59919
14700 * tree-vrp.c (find_assert_locations_1): Do not register asserts
14701 for non-returning calls.
14702
5f273397 147032014-01-24 James Greenhalgh <james.greenhalgh@arm.com>
14704
14705 * common/config/aarch64/aarch64-common.c
14706 (aarch64_rewrite_mcpu): Handle multiple names.
14707 * config/aarch64/aarch64.h
14708 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
14709
c1cc4419 147102014-01-24 Dodji Seketeli <dodji@redhat.com>
14711
14712 * input.c (add_file_to_cache_tab): Handle the case where fopen
14713 returns NULL.
14714
d5ad33f7 147152014-01-23 H.J. Lu <hongjiu.lu@intel.com>
14716
14717 PR target/59929
14718 * config/i386/i386.md (pushsf splitter): Get stack adjustment
14719 from push operand if code of push isn't PRE_DEC.
14720
1c09f133 147212014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
14722
14723 PR target/59909
14724 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
14725 -mquad-memory-atomic. Update -mquad-memory documentation to say
14726 it is only used for non-atomic loads/stores.
14727
14728 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
14729 -mquad-memory or -mquad-memory-atomic switches.
14730
14731 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
14732 -mquad-memory-atomic to ISA 2.07 support.
14733
14734 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
b17a1fa8 14735 to separate support of normal quad word memory operations (ldq, stq)
14736 from the atomic quad word memory operations.
1c09f133 14737
14738 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
14739 support to separate non-atomic quad word operations from atomic
14740 quad word operations. Disable non-atomic quad word operations in
14741 little endian mode so that we don't have to swap words after the
14742 load and before the store.
14743 (quad_load_store_p): Add comment about atomic quad word support.
14744 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
14745 options printed with -mdebug=reg.
14746
14747 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
14748 -mquad-memory-atomic as the test for whether we have quad word
14749 atomic instructions.
b17a1fa8 14750 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
14751 or -mp8-vector are used, allow byte/half-word atomic operations.
1c09f133 14752
14753 * config/rs6000/sync.md (load_lockedti): Insure that the address
14754 is a proper indexed or indirect address for the lqarx instruction.
14755 On little endian systems, swap the hi/lo registers after the lqarx
14756 instruction.
14757 (load_lockedpti): Use indexed_or_indirect_operand predicate to
14758 insure the address is valid for the lqarx instruction.
14759 (store_conditionalti): Insure that the address is a proper indexed
14760 or indirect address for the stqcrx. instruction. On little endian
14761 systems, swap the hi/lo registers before doing the stqcrx.
14762 instruction.
14763 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
14764 insure the address is valid for the stqcrx. instruction.
14765
14766 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
14767 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
14768 type of quad memory support is available.
14769
9c8190ea 147702014-01-23 Vladimir Makarov <vmakarov@redhat.com>
14771
14772 PR regression/59915
14773 * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
14774 there is a danger of looping.
14775
b8e59d03 147762014-01-23 Pat Haugen <pthaugen@us.ibm.com>
14777
14778 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
14779 force flag_ira_loop_pressure if set via command line.
14780
33fb2095 147812014-01-23 Alex Velenko <Alex.Velenko@arm.com>
14782
14783 * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
14784 (ashr_simd): New builtin handling DI mode.
14785 * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
14786 (aarch64_sshr_simddi): New match pattern.
14787 * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
14788 (vshrd_n_s64): Likewise.
14789 * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
14790
0adeb1f8 147912014-01-23 Nick Clifton <nickc@redhat.com>
14792
14793 * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
14794 (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
14795 favour of mcu specific scripts.
14796 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
14797 430x multilibs.
14798
0bfd8599 147992014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
14800 Alex Velenko <Alex.Velenko@arm.com>
14801
14802 * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
14803 (vaddv_s16): Likewise.
14804 (vaddv_s32): Likewise.
14805 (vaddv_u8): Likewise.
14806 (vaddv_u16): Likewise.
14807 (vaddv_u32): Likewise.
14808 (vaddvq_s8): Likewise.
14809 (vaddvq_s16): Likewise.
14810 (vaddvq_s32): Likewise.
14811 (vaddvq_s64): Likewise.
14812 (vaddvq_u8): Likewise.
14813 (vaddvq_u16): Likewise.
14814 (vaddvq_u32): Likewise.
14815 (vaddvq_u64): Likewise.
14816 (vaddv_f32): Likewise.
14817 (vaddvq_f32): Likewise.
14818 (vaddvq_f64): Likewise.
14819 (vmaxv_f32): Likewise.
14820 (vmaxv_s8): Likewise.
14821 (vmaxv_s16): Likewise.
14822 (vmaxv_s32): Likewise.
14823 (vmaxv_u8): Likewise.
14824 (vmaxv_u16): Likewise.
14825 (vmaxv_u32): Likewise.
14826 (vmaxvq_f32): Likewise.
14827 (vmaxvq_f64): Likewise.
14828 (vmaxvq_s8): Likewise.
14829 (vmaxvq_s16): Likewise.
14830 (vmaxvq_s32): Likewise.
14831 (vmaxvq_u8): Likewise.
14832 (vmaxvq_u16): Likewise.
14833 (vmaxvq_u32): Likewise.
14834 (vmaxnmv_f32): Likewise.
14835 (vmaxnmvq_f32): Likewise.
14836 (vmaxnmvq_f64): Likewise.
14837 (vminv_f32): Likewise.
14838 (vminv_s8): Likewise.
14839 (vminv_s16): Likewise.
14840 (vminv_s32): Likewise.
14841 (vminv_u8): Likewise.
14842 (vminv_u16): Likewise.
14843 (vminv_u32): Likewise.
14844 (vminvq_f32): Likewise.
14845 (vminvq_f64): Likewise.
14846 (vminvq_s8): Likewise.
14847 (vminvq_s16): Likewise.
14848 (vminvq_s32): Likewise.
14849 (vminvq_u8): Likewise.
14850 (vminvq_u16): Likewise.
14851 (vminvq_u32): Likewise.
14852 (vminnmv_f32): Likewise.
14853 (vminnmvq_f32): Likewise.
14854 (vminnmvq_f64): Likewise.
14855
c034024c 148562014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
14857
14858 * config/aarch64/aarch64-simd.md
14859 (aarch64_dup_lane<mode>): Correct lane number on big-endian.
14860 (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
14861 (*aarch64_mul3_elt<mode>): Likewise.
14862 (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
14863 (*aarch64_mul3_elt_to_64v2df): Likewise.
14864 (*aarch64_mla_elt<mode>): Likewise.
14865 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
14866 (*aarch64_mls_elt<mode>): Likewise.
14867 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
14868 (*aarch64_fma4_elt<mode>): Likewise.
14869 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
14870 (*aarch64_fma4_elt_to_64v2df): Likewise.
14871 (*aarch64_fnma4_elt<mode>): Likewise.
14872 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
14873 (*aarch64_fnma4_elt_to_64v2df): Likewise.
14874 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
14875 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
14876 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
14877 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
14878 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
14879 (aarch64_sqdmull_lane<mode>_internal): Likewise.
14880 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
14881
b3f72a34 148822013-01-23 Alex Velenko <Alex.Velenko@arm.com>
14883
14884 * config/aarch64/aarch64-simd.md
14885 (aarch64_be_checked_get_lane<mode>): New define_expand.
14886 * config/aarch64/aarch64-simd-builtins.def
b17a1fa8 14887 (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
b3f72a34 14888 New builtin definition.
14889 * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
14890 Use new safe be builtin.
14891
c2259249 148922014-01-23 Alex Velenko <Alex.Velenko@arm.com>
14893
14894 * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
14895 New define_insn.
14896 (aarch64_be_st1<mode>): Likewise.
14897 (aarch_ld1<VALL:mode>): Define_expand modified.
14898 (aarch_st1<VALL:mode>): Likewise.
14899 * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
14900 (UNSPEC_ST1): Likewise.
14901
6e70f6fb 149022014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
deed735a 14903
14904 * config/microblaze/microblaze.md: Add trap insn and attribute
14905
ffc2c526 149062014-01-23 Dodji Seketeli <dodji@redhat.com>
14907
14908 PR preprocessor/58580
14909 * input.h (location_get_source_line): Take an additional line_size
14910 parameter.
14911 (void diagnostics_file_cache_fini): Declare new function.
14912 * input.c (struct fcache): New type.
14913 (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
14914 New static constants.
14915 (diagnostic_file_cache_init, total_lines_num)
14916 (lookup_file_in_cache_tab, evicted_cache_tab_entry)
14917 (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
14918 (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
14919 (get_next_line, read_next_line, goto_next_line, read_line_num):
14920 New static function definitions.
14921 (diagnostic_file_cache_fini): New function.
14922 (location_get_source_line): Take an additional output line_len
14923 parameter. Re-write using lookup_or_add_file_to_cache_tab and
14924 read_line_num.
14925 * diagnostic.c (diagnostic_finish): Call
14926 diagnostic_file_cache_fini.
14927 (adjust_line): Take an additional input parameter for the length
14928 of the line, rather than calculating it with strlen.
14929 (diagnostic_show_locus): Adjust the use of
14930 location_get_source_line and adjust_line with respect to their new
14931 signature. While displaying a line now, do not stop at the first
14932 null byte. Rather, display the zero byte as a space and keep
14933 going until we reach the size of the line.
14934 * Makefile.in: Add vec.o to OBJS-libcommon
14935
765faa80 149362014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
e1dbb208 14937 Ilya Tocar <ilya.tocar@intel.com>
765faa80 14938
14939 * config/i386/avx512fintrin.h (_mm512_kmov): New.
14940 * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
14941 (__builtin_ia32_kmov16): Ditto.
14942 * config/i386/i386.md (UNSPEC_KMOV): New.
14943 (kmovw): Ditto.
14944
3e8ed1e8 149452014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
14946
14947 * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
14948 (_mm512_storeu_si512): Ditto.
14949
431cd7a8 149502014-01-23 Richard Sandiford <rdsandiford@googlemail.com>
14951
14952 PR target/52125
14953 * rtl.h (get_referenced_operands): Declare.
14954 * recog.c (get_referenced_operands): New function.
14955 * config/mips/mips.c (mips_reorg_process_insns): Check which asm
14956 operands have been referenced when recording LO_SUM references.
14957
6e70f6fb 149582014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
2a18cf55 14959
14960 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
14961
abcb2cab 149622014-01-22 Jan Hubicka <hubicka@ucw.cz>
283bfef2 14963
14964 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
14965 Enable for generic and recent AMD targets.
14966
abcb2cab 149672014-01-22 Jan Hubicka <hubicka@ucw.cz>
90b77b23 14968
14969 * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
14970 ARG_SIZE note when adjustment was eliminated.
14971
b93ba654 149722014-01-22 Jeff Law <law@redhat.com>
14973
14974 PR tree-optimization/59597
14975 * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
14976 in file. Accept new argument REGISTERING and use it to modify
14977 dump output appropriately.
14978 (register_jump_thread): Corresponding changes.
14979 (mark_threaded_blocks): Reinstate code to cancel unprofitable
14980 thread paths involving joiner blocks. Add code to dump cancelled
14981 jump threading paths.
14982
422470c1 149832014-01-22 Vladimir Makarov <vmakarov@redhat.com>
14984
14985 PR rtl-optimization/59477
14986 * lra-constraints.c (inherit_in_ebb): Process call for living hard
b17a1fa8 14987 regs. Update reloads_num and potential_reload_hard_regs for all insns.
422470c1 14988
09c23508 149892014-01-22 Tom Tromey <tromey@redhat.com>
14990
14991 * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
14992 PARAMS.
14993 * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
14994
fe5cb3e1 149952014-01-21 Vladimir Makarov <vmakarov@redhat.com>
14996
14997 PR rtl-optimization/59896
14998 * lra-constraints.c (process_alt_operands): Check unused note for
14999 matched operands of insn with no output reloads.
15000
f4b82dcb 150012014-01-21 Richard Sandiford <rdsandiford@googlemail.com>
15002
15003 * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
15004 (mips_move_from_gpr_cost): Likewise.
15005
4f428208 150062014-01-21 Vladimir Makarov <vmakarov@redhat.com>
15007
15008 PR rtl-optimization/59858
15009 * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
15010 ira_class_hard_regs_num.
15011 (process_alt_operands): Increase reject for dying matched operand.
15012
36cdb2ab 150132014-01-21 Jakub Jelinek <jakub@redhat.com>
15014
15015 PR target/59003
15016 * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
15017 smaller than size, perform several stores or loads and stores
15018 at dst + count - size to store or copy all of size bytes, rather
15019 than just last modesize bytes.
15020
9aea9676 150212014-01-20 DJ Delorie <dj@redhat.com>
15022
15023 * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
15024 that CLOBBERs are REGs before propogating their values.
15025
4f13e575 150262014-01-20 H.J. Lu <hongjiu.lu@intel.com>
15027
15028 PR middle-end/59789
15029 * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
15030 (cgraph_inline_failed_type): New function.
15031 * cgraph.h (DEFCIFCODE): Add type.
15032 (cgraph_inline_failed_type_t): New enum.
15033 (cgraph_inline_failed_type): New prototype.
15034 * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
15035 FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
15036 FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
15037 LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
15038 MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
15039 RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
15040 OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
b17a1fa8 15041 INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
4f13e575 15042 Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
15043 FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
15044 EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
15045 OPTIMIZATION_MISMATCH.
15046 * tree-inline.c (expand_call_inline): Emit errors during
b17a1fa8 15047 early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
4f13e575 15048
f5d830da 150492014-01-20 Uros Bizjak <ubizjak@gmail.com>
15050
15051 PR target/59685
15052 * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
15053 mode attribute in insn output.
15054
c2db721a 150552014-01-20 Eric Botcazou <ebotcazou@adacore.com>
15056
15057 * output.h (output_constant): Delete.
15058 * varasm.c (output_constant): Make private.
15059
6c3b9b79 150602014-01-20 Alex Velenko <Alex.Velenko@arm.com>
15061
15062 * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
15063
b65555c1 150642014-01-20 Jakub Jelinek <jakub@redhat.com>
15065
15066 PR middle-end/59860
15067 * tree.h (fold_builtin_strcat): New prototype.
15068 * builtins.c (fold_builtin_strcat): No longer static. Add len
15069 argument, if non-NULL, don't call c_strlen. Optimize
15070 directly into __builtin_memcpy instead of __builtin_strcpy.
15071 (fold_builtin_2): Adjust fold_builtin_strcat caller.
15072 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
15073
98fbe28d 150742014-01-20 Uros Bizjak <ubizjak@gmail.com>
15075
15076 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
15077 for SImode_address_operand operands, having only a REG argument.
15078
33a9ec13 150792014-01-20 Marcus Shawcroft <marcus.shawcroft@arm.com>
15080
15081 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
15082 loader name using mbig-endian.
15083 (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
15084
03218544 150852014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
15086
15087 * doc/invoke.texi (-march): Clarify documentation for AArch64.
15088 (-mtune): Likewise.
15089 (-mcpu): Likewise.
15090
b18c9f75 150912014-01-20 Tejas Belagod <tejas.belagod@arm.com>
15092
15093 * config/aarch64/aarch64-protos.h
15094 (aarch64_cannot_change_mode_class_ptr): Declare.
15095 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
15096 aarch64_cannot_change_mode_class_ptr): New.
15097 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
15098 backend hook aarch64_cannot_change_mode_class.
15099
03189b5b 151002014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
15101
15102 * common/config/aarch64/aarch64-common.c
15103 (aarch64_handle_option): Don't handle any option order logic here.
15104 * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
15105 selected_cpu, warn on architecture version mismatch.
15106 (aarch64_override_options): Fix parsing order for option strings.
15107
8ef52e35 151082014-01-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
15109 Iain Sandoe <iain@codesourcery.com>
15110
15111 PR bootstrap/59496
15112 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
15113 warning. Amend comment to reflect current functionality.
15114
d4addd98 151152014-01-20 Richard Biener <rguenther@suse.de>
15116
15117 PR middle-end/59860
15118 * builtins.c (fold_builtin_strcat): Remove case better handled
15119 by tree-ssa-strlen.c.
15120
87416710 151212014-01-20 Alan Lawrence <alan.lawrence@arm.com>
15122
15123 * config/aarch64/aarch64.opt
15124 (mcpu, march, mtune): Make case-insensitive.
15125
bfe1a13d 151262014-01-20 Jakub Jelinek <jakub@redhat.com>
15127
15128 PR target/59880
15129 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
15130 if operands[1] is a REG or ZERO_EXTEND of a REG.
15131
abcb2cab 151322014-01-19 Jan Hubicka <hubicka@ucw.cz>
153784de 15133
15134 * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
15135
8ff5fb9b 151362014-01-19 John David Anglin <danglin@gcc.gnu.org>
15137
15138 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
15139 long non-pic millicode calls.
15140
abe8007e 151412014-01-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
15142
15143 * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
15144
b2ecd15d 151452014-01-19 Kito Cheng <kito@0xlab.org>
15146
15147 * builtins.c (expand_movstr): Check movstr expand done or fail.
15148
506a92bc 151492014-01-18 Uros Bizjak <ubizjak@gmail.com>
15150 H.J. Lu <hongjiu.lu@intel.com>
15151
15152 PR target/59379
15153 * config/i386/i386.md (*lea<mode>): Zero-extend return register
15154 to DImode for zero-extended addresses.
15155
4aadd22a 151562014-01-19 Jakub Jelinek <jakub@redhat.com>
15157
15158 PR rtl-optimization/57763
15159 * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
15160 on the new indirect jump_insn and increment LABEL_NUSES (label).
15161
506a92bc 151622014-01-18 H.J. Lu <hongjiu.lu@intel.com>
f292755a 15163
15164 PR bootstrap/59580
15165 PR bootstrap/59583
15166 * config.gcc (x86_archs): New variable.
15167 (x86_64_archs): Likewise.
15168 (x86_cpus): Likewise.
15169 Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
15170 --with-arch/--with-cpu= options.
15171 Support --with-arch=/--with-cpu={nehalem,westmere,
15172 sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
15173
7466df22 151742014-01-18 Uros Bizjak <ubizjak@gmail.com>
15175
15176 * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
15177 and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
15178
151792014-01-18 Uros Bizjak <ubizjak@gmail.com>
15180
15181 * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
15182
9d1464c1 151832014-01-18 Jakub Jelinek <jakub@redhat.com>
15184
15185 PR target/58944
15186 * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
15187 clear cpp_get_options (parse_in)->warn_unused_macros for
15188 ix86_target_macros_internal with cpp_define.
15189
8ef42ff5 151902014-01-18 Richard Sandiford <rdsandiford@googlemail.com>
15191
15192 * jump.c (delete_related_insns): Keep (use (insn))s.
15193 * reorg.c (redundant_insn): Check for barriers too.
15194
084a8261 151952014-01-17 H.J. Lu <hongjiu.lu@intel.com>
15196
7466df22 15197 * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
084a8261 15198
fc787388 151992014-01-17 John David Anglin <danglin@gcc.gnu.org>
15200
15201 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
15202 call to $$dyncall when TARGET_LONG_CALLS is true.
15203
f3898655 152042014-01-17 Jeff Law <law@redhat.com>
15205
15206 * ree.c (combine_set_extension): Temporarily disable test for
15207 changing number of hard registers.
15208
abcb2cab 152092014-01-17 Jan Hubicka <hubicka@ucw.cz>
0c064175 15210
15211 PR middle-end/58125
15212 * ipa-inline-analysis.c (inline_free_summary):
15213 Do not free summary of aliases.
15214
c291d34a 152152014-01-17 Jakub Jelinek <jakub@redhat.com>
15216
15217 PR middle-end/59706
15218 * gimplify.c (gimplify_expr): Use create_tmp_var
15219 instead of create_tmp_var_raw. If cond doesn't have
15220 integral type, don't add the IFN_ANNOTATE builtin at all.
15221
948ccfa6 152222014-01-17 Martin Jambor <mjambor@suse.cz>
15223
15224 PR ipa/59736
15225 * ipa-cp.c (prev_edge_clone): New variable.
15226 (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
15227 Also resize prev_edge_clone vector.
15228 (ipcp_edge_duplication_hook): Also update prev_edge_clone.
15229 (ipcp_edge_removal_hook): New function.
15230 (ipcp_driver): Register ipcp_edge_removal_hook.
15231
6e70f6fb 152322014-01-17 Andrew Pinski <apinski@cavium.com>
fb81c1ba 15233 Steve Ellcey <sellcey@mips.com>
15234
15235 PR target/59462
15236 * config/mips/mips.c (mips_print_operand): Check operand mode instead
15237 of operator mode.
15238
b2e502cd 152392014-01-17 Jeff Law <law@redhat.com>
15240
15241 PR middle-end/57904
15242 * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
15243 so that pass_ccp runs first.
15244
49372306 152452014-01-17 H.J. Lu <hongjiu.lu@intel.com>
15246
15247 * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
15248 (ix86_adjust_cost): Use !TARGET_XXX.
15249 (do_reorder_for_imul): Likewise.
15250 (swap_top_of_ready_list): Likewise.
15251 (ix86_sched_reorder): Likewise.
15252
2ea5890d 152532014-01-17 H.J. Lu <hongjiu.lu@intel.com>
15254
15255 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
15256 PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC.
15257 * config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy.
15258 (intel_memset): New. Duplicate slm_memset.
15259 (intel_cost): New. Duplicate slm_cost.
15260 (m_INTEL): New macro.
15261 (processor_target_table): Add "intel".
15262 (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
15263 with PROCESSOR_INTEL for "intel".
15264 (ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate
15265 PROCESSOR_SILVERMONT.
2ea5890d 15266 (ix86_issue_rate): Likewise.
15267 (ix86_adjust_cost): Likewise.
15268 (ia32_multipass_dfa_lookahead): Likewise.
15269 (swap_top_of_ready_list): Likewise.
15270 (ix86_sched_reorder): Likewise.
cfc46241 15271 (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
15272 instead of TARGET_OPT_AGU.
2ea5890d 15273 * config/i386/i386.h (TARGET_INTEL): New.
15274 (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
15275 (processor_type): Add PROCESSOR_INTEL.
7466df22 15276 * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
15277 Add X86_TUNE_AVOID_LEA_FOR_ADDR.
2ea5890d 15278
a576c57a 152792014-01-17 Marek Polacek <polacek@redhat.com>
15280
15281 PR c/58346
15282 * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
15283 size is zero.
15284
1941e89d 152852014-01-17 Richard Biener <rguenther@suse.de>
15286
15287 PR tree-optimization/46590
15288 * opts.c (default_options_table): Add entries for
15289 OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
15290 all enabled at -O1 but not for -Og.
15291 * common.opt (fbranch-count-reg): Remove Init(1).
15292 (fmove-loop-invariants): Likewise.
15293 (ftree-pta): Likewise.
15294
5e1da545 152952014-01-17 Jakub Jelinek <jakub@redhat.com>
15296
12a0c3a2 15297 * config/i386/i386.c (ix86_data_alignment): For compatibility with
15298 (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
15299 decls to at least the GCC 4.8 used alignments.
15300
5e1da545 15301 PR fortran/59440
15302 * tree-nested.c (convert_nonlocal_reference_stmt,
15303 convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
15304 of GIMPLE_BIND stmts, adjust associated decls.
15305
3e48928c 153062014-01-17 Richard Biener <rguenther@suse.de>
15307
15308 PR tree-optimization/46590
15309 * vec.h (vec<>::bseach): New member function implementing
15310 binary search according to C89 bsearch.
15311 (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
15312 * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
15313 bitmap pointer again. Make accesses_in_loop a flat array.
15314 (mem_ref_obstack): New global.
15315 (outermost_indep_loop): Adjust for mem_ref->stored changes.
15316 (mark_ref_stored): Likewise.
15317 (ref_indep_loop_p_2): Likewise.
15318 (set_ref_stored_in_loop): New helper function.
15319 (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
15320 (memref_free): Adjust.
15321 (record_mem_ref_loc): Simplify.
15322 (gather_mem_refs_stmt): Adjust.
15323 (sort_locs_in_loop_postorder_cmp): New function.
15324 (analyze_memory_references): Sort accesses_in_loop after
15325 loop postorder number.
15326 (find_ref_loc_in_loop_cmp): New function.
15327 (for_all_locs_in_loop): Find relevant cluster of locs in
15328 accesses_in_loop and iterate without recursion.
15329 (execute_sm): Avoid uninit warning.
15330 (struct ref_always_accessed): Simplify.
15331 (ref_always_accessed::operator ()): Likewise.
15332 (ref_always_accessed_p): Likewise.
15333 (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
15334 loop postorder numbers here.
15335 (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
15336 numbers.
15337
1905e86a 153382014-01-17 Jan Hubicka <hubicka@ucw.cz>
15339
15340 PR c++/57945
15341 * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
15342 on decls for which assemble_alias has been called.
15343
abe1609f 153442014-01-17 Nick Clifton <nickc@redhat.com>
15345
15346 * config/msp430/msp430.opt: (mcpu): New option.
15347 * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
15348 (msp430_option_override): Parse target_cpu. If the MCU name
15349 matches a generic string, clear target_mcu.
15350 (msp430_attr): Allow numeric interrupt values up to 63.
15351 (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
15352 * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
15353 option.
15354 * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
15355 Add mcpu matches.
15356 * config/msp430/msp430.md (popm): Use %J rather than %I.
15357 (addsi3): Use msp430_nonimmediate_operand for operand 2.
15358 (addhi_cy_i): Use immediate_operand for operand 2.
15359 * doc/invoke.texi: Document -mcpu option.
15360
67e23d6f 153612014-01-17 Richard Biener <rguenther@suse.de>
15362
15363 PR rtl-optimization/38518
15364 * df.h (df_analyze_loop): Declare.
15365 * df-core.c: Include cfgloop.h.
15366 (df_analyze_1): Split out main part of df_analyze.
15367 (df_analyze): Adjust.
15368 (loop_inverted_post_order_compute): New function.
15369 (loop_post_order_compute): Likewise.
15370 (df_analyze_loop): New function avoiding whole-function
15371 postorder computes.
15372 * loop-invariant.c (find_defs): Use df_analyze_loop.
15373 (find_invariants): Adjust.
15374 * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
15375
01b23159 153762014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
15377
15378 * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
15379 (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
15380
ae589802 153812014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
15382
15383 * ipa-ref.c (ipa_remove_stmt_references): Fix references
15384 traversal when removing references.
15385
abcb2cab 153862014-01-16 Jan Hubicka <hubicka@ucw.cz>
c473fea7 15387
15388 PR ipa/59775
15389 * tree.c (get_binfo_at_offset): Look harder for virtual bases.
15390
06da7238 153912014-01-16 Bernd Schmidt <bernds@codesourcery.com>
15392
15393 PR middle-end/56791
15394 * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
15395 pushing a reload for an autoinc when we had previously reloaded an
15396 inner part of the address.
15397
e111028e 153982014-01-16 Jakub Jelinek <jakub@redhat.com>
15399
c7a8722c 15400 * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
15401 field.
15402 (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
15403 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
15404 when not giving up or versioning for alias only because of
15405 loop->safelen.
15406 (vect_analyze_data_ref_dependences): Set to true.
15407 * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
15408 is a GIMPLE_PHI.
15409 (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
15410 LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
15411 to the condition.
15412
e8e60ada 15413 PR middle-end/58344
15414 * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
15415
e111028e 15416 PR target/59839
7466df22 15417 * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
15418 operand 0 predicate for gathers, use a new pseudo as subtarget.
e111028e 15419
b3d446cb 154202014-01-16 Vladimir Makarov <vmakarov@redhat.com>
15421
15422 PR middle-end/59609
7466df22 15423 * lra-constraints.c (process_alt_operands): Add printing debug info.
15424 Check absence of input/output reloads for matched operands too.
b3d446cb 15425
3ce88829 154262014-01-16 Vladimir Makarov <vmakarov@redhat.com>
15427
15428 PR rtl-optimization/59835
15429 * ira.c (ira_init_register_move_cost): Increase cost for
15430 impossible modes.
15431
d5b90111 154322014-01-16 Alan Lawrence <alan.lawrence@arm.com>
15433
ad123784 15434 * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
d5b90111 15435
2b5ec7ce 154362014-01-16 Richard Earnshaw <rearnsha@arm.com>
15437
15438 PR target/59780
15439 * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
15440 non-register objects. Use gen_(high/low)part more consistently.
15441 Fix assertions.
15442
7810cff3 154432014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
15444
15445 PR target/59844
15446 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
15447 endian support, remove tests for WORDS_BIG_ENDIAN.
15448 (p8_mfvsrd_3_<mode>): Likewise.
15449 (reload_gpr_from_vsx<mode>): Likewise.
15450 (reload_gpr_from_vsxsf): Likewise.
15451 (p8_mfvsrd_4_disf): Likewise.
15452
17e85523 154532014-01-16 Richard Biener <rguenther@suse.de>
15454
15455 PR rtl-optimization/46590
15456 * lcm.c (compute_antinout_edge): Use postorder iteration.
15457 (compute_laterin): Use inverted postorder iteration.
15458
4edd2c14 154592014-01-16 Nick Clifton <nickc@redhat.com>
15460
15461 PR middle-end/28865
15462 * varasm.c (output_constant): Return the number of bytes actually
15463 emitted.
15464 (output_constructor_array_range): Update the field size with the
15465 number of bytes emitted by output_constant.
15466 (output_constructor_regular_field): Likewise. Also do not
15467 complain if the total number of bytes emitted is now greater
15468 than the expected fieldpos.
7466df22 15469 * output.h (output_constant): Update prototype and descriptive comment.
4edd2c14 15470
2830de69 154712014-01-16 Marek Polacek <polacek@redhat.com>
15472
15473 PR middle-end/59827
15474 * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
15475 it is error_mark_node.
15476
c334d998 154772014-01-15 Uros Bizjak <ubizjak@gmail.com>
15478
15479 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
15480 VALID_AVX256_REG_OR_OI_MODE.
15481
ccebc2aa 154822014-01-15 Pat Haugen <pthaugen@us.ibm.com>
15483
15484 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
15485 current procedure should be profiled.
15486
0c3180b6 154872014-01-15 Andrew Pinski <apinski@cavium.com>
15488
15489 * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
15490 of moving from/to the STACK_REG register class.
15491
b4c6ce9b 154922014-01-15 Richard Henderson <rth@redhat.com>
e52beba9 15493
15494 PR debug/54694
15495 * reginfo.c (global_regs_decl): Globalize.
15496 * rtl.h (global_regs_decl): Declare.
15497 * ira.c (do_reload): Diagnose frame_pointer_needed and it
15498 reserved via global_regs.
15499
d1a94241 155002014-01-15 Teresa Johnson <tejohnson@google.com>
15501
15502 * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
15503
3adca139 155042014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
15505
15506 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
15507 and vmulosh rather than call gen_vec_widen_smult_*.
15508 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
15509 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
15510 (vec_widen_smult_even_v16qi): Likewise.
15511 (vec_widen_umult_even_v8hi): Likewise.
15512 (vec_widen_smult_even_v8hi): Likewise.
15513 (vec_widen_umult_odd_v16qi): Likewise.
15514 (vec_widen_smult_odd_v16qi): Likewise.
15515 (vec_widen_umult_odd_v8hi): Likewise.
15516 (vec_widen_smult_odd_v8hi): Likewise.
15517 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
15518 vmuloub rather than call gen_vec_widen_umult_*.
15519 (vec_widen_umult_lo_v16qi): Likewise.
15520 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
15521 vmulosb rather than call gen_vec_widen_smult_*.
15522 (vec_widen_smult_lo_v16qi): Likewise.
15523 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
15524 rather than call gen_vec_widen_umult_*.
15525 (vec_widen_umult_lo_v8hi): Likewise.
15526 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
15527 rather than call gen_vec_widen_smult_*.
15528 (vec_widen_smult_lo_v8hi): Likewise.
15529
92802c6f 155302014-01-15 Jeff Law <law@redhat.com>
15531
15532 PR tree-optimization/59747
15533 * ree.c (find_and_remove_re): Properly handle case where a second
15534 eliminated extension requires widening a copy created for elimination
15535 of a prior extension.
15536 (combine_set_extension): Ensure that the number of hard regs needed
15537 for a destination register does not change when we widen it.
15538
b69fc80a 155392014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
15540
15541 * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
15542 (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
15543 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
15544 (arm*-*-rtems*): Use t-rtems from existing tmake_file.
15545 (avr-*-rtems*): Likewise.
15546 (bfin*-rtems*): Likewise.
15547 (moxie-*-rtems*): Likewise.
15548 (h8300-*-rtems*): Likewise.
15549 (i[34567]86-*-rtems*): Likewise.
15550 (lm32-*-rtems*): Likewise.
15551 (m32r-*-rtems*): Likewise.
15552 (m68k-*-rtems*): Likewise.
15553 (microblaze*-*-rtems*): Likewise.
15554 (mips*-*-rtems*): Likewise.
15555 (powerpc-*-rtems*): Likewise.
15556 (sh-*-rtems*): Likewise.
15557 (sparc-*-rtems*): Likewise.
15558 (sparc64-*-rtems*): Likewise.
15559 (v850-*-rtems*): Likewise.
15560 (m32c-*-rtems*): Likewise.
15561
e374deeb 155622014-01-15 Vladimir Makarov <vmakarov@redhat.com>
15563
15564 PR rtl-optimization/59511
15565 * ira.c (ira_init_register_move_cost): Use memory costs for some
15566 cases of register move cost calculations.
15567 * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
15568 instead of BB frequency.
15569 * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
15570 * lra-assigns.c (find_hard_regno_for): Ditto.
15571
500fffe1 155722014-01-15 Richard Biener <rguenther@suse.de>
15573
15574 PR tree-optimization/59822
15575 * tree-vect-stmts.c (hoist_defs_of_uses): New function.
15576 (vectorizable_load): Use it to hoist defs of uses of invariant
15577 loads out of the loop.
15578
d9fb4e77 155792014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
ea47f46c 15580 Kugan Vivekanandarajah <kuganv@linaro.org>
d9fb4e77 15581
15582 PR target/59695
15583 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
15584 truncation.
15585
a2028ebf 155862014-01-15 Richard Biener <rguenther@suse.de>
15587
15588 PR rtl-optimization/59802
15589 * lcm.c (compute_available): Use inverted postorder to seed
15590 the initial worklist.
15591
37c55f71 155922014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15593
3716dd35 15594 PR target/59803
37c55f71 15595 * config/s390/s390.c (s390_preferred_reload_class): Don't return
15596 ADDR_REGS for invalid symrefs in non-PIC code.
15597
4e140a5c 155982014-01-15 Jakub Jelinek <jakub@redhat.com>
15599
15600 PR other/58712
15601 * builtins.c (determine_block_size): Initialize *probable_max_size
15602 even if len_rtx is CONST_INT.
15603
268a662f 156042014-01-14 Andrew Pinski <apinski@cavium.com>
15605
15606 * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
15607 * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
15608 (cortexa53_tunings): Likewise.
15609 (aarch64_sched_issue_rate): New function.
15610 (TARGET_SCHED_ISSUE_RATE): Define.
15611
afcc0d26 156122014-01-14 Vladimir Makarov <vmakarov@redhat.com>
15613
15614 * ira-costs.c (find_costs_and_classes): Add missed
15615 ira_init_register_move_cost_if_necessary.
15616
05268327 156172014-01-14 Vladimir Makarov <vmakarov@redhat.com>
15618
15619 PR target/59787
15620 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
15621
838bf047 156222014-01-14 H.J. Lu <hongjiu.lu@intel.com>
15623
15624 PR target/59794
15625 * config/i386/i386.c (type_natural_mode): Add a bool parameter
c334d998 15626 to indicate if type is used for function return value. Warn ABI
15627 change if the vector mode isn't available for function return value.
838bf047 15628 (ix86_function_arg_advance): Pass false to type_natural_mode.
15629 (ix86_function_arg): Likewise.
15630 (ix86_gimplify_va_arg): Likewise.
15631 (function_arg_32): Don't warn ABI change.
15632 (ix86_function_value): Pass true to type_natural_mode.
15633 (ix86_return_in_memory): Likewise.
15634 (ix86_struct_value_rtx): Removed.
15635 (TARGET_STRUCT_VALUE_RTX): Likewise.
15636
4db67ecc 156372014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
15638
15639 * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
15640 converting a conditional jump into a conditional return.
15641
546d1cc8 156422014-01-14 Richard Biener <rguenther@suse.de>
15643
15644 PR tree-optimization/58921
15645 PR tree-optimization/59006
15646 * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
15647 hoisting invariant stmts.
15648 * tree-vect-stmts.c (vectorizable_load): Insert the splat of
15649 invariant loads on the preheader edge if possible.
15650
48f24eb2 156512014-01-14 Joey Ye <joey.ye@arm.com>
15652
15653 * doc/plugin.texi (Building GCC plugins): Update to C++.
15654
fbf4df62 156552014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
15656
838bf047 15657 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
fbf4df62 15658 (_mm_rcp28_round_ss): Ditto.
15659 (_mm_rsqrt28_round_sd): Ditto.
15660 (_mm_rsqrt28_round_ss): Ditto.
15661 (_mm_rcp28_sd): Ditto.
15662 (_mm_rcp28_ss): Ditto.
15663 (_mm_rsqrt28_sd): Ditto.
15664 (_mm_rsqrt28_ss): Ditto.
15665 * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
15666 * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
15667 * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
15668 (IX86_BUILTIN_RCP28SD): Ditto.
15669 (IX86_BUILTIN_RCP28SS): Ditto.
15670 (IX86_BUILTIN_RSQRT28SD): Ditto.
15671 (IX86_BUILTIN_RSQRT28SS): Ditto.
15672 (bdesc_special_args): Define __builtin_ia32_movntdqa512,
15673 __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
15674 __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
15675 (ix86_expand_special_args_builtin): Expand new FTYPE.
15676 * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
15677 (srcp14<mode>): Make insn unary.
15678 (avx512f_vmscalef<mode><round_name>): Use substed predicate.
15679 (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
15680 (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
15681 (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
15682 (avx512er_exp2<mode><mask_name><round_saeonly_name>):
15683 Fix rounding: make it SAE only.
c334d998 15684 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
15685 Ditto.
15686 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
15687 Ditto.
fbf4df62 15688 (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
15689 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
15690 (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
15691 * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
15692 (round_saeonly_mask_scalar_operand4): Ditto.
15693 (round_saeonly_mask_scalar_op3): Ditto.
15694 (round_saeonly_mask_scalar_op4): Ditto.
15695
51cc20fd 156962014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15697
15698 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15699 Implement -maltivec=be for vec_insert and vec_extract.
15700
50753af6 157012014-01-10 DJ Delorie <dj@redhat.com>
15702
15703 * config/msp430/msp430.md (call_internal): Don't allow memory
15704 references with SP as the base register.
15705 (call_value_internal): Likewise.
15706 * config/msp430/constraints.md (Yc): New. For memory references
15707 that don't use SP as a base register.
15708
15709 * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
15710 "an integer without a # prefix"
15711 * config/msp430/msp430.md (epilogue_helper): Use it.
15712
f6a34e3f 157132014-01-13 Jakub Jelinek <jakub@redhat.com>
15714
d7bcf3d1 15715 PR target/59617
15716 * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
15717 AVX512F gather builtins.
15718 * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
15719 on gather decls with INTEGER_TYPE masktype.
15720 (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
15721 directly into the builtin rather than hoisting it before loop.
15722
f6a34e3f 15723 PR tree-optimization/59387
15724 * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
15725 (scev_const_prop): If folded_casts and type has undefined overflow,
15726 use force_gimple_operand instead of force_gimple_operand_gsi and
15727 for each added stmt if it is assign with
15728 arith_code_with_undefined_signed_overflow, call
15729 rewrite_to_defined_overflow.
15730 * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
15731 gimple-fold.h instead.
15732 (arith_code_with_undefined_signed_overflow,
15733 rewrite_to_defined_overflow): Moved to ...
15734 * gimple-fold.c (arith_code_with_undefined_signed_overflow,
15735 rewrite_to_defined_overflow): ... here. No longer static.
15736 Include gimplify-me.h.
15737 * gimple-fold.h (arith_code_with_undefined_signed_overflow,
15738 rewrite_to_defined_overflow): New prototypes.
15739
69888cc7 157402014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15741
15742 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
15743
ad464c56 157442014-01-13 Eric Botcazou <ebotcazou@adacore.com>
15745
15746 * builtins.c (get_object_alignment_2): Minor tweak.
15747 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
15748
75c9129c 157492014-01-13 Christian Bruel <christian.bruel@st.com>
15750
15751 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
ad464c56 15752 optimized non constant lengths.
75c9129c 15753
2ed72821 157542014-01-13 Jakub Jelinek <jakub@redhat.com>
15755
15756 PR libgomp/59194
15757 * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
15758 load as __atomic_load_N if possible.
15759
74bc8e47 157602014-01-11 David Edelsohn <dje.gcc@gmail.com>
15761
15762 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
15763 target parameter.
15764 (rs6000_expand_builtin): Adjust call.
15765
3257ccd1 157662014-01-11 David Edelsohn <dje.gcc@gmail.com>
15767
15768 PR target/58115
15769 * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
15770 * config/rs6000/rs6000.c: Include target-globals.h.
15771 (rs6000_set_current_function): Instead of doing target_reinit
15772 unconditionally, use save_target_globals_default_opts and
15773 restore_target_globals.
15774
15775 * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
15776 FPSCR.
15777 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
15778 (rs6000_expand_builtin): Handle mffs and mtfsf.
15779 (rs6000_init_builtins): Define mffs and mtfsf.
15780 * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
15781 (rs6000_mffs): New pattern.
15782 (rs6000_mtfsf): New pattern.
15783
32c6ace0 157842014-01-11 Bin Cheng <bin.cheng@arm.com>
15785
15786 * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
15787 Start narrowing with START. Apply candidate-use pair
15788 and check overall cost in narrowing.
15789 (iv_ca_prune): Pass new argument.
15790
782ce6aa 157912014-01-10 Jeff Law <law@redhat.com>
15792
15793 PR middle-end/59743
15794 * ree.c (combine_reaching_defs): Ensure the defining statement
15795 occurs before the extension when optimizing extensions with
15796 different source and destination hard registers.
15797
abcb2cab 157982014-01-10 Jan Hubicka <hubicka@ucw.cz>
2441731c 15799
15800 PR ipa/58585
c334d998 15801 * ipa-devirt.c (build_type_inheritance_graph): Also add types of
15802 vtables into the type inheritance graph.
2441731c 15803
0dfd08b1 158042014-01-10 Jakub Jelinek <jakub@redhat.com>
15805
15806 PR rtl-optimization/59754
15807 * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
15808 modes in the REGNO != REGNO case.
15809
f1288d58 158102014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15811
15812 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
15813
6c427a80 158142014-01-10 Jakub Jelinek <jakub@redhat.com>
15815
f037f351 15816 PR tree-optimization/59745
15817 * tree-predcom.c (tree_predictive_commoning_loop): Call
15818 free_affine_expand_cache if giving up because components is NULL.
15819
6c427a80 15820 * target-globals.c (save_target_globals): Allocate < 4KB structs using
15821 GC in payload of target_globals struct instead of allocating them on
15822 the heap and the larger structs separately using GC.
15823 * target-globals.h (struct target_globals): Make regs, hard_regs,
15824 reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
15825 of GTY((skip)) and change type to void *.
15826 (reset_target_globals): Cast loads from those fields to corresponding
15827 types.
15828
10d41ed3 158292014-01-10 Steve Ellcey <sellcey@mips.com>
15830
15831 PR plugins/59335
15832 * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
15833 gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
15834 tree-ssanames.h, print-tree.h, varasm.h, and context.h.
15835
46b590a1 158362014-01-10 Richard Earnshaw <rearnsha@arm.com>
15837
2c169721 15838 PR target/59744
46b590a1 15839 * aarch64-modes.def (CC_Zmode): New flags mode.
15840 * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
15841 represents an equality.
2c169721 15842 (aarch64_get_condition_code): Handle CC_Zmode.
46b590a1 15843 * aarch64.md (compare_neg<mode>): Restrict to equality operations.
15844
d089210f 158452014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15846
15847 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
15848 extraction in good case.
15849
1824e1e2 158502014-01-10 Richard Biener <rguenther@suse.de>
15851
15852 PR tree-optimization/59374
15853 * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
15854 checking after SLP discovery. Mark stmts not participating
15855 in any SLP instance properly.
15856
e2ab6881 158572014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15858
15859 * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
15860 when handling a SET rtx.
15861
5de87df0 158622014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15863
15864 * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
15865 (cortex-a57): Likewise.
15866 (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
15867
1069dee8 158682014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15869
15870 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
15871 non-iwmmxt builtins.
15872
10a8f02f 158732014-01-10 Jan Hubicka <hubicka@ucw.cz>
15874
15875 PR ipa/58252
15876 PR ipa/59226
15877 * ipa-devirt.c record_target_from_binfo): Take as argument
15878 stack of binfos and lookup matching one for virtual inheritance.
15879 (possible_polymorphic_call_targets_1): Update.
15880
514db0f0 158812014-01-10 Huacai Chen <chenhc@lemote.com>
15882
15883 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
15884 kernel strings for Loongson-2E/2F/3A.
15885
cae17039 158862014-01-10 Jakub Jelinek <jakub@redhat.com>
15887
15888 PR middle-end/59670
15889 * tree-vect-data-refs.c (vect_analyze_data_refs): Check
15890 is_gimple_call before calling gimple_call_internal_p.
15891
f6d8a42a 158922014-01-09 Steve Ellcey <sellcey@mips.com>
15893
15894 * Makefile.in (TREE_FLOW_H): Remove.
15895 (TREE_SSA_H): Add file names from tree-flow.h.
15896 * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
15897 * tree.h: Remove tree-flow.h reference.
15898 * hash-table.h: Remove tree-flow.h reference.
15899 * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
15900 reference with tree-ssa-loop.h.
15901
b5236700 159022014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15903
15904 * doc/invoke.texi: Add -maltivec={be,le} options, and document
15905 default element-order behavior for -maltivec.
15906 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
15907 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
15908 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
15909 when targeting big endian, at least for now.
15910 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
15911
f70f513f 159122014-01-09 Jakub Jelinek <jakub@redhat.com>
15913
fc1995c6 15914 PR middle-end/47735
15915 * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
15916 var satisfies use_register_for_decl, just take into account type
15917 alignment, rather than decl alignment.
15918
f70f513f 15919 PR tree-optimization/59622
15920 * gimple-fold.c (gimple_fold_call): Fix a typo in message. For
15921 __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
15922 __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
15923 Don't devirtualize for inplace at all. For targets.length () == 1,
15924 if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
15925
d902a1c3 159262014-01-09 H.J. Lu <hongjiu.lu@intel.com>
15927
15928 * config/i386/i386.md (cpu): Remove the unused btver1.
15929
28bc5799 159302014-01-09 H.J. Lu <hongjiu.lu@intel.com>
15931
15932 * gdbasan.in: Put a breakpoint on __sanitizer::Report.
15933
6e5c480b 159342014-01-09 Jakub Jelinek <jakub@redhat.com>
15935
15936 PR target/58115
15937 * tree-core.h (struct target_globals): New forward declaration.
15938 (struct tree_target_option): Add globals field.
15939 * tree.h (TREE_TARGET_GLOBALS): Define.
15940 (prepare_target_option_nodes_for_pch): New prototype.
15941 * target-globals.h (struct target_globals): Define even if
15942 !SWITCHABLE_TARGET.
15943 * tree.c (prepare_target_option_node_for_pch,
15944 prepare_target_option_nodes_for_pch): New functions.
15945 * config/i386/i386.h (SWITCHABLE_TARGET): Define.
15946 * config/i386/i386.c: Include target-globals.h.
15947 (ix86_set_current_function): Instead of doing target_reinit
15948 unconditionally, use save_target_globals_default_opts and
15949 restore_target_globals.
15950
470c168f 159512014-01-09 Richard Biener <rguenther@suse.de>
15952
15953 PR tree-optimization/59715
15954 * tree-cfg.h (split_critical_edges): Declare.
15955 * tree-cfg.c (split_critical_edges): Export.
15956 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
15957
bf2b7c22 159582014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
15959
c334d998 15960 * cfgexpand.c (expand_stack_vars): Optionally disable
bf2b7c22 15961 asan stack protection.
15962 (expand_used_vars): Likewise.
15963 (partition_stack_vars): Likewise.
c334d998 15964 * asan.c (asan_emit_stack_protection): Optionally disable
bf2b7c22 15965 after return stack usage.
7466df22 15966 (instrument_derefs): Optionally disable memory access instrumentation.
bf2b7c22 15967 (instrument_builtin_call): Likewise.
15968 (instrument_strlen_call): Likewise.
7466df22 15969 (asan_protect_global): Optionally disable global variables protection.
bf2b7c22 15970 * doc/invoke.texi: Added doc for new options.
15971 * params.def: Added new options.
15972 * params.h: Likewise.
15973
964c7827 159742014-01-09 Jakub Jelinek <jakub@redhat.com>
15975
15976 PR rtl-optimization/59724
15977 * ifcvt.c (cond_exec_process_if_block): Don't call
15978 flow_find_head_matching_sequence with 0 longest_match.
15979 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
15980 non-active insns if !stop_after.
15981 (try_head_merge_bb): Revert 2014-01-07 changes.
15982
c8b3dc4f 159832014-01-08 Jeff Law <law@redhat.com>
15984
15985 * ree.c (get_sub_rtx): New function, extracted from...
15986 (merge_def_and_ext): Here.
15987 (combine_reaching_defs): Use get_sub_rtx.
15988
6cdce0f6 159892014-01-08 Eric Botcazou <ebotcazou@adacore.com>
15990
15991 * cgraph.h (varpool_variable_node): Do not choke on null node.
15992
75be3bab 159932014-01-08 Catherine Moore <clm@codesourcery.com>
15994
c334d998 15995 * config/mips/mips.md (simple_return): Attempt to use JRC
15996 for microMIPS.
75be3bab 15997 * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
15998
3d59aca0 159992014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
16000
16001 PR rtl-optimization/59137
16002 * reorg.c (steal_delay_list_from_target): Call update_block for
16003 elided insns.
16004 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
16005
8a08427d 160062014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16007
16008 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
16009 two duplicate entries.
16010
c7b53601 160112014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
16012
16013 Revert:
16014 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
16015
16016 * config/mips/mips.c (mips_truncated_op_cost): New function.
16017 (mips_rtx_costs): Adjust test for BADDU.
16018 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
16019
16020 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
16021
16022 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
16023 (*baddu_si): ...this new pattern.
16024
0891f4f9 160252014-01-08 Jakub Jelinek <jakub@redhat.com>
16026
16027 PR ipa/59722
16028 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
16029
a12f023f 160302014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
16031
16032 PR middle-end/57748
16033 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
16034 inner_reference_p.
16035 (expand_expr, expand_normal): Adjust.
16036 * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
16037 inner_reference_p. Use inner_reference_p to expand inner references.
16038 (store_expr): Adjust.
16039 * cfgexpand.c (expand_call_stmt): Adjust.
16040
c334d998 160412014-01-08 Rong Xu <xur@google.com>
67745126 16042
16043 * gcov-io.c (gcov_var): Move from gcov-io.h.
16044 (gcov_position): Ditto.
16045 (gcov_is_error): Ditto.
16046 (gcov_rewrite): Ditto.
16047 * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
16048 only part to libgcc/libgcov.h.
16049
6db33a3d 160502014-01-08 Marek Polacek <polacek@redhat.com>
16051
16052 PR middle-end/59669
16053 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
16054
1603f939 160552014-01-08 Marek Polacek <polacek@redhat.com>
16056
16057 PR sanitizer/59667
16058 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
16059
396020c7 160602014-01-08 Jakub Jelinek <jakub@redhat.com>
16061
16062 PR rtl-optimization/59649
16063 * stor-layout.c (get_mode_bounds): For BImode return
16064 0 and STORE_FLAG_VALUE.
16065
8ded4352 160662014-01-08 Richard Biener <rguenther@suse.de>
16067
16068 PR middle-end/59630
16069 * gimple.h (is_gimple_builtin_call): Remove.
16070 (gimple_builtin_call_types_compatible_p): New.
16071 (gimple_call_builtin_p): New overload.
16072 * gimple.c (is_gimple_builtin_call): Remove.
16073 (validate_call): Rename to ...
16074 (gimple_builtin_call_types_compatible_p): ... this and export. Also
16075 check return types.
16076 (validate_type): New static function.
16077 (gimple_call_builtin_p): New overload and adjust.
16078 * gimple-fold.c (gimple_fold_builtin): Fold the return value.
16079 (gimple_fold_call): Likewise. Use gimple_call_builtin_p.
16080 (gimple_fold_stmt_to_constant_1): Likewise.
16081 * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
16082
3370c0ec 160832014-01-08 Richard Biener <rguenther@suse.de>
16084
16085 PR middle-end/59471
16086 * gimplify.c (gimplify_expr): Gimplify register-register type
16087 VIEW_CONVERT_EXPRs to separate stmts.
16088
30eead8d 160892014-01-07 Jeff Law <law@redhat.com>
16090
956391c1 16091 PR middle-end/53623
16092 * ree.c (combine_set_extension): Handle case where source
16093 and destination registers in an extension insn are different.
c334d998 16094 (combine_reaching_defs): Allow source and destination registers
16095 in extension to be different under limited circumstances.
956391c1 16096 (add_removable_extension): Remove restriction that the
c334d998 16097 source and destination registers in the extension are the same.
956391c1 16098 (find_and_remove_re): Emit a copy from the extension's
16099 destination to its source after the defining insn if
16100 the source and destination registers are different.
16101
30eead8d 16102 PR middle-end/59285
16103 * ifcvt.c (merge_if_block): If we are merging a block with more than
16104 one successor with a block with no successors, remove any BARRIER
16105 after the second block.
16106
6e70f6fb 161072014-01-07 Dan Xio Qiang <ziyan01@163.com>
80b9f631 16108
16109 * hw-doloop.c (reorg_loops): Release the bitmap obstack.
16110
e59aa434 161112014-01-07 John David Anglin <danglin@gcc.gnu.org>
16112
16113 PR target/59652
16114 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
16115 for 14-bit register offsets when INT14_OK_STRICT is false.
16116
7d11c3b4 161172014-01-07 Roland Stigge <stigge@antcom.de>
16118 Michael Meissner <meissner@linux.vnet.ibm.com>
16119
16120 PR 57386/target
16121 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
c334d998 16122 Only check TFmode for SPE constants. Don't check TImode or TDmode.
7d11c3b4 16123
487880da 161242014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
16125
16126 * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
16127 -mcpu.
16128
5832a5e2 161292014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
16130
16131 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
16132 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
16133 rtx is const0_rtx or not.
16134
2265e215 161352014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
16136
16137 PR target/58115
16138 * target-globals.c (save_target_globals): Remove this_fn_optab
16139 handling.
16140 * toplev.c: Include optabs.h.
16141 (target_reinit): Temporarily restore the global options if another
16142 set of options are in force.
16143
19f2ced2 161442014-01-07 Jakub Jelinek <jakub@redhat.com>
16145
177a616b 16146 PR rtl-optimization/58668
16147 * cfgcleanup.c (flow_find_cross_jump): Don't count
16148 any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p
16149 to determine what is counted.
16150 (flow_find_head_matching_sequence): Use active_insn_p to determine
16151 what is counted.
16152 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
16153 counting change.
16154 * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
16155 determine what is counted.
16156
19f2ced2 16157 PR tree-optimization/59643
16158 * tree-predcom.c (split_data_refs_to_components): If one dr is
16159 read and one write, determine_offset fails and the write isn't
16160 in the bad component, just put the read into the bad component.
16161
62402de3 161622014-01-07 Mike Stump <mikestump@comcast.net>
16163 Jakub Jelinek <jakub@redhat.com>
16164
16165 PR pch/59436
16166 * tree-core.h (struct tree_optimization_option): Change optabs
16167 type from unsigned char * to void *.
16168 * optabs.c (init_tree_optimization_optabs): Adjust
16169 TREE_OPTIMIZATION_OPTABS initialization.
16170
22d5a519 161712014-01-06 Jakub Jelinek <jakub@redhat.com>
16172
16173 PR target/59644
16174 * config/i386/i386.h (struct machine_function): Add
16175 no_drap_save_restore field.
16176 * config/i386/i386.c (ix86_save_reg): Use
16177 !cfun->machine->no_drap_save_restore instead of
16178 crtl->stack_realign_needed.
16179 (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
16180 this function clears frame_pointer_needed. Set
16181 cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
16182 and DRAP reg is needed.
16183
6685d11c 161842014-01-06 Marek Polacek <polacek@redhat.com>
16185
16186 PR c/57773
16187 * doc/implement-c.texi: Mention that other integer types are
16188 permitted as bit-field types in strictly conforming mode.
16189
80b9f631 161902014-01-06 Felix Yang <fei.yang0953@gmail.com>
5ce4a75a 16191
16192 * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
16193 is newly allocated.
16194
0c5bb1d0 161952014-01-06 Richard Earnshaw <rearnsha@arm.com>
16196
16197 * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
16198
436b29f7 161992014-01-06 Martin Jambor <mjambor@suse.cz>
16200
16201 PR ipa/59008
16202 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
16203 to int.
16204 * ipa-prop.c (ipa_print_node_params): Fix indentation.
16205
6b44c9ee 162062014-01-06 Eric Botcazou <ebotcazou@adacore.com>
16207
16208 PR debug/59350
16209 PR debug/59510
16210 * var-tracking.c (add_stores): Preserve the value of the source even if
16211 we don't record the store.
16212
e35d6bbc 162132014-01-06 Terry Guo <terry.guo@arm.com>
16214
16215 * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
16216
0fbd1542 162172014-01-05 Iain Sandoe <iain@codesourcery.com>
16218
16219 PR bootstrap/59541
16220 * config/darwin.c (darwin_function_section): Adjust return values to
16221 correspond to optimisation changes made in r206070.
16222
f3ea719e 162232014-01-05 Uros Bizjak <ubizjak@gmail.com>
16224
16225 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
16226 from prefetch_block tune setting.
16227 (nocona_cost): Correct size of prefetch block to 64.
16228
54b044c3 162292014-01-04 Eric Botcazou <ebotcazou@adacore.com>
16230
16231 * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
16232 (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
16233 used to save the static chain register in the computation of the offset
16234 from which the FP registers need to be restored.
16235
8688c545 162362014-01-04 Jakub Jelinek <jakub@redhat.com>
16237
9dbe1d59 16238 PR tree-optimization/59519
16239 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
16240 ICE if get_current_def (current_new_name) is already non-NULL, as long
16241 as it is a phi result of some other phi in *new_exit_bb that has
16242 the same argument.
16243
8688c545 16244 * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
16245 or vmovdqu* for misaligned_operand.
16246 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
16247 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
16248 * config/i386/i386.c (ix86_expand_special_args_builtin): Set
16249 aligned_mem for AVX512F masked aligned load and store builtins and for
16250 non-temporal moves.
16251
162522014-01-03 Bingfeng Mei <bmei@broadcom.com>
6e984e6f 16253
16254 PR tree-optimization/59651
f3ea719e 16255 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
6e984e6f 16256 Address range for negative step should be added by TYPE_SIZE_UNIT.
16257
7e862b4e 162582014-01-03 Andreas Schwab <schwab@linux-m68k.org>
16259
16260 * config/m68k/m68k.c (handle_move_double): Handle pushes with
7466df22 16261 overlapping registers also for registers other than the stack pointer.
7e862b4e 16262
1545a06d 162632014-01-03 Marek Polacek <polacek@redhat.com>
16264
16265 PR other/59661
16266 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
16267 __builtin_FILE.
16268
ca94bc0d 162692014-01-03 Jakub Jelinek <jakub@redhat.com>
16270
0ff576b9 16271 PR target/59625
16272 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
16273 asm goto as jump.
16274
ca94bc0d 16275 * config/i386/i386.md (MODE_SIZE): New mode attribute.
16276 (push splitter): Use <P:MODE_SIZE> instead of
16277 GET_MODE_SIZE (<P:MODE>mode).
16278 (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
16279 (mov -1, reg peephole2): Likewise.
16280 * config/i386/sse.md (*mov<mode>_internal,
16281 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
16282 <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
16283 *<code><mode>3, *andnot<mode>3<mask_name>,
16284 <mask_codefor><code><mode>3<mask_name>): Likewise.
16285 * config/i386/subst.md (mask_mode512bit_condition,
16286 sd_mask_mode512bit_condition): Likewise.
16287
37d099d8 162882014-01-02 Xinliang David Li <davidxl@google.com>
16289
16290 PR tree-optimization/59303
ca94bc0d 16291 * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
37d099d8 16292 (dump_predicates): Better output format.
16293 (pred_equal_p): New function.
16294 (is_neq_relop_p): Ditto.
16295 (is_neq_zero_form_p): Ditto.
16296 (pred_expr_equal_p): Ditto.
16297 (pred_neg_p): Ditto.
16298 (simplify_pred): Ditto.
16299 (simplify_preds_2): Ditto.
16300 (simplify_preds_3): Ditto.
16301 (simplify_preds_4): Ditto.
16302 (simplify_preds): Ditto.
16303 (push_pred): Ditto.
16304 (push_to_worklist): Ditto.
16305 (get_pred_info_from_cmp): Ditto.
16306 (is_degenerated_phi): Ditto.
16307 (normalize_one_pred_1): Ditto.
16308 (normalize_one_pred): Ditto.
16309 (normalize_one_pred_chain): Ditto.
16310 (normalize_preds): Ditto.
16311 (normalize_cond_1): Remove function.
16312 (normalize_cond): Ditto.
16313 (is_gcond_subset_of): Ditto.
16314 (is_subset_of_any): Ditto.
16315 (is_or_set_subset_of): Ditto.
16316 (is_and_set_subset_of): Ditto.
16317 (is_norm_cond_subset_of): Ditto.
16318 (pred_chain_length_cmp): Ditto.
16319 (convert_control_dep_chain_into_preds): Type change.
16320 (find_predicates): Ditto.
16321 (find_def_preds): Ditto.
16322 (destroy_predicates_vecs): Ditto.
16323 (find_matching_predicates_in_rest_chains): Ditto.
16324 (use_pred_not_overlap_with_undef_path_pred): Ditto.
16325 (is_pred_expr_subset): Ditto.
16326 (is_pred_chain_subset_of): Ditto.
16327 (is_included_in): Ditto.
16328 (is_superset_of): Ditto.
16329
3aea1f79 163302014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
16331
f3ea719e 16332 Update copyright years.
3aea1f79 16333
e4f22041 163342014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
16335
16336 * common/config/arc/arc-common.c, config/arc/arc-modes.def,
16337 config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
f3ea719e 16338 config/arc/arc.md, config/arc/arc.opt,
16339 config/arm/arm_neon_builtins.def, config/arm/crypto.def,
16340 config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
16341 config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
16342 config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
16343 config/linux-protos.h, config/linux.c, config/winnt-c.c,
16344 diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
16345 vtable-verify.c, vtable-verify.h: Use the standard form for the
16346 copyright notice.
e4f22041 16347
d67510b9 163482014-01-02 Tobias Burnus <burnus@net-b.de>
16349
16350 * gcc.c (process_command): Update copyright notice dates.
16351 * gcov-dump.c: Ditto.
16352 * gcov.c: Ditto.
16353 * doc/cpp.texi: Bump @copying's copyright year.
16354 * doc/cppinternals.texi: Ditto.
16355 * doc/gcc.texi: Ditto.
16356 * doc/gccint.texi: Ditto.
16357 * doc/gcov.texi: Ditto.
16358 * doc/install.texi: Ditto.
16359 * doc/invoke.texi: Ditto.
16360
5569181c 163612014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
b3390c66 16362
16363 * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
16364
d733203b 163652014-01-01 Jakub Jelinek <jakub@redhat.com>
68b0b56c 16366
ff3ace14 16367 * config/i386/sse.md (*mov<mode>_internal): Guard
16368 EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
16369
d733203b 16370 PR rtl-optimization/59647
16371 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
16372 new_rtx into UNSIGNED_FLOAT rtxes.
7dfbd804 16373\f
a80c339f 16374Copyright (C) 2014 Free Software Foundation, Inc.
7dfbd804 16375
16376Copying and distribution of this file, with or without modification,
16377are permitted in any medium without royalty provided the copyright
16378notice and this notice are preserved.