]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
gtm-builtins.def (_ITM_free): Declare leaf.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
48a3fa69
UB
12013-08-28 Uros Bizjak <ubizjak@gmail.com>
2
3 * gtm-builtins.def (_ITM_free): Declare leaf.
4
215f73e6
JJ
52013-08-28 Jakub Jelinek <jakub@redhat.com>
6
7 PR target/58067
8 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
9 (*tls_local_dynamic_base_64_largepic): Likewise.
10 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
11 Remove predicate from call operand.
12 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
13 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
14
34554d1a
JL
152013-08-28 Jeff Law <law@redhat.com>
16
17 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
18 checks for the number of predecessors and successors allowed.
19 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
20 which require copying a joiner block if there is a request which
21 is a subpath that requires no joiner block copying.
22
c01c111b
JH
232013-08-28 Jan Hubicka <jh@suse.cz>
24
25 * lto-streamer-out.c (DFS_write_tree_body): Drop
26 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
27 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
28 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
29 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
30 Do not read DECL_ERROR_ISSUED.
31 (unpack_ts_decl_with_vis_value_fields): Do not read
32 DECL_DEFER_OUTPUT.
48a3fa69
UB
33 (lto_input_ts_binfo_tree_pointers): Do not read
34 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
c01c111b
JH
35 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
36 write DECL_ERROR_ISSUED..
37 (pack_ts_decl_with_vis_value_fields): Do not write
38 DECL_DEFER_OUTPUT.
39 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
48a3fa69 40 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
c01c111b
JH
41 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
42 * tree.h (tree_decl_common): Update comment.
43 (DECL_ERROR_ISSUED): Remove.
44
4b128ece
JJ
452013-08-28 Jakub Jelinek <jakub@redhat.com>
46
47 PR middle-end/58257
48 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
49
12211b99 502013-08-28 Jan Hubicka <jh@suse.cz>
9e57846a
JH
51
52 * builtins.def (free): Declare leaf.
53
8dce4dbc
DM
542013-08-27 David Malcolm <dmalcolm@redhat.com>
55
56 * gdbhooks.py: New.
57 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
58 * configure: Regenerate.
59
b8f6e610
MJ
602013-08-27 Martin Jambor <mjambor@suse.cz>
61
62 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
63 (ipa_ancestor_jf_data): Likewise.
64 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
65 (ipa_get_jf_pass_through_type_preserved): New function.
66 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
67 (ipa_get_jf_ancestor_type_preserved): New function.
12211b99 68 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
b8f6e610
MJ
69 (ipa_get_jf_ancestor_result): Likewise.
70 (propagate_vals_accross_pass_through): Use
71 ipa_get_jf_pass_through_result to do all the value mappings.
72 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
73 type_preserved flag.
74 (ipa_set_jf_cst_copy): New function.
75 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
76 (ipa_set_jf_arith_pass_through): Likewise.
77 (ipa_set_ancestor_jf): Likewise.
78 (compute_complex_assign_jump_func): Set type_preserved instead of
79 punting.
80 (ipa_compute_jump_functions_for_edge): Likewise.
81 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
82 (update_jump_functions_after_inlining): Update type_preserved.
12211b99 83 Explicitely create jump functions when combining one with pass_through.
b8f6e610
MJ
84 (ipa_write_jump_function): Stream the type_preserved flags.
85 (ipa_read_jump_function): Likewise.
86
74bf76ed
JJ
872013-08-27 Jakub Jelinek <jakub@redhat.com>
88 Aldy Hernandez <aldyh@redhat.com>
89
90 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
91 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
92 * function.h (struct function): Add has_force_vect_loops and
93 has_simduid_loops.
12211b99 94 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
74bf76ed
JJ
95 * gimple.c (gimple_build_omp_critical): Add KIND argument and
96 handle it.
97 * gimple.def: Update CLAUSES comments.
98 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
99 (gimple_build_omp_for): Add argument to prototype.
100 (gimple_omp_for_kind): New.
101 (gimple_omp_for_set_kind): New.
102 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
103 GOVD_DATA_SHARE_CLASS.
104 (enum omp_region_type): Add ORT_SIMD.
105 (gimple_add_tmp_var): Handle ORT_SIMD.
106 (gimplify_var_or_parm_decl): Same.
107 (is_gimple_stmt): Same.
108 (omp_firstprivatize_variable): Same.
109 (omp_add_variable): Only use splay_tree_insert if lookup failed.
110 (omp_notice_variable): Handle ORT_SIMD.
12211b99 111 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
74bf76ed
JJ
112 (omp_check_private): Handle ORT_SIMD.
113 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
114 OMP_CLAUSE_SAFELEN.
115 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
116 Handle OMP_CLAUSE_LASTPRIVATE.
117 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
118 OMP_CLAUSE_SAFELEN.
119 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
120 (gimplify_expr): Handle OMP_SIMD.
121 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
122 (expand_GOMP_SIMD_VF): New.
123 (expand_GOMP_SIMD_LAST_LANE): New.
124 * internal-fn.def (GOMP_SIMD_LANE): New.
125 (GOMP_SIMD_VF): New.
126 (GOMP_SIMD_LAST_LANE): New.
127 * omp-low.c: Include target.h.
128 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
129 OMP_CLAUSE_SAFELEN.
130 (check_omp_nesting_restrictions): Same.
131 (omp_max_vf): New.
132 (lower_rec_simd_input_clauses): New.
133 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
134 OMP_CLAUSE_LINEAR.
135 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
136 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
137 (expand_omp_build_assign): New.
138 (expand_omp_for_init_counts): New.
139 (expand_omp_for_init_vars): New.
140 (extract_omp_for_update_vars): New.
141 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
142 and rewrite accordingly.
143 (expand_omp_simd): New.
144 (expand_omp_for): Use expand_omp_simd.
145 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
146 (lower_omp_for): Do not lower the body.
147 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
148 in their own loops.
149 * tree-flow.h (find_omp_clause): Remove prototype.
12211b99
UB
150 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
151 forcing vectorization of the loop, or if flag_tree_vectorize.
74bf76ed
JJ
152 (gate_tree_if_conversion): Similarly.
153 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
154 gimple_build_omp_for.
155 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
156 * tree-parloops (create_parallel_loop): Pass kind argument to
157 gimple_build_omp_for.
158 * tree-pretty-print.c (dump_omp_clause): Add cases for
159 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
160 OMP_CLAUSE__SIMDUID_.
161 (dump_generic_node): Handle OMP_SIMD.
162 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
163 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
164 unroll OMP_SIMD loops here.
12211b99 165 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
74bf76ed 166 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
12211b99 167 loop->safelen.
74bf76ed
JJ
168 (vect_analyze_data_refs): Handle simd loops.
169 * tree-vect-loop.c (vectorizable_live_operation): Handle
170 IFN_GOMP_SIMD*.
12211b99 171 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
74bf76ed
JJ
172 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
173 (vectorizable_load): Same.
12211b99 174 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
74bf76ed
JJ
175 (struct simduid_to_vf): New.
176 (simduid_to_vf::hash): New.
177 (simduid_to-vf::equal): New.
178 (struct simd_array_to_simduid): New.
179 (simd_array_to_simduid::hash): New.
180 (simd_array_to_simduid::equal): New.
181 (adjust_simduid_builtins): New.
182 (struct note_simd_array_uses_struct): New.
183 (note_simd_array_uses_cb): New.
184 (note_simd_array_uses): New.
185 (vectorize_loops): Handle simd hints and adjust simd builtins
186 accordingly.
187 * tree-vectorizer.h (struct _stmt_vec_info): Add
188 simd_lane_access_p field.
189 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
190 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
191 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
192 (omp_clause_code_name): Same.
193 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
194 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
195 * tree.def (OMP_SIMD): New entry.
12211b99
UB
196 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
197 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
74bf76ed
JJ
198 (OMP_CLAUSE_DECL): Adjust range for new clauses.
199 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
200 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
201 (OMP_CLAUSE_LINEAR_STEP): New.
202 (OMP_CLAUSE_SAFELEN_EXPR): New.
203 (OMP_CLAUSE__SIMDUID__DECL): New.
204 (find_omp_clause): New prototype.
205
d0cf4e84
L
2062013-08-27 H.J. Lu <hongjiu.lu@intel.com>
207
208 * config/i386/driver-i386.c (host_detect_local_cpu): Update
209 Haswell processor detection.
210
992592ec
CW
2112013-08-27 Christian Widmer <shadow@umbrox.de>
212
213 PR target/57927
214 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
215 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
216 AVX2 capable processors.
217
9116eb22
TB
2182013-08-27 Tejas Belagod <tejas.belagod@arm.com>
219
220 * config/aarch64/arm_neon.h: Replace all inline asm implementations
221 of vget_low_* with implementations in terms of other intrinsics.
222
1c5abb53
MG
2232013-08-27 Marc Glisse <marc.glisse@inria.fr>
224
225 PR middle-end/57219
226 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
227 values to -1, 0 and 1.
228
2e100703
VP
2292013-08-27 Vidya Praveen <vidyapraveen@arm.com>
230
231 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
232 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
233 (<optab><mode>3_insn): Remove.
234 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
235 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
236 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
237 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
238 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
239 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
240 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
241 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
242 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
243 (ror<mode>3_insn): Likewise.
244 * config/aarch64/predicates.md (aarch64_simd_register): New.
245
4ded8276
RB
2462013-08-27 Richard Biener <rguenther@suse.de>
247
248 PR tree-optimization/57521
249 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
250 one edge is non-critical.
251 (find_phi_replacement_condition): Make sure to use a non-critical
252 edge. Cleanup and remove old bug workarounds.
253 (bb_postdominates_preds): Remove.
254 (if_convertible_loop_p_1): Do not compute post-dominators.
255 (combine_blocks): Do not free post-dominators.
256 (main_tree_if_conversion): Likewise.
257 (pass_data_if_conversion): Add TODO_verify_ssa.
258
5aa11061
DD
2592013-08-27 DJ Delorie <dj@redhat.com>
260
261 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
262
fd91cfe3
YZ
2632013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
264
265 * function.c (assign_parm_find_data_types): Set passed_mode and
266 nominal_mode to the TYPE_MODE of nominal_type for the built
267 pointer type in case of the struct-pass-by-reference.
268
907555ce
JR
2692013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
270
271 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
272 (UINT16_TYPE): Change default to "unsigned int".
273
67518c93
JR
274 * config/avr/avr.opt (mfract-convert-truncate): New option.
275 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
276 is set, round negative fractional integers according to n1169
277 when converting to integer types.
278
d6d989fc
JH
2792013-08-26 Jan Hubicka <jh@suse.cz>
280
281 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
282 methods can not be called indirectly when their address is not taken.
283
2aa3da06
JH
2842013-08-26 Jan Hubicka <jh@suse.cz>
285
12211b99
UB
286 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
287 ctor_for_folding.
2aa3da06 288
0987ffe7
JH
2892013-08-26 Jan Hubicka <jh@suse.cz>
290
291 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
292 can be unshared.
293
befe8647
JR
2942013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
295
296 * reload.c (find_valid_class): Allow classes that do not include
297 FIRST_PSEUDO_REGISTER - 1.
298
a21e735e
JH
2992013-08-26 Jan Hubicka <jh@suse.cz>
300
301 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
302 fix edge count/frequency when speculation failed; fix type check
303 for the direct call.
304
e067bd43
JH
3052013-08-26 Jan Hubicka <jh@suse.cz>
306
307 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
308
e8aec975
JH
3092013-08-26 Jan Hubicka <jh@suse.cz>
310
311 * ipa-inline-transform.c (inline_transform): Be ready for basic block
312 to be changed by edge redirection.
313
d0b66480
JH
3142013-08-26 Jan Hubicka <jh@suse.cz>
315
12211b99
UB
316 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
317 formating; add sanity check.
d0b66480
JH
318 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
319 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
320 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
321 (resolve_noninline_speculation): Update callee keys, too.
322
0f9aaac7
JH
3232013-08-26 Jan Hubicka <jh@suse.cz>
324
325 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
326 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
327
4b37444e
JR
3282013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
329
330 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
331 into proper place.
332
5339fc0c
UB
3332013-08-26 Uros Bizjak <ubizjak@gmail.com>
334
335 * config/i386/i386.c (ix86_debug_options): Remove prototype.
336 (x86_64_elf_select_section): Ditto.
337 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
338 arguments.
339 (ix86_pass_by_reference): Ditto.
5339fc0c
UB
340 (output_set_got): Ditto.
341 (ix86_unary_operator_ok): Ditto.
342 (ix86_expand_builtin): Ditto.
343
d5c3d3ef
JH
3442013-08-23 Jan Hubicka <jh@suse.cz>
345
5339fc0c 346 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
d5c3d3ef 347
5b1e7435
JH
3482013-08-23 Jan Hubicka <jh@suse.cz>
349
350 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
351 (tree_decl_with_vis): Add FINAL field.
352
ead69dac
JL
3532013-08-23 Jeff Law <law@redhat.com>
354
355 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
356 the debugging dump when the expression is fully redundant.
357
025311c4
GDR
3582013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
359
360 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
361 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
362 * pretty-print.c (pp_formatted_text_data): Likewise.
363 (pp_write_text_to_stream): Likewise.
364 (pp_write_text_as_dot_label_to_stream): Likewise.
365 (pp_append_r): Likewise.
366 (pp_format): Likewise.
367 (pp_flush): Likewise.
368 (pp_clear_output_area): Likewise.
369 (pp_append_text): Likewise.
370 (pp_formatted_text): Likewise.
371 (pp_remaining_character_count_for_line): Likewise.
372 (pp_newline): Likewise.
373 (pp_character): Likewise.
374 (output_buffer::~output_buffer): Define.
375 (pretty_printer::~pretty_printer): Destruct output buffer.
376 * pretty-print.h (output_buffer::~output_buffer): Declare.
377 (pretty_printer::~pretty_printer): Declare virtual.
378
0cadbfaa
MG
3792013-08-24 Marc Glisse <marc.glisse@inria.fr>
380
381 PR other/57324
382 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
383 HOST_WIDE_INT_M1U): New macros.
384 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
385 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
386 unsigned -1 for lshift.
387 * cse.c (cse_insn): Likewise.
388 * double-int.c (rshift_double, lshift_double): Likewise.
389 * builtins.c (fold_builtin_bitop): Likewise.
390 * combine.c (force_to_mode): Likewise.
391 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
392 * simplify-rtx.c (simplify_const_unary_operation,
393 simplify_const_binary_operation): Likewise.
394 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
395 check_va_list_escapes): Likewise.
396 * rtlanal.c (nonzero_bits1): Likewise.
397 * expmed.c (expand_smod_pow2): Likewise.
398 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
399
009e5353
JH
4002013-08-23 Jan Hubicka <jh@suse.cz>
401
402 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
403 as having address taken.
404
c4be6568
JH
4052013-08-23 Jan Hubicka <jh@suse.cz>
406
64cbf23d
JH
407 * ipa-utils.h (method_class_type): Declare.
408 * ipa-devirt.c (method_class_type): Export.
409
c4be6568
JH
410 * cgraphunit.c (analyze_functions): Do basic devirtualization;
411 do not walk base classes of anonymous types.
412
97aba8e9
KK
4132013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
414
415 PR rtl-optimization/58220
416 PR regression/58221
417 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
418 handle SEQUENCE insns properly.
419
0fc80001
GDR
4202013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
421
422 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
423 definition.
424 (pp_newline_and_indent): Likewise.
425 (pp_separate_with): Likewise.
426 * pretty-print.c (pp_newline_and_flush): Define.
427 (pp_newline_and_indent): Likewise.
428 (pp_separate_with): Likewise.
429
520a5868
JJ
4302013-08-23 Jakub Jelinek <jakub@redhat.com>
431
432 PR target/58218
433 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
434 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
435
e500c62a
KY
4362013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
437
438 * gcc/config/i386/predicates.md (ext_sse_reg_operand): New.
439 * gcc/config/i386/i386.md (*movti_internal): Use
440 predicate to determine if EVEX is needed.
441 (*movsi_internal): Ditto.
442 (*movdf_internal): Ditto.
443 (*movsf_internal): Ditto.
444 * gcc/config/i386/mmx.md (*mov<mode>_internal): Ditto.
445
6b00d7dd
JJ
4462013-08-23 Jakub Jelinek <jakub@redhat.com>
447
448 PR tree-optimization/58209
449 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
450 (find_tail_calls): Give up for pointer result types if m is non-NULL.
451 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
452 emit POINTER_PLUS_EXPR.
453 (create_tailcall_accumulator): For pointer result type accumulate in
454 sizetype type.
455
4f2a9f90
PC
4562013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
457
458 * configure.ac: Add backslashes missing from the last change.
459 * configure: Regenerate.
460
7bf4274e
JH
4612013-08-22 Jan Hubicka <jh@susue.cz>
462
4f2a9f90
PC
463 * ipa.c (function_and_variable_visibility): First remember function
464 was global and then make it local.
7bf4274e 465
1bea243d
JB
4662013-08-22 Julian Brown <julian@codesourcery.com>
467
468 * configure.ac: Add aarch64 to list of arches which use "nop" in
469 debug_line test.
470 * configure: Regenerate.
471
bcba7ecc
AK
4722013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
473
474 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
475 gnu_libc_has_function.
476 * config/s390/tpf.h: Likewise.
477
4c495b0d
JH
4782013-08-22 Jan Hubicka <jh@susue.cz>
479
480 * timevar.c (validate_phases): Add cast.
481
5e302bca
JH
4822013-08-22 Jan Hubicka <jh@susue.cz>
483
484 * timevar.c (validate_phases): Use size_t for memory.
485 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
486
da6ca2b5
GDR
4872013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
488
489 * pretty-print.h (output_buffer::output_buffer): Declare.
490 (pretty_printer::pretty_printer): Likewise.
491 (pp_construct): Remove.
492 * pretty-print.c (output_buffer::output_buffer): Define.
493 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
494 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
495 (print_gimple_expr): Likewise.
496 (print_gimple_seq): Likewise.
497 (gimple_dump_bb): Likewise.
498 * sched-vis.c (dump_value_slim): Likewise.
499 (dump_insn_slim): Likewise.
500 (dump_rtl_slim): Likewise.
501 (str_pattern_slim): Likewise.
502 * tree-mudflap.c (mf_varname_tree): Likewise.
503 * graph.c (print_graph_cfg): Likewise.
504 (start_graph_dump): Likewise.
505 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
506 placement-new.
507 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
508 pretty printer initialization.
509 * coretypes.h (diagnostic_context): Remove superflous type alias
510 declaration.
511 (pretty_printer): Likewise. Declare directly as a class.
512 (pretty_print_info): Remove declaration as class.
513 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
514 and pp_clear_output_area.
515 (asan_add_global): Likewise.
516
0e1474e5
JH
5172013-08-22 Jan Hubicka <jh@suse.cz>
518
519 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
520 * ipa-utils.h (update_type_inheritance_graph): Declare.
521 (possible_polymorphic_call_target_p): Declare.
522 (possible_polymorphic_call_target_p): New.
523 * ipa-devirt.c: Update toplevel comments.
524 (cached_polymorphic_call_targets): Move up.
525 (odr_type_d): Move ID down.
526 (polymorphic_type_binfo_p): Update comment.
527 (odr_hasher::remove): Likewise;
528 (get_odr_type): Set anonymous_namespace.
529 (dump_odr_type): Dump it.
530 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
531 (maybe_record_node): Record node in cached_polymorphic_call_targets.
532 (record_binfo): Add comment.
5339fc0c
UB
533 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
534 built.
0e1474e5
JH
535 (devirt_node_removal_hook): Do not iCE when cache is freed.
536 (possible_polymorphic_call_target_p): New predicate.
537 (update_type_inheritance_graph): New function.
538
3f97cb0b
AI
5392013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
540 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
541 Sergey Lega <sergey.s.lega@intel.com>
542 Anna Tikhonova <anna.tikhonova@intel.com>
543 Ilya Tocar <ilya.tocar@intel.com>
544 Andrey Turetskiy <andrey.turetskiy@intel.com>
545 Ilya Verbin <ilya.verbin@intel.com>
546 Kirill Yukhin <kirill.yukhin@intel.com>
547 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
548
549 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
550 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
551 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
552 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
553 (OPTION_MASK_ISA_AVX2_UNSET): Update.
554 (OPTION_MASK_ISA_AVX512F_UNSET): New.
555 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
556 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
557 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
558 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
559 OPT_mavx512pf, OPT_mavx512er cases.
560 * config/i386/constraints.md (v): New constraint.
561 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
562 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
563 (bit_AVX512CD): New.
564 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
565 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
566 * config/i386/i386-c.c (ix86_target_macros_internal):
567 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
568 __AVX512PF__.
569 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
570 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
571 * config/i386/i386.c (regclass_map, dbx_register_map)
572 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
573 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
574 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
575 -mavx512pf options.
576 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
577 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
578 -mavx512pf options. Fix formatting.
579 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
580 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
581 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
582 -mavx512cd, -mavx512pf options.
583 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
584 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
585 (ix86_preferred_output_reload_class): Replace SSE_REGS with
586 ALL_SSE_REGS.
587 (ix86_hard_regno_mode_ok): Support 512-bit registers.
588 (ix86_set_reg_reg_cost): Ditto.
589 (x86_order_regs_for_local_alloc): Ditto.
590 (MAX_VECT_LEN): Extend to 64-byte.
591 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
592 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
593 (TARGET_AVX512ER, TARGET_AVX512CD): New.
594 (BIGGEST_ALIGNMENT): Extend to 512-bits.
595 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
596 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
597 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
598 (SSE_REG_MODE_P): Support new modes.
599 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
600 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
601 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
602 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
603 (REG_CLASS_CONTENTS): Add new registers.
604 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
605 (EXT_REX_SSE_REGNO_P): New.
606 (HI_REGISTER_NAMES): Add new registers.
607 * config/i386/i386.md: Define constants for new registers.
608 (mode): Add new 512-bit modes.
609 (prefix): Support evex prefix.
610 (isa): Support avx512f, noavx512f, fma_avx512f.
611 (ssemodesuffix): Add new 512-bit modes.
612 (movxi): New.
613 (*movxi_internal_avx512f): Ditto.
614 (*movdi_internal): Replace constraint "x" with the new constraint "v".
615 Support MODE_XI.
616 (*movsi_internal): Likewise.
617 (*movdf_internal): Likewise.
618 (*movsf_internal): Likewise.
619 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
620 (<code><mode>3): Likewise.
5339fc0c
UB
621 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
622 New.
3f97cb0b
AI
623 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
624 with the new constraint "v".
625 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
626 modes.
627 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
628 with the new constraint "v".
629 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
630 (<sse2>_storedqu<avxsizesuffix>): Likewise.
631 (*<plusminus_insn><mode>3): Likewise.
632 (<sse>_vm<plusminus_insn><mode>3): Likewise.
633 (*mul<mode>3): Likewise.
634 (<sse>_vmmul<mode>3): Likewise.
635 (<sse>_div<mode>3): Likewise.
636 (<sse>_vmdiv<mode>3): Likewise.
637 (<sse>_sqrt<mode>2): Likewise.
638 (<sse>_vmsqrt<mode>2): Likewise.
639 (*<code><mode>3_finite): Likewise.
640 (*<code><mode>3) <smaxmin>: Likewise.
641 (<sse>_vm<code><mode>3): Likewise.
642 (*<code><mode>3) <any_logic>: Likewise.
643 (*fma_fmadd_<mode>): Likewise.
644 (*fma_fmsub_<mode>): Likewise.
645 (*fma_fnmadd_<mode>): Likewise.
646 (*fma_fnmsub_<mode>): Likewise.
647 (*fma_fmaddsub_<mode>): Likewise.
648 (*fma_fmsubadd_<mode>): Likewise.
649 (*fmai_fmadd_<mode>): Likewise.
650 (*fmai_fmsub_<mode>): Likewise.
651 (*fmai_fnmadd_<mode>): Likewise.
652 (*fmai_fnmsub_<mode>): Likewise.
653 (sse_cvtsi2ss): Likewise.
654 (sse_cvtsi2ssq): Likewise.
655 (sse_cvtss2si): Likewise.
656 (sse_cvtss2si_2): Likewise.
657 (sse_cvtss2siq): Likewise.
658 (sse_cvtss2siq_2): Likewise.
659 (sse_cvttss2si): Likewise.
660 (sse_cvtss2siq_2): Likewise.
661 (float<sseintvecmodelower><mode>2): Likewise.
662 (sse2_cvtsd2si_2): Likewise.
663 (sse2_cvtsd2siq_2): Likewise.
664 (*<plusminus_insn><mode>3): Likewise.
665 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
666 (*<sse4_1_avx2>_mul<mode>3): Likewise.
667 (ashr<mode>3): Likewise.
668 (<shift_insn><mode>3): Likewise.
669 (avx2_<code><mode>3): Likewise.
670 (*avx2_<code><mode>3): Likewise.
671 (*andnot<mode>3): Likewise.
672 (*<code><mode>3) <any_logic>: Likewise.
673 (abs<mode>2): Likewise.
674 (avx2_permvar<mode>): Likewise.
675 (avx2_perm<mode>_1): Likewise.
676 (*avx_vpermilp<mode>): Likewise.
677 (avx_vpermilvar<mode>3): Likewise.
678 (avx2_ashrv<mode>): Likewise.
679 (avx2_<shift_insn>v<mode>): Likewise.
680 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
681 -mavx512cd.
682 * doc/rtl.texi: Document XImode.
683
dd5e8423
JL
6842013-08-21 Jeff Law <law@redhat.com>
685
b9ebee5d
JL
686 * tree-flow.h (register_jump_thread): Pass vector of edges
687 instead of each important edge.
688 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
689 thread path into a vector and pass that to register_jump_thread.
690 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
691 passed in edge vector to the current 3-edge form.
692
dd5e8423
JL
693 Revert:
694 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
695
9bb6628e 696 * dce.c (fini_dce): Call df_analyze again just in case
dd5e8423
JL
697 delete_unmarked_insns removed anything.
698
445dc8df
JR
6992013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
700
701 * reload.h (struct reg_equivs): Rename to ..
702 (struct reg_equivs_s): .. this.
703
e0df53dd
ML
7042013-08-20 Martin Liska <marxin.liska@gmail.com>
705
706 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
707
e7d1d3eb
RO
7082013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
709
5339fc0c 710 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
e7d1d3eb 711
5562e26e
JL
7122013-08-21 Jeff Law <law@redhat.com>
713
714 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
715 simplify assignments too. If the RHS collapses to a singleton
716 range, then return the value for the range.
717
c7ecdec6
KY
7182013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
719
720 * config/i386/sse.md (V16): Rename to...
721 (VMOVE): this.
722 (mov<mode>): Update iterator name.
723 (*mov<mode>_internal): Ditto.
724 (push<mode>1): Ditto.
725 (movmisalign<mode>): Ditto.
726
bfa3b50a
JH
7272013-08-20 Jan Hubicka <jh@suse.cz>
728
729 PR bootstrap/58186
730 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
731 entry for direct edges.
732 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
733
6cd4d135
DM
7342013-08-20 David Malcolm <dmalcolm@redhat.com>
735
736 Revert my last two changes, r201865 and r201864:
737
738 Revert r201865:
739 2013-08-20 David Malcolm <dmalcolm@redhat.com>
740
741 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
742 instances can own GC refs.
743
744 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
745 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
746 (gcc::context::gt_pch_nx): Likewise.
747 (gcc::context::gt_pch_nx): Likewise.
748 * ggc.h (gt_ggc_mx <T>): New.
749 (gt_pch_nx_with_op <T>): New.
750 (gt_pch_nx <T>): New.
751 * passes.c (opt_pass::gt_ggc_mx): New.
752 (opt_pass::gt_pch_nx): New.
753 (opt_pass::gt_pch_nx_with_op): New.
754 (pass_manager::gt_ggc_mx): New.
755 (pass_manager::gt_pch_nx): New.
756 (pass_manager::gt_pch_nx_with_op): New.
757 (pass_manager::operator new): Use
758 ggc_internal_cleared_alloc_stat rather than xcalloc.
759 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
760 (pass_manager::gt_ggc_mx): New.
761 (pass_manager::gt_pch_nx): New.
762 (pass_manager::gt_pch_nx_with_op): New.
763 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
764 (opt_pass::operator new): New.
765 (opt_pass::gt_ggc_mx): New.
766 (opt_pass::gt_pch_nx): New.
767 (opt_pass::gt_pch_nx_with_op): New.
768
769 Revert r201864:
770 2013-08-20 David Malcolm <dmalcolm@redhat.com>
771
772 * Makefile.in (GTFILES): Add context.h.
773 * context.c (gcc::context::operator new): New.
774 (gcc::context::gt_ggc_mx): New.
775 (gcc::context::gt_pch_nx): New.
776 (gcc::context::gt_pch_nx): New.
777 * context.h (gcc::context): Add GTY((user)) marking.
778 (gcc::context::operator new): New.
779 (gcc::context::gt_ggc_mx): New.
780 (gcc::context::gt_pch_nx): New.
781 (gcc::context::gt_pch_nx): New.
782 (g): Add GTY marking.
783 (gt_ggc_mx (gcc::context *)): New.
784 (gt_pch_nx (gcc::context *)): New.
785 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
786 void *cookie)): New.
787 * gengtype.c (open_base_files) <ifiles>: Add context.h.
788
a046136a
AM
7892013-08-20 Alexey Makhalov <makhaloff@gmail.com>
790
791 * dce.c (fini_dce): Call df_analyze again just in case
792 delete_unmarked_insns removed anything.
793
67598720
TJ
7942013-08-20 Teresa Johnson <tejohnson@google.com>
795
796 PR rtl-optimizations/57451
797 * final.c (reemit_insn_block_notes): Prevent lexical blocks
798 from crossing split section boundaries.
799
f8693faf
MGD
8002013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
801
802 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
803 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
804 with MULTLIB_DEFAULTS.
805
7d0b9a9c
NC
8062013-08-20 Nick Clifton <nickc@redhat.com>
807
808 * target.def (narrow_volatile_bitfield): Note that the default
809 value is false, not !TARGET_STRICT_ALIGN.
810 * doc/tm.texi: Regenerate.
811
8edb8dc8
PC
8122013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
813
814 Fix LIB_SPEC for systems without libpthread.
815
816 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
817 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
818 for Android.
819 * config/i386/linux-common.h: Likewise.
820 * config/mips/linux-common.h: Likewise.
821
12211b99 8222013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
d71ff3fa
ZZ
823
824 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
825 checks.
826
e42c64cb
DM
8272013-08-20 David Malcolm <dmalcolm@redhat.com>
828
829 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
830 instances can own GC refs.
831
832 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
833 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
834 (gcc::context::gt_pch_nx): Likewise.
835 (gcc::context::gt_pch_nx): Likewise.
836 * ggc.h (gt_ggc_mx <T>): New.
837 (gt_pch_nx_with_op <T>): New.
838 (gt_pch_nx <T>): New.
839 * passes.c (opt_pass::gt_ggc_mx): New.
840 (opt_pass::gt_pch_nx): New.
841 (opt_pass::gt_pch_nx_with_op): New.
842 (pass_manager::gt_ggc_mx): New.
843 (pass_manager::gt_pch_nx): New.
844 (pass_manager::gt_pch_nx_with_op): New.
845 (pass_manager::operator new): Use
846 ggc_internal_cleared_alloc_stat rather than xcalloc.
847 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
848 (pass_manager::gt_ggc_mx): New.
849 (pass_manager::gt_pch_nx): New.
850 (pass_manager::gt_pch_nx_with_op): New.
851 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
852 (opt_pass::operator new): New.
853 (opt_pass::gt_ggc_mx): New.
854 (opt_pass::gt_pch_nx): New.
855 (opt_pass::gt_pch_nx_with_op): New.
856
910c02a0
DM
8572013-08-20 David Malcolm <dmalcolm@redhat.com>
858
859 * Makefile.in (GTFILES): Add context.h.
860 * context.c (gcc::context::operator new): New.
861 (gcc::context::gt_ggc_mx): New.
862 (gcc::context::gt_pch_nx): New.
863 (gcc::context::gt_pch_nx): New.
864 * context.h (gcc::context): Add GTY((user)) marking.
865 (gcc::context::operator new): New.
866 (gcc::context::gt_ggc_mx): New.
867 (gcc::context::gt_pch_nx): New.
868 (gcc::context::gt_pch_nx): New.
869 (g): Add GTY marking.
870 (gt_ggc_mx (gcc::context *)): New.
871 (gt_pch_nx (gcc::context *)): New.
872 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
873 void *cookie)): New.
874 * gengtype.c (open_base_files) <ifiles>: Add context.h.
875
af4b4236
AM
8762013-08-20 Alan Modra <amodra@gmail.com>
877
878 PR target/57865
879 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
880 (rs6000_emit_epilogue): Likewise.
881
12211b99 8822013-08-19 Dehao Chen <dehao@google.com>
0d633222
DC
883
884 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
885
e2323f5b
PB
8862013-08-19 Peter Bergner <bergner@vnet.ibm.com>
887 Jakub Jelinek <jakub@redhat.com>
888
889 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
890 (BUILT_IN_FABSD64): Likewise.
891 (BUILT_IN_FABSD128): Likewise.
892 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
893 (fold_builtin_1): Likewise.
5339fc0c
UB
894 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
895 destination and source operands.
e2323f5b
PB
896 (*abstd2_fpr): Likewise.
897 (*nabstd2_fpr): Likewise.
898
cfbf3ee8
RS
8992013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
900
901 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
902 JUMP_P and INSN_P.
903
d3136aeb
AH
9042013-08-19 Aldy Hernandez <aldyh@redhat.com>
905
906 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
907 incomplete.
908
d33d9e47
AI
9092013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
910
911 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
912 * builtins.c (default_libc_has_function): New.
913 (gnu_libc_has_function): Ditto.
914 (no_c99_libc_has_function): Ditto.
915 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
916 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
917 (fold_builtin_sincos): Likewise.
918 (fold_builtin_cexp): Likewise.
919 * builtins.def (DEF_C94_BUILTIN): Likewise.
920 (DEF_C99_BUILTIN): Likewise.
921 (DEF_C99_C90RES_BUILTIN): Likewise.
922 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
923 definitions to using this define.
924 * config/darwin-protos.h (darwin_libc_has_function): New.
5339fc0c 925 * config/darwin.c (darwin_libc_has_function): Ditto.
d33d9e47
AI
926 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
927 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
928 * config/darwin.h: Ditto.
929 * config/elfos.h: Ditto.
930 * config/freebsd.h: Ditto.
931 * config/i386/cygming.h: Ditto.
932 * config/i386/djgpp.h: Ditto.
933 * config/i386/i386-interix.h: Ditto.
934 * config/microblaze/microblaze.h: Ditto.
935 * config/mmix/mmix.h: Ditto.
936 * config/gnu-user.h: Ditto.
937 * config/ia64/hpux.h: Ditto.
938 * config/pa/pa-hpux.h: Ditto.
939 * config/pdp11/pdp11.h: Ditto.
940 * config/picochip/picochip.h: Ditto.
941 * config/linux.h: Ditto.
942 * config/netbsd.h: Ditto.
943 * config/openbsd.h: Ditto.
944 * config/rs6000/aix43.h: Ditto.
945 * config/rs6000/aix51.h: Ditto.
946 * config/rs6000/aix52.h: Ditto.
947 * config/rs6000/aix53.h: Ditto.
948 * config/rs6000/aix61.h: Ditto.
949 * config/rs6000/darwin.h: Ditto.
950 * config/rs6000/linux.h: Ditto.
951 * config/rs6000/linux64.h: Ditto.
952 * config/s390/tpf.h: Ditto.
953 * config/sol2-10.h: Ditto.
954 * config/sol2.h: Ditto.
955 * config/vms/vms.h: Ditto.
956 * config/vxworks.h: Ditto.
957 * config/linux-android.c (linux_android_libc_has_function):
958 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
959 * config/linux-protos.h (linux_android_libc_has_function):
960 New declaration.
961 * config/i386/i386.c (ix86_libc_has_function): New.
962 * config/i386/i386-protos.h
963 (ix86_libc_has_function): New declaration.
964 * config/i386/i386.md
965 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
966 ("isinf<mode>2): Likewise.
967 * convert.c (convert_to_integer): Using new target hook
968 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
969 TARGET_C99_FUNCTIONS.
970 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
971 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
972 * coretypes.h (function_class): New enum for different
973 classes of functions.
974 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
975 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
976 (TARGET_HAS_SINCOS): Likewise.
977 (TARGET_LIBC_HAS_FUNCTION): New.
978 * doc/tm.texi: Regenerated.
979 * targhooks.h (default_libc_has_function): New declaration.
980 (no_c99_libc_has_function): Ditto.
981 (gnu_libc_has_function): Ditto.
982 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
983 and TARGET_HAS_SINCOS.
984
eefe9a99
JH
9852013-08-18 Jan Hubicka <jh@suse.cz>
986
987 * Makeifle-in (ipa-devirt.o): New.
988 (GTFILES): Add ipa-utils.h and ipa-devirt.c
989 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
990 (analyze_functions): Look into possible targets of polymorphic call.
991 * dumpfile.c (dump_files): Add type-inheritance dump.
992 * dumpfile.h (TDI_inheritance): New.
993 * ipa-devirt.c: New file.
994 * ipa-utils.h (odr_type_d): Forward declare.
995 (odr_type): New type.
996 (build_type_inheritance_graph): Declare.
997 (possible_polymorphic_call_targets): Declare and introduce inline
998 variant when only edge is pased.
999 (dump_possible_polymorphic_call_targets): Likewise.
1000 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
1001 * tree.c (type_in_anonymous_namespace_p): Break out from ...
1002 (types_same_for_odr): ... here.
1003 * tree.h (type_in_anonymous_namespace_p): Declare.
1004
29b89442
JJ
10052013-08-18 Jakub Jelinek <jakub@redhat.com>
1006
1007 PR tree-optimization/58006
1008 * tree-parloops.c (take_address_of): Don't ICE if get_name
1009 returns NULL.
1010 (eliminate_local_variables_stmt): Remove clobber stmts.
1011
4f219961
EB
10122013-08-18 Eric Botcazou <ebotcazou@adacore.com>
1013
1014 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
1015 error message is issued for an alias to undefined symbol.
1016
1d5755ef
JH
10172013-08-18 Jan Hubicka <jh@suse.cz>
1018
1019 * cgraph.c (cgraph_create_indirect_edge): Discover
1020 polymorphic calls and record basic info into indirect_info.
1021 * gimple-fold.c (gimple_fold_call): When doing BINFO based
1022 devirtualization, ignore objc function calls.
1023 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
1024 call with no parm index info.
1025 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
1026 * tree.c (virtual_method_call_p): New function.
1027 * tree.h (virtual_method_call_p): Declare.
1028
5945bebf
JH
10292013-08-16 Jan Hubicka <jh@suse.cz>
1030
1031 PR middle-end/58179
1032 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
1033
47fa5d23
DE
10342013-08-16 David Edelsohn <dje.gcc@gmail.com>
1035
1036 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
1037 attribute.
1038
c74f54a0
DM
10392013-08-16 David Malcolm <dmalcolm@redhat.com>
1040
1041 * gengtype.c (type_for_name): Add special-case support for
1042 locating types within the "gcc::" namespace.
1043 (open_base_files): Emit a "using namespace gcc" directive.
1044
f758f299
MM
10452013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
1046
1047 PR target/58160
1048 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
1049 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
1050
1051 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
1052 array instead of each individual operand as a separate argument.
1053 (emit_fusion_gpr_load): Likewise.
1054 (expand_fusion_gpr_load): Add new function declaration.
1055
1056 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
1057 signature to have the operands passed as an array, instead of as
1058 separate arguments. Allow ZERO_EXTEND to be in the memory
1059 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
1060 depend on the register live/dead flags when peepholes are run.
1061 (expand_fusion_gpr_load): New function to be called from the
1062 peephole2 pass, to change the register that addis sets to be the
1063 target register.
1064 (emit_fusion_gpr_load): Change the calling signature to have the
1065 operands passed as an array, instead of as separate arguments.
1066 Allow ZERO_EXTEND to be in the memory address, and also
1067 SIGN_EXTEND if -mpower8-fusion-sign.
1068
1069 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
1070 unspec enumeration.
1071 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
1072 adjust the register addis loads up in the peephole2 pass. Do not
5339fc0c 1073 depend on the register live/dead state when the peephole pass is done.
f758f299 1074
158f4e4f
DM
10752013-08-16 David Malcolm <dmalcolm@redhat.com>
1076
1077 * gengtype.c (create_user_defined_type): Ensure that the kind
1078 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
1079 declaration is seen before the GTY((user)) marking.
1080
22f8cea5
BE
10812013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
1082
1083 PR target/58105
1084 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
1085
c49bdb2e
JH
10862013-08-16 Jan Hubicka <jh@suse.cz>
1087
1088 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
1089 arugment expected_type.
1090 (gimple_fold_call): Use it.
1091 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
1092 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
22f8cea5 1093 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
c49bdb2e
JH
1094 (try_make_edge_direct_virtual_call): Likewise.
1095 * tree.c (obj_type_ref_class): New.
1096 * tree.h (obj_type_ref_class): Use it.
1097
4042dca9
GDR
10982013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
1099
1100 * sched-vis.c (rtl_slim_pp_initialized): Remove.
1101 (rtl_slim_pp): Likewise.
1102 (init_rtl_slim_pretty_print): Likewise.
1103 (dump_value_slim): Don't call it. Use local pretty printer.
1104 (dump_insn_slim): Likewise.
1105 (dump_rtl_slim): Likewise.
1106 (str_pattern_slim): Likewise.
1107 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
1108 Simplify.
1109
7a460594
JJ
11102013-08-16 Jakub Jelinek <jakub@redhat.com>
1111
639dc669
JJ
1112 PR tree-optimization/58164
1113 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
1114 walk gimple_goto_dest of GIMPLE_GOTO.
1115
7a460594
JJ
1116 PR tree-optimization/58165
1117 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
1118 bi_call must be the last stmt in a bb, don't split_block, instead
1119 use fallthru edge from it and give up if there is none.
1120 Release conds vector when returning early.
1121
e3c02cc7
XDL
11222013-08-14 Xinliang David Li <davidxl@google.com>
1123
1124 * config/i386/i386.c (ix86_option_override_internal):
1125 Remove unused variable and field.
1126
6469da2c
BS
11272013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1128
1129 PR target/57949
22f8cea5 1130 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
6469da2c
BS
1131 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
1132 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
1133 and Linux, correct BLKmode alignment when 128-bit alignment is
1134 required and compatibility flag is not set.
22f8cea5
BE
1135 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
1136 for zero-size arguments when compatibility flag is not set.
6469da2c 1137
4ca890e2
JJ
11382013-08-14 Jakub Jelinek <jakub@redhat.com>
1139
1140 PR tree-optimization/58145
1141 * tree-sra.c (build_ref_for_offset): If prev_base has
1142 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
1143
daec1759 11442013-08-14 Xinliang David Li <davidxl@google.com>
4ca890e2 1145
daec1759 1146 * config/i386/i386.c (ix86_option_override_internal):
e3c02cc7 1147 Fix uninitialized variable error.
daec1759 1148
3ad20bd4
XDL
11492013-08-14 Xinliang David Li <davidxl@google.com>
1150
1151 * config/i386/i386.opt: Define two new options.
1152 * config/i386/x86-tune.def: Add arch selector field in macros.
1153 * config/i386/i386.h: Adjust macro definition.
1154 * config/i386/i386.c (ix86_option_override_internal):
1155 Refactor the code.
1156 (parse_mtune_ctrl_str): New function.
1157 (set_ix86_tune_features): New function.
1158 (ix86_function_specific_restore): Call the new helper function.
1159
e839e2a9
AB
11602013-08-14 Andrey Belevantsev <abel@ispras.ru>
1161
1162 PR rtl-optimization/57662
1163 * sel-sched.c (code_motion_process_successors): When the current insn
1164 is removed after the recursive traversal, break from the loop.
1165 Add comments and debug printouts.
1166
27ed665f
JJ
11672013-08-14 Jakub Jelinek <jakub@redhat.com>
1168 Alexandre Oliva <aoliva@redhat.com>
1169
1170 PR target/58067
1171 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
1172 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
1173 there also UNSPEC_PLTOFF.
1174
61c1a609
MP
11752013-08-14 Marek Polacek <polacek@redhat.com>
1176
1177 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
1178 NUM_CONDITIONS bit positions.
1179
0e901c67
CC
11802013-08-13 Cary Coutant <ccoutant@google.com>
1181
1182 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
1183 (attr_checksum): Hash vector contents instead of pointer.
1184 (attr_checksum_ordered): Likewise.
1185
061eff6d
UB
11862013-08-13 Uros Bizjak <ubizjak@gmail.com>
1187
1188 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
1189 when Pmode != word_mode. Add length_address attribute.
1190 (sse3_monitor_<mode>): Merge from sse3_monitor and
1191 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
1192 Pmode != word_mode. Update insn length attribute.
1193 * config/i386/i386.c (ix86_option_override_internal): Update
1194 ix86_gen_monitor selection for merged sse3_monitor insn.
1195
8ec9249b
JB
11962013-08-13 Julian Brown <julian@codesourcery.com>
1197
1198 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
1199 perform invalid legitimization on greater-than-word-size modes for
1200 TARGET_E500_DOUBLE.
1201
761a8eb7
VM
12022013-08-13 Vladimir Makarov <vmakarov@redhat.com>
1203
1204 * ira.c (setup_class_translate_array): Use aclass instead of cl
1205 for classes not fully covered by allocno classes.
1206
99c2bd54
JJ
12072013-08-13 Jakub Jelinek <jakub@redhat.com>
1208
4029a5e0
JJ
1209 PR tree-optimization/57661
1210 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
1211 * tree-inline.c (tree_function_versioning): Initialize it.
1212 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
1213 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
1214 that is not being copied.
1215
99c2bd54
JJ
1216 PR sanitizer/56417
1217 * asan.c (instrument_strlen_call): Fix typo in comment.
1218 Use char * type even for the lhs of POINTER_PLUS_EXPR.
1219
b5f8f063
SE
12202013-08-13 Steve Ellcey <sellcey@mips.com>
1221
1222 * config/mips/mips.md (prefetch): Use lw instead of ld on
1223 loongson in 32bit mode.
1224
4de80584
NC
12252013-08-13 Nick Clifton <nickc@redhat.com>
1226
1227 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
1228
09ce3660
JH
12292013-08-13 Jan Hubicka <jh@suse.cz>
1230
1231 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
1232 introduced edge; fix typo in sanity check.
1233 (cgraph_resolve_speculation): Export; improve diagnostic.
1234 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
1235 speculation at type mismatch.
1236 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
1237 (cgraph_resolve_speculation): Declare.
1238 (symtab_can_be_discarded): New function.
1239 * value-prof.c (gimple_ic_transform): Remove actual transform code.
1240 * ipa-inline-transform.c (speculation_removed): New global var.
1241 (clone_inlined_nodes): See if speculation can be removed.
1242 (inline_call): If speculations was removed, we growths may not match.
1243 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
1244 (speculation_useful_p): New function.
1245 (resolve_noninline_speculation): New function.
1246 (inline_small_functions): Resolve useless speculations.
1247 * ipa-inline.h (speculation_useful_p): Declare
1248 * ipa.c (can_replace_by_local_alias): Simplify.
1249 (ipa_profile): Produce speculative calls in non-lto, too;
1250 add simple cost model; produce local aliases.
1251
f971dc24
DM
12522013-08-13 David Malcolm <dmalcolm@redhat.com>
1253
1254 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
061eff6d 1255 PASS_MANAGER_H.
f971dc24 1256
2e507b9a
PC
12572013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
1258
1259 * config/i386/i386.c (ix86_function_versions): Use error + inform.
1260
c97fd4b8
UB
12612013-08-12 Uros Bizjak <ubizjak@gmail.com>
1262
1263 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
1264 iterator instead of X87MODEF.
1265
12662013-08-12 Perez Read <netfirewall@gmail.com>
1267
1268 PR target/58132
1269 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
1270 operand 0 for intel asm alternative.
1271 (*movabs<mode>_2): Ditto for operand 1.
1272
f4f4204c
JG
12732013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
1274
1275 * config/aarch64/arm_none.h
1276 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
1277
133b1a8e
NC
12782013-08-12 Nick Clifton <nickc@redhat.com>
1279
1280 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
1281
15dd8b3a
YR
12822013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
1283
1284 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
1285 expand for QI/HImode operand to produce more effictive code for
1286 unsigned char(short) --> float(double) conversion.
1287
94109a6a
AM
12882013-08-12 Alexander Monakov <amonakov@ispras.ru>
1289
1290 * doc/invoke.texi: Mention that -ftls-model does not force the final
1291 model.
1292
4e115102
MP
12932013-08-12 Marek Polacek <polacek@redhat.com>
1294 Marc Glisse <marc.glisse@inria.fr>
1295
1296 PR tree-optimization/57980
1297 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
1298 when creating -1 constant.
1299
748d71f3
JH
13002013-08-10 Jan Hubicka <jh@suse.cz>
1301
1f97e193 1302 Workaround binutils PR14342.
748d71f3
JH
1303 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
1304 (gimple_init_edge_profiler): Likewise.
1305 (gimple_gen_ic_func_profiler): Likewise.
1306
5979aa54
JH
13072013-08-09 Jan Hubicka <jh@suse.cz>
1308
1309 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
1310
ad83025e
XDL
13112013-08-09 Xinliang David Li <davidxl@google.com>
1312
1313 * config/i386/stringop.def: New file.
1314 * config/i386/stringop.opt: New file.
1315 * config/i386/i386-opts.h: Include stringopt.def.
1316 * config/i386/i386.opt: Include stringopt.opt.
1317 * config/i386/i386.c (ix86_option_override_internal):
c97fd4b8 1318 Override default size based stringop inline strategies with options.
ad83025e
XDL
1319 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
1320 New function.
1321
e59df5fd
JH
13222013-08-09 Jan Hubicka <jh@suse.cz>
1323
c97fd4b8 1324 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
e59df5fd 1325
634ab819
JH
13262013-08-09 Jan Hubicka <jh@suse.cz>
1327
1328 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
1329 CGRAPH_FREQ_MAX.
1330 (dump_cgraph_node): Dump profile-id.
1331 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
1332 and common_target_probability.
1333 * lto-cgraph.c (lto_output_edge): Stream common targets.
1334 (lto_output_node): Stream profile ids.
1335 (input_node): Stream profile ids.
1336 (input_edge): Stream common targets.
1337 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
1338 * ipa.c: Include value-prof.h
1339 (ipa_profile_generate_summary): Turn indirect call statement histograms
1340 into common targets.
1341 (ipa_profile): Turn common targets into speculative edges.
1342
2fa3d31b
JH
13432013-08-09 Jan Hubicka <jh@suse.cz>
1344
1345 * cgraph.h (cgraph_node): Add profile_id.
1346 * value-prof.c (cgraph_node_map): Turn into pointer_map.
c97fd4b8 1347 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
2fa3d31b
JH
1348 (del_node_map): Update.
1349 (find_func_by_funcdef_no): Replace by ...
1350 (find_func_by_profile_id): ... this one.
1351 (gimple_ic_transform): Do not remove useful histograms when
1352 speculation is not done; dump info when indirect call removal
1353 can happen at LTO.
1354 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
1355 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
1356 (__gcov_indirect_call_profiler_v2): .. this one.
1357 * profile.h (init_node_map): Update.
1358 * coverage.c (coverage_compute_profile_id): New function.
1359 * coverage.h (coverage_compute_profile_id): Declare.
1360 * tree-profile.c (init_ic_make_global_vars): Make
1361 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
1362 (gimple_init_edge_profiler): Update prototype of
1363 __gcov_indirect_call_profiler.
1364 (gimple_gen_ic_func_profiler): Simplify.
1365 (tree_profiling): Use init_node_map
1366
042ae7d2
JH
13672013-08-09 Jan Hubicka <jh@suse.cz>
1368
c97fd4b8
UB
1369 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
1370 non-speculative refs.
042ae7d2
JH
1371 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
1372 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
1373 (cgraph_set_call_stmt): Likewise.
1374 (cgraph_create_edge_1): Fix release checking compilatoin;
1375 clear lto_stmt_uid.
1376 (cgraph_free_edge): Free indirect info.
1377 (cgraph_turn_edge_to_speculative): New function.
1378 (cgraph_speculative_call_info): New function.
1379 (cgraph_make_edge_direct): Return direct edge; handle speculation.
c97fd4b8 1380 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
042ae7d2
JH
1381 (dump_cgraph_node): Dump speculation.
1382 (verify_edge_count_and_frequency): Accept speculative edges.
1383 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
1384 (verify_cgraph_node): Handle speculation.
1385 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
1386 (cgraph_set_call_stmt): Update prototype.
1387 (cgraph_make_edge_direct): Update prototype.
1388 (cgraph_speculative_call_info): Declare.
1389 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
1390 to change; update call of ipa_find_references.
1391 * ipa-ref.c (ipa_record_reference): Fix return value; clear
1392 lto_stmt_uid and speculative flags.
1393 (ipa_dump_references): Dump speculation.
1394 (ipa_clone_references): Clone speculative flag.
1395 (ipa_clone_referring): Likewise.
1396 (ipa_clone_ref): New function.
1397 (ipa_find_reference): Look into lto_stmt_uids
1398 (ipa_clear_stmts_in_references): Do not clear speculative calls.
1399 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
1400 (ipa_find_reference): Update declaration.
1401 (ipa_clone_ref): Declare.
1402 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
1403 stream speculative flag.
1404 (lto_output_ref): Stream statements uids and speculation.
1405 (input_ref): Likewise.
1406 (input_edge): Stream speuclation.
1407 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
1408 (cgraph_set_call_stmt_including_clones): Handle speculation.
1409 * ipa-inline.c (heap_edge_removal_hook): New function.
1410 (inline_small_functions): Register it.
1411 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
1412 also initialize refs.
1413 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
1414 edge to change.
1415 (try_make_edge_direct_simple_call): Likewise.
1416 (try_make_edge_direct_simple_call): Likewise.
1417 (update_indirect_edges_after_inlining): Likewise.
1418 (remove_described_reference): Look proper lto_stmt_uid.
1419 (propagate_controlled_uses): Likewise.
1420 (propagate_controlled_uses): Liekwise.
1421 * tree-inline.c (copy_bb): Copy speculative edges.
1422 (redirect_all_calls): New function.
c97fd4b8
UB
1423 (copy_cfg_body): Do redirection after loop info is updated.
1424 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
042ae7d2 1425
aa1e10cc
JH
14262013-08-09 Jan Hubicka <jh@suse.cz>
1427
1428 * lto-streamer-out.c (output_function): Renumber PHIs.
1429 * lto-streamer-in.c (input_function): Likewise.
1430
66adb8eb
JG
14312013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
1432
1433 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
1434 (get_lane_unsigned): Likewise.
1435 (dup_lane_scalar): Likewise.
1436 (get_lane): enable for VALL.
1437 * config/aarch64/aarch64-simd.md
1438 (aarch64_dup_lane_scalar<mode>): Remove.
1439 (aarch64_get_lane_signed<mode>): Likewise.
1440 (aarch64_get_lane_unsigned<mode>): Likewise.
1441 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
1442 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
1443 (aarch64_get_lane<mode>): Enable for all vector modes.
1444 (aarch64_get_lanedi): Remove misleading constraints.
1445 * config/aarch64/arm_neon.h
1446 (__aarch64_vget_lane_any): Define.
1447 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
1448 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
1449 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
1450 * config/aarch64/iterators.md (VDQQH): New.
1451 (VDQQHS): Likewise.
1452 (vwcore): Likewise.
1453
1f65ae7a
EB
14542013-08-09 Eric Botcazou <ebotcazou@adacore.com>
1455
1456 * configure.ac: Add GAS check for LEON instructions on SPARC.
1457 * configure: Regenerate.
1458 * config.in: Likewise.
1459 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
1460 sparc*-*-* block.
1461 * config/sparc/sparc.opt (LEON, LEON3): New masks.
1462 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
1463 for LEON or LEON3.
1464 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
1465 (AS_LEON_FLAG): New macro.
1466 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
1467 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
1468 Deal with LEON and LEON3 for the memory model.
23a6cb78 1469 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
1f65ae7a
EB
1470 (atomic_compare_and_swap<mode>_1): Likewise.
1471 (*atomic_compare_and_swap<mode>_1): Likewise.
1472
ff522f7f
ZC
14732013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
1474
1475 * config/arm/neon.md (vcond): Fix floating-point vector
1476 comparisons against 0.
1477
cb1cca12
VM
14782013-08-08 Vladimir Makarov <vmakarov@redhat.com>
1479
1480 * lra-constraints.c (emit_spill_move): Remove assert.
1481 (process_alt_operands): Add more debugging
1482 output. Increase reject for spilling into memory. Decrease
1483 reject for reloading scratch.
1484 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
1485
a3719e31
SE
14862013-08-08 Steve Ellcey <sellcey@mips.com>
1487
1488 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
1489 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
1490 micromips incompatible. Add nan2008.
1491 (MULTILIB_DIRNAMES): Add nan2008.
1492 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
1493 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
1494 and micromips incompatible. Add nan2008.
1495 (MULTILIB_DIRNAMES): Add nan2008.
1496 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
1497
f40423e2
RS
14982013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
1499
1500 PR rtl-optimization/58079
1501 * combine.c (combine_simplify_rtx): Avoid using SUBST if
1502 simplify_comparison has widened a comparison with an integer.
1503
869b9125
KT
15042013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1505
1506 * config/arm/neon.md (movmisalign<mode>): Disable when we
1507 don't allow unaligned accesses.
1508 (*movmisalign<mode>_neon_store): Likewise.
1509 (*movmisalign<mode>_neon_load): Likewise.
1510 (*movmisalign<mode>_neon_store): Likewise.
1511 (*movmisalign<mode>_neon_load): Likewise.
1512
71cafea9
JH
15132013-08-08 Jan Hubicka <jh@suse.cz>
1514
1515 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
1516 (make_pass_rebuild_cgraph_edges): Also clear references.
1517 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
1518 * ipa-inline-transform.c (inline_transform): Remove all references
1519 after inlining.
c97fd4b8
UB
1520 * cgraphunit.c (expand_function): Remove all references after
1521 expansion.
71cafea9
JH
1522 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
1523 (ipa_find_reference): Rewrite to iterator.
1524 (remove_stmt_references): Likewise.
1525 (ipa_clear_stmts_in_references): New function.
1526 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
03b0ee0a
UB
1527 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
1528 clear references.
71cafea9
JH
1529 * ipa-split.c (split_function): Remove references in split function.
1530
27d2e612
RE
15312013-08-08 Richard Earnshaw <rearnsha@arm.com>
1532
1533 PR target/57431
1f65ae7a 1534 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
27d2e612
RE
1535 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
1536
5efc661c
RE
15372013-08-08 Richard Earnshaw <rearnsha@arm.com>
1538
1539 PR target/56979
1f65ae7a 1540 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
5efc661c
RE
1541 suggested mode for the assignment isn't compatible with the
1542 registers required.
1543
f276d31d
BE
15442013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
1545
1546 PR target/58065
1547 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
1548
4b8bc035
XDL
15492013-08-07 Xinliang David Li <davidxl@google.com>
1550
1551 * config/i386/i386.opt: New option -mtune-ctrl=.
1552 * config/i386/x86-tune.def: New file.
1553 * config/i386/i386.h: include x86-tune.def.
1554 * config/i386/i386.c (ix86_option_override_internal):
1555 Parsing -mtune-ctrl= option and set tune features.
1556
12211b99 15572013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
a5b38740
OE
1558
1559 PR other/12081
03b0ee0a 1560 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
a5b38740
OE
1561 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
1562 to gen_2arg_fn_t.
1563
5cf6635b
EB
15642013-08-07 Eric Botcazou <ebotcazou@adacore.com>
1565
1566 * rtl.h (update_alignments): Declare.
1567 * final.c (grow_label_align): New function extracted from...
1568 (shorten_branches): ...here. Call it.
1569 (update_alignments): New function.
1570 * reorg.c (sibling_labels): New variable.
1571 (get_label_before): Add SIBLING parameter. If it is non-zero, push
1572 the new label along with it onto the sibling_labels vector.
1573 (fill_simple_delay_slots): Adjust call to get_label_before.
1574 (fill_slots_from_thread): Likewise.
1575 (relax_delay_slots): Likewise.
1576 (make_return_insns): Likewise.
1577 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
1578
3c8ca1ab
EB
15792013-08-07 Eric Botcazou <ebotcazou@adacore.com>
1580
1581 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
1582 document its semantics.
1583 (diagnostic_report_diagnostic): Adjust accordingly.
1584
5ee5b32c
DM
15852013-08-07 David Malcolm <dmalcolm@redhat.com>
1586
03b0ee0a 1587 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
5ee5b32c
DM
1588 (sparc_option_override): ...and port to new C++ pass API.
1589 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
1590
abd566fa
PB
15912013-08-07 Peter Bergner <bergner@vnet.ibm.com>
1592
1593 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
1594
2077db1b
CT
15952013-08-06 Caroline Tice <cmtice@google.com>
1596
1597 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
1598 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
1599 * tree-pass.h: Add pass_vtable_verify.
1600 * varasm.c (assemble_variable): Add code to properly set the comdat
1601 section and name for the .vtable_map_vars section.
1602 (assemble_vtyv_preinit_initializer): New function.
1603 (default_sectin_type_flags): Make sure .vtable_map_vars section has
1604 LINK_ONCE flag.
1605 * output.h: Add function decl for assemble_vtv_preinit_initializer.
1606 * vtable-verify.c: New file.
1607 * vtable-verify.h: New file.
1608 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
1609 initialiation levels.
1610 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
1611 * passes.def: Insert pass_vtable_verify.
1612 * aclocal.m4: Reorder includes.
1613 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
1614 -fvtv-counts options.
1615 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
1616 as appropriate, if -fvtable-verify=... is used.
1617 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
1618 -fvtable-verify=... is used.
1619 * Makefile.in (OBJS): Add vtable-verify.o to list.
1620 (vtable-verify.o): Add new build rule.
1621 (GTFILES): Add vtable-verify.c to list.
1622 * common.opt (fvtable-verify=): New flag.
1623 (vtv_priority): Values for fvtable-verify= flag.
1624 (fvtv-counts): New flag.
1625 (fvtv-debug): New flag.
1626 * tree.h (save_vtable_map_decl): New extern function decl.
1627
03085d1c
DM
16282013-08-07 David Malcolm <dmalcolm@redhat.com>
1629
1630 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
1631 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
1632 (pass_data_rl78_devirt): ...new pass_data instance and...
1633 (make_pass_rl78_devirt): ...new function.
1634 (rl78_asm_file_start): Port pass registration to new C++ API.
1635
05555c4a
DM
16362013-08-07 David Malcolm <dmalcolm@redhat.com>
1637
1638 * coretypes.h (rtl_opt_pass): Add.
1639 (gcc::context): Add.
1640 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
1641 (epiphany_init): Port to new C++ pass API.
1642 (epiphany_optimize_mode_switching): Likewise.
1643 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
1644 (pass_manager::get_pass_mode_switching): New.
1645 (pass_manager::get_pass_peephole2): New.
1646 * mode-switching.c (pass_mode_switching): Add clone method.
1647 * recog.c (pass_peephole2): Add clone method.
1648 (pass_split_all_insns): Add clone method.
1649
c5a12e26
DM
16502013-08-06 David Malcolm <dmalcolm@redhat.com>
1651
03b0ee0a
UB
1652 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
1653 (mips_option_override): ...here, porting to new C++ API for passes.
c5a12e26 1654
a2e2a668
JH
16552013-08-06 Jan Hubicka <jh@suse.cz>
1656
1657 * cgraph.c (cgraph_get_body): New function based on lto.c
1658 implementation.
1659 * cgraph.h (cgraph_get_body): Declare.
03b0ee0a
UB
1660 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
1661 LTO paths.
a2e2a668
JH
1662 * cgraphunit.c (expand_function): Get body prior expanding.
1663 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
03b0ee0a
UB
1664 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
1665 really need.
a2e2a668
JH
1666 * passes.c (do_per_function_toporder): Get body.
1667 * tree-inline.c (expand_call_inline): Get body prior inlining it.
1668 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
1669
15682f24
MJ
16702013-08-06 Martin Jambor <mjambor@suse.cz>
1671
1672 PR fortran/57987
1673 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
1674 is not re-finalized. Rename second parameter to no_collect.
1675
78f6dd68
MJ
16762013-08-06 Martin Jambor <mjambor@suse.cz>
1677
1678 PR middle-end/58041
1679 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
1680 MEM_REF has proper alignment information.
1681
12211b99 16822013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
eb923e54
OE
1683
1684 PR other/12081
1685 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
1686 class insn_gen_fn.
1687 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
1688 rtx (*) (rtx, ...) with insn_gen_fn.
1689 * genoutput.c (output_insn_data): Cast gen_? function pointers to
1690 insn_gen_fn::stored_funcptr. Add initializer braces.
1691
8ac69a6c
DM
16922013-08-05 David Malcolm <dmalcolm@redhat.com>
1693
1694 Rewrite how instances of passes are cloned to remove assumptions
1695 about their sizes (thus allowing pass subclasses to have
1696 additional data fields, albeit non-GC-managed ones at this point).
1697
1698 * passes.c (make_pass_instance): Now that passes have clone
1699 methods, rewrite this function to eliminate XNEW and memcpy
1700 calls that used hardcoded sizes. Since this function no longer
1701 creates pass instances, rename it to...
03b0ee0a
UB
1702 (add_pass_instance): ...this. Document the old way that passes were
1703 numbered and flagged, and rework this function to continue using it.
8ac69a6c
DM
1704 (next_pass_1): Add an initial_pass argument for use by
1705 add_pass_instance.
1706 (position_pass): When adding multiple instances of a pass, use
1707 the pass's clone method, rather than relying on the XNEW/memcpy
1708 within the former make_pass_instance (now add_pass_instance).
03b0ee0a
UB
1709 (pass_manager::pass_manager): When invoking next_pass_1, also supply
1710 the initial instance of the current pass within the pass manager.
8ac69a6c 1711
27a4cd48
DM
17122013-08-05 David Malcolm <dmalcolm@redhat.com>
1713
1714 This is the automated part of the conversion of passes from C
1715 structs to C++ classes.
1716
1717 Patch autogenerated by refactor_passes.py from
1718 https://github.com/davidmalcolm/gcc-refactoring-scripts
1719 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
1720
1721 * asan.c (pass_asan): Convert from a global struct to a subclass of
1722 gimple_opt_pass along with...
1723 (pass_data_asan): ...new pass_data instance and...
1724 (make_pass_asan): ...new function.
1725 (pass_asan_O0): Convert from a global struct to a subclass of
1726 gimple_opt_pass along with...
1727 (pass_data_asan_O0): ...new pass_data instance and...
1728 (make_pass_asan_O0): ...new function.
1729 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
1730 subclass of rtl_opt_pass along with...
1731 (pass_data_inc_dec): ...new pass_data instance and...
1732 (make_pass_inc_dec): ...new function.
1733 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
1734 a subclass of rtl_opt_pass along with...
1735 (pass_data_reorder_blocks): ...new pass_data instance and...
1736 (make_pass_reorder_blocks): ...new function.
1737 (pass_duplicate_computed_gotos): Convert from a global struct to a
1738 subclass of rtl_opt_pass along with...
1739 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
1740 (make_pass_duplicate_computed_gotos): ...new function.
1741 (pass_partition_blocks): Convert from a global struct to a subclass of
1742 rtl_opt_pass along with...
1743 (pass_data_partition_blocks): ...new pass_data instance and...
1744 (make_pass_partition_blocks): ...new function.
1745 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
1746 struct to a subclass of rtl_opt_pass along with...
1747 (pass_data_branch_target_load_optimize1): ...new pass_data instance
1748 and...
1749 (make_pass_branch_target_load_optimize1): ...new function.
1750 (pass_branch_target_load_optimize2): Convert from a global struct to a
1751 subclass of rtl_opt_pass along with...
1752 (pass_data_branch_target_load_optimize2): ...new pass_data instance
1753 and...
1754 (make_pass_branch_target_load_optimize2): ...new function.
1755 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
1756 of rtl_opt_pass along with...
1757 (pass_data_jump): ...new pass_data instance and...
1758 (make_pass_jump): ...new function.
1759 (pass_jump2): Convert from a global struct to a subclass of
1760 rtl_opt_pass along with...
1761 (pass_data_jump2): ...new pass_data instance and...
1762 (make_pass_jump2): ...new function.
1763 * cfgexpand.c (pass_expand): Convert from a global struct to a
1764 subclass of rtl_opt_pass along with...
1765 (pass_data_expand): ...new pass_data instance and...
1766 (make_pass_expand): ...new function.
1767 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
1768 of rtl_opt_pass along with...
1769 (pass_data_free_cfg): ...new pass_data instance and...
1770 (make_pass_free_cfg): ...new function.
1771 (pass_into_cfg_layout_mode): Convert from a global struct to a
1772 subclass of rtl_opt_pass along with...
1773 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
1774 (make_pass_into_cfg_layout_mode): ...new function.
1775 (pass_outof_cfg_layout_mode): Convert from a global struct to a
1776 subclass of rtl_opt_pass along with...
1777 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
1778 (make_pass_outof_cfg_layout_mode): ...new function.
1779 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
1780 struct to a subclass of gimple_opt_pass along with...
1781 (pass_data_build_cgraph_edges): ...new pass_data instance and...
1782 (make_pass_build_cgraph_edges): ...new function.
1783 (pass_rebuild_cgraph_edges): Convert from a global struct to a
1784 subclass of gimple_opt_pass along with...
1785 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
1786 (make_pass_rebuild_cgraph_edges): ...new function.
1787 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
1788 subclass of gimple_opt_pass along with...
1789 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
1790 and...
1791 (make_pass_remove_cgraph_callee_edges): ...new function.
1792 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
1793 struct to a subclass of rtl_opt_pass along with...
1794 (pass_data_stack_adjustments): ...new pass_data instance and...
1795 (make_pass_stack_adjustments): ...new function.
1796 * combine.c (pass_combine): Convert from a global struct to a subclass
1797 of rtl_opt_pass along with...
1798 (pass_data_combine): ...new pass_data instance and...
1799 (make_pass_combine): ...new function.
1800 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
1801 global struct to a subclass of rtl_opt_pass along with...
1802 (pass_data_compare_elim_after_reload): ...new pass_data instance
1803 and...
1804 (make_pass_compare_elim_after_reload): ...new function.
1805 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
1806 of rtl_opt_pass along with...
1807 (pass_data_rtl_cprop): ...new pass_data instance and...
1808 (make_pass_rtl_cprop): ...new function.
1809 * cse.c (pass_cse): Convert from a global struct to a subclass of
1810 rtl_opt_pass along with...
1811 (pass_data_cse): ...new pass_data instance and...
1812 (make_pass_cse): ...new function.
1813 (pass_cse2): Convert from a global struct to a subclass of
1814 rtl_opt_pass along with...
1815 (pass_data_cse2): ...new pass_data instance and...
1816 (make_pass_cse2): ...new function.
1817 (pass_cse_after_global_opts): Convert from a global struct to a
1818 subclass of rtl_opt_pass along with...
1819 (pass_data_cse_after_global_opts): ...new pass_data instance and...
1820 (make_pass_cse_after_global_opts): ...new function.
1821 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
1822 of rtl_opt_pass along with...
1823 (pass_data_ud_rtl_dce): ...new pass_data instance and...
1824 (make_pass_ud_rtl_dce): ...new function.
1825 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
1826 rtl_opt_pass along with...
1827 (pass_data_fast_rtl_dce): ...new pass_data instance and...
1828 (make_pass_fast_rtl_dce): ...new function.
1829 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
1830 a subclass of rtl_opt_pass along with...
1831 (pass_data_df_initialize_opt): ...new pass_data instance and...
1832 (make_pass_df_initialize_opt): ...new function.
1833 (pass_df_initialize_no_opt): Convert from a global struct to a
1834 subclass of rtl_opt_pass along with...
1835 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
1836 (make_pass_df_initialize_no_opt): ...new function.
1837 (pass_df_finish): Convert from a global struct to a subclass of
1838 rtl_opt_pass along with...
1839 (pass_data_df_finish): ...new pass_data instance and...
1840 (make_pass_df_finish): ...new function.
1841 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
1842 rtl_opt_pass along with...
1843 (pass_data_rtl_dse1): ...new pass_data instance and...
1844 (make_pass_rtl_dse1): ...new function.
1845 (pass_rtl_dse2): Convert from a global struct to a subclass of
1846 rtl_opt_pass along with...
1847 (pass_data_rtl_dse2): ...new pass_data instance and...
1848 (make_pass_rtl_dse2): ...new function.
1849 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
1850 subclass of rtl_opt_pass along with...
1851 (pass_data_dwarf2_frame): ...new pass_data instance and...
1852 (make_pass_dwarf2_frame): ...new function.
1853 * except.c (pass_set_nothrow_function_flags): Convert from a global
1854 struct to a subclass of rtl_opt_pass along with...
1855 (pass_data_set_nothrow_function_flags): ...new pass_data instance
1856 and...
1857 (make_pass_set_nothrow_function_flags): ...new function.
1858 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
1859 subclass of rtl_opt_pass along with...
1860 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
1861 and...
1862 (make_pass_convert_to_eh_region_ranges): ...new function.
1863 * final.c (pass_compute_alignments): Convert from a global struct to a
1864 subclass of rtl_opt_pass along with...
1865 (pass_data_compute_alignments): ...new pass_data instance and...
1866 (make_pass_compute_alignments): ...new function.
1867 (pass_final): Convert from a global struct to a subclass of
1868 rtl_opt_pass along with...
1869 (pass_data_final): ...new pass_data instance and...
1870 (make_pass_final): ...new function.
1871 (pass_shorten_branches): Convert from a global struct to a subclass of
1872 rtl_opt_pass along with...
1873 (pass_data_shorten_branches): ...new pass_data instance and...
1874 (make_pass_shorten_branches): ...new function.
1875 (pass_clean_state): Convert from a global struct to a subclass of
1876 rtl_opt_pass along with...
1877 (pass_data_clean_state): ...new pass_data instance and...
1878 (make_pass_clean_state): ...new function.
1879 * function.c (pass_instantiate_virtual_regs): Convert from a global
1880 struct to a subclass of rtl_opt_pass along with...
1881 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
1882 (make_pass_instantiate_virtual_regs): ...new function.
1883 (pass_leaf_regs): Convert from a global struct to a subclass of
1884 rtl_opt_pass along with...
1885 (pass_data_leaf_regs): ...new pass_data instance and...
1886 (make_pass_leaf_regs): ...new function.
1887 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
1888 subclass of rtl_opt_pass along with...
1889 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
1890 and...
1891 (make_pass_thread_prologue_and_epilogue): ...new function.
1892 (pass_match_asm_constraints): Convert from a global struct to a
1893 subclass of rtl_opt_pass along with...
1894 (pass_data_match_asm_constraints): ...new pass_data instance and...
1895 (make_pass_match_asm_constraints): ...new function.
1896 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
1897 subclass of rtl_opt_pass along with...
1898 (pass_data_rtl_fwprop): ...new pass_data instance and...
1899 (make_pass_rtl_fwprop): ...new function.
1900 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
1901 rtl_opt_pass along with...
1902 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
1903 (make_pass_rtl_fwprop_addr): ...new function.
1904 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
1905 rtl_opt_pass along with...
1906 (pass_data_rtl_pre): ...new pass_data instance and...
1907 (make_pass_rtl_pre): ...new function.
1908 (pass_rtl_hoist): Convert from a global struct to a subclass of
1909 rtl_opt_pass along with...
1910 (pass_data_rtl_hoist): ...new pass_data instance and...
1911 (make_pass_rtl_hoist): ...new function.
1912 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
1913 subclass of gimple_opt_pass along with...
1914 (pass_data_lower_cf): ...new pass_data instance and...
1915 (make_pass_lower_cf): ...new function.
1916 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
1917 from a global struct to a subclass of gimple_opt_pass along with...
1918 (pass_data_strength_reduction): ...new pass_data instance and...
1919 (make_pass_strength_reduction): ...new function.
1920 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
1921 of rtl_opt_pass along with...
1922 (pass_data_rtl_ifcvt): ...new pass_data instance and...
1923 (make_pass_rtl_ifcvt): ...new function.
1924 (pass_if_after_combine): Convert from a global struct to a subclass of
1925 rtl_opt_pass along with...
1926 (pass_data_if_after_combine): ...new pass_data instance and...
1927 (make_pass_if_after_combine): ...new function.
1928 (pass_if_after_reload): Convert from a global struct to a subclass of
1929 rtl_opt_pass along with...
1930 (pass_data_if_after_reload): ...new pass_data instance and...
1931 (make_pass_if_after_reload): ...new function.
1932 * init-regs.c (pass_initialize_regs): Convert from a global struct to
1933 a subclass of rtl_opt_pass along with...
1934 (pass_data_initialize_regs): ...new pass_data instance and...
1935 (make_pass_initialize_regs): ...new function.
1936 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
1937 of ipa_opt_pass_d along with...
1938 (pass_data_ipa_cp): ...new pass_data instance and...
1939 (make_pass_ipa_cp): ...new function.
1940 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
1941 global struct to a subclass of gimple_opt_pass along with...
1942 (pass_data_inline_parameters): ...new pass_data instance and...
1943 (make_pass_inline_parameters): ...new function.
1944 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
1945 subclass of gimple_opt_pass along with...
1946 (pass_data_early_inline): ...new pass_data instance and...
1947 (make_pass_early_inline): ...new function.
1948 (pass_ipa_inline): Convert from a global struct to a subclass of
1949 ipa_opt_pass_d along with...
1950 (pass_data_ipa_inline): ...new pass_data instance and...
1951 (make_pass_ipa_inline): ...new function.
1952 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
1953 struct to a subclass of gimple_opt_pass along with...
1954 (pass_data_local_pure_const): ...new pass_data instance and...
1955 (make_pass_local_pure_const): ...new function.
1956 (pass_ipa_pure_const): Convert from a global struct to a subclass of
1957 ipa_opt_pass_d along with...
1958 (pass_data_ipa_pure_const): ...new pass_data instance and...
1959 (make_pass_ipa_pure_const): ...new function.
1960 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
1961 to a subclass of ipa_opt_pass_d along with...
1962 (pass_data_ipa_reference): ...new pass_data instance and...
1963 (make_pass_ipa_reference): ...new function.
1964 * ipa-split.c (pass_split_functions): Convert from a global struct to
1965 a subclass of gimple_opt_pass along with...
1966 (pass_data_split_functions): ...new pass_data instance and...
1967 (make_pass_split_functions): ...new function.
1968 (pass_feedback_split_functions): Convert from a global struct to a
1969 subclass of gimple_opt_pass along with...
1970 (pass_data_feedback_split_functions): ...new pass_data instance and...
1971 (make_pass_feedback_split_functions): ...new function.
1972 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
1973 global struct to a subclass of simple_ipa_opt_pass along with...
1974 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
1975 instance and...
1976 (make_pass_ipa_function_and_variable_visibility): ...new function.
1977 (pass_ipa_free_inline_summary): Convert from a global struct to a
1978 subclass of simple_ipa_opt_pass along with...
1979 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
1980 (make_pass_ipa_free_inline_summary): ...new function.
1981 (pass_ipa_whole_program_visibility): Convert from a global struct to a
1982 subclass of ipa_opt_pass_d along with...
1983 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
1984 and...
1985 (make_pass_ipa_whole_program_visibility): ...new function.
1986 (pass_ipa_profile): Convert from a global struct to a subclass of
1987 ipa_opt_pass_d along with...
1988 (pass_data_ipa_profile): ...new pass_data instance and...
1989 (make_pass_ipa_profile): ...new function.
1990 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
1991 ipa_opt_pass_d along with...
1992 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
1993 (make_pass_ipa_cdtor_merge): ...new function.
1994 * ira.c (pass_ira): Convert from a global struct to a subclass of
1995 rtl_opt_pass along with...
1996 (pass_data_ira): ...new pass_data instance and...
1997 (make_pass_ira): ...new function.
1998 (pass_reload): Convert from a global struct to a subclass of
1999 rtl_opt_pass along with...
2000 (pass_data_reload): ...new pass_data instance and...
2001 (make_pass_reload): ...new function.
2002 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
2003 subclass of rtl_opt_pass along with...
2004 (pass_data_cleanup_barriers): ...new pass_data instance and...
2005 (make_pass_cleanup_barriers): ...new function.
2006 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
2007 of rtl_opt_pass along with...
2008 (pass_data_loop2): ...new pass_data instance and...
2009 (make_pass_loop2): ...new function.
2010 (pass_rtl_loop_init): Convert from a global struct to a subclass of
2011 rtl_opt_pass along with...
2012 (pass_data_rtl_loop_init): ...new pass_data instance and...
2013 (make_pass_rtl_loop_init): ...new function.
2014 (pass_rtl_loop_done): Convert from a global struct to a subclass of
2015 rtl_opt_pass along with...
2016 (pass_data_rtl_loop_done): ...new pass_data instance and...
2017 (make_pass_rtl_loop_done): ...new function.
2018 (pass_rtl_move_loop_invariants): Convert from a global struct to a
2019 subclass of rtl_opt_pass along with...
2020 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
2021 (make_pass_rtl_move_loop_invariants): ...new function.
2022 (pass_rtl_unswitch): Convert from a global struct to a subclass of
2023 rtl_opt_pass along with...
2024 (pass_data_rtl_unswitch): ...new pass_data instance and...
2025 (make_pass_rtl_unswitch): ...new function.
2026 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
2027 subclass of rtl_opt_pass along with...
2028 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
2029 and...
2030 (make_pass_rtl_unroll_and_peel_loops): ...new function.
2031 (pass_rtl_doloop): Convert from a global struct to a subclass of
2032 rtl_opt_pass along with...
2033 (pass_data_rtl_doloop): ...new pass_data instance and...
2034 (make_pass_rtl_doloop): ...new function.
2035 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
2036 a subclass of rtl_opt_pass along with...
2037 (pass_data_lower_subreg): ...new pass_data instance and...
2038 (make_pass_lower_subreg): ...new function.
2039 (pass_lower_subreg2): Convert from a global struct to a subclass of
2040 rtl_opt_pass along with...
2041 (pass_data_lower_subreg2): ...new pass_data instance and...
2042 (make_pass_lower_subreg2): ...new function.
2043 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
2044 struct to a subclass of ipa_opt_pass_d along with...
2045 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
2046 (make_pass_ipa_lto_gimple_out): ...new function.
2047 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
2048 of ipa_opt_pass_d along with...
2049 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
2050 (make_pass_ipa_lto_finish_out): ...new function.
2051 * mode-switching.c (pass_mode_switching): Convert from a global struct
2052 to a subclass of rtl_opt_pass along with...
2053 (pass_data_mode_switching): ...new pass_data instance and...
2054 (make_pass_mode_switching): ...new function.
2055 * modulo-sched.c (pass_sms): Convert from a global struct to a
2056 subclass of rtl_opt_pass along with...
2057 (pass_data_sms): ...new pass_data instance and...
2058 (make_pass_sms): ...new function.
2059 * omp-low.c (pass_expand_omp): Convert from a global struct to a
2060 subclass of gimple_opt_pass along with...
2061 (pass_data_expand_omp): ...new pass_data instance and...
2062 (make_pass_expand_omp): ...new function.
2063 (pass_lower_omp): Convert from a global struct to a subclass of
2064 gimple_opt_pass along with...
2065 (pass_data_lower_omp): ...new pass_data instance and...
2066 (make_pass_lower_omp): ...new function.
2067 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
2068 of gimple_opt_pass along with...
2069 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
2070 (make_pass_diagnose_omp_blocks): ...new function.
2071 * passes.c (pass_early_local_passes): Convert from a global struct to
2072 a subclass of simple_ipa_opt_pass along with...
2073 (pass_data_early_local_passes): ...new pass_data instance and...
2074 (make_pass_early_local_passes): ...new function.
2075 (pass_all_early_optimizations): Convert from a global struct to a
2076 subclass of gimple_opt_pass along with...
2077 (pass_data_all_early_optimizations): ...new pass_data instance and...
2078 (make_pass_all_early_optimizations): ...new function.
2079 (pass_all_optimizations): Convert from a global struct to a subclass
2080 of gimple_opt_pass along with...
2081 (pass_data_all_optimizations): ...new pass_data instance and...
2082 (make_pass_all_optimizations): ...new function.
2083 (pass_all_optimizations_g): Convert from a global struct to a subclass
2084 of gimple_opt_pass along with...
2085 (pass_data_all_optimizations_g): ...new pass_data instance and...
2086 (make_pass_all_optimizations_g): ...new function.
2087 (pass_rest_of_compilation): Convert from a global struct to a subclass
2088 of rtl_opt_pass along with...
2089 (pass_data_rest_of_compilation): ...new pass_data instance and...
2090 (make_pass_rest_of_compilation): ...new function.
2091 (pass_postreload): Convert from a global struct to a subclass of
2092 rtl_opt_pass along with...
2093 (pass_data_postreload): ...new pass_data instance and...
2094 (make_pass_postreload): ...new function.
2095 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
2096 subclass of rtl_opt_pass along with...
2097 (pass_data_gcse2): ...new pass_data instance and...
2098 (make_pass_gcse2): ...new function.
2099 * postreload.c (pass_postreload_cse): Convert from a global struct to
2100 a subclass of rtl_opt_pass along with...
2101 (pass_data_postreload_cse): ...new pass_data instance and...
2102 (make_pass_postreload_cse): ...new function.
2103 * predict.c (pass_profile): Convert from a global struct to a subclass
2104 of gimple_opt_pass along with...
2105 (pass_data_profile): ...new pass_data instance and...
2106 (make_pass_profile): ...new function.
2107 (pass_strip_predict_hints): Convert from a global struct to a subclass
2108 of gimple_opt_pass along with...
2109 (pass_data_strip_predict_hints): ...new pass_data instance and...
2110 (make_pass_strip_predict_hints): ...new function.
2111 * recog.c (pass_peephole2): Convert from a global struct to a subclass
2112 of rtl_opt_pass along with...
2113 (pass_data_peephole2): ...new pass_data instance and...
2114 (make_pass_peephole2): ...new function.
2115 (pass_split_all_insns): Convert from a global struct to a subclass of
2116 rtl_opt_pass along with...
2117 (pass_data_split_all_insns): ...new pass_data instance and...
2118 (make_pass_split_all_insns): ...new function.
2119 (pass_split_after_reload): Convert from a global struct to a subclass
2120 of rtl_opt_pass along with...
2121 (pass_data_split_after_reload): ...new pass_data instance and...
2122 (make_pass_split_after_reload): ...new function.
2123 (pass_split_before_regstack): Convert from a global struct to a
2124 subclass of rtl_opt_pass along with...
2125 (pass_data_split_before_regstack): ...new pass_data instance and...
2126 (make_pass_split_before_regstack): ...new function.
2127 (pass_split_before_sched2): Convert from a global struct to a subclass
2128 of rtl_opt_pass along with...
2129 (pass_data_split_before_sched2): ...new pass_data instance and...
2130 (make_pass_split_before_sched2): ...new function.
2131 (pass_split_for_shorten_branches): Convert from a global struct to a
2132 subclass of rtl_opt_pass along with...
2133 (pass_data_split_for_shorten_branches): ...new pass_data instance
2134 and...
2135 (make_pass_split_for_shorten_branches): ...new function.
2136 * ree.c (pass_ree): Convert from a global struct to a subclass of
2137 rtl_opt_pass along with...
2138 (pass_data_ree): ...new pass_data instance and...
2139 (make_pass_ree): ...new function.
2140 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
2141 subclass of rtl_opt_pass along with...
2142 (pass_data_stack_regs): ...new pass_data instance and...
2143 (make_pass_stack_regs): ...new function.
2144 (pass_stack_regs_run): Convert from a global struct to a subclass of
2145 rtl_opt_pass along with...
2146 (pass_data_stack_regs_run): ...new pass_data instance and...
2147 (make_pass_stack_regs_run): ...new function.
2148 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
2149 subclass of rtl_opt_pass along with...
2150 (pass_data_cprop_hardreg): ...new pass_data instance and...
2151 (make_pass_cprop_hardreg): ...new function.
2152 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
2153 subclass of rtl_opt_pass along with...
2154 (pass_data_reginfo_init): ...new pass_data instance and...
2155 (make_pass_reginfo_init): ...new function.
2156 * regmove.c (pass_regmove): Convert from a global struct to a subclass
2157 of rtl_opt_pass along with...
2158 (pass_data_regmove): ...new pass_data instance and...
2159 (make_pass_regmove): ...new function.
2160 * regrename.c (pass_regrename): Convert from a global struct to a
2161 subclass of rtl_opt_pass along with...
2162 (pass_data_regrename): ...new pass_data instance and...
2163 (make_pass_regrename): ...new function.
2164 * reorg.c (pass_delay_slots): Convert from a global struct to a
2165 subclass of rtl_opt_pass along with...
2166 (pass_data_delay_slots): ...new pass_data instance and...
2167 (make_pass_delay_slots): ...new function.
2168 (pass_machine_reorg): Convert from a global struct to a subclass of
2169 rtl_opt_pass along with...
2170 (pass_data_machine_reorg): ...new pass_data instance and...
2171 (make_pass_machine_reorg): ...new function.
2172 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
2173 of rtl_opt_pass along with...
2174 (pass_data_sched): ...new pass_data instance and...
2175 (make_pass_sched): ...new function.
2176 (pass_sched2): Convert from a global struct to a subclass of
2177 rtl_opt_pass along with...
2178 (pass_data_sched2): ...new pass_data instance and...
2179 (make_pass_sched2): ...new function.
2180 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
2181 to a subclass of rtl_opt_pass along with...
2182 (pass_data_stack_ptr_mod): ...new pass_data instance and...
2183 (make_pass_stack_ptr_mod): ...new function.
2184 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
2185 to a subclass of rtl_opt_pass along with...
2186 (pass_data_rtl_store_motion): ...new pass_data instance and...
2187 (make_pass_rtl_store_motion): ...new function.
2188 * tracer.c (pass_tracer): Convert from a global struct to a subclass
2189 of gimple_opt_pass along with...
2190 (pass_data_tracer): ...new pass_data instance and...
2191 (make_pass_tracer): ...new function.
2192 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
2193 to a subclass of gimple_opt_pass along with...
2194 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
2195 (make_pass_diagnose_tm_blocks): ...new function.
2196 (pass_lower_tm): Convert from a global struct to a subclass of
2197 gimple_opt_pass along with...
2198 (pass_data_lower_tm): ...new pass_data instance and...
2199 (make_pass_lower_tm): ...new function.
2200 (pass_tm_init): Convert from a global struct to a subclass of
2201 gimple_opt_pass along with...
2202 (pass_data_tm_init): ...new pass_data instance and...
2203 (make_pass_tm_init): ...new function.
2204 (pass_tm_mark): Convert from a global struct to a subclass of
2205 gimple_opt_pass along with...
2206 (pass_data_tm_mark): ...new pass_data instance and...
2207 (make_pass_tm_mark): ...new function.
2208 (pass_tm_edges): Convert from a global struct to a subclass of
2209 gimple_opt_pass along with...
2210 (pass_data_tm_edges): ...new pass_data instance and...
2211 (make_pass_tm_edges): ...new function.
2212 (pass_tm_memopt): Convert from a global struct to a subclass of
2213 gimple_opt_pass along with...
2214 (pass_data_tm_memopt): ...new pass_data instance and...
2215 (make_pass_tm_memopt): ...new function.
2216 (pass_ipa_tm): Convert from a global struct to a subclass of
2217 simple_ipa_opt_pass along with...
2218 (pass_data_ipa_tm): ...new pass_data instance and...
2219 (make_pass_ipa_tm): ...new function.
2220 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
2221 subclass of gimple_opt_pass along with...
2222 (pass_data_call_cdce): ...new pass_data instance and...
2223 (make_pass_call_cdce): ...new function.
2224 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
2225 subclass of gimple_opt_pass along with...
2226 (pass_data_build_cfg): ...new pass_data instance and...
2227 (make_pass_build_cfg): ...new function.
2228 (pass_split_crit_edges): Convert from a global struct to a subclass of
2229 gimple_opt_pass along with...
2230 (pass_data_split_crit_edges): ...new pass_data instance and...
2231 (make_pass_split_crit_edges): ...new function.
2232 (pass_warn_function_return): Convert from a global struct to a
2233 subclass of gimple_opt_pass along with...
2234 (pass_data_warn_function_return): ...new pass_data instance and...
2235 (make_pass_warn_function_return): ...new function.
2236 (pass_warn_function_noreturn): Convert from a global struct to a
2237 subclass of gimple_opt_pass along with...
2238 (pass_data_warn_function_noreturn): ...new pass_data instance and...
2239 (make_pass_warn_function_noreturn): ...new function.
2240 (pass_warn_unused_result): Convert from a global struct to a subclass
2241 of gimple_opt_pass along with...
2242 (pass_data_warn_unused_result): ...new pass_data instance and...
2243 (make_pass_warn_unused_result): ...new function.
2244 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
2245 a subclass of gimple_opt_pass along with...
2246 (pass_data_merge_phi): ...new pass_data instance and...
2247 (make_pass_merge_phi): ...new function.
2248 * tree-complex.c (pass_lower_complex): Convert from a global struct to
2249 a subclass of gimple_opt_pass along with...
2250 (pass_data_lower_complex): ...new pass_data instance and...
2251 (make_pass_lower_complex): ...new function.
2252 (pass_lower_complex_O0): Convert from a global struct to a subclass of
2253 gimple_opt_pass along with...
2254 (pass_data_lower_complex_O0): ...new pass_data instance and...
2255 (make_pass_lower_complex_O0): ...new function.
2256 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
2257 subclass of gimple_opt_pass along with...
2258 (pass_data_lower_eh): ...new pass_data instance and...
2259 (make_pass_lower_eh): ...new function.
2260 (pass_refactor_eh): Convert from a global struct to a subclass of
2261 gimple_opt_pass along with...
2262 (pass_data_refactor_eh): ...new pass_data instance and...
2263 (make_pass_refactor_eh): ...new function.
2264 (pass_lower_resx): Convert from a global struct to a subclass of
2265 gimple_opt_pass along with...
2266 (pass_data_lower_resx): ...new pass_data instance and...
2267 (make_pass_lower_resx): ...new function.
2268 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
2269 of gimple_opt_pass along with...
2270 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
2271 (make_pass_lower_eh_dispatch): ...new function.
2272 (pass_cleanup_eh): Convert from a global struct to a subclass of
2273 gimple_opt_pass along with...
2274 (pass_data_cleanup_eh): ...new pass_data instance and...
2275 (make_pass_cleanup_eh): ...new function.
2276 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
2277 to a subclass of simple_ipa_opt_pass along with...
2278 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
2279 (make_pass_ipa_lower_emutls): ...new function.
2280 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
2281 a subclass of gimple_opt_pass along with...
2282 (pass_data_if_conversion): ...new pass_data instance and...
2283 (make_pass_if_conversion): ...new function.
2284 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
2285 subclass of gimple_opt_pass along with...
2286 (pass_data_build_ssa): ...new pass_data instance and...
2287 (make_pass_build_ssa): ...new function.
2288 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
2289 global struct to a subclass of gimple_opt_pass along with...
2290 (pass_data_loop_distribution): ...new pass_data instance and...
2291 (make_pass_loop_distribution): ...new function.
2292 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
2293 subclass of gimple_opt_pass along with...
2294 (pass_data_mudflap_1): ...new pass_data instance and...
2295 (make_pass_mudflap_1): ...new function.
2296 (pass_mudflap_2): Convert from a global struct to a subclass of
2297 gimple_opt_pass along with...
2298 (pass_data_mudflap_2): ...new pass_data instance and...
2299 (make_pass_mudflap_2): ...new function.
2300 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
2301 subclass of gimple_opt_pass along with...
2302 (pass_data_mudflap_1): ...new pass_data instance and...
2303 (make_pass_mudflap_1): ...new function.
2304 (pass_mudflap_2): Convert from a global struct to a subclass of
2305 gimple_opt_pass along with...
2306 (pass_data_mudflap_2): ...new pass_data instance and...
2307 (make_pass_mudflap_2): ...new function.
2308 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
2309 gimple_opt_pass along with...
2310 (pass_data_nrv): ...new pass_data instance and...
2311 (make_pass_nrv): ...new function.
2312 (pass_return_slot): Convert from a global struct to a subclass of
2313 gimple_opt_pass along with...
2314 (pass_data_return_slot): ...new pass_data instance and...
2315 (make_pass_return_slot): ...new function.
2316 * tree-object-size.c (pass_object_sizes): Convert from a global struct
2317 to a subclass of gimple_opt_pass along with...
2318 (pass_data_object_sizes): ...new pass_data instance and...
2319 (make_pass_object_sizes): ...new function.
2320 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
2321 global struct to a subclass of gimple_opt_pass along with...
2322 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
2323 and...
2324 (make_pass_cleanup_cfg_post_optimizing): ...new function.
2325 (pass_fixup_cfg): Convert from a global struct to a subclass of
2326 gimple_opt_pass along with...
2327 (pass_data_fixup_cfg): ...new pass_data instance and...
2328 (make_pass_fixup_cfg): ...new function.
2329 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
2330 (make_pass_mudflap_1): ...new function.
2331 (pass_mudflap_2): Replace declaration with that of...
2332 (make_pass_mudflap_2): ...new function.
2333 (pass_asan): Replace declaration with that of...
2334 (make_pass_asan): ...new function.
2335 (pass_asan_O0): Replace declaration with that of...
2336 (make_pass_asan_O0): ...new function.
2337 (pass_tsan): Replace declaration with that of...
2338 (make_pass_tsan): ...new function.
2339 (pass_tsan_O0): Replace declaration with that of...
2340 (make_pass_tsan_O0): ...new function.
2341 (pass_lower_cf): Replace declaration with that of...
2342 (make_pass_lower_cf): ...new function.
2343 (pass_refactor_eh): Replace declaration with that of...
2344 (make_pass_refactor_eh): ...new function.
2345 (pass_lower_eh): Replace declaration with that of...
2346 (make_pass_lower_eh): ...new function.
2347 (pass_lower_eh_dispatch): Replace declaration with that of...
2348 (make_pass_lower_eh_dispatch): ...new function.
2349 (pass_lower_resx): Replace declaration with that of...
2350 (make_pass_lower_resx): ...new function.
2351 (pass_build_cfg): Replace declaration with that of...
2352 (make_pass_build_cfg): ...new function.
2353 (pass_early_tree_profile): Replace declaration with that of...
2354 (make_pass_early_tree_profile): ...new function.
2355 (pass_cleanup_eh): Replace declaration with that of...
2356 (make_pass_cleanup_eh): ...new function.
2357 (pass_sra): Replace declaration with that of...
2358 (make_pass_sra): ...new function.
2359 (pass_sra_early): Replace declaration with that of...
2360 (make_pass_sra_early): ...new function.
2361 (pass_early_ipa_sra): Replace declaration with that of...
2362 (make_pass_early_ipa_sra): ...new function.
2363 (pass_tail_recursion): Replace declaration with that of...
2364 (make_pass_tail_recursion): ...new function.
2365 (pass_tail_calls): Replace declaration with that of...
2366 (make_pass_tail_calls): ...new function.
2367 (pass_tree_loop): Replace declaration with that of...
2368 (make_pass_tree_loop): ...new function.
2369 (pass_tree_loop_init): Replace declaration with that of...
2370 (make_pass_tree_loop_init): ...new function.
2371 (pass_lim): Replace declaration with that of...
2372 (make_pass_lim): ...new function.
2373 (pass_tree_unswitch): Replace declaration with that of...
2374 (make_pass_tree_unswitch): ...new function.
2375 (pass_predcom): Replace declaration with that of...
2376 (make_pass_predcom): ...new function.
2377 (pass_iv_canon): Replace declaration with that of...
2378 (make_pass_iv_canon): ...new function.
2379 (pass_scev_cprop): Replace declaration with that of...
2380 (make_pass_scev_cprop): ...new function.
2381 (pass_empty_loop): Replace declaration with that of...
2382 (make_pass_empty_loop): ...new function.
2383 (pass_record_bounds): Replace declaration with that of...
2384 (make_pass_record_bounds): ...new function.
2385 (pass_graphite): Replace declaration with that of...
2386 (make_pass_graphite): ...new function.
2387 (pass_graphite_transforms): Replace declaration with that of...
2388 (make_pass_graphite_transforms): ...new function.
2389 (pass_if_conversion): Replace declaration with that of...
2390 (make_pass_if_conversion): ...new function.
2391 (pass_loop_distribution): Replace declaration with that of...
2392 (make_pass_loop_distribution): ...new function.
2393 (pass_vectorize): Replace declaration with that of...
2394 (make_pass_vectorize): ...new function.
2395 (pass_slp_vectorize): Replace declaration with that of...
2396 (make_pass_slp_vectorize): ...new function.
2397 (pass_complete_unroll): Replace declaration with that of...
2398 (make_pass_complete_unroll): ...new function.
2399 (pass_complete_unrolli): Replace declaration with that of...
2400 (make_pass_complete_unrolli): ...new function.
2401 (pass_parallelize_loops): Replace declaration with that of...
2402 (make_pass_parallelize_loops): ...new function.
2403 (pass_loop_prefetch): Replace declaration with that of...
2404 (make_pass_loop_prefetch): ...new function.
2405 (pass_iv_optimize): Replace declaration with that of...
2406 (make_pass_iv_optimize): ...new function.
2407 (pass_tree_loop_done): Replace declaration with that of...
2408 (make_pass_tree_loop_done): ...new function.
2409 (pass_ch): Replace declaration with that of...
2410 (make_pass_ch): ...new function.
2411 (pass_ccp): Replace declaration with that of...
2412 (make_pass_ccp): ...new function.
2413 (pass_phi_only_cprop): Replace declaration with that of...
2414 (make_pass_phi_only_cprop): ...new function.
2415 (pass_build_ssa): Replace declaration with that of...
2416 (make_pass_build_ssa): ...new function.
2417 (pass_build_alias): Replace declaration with that of...
2418 (make_pass_build_alias): ...new function.
2419 (pass_build_ealias): Replace declaration with that of...
2420 (make_pass_build_ealias): ...new function.
2421 (pass_dominator): Replace declaration with that of...
2422 (make_pass_dominator): ...new function.
2423 (pass_dce): Replace declaration with that of...
2424 (make_pass_dce): ...new function.
2425 (pass_dce_loop): Replace declaration with that of...
2426 (make_pass_dce_loop): ...new function.
2427 (pass_cd_dce): Replace declaration with that of...
2428 (make_pass_cd_dce): ...new function.
2429 (pass_call_cdce): Replace declaration with that of...
2430 (make_pass_call_cdce): ...new function.
2431 (pass_merge_phi): Replace declaration with that of...
2432 (make_pass_merge_phi): ...new function.
2433 (pass_split_crit_edges): Replace declaration with that of...
2434 (make_pass_split_crit_edges): ...new function.
2435 (pass_pre): Replace declaration with that of...
2436 (make_pass_pre): ...new function.
2437 (pass_profile): Replace declaration with that of...
2438 (make_pass_profile): ...new function.
2439 (pass_strip_predict_hints): Replace declaration with that of...
2440 (make_pass_strip_predict_hints): ...new function.
2441 (pass_lower_complex_O0): Replace declaration with that of...
2442 (make_pass_lower_complex_O0): ...new function.
2443 (pass_lower_complex): Replace declaration with that of...
2444 (make_pass_lower_complex): ...new function.
2445 (pass_lower_vector): Replace declaration with that of...
2446 (make_pass_lower_vector): ...new function.
2447 (pass_lower_vector_ssa): Replace declaration with that of...
2448 (make_pass_lower_vector_ssa): ...new function.
2449 (pass_lower_omp): Replace declaration with that of...
2450 (make_pass_lower_omp): ...new function.
2451 (pass_diagnose_omp_blocks): Replace declaration with that of...
2452 (make_pass_diagnose_omp_blocks): ...new function.
2453 (pass_expand_omp): Replace declaration with that of...
2454 (make_pass_expand_omp): ...new function.
2455 (pass_expand_omp_ssa): Replace declaration with that of...
2456 (make_pass_expand_omp_ssa): ...new function.
2457 (pass_object_sizes): Replace declaration with that of...
2458 (make_pass_object_sizes): ...new function.
2459 (pass_strlen): Replace declaration with that of...
2460 (make_pass_strlen): ...new function.
2461 (pass_fold_builtins): Replace declaration with that of...
2462 (make_pass_fold_builtins): ...new function.
2463 (pass_stdarg): Replace declaration with that of...
2464 (make_pass_stdarg): ...new function.
2465 (pass_early_warn_uninitialized): Replace declaration with that of...
2466 (make_pass_early_warn_uninitialized): ...new function.
2467 (pass_late_warn_uninitialized): Replace declaration with that of...
2468 (make_pass_late_warn_uninitialized): ...new function.
2469 (pass_cse_reciprocals): Replace declaration with that of...
2470 (make_pass_cse_reciprocals): ...new function.
2471 (pass_cse_sincos): Replace declaration with that of...
2472 (make_pass_cse_sincos): ...new function.
2473 (pass_optimize_bswap): Replace declaration with that of...
2474 (make_pass_optimize_bswap): ...new function.
2475 (pass_optimize_widening_mul): Replace declaration with that of...
2476 (make_pass_optimize_widening_mul): ...new function.
2477 (pass_warn_function_return): Replace declaration with that of...
2478 (make_pass_warn_function_return): ...new function.
2479 (pass_warn_function_noreturn): Replace declaration with that of...
2480 (make_pass_warn_function_noreturn): ...new function.
2481 (pass_cselim): Replace declaration with that of...
2482 (make_pass_cselim): ...new function.
2483 (pass_phiopt): Replace declaration with that of...
2484 (make_pass_phiopt): ...new function.
2485 (pass_forwprop): Replace declaration with that of...
2486 (make_pass_forwprop): ...new function.
2487 (pass_phiprop): Replace declaration with that of...
2488 (make_pass_phiprop): ...new function.
2489 (pass_tree_ifcombine): Replace declaration with that of...
2490 (make_pass_tree_ifcombine): ...new function.
2491 (pass_dse): Replace declaration with that of...
2492 (make_pass_dse): ...new function.
2493 (pass_nrv): Replace declaration with that of...
2494 (make_pass_nrv): ...new function.
2495 (pass_rename_ssa_copies): Replace declaration with that of...
2496 (make_pass_rename_ssa_copies): ...new function.
2497 (pass_sink_code): Replace declaration with that of...
2498 (make_pass_sink_code): ...new function.
2499 (pass_fre): Replace declaration with that of...
2500 (make_pass_fre): ...new function.
2501 (pass_check_data_deps): Replace declaration with that of...
2502 (make_pass_check_data_deps): ...new function.
2503 (pass_copy_prop): Replace declaration with that of...
2504 (make_pass_copy_prop): ...new function.
2505 (pass_vrp): Replace declaration with that of...
2506 (make_pass_vrp): ...new function.
2507 (pass_uncprop): Replace declaration with that of...
2508 (make_pass_uncprop): ...new function.
2509 (pass_return_slot): Replace declaration with that of...
2510 (make_pass_return_slot): ...new function.
2511 (pass_reassoc): Replace declaration with that of...
2512 (make_pass_reassoc): ...new function.
2513 (pass_rebuild_cgraph_edges): Replace declaration with that of...
2514 (make_pass_rebuild_cgraph_edges): ...new function.
2515 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
2516 (make_pass_remove_cgraph_callee_edges): ...new function.
2517 (pass_build_cgraph_edges): Replace declaration with that of...
2518 (make_pass_build_cgraph_edges): ...new function.
2519 (pass_local_pure_const): Replace declaration with that of...
2520 (make_pass_local_pure_const): ...new function.
2521 (pass_tracer): Replace declaration with that of...
2522 (make_pass_tracer): ...new function.
2523 (pass_warn_unused_result): Replace declaration with that of...
2524 (make_pass_warn_unused_result): ...new function.
2525 (pass_diagnose_tm_blocks): Replace declaration with that of...
2526 (make_pass_diagnose_tm_blocks): ...new function.
2527 (pass_lower_tm): Replace declaration with that of...
2528 (make_pass_lower_tm): ...new function.
2529 (pass_tm_init): Replace declaration with that of...
2530 (make_pass_tm_init): ...new function.
2531 (pass_tm_mark): Replace declaration with that of...
2532 (make_pass_tm_mark): ...new function.
2533 (pass_tm_memopt): Replace declaration with that of...
2534 (make_pass_tm_memopt): ...new function.
2535 (pass_tm_edges): Replace declaration with that of...
2536 (make_pass_tm_edges): ...new function.
2537 (pass_split_functions): Replace declaration with that of...
2538 (make_pass_split_functions): ...new function.
2539 (pass_feedback_split_functions): Replace declaration with that of...
2540 (make_pass_feedback_split_functions): ...new function.
2541 (pass_strength_reduction): Replace declaration with that of...
2542 (make_pass_strength_reduction): ...new function.
2543 (pass_ipa_lower_emutls): Replace declaration with that of...
2544 (make_pass_ipa_lower_emutls): ...new function.
2545 (pass_ipa_function_and_variable_visibility): Replace declaration with
2546 that of...
2547 (make_pass_ipa_function_and_variable_visibility): ...new function.
2548 (pass_ipa_tree_profile): Replace declaration with that of...
2549 (make_pass_ipa_tree_profile): ...new function.
2550 (pass_early_local_passes): Replace declaration with that of...
2551 (make_pass_early_local_passes): ...new function.
2552 (pass_ipa_whole_program_visibility): Replace declaration with that
2553 of...
2554 (make_pass_ipa_whole_program_visibility): ...new function.
2555 (pass_ipa_lto_gimple_out): Replace declaration with that of...
2556 (make_pass_ipa_lto_gimple_out): ...new function.
2557 (pass_ipa_increase_alignment): Replace declaration with that of...
2558 (make_pass_ipa_increase_alignment): ...new function.
2559 (pass_ipa_inline): Replace declaration with that of...
2560 (make_pass_ipa_inline): ...new function.
2561 (pass_ipa_free_lang_data): Replace declaration with that of...
2562 (make_pass_ipa_free_lang_data): ...new function.
2563 (pass_ipa_free_inline_summary): Replace declaration with that of...
2564 (make_pass_ipa_free_inline_summary): ...new function.
2565 (pass_ipa_cp): Replace declaration with that of...
2566 (make_pass_ipa_cp): ...new function.
2567 (pass_ipa_reference): Replace declaration with that of...
2568 (make_pass_ipa_reference): ...new function.
2569 (pass_ipa_pure_const): Replace declaration with that of...
2570 (make_pass_ipa_pure_const): ...new function.
2571 (pass_ipa_pta): Replace declaration with that of...
2572 (make_pass_ipa_pta): ...new function.
2573 (pass_ipa_lto_finish_out): Replace declaration with that of...
2574 (make_pass_ipa_lto_finish_out): ...new function.
2575 (pass_ipa_tm): Replace declaration with that of...
2576 (make_pass_ipa_tm): ...new function.
2577 (pass_ipa_profile): Replace declaration with that of...
2578 (make_pass_ipa_profile): ...new function.
2579 (pass_ipa_cdtor_merge): Replace declaration with that of...
2580 (make_pass_ipa_cdtor_merge): ...new function.
2581 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
2582 of...
2583 (make_pass_cleanup_cfg_post_optimizing): ...new function.
2584 (pass_init_datastructures): Replace declaration with that of...
2585 (make_pass_init_datastructures): ...new function.
2586 (pass_fixup_cfg): Replace declaration with that of...
2587 (make_pass_fixup_cfg): ...new function.
2588 (pass_expand): Replace declaration with that of...
2589 (make_pass_expand): ...new function.
2590 (pass_instantiate_virtual_regs): Replace declaration with that of...
2591 (make_pass_instantiate_virtual_regs): ...new function.
2592 (pass_rtl_fwprop): Replace declaration with that of...
2593 (make_pass_rtl_fwprop): ...new function.
2594 (pass_rtl_fwprop_addr): Replace declaration with that of...
2595 (make_pass_rtl_fwprop_addr): ...new function.
2596 (pass_jump): Replace declaration with that of...
2597 (make_pass_jump): ...new function.
2598 (pass_jump2): Replace declaration with that of...
2599 (make_pass_jump2): ...new function.
2600 (pass_lower_subreg): Replace declaration with that of...
2601 (make_pass_lower_subreg): ...new function.
2602 (pass_cse): Replace declaration with that of...
2603 (make_pass_cse): ...new function.
2604 (pass_fast_rtl_dce): Replace declaration with that of...
2605 (make_pass_fast_rtl_dce): ...new function.
2606 (pass_ud_rtl_dce): Replace declaration with that of...
2607 (make_pass_ud_rtl_dce): ...new function.
2608 (pass_rtl_dce): Replace declaration with that of...
2609 (make_pass_rtl_dce): ...new function.
2610 (pass_rtl_dse1): Replace declaration with that of...
2611 (make_pass_rtl_dse1): ...new function.
2612 (pass_rtl_dse2): Replace declaration with that of...
2613 (make_pass_rtl_dse2): ...new function.
2614 (pass_rtl_dse3): Replace declaration with that of...
2615 (make_pass_rtl_dse3): ...new function.
2616 (pass_rtl_cprop): Replace declaration with that of...
2617 (make_pass_rtl_cprop): ...new function.
2618 (pass_rtl_pre): Replace declaration with that of...
2619 (make_pass_rtl_pre): ...new function.
2620 (pass_rtl_hoist): Replace declaration with that of...
2621 (make_pass_rtl_hoist): ...new function.
2622 (pass_rtl_store_motion): Replace declaration with that of...
2623 (make_pass_rtl_store_motion): ...new function.
2624 (pass_cse_after_global_opts): Replace declaration with that of...
2625 (make_pass_cse_after_global_opts): ...new function.
2626 (pass_rtl_ifcvt): Replace declaration with that of...
2627 (make_pass_rtl_ifcvt): ...new function.
2628 (pass_into_cfg_layout_mode): Replace declaration with that of...
2629 (make_pass_into_cfg_layout_mode): ...new function.
2630 (pass_outof_cfg_layout_mode): Replace declaration with that of...
2631 (make_pass_outof_cfg_layout_mode): ...new function.
2632 (pass_loop2): Replace declaration with that of...
2633 (make_pass_loop2): ...new function.
2634 (pass_rtl_loop_init): Replace declaration with that of...
2635 (make_pass_rtl_loop_init): ...new function.
2636 (pass_rtl_move_loop_invariants): Replace declaration with that of...
2637 (make_pass_rtl_move_loop_invariants): ...new function.
2638 (pass_rtl_unswitch): Replace declaration with that of...
2639 (make_pass_rtl_unswitch): ...new function.
2640 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
2641 (make_pass_rtl_unroll_and_peel_loops): ...new function.
2642 (pass_rtl_doloop): Replace declaration with that of...
2643 (make_pass_rtl_doloop): ...new function.
2644 (pass_rtl_loop_done): Replace declaration with that of...
2645 (make_pass_rtl_loop_done): ...new function.
2646 (pass_web): Replace declaration with that of...
2647 (make_pass_web): ...new function.
2648 (pass_cse2): Replace declaration with that of...
2649 (make_pass_cse2): ...new function.
2650 (pass_df_initialize_opt): Replace declaration with that of...
2651 (make_pass_df_initialize_opt): ...new function.
2652 (pass_df_initialize_no_opt): Replace declaration with that of...
2653 (make_pass_df_initialize_no_opt): ...new function.
2654 (pass_reginfo_init): Replace declaration with that of...
2655 (make_pass_reginfo_init): ...new function.
2656 (pass_inc_dec): Replace declaration with that of...
2657 (make_pass_inc_dec): ...new function.
2658 (pass_stack_ptr_mod): Replace declaration with that of...
2659 (make_pass_stack_ptr_mod): ...new function.
2660 (pass_initialize_regs): Replace declaration with that of...
2661 (make_pass_initialize_regs): ...new function.
2662 (pass_combine): Replace declaration with that of...
2663 (make_pass_combine): ...new function.
2664 (pass_if_after_combine): Replace declaration with that of...
2665 (make_pass_if_after_combine): ...new function.
2666 (pass_ree): Replace declaration with that of...
2667 (make_pass_ree): ...new function.
2668 (pass_partition_blocks): Replace declaration with that of...
2669 (make_pass_partition_blocks): ...new function.
2670 (pass_match_asm_constraints): Replace declaration with that of...
2671 (make_pass_match_asm_constraints): ...new function.
2672 (pass_regmove): Replace declaration with that of...
2673 (make_pass_regmove): ...new function.
2674 (pass_split_all_insns): Replace declaration with that of...
2675 (make_pass_split_all_insns): ...new function.
2676 (pass_fast_rtl_byte_dce): Replace declaration with that of...
2677 (make_pass_fast_rtl_byte_dce): ...new function.
2678 (pass_lower_subreg2): Replace declaration with that of...
2679 (make_pass_lower_subreg2): ...new function.
2680 (pass_mode_switching): Replace declaration with that of...
2681 (make_pass_mode_switching): ...new function.
2682 (pass_sms): Replace declaration with that of...
2683 (make_pass_sms): ...new function.
2684 (pass_sched): Replace declaration with that of...
2685 (make_pass_sched): ...new function.
2686 (pass_ira): Replace declaration with that of...
2687 (make_pass_ira): ...new function.
2688 (pass_reload): Replace declaration with that of...
2689 (make_pass_reload): ...new function.
2690 (pass_clean_state): Replace declaration with that of...
2691 (make_pass_clean_state): ...new function.
2692 (pass_branch_prob): Replace declaration with that of...
2693 (make_pass_branch_prob): ...new function.
2694 (pass_value_profile_transformations): Replace declaration with that
2695 of...
2696 (make_pass_value_profile_transformations): ...new function.
2697 (pass_postreload_cse): Replace declaration with that of...
2698 (make_pass_postreload_cse): ...new function.
2699 (pass_gcse2): Replace declaration with that of...
2700 (make_pass_gcse2): ...new function.
2701 (pass_split_after_reload): Replace declaration with that of...
2702 (make_pass_split_after_reload): ...new function.
2703 (pass_branch_target_load_optimize1): Replace declaration with that
2704 of...
2705 (make_pass_branch_target_load_optimize1): ...new function.
2706 (pass_thread_prologue_and_epilogue): Replace declaration with that
2707 of...
2708 (make_pass_thread_prologue_and_epilogue): ...new function.
2709 (pass_stack_adjustments): Replace declaration with that of...
2710 (make_pass_stack_adjustments): ...new function.
2711 (pass_peephole2): Replace declaration with that of...
2712 (make_pass_peephole2): ...new function.
2713 (pass_if_after_reload): Replace declaration with that of...
2714 (make_pass_if_after_reload): ...new function.
2715 (pass_regrename): Replace declaration with that of...
2716 (make_pass_regrename): ...new function.
2717 (pass_cprop_hardreg): Replace declaration with that of...
2718 (make_pass_cprop_hardreg): ...new function.
2719 (pass_reorder_blocks): Replace declaration with that of...
2720 (make_pass_reorder_blocks): ...new function.
2721 (pass_branch_target_load_optimize2): Replace declaration with that
2722 of...
2723 (make_pass_branch_target_load_optimize2): ...new function.
2724 (pass_leaf_regs): Replace declaration with that of...
2725 (make_pass_leaf_regs): ...new function.
2726 (pass_split_before_sched2): Replace declaration with that of...
2727 (make_pass_split_before_sched2): ...new function.
2728 (pass_compare_elim_after_reload): Replace declaration with that of...
2729 (make_pass_compare_elim_after_reload): ...new function.
2730 (pass_sched2): Replace declaration with that of...
2731 (make_pass_sched2): ...new function.
2732 (pass_stack_regs): Replace declaration with that of...
2733 (make_pass_stack_regs): ...new function.
2734 (pass_stack_regs_run): Replace declaration with that of...
2735 (make_pass_stack_regs_run): ...new function.
2736 (pass_df_finish): Replace declaration with that of...
2737 (make_pass_df_finish): ...new function.
2738 (pass_compute_alignments): Replace declaration with that of...
2739 (make_pass_compute_alignments): ...new function.
2740 (pass_duplicate_computed_gotos): Replace declaration with that of...
2741 (make_pass_duplicate_computed_gotos): ...new function.
2742 (pass_variable_tracking): Replace declaration with that of...
2743 (make_pass_variable_tracking): ...new function.
2744 (pass_free_cfg): Replace declaration with that of...
2745 (make_pass_free_cfg): ...new function.
2746 (pass_machine_reorg): Replace declaration with that of...
2747 (make_pass_machine_reorg): ...new function.
2748 (pass_cleanup_barriers): Replace declaration with that of...
2749 (make_pass_cleanup_barriers): ...new function.
2750 (pass_delay_slots): Replace declaration with that of...
2751 (make_pass_delay_slots): ...new function.
2752 (pass_split_for_shorten_branches): Replace declaration with that of...
2753 (make_pass_split_for_shorten_branches): ...new function.
2754 (pass_split_before_regstack): Replace declaration with that of...
2755 (make_pass_split_before_regstack): ...new function.
2756 (pass_convert_to_eh_region_ranges): Replace declaration with that
2757 of...
2758 (make_pass_convert_to_eh_region_ranges): ...new function.
2759 (pass_shorten_branches): Replace declaration with that of...
2760 (make_pass_shorten_branches): ...new function.
2761 (pass_set_nothrow_function_flags): Replace declaration with that of...
2762 (make_pass_set_nothrow_function_flags): ...new function.
2763 (pass_dwarf2_frame): Replace declaration with that of...
2764 (make_pass_dwarf2_frame): ...new function.
2765 (pass_final): Replace declaration with that of...
2766 (make_pass_final): ...new function.
2767 (pass_rtl_seqabstr): Replace declaration with that of...
2768 (make_pass_rtl_seqabstr): ...new function.
2769 (pass_release_ssa_names): Replace declaration with that of...
2770 (make_pass_release_ssa_names): ...new function.
2771 (pass_early_inline): Replace declaration with that of...
2772 (make_pass_early_inline): ...new function.
2773 (pass_inline_parameters): Replace declaration with that of...
2774 (make_pass_inline_parameters): ...new function.
2775 (pass_update_address_taken): Replace declaration with that of...
2776 (make_pass_update_address_taken): ...new function.
2777 (pass_convert_switch): Replace declaration with that of...
2778 (make_pass_convert_switch): ...new function.
2779 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
2780 to a subclass of simple_ipa_opt_pass along with...
2781 (pass_data_ipa_tree_profile): ...new pass_data instance and...
2782 (make_pass_ipa_tree_profile): ...new function.
2783 * tree-sra.c (pass_sra_early): Convert from a global struct to a
2784 subclass of gimple_opt_pass along with...
2785 (pass_data_sra_early): ...new pass_data instance and...
2786 (make_pass_sra_early): ...new function.
2787 (pass_sra): Convert from a global struct to a subclass of
2788 gimple_opt_pass along with...
2789 (pass_data_sra): ...new pass_data instance and...
2790 (make_pass_sra): ...new function.
2791 (pass_early_ipa_sra): Convert from a global struct to a subclass of
2792 gimple_opt_pass along with...
2793 (pass_data_early_ipa_sra): ...new pass_data instance and...
2794 (make_pass_early_ipa_sra): ...new function.
2795 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
2796 subclass of gimple_opt_pass along with...
2797 (pass_data_ccp): ...new pass_data instance and...
2798 (make_pass_ccp): ...new function.
2799 (pass_fold_builtins): Convert from a global struct to a subclass of
2800 gimple_opt_pass along with...
2801 (pass_data_fold_builtins): ...new pass_data instance and...
2802 (make_pass_fold_builtins): ...new function.
2803 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
2804 subclass of gimple_opt_pass along with...
2805 (pass_data_copy_prop): ...new pass_data instance and...
2806 (make_pass_copy_prop): ...new function.
2807 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
2808 global struct to a subclass of gimple_opt_pass along with...
2809 (pass_data_rename_ssa_copies): ...new pass_data instance and...
2810 (make_pass_rename_ssa_copies): ...new function.
2811 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
2812 subclass of gimple_opt_pass along with...
2813 (pass_data_dce): ...new pass_data instance and...
2814 (make_pass_dce): ...new function.
2815 (pass_dce_loop): Convert from a global struct to a subclass of
2816 gimple_opt_pass along with...
2817 (pass_data_dce_loop): ...new pass_data instance and...
2818 (make_pass_dce_loop): ...new function.
2819 (pass_cd_dce): Convert from a global struct to a subclass of
2820 gimple_opt_pass along with...
2821 (pass_data_cd_dce): ...new pass_data instance and...
2822 (make_pass_cd_dce): ...new function.
2823 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
2824 subclass of gimple_opt_pass along with...
2825 (pass_data_dominator): ...new pass_data instance and...
2826 (make_pass_dominator): ...new function.
2827 (pass_phi_only_cprop): Convert from a global struct to a subclass of
2828 gimple_opt_pass along with...
2829 (pass_data_phi_only_cprop): ...new pass_data instance and...
2830 (make_pass_phi_only_cprop): ...new function.
2831 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
2832 subclass of gimple_opt_pass along with...
2833 (pass_data_dse): ...new pass_data instance and...
2834 (make_pass_dse): ...new function.
2835 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
2836 a subclass of gimple_opt_pass along with...
2837 (pass_data_forwprop): ...new pass_data instance and...
2838 (make_pass_forwprop): ...new function.
2839 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
2840 struct to a subclass of gimple_opt_pass along with...
2841 (pass_data_tree_ifcombine): ...new pass_data instance and...
2842 (make_pass_tree_ifcombine): ...new function.
2843 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
2844 subclass of gimple_opt_pass along with...
2845 (pass_data_ch): ...new pass_data instance and...
2846 (make_pass_ch): ...new function.
2847 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
2848 subclass of gimple_opt_pass along with...
2849 (pass_data_tree_loop): ...new pass_data instance and...
2850 (make_pass_tree_loop): ...new function.
2851 (pass_tree_loop_init): Convert from a global struct to a subclass of
2852 gimple_opt_pass along with...
2853 (pass_data_tree_loop_init): ...new pass_data instance and...
2854 (make_pass_tree_loop_init): ...new function.
2855 (pass_lim): Convert from a global struct to a subclass of
2856 gimple_opt_pass along with...
2857 (pass_data_lim): ...new pass_data instance and...
2858 (make_pass_lim): ...new function.
2859 (pass_tree_unswitch): Convert from a global struct to a subclass of
2860 gimple_opt_pass along with...
2861 (pass_data_tree_unswitch): ...new pass_data instance and...
2862 (make_pass_tree_unswitch): ...new function.
2863 (pass_predcom): Convert from a global struct to a subclass of
2864 gimple_opt_pass along with...
2865 (pass_data_predcom): ...new pass_data instance and...
2866 (make_pass_predcom): ...new function.
2867 (pass_vectorize): Convert from a global struct to a subclass of
2868 gimple_opt_pass along with...
2869 (pass_data_vectorize): ...new pass_data instance and...
2870 (make_pass_vectorize): ...new function.
2871 (pass_graphite): Convert from a global struct to a subclass of
2872 gimple_opt_pass along with...
2873 (pass_data_graphite): ...new pass_data instance and...
2874 (make_pass_graphite): ...new function.
2875 (pass_graphite_transforms): Convert from a global struct to a subclass
2876 of gimple_opt_pass along with...
2877 (pass_data_graphite_transforms): ...new pass_data instance and...
2878 (make_pass_graphite_transforms): ...new function.
2879 (pass_check_data_deps): Convert from a global struct to a subclass of
2880 gimple_opt_pass along with...
2881 (pass_data_check_data_deps): ...new pass_data instance and...
2882 (make_pass_check_data_deps): ...new function.
2883 (pass_iv_canon): Convert from a global struct to a subclass of
2884 gimple_opt_pass along with...
2885 (pass_data_iv_canon): ...new pass_data instance and...
2886 (make_pass_iv_canon): ...new function.
2887 (pass_scev_cprop): Convert from a global struct to a subclass of
2888 gimple_opt_pass along with...
2889 (pass_data_scev_cprop): ...new pass_data instance and...
2890 (make_pass_scev_cprop): ...new function.
2891 (pass_record_bounds): Convert from a global struct to a subclass of
2892 gimple_opt_pass along with...
2893 (pass_data_record_bounds): ...new pass_data instance and...
2894 (make_pass_record_bounds): ...new function.
2895 (pass_complete_unroll): Convert from a global struct to a subclass of
2896 gimple_opt_pass along with...
2897 (pass_data_complete_unroll): ...new pass_data instance and...
2898 (make_pass_complete_unroll): ...new function.
2899 (pass_complete_unrolli): Convert from a global struct to a subclass of
2900 gimple_opt_pass along with...
2901 (pass_data_complete_unrolli): ...new pass_data instance and...
2902 (make_pass_complete_unrolli): ...new function.
2903 (pass_parallelize_loops): Convert from a global struct to a subclass
2904 of gimple_opt_pass along with...
2905 (pass_data_parallelize_loops): ...new pass_data instance and...
2906 (make_pass_parallelize_loops): ...new function.
2907 (pass_loop_prefetch): Convert from a global struct to a subclass of
2908 gimple_opt_pass along with...
2909 (pass_data_loop_prefetch): ...new pass_data instance and...
2910 (make_pass_loop_prefetch): ...new function.
2911 (pass_iv_optimize): Convert from a global struct to a subclass of
2912 gimple_opt_pass along with...
2913 (pass_data_iv_optimize): ...new pass_data instance and...
2914 (make_pass_iv_optimize): ...new function.
2915 (pass_tree_loop_done): Convert from a global struct to a subclass of
2916 gimple_opt_pass along with...
2917 (pass_data_tree_loop_done): ...new pass_data instance and...
2918 (make_pass_tree_loop_done): ...new function.
2919 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
2920 struct to a subclass of gimple_opt_pass along with...
2921 (pass_data_cse_reciprocals): ...new pass_data instance and...
2922 (make_pass_cse_reciprocals): ...new function.
2923 (pass_cse_sincos): Convert from a global struct to a subclass of
2924 gimple_opt_pass along with...
2925 (pass_data_cse_sincos): ...new pass_data instance and...
2926 (make_pass_cse_sincos): ...new function.
2927 (pass_optimize_bswap): Convert from a global struct to a subclass of
2928 gimple_opt_pass along with...
2929 (pass_data_optimize_bswap): ...new pass_data instance and...
2930 (make_pass_optimize_bswap): ...new function.
2931 (pass_optimize_widening_mul): Convert from a global struct to a
2932 subclass of gimple_opt_pass along with...
2933 (pass_data_optimize_widening_mul): ...new pass_data instance and...
2934 (make_pass_optimize_widening_mul): ...new function.
2935 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
2936 subclass of gimple_opt_pass along with...
2937 (pass_data_phiopt): ...new pass_data instance and...
2938 (make_pass_phiopt): ...new function.
2939 (pass_cselim): Convert from a global struct to a subclass of
2940 gimple_opt_pass along with...
2941 (pass_data_cselim): ...new pass_data instance and...
2942 (make_pass_cselim): ...new function.
2943 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
2944 subclass of gimple_opt_pass along with...
2945 (pass_data_phiprop): ...new pass_data instance and...
2946 (make_pass_phiprop): ...new function.
2947 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
2948 subclass of gimple_opt_pass along with...
2949 (pass_data_pre): ...new pass_data instance and...
2950 (make_pass_pre): ...new function.
2951 (pass_fre): Convert from a global struct to a subclass of
2952 gimple_opt_pass along with...
2953 (pass_data_fre): ...new pass_data instance and...
2954 (make_pass_fre): ...new function.
2955 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
2956 subclass of gimple_opt_pass along with...
2957 (pass_data_reassoc): ...new pass_data instance and...
2958 (make_pass_reassoc): ...new function.
2959 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
2960 subclass of gimple_opt_pass along with...
2961 (pass_data_sink_code): ...new pass_data instance and...
2962 (make_pass_sink_code): ...new function.
2963 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
2964 subclass of gimple_opt_pass along with...
2965 (pass_data_strlen): ...new pass_data instance and...
2966 (make_pass_strlen): ...new function.
2967 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
2968 struct to a subclass of gimple_opt_pass along with...
2969 (pass_data_build_alias): ...new pass_data instance and...
2970 (make_pass_build_alias): ...new function.
2971 (pass_build_ealias): Convert from a global struct to a subclass of
2972 gimple_opt_pass along with...
2973 (pass_data_build_ealias): ...new pass_data instance and...
2974 (make_pass_build_ealias): ...new function.
2975 (pass_ipa_pta): Convert from a global struct to a subclass of
2976 simple_ipa_opt_pass along with...
2977 (pass_data_ipa_pta): ...new pass_data instance and...
2978 (make_pass_ipa_pta): ...new function.
2979 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
2980 subclass of gimple_opt_pass along with...
2981 (pass_data_uncprop): ...new pass_data instance and...
2982 (make_pass_uncprop): ...new function.
2983 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
2984 global struct to a subclass of gimple_opt_pass along with...
2985 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
2986 (make_pass_late_warn_uninitialized): ...new function.
2987 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
2988 to a subclass of gimple_opt_pass along with...
2989 (pass_data_init_datastructures): ...new pass_data instance and...
2990 (make_pass_init_datastructures): ...new function.
2991 (pass_early_warn_uninitialized): Convert from a global struct to a
2992 subclass of gimple_opt_pass along with...
2993 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
2994 (make_pass_early_warn_uninitialized): ...new function.
2995 (pass_update_address_taken): Convert from a global struct to a
2996 subclass of gimple_opt_pass along with...
2997 (pass_data_update_address_taken): ...new pass_data instance and...
2998 (make_pass_update_address_taken): ...new function.
2999 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
3000 struct to a subclass of gimple_opt_pass along with...
3001 (pass_data_release_ssa_names): ...new pass_data instance and...
3002 (make_pass_release_ssa_names): ...new function.
3003 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
3004 subclass of gimple_opt_pass along with...
3005 (pass_data_stdarg): ...new pass_data instance and...
3006 (make_pass_stdarg): ...new function.
3007 * tree-switch-conversion.c (pass_convert_switch): Convert from a
3008 global struct to a subclass of gimple_opt_pass along with...
3009 (pass_data_convert_switch): ...new pass_data instance and...
3010 (make_pass_convert_switch): ...new function.
3011 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
3012 to a subclass of gimple_opt_pass along with...
3013 (pass_data_tail_recursion): ...new pass_data instance and...
3014 (make_pass_tail_recursion): ...new function.
3015 (pass_tail_calls): Convert from a global struct to a subclass of
3016 gimple_opt_pass along with...
3017 (pass_data_tail_calls): ...new pass_data instance and...
3018 (make_pass_tail_calls): ...new function.
3019 * tree-vect-generic.c (pass_lower_vector): Convert from a global
3020 struct to a subclass of gimple_opt_pass along with...
3021 (pass_data_lower_vector): ...new pass_data instance and...
3022 (make_pass_lower_vector): ...new function.
3023 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
3024 gimple_opt_pass along with...
3025 (pass_data_lower_vector_ssa): ...new pass_data instance and...
3026 (make_pass_lower_vector_ssa): ...new function.
3027 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
3028 to a subclass of gimple_opt_pass along with...
3029 (pass_data_slp_vectorize): ...new pass_data instance and...
3030 (make_pass_slp_vectorize): ...new function.
3031 (pass_ipa_increase_alignment): Convert from a global struct to a
3032 subclass of simple_ipa_opt_pass along with...
3033 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
3034 (make_pass_ipa_increase_alignment): ...new function.
3035 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
3036 gimple_opt_pass along with...
3037 (pass_data_vrp): ...new pass_data instance and...
3038 (make_pass_vrp): ...new function.
3039 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
3040 subclass of simple_ipa_opt_pass along with...
3041 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
3042 (make_pass_ipa_free_lang_data): ...new function.
3043 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
3044 gimple_opt_pass along with...
3045 (pass_data_tsan): ...new pass_data instance and...
3046 (make_pass_tsan): ...new function.
3047 (pass_tsan_O0): Convert from a global struct to a subclass of
3048 gimple_opt_pass along with...
3049 (pass_data_tsan_O0): ...new pass_data instance and...
3050 (make_pass_tsan_O0): ...new function.
3051 * var-tracking.c (pass_variable_tracking): Convert from a global
3052 struct to a subclass of rtl_opt_pass along with...
3053 (pass_data_variable_tracking): ...new pass_data instance and...
3054 (make_pass_variable_tracking): ...new function.
3055 * web.c (pass_web): Convert from a global struct to a subclass of
3056 rtl_opt_pass along with...
3057 (pass_data_web): ...new pass_data instance and...
3058 (make_pass_web): ...new function.
3059 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
3060 declaration with that of...
3061 (make_pass_mode_switch_use): ...new function.
3062 (pass_resolve_sw_modes): Replace declaration with that of...
3063 (make_pass_resolve_sw_modes): ...new function.
3064 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
3065 from a global struct to a subclass of rtl_opt_pass along with...
3066 (pass_data_mode_switch_use): ...new pass_data instance and...
3067 (make_pass_mode_switch_use): ...new function.
3068 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
3069 from a global struct to a subclass of rtl_opt_pass along with...
3070 (pass_data_resolve_sw_modes): ...new pass_data instance and...
3071 (make_pass_resolve_sw_modes): ...new function.
3072 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
3073 struct to a subclass of rtl_opt_pass along with...
3074 (pass_data_insert_vzeroupper): ...new pass_data instance and...
3075 (make_pass_insert_vzeroupper): ...new function.
3076 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
3077 global struct to a subclass of rtl_opt_pass along with...
3078 (pass_data_work_around_errata): ...new pass_data instance and...
3079 (make_pass_work_around_errata): ...new function.
3080 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
3081 struct to a subclass of rtl_opt_pass along with...
3082 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
3083 (make_pass_mips_machine_reorg2): ...new function.
3084
6a389ed5
DM
30852013-08-05 David Malcolm <dmalcolm@redhat.com>
3086
3087 * passes.c (pass_manager::operator new): New.
3088
f7695dbf
DM
30892013-08-05 David Malcolm <dmalcolm@redhat.com>
3090
3091 Handwritten part of conversion of passes to C++ classes.
3092
3093 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
3094 (toplev.o): Add dep on PASS_MANAGER_H.
3095 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
3096 of early local pases to reflect this moving from a global to a
3097 member of gcc::pass_manager.
3098 (cgraph_add_new_function): Likewise.
3099 * lto-cgraph.c (lto_output_node): Update for conversion of
3100 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
3101 * passes.c (opt_pass::clone): New.
3102 (opt_pass::gate): New.
3103 (opt_pass::execute): New.
3104 (opt_pass::opt_pass): New.
3105 (pass_manager::execute_early_local_passes): New.
3106 (pass_manager::execute_pass_mode_switching): new.
3107 (finish_optimization_passes): Convert to...
3108 (pass_manager::finish_optimization_passes): ...this.
3109 (finish_optimization_passes): Update for conversion of passes to
3110 C++ classes.
3111 (register_dump_files_1): Use has_gate since we cannot portably
3112 check a vtable entry against NULL.
3113 (dump_one_pass): Likewise.
3114 (ipa_write_summaries_2): Likewise.
3115 (ipa_write_optimization_summaries_1): Likewise.
3116 (ipa_read_summaries_1): Likewise.
3117 (ipa_read_optimization_summaries_1): Likewise.
3118 (execute_ipa_stmt_fixups): Likewise.
3119 (pass_manager::pass_manager): Rewrite pass-creation, invoking
3120 pass-creation functions rather than wiring up globals, and
3121 storing the results in fields of pass_manager generated using
3122 pass-instances.def.
3123 (pass_manager::dump_profile_report): Update for conversion of
3124 passes to C++ classes.
3125 (pass_manager::execute_ipa_summary_passes): Likewise.
3126 (execute_one_ipa_transform_pass): Likewise.
3127 (execute_one_pass): Use has_gate and has_execute since we cannot
3128 portably check a vtable entry against NULL.
3129 * pass_manager.h (pass_manager::finish_optimization_passes): New.
3130 (pass_manager): Use pass-instances.def to add fields for the
3131 various pass instances.
3132 * toplev.c (finalize): Update for move of
3133 finish_optimization_passes to a method of gcc::pass_manager.
3134 * toplev.h (finish_optimization_passes): Move to method of class
3135 pass_manager.
3136 * tree-pass.h (struct pass_data): New.
03b0ee0a 3137 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
f7695dbf
DM
3138 (opt_pass::gate): Convert to virtual function.
3139 (opt_pass::~opt_pass): New.
3140 (opt_pass::clone): New.
3141 (opt_pass::execute): Convert to virtual function.
3142 (opt_pass::opt_pass): New.
3143 (opt_pass::ctxt_): new.
3144 (gimple_opt_pass): Convert to subclass of opt_pass.
3145 (gimple_opt_pass::gimple_opt_pass): New.
3146 (rtl_opt_pass): Convert to subclass of opt_pass.
3147 (rtl_opt_pass::rtl_opt_pass): New.
3148 (ipa_opt_pass_d): Convert to subclass of opt_pass.
3149 (ipa_opt_pass_d::ipa_opt_pass_d): New.
3150 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
3151 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
3152 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
3153 invocation of pass_mode_switching to reflect this moving from a
3154 global to a member of gcc::pass_manager.
3155 (ix86_option_override): Rework how pass_insert_vzeroupper is
3156 added to the pass_manager to reflect autogenerated changes.
03b0ee0a 3157 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
f7695dbf 3158
d0b2f831
RE
31592013-08-05 Richard Earnshaw <rearnsha@arm.com>
3160
3161 PR rtl-optimization/57708
3162 * recog.c (peep2_find_free_register): Validate all regs in a
3163 multi-reg mode.
3164
51a5c0c2
JH
31652013-08-05 Jan Hubicka <jh@suse.cz>
3166
3167 PR lto/57602
03b0ee0a
UB
3168 * cgraph.c (verify_cgraph_node): Accept local flags from other
3169 partitions.
51a5c0c2
JH
3170 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
3171 (function_and_variable_visibility): Likewise.
3172 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
3173
65f0a120
GDR
31742013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
3175
3176 * graph.c (init_graph_slim_pretty_print): Remove.
3177 (print_graph_cfg): Do not call it. Use local pretty printer.
3178 (start_graph_dump): Likewise.
3179
b3f80694
GDR
31802013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
3181
3182 * gimple-pretty-print.c (buffer): Remove.
3183 (initialized): Likewise.
3184 (maybe_init_pretty_print): Likewise.
3185 (print_gimple_stmt): Do not call it. Use non-static local
3186 pretty_printer variable.
3187 (print_gimple_expr): Likewise.
3188 (print_gimple_seq): Likewise.
3189 (gimple_dump_bb): Likewise.
3190
11a877b3
GDR
31912013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
3192
3193 * asan.c (asan_pp): Remove.
3194 (asan_pp_initialized): Likewise.
3195 (asan_pp_initialize): Likewise.
3196 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
3197 (asan_emit_stack_protection): Tidy. Use local pretty printer.
3198 (asan_add_global): Likewise.
3199
b066401f
GDR
32002013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
3201
3202 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
3203 * diagnostic.h (diagnostic_flush_buffer): Adjust.
3204 * pretty-print.c (pp_formatted_text_data): Likewise.
3205 (pp_indent): Rename from pp_base_indent.
3206 (pp_format): Rename from pp_base_format.
3207 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
3208 (pp_format_verbatim): Rename from pp_base_format_verbatim.
3209 (pp_flush): Rename from pp_base_flush.
3210 (pp_set_line_maximum_length): Rename from
3211 pp_base_set_line_maximum_length.
3212 (pp_clear_output_area): Rename from pp_base_clear_output_area.
3213 (pp_set_prefix): Rename from pp_base_set_prefix.
3214 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
3215 (pp_emit_prefix): Rename from pp_base_emit_prefix.
3216 (pp_append_text): Rename from pp_base_append_text.
3217 (pp_formatted_text): Rename from pp_base_formatted_text.
3218 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
3219 (pp_remaining_character_count_for_line): Rename from
3220 pp_base_remaining_character_count_for_line.
3221 (pp_newline): Rename from pp_base_newline.
3222 (pp_character): Rename from pp_base_character.
3223 (pp_string): Rename from pp_base_string.
3224 (pp_maybe_space): Rename from pp_base_maybe_space.
3225 * asan.c (asan_pp_string): Adjust.
3226 (asan_emit_stack_protection): Likewise.
3227 (asan_add_global): Likewise.
3228 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
3229 * tree-mudflap.c (mf_varname_tree): Likewise.
3230 * tree-pretty-print.c (pp_tree_identifier): Rename from
3231 pp_base_tree_identifier.
3232 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
3233 Declare as function.
3234
137a1a27
GDR
32352013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
3236
3237 * pretty-print.h (pp_bar_bar): New.
3238 (pp_ampersand_ampersand): Likewise.
3239 (pp_less_equal): Likewise.
3240 (pp_greater_equal): Likewise.
3241 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
3242 printer functions instead of pp_string or operators and punctuators.
3243 (dump_gimple_call): Likewise.
3244 (dump_gimple_omp_for): Likewise.
3245 (dump_gimple_transaction): Likewise.
3246 (dump_gimple_phi): Likewise.
3247 (pp_gimple_stmt_1): Likewise.
3248 * sched-vis.c (print_insn): Likewise.
3249 * tree-mudflap.c (mf_varname_tree): Likewise.
3250 * tree-pretty-print.c (dump_block_node): Likewise.
3251 (dump_generic_node): Likewise.
3252
815effe1
JH
32532013-08-02 Jan Hubicka <jh@suse.cz>
3254
3255 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
3256 boundaries.
3257 * lto-streamer-out.c (tree_is_indexable): Results decls and
3258 parm decls are not indexable.
3259 (DFS_write_tree_body): Do not follow args and results.
3260 (hash_tree): Likewise.
3261 (output_functions): Rearrange so struct function is needed
3262 only when real body is output; be able to also ouptut abstract
3263 functions; output DECL_ARGUMENTS and DECL_RESULT.
3264 (lto_output): When not in WPA, ale store abstract functions.
3265 (write_symbol): Do not care about RESULT_DECL.
3266 (output_symbol_p): Handle correctly sbtract decls.
3267 * lto-streamer-in.c (input_function): Rearrange so struct
3268 function can be NULL at entry; allow streaming of
3269 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
3270 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
3271 sanity check during LTO.
3272 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
3273 RESULT_DECl and DECL_ARGUMENTS.
3274 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
3275 Likewise.
3276
07838b13
GDR
32772013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
3278
3279 * pretty-print.h (pp_underscore): New.
3280 (pp_comma): Tidy.
3281 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
3282 printer functions instead of pp_character.
3283 (dump_binary_rhs): Likewise.
3284 (dump_ternary_rhs): Likewise.
3285 (dump_gimple_call_args): Likewise.
3286 (pp_points_to_solution): Likewise.
3287 (dump_gimple_call): Likewise.
3288 (dump_gimple_switch): Likewise.
3289 (dump_gimple_cond): Likewise.
3290 (dump_gimple_bind): Likewise.
3291 (dump_gimple_try): Likewise.
3292 (dump_gimple_omp_for): Likewise.
3293 (dump_gimple_omp_continue): Likewise.
3294 (dump_gimple_omp_single): Likewise.
3295 (dump_gimple_omp_sections): Likewise.
3296 (dump_gimple_omp_block): Likewise.
3297 (dump_gimple_omp_critical): Likewise.
3298 (dump_gimple_transaction): Likewise.
3299 (dump_gimple_asm): Likewise.
3300 (dump_gimple_phi): Likewise.
3301 (dump_gimple_omp_parallel): Likewise.
3302 (dump_gimple_omp_task): Likewise.
3303 (dump_gimple_omp_atomic_load): Likewise.
3304 (dump_gimple_omp_atomic_store): Likewise.
3305 (dump_gimple_mem_ops): Likewise.
3306 (pp_gimple_stmt_1): Likewise.
3307 (pp_cfg_jump): Likewise.
3308 (dump_implicit_edges): Likewise.
3309 (gimple_dump_bb_for_graph): Likewise.
3310 * graph.c (draw_cfg_node): Likewise.
3311 * langhooks.c (lhd_print_error_function): Likewise.
3312 * sched-vis.c (print_exp): Likewise.
3313 (print_value): Likewise.
3314 (print_pattern): Likewise.
3315 (print_insn): Likewise.
3316 (rtl_dump_bb_for_graph): Likewise.
3317 * tree-pretty-print.c (dump_function_declaration): Likewise.
3318 (dump_array_domain): Likewise.
3319 (dump_omp_clause): Likewise.
3320 (dump_location): Likewise.
3321 (dump_generic_node): Likewise.
3322 (print_struct_decl): Likewise.
3323 * diagnostic.c (diagnostic_show_locus): Use pp_space.
3324
bb0d2039
BS
33252013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
3326
3327 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
3328 candidate table when replacing a candidate statement.
3329 (replace_rhs_if_not_dup): Likewise.
3330 (replace_one_candidate): Likewise.
3331
bc0ec027 33322013-08-02 Jan Hubicka <jh@suse.cz>
cdaa808a 3333 Martin Liska <marxin.liska@gmail.com>
bc0ec027
JH
3334
3335 * cgraphunit.c (add_new_function): Fix logic when adding from
3336 late IPA pass.
3337 (assemble_thunk): Rename to ...
03b0ee0a
UB
3338 (expand_thunk); .. this one; export; get it working with
3339 general functions; make produced gimple valid.
bc0ec027
JH
3340 * cgraph.h (expand_thunk): Declare.
3341
0e8853ee
JH
33422013-08-02 Jan Hubicka <jh@suse.cz>
3343
03b0ee0a
UB
3344 * ipa-cp.c (gather_context_independent_values): Use
3345 ipa_get_param_move_cost.
3346 (get_replacement_map): Remove PARAM; move parameter folding
3347 into tree-inline.c
0e8853ee
JH
3348 (create_specialized_node): Update.
3349 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
3350 assert that we have gimple body; update move_cost.
3351 (count_formal_params): Assert that we have gimple body.
3352 (ipa_dump_param): New function.
3353 (ipa_alloc_node_params): Break out from ...
3354 (ipa_initialize_node_params): ... here.
3355 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
3356 (ipa_write_node_info): Stream move costs.
3357 (ipa_read_node_info): Read move costs.
3358 (ipa_update_after_lto_read): Do not recompute node params.
3359 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
3360 (ipa_get_param): Check we are not in WPA.
3361 (ipa_get_param_move_cost): New.
3362 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
3363 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
3364 parm numbers to be present.
3365
ecee672b
VM
33662013-08-02 Vladimir Makarov <vmakarov@redhat.com>
3367
3368 PR rtl-optimization/58048
3369 * lra-constraints.c (process_alt_operands): Don't check asm
3370 operand on register.
3371
13ec0527
EB
33722013-08-02 Eric Botcazou <ebotcazou@adacore.com>
3373
3374 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
3375 the implied StoreLoad barrier for atomic operations if before.
3376
af15184a
JH
33772013-08-02 Jan Hubicka <jh@suse.cz>
3378 Martin Liska <marxin.liska@gmail.com>
3379
03b0ee0a
UB
3380 * cgraph.c (cgraph_function_body_availability): Do not check
3381 cgraph flags.
af15184a
JH
3382 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
3383 symtab_node_availability): Declare.
3384 * ipa.c (can_replace_by_local_alias): New.
3385 (function_and_variable_visibility): Use it.
03b0ee0a
UB
3386 * symtab.c (symtab_for_node_and_aliases,
3387 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
af15184a 3388
01e54ef8
VM
33892013-08-02 Vladimir Makarov <vmakarov@redhat.com>
3390
3391 PR rtl-optimization/57963
03b0ee0a 3392 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
01e54ef8
VM
3393 (lra_constraints): Use them.
3394
e2fd7ca7
SN
33952013-08-02 Sofiane Naci <sofiane.naci@arm.com>
3396
03b0ee0a
UB
3397 * config/arm/types.md (define_attr "type"): Add "load_acq"
3398 and "store_rel".
e2fd7ca7
SN
3399 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
3400 changes.
3401 (cortex_a53_store1): Likewise.
3402
0dcc26c3
JH
34032013-08-01 Jan Hubicka <jh@suse.cz>
3404
03b0ee0a
UB
3405 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
3406 partitions are not needed.
0dcc26c3 3407
0bd72901
UB
34082013-08-01 Uros Bizjak <ubizjak@gmail.com>
3409
3410 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
3411 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
3412 MAYBE_NON_Q_CLASS_P where appropriate.
3413
12123452
JH
34142013-08-01 Jan Hubicka <jh@suse.cz>
3415
3416 * cgraph.h (release_function_body): Declare.
3417 * tree.c (free_lang_data_in_decl): Free, parameters and return values
3418 of unused delcarations.
3419
ce852f9c
KT
34202013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3421
03b0ee0a
UB
3422 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
3423 RTL form when subtracting a constant.
ce852f9c 3424
c743b246
KT
34252013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3426
3427 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
3428 Generate canonical plus rtx with negated immediate instead of minus
3429 where appropriate.
3430 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
3431
c0c123ef
JH
34322013-08-01 Jan Hubicka <jh@suse.cz>
3433
3434 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
3435 (cgraph_release_function_body): Likewise.
3436 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
3437 * cgraph.h (cgrpah_node): Rename abstract_and_needed
3438 to used_as_abstract_origin.
3439 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
3440 symbols used as abstract origins.
3441 * cgraphunit.c (analyze_functions): Update.
0bd72901
UB
3442 * ipa.c (symtab_remove_unreachable_nodes): Recompute
3443 used_as_abstract_origin.
c0c123ef 3444 * tree-inline.c (tree_function_versioning): Update
0bd72901
UB
3445 used_as_abstract_origin; be ready for DECL_RESULT and
3446 DECL_ARGUMENTS to be NULL.
c0c123ef 3447
0bd72901
UB
3448 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
3449 for abstract functions.
3450 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
3451 real symbols.
c0c123ef 3452
1f029433
JH
34532013-08-01 Jan Hubicka <jh@suse.cz>
3454
3455 * profile.c (compute_value_histograms): Fix thinko.
3456
c451f4d6
SN
34572013-08-01 Sofiane Naci <sofiane.naci@arm.com>
3458
3459 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
3460 aarch-common-protos.h to extra_headers.
3461 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
3462 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
3463 * config/aarch64/t-aarch64 (aarch-common.o): Define.
3464
34b512f5
SN
34652013-08-01 Sofiane Naci <sofiane.naci@arm.com>
3466
3467 * config/aarch64/aarch64.md (define_attr "type"): Delete.
3468 Include "../arm/types.md". Define "type" attribute for all patterns.
3469 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
3470 attribute changes.
3471
d86e633a
MM
34722013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
3473
3474 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
3475 to support power8 load fusion.
3476 (fusion_gpr_mem_load): Likewise.
3477
3478 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
3479
3480 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
3481 declarations for power8 load fusion.
3482 (emit_fusion_gpr_load): Likewise.
3483
3484 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
3485 tuning for power8, turn on fusion mode by default. Turn on sign
3486 extending fusion mode if normal fusion mode is on, and we are at
3487 -O2 or -O3.
3488 (fusion_gpr_load_p): New function, return true if we can fuse an
3489 addis instruction with a dependent load to a GPR.
3490 (emit_fusion_gpr_load): Emit the instructions for power8 load
3491 fusion to GPRs.
3492
0bd72901 3493 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
d86e633a
MM
3494 (VSX load fusion peepholes): New peepholes to fuse together an
3495 addi instruction with a VSX load instruction.
3496
3497 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
3498 peepholes to fuse an addis instruction with a load to a GPR base
3499 register. If we are supporting sign extending fusions, convert
3500 sign extending loads to zero extending loads and add an explicit
3501 sign extension.
3502
c3f35647
SN
35032013-07-31 Sofiane Naci <sofiane.naci@arm.com>
3504
3505 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
3506 aarch-common-protos.h to extra_headers.
3507 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
3508 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
3509 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
3510 (arm_no_early_alu_shift_dep): Likewise.
3511 (arm_no_early_alu_shift_value_dep): Likewise.
3512 (arm_no_early_mul_dep): Likewise.
3513 (arm_no_early_store_addr_dep): Likewise.
3514 (arm_mac_accumulator_is_mul_result): Likewise.
3515 (arm_mac_accumulator_is_result): Likewise.
c3f35647 3516 * config/arm/aarch-common.c: ... here. New file.
0bd72901
UB
3517 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
3518 here to ...
c3f35647 3519 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
3520 (arm_no_early_alu_shift_dep): Likewise.
3521 (arm_no_early_alu_shift_value_dep): Likewise.
3522 (arm_no_early_mul_dep): Likewise.
3523 (arm_no_early_store_addr_dep): Likewise.
3524 (arm_mac_accumulator_is_mul_result): Likewise.
3525 (arm_mac_accumulator_is_result): Likewise.
c3f35647
SN
3526 * config/arm/aarch-common-protos.h: ... here. New file.
3527 * config/arm/t-arm (aarch-common.o): Define.
3528
35292013-07-31 Sofiane Naci <sofiane.naci@arm.com>
3530
3531 * config/arm/arm.md: Include new file "types.md".
3532 (define_attr "type"): Move from here to ...
3533 (define_attr "mul32"): Likewise.
3534 (define_attr "mul64"): Likewise.
3535 * config/arm/types.md: ... here. New file.
3536
228c1313
SH
35372013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
3538
3539 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
3540 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
3541
d6e9046d 35422013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8ac499bb
JBG
3543
3544 * gen-pass-instances.awk: Fix offset of substr().
3545
a167b052
DM
35462013-07-31 David Malcolm <dmalcolm@redhat.com>
3547
3548 * Makefile.in (pass-instances.def): New.
3549 (passes.o): Replace dependency on passes.def with one on
3550 pass-instances.def
3551
3552 * gen-pass-instances.awk: New.
3553
3554 * passes.c (pass_manager::pass_manager): Use pass-instances.def
3555 rather than passes.def, updating local definition of NEXT_PASS
3556 macro to add an extra NUM parameter (currently unused).
3557
315f8c0e
DM
35582013-07-30 David Malcolm <dmalcolm@redhat.com>
3559
3560 * Makefile.in (PASS_MANAGER_H): New.
3561 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
3562 (passes.o): Likewise.
3563 (statistics.o): Likewise.
3564 (cgraphunit.o): Likewise.
3565 (context.o): Depend on PASS_MANAGER_H.
3566
3567 * pass_manager.h: New.
3568
3569 * cgraphunit.c (cgraph_add_new_function): Update for moves
3570 of globals to fields of pass_manager.
3571 (analyze_function): Likewise.
3572 (expand_function): Likewise.
3573 (ipa_passes): Likewise.
3574 (compile): Likewise.
3575
3576 * context.c (context::context): New.
3577 * context.h (context::context): New.
3578 (context::get_passes): New.
3579 (context::passes_): New.
3580
3581 * lto-cgraph.c (input_node): Update for moves of globals to
3582 fields of pass_manager.
3583
3584 * passes.c (all_passes): Remove, in favor of a field of the
3585 same name within the new class pass_manager.
3586 (all_small_ipa_passes): Likewise.
3587 (all_lowering_passes): Likewise.
3588 (all_regular_ipa_passes): Likewise.
3589 (all_late_ipa_passes): Likewise.
3590 (all_lto_gen_passes): Likewise.
3591 (passes_by_id): Likewise.
3592 (passes_by_id_size): Likewise.
3593 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
3594 the new class pass_manager.
3595 (set_pass_for_id): Convert to...
3596 (pass_manager::set_pass_for_id): ...method.
3597 (get_pass_for_id): Convert to...
3598 (pass_manager::get_pass_for_id): ...method.
3599 (register_one_dump_file): Move body of implementation into...
3600 (pass_manager::register_one_dump_file): ...here.
3601 (register_dump_files_1): Convert to...
3602 (pass_manager::register_dump_files_1): ...method.
3603 (register_dump_files): Convert to...
3604 (pass_manager::register_dump_files): ...method.
3605 (create_pass_tab): Update for moves of globals to fields of
3606 pass_manager.
3607 (dump_passes): Move body of implementation into...
3608 (pass_manager::dump_passes): ...here.
3609 (register_pass): Move body of implementation into...
3610 (pass_manager::register_pass): ...here.
3611 (init_optimization_passes): Convert into...
3612 (pass_manager::pass_manager): ...constructor for new
3613 pass_manager class, and initialize the pass_lists array.
3614 (check_profile_consistency): Update for moves of globals to
3615 fields of pass_manager.
3616 (dump_profile_report): Move body of implementation into...
3617 (pass_manager::dump_profile_report): ...here.
3618 (ipa_write_summaries_1): Update for moves of pass lists from
3619 being globals to fields of pass_manager.
3620 (ipa_write_optimization_summaries): Likewise.
3621 (ipa_read_summaries): Likewise.
3622 (ipa_read_optimization_summaries): Likewise.
3623 (execute_all_ipa_stmt_fixups): Likewise.
3624
3625 * statistics.c (statistics_fini): Update for moves of globals to
3626 fields of pass_manager.
3627
3628 * toplev.c (general_init): Replace call to
3629 init_optimization_passes with construction of the pass_manager
3630 instance.
3631
3632 * tree-pass.h (all_passes): Remove, in favor of a field of the
3633 same name within the new class pass_manager.
3634 (all_small_ipa_passes): Likewise.
3635 (all_lowering_passes): Likewise.
3636 (all_regular_ipa_passes): Likewise.
3637 (all_lto_gen_passes): Likewise.
3638 (all_late_ipa_passes): Likewise.
3639 (passes_by_id): Likewise.
3640 (passes_by_id_size): Likewise.
3641 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
3642 the new class pass_manager.
3643 (get_pass_for_id): Remove.
3644
02cab1c1
RE
36452013-07-30 Richard Earnshaw <rearnsha@arm.com>
3646
3647 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
3648 configs.
3649
b2d3f886
RE
36502013-07-30 Richard Earnshaw <rearnsha@arm.com>
3651
3652 * arm.md (mulhi3): New expand pattern.
3653
605e86fa
JH
36542013-07-30 Jan Hubicka <jh@suse.cz>
3655 Martin Liska <marxin.liska@gmail.com>
3656
3657 * profile.c (compute_value_histograms): Do not ICE when
3658 there is mismatch only on some counters.
3659
14a87636
ZC
36602013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
3661
3662 PR rtl-optimization/57637
3663 * function.c (move_insn_for_shrink_wrap): Also check the
3664 GEN set of the LIVE problem for the liveness analysis
3665 if it exists, otherwise give up.
3666
0100cd3f
BS
36672013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
3668
3669 PR tree-optimization/57993
3670 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
3671 replaced statement in the candidate table.
3672 (phi_add_costs): Return infinite cost when the hidden basis does
3673 not dominate all phis on which the candidate is dependent.
3674 (replace_one_candidate): Record replaced statement in the
3675 candidate table.
3676
f0d811f7
JR
36772013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
3678
3679 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
3680 (ashlv2si3): New expander.
3681 (*ashlv2si3_i): New define_insn_and_split.
3682 * predicates.md (float_operation): Allow patterns with three
3683 basic sub-patterns.
3684
bba33211
JR
3685 PR rtl-optimization/58021
3686 * mode-switching.c (create_pre_exit): Always split off preceding
3687 insns if we are not at the basic block head.
3688
ff3f3951
MR
36892013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
3690
3691 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
3692 (UCLIBC_DYNAMIC_LINKER): New macro.
3693 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
3694 `-mnan=2008'.
3695 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
3696 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
3697 `-mnan=2008'.
3698 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
3699 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
3700 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
3701 for SF and DF modes. Use ieee_quad_format for TF mode.
3702 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
3703 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
3704 (mips_option_override): Handle `-mnan=legacy'.
3705 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
3706 `-mabs=2008' and `-mnan=2008'.
3707 (OPTION_DEFAULT_SPECS): Add "nan" default.
3708 (ASM_SPEC): Handle `-mnan='.
3709 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
3710 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
3711 comment accordingly.
3712 (neg<mode>2): Likewise.
3713 * config/mips/mips.opt (mabs, mnan): New options.
3714 * doc/install.texi (Configuration): Document `--with-nan=' option.
3715 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
3716 `-mnan=' options.
3717 (MIPS Options): Document them.
3718 * config.gcc <mips*-*-*>: Handle `--with-nan='.
3719 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
3720 * configure: Regenerate.
3721 * config.in: Regenerate.
3722
576e2f37
UB
37232013-07-29 Uros Bizjak <ubizjak@gmail.com>
3724
3725 * config/i386/i386.md (float post-reload splitters): Do not check
3726 for subregs of SSE registers.
3727
37282013-07-29 Uros Bizjak <ubizjak@gmail.com>
3729 H.J. Lu <hongjiu.lu@intel.com>
3730
3731 PR target/57954
3732 PR target/57988
3733 * config/i386/i386.md (post-reload splitter
3734 to avoid partial SSE reg dependency stalls): New pattern.
3735
a71f0749
DV
37362013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
3737
3738 * config/s390/s390.md ("movcc"): Swap load and store instructions.
3739
4c97f1cc
JR
37402013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
3741
3742 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
3743 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
3744
b0c733d8
CC
37452013-07-26 Cary Coutant <ccoutant@google.com>
3746
3747 * dwarf2out.c (die_checksum_ordered): Don't include template
3748 instantiations in signature.
3749 (is_template_parameter): New function.
3750 (is_template_instantiation): New function.
3751 (generate_skeleton_bottom_up): Don't include template instantiations
3752 in type unit DIE.
3753 (generate_skeleton): Likewise.
3754 (break_out_comdat_types): Move recursive call to break out nested
3755 types earlier.
3756 (prune_unused_types_mark_generic_parms_dies): Call
3757 is_template_parameter.
3758
040d8a1c
IB
37592013-07-26 Ian Bolton <ian.bolton@arm.com>
3760
3761 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
3762 uses vector registers.
89fdc743 3763 * config/aarch64/iterators.md: Add attributes rtn and vas.
040d8a1c 3764
85bd4ac6 37652013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
576e2f37 3766 Richard Earnshaw <richard.earnshaw@arm.com>
85bd4ac6
KT
3767
3768 * combine.c (simplify_comparison): Re-canonicalize operands
576e2f37 3769 where appropriate.
85bd4ac6
KT
3770 * config/arm/arm.md (movcond_addsi): New splitter.
3771
b6051207
SA
37722013-07-25 Sterling Augustine <saugustine@google.com>
3773
3774 * dwarf2out.c (size_of_pubnames): Move code to...
3775 (include_pubname_in_output): ...here. New.
3776 (want_pubnames): Rearrange.
3777 (output_pubnames): Call include_pubname_in_output. Move assertion.
3778
41a7c215
CM
37792013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
3780
3781 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
3782
37832013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
3784
3785 PR target/38836
3786 * doc/extend.texi: Remove obsolete builtins. Fix
3787 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
3788
49bde175
JH
37892013-07-25 Jan Hubicka <jh@suse.cz>
3790
3791 * cgraph.c (release_function_body): Break out from ...
3792 (cgraph_release_function_body): ... this one; also release DECL_RESULT
3793 and DECL_ARGUMENTS.
3794 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
3795 old_tree in the map.
3796 (create_specialized_node): Update.
3797 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
3798 into index.
41a7c215
CM
3799 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
3800 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
49bde175
JH
3801 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
3802 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
3803 DECL_RESULT.
3804
4870352d
KT
38052013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3806
3807 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
3808 addsi3_carryin_alt2_<optab>): Correct output template.
3809
1d6aee1c
KT
38102013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3811
3812 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
3813 Adjust for arm_restrict_it.
3814 Remove trailing whitespace.
3815
c7cafd75
MK
38162013-07-25  Mark Kettenis  <kettenis@openbsd.org>
3817
017d38f5
MK
3818 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
3819 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
3820
c7cafd75
MK
3821 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
3822
00b7527b
VM
38232013-07-25 Vladimir Makarov <vmakarov@redhat.com>
3824
3825 PR rtl-optimization/57960
3826 * lra-constraints.c (process_alt_operands): Use the right mode
3827 when checking strict_low.
3828
4f63dfc6
JH
38292013-07-25 Jan Hubicka <jh@suse.cz>
3830
3831 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
3832 * cgraph.c (cgraph_remove_node): Do not release function body
3833 when in cgraph streaming.
3834 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
41a7c215
CM
3835 in other partitions are not considered reachable; fix handling of
3836 clones.
4f63dfc6 3837
e6dcfa18
RR
38382013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3839
3840 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
3841
0b93d3b6
RR
38422013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3843
3844 PR target/19599
3845 PR target/57731
bb80c2eb 3846 PR target/57837
e6dcfa18 3847 * config/arm/arm.md ("*sibcall_insn): Replace use of
0b93d3b6 3848 Ss with US. Adjust output for v5 and v4t.
41a7c215 3849 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
e6dcfa18 3850
0b93d3b6
RR
3851 * config/arm/constraints.md ("Ss"): Rename to US.
3852
690688b3
TG
38532013-07-25 Terry Guo <terry.guo@arm.com>
3854
3855 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
3856 shift_add/shift_sub0/shift_sub1 RTXs.
3857
a4ad093b 38582013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
12211b99 3859 Anton Blanchard <anton@au1.ibm.com>
a4ad093b
BS
3860
3861 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
3862 (altivec_vpks<VI_char>ss): Likewise.
3863 (altivec_vpks<VI_char>us): Likewise.
3864 (altivec_vpku<VI_char>us): Likewise.
3865 (altivec_vpku<VI_char>um): Likewise.
3866
8c5005ce
DM
38672013-07-24 David Malcolm <dmalcolm@redhat.com>
3868
3869 Introduce context class.
3870
3871 * Makefile.in (CONTEXT_H): New.
3872 (OBJS): Add context.o.
3873 (toplev.o): Add CONTEXT_H to dependencies.
3874 (context.o): New.
3875
41a7c215 3876 * toplev.c (general_init): Create the singleton gcc::context instance.
8c5005ce
DM
3877
3878 * context.c: New.
3879
3880 * context.h: New.
3881
ce4a9422
JR
38822013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
3883
3884 PR rtl-optimization/57968
3885 * mode-switching.c (create_pre_exit): Allow instructions that
3886 don't set a return register to need a non-exit mode.
3887
493f4c9e 38882013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 3889 Anton Blanchard <anton@au1.ibm.com>
493f4c9e 3890
b5860fd3
WS
3891 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
3892 operands to vperm for little endian.
3893 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
3894 of lvsl to create the control mask for a vperm for little endian.
493f4c9e 3895
73792b92 38962013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 3897 Anton Blanchard <anton@au1.ibm.com>
73792b92
BS
3898
3899 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
3900 two operands for little-endian.
3901
14c21302
SE
39022013-07-23 Steve Ellcey <sellcey@mips.com>
3903
3904 * config/mips/mips.c (mips_case_values_threshold): New.
3905 (TARGET_CASE_VALUES_THRESHOLD): Define.
3906
a6056198 39072013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 3908 Anton Blanchard <anton@au1.ibm.com>
a6056198
BS
3909
3910 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
3911 selection of field for vector splat in little endian mode.
3912
dd7a40e1
MM
39132013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
3914
3915 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
3916 expanders to rs6000.md.
3917 (ior<mode>3): Likewise.
3918 (and<mode>3): Likewise.
3919 (one_cmpl<mode>2): Likewise.
3920 (nor<mode>3): Likewise.
3921 (andc<mode>3): Likewise.
3922 (eqv<mode>3): Likewise.
3923 (nand<mode>3): Likewise.
3924 (orc<mode>3): Likewise.
3925
3926 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
3927 declaration.
3928
3929 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
3930 to split multi-word logical operations.
3931 (rs6000_split_logical_di): Likewise.
3932 (rs6000_split_logical): Likewise.
3933
3934 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
3935 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
3936 and allow TImode operations in 32-bit.
3937 (vsx_and<mode>3_64bit): Likewise.
3938 (vsx_ior<mode>3_32bit): Likewise.
3939 (vsx_ior<mode>3_64bit): Likewise.
3940 (vsx_xor<mode>3_32bit): Likewise.
3941 (vsx_xor<mode>3_64bit): Likewise.
3942 (vsx_one_cmpl<mode>2_32bit): Likewise.
3943 (vsx_one_cmpl<mode>2_64bit): Likewise.
3944 (vsx_nor<mode>3_32bit): Likewise.
3945 (vsx_nor<mode>3_64bit): Likewise.
3946 (vsx_andc<mode>3_32bit): Likewise.
3947 (vsx_andc<mode>3_64bit): Likewise.
3948 (vsx_eqv<mode>3_32bit): Likewise.
3949 (vsx_eqv<mode>3_64bit): Likewise.
3950 (vsx_nand<mode>3_32bit): Likewise.
3951 (vsx_nand<mode>3_64bit): Likewise.
3952 (vsx_orc<mode>3_32bit): Likewise.
3953 (vsx_orc<mode>3_64bit): Likewise.
3954
3955 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
3956 logical types in GPRs.
3957
3958 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
3959 logical insns to rs6000.md, and allow TImode operations in
3960 32-bit.
3961 (altivec_ior<mode>3): Likewise.
3962 (altivec_xor<mode>3): Likewise.
3963 (altivec_one_cmpl<mode>2): Likewise.
3964 (altivec_nor<mode>3): Likewise.
3965 (altivec_andc<mode>3): Likewise.
3966
3967 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
3968 attributes for moving the 128-bit logical operations into
3969 rs6000.md.
3970 (BOOL_REGS_OUTPUT): Likewise.
3971 (BOOL_REGS_OP1): Likewise.
3972 (BOOL_REGS_OP2): Likewise.
3973 (BOOL_REGS_UNARY): Likewise.
3974 (BOOL_REGS_AND_CR0): Likewise.
3975 (one_cmpl<mode>2): Add support for DI logical operations on
3976 32-bit, splitting the operations to 32-bit.
3977 (anddi3): Likewise.
3978 (iordi3): Likewise.
3979 (xordi3): Likewise.
3980 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
3981 changes to combine the 32/64-bit code, allow logical operations on
3982 TI mode in 32-bit, and to use similar match_operator patterns like
3983 scalar mode uses. Combine the Altivec and VSX code for logical
3984 operations, and move it here.
3985 (ior<mode>3, 128-bit types): Likewise.
3986 (xor<mode>3, 128-bit types): Likewise.
3987 (one_cmpl<mode>3, 128-bit types): Likewise.
3988 (nor<mode>3, 128-bit types): Likewise.
3989 (andc<mode>3, 128-bit types): Likewise.
3990 (eqv<mode>3, 128-bit types): Likewise.
3991 (nand<mode>3, 128-bit types): Likewise.
3992 (orc<mode>3, 128-bit types): Likewise.
3993 (and<mode>3_internal): Likewise.
3994 (bool<mode>3_internal): Likewise.
3995 (boolc<mode>3_internal1): Likewise.
3996 (boolc<mode>3_internal2): Likewise.
3997 (boolcc<mode>3_internal1): Likewise.
3998 (boolcc<mode>3_internal2): Likewise.
3999 (eqv<mode>3_internal1): Likewise.
4000 (eqv<mode>3_internal2): Likewise.
4001 (one_cmpl1<mode>3_internal): Likewise.
4002
12211b99 40032013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
9b69d4b4
DH
4004
4005 * config/microblaze/microblaze.c (microblaze_expand_prologue):
4006 Rename flag_stack_usage to flag_stack_usage_info.
4007
12211b99 40082013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
450b0ebb 4009
a5f257fd
ME
4010 * config/microblaze/sync.md: New file.
4011 * config/microblaze/microblaze.md: Include sync.md
4012 * config/microblaze/microblaze.c: Add print_operand 'y'.
4013 * config/microblaze/constraints.md: Add memory_contraint
4014 'Q' which is a single register.
450b0ebb 4015
49fba14f
EB
40162013-07-23 Eric Botcazou <ebotcazou@adacore.com>
4017
4018 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
4019
c7b3b99f
PCC
40202013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
4021
4022 * reload.c (find_reloads): Exit loop once we find this operand
4023 cannot be reloaded somehow for this alternative.
4024
4025 * reload.c (find_reloads): Exit loop once we find a hard register.
4026
4027 * rtlanal.c (computed_jump_p): Exit loop once we find label
4028 reference is used.
4029
4030 * i386.c (ix86_pad_returns): Exit loop after setting replace.
4031
4032 * cfgloopmanip.c (remove_path): Exit loop after setting
4033 irred_invalidated.
4034
4035 * gensupport.c (subst_dup): Avoid loop if code is not
4036 MATCH_DUP nor MATCH_OP_DUP.
4037
c8fbf1fa
NBJ
40382013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
4039
4040 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
4041
9259db42
YZ
40422013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
4043
4044 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
4045 true for SP_REGNUM if mode == ptr_mode.
4046 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
4047 with value R0_REGNUM + 31.
4048
00edcfbe
YZ
40492013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
4050
4051 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
4052 pad pointer-typed argument downward.
4053
43be9a95
YZ
40542013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
4055
4056 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
4057 and __ILP32__ when the ILP32 model is in use.
4058
28514dda
YZ
40592013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
4060
4061 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
4062 (aarch64_load_symref_appropriately): In the case of
4063 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
4064 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
4065 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
4066 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
4067 if 'mode' doesn't equal to 'ptr_mode'.
4068 (aarch64_output_mi_thunk): Add an assertion on the alignment of
4069 'vcall_offset'; change to call aarch64_emit_move differently depending
4070 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
4071 to calculate the upper bound of 'vcall_offset'.
4072 (aarch64_cannot_force_const_mem): Change to also return true if
4073 mode != ptr_mode.
4074 (aarch64_legitimize_reload_address): In the case of large
4075 displacements, add new local variable 'xmode' and an assertion
4076 based on it; change to use 'xmode' to generate the new rtx and
4077 reload.
4078 (aarch64_asm_trampoline_template): Change to generate the template
4079 differently depending on TARGET_ILP32 or not; change to use
4080 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
4081 (aarch64_trampoline_size): Removed.
4082 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
4083 and replace immediate literals with it. Change to use 'ptr_mode'
4084 instead of 'DImode' and call convert_memory_address if the mode
4085 of 'fnaddr' doesn't equal to 'ptr_mode'.
4086 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
4087 to output symbol.
4088 (aarch64_elf_asm_destructor): Likewise.
4089 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
4090 on TARGET_ILP32 instead of aarch64_trampoline_size.
4091 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
4092 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
4093 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
4094 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
4095 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
4096 (storewb_pair<GPI:mode>_<P:mode>): ... this.
4097 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
4098 depending on the value of 'mode'.
4099 (add_losym_<mode>): New.
4100 (ldr_got_small_<mode>): New, based on ldr_got_small.
4101 (ldr_got_small): Remove.
4102 (ldr_got_small_sidi): New.
4103 * config/aarch64/iterators.md (P): New.
4104 (PTR): Change to 'ptr_mode' in the condition.
4105
17a819cb
YZ
41062013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
4107
4108 * config.gcc (aarch64*-*-*): Support --with-abi.
4109 (aarch64*-*-elf): Support --with-multilib-list.
4110 (aarch64*-*-linux*): Likewise.
4111 (supported_defaults): Add abi to aarch64*-*-*.
4112 * configure.ac: Mention AArch64 for --with-multilib-list.
4113 * configure: Re-generated.
4114 * config/aarch64/biarchilp32.h: New file.
4115 * config/aarch64/biarchlp64.h: New file.
4116 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
4117 (ABI_SPEC): Ditto.
4118 (MULTILIB_DEFAULTS): Ditto.
4119 (DRIVER_SELF_SPECS): Ditto.
4120 (ASM_SPEC): Update to also substitute -mabi.
4121 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
4122 file whose name depends on -mabi= and -mbig-endian.
4123 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
4124 TARGET_ILP32.
4125 (POINTER_SIZE): New define.
4126 (POINTERS_EXTEND_UNSIGNED): Ditto.
4127 (enum aarch64_abi_type): New enumeration tag.
4128 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
4129 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
4130 (TARGET_ILP32): New define.
4131 * config/aarch64/aarch64.opt (mabi): New.
4132 (aarch64_abi): New.
4133 (ilp32, lp64): New values for -mabi.
4134 * config/aarch64/t-aarch64 (comma): New define.
4135 (MULTILIB_OPTIONS): Ditto.
4136 (MULTILIB_DIRNAMES): Ditto.
4137 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
4138 * doc/invoke.texi: Document -mabi for AArch64.
4139
9f9cbdce
GJL
41402013-07-23 Georg-Johann Lay <avr@gjlay.de>
4141
4142 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
4143
7061977b 41442013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 4145 Anton Blanchard <anton@au1.ibm.com>
7061977b
BS
4146
4147 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
4148 endianness when selecting field to splat.
4149
75a41878
EC
41502013-07-22 Eric Christopher <echristo@gmail.com>
4151
4152 * dwarf2out.c (die_odr_checksum): New function to use
4153 CHECKSUM_ macros and ULEB128 for DIE tag.
4154 (generate_type_signature): Use.
41a7c215 4155
38ae58ca
EB
41562013-07-22 Eric Botcazou <ebotcazou@adacore.com>
4157
4158 * config.gcc (sparc*-*-*): Accept leon3 processor.
4159 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
4160 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
4161 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
4162 * config/sparc/sparc.opt (enum processor_type): Add leon3.
4163 (mfix-ut699): Adjust comment.
4164 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
4165 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
4166 (CPP_CPU_SPEC): Likewise.
4167 (ASM_CPU_SPEC): Likewise.
4168 * config/sparc/sparc.c (leon3_cost): New constant.
4169 (sparc_option_override): Add leon3 support.
4170 (mem_ref): New function.
4171 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
4172 (sparc_do_work_around_errata): Look into the instruction in the delay
4173 slot and adjust accordingly. Add fix for the data cache nullify issues
4174 of the UT699. Change insertion position for the NOP.
4175 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
4176 (leon3_load): New reservation.
4177 (leon_store): Bump latency to 2.
4178 (grfpu): New automaton.
4179 (grfpu_alu): New unit.
4180 (grfpu_ds): Likewise.
4181 (leon_fp_alu): Adjust.
4182 (leon_fp_mult): Delete.
4183 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
4184 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
4185 * config/sparc/sparc.md (cpu): Add leon3.
4186 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
4187 (swapsi): Likewise.
4188 (atomic_test_and_set): Likewise.
4189 (ldstub): Likewise.
4190
04dfc6df
JU
41912013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
4192
4193 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
4194 default for R5900 targets.
4195 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
4196 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
4197 * config/mips/mips.c (mips_option_override): Report an error for
4198 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
4199 for -march=r5900 -mhard-float.
4200
c7b3b99f 42012013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
ae382ebd
PCC
4202
4203 * df-problems.c (can_move_insns_across): Exit loop once we
4204 find a non-fixed, non-global register.
4205
4206 * ipa-pure-const.c (propagate_nothrow): Exit loop after
4207 setting can_throw.
4208
4209 * omega.c (omega_eliminate_red): Break after setting red_found.
4210 (omega_problem_has_red_equations): Similarly after setting found.
4211 (omega_query_variable): Similarly after setting coupled.
4212
9b6e6981
MP
42132013-07-22 Marek Polacek <polacek@redhat.com>
4214
4215 * gimplify.c: Don't include gimple.h twice.
4216
5e5f7673
KT
42172013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4218
4219 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
4220 instead of TARGET_THUMB1.
4221 (Pz): New constraint.
4222 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
4223 encodings.
4224 (compare_negsi_si): Likewise.
4225 (compare_addsi2_op0): Likewise.
4226 (compare_addsi2_op1): Likewise.
4227 (addsi3_carryin_<optab>): Likewise.
4228 (addsi3_carryin_alt2_<optab>): Likewise.
4229 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
4230 for arm_restrict_it.
4231 (subsi3_carryin): Likewise.
4232 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
4233 (minmax_arithsi): Disable for arm_restrict_it.
4234 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
4235 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
4236 (satsi_<SAT:code>_shift): Likewise.
4237 (arm_shiftsi3): Add alternative for 16-bit encoding.
4238 (arm32_movhf): Disable for arm_restrict_it.
4239 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
4240 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
4241
859abddd
SN
42422013-07-22 Sofiane Naci <sofiane.naci@arm.com>
4243
4244 * config/arm/arm.md (attribute "insn"): Delete.
4245 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
4246 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
4247 (not_shiftsi): Update for attribute change.
4248 (not_shiftsi_compare0): Likewise.
4249 (not_shiftsi_compare0_scratch): Likewise.
4250 (arm_one_cmplsi2): Likewise.
4251 (thumb1_one_cmplsi2): Likewise.
4252 (notsi_compare0): Likewise.
4253 (notsi_compare0_scratch): Likewise.
4254 (thumb1_movdi_insn): Likewise.
4255 (arm_movsi_insn): Likewise.
4256 (movhi_insn_arch4): Likewise.
4257 (movhi_bytes): Likewise.
4258 (arm_movqi_insn): Likewise.
4259 (thumb1_movqi_insn): Likewise.
4260 (arm32_movhf): Likewise.
4261 (thumb1_movhf): Likewise.
4262 (arm_movsf_soft_insn): Likewise.
4263 (thumb1_movsf_insn): Likewise.
4264 (thumb_movdf_insn): Likewise.
4265 (movsicc_insn): Likewise.
4266 (movsfcc_soft_insn): Likewise.
4267 (and_scc): Likewise.
4268 (cond_move): Likewise.
4269 (if_move_not): Likewise.
4270 (if_not_move): Likewise.
4271 (if_shift_move): Likewise.
4272 (if_move_shift): Likewise.
4273 (if_shift_shift): Likewise.
4274 (if_not_arith): Likewise.
4275 (if_arith_not): Likewise.
4276 (cond_move_not): Likewise.
4277 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
4278 (neon_mov<mode>): Likewise.
4279 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
4280 (thumb2_movsi_vfp): Likewise.
4281 (movsf_vfp): Likewise.
4282 (thumb2_movsf_vfp): Likewise.
371e77e3
UB
4283 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
4284 change.
859abddd
SN
4285 (cortexa7_older_only): Likewise.
4286 (cortexa7_younger): Likewise.
4287 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
4288 (1020alu_shift_op): Likewise.
4289 (1020alu_shift_reg_op): Likewise.
4290 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
4291 (alu_shift_op): Likewise.
4292 (alu_shift_reg_op): Likewise.
4293 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
4294 (11_alu_shift_op): Likewise.
4295 (11_alu_shift_reg_op): Likewise.
4296 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
4297 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
4298 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
4299 change.
859abddd
SN
4300 (cortex_a15_alu_shift): Likewise.
4301 (cortex_a15_alu_shift_reg): Likewise.
4302 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
4303 (cortex_a5_alu_shift): Likewise.
371e77e3
UB
4304 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
4305 change.
859abddd 4306 (cortex_a53_alu_shift): Likewise.
371e77e3
UB
4307 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
4308 change.
859abddd
SN
4309 (cortex_a7_alu_reg): Likewise.
4310 (cortex_a7_alu_shift): Likewise.
4311 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
4312 (cortex_a8_alu_shift): Likewise.
4313 (cortex_a8_alu_shift_reg): Likewise.
4314 (cortex_a8_mov): Likewise.
4315 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
4316 (cortex_a9_dp_shift): Likewise.
4317 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
4318 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
4319 (cortex_r4_mov): Likewise.
4320 (cortex_r4_alu_shift): Likewise.
4321 (cortex_r4_alu_shift_reg): Likewise.
4322 * config/arm/fa526.md (526_alu_op): Update for attribute change.
4323 (526_alu_shift_op): Likewise.
4324 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
4325 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
4326 (626te_alu_shift_op): Likewise.
4327 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
4328 (726te_alu_op): Likewise.
4329 (726te_alu_shift_op): Likewise.
4330 (726te_alu_shift_reg_op): Likewise.
4331 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
4332 (mp626_alu_shift_op): Likewise.
4333 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
4334 (pj4_alu_e1_conds): Likewise.
4335 (pj4_alu): Likewise.
4336 (pj4_alu_conds): Likewise.
4337 (pj4_shift): Likewise.
4338 (pj4_shift_conds): Likewise.
4339 (pj4_alu_shift): Likewise.
4340 (pj4_alu_shift_conds): Likewise.
4341
95b97fac
KT
43422013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4343
4344 * config/arm/predicates.md (shiftable_operator_strict_it):
4345 New predicate.
4346 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
4347 Disable cond_exec version for arm_restrict_it.
4348 (thumb2_smaxsi3): Convert to generate cond_exec.
4349 (thumb2_sminsi3): Likewise.
4350 (thumb32_umaxsi3): Likewise.
4351 (thumb2_uminsi3): Likewise.
4352 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
4353 (thumb2_neg_abssi2): Likewise.
4354 (thumb2_mov_scc): Add alternative for 16-bit encoding.
4355 (thumb2_movsicc_insn): Adjust alternatives.
4356 (thumb2_mov_negscc): Disable for arm_restrict_it.
4357 (thumb2_mov_negscc_strict_it): New pattern.
4358 (thumb2_mov_notscc_strict_it): New pattern.
4359 (thumb2_mov_notscc): Disable for arm_restrict_it.
4360 (thumb2_ior_scc): Likewise.
4361 (thumb2_ior_scc_strict_it): New pattern.
4362 (thumb2_cond_move): Adjust for arm_restrict_it.
4363 (thumb2_cond_arith): Disable for arm_restrict_it.
4364 (thumb2_cond_arith_strict_it): New pattern.
4365 (thumb2_cond_sub): Adjust for arm_restrict_it.
4366 (thumb2_movcond): Likewise.
4367 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
4368 (thumb2_zero_extendhisi2_v6): Likewise.
4369 (thumb2_zero_extendqisi2_v6): Likewise.
4370 (orsi_notsi_si): Likewise.
4371 (orsi_not_shiftsi_si): Likewise.
4372
d5a6ef82
GJL
43732013-07-22 Georg-Johann Lay <avr@gjlay.de>
4374
4375 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
4376 instruction sequence is 1 byte shorter.
4377
d9e71154
UB
43782013-07-22 Uros Bizjak <ubizjak@gmail.com>
4379
4380 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
4381 it is not needed after split.
4382
8c6381ec
IS
43832013-07-20 Iain Sandoe <iain@codesourcery.com>
4384
4385 PR target/51784
4386 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
4387 second label for nonlocal goto receivers. Don't output pic base labels
4388 unless we're producing PIC; mark that action unreachable().
4389 (ix86_save_reg): If the function contains a nonlocal label, save the
4390 PIC base reg.
4391 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
371e77e3 4392 * gcc/config/darwin.c (emitted_pic_label_num): New GTY.
8c6381ec
IS
4393 (update_pic_label_number_if_needed): New.
4394 (machopic_output_function_base_name): Adjust for nonlocal receiver
4395 case.
4396 (machopic_should_output_picbase_label): New.
4397 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
4398 (nonlocal_goto_receiver): New insn and split.
4399
d05d0709
JG
44002013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
4401
4402 * config/aarch64/aarch64-builtins.c
4403 (aarch64_fold_builtin): Fold abs in all modes.
4404 * config/aarch64/aarch64-simd-builtins.def
4405 (abs): Enable for all modes.
4406 * config/aarch64/arm_neon.h
4407 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
4408 (vabs_f64): Add missing intrinsic.
4409
ba590e63
IB
44102013-07-19 Ian Bolton <ian.bolton@arm.com>
4411
4412 * config/aarch64/arm_neon.h (vabs_s64): New function
4413
02371798
GJL
44142013-07-19 Georg-Johann Lay <avr@gjlay.de>
4415
4416 PR target/57516
4417 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
4418 * config/avr/avr.md (adjust_len): Add `round'.
4419 * config/avr/avr-protos.h (avr_out_round): New prototype.
4420 (avr_out_plus): Add `out_label' argument.
4421 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
4422 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
4423 Handle the case where `insn' is just a pattern.
4424 (avr_out_bitop): Handle the case where `insn' is just a pattern.
4425 (avr_out_round): New function.
4426 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
4427
12211b99 44282013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
b950ac25
DH
4429
4430 * config/microblaze/microblaze.c (microblaze_expand_prologue):
4431 Add check for flag_stack_usage to handle -fstack-usage support
4432
12211b99 44332013-07-18 Pat Haugen <pthaugen@us.ibm.com>
ed1fd999
PH
4434
4435 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
4436 interaction for new Power8 flags and VSX.
4437
df9dda2d
ST
44382013-07-18 Sriraman Tallam <tmsriram@google.com>
4439
4440 PR middle-end/57698
4441 * tree-inline.c (expand_call_inline): Emit errors during
4442 early_inlining only if optimization is not turned on.
4443
0f9cdef4
DM
44442013-07-18 David Malcolm <dmalcolm@redhat.com>
4445
4446 * passes.def: New.
4447
4448 * passes.c (init_optimization_passes): Move the construction of
4449 the pass hierarchy into a new passes.def file.
4450
4451 * Makefile.in (passes.o): Add dependency on passes.def.
4452
2efa4087
DM
44532013-07-18 David Malcolm <dmalcolm@redhat.com>
4454
4455 * passes.c (init_optimization_passes): Introduce macros for
4456 constructing the tree of passes (INSERT_PASSES_AFTER,
4457 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
4458 TERMINATE_PASS_LIST).
4459
bc404e1b
VM
44602013-07-18 Vladimir Makarov <vmakarov@redhat.com>
4461 Wei Mi <wmi@google.com>
4462
4463 PR rtl-optimization/57878
4464 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
4465 top.
4466 (reload_pseudo_compare_func): Check nregs first for reload
4467 pseudos.
4468
d675843f
DM
44692013-07-18 David Malcolm <dmalcolm@redhat.com>
4470
4471 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
4472
c7b3b99f 44732013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
bcb97fbd
PCC
4474
4475 * read-rtl.c (validate_const_int): Once an invalid character is
4476 seen, quit the loop.
4477
4478 * gengtype.c (write_roots): Similarly once we find the "deletable"
4479 or "if_marked" option.
4480
52fceb44
SN
44812013-07-18 Sofiane Naci <sofiane.naci@arm.com>
4482
4483 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
4484 "xtab" and "sat". Move value "clz" from here to ...
4485 (attriubte "type"): ... here.
4486 (satsi_<SAT:code>): Delete "insn" attribute.
4487 (satsi_<SAT:code>_shift): Likewise.
4488 (arm_zero_extendqisi2addsi): Likewise.
4489 (arm_extendqisi2addsi): Likewise.
4490 (clzsi2): Update for attribute changes.
4491 (rbitsi2): Likewise.
371e77e3
UB
4492 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
4493 attribute.
52fceb44
SN
4494 (arm_usatsihi): Likewise.
4495 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
4496
006bd006
SN
44972013-07-18 Sofiane Naci <sofiane.naci@arm.com>
4498
4499 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
371e77e3
UB
4500 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
4501 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
006bd006
SN
4502 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
4503 in alphabetical order.
4504 (attribute "core_cycles"): Update for attribute changes.
4505 (arm_addsi3): Likewise.
4506 (addsi3_compare0): Likewise.
4507 (addsi3_compare0_scratch): Likewise.
4508 (addsi3_compare_op1): Likewise.
4509 (addsi3_compare_op2): Likewise.
4510 (compare_addsi2_op0): Likewise.
4511 (compare_addsi2_op1): Likewise.
4512 (addsi3_carryin_shift_<optab>): Likewise.
4513 (subsi3_carryin_shift): Likewise.
4514 (rsbsi3_carryin_shift): Likewise.
4515 (arm_subsi3_insn): Likewise.
4516 (subsi3_compare0): Likewise.
4517 (subsi3_compare): Likewise.
4518 (arm_andsi3_insn): Likewise.
4519 (thumb1_andsi3_insn): Likewise.
4520 (andsi3_compare0): Likewise.
4521 (andsi3_compare0_scratch): Likewise.
4522 (zeroextractsi_compare0_scratch
4523 (andsi_not_shiftsi_si): Likewise.
4524 (iorsi3_insn): Likewise.
4525 (iorsi3_compare0): Likewise.
4526 (iorsi3_compare0_scratch): Likewise.
4527 (arm_xorsi3): Likewise.
4528 (thumb1_xorsi3_insn): Likewise.
4529 (xorsi3_compare0): Likewise.
4530 (xorsi3_compare0_scratch): Likewise.
4531 (satsi_<SAT:code>_shift): Likewise.
4532 (rrx): Likewise.
4533 (arm_shiftsi3): Likewise.
4534 (shiftsi3_compare0): Likewise.
4535 (not_shiftsi): Likewise.
4536 (not_shiftsi_compare0): Likewise.
4537 (not_shiftsi_compare0_scratch): Likewise.
4538 (arm_one_cmplsi2): Likewise.
4539 (thumb_one_complsi2): Likewise.
4540 (notsi_compare0): Likewise.
4541 (notsi_compare0_scratch): Likewise.
4542 (thumb1_zero_extendhisi2): Likewise.
4543 (arm_zero_extendhisi2): Likewise.
4544 (arm_zero_extendhisi2_v6): Likewise.
4545 (arm_zero_extendhisi2addsi): Likewise.
4546 (thumb1_zero_extendqisi2): Likewise.
4547 (thumb1_zero_extendqisi2_v6): Likewise.
4548 (arm_zero_extendqisi2): Likewise.
4549 (arm_zero_extendqisi2_v6): Likewise.
4550 (arm_zero_extendqisi2addsi): Likewise.
4551 (thumb1_extendhisi2): Likewise.
4552 (arm_extendhisi2): Likewise.
4553 (arm_extendhisi2_v6): Likewise.
4554 (arm_extendqisi): Likewise.
4555 (arm_extendqisi_v6): Likewise.
4556 (arm_extendqisi2addsi): Likewise.
4557 (thumb1_extendqisi2): Likewise.
4558 (thumb1_movdi_insn): Likewise.
4559 (arm_movsi_insn): Likewise.
4560 (movsi_compare0): Likewise.
4561 (movhi_insn_arch4): Likewise.
4562 (movhi_bytes): Likewise.
4563 (arm_movqi_insn): Likewise.
4564 (thumb1_movqi_insn): Likewise.
4565 (arm32_movhf): Likewise.
4566 (thumb1_movhf): Likewise.
4567 (arm_movsf_soft_insn): Likewise.
4568 (thumb1_movsf_insn): Likewise.
4569 (movdf_soft_insn): Likewise.
4570 (thumb_movdf_insn): Likewise.
4571 (arm_cmpsi_insn): Likewise.
4572 (cmpsi_shiftsi): Likewise.
4573 (cmpsi_shiftsi_swp): Likewise.
4574 (arm_cmpsi_negshiftsi_si): Likewise.
4575 (movsicc_insn): Likewise.
4576 (movsfcc_soft_insn): Likewise.
4577 (arith_shiftsi): Likewise.
4578 (arith_shiftsi_compare0
4579 (arith_shiftsi_compare0_scratch
4580 (sub_shiftsi): Likewise.
4581 (sub_shiftsi_compare0
4582 (sub_shiftsi_compare0_scratch
4583 (and_scc): Likewise.
4584 (cond_move): Likewise.
4585 (if_plus_move): Likewise.
4586 (if_move_plus): Likewise.
4587 (if_move_not): Likewise.
4588 (if_not_move): Likewise.
4589 (if_shift_move): Likewise.
4590 (if_move_shift): Likewise.
4591 (if_shift_shift): Likewise.
4592 (if_not_arith): Likewise.
4593 (if_arith_not): Likewise.
4594 (cond_move_not): Likewise.
4595 (thumb1_ashlsi3): Set type attribute.
4596 (thumb1_ashrsi3): Likewise.
4597 (thumb1_lshrsi3): Likewise.
4598 (thumb1_rotrsi3): Likewise.
4599 (shiftsi3_compare0_scratch): Likewise.
4600 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
4601 (neon_mov<mode>): Likewise.
371e77e3
UB
4602 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
4603 attribute changes.
006bd006
SN
4604 (thumb2_movsi_insn): Likewise.
4605 (thumb2_cmpsi_neg_shiftsi): Likewise.
4606 (thumb2_extendqisi_v6): Likewise.
4607 (thumb2_zero_extendhisi2_v6): Likewise.
4608 (thumb2_zero_extendqisi2_v6): Likewise.
4609 (thumb2_shiftsi3_short): Likewise.
4610 (thumb2_addsi3_compare0_scratch): Likewise.
4611 (orsi_not_shiftsi_si): Likewise.
4612 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
4613 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
4614 changes.
4615 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
4616 (1020alu_shift_op): Likewise.
4617 (1020alu_shift_reg_op): Likewise.
4618 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
4619 (alu_shift_op): Likewise.
4620 (alu_shift_reg_op): Likewise.
4621 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
4622 (11_alu_shift_op): Likewise.
4623 (11_alu_shift_reg_op): Likewise.
4624 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
4625 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
4626 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
4627 changes.
006bd006
SN
4628 (cortex_a15_alu_shift): Likewise.
4629 (cortex_a15_alu_shift_reg): Likewise.
371e77e3
UB
4630 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
4631 changes.
006bd006
SN
4632 (cortex_a5_alu_shift): Likewise.
4633 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
4634 changes.
4635 (cortex_a53_alu_shift): Likewise.
4636 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
4637 changes.
4638 (cortex_a7_alu_reg): Likewise.
4639 (cortex_a7_alu_shift): Likewise.
371e77e3
UB
4640 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
4641 changes.
006bd006
SN
4642 (cortex_a8_alu_shift): Likewise.
4643 (cortex_a8_alu_shift_reg): Likewise.
4644 (cortex_a8_mov): Likewise.
4645 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
4646 (cortex_a9_dp_shift): Likewise.
371e77e3
UB
4647 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
4648 changes.
4649 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
4650 changes.
006bd006
SN
4651 (cortex_r4_mov): Likewise.
4652 (cortex_r4_alu_shift): Likewise.
4653 (cortex_r4_alu_shift_reg): Likewise.
4654 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
4655 (526_alu_shift_op): Likewise.
4656 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
4657 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
4658 (626te_alu_shift_op): Likewise.
4659 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
4660 (726te_alu_op): Likewise.
4661 (726te_alu_shift_op): Likewise.
4662 (726te_alu_shift_reg_op): Likewise.
4663 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
4664 (mp626_alu_shift_op): Likewise.
4665 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
4666 (pj4_alu_e1_conds): Likewise.
4667 (pj4_alu): Likewise.
4668 (pj4_alu_conds): Likewise.
4669 (pj4_shift): Likewise.
4670 (pj4_shift_conds): Likewise.
4671 (pj4_alu_shift): Likewise.
4672 (pj4_alu_shift_conds): Likewise.
371e77e3
UB
4673 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
4674 changes.
006bd006
SN
4675 (cortexa7_older_only): Likewise.
4676 (cortexa7_younger): Likewise.
4677
651df1b2
DM
46782013-07-18 David Malcolm <dmalcolm@redhat.com>
4679
4680 * ipa-pure-const.c (generate_summary): Rename to...
4681 (pure_const_generate_summary): ... this.
4682
ea717bd7
IS
46832013-07-17 Iain Sandoe <iain@codesourcery.com>
4684
4685 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
4686
a1259a13
YR
46872013-07-17 Yvan Roux <yvan.roux@linaro.org>
4688
4689 PR target/57909
4690 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
4691 usage in HI mode.
4692
167f68ed
AK
46932013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4694
4695 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
4696 enabled without -march=zEC12.
4697 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
4698 flags to be set.
4699
f900a982
MR
47002013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
4701
4702 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
4703 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
4704 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
4705 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
4706 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
4707 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
4708 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
4709 ISA_HAS_FP4.
4710 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
4711 and ISA_HAS_NMADD3_NMSUB3.
4712 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
4713 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
4714 (nmsub4<mode>, nmsub3<mode>): Likewise.
4715 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
4716
d4ed27eb
MR
47172013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
4718
4719 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
4720 TARGET_MIPS5400 checking.
4721
7a5add18
PB
47222013-07-16 Jakub Jelinek <jakub@redhat.com>
4723 Peter Bergner <bergner@vnet.ibm.com>
4724
4725 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
4726 registers in the comment.
4727 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
4728 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
4729 rather than FIRST_PSEUDO_REGISTERS.
4730
47312013-07-16 Peter Bergner <bergner@vnet.ibm.com>
c694dc01
PB
4732
4733 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
4734 enable extra ISA flags with TARGET_HTM.
4735
d2ab0929
MR
47362013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
4737
4738 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
4739 Fix comment typos.
4740
839c74bc
CH
47412013-07-15 Cong Hou <congh@google.com>
4742
4743 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
4744 in compare function for sorting.
4745
7a5add18 47462013-07-15 Peter Bergner <bergner@vnet.ibm.com>
0258b6e4
PB
4747
4748 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
4749 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
4750 * config/rs6000/rs6000.opt: Add -mhtm option.
4751 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
4752 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
4753 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
4754 __HTM__ if the HTM instructions are available.
4755 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
4756 htm_spr_reg_operand): New define_predicates.
4757 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
4758 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
4759 Include htm.md.
4760 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
4761 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
4762 HTM builtin functions.
4763 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
4764 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
4765 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
4766 (rs6000_builtin_mask_calculate): Likewise.
4767 (rs6000_option_override_internal): Likewise.
4768 (bdesc_htm): Add new HTM builtin support.
4769 (htm_spr_num): New function.
4770 (htm_spr_regno): Likewise.
4771 (rs6000_htm_spr_icode): Likewise.
4772 (htm_expand_builtin): Likewise.
4773 (htm_init_builtins): Likewise.
4774 (rs6000_expand_builtin): Add support for HTM builtin functions.
4775 (rs6000_init_builtins): Likewise.
371e77e3
UB
4776 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
4777 option.
0258b6e4
PB
4778 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
4779 (TARGET_HTM, MASK_HTM): Define macros.
4780 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
4781 (FIXED_REGISTERS): Likewise.
4782 (CALL_USED_REGISTERS): Likewise.
4783 (CALL_REALLY_USED_REGISTERS): Likewise.
4784 (REG_ALLOC_ORDER): Likewise.
4785 (enum reg_class): Likewise.
4786 (REG_CLASS_NAMES): Likewise.
4787 (REG_CLASS_CONTENTS): Likewise.
4788 (REGISTER_NAMES): Likewise.
4789 (ADDITIONAL_REGISTER_NAMES): Likewise.
4790 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
4791 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
4792 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
4793 * config/rs6000/htm.md: New file.
4794 * config/rs6000/htmintrin.h: New file.
4795 * config/rs6000/htmxlintrin.h: New file.
4796
87dd8ab0
MS
47972013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
4798
4799 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
4800 Define SYMBOL_TINY_GOT, update comment.
4801 * config/aarch64/aarch64.c
4802 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
4803 (aarch64_expand_mov_immediate): Likewise.
4804 (aarch64_print_operand): Likewise.
4805 (aarch64_classify_symbol): Likewise.
4806 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
4807 (ldr_got_tiny): Define.
4808
52d676b6
TG
48092013-07-13 Tobias Grosser <tobias@grosser.es>
4810
4811 PR tree-optimization/54094
4812 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
4813 scheduling dimension for the parallelism check from the polyhedral
4814 information in the AST.
4815 * graphite-dependences.c (carries_deps): Do not assume the schedule is
4816 in 2D + 1 form.
4817
286e8fc1
JM
48182013-07-13 Jason Merrill <jason@redhat.com>
4819
4820 * print-tree.c (debug_vec_tree): Use debug_raw.
4821 (debug_raw (vec<tree, va_gc> &)): New.
4822 (debug_raw (vec<tree, va_gc> *)): New.
4823 * tree.h: Declare them.
4824
e43257e8
BC
48252013-07-13 Bin Cheng <bin.cheng@arm.com>
4826
4827 * ifcvt.c (ifcvt_after_combine): New static variable.
4828 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
4829 for size.
4830 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
4831 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
4832 rest_of_handle_if_after_reload): Pass new argument for if_convert.
4833
da582d46
MR
48342013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
4835
4836 * config/mips/mips.c (mips_expand_call): Remove empty statement.
4837
18b0ea8f
MM
48382013-07-12 Michael Matz <matz@suse.de>
4839
4840 PR middle-end/55771
4841 * convert.c (convert_to_real): Reject non-float inner types.
4842
e4f0f84d
TB
48432013-07-12 Tejas Belagod <tejas.belagod@arm.com>
4844
4845 * config/aarch64/aarch64-protos.h
4846 (aarch64_simd_immediate_valid_for_move): Remove.
4847 * config/aarch64/aarch64.c (simd_immediate_info): New member.
4848 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
4849 cases.
4850 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
4851
76500022
SE
48522013-07-11 Steve Ellcey <sellcey@mips.com>
4853
4854 * config/mips/mips.c (mips_conditional_register_usage): Do not
4855 use t[0-7] registers in MIPS16 mode when optimizing for size.
4856
78039734
ST
48572013-07-11 Sriraman Tallam <tmsriram@google.com>
4858
4859 * config/i386/i386.c (dispatch_function_versions): Fix array
4860 indexing of function_version_info to match actual_versions.
4861
7b24b675
TJ
48622013-07-11 Teresa Johnson <tejohnson@google.com>
4863
4864 * vec.h (struct va_gc): Move release out-of-line.
4865 (va_gc::release): Call ggc_free on released vec.
4866
85d4cbb8
UW
48672013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4868
4869 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
4870 Require GOT register as additional operand in UNSPEC.
4871 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
4872 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
4873 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
4874 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
4875 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
4876 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
4877 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
4878
52b3f9e2
GJL
48792013-07-11 Georg-Johann Lay <avr@gjlay.de>
4880
4881 PR target/57631
4882 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
4883 name seen by assembler/linker rather if available.
4884
3f3e266e
AS
48852013-07-11 Andreas Schwab <schwab@suse.de>
4886
4887 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
4888
21231ca6
VM
48892013-07-10 Vladimir Makarov <vmakarov@redhat.com>
4890
371e77e3 4891 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
21231ca6 4892
d331d374
JM
48932013-07-10 Joseph Myers <joseph@codesourcery.com>
4894
673c2f63
JM
4895 * doc/tm.texi.in: Move hook documentation to ....
4896 * target.def: ... here.
4897
d331d374
JM
4898 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
4899 text on @hook line.
4900 * doc/tm.texi: Regenerate.
4901
dfeadaa0
PC
49022013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
4903
4904 PR c++/57869
4905 * doc/invoke.texi: Document -Wconditionally-supported.
4906
bb6f2bac
GJL
49072013-07-10 Georg-Johann Lay <avr@gjlay.de>
4908
4909 PR target/57844
4910 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
4911 of my_fp.
4912
5219b232
GJL
49132013-07-10 Georg-Johann Lay <avr@gjlay.de>
4914
4915 PR target/57506
4916 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
4917 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
4918 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
4919 Remove duplicate devices.
4920 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
4921 * config/avr/t-multilib: Regenerate.
4922 * config/avr/avr-tables.opt: Regenerate.
4923 * doc/avr-mmcu.texi: Regenerate.
4924
283045c0
GJL
49252013-07-10 Georg-Johann Lay <avr@gjlay.de>
4926
4927 PR target/56987
4928 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
4929
ceb2d59f 49302013-07-10 Graham Stott <graham.stott@btinternet.com>
6a2fa4b2 4931
ceb2d59f
GS
4932 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
4933 the cost of MULT when optimizing for size.
4934
055e0a99
JBG
49352013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
4936
4937 * config/cr16/cr16-protos.h: Don't include target.h.
4938
ef43e868
JM
49392013-07-09 Joseph Myers <joseph@codesourcery.com>
4940
4941 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
4942 adjust register size for TDmode and TFmode for VSX registers.
4943
4a283fdf
KT
49442013-07-08 Kai Tietz <ktietz@redhat.com>
4945
4946 PR target/56892
4947 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
4948 hook_bool_const_tree_true.
4949
2cf4c39e
AK
49502013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4951
4952 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
4953 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
4954 * config/s390/s390.md: Define FPR*_REGNUM constants.
4955 Fix FPR2_REGNUM constant (18 -> 17).
4956 ("*trunc<BFP:mode><DFP_ALL:mode>2")
4957 ("*trunc<DFP_ALL:mode><BFP:mode>2")
4958 ("trunc<BFP:mode><DFP_ALL:mode>2")
4959 ("trunc<DFP_ALL:mode><BFP:mode>2")
4960 ("*extend<BFP:mode><DFP_ALL:mode>2")
4961 ("*extend<DFP_ALL:mode><BFP:mode>2")
4962 ("extend<BFP:mode><DFP_ALL:mode>2")
4963 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
4964 FPR4_REGNUM.
4965
e6ac0270 49662013-07-08 Graham Stott <graham.stott@btinternet.com>
e6ac0270 4967
6a2fa4b2 4968 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
64a92610 4969
b89b22fc
AK
49702013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4971
4972 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
4973 and cfun_fpr_bit_p to cfun_fpr_save_p.
4974 (s390_frame_area, s390_register_info, s390_frame_info)
4975 (s390_emit_prologue, s390_emit_epilogue)
4976 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
4977 register numbers.
4978 * config/s390/s390.h: Define *_REGNUM macros for floating point
4979 register numbers.
4980
07f398aa
EB
49812013-07-08 Eric Botcazou <ebotcazou@adacore.com>
4982
4983 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
4984
75fefa91
PCC
49852013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
4986
4987 PR rtl-optimization/57786
4988 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
4989 and break out of the loop when it is set to false.
4990
046f1eee
JJ
49912013-07-08 Jakub Jelinek <jakub@redhat.com>
4992
8140c065
JJ
4993 PR target/57819
4994 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
4995 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
4996 (const_int 63)) 0)).
4997 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
4998 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
4999 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
5000
046f1eee
JJ
5001 PR rtl-optimization/57829
5002 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
5003 mask bits outside of mode are just sign-extension from mode to HWI.
5004
930b700b
MZ
50052013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
5006
5007 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
5008 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
5009 adjust_address instead of change_address to keep info about alignment.
5010 (emit_strmov): Remove.
5011 (emit_memmov): New function.
5012 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
5013 (expand_movmem_epilogue): Likewise and return updated rtx for
5014 destination.
5015 (expand_constant_movmem_prologue): Likewise and return updated rtx for
5016 destination and source.
5017 (decide_alignment): Refactor, handle vector_loop.
5018 (ix86_expand_movmem): Likewise.
5019 (ix86_expand_setmem): Likewise.
5020 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
5021
7b9d1bd8
UB
50222013-07-07 Uros Bizjak <ubizjak@gmail.com>
5023
5024 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
5025 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
5026
eabb5f48
UB
50272013-07-06 Uros Bizjak <ubizjak@gmail.com>
5028
5029 * config/i386/sse.md (sse_movlhps): Change alternative 3
5030 of operand 2 to "m".
5031
50322013-07-06 Uros Bizjak <ubizjak@gmail.com>
5033
5034 PR target/57807
5035 * config/i386/sse.md (iptr): New mode attribute.
5036 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
5037 (<sse>_vm<plusminus_insn><mode>3): Ditto.
5038 (<sse>_vmmul<mode>3): Ditto.
5039 (<sse>_vmdiv<mode>3): Ditto.
5040 (sse_vmrcpv4sf2): Ditto.
5041 (<sse>_vmsqrt<mode>2): Ditto.
5042 (sse_vmrsqrtv4sf2): Ditto.
5043 (<sse>_vm<code><mode>3): Ditto.
5044 (avx_vmcmp<mode>3): Ditto.
5045 (<sse>_vmmaskcmp<mode>3): Ditto.
5046 (<sse>_comi): Ditto.
5047 (<sse>_ucomi): Ditto.
5048 (*xop_vmfrcz_<mode>): Ditto.
5049 (*fmai_fmadd_<mode>): Ditto.
5050 (*fmai_fmsub_<mode>): Ditto.
5051 (*fmai_fnmadd_<mode>): Ditto.
5052 (*fmai_fnmsub_<mode>): Ditto.
5053 (*fma4i_vmfmadd_<mode>): Ditto.
5054 (*fma4i_vmfmsub_<mode>): Ditto.
5055 (*fma4i_vmfnmadd_<mode>): Ditto.
5056 (*fma4i_vmfnmsub_<mode>): Ditto.
5057 (*xop_vmfrcz_<mode>): Ditto.
5058 (sse_cvtps2pi): Ditto.
5059 (sse_cvttps2pi): Ditto.
5060 (sse_cvtss2si): Ditto.
5061 (sse_cvtss2si_2): Ditto.
5062 (sse_cvtss2siq_2): Ditto.
5063 (sse_cvttss2si): Ditto.
5064 (sse_cvttss2siq): Ditto.
5065 (sse_cvtsd2si): Ditto.
5066 (sse_cvtsd2si_2): Ditto.
5067 (sse_cvtsd2siq_2): Ditto.
5068 (sse_cvttsd2si): Ditto.
5069 (sse_cvttsd2siq): Ditto.
5070 (sse_cvtsd2ss): Ditto.
5071 (sse_cvtss2sd): Ditto.
5072 (avx2_pbroadcast<mode>): Ditto.
5073 (avx2_pbroadcast<mode>_1): Ditto.
5074 (*avx_vperm_broadcast_v4sf): Ditto.
5075
5076 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
5077 (sse_movlhps): Ditto.
5078 (sse_storehps): Ditto.
5079 (sse_loadhps): Ditto.
5080 (sse_storelps): Ditto.
5081 (sse_loadlps): Ditto.
5082 (*vec_concatv4sf): Ditto.
5083 (*vec_interleave_highv2df): Ditto.
5084 (*vec_interleave_lowv2df): Ditto.
5085 (*vec_extractv2df_1_sse): Ditto.
5086 (*vec_extractv2df_0_sse): Ditto.
5087 (sse2_storelpd): Ditto.
5088 (sse2_loadlpd): Ditto.
5089 (sse2_movsd): Ditto.
5090 (*vec_concatv4si): Ditto.
5091 (vec_concatv2di): Ditto.
5092
5093 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
5094 for Intel asm dialect.
5095 (mmx_punpcklwd): Ditto.
5096 (mmx_punpckldq): Ditto.
5097
5098 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
5099 for intel assembler dialect.
5100
1f6eac90
JJ
51012013-07-06 Jakub Jelinek <jakub@redhat.com>
5102
5103 PR target/29776
5104 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
5105 for BUILT_IN_C{LZ,LRSB}*.
5106 * tree.h (CASE_INT_FN): Add FN##IMAX case.
5107 * tree-vrp.c (extract_range_basic): Handle
5108 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
5109 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
5110 fall thru to code calling set_value*.
5111 * builtins.c (expand_builtin): Remove *IMAX cases.
5112 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
5113 if width is bigger than 2*HWI.
5114
2b778c9d
VM
51152013-07-05 Vladimir Makarov <vmakarov@redhat.com>
5116
5117 PR rtl-optimization/55342
5118 * lra-int.h (lra_subreg_reload_pseudos): New.
5119 * lra.c: Add undoing optional reloads to the block diagram.
5120 (lra_subreg_reload_pseudos): New.
5121 (lra_optional_reload_pseudos): Change comments.
5122 (lra): Init and clear lra_subreg_reload_pseudos. Clear
5123 lra_optional_reload_pseudos after undo transformations.
5124 * lra-assigns.c (pseudo_prefix_title): New.
5125 (lra_setup_reg_renumber): Use it.
5126 (spill_for): Ditto. Check subreg reload pseudos too.
5127 (assign_by_spills): Consider subreg reload pseudos too.
5128 * lra-constraints.c (simplify_operand_subreg): Use
5129 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
5130 (curr_insn_transform): Recognize and do optional reloads.
5131 (undo_optional_reloads): New.
5132 (lra_undo_inheritance): Call undo_optional_reloads.
5133
207156e4
TQ
51342013-07-05 Thomas Quinot <quinot@adacore.com>
5135
5136 * tree-complex.c (expand_complex_operations_1): Fix typo.
5137
8990e73a
TB
51382013-07-04 Tejas Belagod <tejas.belagod@arm.com>
5139
5140 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
5141 (tune_params): New member 'const vec_costs'.
5142 * config/aarch64/aarch64.c (generic_vector_cost): New.
5143 (generic_tunings): New member 'generic_vector_cost'.
5144 (aarch64_builtin_vectorization_cost): New.
5145 (aarch64_add_stmt_cost): New.
5146 (TARGET_VECTORIZE_ADD_STMT_COST): New.
5147 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
5148
f7bc421d
JJ
51492013-07-03 Jakub Jelinek <jakub@redhat.com>
5150
5151 PR target/57777
5152 * config/i386/predicates.md (vsib_address_operand): Disallow
5153 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
5154
e90d1568
HPN
51552013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
5156
5157 PR middle-end/55030
5158 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
5159 expand_builtin_setjmp_receiver.
5160 (expand_label): Adjust, call expand_builtin_setjmp_receiver
5161 with NULL for the label parameter.
5162 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
5163 the frame-pointer. Adjust comments.
5164 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
5165 only if LABEL is non-NULL.
5166
cbd7413b
YZ
51672013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
5168
5169 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
5170 (ARM_ABI_AAPCS64): Ditto.
5171 (arm_abi): Ditto.
5172 (ARM_DEFAULT_ABI): Ditto.
5173
dec11868
JG
51742013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
5175
5176 * config/aarch64/aarch64-builtins.c
5177 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
5178 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
5179 (st1): Likewise.
5180 * config/aarch64/aarch64-simd.md
5181 (aarch64_ld1<VALL:mode>): New.
5182 (aarch64_st1<VALL:mode>): Likewise.
5183 * config/aarch64/arm_neon.h
5184 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
5185
786fb9b6
ST
51862013-07-02 Sriraman Tallam <tmsriram@google.com>
5187
0ba6aff3
UB
5188 * config/i386/i386.c (gate_insert_vzeroupper): Check if
5189 target ISA is AVX.
786fb9b6
ST
5190 (ix86_option_override_internal):Turn on all -mavx target flags by
5191 default as they are dependent on AVX anyway.
5192
4b043553
CC
51932013-07-02 Cary Coutant <ccoutant@google.com>
5194
5195 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
5196 deterministic hash.
5197 (loc_checksum_ordered): Likewise.
5198 (hash_loc_operands): Remove inline keyword.
5199
c4e87a13
JJ
52002013-07-02 Jakub Jelinek <jakub@redhat.com>
5201
5202 PR tree-optimization/57741
5203 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
5204 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
5205 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
5206 Allow REAL_CST step_exprs if flag_associative_math.
5207 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
5208
26366d28
IB
52092013-07-02 Ian Bolton <ian.bolton@arm.com>
5210
0ba6aff3 5211 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
26366d28 5212
2879bb2b
IB
52132013-07-02 Ian Bolton <ian.bolton@arm.com>
5214
5215 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
5216
afc5e8a6
KT
52172013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5218
5219 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
5220 encoding.
5221 (iorsi3_insn): Likewise.
5222 (arm_xorsi3): Likewise.
5223
31f8442b
SN
52242013-07-01 Sofiane Naci <sofiane.naci@arm.com>
5225
5226 * arm.md (attribute "wtype"): Delete. Move attribute values from here
5227 to ...
5228 (attribute "type"): ... here, and prefix with "wmmx_".
5229 (attribute "core_cycles"): Update for attribute changes.
5230 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
5231 (tbcstv4hi): Likewise.
5232 (tbcstv2si): Likewise.
5233 (iwmmxt_iordi3): Likewise.
5234 (iwmmxt_xordi3): Likewise.
5235 (iwmmxt_anddi3): Likewise.
5236 (iwmmxt_nanddi3): Likewise.
5237 (iwmmxt_arm_movdi): Likewise.
5238 (iwmmxt_movsi_insn): Likewise.
5239 (mov<mode>_internal): Likewise.
5240 (and<mode>3_iwmmxt): Likewise.
5241 (ior<mode>3_iwmmxt): Likewise.
5242 (xor<mode>3_iwmmxt): Likewise.
5243 (add<mode>3_iwmmxt): Likewise.
5244 (ssaddv8qi3): Likewise.
5245 (ssaddv4hi3): Likewise.
5246 (ssaddv2si3): Likewise.
5247 (usaddv8qi3): Likewise.
5248 (usaddv4hi3): Likewise.
5249 (usaddv2si3): Likewise.
5250 (sub<mode>3_iwmmxt): Likewise.
5251 (sssubv8qi3): Likewise.
5252 (sssubv4hi3): Likewise.
5253 (sssubv2si3): Likewise.
5254 (ussubv8qi3): Likewise.
5255 (ussubv4hi3): Likewise.
5256 (ussubv2si3): Likewise.
5257 (mulv4hi3_iwmmxt): Likewise.
5258 (smulv4hi3_highpart): Likewise.
5259 (umulv4hi3_highpart): Likewise.
5260 (iwmmxt_wmacs): Likewise.
5261 (iwmmxt_wmacsz): Likewise.
5262 (iwmmxt_wmacu): Likewise.
5263 (iwmmxt_wmacuz): Likewise.
5264 (iwmmxt_clrdi): Likewise.
5265 (iwmmxt_clrv8qi): Likewise.
5266 (iwmmxt_clr4hi): Likewise.
5267 (iwmmxt_clr2si): Likewise.
5268 (iwmmxt_uavgrndv8qi3): Likewise.
5269 (iwmmxt_uavgrndv4hi3): Likewise.
5270 (iwmmxt_uavgv8qi3): Likewise.
5271 (iwmmxt_uavgv4hi3): Likewise.
5272 (iwmmxt_tinsrb): Likewise.
5273 (iwmmxt_tinsrh): Likewise.
5274 (iwmmxt_tinsrw): Likewise.
5275 (iwmmxt_textrmub): Likewise.
5276 (iwmmxt_textrmsb): Likewise.
5277 (iwmmxt_textrmuh): Likewise.
5278 (iwmmxt_textrmsh): Likewise.
5279 (iwmmxt_textrmw): Likewise.
5280 (iwmxxt_wshufh): Likewise.
5281 (eqv8qi3): Likewise.
5282 (eqv4hi3): Likewise.
5283 (eqv2si3): Likewise.
5284 (gtuv8qi3): Likewise.
5285 (gtuv4hi3): Likewise.
5286 (gtuv2si3): Likewise.
5287 (gtv8qi3): Likewise.
5288 (gtv4hi3): Likewise.
5289 (gtv2si3): Likewise.
5290 (smax<mode>3_iwmmxt): Likewise.
5291 (umax<mode>3_iwmmxt): Likewise.
5292 (smin<mode>3_iwmmxt): Likewise.
5293 (umin<mode>3_iwmmxt): Likewise.
5294 (iwmmxt_wpackhss): Likewise.
5295 (iwmmxt_wpackwss): Likewise.
5296 (iwmmxt_wpackdss): Likewise.
5297 (iwmmxt_wpackhus): Likewise.
5298 (iwmmxt_wpackwus): Likewise.
5299 (iwmmxt_wpackdus): Likewise.
5300 (iwmmxt_wunpckihb): Likewise.
5301 (iwmmxt_wunpckihh): Likewise.
5302 (iwmmxt_wunpckihw): Likewise.
5303 (iwmmxt_wunpckilb): Likewise.
5304 (iwmmxt_wunpckilh): Likewise.
5305 (iwmmxt_wunpckilw): Likewise.
5306 (iwmmxt_wunpckehub): Likewise.
5307 (iwmmxt_wunpckehuh): Likewise.
5308 (iwmmxt_wunpckehuw): Likewise.
5309 (iwmmxt_wunpckehsb): Likewise.
5310 (iwmmxt_wunpckehsh): Likewise.
5311 (iwmmxt_wunpckehsw): Likewise.
5312 (iwmmxt_wunpckelub): Likewise.
5313 (iwmmxt_wunpckeluh): Likewise.
5314 (iwmmxt_wunpckeluw): Likewise.
5315 (iwmmxt_wunpckelsb): Likewise.
5316 (iwmmxt_wunpckelsh): Likewise.
5317 (iwmmxt_wunpckelsw): Likewise.
5318 (ror<mode>3): Likewise.
5319 (ashr<mode>3_iwmmxt): Likewise.
5320 (lshr<mode>3_iwmmxt): Likewise.
5321 (ashl<mode>3_iwmmxt): Likewise.
5322 (ror<mode>3_di): Likewise.
5323 (ashr<mode>3_di): Likewise.
5324 (lshr<mode>3_di): Likewise.
5325 (ashl<mode>3_di): Likewise.
5326 (iwmmxt_wmadds): Likewise.
5327 (iwmmxt_wmaddu): Likewise.
5328 (iwmmxt_tmia): Likewise.
5329 (iwmmxt_tmiaph): Likewise.
5330 (iwmmxt_tmiabb): Likewise.
5331 (iwmmxt_tmiatb): Likewise.
5332 (iwmmxt_tmiabt): Likewise.
5333 (iwmmxt_tmiatt): Likewise.
5334 (iwmmxt_tmovmskb): Likewise.
5335 (iwmmxt_tmovmskh): Likewise.
5336 (iwmmxt_tmovmskw): Likewise.
5337 (iwmmxt_waccb): Likewise.
5338 (iwmmxt_wacch): Likewise.
5339 (iwmmxt_waccw): Likewise.
5340 (iwmmxt_waligni): Likewise.
5341 (iwmmxt_walignr): Likewise.
5342 (iwmmxt_walignr0): Likewise.
5343 (iwmmxt_walignr1): Likewise.
5344 (iwmmxt_walignr2): Likewise.
5345 (iwmmxt_walignr3): Likewise.
5346 (iwmmxt_wsadb): Likewise.
5347 (iwmmxt_wsadh): Likewise.
5348 (iwmmxt_wsadbz): Likewise.
5349 (iwmmxt_wsadhz): Likewise.
5350 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
5351 (iwmmxt_wabsdiffb): Likewise.
5352 (iwmmxt_wabsdiffh): Likewise.
5353 (iwmmxt_wabsdiffw): Likewise.
5354 (iwmmxt_waddsubhx): Likewise
5355 (iwmmxt_wsubaddhx): Likewise.
5356 (addc<mode>3): Likewise.
5357 (iwmmxt_avg4): Likewise.
5358 (iwmmxt_avg4r): Likewise.
5359 (iwmmxt_wmaddsx): Likewise.
5360 (iwmmxt_wmaddux): Likewise.
5361 (iwmmxt_wmaddsn): Likewise.
5362 (iwmmxt_wmaddun): Likewise.
5363 (iwmmxt_wmulwsm): Likewise.
5364 (iwmmxt_wmulwum): Likewise.
5365 (iwmmxt_wmulsmr): Likewise.
5366 (iwmmxt_wmulumr): Likewise.
5367 (iwmmxt_wmulwsmr): Likewise.
5368 (iwmmxt_wmulwumr): Likewise.
5369 (iwmmxt_wmulwl): Likewise.
5370 (iwmmxt_wqmulm): Likewise.
5371 (iwmmxt_wqmulwm): Likewise.
5372 (iwmmxt_wqmulmr): Likewise.
5373 (iwmmxt_wqmulwmr): Likewise.
5374 (iwmmxt_waddbhusm): Likewise.
5375 (iwmmxt_waddbhusl): Likewise.
5376 (iwmmxt_wqmiabb): Likewise.
5377 (iwmmxt_wqmiabt): Likewise.
5378 (iwmmxt_wqmiatb): Likewise.
5379 (iwmmxt_wqmiatt): Likewise.
5380 (iwmmxt_wqmiabbn): Likewise.
5381 (iwmmxt_wqmiabtn): Likewise.
5382 (iwmmxt_wqmiatbn): Likewise.
5383 (iwmmxt_wqmiattn): Likewise.
5384 (iwmmxt_wmiabb): Likewise.
5385 (iwmmxt_wmiabt): Likewise.
5386 (iwmmxt_wmiatb): Likewise.
5387 (iwmmxt_wmiatt): Likewise.
5388 (iwmmxt_wmiabbn): Likewise.
5389 (iwmmxt_wmiabtn): Likewise.
5390 (iwmmxt_wmiatbn): Likewise.
5391 (iwmmxt_wmiattn): Likewise.
5392 (iwmmxt_wmiawbb): Likewise.
5393 (iwmmxt_wmiawbt): Likewise.
5394 (iwmmxt_wmiawtb): Likewise.
5395 (iwmmxt_wmiawtt): Likewise.
5396 (iwmmxt_wmiawbbn): Likewise.
5397 (iwmmxt_wmiawbtn): Likewise.
5398 (iwmmxt_wmiawtbn): Likewise.
5399 (iwmmxt_wmiawttn): Likewise.
5400 (iwmmxt_wmerge): Likewise.
5401 (iwmmxt_tandc<mode>3): Likewise.
5402 (iwmmxt_torc<mode>3): Likewise.
5403 (iwmmxt_torvsc<mode>3): Likewise.
5404 (iwmmxt_textrc<mode>3): Likewise.
5405 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
5406 (wmmxt_pack): Likewise.
5407 (wmmxt_mult_c1): Likewise.
5408 (wmmxt_mult_c2): Likewise.
5409 (wmmxt_alu_c1): Likewise.
5410 (wmmxt_alu_c2): Likewise.
5411 (wmmxt_alu_c3): Likewise.
5412 (wmmxt_transfer_c1): Likewise.
5413 (wmmxt_transfer_c2): Likewise.
5414 (wmmxt_transfer_c3): Likewise.
5415 (marvell_f_iwmmxt_wstr): Likewise.
5416 (marvell_f_iwmmxt_wldr): Likewise.
5417
bdb7bf8a
YZ
54182013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
5419
0ba6aff3 5420 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
bdb7bf8a 5421
e6631d38
VM
54222013-06-28 Vladimir Makarov <vmakarov@redhat.com>
5423
5424 Revert:
5425 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
5426 * lra-constraints.c (need_for_split_p): Check call used hard regs
5427 living through calls.
5428
5429 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
5430 call used regs for call insn.
5431
53c1275b
JJ
54322013-06-28 Jakub Jelinek <jakub@redhat.com>
5433
5434 PR target/57736
0ba6aff3
UB
5435 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
5436 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
53c1275b 5437
1141ed3f
BI
54382013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
5439
5440 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
e6631d38 5441
e32e4c4a
VM
54422013-06-28 Vladimir Makarov <vmakarov@redhat.com>
5443
5444 * lra-constraints.c (need_for_split_p): Check call used hard regs
5445 living through calls.
5446
f161bfd3
MM
54472013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
5448
5449 PR target/57744
5450 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
5451 to tie with any other modes. Eliminate Altivec vector mode tests,
5452 since these are a subset of ALTIVEC or VSX vector modes. Simplify
5453 code, to return 0 if testing MODE2 for a condition, if we've
5454 already tested MODE1 for the same condition.
5455
7eda14e1
MS
54562013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
5457
5458 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
5459 layout.
5460
c822f852
MS
54612013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
5462
5463 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
5464 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
5465
da4f13a4
MS
54662013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
5467
0ba6aff3
UB
5468 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
5469 Define.
da4f13a4
MS
5470 (aarch64_symbolic_constant_p): Remove.
5471 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
5472 static. Fix line length and white space.
5473 (aarch64_symbolic_constant_p): Remove.
5474 * config/aarch64/predicates.md (aarch64_valid_symref):
5475 Use aarch64_classify_symbol_expression.
5476
956a95a5
KT
54772013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5478
5479 * config/arm/constraints.md (Ts): New constraint.
5480 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
5481 16-bit encodings.
5482 (compare_scc): Use "Ts" constraint for operand 0.
5483 (ior_scc_scc): Likewise.
5484 (and_scc_scc): Likewise.
5485 (and_scc_scc_nodom): Likewise.
5486 (ior_scc_scc_cmp): Likewise for operand 7.
5487 (and_scc_scc_cmp): Likewise.
5488 * config/arm/thumb2.md (thumb2_movsi_insn):
5489 Add alternatives for 16-bit encodings.
5490 (thumb2_movhi_insn): Likewise.
5491 (thumb2_movsicc_insn): Likewise.
5492 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
5493 (thumb2_negscc): Use "Ts" constraint.
5494 Move mvn instruction outside cond_exec block.
5495 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
5496 for 16-bit encodings.
5497
31dfce10
KT
54982013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5499
5500 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
5501 encoding.
5502 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
5503 (mulsi3subsi): Likewise.
5504 (mulsidi3adddi): Likewise.
5505 (mulsidi3_v6): Likewise.
5506 (umulsidi3_v6): Likewise.
5507 (umulsidi3adddi_v6): Likewise.
5508 (smulsi3_highpart_v6): Likewise.
5509 (umulsi3_highpart_v6): Likewise.
5510 (mulhisi3tb): Likewise.
5511 (mulhisi3bt): Likewise.
5512 (mulhisi3tt): Likewise.
5513 (maddhisi4): Likewise.
5514 (maddhisi4tb): Likewise.
5515 (maddhisi4tt): Likewise.
5516 (maddhidi4): Likewise.
5517 (maddhidi4tb): Likewise.
5518 (maddhidi4tt): Likewise.
5519 (zeroextractsi_compare0_scratch): Likewise.
5520 (insv_zero): Likewise.
5521 (insv_t2): Likewise.
5522 (anddi_notzesidi_di): Likewise.
5523 (anddi_notsesidi_di): Likewise.
5524 (andsi_notsi_si): Likewise.
5525 (iordi_zesidi_di): Likewise.
5526 (xordi_zesidi_di): Likewise.
5527 (andsi_iorsi3_notsi): Likewise.
5528 (smax_0): Likewise.
5529 (smax_m1): Likewise.
5530 (smin_0): Likewise.
5531 (not_shiftsi): Likewise.
5532 (unaligned_loadsi): Likewise.
5533 (unaligned_loadhis): Likewise.
5534 (unaligned_loadhiu): Likewise.
5535 (unaligned_storesi): Likewise.
5536 (unaligned_storehi): Likewise.
5537 (extv_reg): Likewise.
5538 (extzv_t2): Likewise.
5539 (divsi3): Likewise.
5540 (udivsi3): Likewise.
5541 (arm_zero_extendhisi2addsi): Likewise.
5542 (arm_zero_extendqisi2addsi): Likewise.
5543 (compareqi_eq0): Likewise.
5544 (arm_extendhisi2_v6): Likewise.
5545 (arm_extendqisi2addsi): Likewise.
5546 (arm_movt): Likewise.
5547 (thumb2_ldrd): Likewise.
5548 (thumb2_ldrd_base): Likewise.
5549 (thumb2_ldrd_base_neg): Likewise.
5550 (thumb2_strd): Likewise.
5551 (thumb2_strd_base): Likewise.
5552 (thumb2_strd_base_neg): Likewise.
5553 (arm_negsi2): Add alternative for 16-bit encoding.
5554 (arm_one_cmplsi2): Likewise.
5555
1572e697
KT
55562013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5557
5558 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
5559 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
5560 (movdfcc): Likewise.
5561 * config/arm/vfp.md (*thumb2_movsf_vfp):
5562 Disable predication for arm_restrict_it.
5563 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
5564 (*thumb2_movdfcc_vfp): Likewise.
5565 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
5566 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
5567 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
5568 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
5569 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
5570 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
5571 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
5572 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
5573 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
5574 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
5575 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
5576 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
5577 Disable predication for arm_restrict_it.
5578
ebf8f0ea
KY
55792013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
5580
5581 * config/i386/bmiintrin.h (_bextr_u32): New.
5582 (_bextr_u64): Ditto.
5583
a290fcda
RS
55842013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
5585
5586 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
5587 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
5588 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
5589 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
5590 * config/mips/n32-elf.h: ...this new file.
5591
ea169996
MG
55922013-06-27 Marc Glisse <marc.glisse@inria.fr>
5593
5594 PR target/57224
5595 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
5596 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
5597
12211b99 55982013-06-27 Catherine Moore <clm@codesourcery.com>
8e932114
CM
5599
5600 * config/mips/mips-tables.opt: Regenerate.
5601 * config/mips/mips-cpus.def: Add m14ke and m14kec.
0ba6aff3 5602 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
8e932114 5603 * doc/invoke.texi: Add -m14kc.
ebf8f0ea 5604
2444244e
JJ
56052013-06-27 Jakub Jelinek <jakub@redhat.com>
5606
cd06d2a2
JJ
5607 PR target/57623
5608 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
5609 constraints of operand 1 and 2.
5610
2444244e
JJ
5611 PR target/57623
5612 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
5613 to match RTL canonicalization. Swap predicates and
5614 constraints of operand 1 and 2.
5615
2f259720
VM
56162013-06-27 Vladimir Makarov <vmakarov@redhat.com>
5617
0ba6aff3
UB
5618 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
5619 Process OP_INOUT regs for splitting too.
2f259720 5620
fef4d2b3
JJ
56212013-06-27 Jakub Jelinek <jakub@redhat.com>
5622
5623 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
5624 decl before the loop, initialize to NULL.
5625 (vectorizable_load): Initialize ptr_incr to NULL.
5626
79ee9826
MJ
56272013-06-27 Martin Jambor <mjambor@suse.cz>
5628
5629 PR lto/57208
5630 * ipa-ref.h (ipa_maybe_record_reference): Declare.
5631 * ipa-ref.c (ipa_maybe_record_reference): New function.
5632 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
5633 * ipa-cp.c (create_specialized_node): Record potential references from
5634 aggvals.
5635 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
5636
e18b4a81
YZ
56372013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
5638
5639 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
5640 parameter 'mode' of type 'enum machine_mode mode'; change to pass
5641 'mode' to force_reg.
5642 (aarch64_add_offset): Update calls to aarch64_force_temporary.
5643 (aarch64_expand_mov_immediate): Likewise.
5644
9c023bf0
YZ
56452013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
5646
5647 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
5648 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
5649
5a3fe9b6
AK
56502013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5651
5652 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
5653 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
5654 (struct machine_function): Add tbegin_p.
5655 (s390_canonicalize_comparison): Fold CC mode compares to
5656 conditional jump if possible.
5657 (s390_emit_jump): Return the emitted jump.
5658 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
5659 Handle CCRAWmode compares.
5660 (s390_option_override): Default to -mhtm if available.
5661 (s390_reg_clobbered_rtx): Handle floating point regs as well.
5662 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
5663 FPRs instead of df_regs_ever_live_p.
5664 (s390_optimize_nonescaping_tx): New function.
5665 (s390_init_frame_layout): Extend clobbered_regs array to cover
5666 FPRs as well.
5667 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
5668 (s390_expand_tbegin): New function.
5669 (enum s390_builtin): New enum definition.
5670 (code_for_builtin): New array definition.
5671 (s390_init_builtins): New function.
5672 (s390_expand_builtin): New function.
5673 (TARGET_INIT_BUILTINS): Define.
5674 (TARGET_EXPAND_BUILTIN): Define.
0ba6aff3 5675 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
5a3fe9b6
AK
5676 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
5677 (s390_alc_comparison): Likewise.
5678 * config/s390/s390-modes.def: Add CCRAWmode.
5679 * config/s390/s390.h (processor_flags): Add PF_TX.
5680 (TARGET_CPU_HTM): Define macro.
5681 (TARGET_HTM): Define macro.
5682 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
5683 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
5684 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
5685 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
0ba6aff3 5686 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
5a3fe9b6
AK
5687 (TBEGIN_MASK, TBEGINC_MASK): New constants.
5688 ("*cc_to_int"): Move up.
5689 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
5690 constants other than 0.
5691 ("*ccraw_to_int"): New insn and splitter definition.
5692 ("tbegin", "tbegin_nofloat", "tbegin_retry")
5693 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
5694 ("tx_assist"): New expander.
5695 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
5696 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
5697 * config/s390/s390.opt: Add -mhtm option.
5698 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
5699 * config/s390/htmxlintrin.h: New file.
5700 * config/s390/htmintrin.h: New file.
5701 * config/s390/s390intrin.h: New file.
5702 * doc/extend.texi: Document htm builtins.
5703 * config.gcc: Add the new header files to extra_headers.
5704
9e216629
TS
57052013-06-26 Thomas Schwinge <thomas@codesourcery.com>
5706
5707 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
0ba6aff3 5708 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
9e216629 5709
fd8c65e7 57102013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
5711 Pat Haugen <pthaugen@us.ibm.com>
5712 Peter Bergner <bergner@vnet.ibm.com>
fd8c65e7
MM
5713
5714 * config/rs6000/power8.md: New.
5715 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
5716 setting for power8 entry.
5717 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
5718 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
5719 test for Power4/Power5 only.
5720 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
5721 support.
5722 (force_new_group): Adjust comment.
5723 * config/rs6000/rs6000.md: Include power8.md.
5724
b24a2ce5
GY
57252013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
5726
5727 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
5728 * config/arm/arm-protos.h (arm_max_conditional_execute): New
5729 declaration.
5730 (tune_params): Update comment.
5731 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
5732 (arm_max_conditional_execute): New function.
5733 (thumb2_final_prescan_insn): Use max_insn_skipped and
5734 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
5735
f6fdeb62
JJ
57362013-06-25 Jakub Jelinek <jakub@redhat.com>
5737
5738 PR tree-optimization/57705
5739 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
5740 SSA_NAME step, provided that it is not defined inside the loop.
0ba6aff3 5741 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
f6fdeb62
JJ
5742 (get_initial_def_for_induction): Handle SSA_NAME IV step.
5743
c13bc3d9
MJ
57442013-06-25 Martin Jambor <mjambor@suse.cz>
5745
5746 PR middle-end/57670
5747 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
5748 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
5749 calls in the dump.
5750 (ipa_note_param_call): Initialize member_ptr flag.
5751 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
5752 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
5753 (ipa_write_indirect_edge_info): Stream member_ptr flag.
5754 (ipa_read_indirect_edge_info): Likewise.
5755
8a845901
RB
57562013-06-25 Richard Biener <rguenther@suse.de>
5757
5758 PR middle-end/56977
5759 * passes.c (init_optimization_passes): Move pass_fold_builtins
5760 and pass_dce earlier with -Og.
5761
33be0bec
EB
57622013-06-25 Eric Botcazou <ebotcazou@adacore.com>
5763
5764 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
5765 <BIT_FIELD_REF>: Remove trailing TAB.
5766 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
5767 remove blank line.
5768
5fe8e757
MJ
57692013-06-24 Martin Jambor <mjambor@suse.cz>
5770
5771 PR tree-optimization/57358
5772 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
5773 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
5774 (ipa_analyze_params_uses): Generate pessimistic info when true.
5775
44a60244
MJ
57762013-06-24 Martin Jambor <mjambor@suse.cz>
5777
5778 PR tree-optimization/57539
5779 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
5780 global.inlined_to of the new node to it. All callers changed.
5781 * ipa-inline-transform.c (clone_inlined_nodes): New variable
5782 inlining_into, pass it to cgraph_clone_node.
5783 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
5784 ipa_free_edge_args_substructures.
5785 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
5786 rdesc linked list. Do not assert rdesc edges have inlined caller.
5787 Assert we have found an rdesc in the rdesc list.
5788
7c5848b8
RB
57892013-06-24 Richard Biener <rguenther@suse.de>
5790
0ba6aff3 5791 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
7c5848b8
RB
5792 (pointer_set_lookup): Declare.
5793 (class pointer_map): New template class implementing a
5794 generic pointer to T map.
5795 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
5796 pointer_map<T>::contains, pointer_map<T>::insert,
5797 pointer_map<T>::traverse): New functions.
5798 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
5799 (pointer_set_lookup): New function.
5800 (pointer_set_contains): Use pointer_set_lookup.
5801 (pointer_set_insert): Likewise.
5802 (insert_aux): Remove.
5803 (struct pointer_map_t): Embed a pointer_set_t.
5804 (pointer_map_create): Adjust.
5805 (pointer_map_destroy): Likewise.
5806 (pointer_map_contains): Likewise.
5807 (pointer_map_insert): Likewise.
5808 (pointer_map_traverse): Likewise.
5809 * tree-streamer.h (struct streamer_tree_cache_d): Use a
5810 pointer_map<unsigned> instead of a pointer_map_t.
5811 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
5812 (streamer_tree_cache_lookup): Likewise.
5813 (streamer_tree_cache_create): Likewise.
5814 (streamer_tree_cache_delete): Likewise.
5815 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
5816 pointer_map<unsigned> instead of a pointer_map_t.
5817 (lto_init_tree_ref_encoder): Adjust.
5818 (lto_destroy_tree_ref_encoder): Likewise.
5819 * lto-section-out.c (lto_output_decl_index): Likewise.
5820 (lto_record_function_out_decl_state): Likewise.
5821 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
5822
3dbc97a9
RB
58232013-06-24 Richard Biener <rguenther@suse.de>
5824
5825 PR tree-optimization/57488
5826 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
5827
8345965a
AM
58282013-06-24 Alan Modra <amodra@gmail.com>
5829
5830 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
5831 (gen_easy_altivec_constant): Likewise.
5832 * config/rs6000/predicates.md (easy_vector_constant_add_self,
5833 easy_vector_constant_msb): Likewise.
5834
b7df379f
JJ
58352013-06-23 Jakub Jelinek <jakub@redhat.com>
5836
5837 PR target/57688
5838 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
5839 add missing return true.
5840
12211b99 58412013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
0bcf9a09
OE
5842
5843 PR target/52483
5844 * config/sh/predicates.md (general_extend_operand): Invoke
5845 general_movsrc_operand for memory operands.
5846 (general_movsrc_operand): Allow reg+reg addressing, do not use
5847 general_operand for memory operands.
5848
97db2bf7
ST
58492013-06-23 Sriraman Tallam <tmsriram@google.com>
5850
5851 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
5852 when current target options does not apply.
5853 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
5854 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
0ba6aff3
UB
5855 * config/i386/bmiintrin.h: Pass appropriate target
5856 attributes to header.
97db2bf7
ST
5857 * config/i386/mmintrin.h: Ditto.
5858 * config/i386/nmmintrin.h: Ditto.
5859 * config/i386/avx2intrin.h: Ditto.
5860 * config/i386/fxsrintrin.h: Ditto.
5861 * config/i386/tbmintrin.h: Ditto.
5862 * config/i386/xsaveintrin.h: Ditto.
5863 * config/i386/f16cintrin.h: Ditto.
5864 * config/i386/xtestintrin.h: Ditto.
5865 * config/i386/xsaveoptintrin.h: Ditto.
5866 * config/i386/bmi2intrin.h: Ditto.
5867 * config/i386/lzcntintrin.h: Ditto.
5868 * config/i386/smmintrin.h: Ditto.
5869 * config/i386/wmmintrin.h: Ditto.
5870 * config/i386/x86intrin.h: Remove all header include guards.
5871 * config/i386/prfchwintrin.h: Ditto.
5872 * config/i386/pmmintrin.h: Ditto.
5873 * config/i386/tmmintrin.h: Ditto.
5874 * config/i386/xmmintrin.h: Ditto.
5875 * config/i386/popcntintrin.h: Ditto.
5876 * config/i386/rdseedintrin.h: Ditto.
5877 * config/i386/ammintrin.h: Ditto.
5878 * config/i386/emmintrin.h: Ditto.
5879 * config/i386/immintrin.h: Remove all header include guards.
5880 * config/i386/fma4intrin.h: Ditto.
5881 * config/i386/lwpintrin.h: Ditto.
5882 * config/i386/xopintrin.h: Ditto.
5883 * config/i386/ia32intrin.h: Ditto.
5884 * config/i386/avxintrin.h: Ditto.
5885 * config/i386/rtmintrin.h: Ditto.
5886 * config/i386/fmaintrin.h: Ditto.
5887 * config/i386/mm3dnow.h: Ditto.
5888
495e6879
ST
58892013-06-22 Sriraman Tallam <tmsriram@google.com>
5890
5891 * common/config/i386/i386-common.c: Handle LZCNT.
5892
11e8f687
AK
58932013-06-22 Andi Kleen <ak@linux.intel.com>
5894
5895 * doc/extend.texi: Use __atomic_store_n instead of
5896 __atomic_store in HLE example.
5897
12211b99 58982013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
664dd721
OE
5899
5900 * config/sh/sh.c: Remove <cstdlib> workaround.
5901
927f908b
AK
59022013-06-21 Andi Kleen <ak@linux.intel.com>
5903
0ba6aff3 5904 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
927f908b 5905
cca410b6
AK
59062013-06-21 Andi Kleen <ak@linux.intel.com>
5907
5908 * doc/extend.texi: Document that __atomic_clear and
5909 __atomic_test_and_set should only be used with bool.
5910
d84db1ed
JH
59112013-06-20 Jan Hubicka <jh@suse.cz>
5912
5913 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
5914 types_same_for_odr.
5915 * tree.c (decls_same_for_odr): New function.
5916 (same_for_edr): New function.
5917 (types_same_for_odr): New function.
5918 (get_binfo_at_offset): Use it.
5919 * tree.h (types_same_for_odr): Declare.
5920
12211b99 59212013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
469a31a9
OE
5922 Jason Merrill <jason@redhat.com>
5923
5924 * system.h: Include <cstdlib> as well as <stdlib.h>.
5925
49b4ff63
UB
59262013-06-20 Uros Bizjak <ubizjak@gmail.com>
5927
5928 PR target/57655
5929 * config/i386/i386.c (construct_container): Report error if
5930 long double is used with disabled x87 float returns.
5931
7a89ad00
JH
59322013-06-20 Jan Hubicka <jh@suse.cz>
5933
5934 * lto-cgraph.c (input_symtab): Do not set cgraph state.
5935
12211b99 59362013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
bd280792
JR
5937
5938 PR rtl-optimization/57425
5939 PR rtl-optimization/57569
5940 * alias.c (write_dependence_p): Remove parameters mem_mode and
5941 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
5942 Changed all callers.
5943 (canon_anti_dependence): Get comments and semantics in sync.
5944 Add parameter mem_canonicalized. Changed all callers.
5945 * rtl.h (canon_anti_dependence): Update prototype.
5946
d16e9a99
RB
59472013-06-20 Richard Biener <rguenther@suse.de>
5948
5949 * data-streamer-in.c (streamer_read_uhwi): Optimize single
5950 byte case, inline streamer_read_uchar and defer section
5951 overrun check.
5952
c3a9b91b
RB
59532013-06-20 Richard Biener <rguenther@suse.de>
5954
5955 PR tree-optimization/57584
5956 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
5957 SSA names into the expanded expression that take part in
5958 abnormal coalescing.
5959
371e77e3 59602013-06-19 Sharad Singhai <singhai@google.com>
fc8a650e
SS
5961
5962 * gcov.c (print_usage): Handle new option.
5963 (process_args): Ditto.
5964 (get_gcov_intermediate_filename): New function.
5965 (output_intermediate_file): New function.
5966 (output_gcov_file): New function
5967 (generate_results): Handle new option.
5968 (release_function): Relase demangled name.
5969 (read_graph_file): Handle demangled name.
5970 (output_lines): Ditto.
5971 * doc/gcov.texi: Document gcov intermediate format.
5972
11f5b71a
VM
59732013-06-19 Vladimir Makarov <vmakarov@redhat.com>
5974
5975 PR bootstrap/57604
5976 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
5977 (lra_emit_add): Use the functions. Add comment about Y as an
5978 address segment.
5979
e1f9340b
DE
59802013-06-19 David Edelsohn <dje.gcc@gmail.com>
5981
5982 PR driver/57652
5983 * collect2.c (collect_atexit): New.
5984 (collect_exit): Delete.
5985 (main): Register collect_atexit with atexit.
5986 (collect_wait): Change collect_exit to exit.
5987 (do_wait): Same.
5988 * collect2.h (collect_exit): Delete.
5989 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
5990
e3f9e0ac
WM
59912013-06-19 Wei Mi <wmi@google.com>
5992
5993 PR rtl-optimization/57518
5994 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
5995 if regno is used in paradoxical subreg.
5996 (update_equiv_regs): Check pdx_subregs[regno] before
5997 set a reg to be equivalent with a mem.
5998
a09f1a76
MK
59992013-06-19 Matthias Klose <doko@ubuntu.com>
6000
6001 PR driver/57651
6002 * file-find.h (find_a_file): Add a mode parameter.
6003 * file-find.c (find_a_file): Likewise.
6004 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
6005 with X_OK for the executables.
6006 * collect2.c (main): Call find_a_file with X_OK.
6007
7d18b0ad
SE
60082013-06-19 Steve Ellcey <sellcey@mips.com>
6009
6010 PR target/56942
6011 * config/mips/mips.md (casesi_internal_mips16_<mode>):
6012 Use NEXT_INSN instead of next_real_insn.
6013
6a6dac52
JH
60142013-06-19 Jan Hubicka <jh@suse.cz>
6015
6016 * cgraph.h (const_value_known_p): Replace by ...
6017 (ctor_for_folding): .. this one.
6018 * cgraphunit.c (process_function_and_variable_attributes): Use it.
6019 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
6020 * expr.c (expand_expr_real_1): Likewise.
6021 (string_constant): Likewise.
6022 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
6023 * ipa.c (process_references): Likewise.
6024 (symtab_remove_unreachable_nodes): Likewise.
6025 * ipa-inline-analysis.c (param_change_prob): Likewise.
6026 * gimple-fold.c (canonicalize_constructor_val): Likewise.
6027 (get_base_constructor): Likwise.
6028 * varpool.c (varpool_remove_node): Likewise.
6029 (varpool_remove_initializer): LIkewise.
6030 (dump_varpool_node): LIkwise.
6031 (const_value_known_p): Rewrite to ...
6032 (ctor_for_folding): ... this one.
6033
216c12ab
JJ
60342013-06-19 Jakub Jelinek <jakub@redhat.com>
6035
6036 PR driver/57651
6037 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
6038 PERSONALITY in $PATH derived prefixes.
6039
d53e2f99
JL
60402013-06-19 Jeff Law <law@redhat.com>
6041
ecdbf306
JL
6042 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
6043 in comment.
6044
d53e2f99
JL
6045 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
6046 (simplify_bitwise_binary): Use it to simpify certain binary ops on
6047 booleans.
6048
89e7fc04
SN
60492013-06-19 Sofiane Naci <sofiane.naci@arm.com>
6050
6051 * config/arm/vfp.md: Move VFP instruction classification documentation
6052 to ...
6053 * config/arm/arm.md: ... here. Update instruction classification
6054 documentation.
6055
5e7f6aaa
RE
60562013-06-19 Richard Earnshaw <rearnsha@arm.com>
6057
6058 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
6059 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
6060 pattern. Use more efficient sequences on ARMv5 and Thumb2.
6061
5fdc1e5d
SB
60622013-06-19 Steven Bosscher <steven@gcc.gnu.org>
6063
6064 PR target/57609
6065 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
6066 with NEXT_INSN. Use tablejump_p to check for jump table data
6067 insns.
6068
e952afba
PC
60692013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
6070
6071 PR c++/56544
6072 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
6073 that now in C++ the value is correct per the C++ standards.
6074
3fd0303a
RB
60752013-06-19 Richard Biener <rguenther@suse.de>
6076
6077 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
6078 for global context.
6079
b04e4b08
AK
60802013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6081
6082 Revert:
6083 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6084
6085 PR target/57609
6086 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
6087 with next_active_insn.
6088
bef8491a
ST
60892013-06-18 Sriraman Tallam <tmsriram@google.com>
6090
6091 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
6092 functions are inlined during failures to flag an error.
6093 * tree-inline.c (expand_call_inline): Allow the error to be flagged
6094 in early inline pass.
22fc7d3d 6095
c21b257d
L
60962013-06-18 H.J. Lu <hongjiu.lu@intel.com>
6097
6098 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
6099 in comments.
6100
33255ae3
JB
61012013-06-18 Julian Brown <julian@codesourcery.com>
6102
6103 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
6104 Permit virtual register pre-reload if !strict.
6105 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
6106 change.
6107 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
6108 prototype.
6109 * config/arm/neon.md (movmisalign<mode>): Use
6110 neon_perm_struct_or_reg_operand instead of
6111 neon_struct_or_register_operand.
6112 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
6113 neon_permissive_struct_operand instead of neon_struct_operand.
6114 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
6115 neon_vector_mem_operand.
6116 * config/arm/predicates.md (neon_struct_operand): Adjust call to
6117 neon_vector_mem_operand.
6118 (neon_permissive_struct_operand): New.
6119 (neon_struct_or_register_operand): Rename to...
6120 (neon_perm_struct_or_reg_operand): This. Adjust call to
6121 neon_vector_mem_operand.
6122
d579fcda
RB
61232013-06-18 Richard Biener <rguenther@suse.de>
6124
6125 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
6126 * lto-streamer.h: Include pointer-set.h.
6127 (struct lto_decl_slot): Remove.
6128 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
6129 Remove next_index entry.
6130 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
6131 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
6132 (lto_init_tree_ref_encoder): Adjust.
6133 (lto_destroy_tree_ref_encoder): Likewise.
6134 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
6135 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
6136 (lto_output_decl_index): Adjust.
6137 (lto_new_out_decl_state): Likewise.
6138 (lto_record_function_out_decl_state): Likewise.
6139 * lto-streamer-out.c (copy_function): Likewise.
6140
31ee20ba
RB
61412013-06-18 Richard Biener <rguenther@suse.de>
6142
6143 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
6144 * cgraphunit.c: Include cfgloop.h.
6145 (init_lowered_empty_function): Initialize the loop tree.
6146 (assemble_thunk): Insert new BBs into loops.
6147
ac0511f2
RB
61482013-06-18 Richard Biener <rguenther@suse.de>
6149
6150 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
6151 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
6152 the map from cache entry to cache index optional.
6153 (streamer_tree_cache_replace_tree): Adjust accordingly.
6154 (streamer_tree_cache_append): Likewise.
6155 (streamer_tree_cache_delete): Likewise.
6156 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
6157 streamer cache map from cache entry to cache index.
6158 * lto-streamer-out.c (create_output_block): Adjust.
6159
09485a08
SN
61602013-06-18 Sofiane Naci <sofiane.naci@arm.com>
6161
22fc7d3d
UB
6162 * config/arm/arm.md (attribute "insn"): Move multiplication and
6163 division attributes to...
09485a08
SN
6164 (attribute "type"): ... here. Remove mult.
6165 (attribute "mul32"): New attribute.
6166 (attribute "mul64"): Add umaal.
6167 (*arm_mulsi3): Update attributes.
6168 (*arm_mulsi3_v6): Likewise.
6169 (*thumb_mulsi3): Likewise.
6170 (*thumb_mulsi3_v6): Likewise.
6171 (*mulsi3_compare0): Likewise.
6172 (*mulsi3_compare0_v6): Likewise.
6173 (*mulsi_compare0_scratch): Likewise.
6174 (*mulsi_compare0_scratch_v6): Likewise.
6175 (*mulsi3addsi): Likewise.
6176 (*mulsi3addsi_v6): Likewise.
6177 (*mulsi3addsi_compare0): Likewise.
6178 (*mulsi3addsi_compare0_v6): Likewise.
6179 (*mulsi3addsi_compare0_scratch): Likewise.
6180 (*mulsi3addsi_compare0_scratch_v6): Likewise.
6181 (*mulsi3subsi): Likewise.
6182 (*mulsidi3adddi): Likewise.
6183 (*mulsi3addsi_v6): Likewise.
6184 (*mulsidi3adddi_v6): Likewise.
6185 (*mulsidi3_nov6): Likewise.
6186 (*mulsidi3_v6): Likewise.
6187 (*umulsidi3_nov6): Likewise.
6188 (*umulsidi3_v6): Likewise.
6189 (*umulsidi3adddi): Likewise.
6190 (*umulsidi3adddi_v6): Likewise.
6191 (*smulsi3_highpart_nov6): Likewise.
6192 (*smulsi3_highpart_v6): Likewise.
6193 (*umulsi3_highpart_nov6): Likewise.
6194 (*umulsi3_highpart_v6): Likewise.
6195 (mulhisi3): Likewise.
6196 (*mulhisi3tb): Likewise.
6197 (*mulhisi3bt): Likewise.
6198 (*mulhisi3tt): Likewise.
6199 (maddhisi4): Likewise.
6200 (*maddhisi4tb): Likewise.
6201 (*maddhisi4tt): Likewise.
6202 (maddhidi4): Likewise.
6203 (*maddhidi4tb): Likewise.
6204 (*maddhidi4tt): Likewise.
6205 (divsi3): Likewise.
6206 (udivsi3): Likewise.
6207 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
6208 (thumb2_mulsi_short_compare0): Likewise.
6209 (thumb2_mulsi_short_compare0_scratch): Likewise.
6210 * config/arm/arm1020e.md (1020mult1): Update attribute change.
6211 (1020mult2): Likewise.
6212 (1020mult3): Likewise.
6213 (1020mult4): Likewise.
6214 (1020mult5): Likewise.
6215 (1020mult6): Likewise.
22fc7d3d
UB
6216 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
6217 change.
09485a08
SN
6218 (cortex_a15_mult64): Likewise.
6219 (cortex_a15_sdiv): Likewise.
6220 (cortex_a15_udiv): Likewise.
6221 * config/arm/arm1026ejs.md (mult1): Update attribute change.
6222 (mult2): Likewise.
6223 (mult3): Likewise.
6224 (mult4): Likewise.
6225 (mult5): Likewise.
6226 (mult6): Likewise.
6227 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
6228 (pj4_ir_div): Likewise.
6229 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
6230 (11_mult2): Likewise.
6231 (11_mult3): Likewise.
6232 (11_mult4): Likewise.
6233 (11_mult5): Likewise.
6234 (11_mult6): Likewise.
6235 (11_mult7): Likewise.
6236 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
6237 (cortex_a8_mla): Likewise.
6238 (cortex_a8_mull): Likewise.
6239 (cortex_a8_smulwy): Likewise.
6240 (cortex_a8_smlald): Likewise.
6241 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
6242 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
6243 (cortex_r4_mul_3): Likewise.
6244 (cortex_r4_mla_4): Likewise.
6245 (cortex_r4_mla_3): Likewise.
6246 (cortex_r4_smlald): Likewise.
6247 (cortex_r4_mull): Likewise.
6248 (cortex_r4_sdiv): Likewise.
6249 (cortex_r4_udiv): Likewise.
6250 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
6251 (cortex_a7_idiv): Likewise.
6252 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
6253 (9_mult2): Likewise.
6254 (9_mult3): Likewise.
6255 (9_mult4): Likewise.
6256 (9_mult5): Likewise.
6257 (9_mult6): Likewise.
6258 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
6259 (cortex_a53_sdiv): Likewise.
6260 (cortex_a53_udiv): Likewise.
6261 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
6262 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
6263 (mp626_mult2): Likewise.
6264 (mp626_mult3): Likewise.
6265 (mp626_mult4): Likewise.
6266 * config/arm/fa526.md (526_mult1): Update attribute change.
6267 (526_mult2): Likewise.
6268 * config/arm/arm-generic.md (mult): Update attribute change.
6269 (mult_ldsched_strongarm): Likewise.
6270 (mult_ldsched): Likewise.
6271 (multi_cycle): Likewise.
6272 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
6273 * config/arm/fa606te.md (606te_mult1): Update attribute change.
6274 (606te_mult2): Likewise.
6275 (606te_mult3): Likewise.
6276 (606te_mult4): Likewise.
6277 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
6278 (cortex_a9_mac16): Likewise.
6279 (cortex_a9_multiply): Likewise.
6280 (cortex_a9_mac): Likewise.
6281 (cortex_a9_multiply_long): Likewise.
6282 * config/arm/fa626te.md (626te_mult1): Update attribute change.
6283 (626te_mult2): Likewise.
6284 (626te_mult3): Likewise.
6285 (626te_mult4): Likewise.
6286
8951f345
RB
62872013-06-18 Richard Biener <rguenther@suse.de>
6288
6289 PR lto/57334
6290 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
6291
d8101d05
AK
62922013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6293
6294 PR target/57609
6295 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
6296 with next_active_insn.
6297
69eff9da
AM
62982013-06-18 Alan Modra <amodra@gmail.com>
6299
6300 * config/rs6000/rs6000.h (enum data_align): New.
6301 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
6302 (DATA_ABI_ALIGNMENT): Define.
6303 (CONSTANT_ALIGNMENT): Correct comment.
6304 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
6305 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
6306
8ed00d76
DM
63072013-06-17 David Malcolm <dmalcolm@redhat.com>
6308
6309 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
6310 ATTRIBUTE_UNUSED marking.
6311
3d33d06b
SN
63122013-06-17 Sofiane Naci <sofiane.naci@arm.com>
6313
6314 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
6315 alternative and update.
6316 (aarch64_dup_lanedi): Delete.
6317 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
6318 * config/aarch64/aarch64-simd-builtins.def: Update.
6319
ee03e71d
RB
63202013-06-17 Richard Biener <rguenther@suse.de>
6321
6322 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
6323 (lto_input_scc): Declare.
6324 (lto_input_tree_1): Likewise.
6325 (struct lto_stats_d): Add num_tree_bodies_output and
6326 num_pickle_refs_output.
6327 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
6328 (lto_read_tree_1): Split out from ...
6329 (lto_read_tree): ... this.
6330 (lto_input_scc): New function.
6331 (lto_input_tree_1): Split out from ...
6332 (lto_input_tree): ... this. Handle LTO_tree_scc.
6333 (lto_data_in_create): Create the streamer cache without hashes.
6334 * lto-streamer-out.c (create_output_block): Create the streamer
6335 cache with hashes when not doing WPA.
6336 (lto_write_tree_1): Split out from ...
6337 (lto_write_tree): ... this.
6338 (get_symbol_initial_value): New function.
6339 (lto_output_tree_1): Split out from ...
6340 (lto_output_tree): ... this. Write trees as series of SCCs
6341 using a DFS walk via DFS_write_tree.
6342 (struct sccs, struct scc_entry): New types.
6343 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
6344 (DFS_write_tree_body): New function.
6345 (DFS_write_tree): Likewise.
6346 (hash_tree): Likewise.
6347 (scc_entry_compare): Likewise.
6348 (hash_scc): Likewise.
6349 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
6350 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
6351 TREE_CHAIN as regular reference.
6352 (streamer_read_integer_cst): Remove.
6353 (streamer_get_pickled_tree): Adjust.
6354 * tree-streamer-out.c (streamer_write_chain): Disable streaming
6355 of DECL_EXTERNALs in BLOCK_VARS for now.
6356 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
6357 reference.
6358 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
6359 Add hash value argument and record that if hashes are recorded
6360 in the cache.
6361 (streamer_tree_cache_insert_1): Adjust.
6362 (streamer_tree_cache_insert): Likewise.
6363 (streamer_tree_cache_insert_at): Rename to ...
6364 (streamer_tree_cache_replace_tree): ... this and adjust.
6365 (streamer_tree_cache_append): Adjust.
6366 (record_common_node): Likewise.
6367 (streamer_tree_cache_create): Add argument whether to
6368 record hash values together with trees.
6369 (streamer_tree_cache_delete): Adjust.
6370 * tree-streamer.h (struct streamer_tree_cache_d): Add
6371 vector of hashes.
6372 (streamer_read_integer_cst): Remove.
6373 (streamer_tree_cache_insert): Adjust.
6374 (streamer_tree_cache_append): Likewise.
6375 (streamer_tree_cache_insert_at): Rename to ...
6376 (streamer_tree_cache_replace_tree): ... this and adjust.
6377 (streamer_tree_cache_create): Add argument whether to record hashes.
6378 (streamer_tree_cache_get): Rename to ...
6379 (streamer_tree_cache_get_tree): ... this.
6380 (streamer_tree_cache_get_hash): New function.
6381 * tree.c (cache_integer_cst): New function.
6382 * tree.h (cache_integer_cst): Declare.
6383 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
6384 * lto-symtab.c (lto_varpool_replace_node): Only release
6385 DECL_INITIAL of non-prevailing decls.
6386 * varpool.c (varpool_remove_initializer): Do not release
6387 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
6388
0de86a92
JU
63892013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
6390
6391 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
6392 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
6393 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
6394 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
6395 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
6396 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
6397 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
6398 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
6399 instead of TARGET_64BIT.
6400 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
6401 Require ISA_HAS_<D>DIV.
6402
74240413
RS
64032013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
6404
6405 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
6406 (mips*-*-linux*): Move default with_llsc setting to where other
6407 defaults are set.
6408 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
6409 with_arch block.
6410 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
6411 Likewise. Remove default with_tune setting. Move default float
6412 setting to its own block. Handle with_llsc in the same block as above.
6413
12211b99 64142013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
393f9fed
JR
6415
6416 PR rtl-optimization/57425
6417 PR rtl-optimization/57569
299a5f6a 6418 * alias.c (write_dependence_p): Add new parameters mem_mode,
393f9fed
JR
6419 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
6420 Changed all callers.
6421 (canon_anti_dependence): New function.
6422 * cse.c (check_dependence): Use canon_anti_dependence.
6423 * cselib.c (cselib_invalidate_mem): Likewise.
6424 * rtl.h (canon_anti_dependence): Declare.
6425
b259d352
JU
64262013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
6427
6428 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
6429 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
6430 ".set mips3" for 64-bit targets.
6431
4de09b85
DC
64322013-06-15 Dehao Chen <dehao@google.com>
6433
6434 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
6435 * gimple-low.c (gimple_check_call_matching_types): Likewise.
6436 (gimple_check_call_args): Likewise.
6437 * value-prof.c (check_ic_target): Likewise.
6438 * ipa-inline.c (early_inliner): Likewise.
6439 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
6440 * cgraph.c (cgraph_create_edge_1): Likewise.
6441 (cgraph_make_edge_direct): Likewise.
6442
d1aa4a76
MM
64432013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
6444
6445 PR target/57615
6446 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
6447 rs6000_output_move_128bit to handle emitting quad memory
6448 operations. Set attribute length to 8 bytes.
6449
12211b99 64502013-06-14 Vidya Praveen <vidyapraveen@arm.com>
24244e4d
VP
6451
6452 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
6453 New pattern.
6454 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
6455 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
6456 (aarch64_<su>mlsl<mode>): Likewise.
6457
f5273574
MS
64582013-06-14 Mike Stump <mikestump@comcast.net>
6459
6460 * Makefile.in (TARGET_H): Add insn-codes.h.
6461
ef7e7ab2
AM
64622013-06-14 Alan Modra <amodra@gmail.com>
6463
6464 PR middle-end/57134
6465 PR middle-end/57586
6466 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
6467 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
6468 bitfield expansion when EXPAND_MEMORY.
6469 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
6470
135faab6
MM
64712013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
6472
6473 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
6474 test for clearing quad memory on 32-bit later.
6475
948a1fd9
MG
64762013-06-13 Marc Glisse <marc.glisse@inria.fr>
6477
6478 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
6479 (fold_negate_expr): Likewise.
6480 (fold_real_zero_addition_p): Handle vectors.
6481 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
6482
0597fb9c
AM
64832013-06-14 Alan Modra <amodra@gmail.com>
6484
6485 * varasm.c (force_const_mem): Revert 2013-06-07 change.
6486
e5b962d0
JH
64872013-06-13 Jan Hubicka <jh@suse.cz>
6488
6489 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
6490 Local comdats are not externally visible.
6491 * symtab.c (dump_symtab_base): Dump externally visible.
6492 (verify_symtab_base): Verify back links in the symtab hash.
6493
a8355e51
BC
64942013-06-13 Bin Cheng <bin.cheng@arm.com>
6495
6496 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
6497 CONVERT_EXPR as equal nodes.
6498
8f7e6e33
BC
64992013-06-13 Bin Cheng <bin.cheng@arm.com>
6500
22fc7d3d 6501 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
8f7e6e33 6502
5d418483
MG
65032013-06-13 Marc Glisse <marc.glisse@inria.fr>
6504
6505 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
6506 Generalize to complex and vector.
6507 * tree.c (build_all_ones_cst): New function.
6508 * tree.h (build_all_ones_cst): Declare it.
6509
50751417
AM
65102013-06-13 Alan Modra <amodra@gmail.com>
6511
6512 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
6513 * config/rs6000/rs6000.md (signbittf2): New insn.
6514 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
6515 (abstf2_internal, cmptf_internal2): Likewise.
6516 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
6517
4b02c962 65182013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
6519 Pat Haugen <pthaugen@us.ibm.com>
6520 Peter Bergner <bergner@vnet.ibm.com>
4b02c962
MM
6521
6522 * config/rs6000/rs6000.c (emit_load_locked): Add support for
6523 power8 byte, half-word, and quad-word atomic instructions.
6524 (emit_store_conditional): Likewise.
6525 (rs6000_expand_atomic_compare_and_swap): Likewise.
6526 (rs6000_expand_atomic_op): Likewise.
6527
6528 * config/rs6000/sync.md (larx): Add new modes for power8.
6529 (stcx): Likewise.
6530 (AINT): New mode iterator to include TImode as well as normal
6531 integer modes on power8.
6532 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
6533 that VSX registers are not considered. Use AINT mode iterator
6534 instead of INT1 to allow inclusion of quad word atomic operations
6535 on power8.
6536 (load_locked<mode>): Likewise.
6537 (store_conditional<mode>): Likewise.
6538 (atomic_compare_and_swap<mode>): Likewise.
6539 (atomic_exchange<mode>): Likewise.
6540 (atomic_nand<mode>): Likewise.
6541 (atomic_fetch_<fetchop_name><mode>): Likewise.
6542 (atomic_nand_fetch<mode>): Likewise.
6543 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
6544 each type.
6545 (ATOMIC): On power8, add QImode, HImode modes.
6546 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
6547 modes that promote to SImode.
6548 (load_lockedti): Convert TImode arguments to PTImode, so that we
6549 get a guaranteed even/odd register pair.
6550 (load_lockedpti): Likewise.
6551 (store_conditionalti): Likewise.
6552 (store_conditionalpti): Likewise.
6553
6554 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
6555 atomic load/store instructions.
6556 (HSI): Likewise.
6557
710b6cc1
RS
65582013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
6559
6560 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
6561 loads.
6562 (insn_count): New attribute, with most cases extracted from...
6563 (length): ...here. Redefine most cases in terms of insn_count.
6564 (single_insn): Delete.
6565 (can_delay): Use insn_count to check for single instructions.
6566 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
6567 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
6568 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
6569 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
6570 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
6571 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
6572 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
6573 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
6574 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
6575 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
6576 rather than "length".
6577 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
6578 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
6579 Use "insn_count" rather than "length".
6580 * config/mips/mips-dsp.md
6581 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
6582 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
6583 length attributes.
6584
1951f101
MG
65852013-06-12 Marc Glisse <marc.glisse@inria.fr>
6586
6587 PR tree-optimization/57361
6588 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
6589
8b033a8a
SN
65902013-06-12 Sofiane Naci <sofiane.naci@arm.com>
6591
22fc7d3d
UB
6592 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
6593 to split.
8b033a8a
SN
6594 (aarch64_simd_combine<mode>): New instruction expansion.
6595 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
6596 function prototype.
6597 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
6598 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
6599
ca0f62a8
JH
66002013-06-12 Jan Hubicka <jh@suse.cz>
6601
6602 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
6603 decl has when in streaming stage.
6604 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
6605 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
6606
12211b99 66072013-06-12 Roland Stigge <stigge@antcom.de>
cddd69eb
RS
6608
6609 PR target/57578
6610 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
6611
bfdeda2c
JJ
66122013-06-12 Jakub Jelinek <jakub@redhat.com>
6613
6614 PR tree-optimization/57537
6615 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
6616 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
6617
a4fa02d1
RB
66182013-06-12 Richard Biener <rguenther@suse.de>
6619
6620 * data-streamer.h (streamer_write_char_stream): CSE
6621 obs->current_pointer.
6622 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
6623 streamer_write_char_stream manually and optimize the resulting loop.
6624 (streamer_write_hwi_stream): Likewise.
6625
bbf9ad07
JH
66262013-06-12 Jan Hubicka <jh@suse.cz>
6627
6628 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
6629 * cgraph.h (varpool_create_empty_node): Declare.
6630 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
6631 duplicated nodes.
6632 * symtab.c (symtab_unregister_node): Be lax about missin entries
6633 in node hash.
6634 (symtab_get_node): Update comment.
6635 * varpool.c (varpool_create_empty_node): Break out from ...
6636 (varpool_node_for_decl): ... here.
6637 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
6638
a53f90ad
EB
66392013-06-12 Eric Botcazou <ebotcazou@adacore.com>
6640
6641 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
6642 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
6643 part. Use straight-line flow at the end.
6644 <COMPONENT_REF>: Remove superfluous else.
6645 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
6646
946f9306
JJ
66472013-06-12 Jakub Jelinek <jakub@redhat.com>
6648
6649 PR target/56564
6650 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
6651 target hook even for !TREE_PUBLIC decls. If no resolution info
6652 is available, return false for common and external decls.
6653
a7fca6f0
KP
66542013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
6655
6656 * config/rl78/constraints.md (U): New constraint.
6657 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
6658 valloc attribute.
6659
c7d8f446
MM
66602013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
6661
6662 PR target/57589
6663 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
6664 to allow returning address to AT_PLATFORM name.
6665
08346abd
JH
66662013-06-11 Jan Hubicka <jh@suse.cz>
6667
6668 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
6669 * cgraph.h (symtab_node_base): Add weakref flag.
6670 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
6671 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
6672 (output_weakrefs): Use weakref flag.
6673 * fold-const.c (simple_operand_p): Handle WEAK.
6674 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
6675 * ipa.c (varpool_externally_visible_p): Drop weakref.
6676 (function_and_variable_visibility): Update comment; fix weakref
6677 sanity checks; do not clear DECL_WEAK on them.
6678 * lto-cgraph.c (lto_output_node): update.
6679 (lto_output_varpool_node): Update.
6680 (input_overwrite_node): Update.
6681 (input_node): Update.
6682 (input_varpool_node): Update.
6683 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
6684 (lto_symtab_merge_symbols): Add sanity check.
6685 (lto_symtab_prevailing_decl): Do not special case weakrefs.
6686 * passes.c (rest_of_decl_compilation): Set static flag, too.
6687 * symtab.c (dump_symtab_base): Dump weakref.
6688 (verify_symtab_base): Sanity check weakrefs.
6689 (symtab_make_decl_local): Remove duplicated code.
6690 (symtab_alias_ultimate_target): Simplify.
6691 * varpool.c (varpool_create_variable_alias): Set weakref flag.
c7d8f446 6692
d9af3652
DD
66932013-06-11 DJ Delorie <dj@redhat.com>
6694
6695 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
6696 (rl78_unwind_word_mode): New.
6697
ffa66012
DM
66982013-06-11 David Malcolm <dmalcolm@redhat.com>
6699
6700 * final.c (debug_prefix_maps): Make static.
6701
783f2d35
DM
67022013-06-11 David Malcolm <dmalcolm@redhat.com>
6703
6704 * function.c (initial_trampoline): Remove stray copy.
6705
7af26def
SN
67062013-06-11 Sofiane Naci <sofiane.naci@arm.com>
6707
6708 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
6709
97756c0e
MJ
67102013-06-11 Martin Jambor <mjambor@suse.cz>
6711
6712 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
6713 within bounds at the beginning of the function.
6714
2c7b8bf6
AM
67152013-06-11 Alan Modra <amodra@gmail.com>
6716
6717 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
6718 reporting.
6719 (get_named_section): Don't NULL !DECL_P decl.
6720
77cea46e
IZ
67212013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
6722
6723 * doc/invoke.texi (core-avx2): Document.
6724 (slm): Likewise.
6725 (atom): Updated with MOVBE.
6726
888f0920
RB
67272013-06-11 Richard Biener <rguenther@suse.de>
6728
22fc7d3d 6729 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
888f0920 6730
6b438d58
AB
67312013-06-11 Anton Blanchard <anton@samba.org>
6732
6733 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
6734 correct shift value in little-endian mode.
6735
3bc66938
JJ
67362013-06-11 Jakub Jelinek <jakub@redhat.com>
6737
6738 PR target/56564
6739 * varasm.c (get_variable_align): Move #endif to the right place.
6740
a5dc7f88
CC
67412013-06-10 Cary Coutant <ccoutant@google.com>
6742
6743 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
6744 for hash so that hash table traversal order is deterministic.
6745
19be72ab 67462013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
6747 Pat Haugen <pthaugen@us.ibm.com>
6748 Peter Bergner <bergner@vnet.ibm.com>
19be72ab
MM
6749
6750 * config/rs6000/vector.md (GPR move splitter): Do not split moves
6751 of vectors in GPRS if they are direct moves or quad word load or
6752 store moves.
6753
6754 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
6755 declaration.
6756 (direct_move_p): Likewise.
6757 (quad_load_store_p): Likewise.
6758
6759 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
6760 classes into bins based on the physical register type.
6761 (reg_class_to_reg_type): Likewise.
6762 (IS_STD_REG_TYPE): Likewise.
6763 (IS_FP_VECT_REG_TYPE): Likewise.
6764 (reload_fpr_gpr): Arrays to determine what insn to use if we can
6765 use direct move instructions.
6766 (reload_gpr_vsx): Likewise.
6767 (reload_vsx_gpr): Likewise.
6768 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
6769 information that is a simplification of register classes. Also
6770 precalculate direct move reload helpers.
6771 (direct_move_p): New function to return true if the operation can
6772 be done as a direct move instruciton.
6773 (quad_load_store_p): New function to return true if the operation
6774 is a quad memory operation.
6775 (rs6000_legitimize_address): If quad memory, only allow register
6776 indirect for TImode addresses.
6777 (rs6000_legitimate_address_p): Likewise.
6778 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
6779 (rs6000_reload_register_type): Likewise.
6780 (register_to_reg_type): Return register type.
6781 (rs6000_secondary_reload_simple_move): New helper function for
6782 secondary reload and secondary memory needed to identify anything
6783 that is a simple move, and does not need reloading.
6784 (rs6000_secondary_reload_direct_move): New helper function for
6785 secondary reload to identify cases that can be done with several
6786 instructions via the direct move instructions.
6787 (rs6000_secondary_reload_move): New helper function for secondary
6788 reload to identify moves between register types that can be done.
6789 (rs6000_secondary_reload): Add support for quad memory operations
6790 and for direct move.
6791 (rs6000_secondary_memory_needed): Likewise.
6792 (rs6000_debug_secondary_memory_needed): Change argument names.
6793 (rs6000_output_move_128bit): New function to return the move to
6794 use for 128-bit moves, including knowing about the various
6795 limitations of quad memory operations.
6796
6797 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
6798 memory operations. call rs6000_output_move_128bit for the actual
6799 instruciton(s) to generate.
6800 (vsx_movti_64bit): Likewise.
6801
6802 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
6803 (UNSPEC_P8V_MTVSRWZ): Likewise.
6804 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
6805 (UNSPEC_P8V_MTVSRD): Likewise.
6806 (UNSPEC_P8V_XXPERMDI): Likewise.
6807 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
6808 (UNSPEC_FUSION_GPR): Likewise.
6809 (FMOVE128_GPR): New iterator for direct move.
22fc7d3d 6810 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
19be72ab
MM
6811 (f32_sv): Likewise.
6812 (f32_dm): Likewise.
6813 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
6814 loads and direct move instructions.
6815 (zero_extendsidi2_lfiwzx): Likewise.
6816 (extendsidi2_lfiwax): Likewise.
6817 (extendsidi2_nocell): Likewise.
6818 (floatsi<mode>2_lfiwax): Likewise.
6819 (lfiwax): Likewise.
6820 (floatunssi<mode>2_lfiwzx): Likewise.
6821 (lfiwzx): Likewise.
6822 (fix_trunc<mode>_stfiwx): Likewise.
6823 (fixuns_trunc<mode>_stfiwx): Likewise.
6824 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
6825 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
6826 (parity<mode>2_cmpb): Set length/type attr.
6827 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
6828 for 'mr.' to fast_compare.
6829 (bpermd_<mode>): Change type attr to popcnt.
6830 (p8_fmrgow_<mode>): New insns for power8 direct move support.
6831 (p8_mtvsrwz_1): Likewise.
6832 (p8_mtvsrwz_2): Likewise.
6833 (reload_fpr_from_gpr<mode>): Likewise.
6834 (p8_mtvsrd_1): Likewise.
6835 (p8_mtvsrd_2): Likewise.
6836 (p8_xxpermdi_<mode>): Likewise.
6837 (reload_vsx_from_gpr<mode>): Likewise.
6838 (reload_vsx_from_gprsf): Likewise.
6839 (p8_mfvsrd_3_<mode>): LIkewise.
6840 (reload_gpr_from_vsx<mode>): Likewise.
6841 (reload_gpr_from_vsxsf): Likewise.
6842 (p8_mfvsrd_4_disf): Likewise.
6843 (multi-word GPR splits): Do not split direct moves or quad memory
6844 operations.
6845
16876bdc
DM
68462013-06-10 David Malcolm <dmalcolm@redhat.com>
6847
6848 * tree-into-ssa.c (interesting_blocks): Make static.
6849
df8a1d28
JJ
68502013-06-10 Jakub Jelinek <jakub@redhat.com>
6851
6852 PR target/56564
6853 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
6854 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
6855 Use DATA_ABI_ALIGNMENT for that case instead if defined.
6856 (get_variable_align): New function.
6857 (get_variable_section, emit_bss, emit_common,
6858 assemble_variable_contents, place_block_symbol): Use
6859 get_variable_align instead of DECL_ALIGN.
6860 (assemble_noswitch_variable): Add align argument, use it
6861 instead of DECL_ALIGN.
6862 (assemble_variable): Adjust caller. Use get_variable_align
6863 instead of DECL_ALIGN.
6864 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
6865 caller.
6866 (DATA_ABI_ALIGNMENT): Define.
6867 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
6868 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
6869 opt is false, only return the psABI mandated alignment increase.
6870 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
6871 (DATA_ABI_ALIGNMENT): ... this.
6872 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
6873 (DATA_ABI_ALIGNMENT): ... this.
6874 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
6875 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
6876 (DATA_ABI_ALIGNMENT): ... this.
6877 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
6878 * doc/tm.texi: Regenerated.
6879
57b29ca6
UB
68802013-06-10 Uros Bizjak <ubizjak@gmail.com>
6881
6882 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
6883 cmp_code to construct REG_EQUAL note.
6884
3e56ed50
JJ
68852013-06-09 Jakub Jelinek <jakub@redhat.com>
6886
6887 PR target/57568
6888 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
6889 that operands[2] doesn't overlap with operands[0].
6890
74fe2a1d
DE
68912013-06-09 David Edelsohn <dje.gcc@gmail.com>
6892 Jan Hubicka <jh@suse.cz>
6893
6894 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
6895 hack to mark symbols as used.
6896
ed52a84e
VM
68972013-06-08 Vladimir Makarov <vmakarov@redhat.com>
6898
6899 PR rtl-optimization/57559
6900 * lra-constraints.c (process_alt_operands): Don't discourage
6901 memory with known offset for offsetable memory constraint.
6902 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
6903
299316ed
EB
69042013-06-08 Eric Botcazou <ebotcazou@adacore.com>
6905
6906 * varasm.c (struct oc_local_state): Reorder fields.
6907 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
6908 and adjust accordingly.
6909 (output_constructor): Reorder initialization code and adjust call to
6910 output_constructor_bitfield.
6911
88ac60d3
JH
69122013-06-07 Jan Hubicka <jh@suse.cz>
6913
6914 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
6915
4cdce1a8
DM
69162013-06-07 David Malcolm <dmalcolm@redhat.com>
6917
6918 * tree-object-size.c (unknown): Make const.
6919
b5e0425c
AK
69202013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6921
6922 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
6923 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
6924 for last alternative in the cpu_facility attribute.
6925
79678d04
KT
69262013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6927
6928 PR target/56315
6929 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
6930 (xordi3): Change operand 2 constraint to arm_xordi_operand.
6931 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
6932 * config/arm/constraints.md (Dg): New constraint.
6933 * config/arm/neon.md (xordi3_neon): Remove.
6934 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
6935 * config/arm/predicates.md (arm_xordi_operand): New predicate.
6936
b31ddbdb
KT
69372013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6938
6939 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
6940 Clean up alternatives.
6941
8f90b7d4
AM
69422013-06-07 Alan Modra <amodra@gmail.com>
6943
6944 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
6945 va_list_gpr_size.
6946
961ce119
AM
69472013-06-07 Alan Modra <amodra@gmail.com>
6948
6949 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
6950
33e49835
KT
69512013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6952
6953 * config/arm/constraints.md (Df): New constraint.
6954 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
6955 Correct length attribute for last two alternatives.
6956
acd17ae6
AM
69572013-06-07 Alan Modra <amodra@gmail.com>
6958
6959 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
6960 override user -mfp-in-toc.
6961 (offsettable_ok_by_alignment): Consider just the current access
6962 rather than the whole object, unless BLKmode. Handle
6963 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
6964 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
6965 for -mcmodel=medium.
6966 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
6967 override user -mfp-in-toc or -msum-in-toc. Default to
6968 -mno-fp-in-toc for -mcmodel=medium.
6969
73310b0e
DD
69702013-06-06 DJ Delorie <dj@redhat.com>
6971
6972 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
6973 TARGET_VALID_POINTER_MODE.
6974
0bd62dca 69752013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
6976 Pat Haugen <pthaugen@us.ibm.com>
6977 Peter Bergner <bergner@vnet.ibm.com>
0bd62dca
MM
6978
6979 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
6980 Document new power8 builtins.
6981
6982 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
6983 condition code register, to allow 128-bit logical operations to be
6984 done in the VSX or GPR registers.
6985 (nor<mode>3): Use the canonical form for nor.
6986 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
6987 vclz*, and vpopcnt* vector instructions.
6988 (nand<mode>3): Likewise.
6989 (orc<mode>3): Likewise.
6990 (clz<mode>2): LIkewise.
6991 (popcount<mode>2): Likewise.
6992
6993 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
6994 that only the GPRs are recognized.
6995
6996 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6997 support for new power8 builtins.
6998
6999 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
7000 builtin functions.
7001 (xscvdpspn): Likewise.
7002 (vclz): Likewise.
7003 (vclzb): Likewise.
7004 (vclzh): Likewise.
7005 (vclzw): Likewise.
7006 (vclzd): Likewise.
7007 (vpopcnt): Likewise.
7008 (vpopcntb): Likewise.
7009 (vpopcnth): Likewise.
7010 (vpopcntw): Likewise.
7011 (vpopcntd): Likewise.
7012 (vgbbd): Likewise.
7013 (vmrgew): Likewise.
7014 (vmrgow): Likewise.
7015 (eqv): Likewise.
7016 (eqv_v16qi3): Likewise.
7017 (eqv_v8hi3): Likewise.
7018 (eqv_v4si3): Likewise.
7019 (eqv_v2di3): Likewise.
7020 (eqv_v4sf3): Likewise.
7021 (eqv_v2df3): Likewise.
7022 (nand): Likewise.
7023 (nand_v16qi3): Likewise.
7024 (nand_v8hi3): Likewise.
7025 (nand_v4si3): Likewise.
7026 (nand_v2di3): Likewise.
7027 (nand_v4sf3): Likewise.
7028 (nand_v2df3): Likewise.
7029 (orc): Likewise.
7030 (orc_v16qi3): Likewise.
7031 (orc_v8hi3): Likewise.
7032 (orc_v4si3): Likewise.
7033 (orc_v2di3): Likewise.
7034 (orc_v4sf3): Likewise.
7035 (orc_v2df3): Likewise.
7036
7037 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
7038 allow power8 quad mode in 64-bit.
7039 (rs6000_builtin_vectorized_function): Add support to vectorize
7040 ISA 2.07 count leading zeros, population count builtins.
7041 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
7042 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
7043 (builtin_function_type): Add vgbbd builtin function which takes an
7044 unsigned argument.
7045 (altivec_expand_vec_perm_const): Add support for new power8 merge
7046 instructions.
7047
7048 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
7049 that does not include TImdoe for use with 32-bit.
7050 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
7051 instructions.
7052 (UNSPEC_VSX_CVDPSPN): Likewise.
7053 (vsx_xscvdpspn): Likewise.
7054 (vsx_xscvspdpn): Likewise.
7055 (vsx_xscvdpspn_scalar): Likewise.
7056 (vsx_xscvspdpn_directmove): Likewise.
7057 (vsx_and<mode>3): Split logical operations into 32-bit and
7058 64-bit. Add support to do logical operations on TImode as well as
7059 VSX vector types. Allow logical operations to be done in either
7060 VSX registers or in general purpose registers in 64-bit mode. Add
7061 splitters if GPRs were used. For AND, add clobber of CCmode to
7062 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
7063 encoding.
7064 (vsx_and<mode>3_32bit): Likewise.
7065 (vsx_and<mode>3_64bit): Likewise.
7066 (vsx_ior<mode>3): Likewise.
7067 (vsx_ior<mode>3_32bit): Likewise.
7068 (vsx_ior<mode>3_64bit): Likewise.
7069 (vsx_xor<mode>3): Likewise.
7070 (vsx_xor<mode>3_32bit): Likewise.
7071 (vsx_xor<mode>3_64bit): Likewise.
7072 (vsx_one_cmpl<mode>2): Likewise.
7073 (vsx_one_cmpl<mode>2_32bit): Likewise.
7074 (vsx_one_cmpl<mode>2_64bit): Likewise.
7075 (vsx_nor<mode>3): Likewise.
7076 (vsx_nor<mode>3_32bit): Likewise.
7077 (vsx_nor<mode>3_64bit): Likewise.
7078 (vsx_andc<mode>3): Likewise.
7079 (vsx_andc<mode>3_32bit): Likewise.
7080 (vsx_andc<mode>3_64bit): Likewise.
7081 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
7082 and xxlorc instructions.
7083 (vsx_eqv<mode>3_64bit): Likewise.
7084 (vsx_nand<mode>3_32bit): Likewise.
7085 (vsx_nand<mode>3_64bit): Likewise.
7086 (vsx_orc<mode>3_32bit): Likewise.
7087 (vsx_orc<mode>3_64bit): Likewise.
7088
7089 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
7090
7091 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
7092 instruction.
7093 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
7094 (p8_vmrgow): Likewise.
7095 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
7096 GPRs to be split under VSX.
7097 (p8v_clz<mode>2): Add power8 count leading zero support.
7098 (p8v_popcount<mode>2): Add power8 population count support.
7099 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
7100 support.
7101
7102 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
7103 instruction.
7104
7105 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
7106 builtin functions.
7107 (vec_nand): Likewise.
7108 (vec_vclz): Likewise.
7109 (vec_vclzb): Likewise.
7110 (vec_vclzd): Likewise.
7111 (vec_vclzh): Likewise.
7112 (vec_vclzw): Likewise.
7113 (vec_vgbbd): Likewise.
7114 (vec_vmrgew): Likewise.
7115 (vec_vmrgow): Likewise.
7116 (vec_vpopcnt): Likewise.
7117 (vec_vpopcntb): Likewise.
7118 (vec_vpopcntd): Likewise.
7119 (vec_vpopcnth): Likewise.
7120 (vec_vpopcntw): Likewise.
7121
37684c46
VM
71222013-06-06 Vladimir Makarov <vmakarov@redhat.com>
7123
7124 PR rtl-optimization/57468
7125 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
7126 spilled pseudos.
7127
d89ae27c
VM
71282013-06-06 Vladimir Makarov <vmakarov@redhat.com>
7129
7130 PR rtl-optimization/57459
7131 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
7132 type when setting live regs.
7133
3597e113
VM
71342013-06-06 Vladimir Makarov <vmakarov@redhat.com>
7135
7136 * config/s390/s390.opt (mlra): New option.
7137 * config/s390/s390.c (s390_decompose_address): Check displacement
7138 for all registers for LRA.
7139 (s390_secondary_reload): Don't used secondary reloads for LRA.
7140 (s390_lra_p): New function.
7141 (TARGET_LRA_P): Define.
7142 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
7143 of attribute cpu_facility to zarch for the last alternative.
7144 (*cmpmem_short): Ditto.
7145
01037aeb
EB
71462013-06-06 Eric Botcazou <ebotcazou@adacore.com>
7147
7148 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
7149 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
7150 (arm_expand_prologue): Likewise.
7151
3371a64f
TJ
71522013-06-06 Teresa Johnson <tejohnson@google.com>
7153
7154 PR c++/53743
7155 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
7156 as this is now done by redirect_edge_and_branch_force.
7157 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
7158 barriers, and fix interaction with splitting.
7159 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
7160 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
7161 reflect changes made in the routine.
7162 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
7163 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
7164 since this is called in cfglayout mode, and replace partition fixup
7165 with assert as that is now done by force_nonfallthru_and_redirect.
7166 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
7167 already be marked with region crossing note.
7168 (insert_section_boundary_note): Make non-static, gate on flag
7169 has_bb_partition, rewrite to also check for multiple partitions.
7170 (rest_of_handle_reorder_blocks): Remove call to
7171 insert_section_boundary_note, now done later during free_cfg.
7172 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
7173 * bb-reorder.h (insert_section_boundary_note): Declare.
7174 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
7175 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
7176 invoke insert_section_boundary_note.
7177 (try_redirect_by_replacing_jump): Remove unnecessary
7178 check for region crossing note.
7179 (fixup_partition_crossing): New function.
7180 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
7181 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
7182 in non-cfglayout mode.
7183 (force_nonfallthru_and_redirect): Fixup partition boundaries,
7184 remove old code that tried to do this. Emit barrier correctly
7185 when we are in cfglayout mode.
7186 (last_bb_in_partition): New function.
7187 (rtl_split_edge): Correctly fixup partition boundaries.
7188 (commit_one_edge_insertion): Remove old code that tried to
7189 fixup region crossing edge since this is now handled in
7190 split_block, and set up insertion point correctly since
7191 block may now end in a jump.
7192 (verify_hot_cold_block_grouping): Guard against checking when not in
7193 linearized RTL mode.
7194 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
7195 notes.
7196 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
7197 rtl_verify_flow_info, so not called in cfglayout mode.
7198 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
7199 (fixup_reorder_chain): Remove old code that attempted to fixup region
7200 crossing note as this is now handled in force_nonfallthru_and_redirect.
7201 (duplicate_insn_chain): Don't duplicate switch section notes.
7202 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
7203 note.
7204 * basic-block.h (emit_barrier_after_bb): Declare.
7205
66071e10
KT
72062013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7207
7208 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
7209 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
7210 arm_usatsihi): Adjust alternatives for arm_restrict_it.
7211
0e26bf3d
KT
72122013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7213
7214 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
7215 where appropriate.
7216 * config/arm/ldmstm.md: Regenerate.
7217
12b4e7ef
KT
72182013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7219
7220 * config/arm/sync.md (atomic_loaddi_1):
7221 Disable predication for arm_restrict_it.
7222 (arm_load_exclusive<mode>): Likewise.
7223 (arm_load_exclusivesi): Likewise.
7224 (arm_load_exclusivedi): Likewise.
7225 (arm_load_acquire_exclusive<mode>): Likewise.
7226 (arm_load_acquire_exclusivesi): Likewise.
7227 (arm_load_acquire_exclusivedi): Likewise.
7228 (arm_store_exclusive<mode>): Likewise.
7229 (arm_store_exclusive<mode>): Likewise.
7230 (arm_store_release_exclusivedi): Likewise.
7231 (arm_store_release_exclusive<mode>): Likewise.
7232
15d16c8a
RB
72332013-06-06 Richard Biener <rguenther@suse.de>
7234
7235 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
7236 after LTO_null.
7237 (lto_tag_is_tree_code_p): Adjust.
7238 (lto_tag_is_gimple_code_p): Likewise.
7239 (lto_gimple_code_to_tag): Likewise.
7240 (lto_tag_to_gimple_code): Likewise.
7241 (lto_tree_code_to_tag): Likewise.
7242 (lto_tag_to_tree_code): Likewise.
7243 * data-streamer.h (streamer_write_hwi_in_range): Use
7244 uhwi streaming to stream the normalized range.
7245 (streamer_read_hwi_in_range): Likewise.
7246
17a7fc37
KT
72472013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7248
7249 * config/arm/arm.md (enabled_for_depr_it): New attribute.
7250 (predicable_short_it): Likewise.
7251 (predicated): Likewise.
7252 (enabled): Handle above.
7253 (define_cond_exec): Set predicated attribute to yes.
7254
b57ca59b
MS
72552013-06-05 Mike Stump <mikestump@comcast.net>
7256
7257 * gdbinit.in (__FUNCTION__): Add.
7258
c1e183a9
UB
72592013-06-05 Uros Bizjak <ubizjak@gmail.com>
7260
7261 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
7262 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
7263
0378bddb
JH
72642013-06-05 Jan Hubicka <jh@suse.cz>
7265
7266 * varasm.c (mark_decl_referenced): Revert the removal until targets
7267 are fixed.
7268
8f8a2057
DE
72692013-06-05 David Edelsohn <dje.gcc@gmail.com>
7270
7271 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
7272 instead of mark_decl_referenced.
7273
edb983b2
JH
72742013-06-05 Jan Hubicka <jh@suse.cz>
7275
7276 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
7277 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
7278 and symtab_used_from_object_file_p.
7279 (cgraph_make_node_local_1): Clear forced_by_abi.
7280 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
7281 * cgraph.h (symtab_node_base): Add forced_by_abi.
7282 (decide_is_variable_needed): Remove.
7283 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
7284 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
7285 (decide_is_symbol_needed): ... this one; handle symbols in general;
7286 always analyze virtuals; honnor forced_by_abi.
7287 (cgraph_finalize_function): Update.
7288 (varpool_finalize_decl): Update.
7289 (symbol_defined_and_needed): Remove.
7290 (analyze_functions): Update.
7291 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
7292 output_refs, input_overwrite_node): Handle forced_by_abi.
7293 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
7294 (address_taken_from_non_vtable_p): ... this one.
7295 (comdat_can_be_unshared_p_1): New function.
7296 (cgraph_comdat_can_be_unshared_p): Rename to ...
7297 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
7298 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
7299 (function_and_variable_visibility): Clear forced_by_abi as needed.
7300 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
7301 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
edb983b2
JH
7302 * symtab.c (dump_symtab_base): Dump forced_by_abi.
7303 * varpool.c (decide_is_variable_needed): Remove.
7304
9912dbe5
KT
73052013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7306
7307 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
7308 (arm_option_override): Override arm_restrict_it where appropriate.
7309 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
7310 * config/arm/arm.opt (mrestrict-it): New command-line option.
7311 * doc/invoke.texi: Document -mrestrict-it.
7312
34c136b6
DM
73132013-06-05 David Malcolm <dmalcolm@redhat.com>
7314
7315 * tsan.c (tsan_atomic_table): Make const.
7316
a367df53
RB
73172013-06-05 Richard Biener <rguenther@suse.de>
7318
7319 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
7320 index associated with the tree we are supposed to replace.
7321 * tree-streamer-out.c (pack_ts_base_value_fields): Output
7322 TREE_ASM_WRITTEN as zero for everything but SSA names.
7323
70d51a19
DM
73242013-06-05 David Malcolm <dmalcolm@redhat.com>
7325
7326 * tree-ssa-structalias.c (call_stmt_vars): Make static.
7327
b9bd2075
JH
73282013-06-04 Jan Hubicka <jh@suse.cz>
7329
7330 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
7331 (input_node, input_varpool_node): Handle correctly external same
7332 body aliases.
7333 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
7334 nodes at ltrans stage.
7335
aaae719d
JH
73362013-06-04 Jan Hubicka <jh@suse.cz>
7337
7338 * ipa-inline.c (update_caller_keys): Fix availability test.
7339 (update_callee_keys): Likewise.
7340 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
7341 to follow ELF standard.
7342
107eea2c
JU
73432013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
7344
7345 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
7346 (mips64r5900el-*-elf*): New configurations.
7347 * config/mips/mips-cpus.def (r5900): New processor.
7348 * config/mips/mips-tables.opt: Regenerate.
7349 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
7350 (mips_issue_rate): Handle PROCESSOR_R5900.
7351 (mips_reorg_process_insns): Force reorder mode for the R5900.
7352 * config/mips/mips.h (TARGET_MIPS5900): Define.
7353 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
7354 TARGET_MIPS5900.
7355 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
7356 TARGET_MIPS5900.
7357 * config/mips/mips.md (processor): Add r5900.
7358 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
7359
b7342d25
IB
73602013-06-04 Ian Bolton <ian.bolton@arm.com>
7361
7362 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
7363 into function to generate MOVI instruction.
c1e183a9 7364 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
b7342d25
IB
7365 (aarch64_preferred_simd_mode): Turn into wrapper.
7366 (aarch64_output_scalar_simd_mov_immediate): New function.
7367 * config/aarch64/aarch64-protos.h: Add prototype for above.
7368
81c2dfb9
IB
73692013-06-04 Ian Bolton <ian.bolton@arm.com>
7370
7371 * config/aarch64/aarch64.c (simd_immediate_info): Remove
7372 element_char member.
7373 (sizetochar): Return signed char.
7374 (aarch64_simd_valid_immediate): Remove elchar and other
7375 unnecessary variables.
7376 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
7377 Calculate element_char as required.
7378 * config/aarch64/aarch64-protos.h: Update and move prototype
7379 for aarch64_output_simd_mov_immediate.
7380 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
7381 Update arguments.
7382
48063b9d
IB
73832013-06-04 Ian Bolton <ian.bolton@arm.com>
7384
7385 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
7386 information completed by aarch64_simd_valid_immediate.
7387 (aarch64_legitimate_constant_p): Update arguments.
7388 (aarch64_simd_valid_immediate): Work with struct rather than many
7389 pointers.
7390 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
7391 (aarch64_simd_make_constant): Update arguments.
7392 (aarch64_output_simd_mov_immediate): Work with struct rather than
7393 many pointers. Output immediate directly rather than as operand.
7394 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
7395 Update prototype.
7396 * config/aarch64/constraints.md (Dn): Update arguments.
7397
3ea63f60
IB
73982013-06-04 Ian Bolton <ian.bolton@arm.com>
7399
7400 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
7401 longer static.
7402 (aarch64_simd_immediate_valid_for_move): Remove.
7403 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
7404 (aarch64_simd_make_constant): Update call.
7405 (aarch64_output_simd_mov_immediate): Update call.
7406 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
7407 Add prototype.
7408 * config/aarch64/constraints.md (Dn): Update call.
7409
d8edd899
IB
74102013-06-04 Ian Bolton <ian.bolton@arm.com>
7411
7412 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
7413 return type to bool for prototype.
7414 (aarch64_legitimate_constant_p): Check for true instead of not -1.
7415 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
7416 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
7417
44b20bb8
CM
74182013-06-04 Catherine Moore <clm@codesourcery.com>
7419
7420 * config/mips/mips.opt (meva): New.
c1e183a9 7421 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
44b20bb8
CM
7422 (ASM_SPEC): Handle -meva.
7423 * doc/invoke.texi (meva): Document.
7424
52befbd8
AM
74252013-06-04 Alan Modra <amodra@gmail.com>
7426
7427 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
7428 constant output.
7429
aadaf24e
KT
74302013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7431
7432 * rtl.def: Add extra fourth optional field to define_cond_exec.
7433 * gensupport.c (process_one_cond_exec): Process attributes from
7434 define_cond_exec.
7435 * doc/md.texi: Document fourth field in define_cond_exec.
7436
0cd9e9ee
EB
74372013-06-04 Eric Botcazou <ebotcazou@adacore.com>
7438
7439 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
7440 out the processing order as in store_bit_field_1.
7441
cb0f665d
JH
74422013-06-04 Jan Hubicka <jh@suse.cz>
7443
7444 PR middle-end/57500
7445 * cgraphunit.c (cgraph_process_same_body_aliases): Create
7446 non-VAR_DECL node if it does not exist yet.
7447
53984b9b
RS
74482013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
7449
7450 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
7451 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
7452 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
7453 target_cpu_default setting.
7454
5d318fd4
TJ
74552013-06-03 Teresa Johnson <tejohnson@google.com>
7456
7457 * dumpfile.c (opt_info_switch_p): Change -fopt-info
7458 default to -fopt-info=optimized instead of all.
7459 * doc/invoke.texi: Ditto.
7460 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
7461 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
7462 (execute_vect_slp): Emit BB vectorization success under
7463 MSG_OPTIMIZED_LOCATIONS.
7464 * tree-vect-slp.c (vect_slp_transform_bb): Change
7465 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
7466 * tree-vect-loop.c (vect_transform_loop): Ditto.
7467
ec3af349
JM
74682013-06-03 Jason Merrill <jason@redhat.com>
7469
7470 PR c++/57415
7471 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7472 Use TARGET_EXPR for C++.
7473
1baf9159
JJ
74742013-06-03 Jakub Jelinek <jakub@redhat.com>
7475
7476 PR rtl-optimization/57268
0cd9e9ee 7477 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
1baf9159
JJ
7478 if DEBUG_INSN_P (insn).
7479
7480 Reapply
7481 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
7482
7483 PR rtl-optimization/57268
7484 * sched-deps.c (sched_analyze_2): Flush dependence lists if
7485 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
7486
0f1d3965
YR
74872013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
7488
7489 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
7490 (ix86_avoid_lea_for_addr): Likewise.
7491 (exact_dependency_1): Likewise.
7492 (ix86_adjust_cost): Likewise.
7493 (swap_top_of_ready_list): Fix formatting and !reload_completed check
7494 removed.
7495 (do_reorder_for_imul): Fix typo, formatting and
7496 !reload_completed check removed.
7497 (ix86_sched_reorder): Fix typo and formatting.
7498 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
7499 list.
7500
3bc30db4
SN
75012013-06-03 Sofiane Naci <sofiane.naci@arm.com>
7502
7503 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
7504
19cc6fac
EB
75052013-06-03 Eric Botcazou <ebotcazou@adacore.com>
7506
7507 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
7508 <STRING_CST>: Likewise.
7509 <VECTOR_CST>: Likewise.
7510
c68a6e08
JW
75112013-06-01 Janus Weil <janus@gcc.gnu.org>
7512 Mikael Morin <mikael@gcc.gnu.org>
7513
7514 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
7515 * config.in: Regenerated.
7516 * configure: Regenerated.
7517
38e55e5c
JH
75182013-06-01 Jan Hubicka <jh@suse.cz>
7519
7520 PR middle-end/57366
7521 * cgraphunit.c (compile): When weakref is not supported,
7522 set up transparent aliases before final output pass.
7523 * varasm.c (assemble_alias): Do not try to do it here.
7524
eb51d2ff
JH
75252013-06-01 Jan Hubicka <jh@suse.cz>
7526
7527 PR middle-end/57467
7528 * passes.c (for_per_function): Skip unanalyzed functions.
7529
40a7fe1e
JH
75302013-06-01 Jan Hubicka <jh@suse.cz>
7531
7532 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
7533 (lto_symtab_merge_symbols_1): ... this one.
7534 (lto_symtab_merge_cgraph_nodes): Rename to ...
7535 (lto_symtab_merge_symbols): ... this one; simplify.
7536 * cgraph.c (same_body_aliases_done): Rename to ...
7537 (cpp_implicit_aliases_done): ... this one.
7538 (cgraph_create_function_alias): Update.
7539 (cgraph_same_body_alias): Update.
c1e183a9 7540 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
40a7fe1e 7541 (verify_edge_corresponds_to_fndecl): Simplify.
c1e183a9 7542 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
40a7fe1e
JH
7543 (cgraph_node): Remove same_body_alias.
7544 (varpool_node): Remove alias_of and extra_name_alias.
7545 (same_body_aliases_done): Rename to ..
7546 (cpp_implicit_aliases_done): ... this one.
7547 (symtab_alias_ultimate_target): Add default parameter.
7548 (symtab_resolve_alias): New function.
7549 (fixup_same_cpp_alias_visibility): Declare.
7550 (cgraph_function_node): Add default parameter.
7551 (cgraph_node_asm_name): Likewise.
7552 (cgraph_function_or_thunk_node): Add default parameter; do
7553 not ICE when it is NULL.
7554 (varpool_variable_node): Likewise.
7555 * tree-emutls.c (create_emultls_var): Update.
7556 (ipa_lower_emutls): Update.
7557 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
7558 (cgraph_reset_node): Reset alias info.
7559 (cgraph_finalize_function): Update.
7560 (fixup_same_cpp_alias_visibility): Move to symtab.c.
7561 (analyze_function): Simplify.
7562 (cgraph_process_same_body_aliases): Simplify.
7563 (analyze_functions): Fixup same body aliases.
7564 (handle_alias_pairs): Simplify.
7565 (assemble_thunk): Update.
7566 (assemble_thunks_and_aliases): Update.
7567 (output_weakrefs): Rewrite.
7568 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
7569 (lto_output_varpool_node): Likewise.
7570 (compute_ltrans_boundary): Remve assert.
7571 (get_alias_symbol): New functoin.
7572 (input_node): Rewrite alias handling.
7573 (input_varpool_node): Likewise.
7574 * ipa-pure-const.c (propagate_pure_const): Fix formating.
7575 * ipa.c (process_references): Handle weakrefs correctly.
7576 (symtab_remove_unreachable_nodes): Likewise.
7577 * trans-mem.c (get_cg_data): Update.
7578 (ipa_tm_create_version_alias): Update.
7579 (ipa_tm_execute): Update.
7580 * symtab.c (dump_symtab_base): Dump aliases.
7581 (verify_symtab_base): Verify aliases.
7582 (symtab_node_availability): New function.
7583 (symtab_alias_ultimate_target): Simplify.
7584 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
7585 handle all the fixup cases.
7586 (symtab_resolve_alias): New function.
7587 * passes.c (ipa_write_summaries): Handle weakrefs.
7588 * varpool.c (varpool_analyze_node): Simplify.
7589 (assemble_aliases): Update.
7590 (varpool_create_variable_alias): Simplify.
7591 (varpool_extra_name_alias): Simplify.
7592 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
7593 (lto_symtab_merge_symbols): ... this one.
7594
21759881
DT
75952013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
7596
7597 Revert
7598 PR rtl-optimization/57268
7599 * sched-deps.c (sched_analyze_2): Flush dependence lists if
7600 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
7601
daf4e940
TB
76022013-06-01 Tobias Burnus <burnus@net-b.de>
7603
7604 Partially reverted:
7605 2013-05-31 Tobias Burnus <burnus@net-b.de>
7606
7607 PR middle-end/57073
7608 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
7609 further up.
7610
c359d8d0
DT
76112013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
7612
7613 PR rtl-optimization/57268
7614 * sched-deps.c (sched_analyze_2): Flush dependence lists if
7615 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
7616
4172215d
EB
76172013-05-31 Eric Botcazou <ebotcazou@adacore.com>
7618
7619 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
7620 unordered comparison operators when -fno-trapping-math is in effect
7621 on the e500.
7622 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
7623 and implement unordered comparison operators properly on the e500.
7624
a8c50132
EB
76252013-05-31 Eric Botcazou <ebotcazou@adacore.com>
7626
7627 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
7628 for constant scalar integers.
7629 (simplify_relational_operation_1): Likewise.
7630
44626634
SB
76312013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
7632
7633 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
7634 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
7635 Fix comment.
7636
55805e54
YR
76372013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
7638 Igor Zamyatin <igor.zamyatin@intel.com>
7639
7640 Silvermont (SLM) architecture performance tuning.
7641 * config/i386/i386.h (enum ix86_tune_indices): Add
7642 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
7643 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
7644
7645 * config/i386/i386.c (initial_ix86_tune_features)
7646 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
7647 (ix86_lea_outperforms): Handle Silvermont tuning.
7648 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
7649 call.
7650 (ix86_use_lea_for_mov): Likewise.
7651 (ix86_avoid_lea_for_addr): Likewise.
7652 (ix86_lea_for_add_ok): Likewise.
7653 (exact_dependency_1): New function.
7654 (exact_store_load_dependency): Likewise.
7655 (ix86_adjust_cost): Handle Silvermont tuning.
7656 (do_reoder_for_imul): Likewise.
7657 (swap_top_of_ready_list): New function.
7658 (ix86_sched_reorder): Changed to handle Silvermont tuning.
7659
7660 * config/i386/i386.md (peepholes that split memory operand in fp
7661 converts): New.
7662
e19c9de2
MS
76632013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
7664
7665 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
7666 Remove un-necessary braces.
7667
38e6c9a6
MS
76682013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
7669
7670 * config/aarch64/aarch64.c (aarch64_classify_symbol):
7671 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
7672
e3530904
TB
76732013-05-31 Tobias Burnus <burnus@net-b.de>
7674
7675 PR middle-end/57073
c1e183a9 7676 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
e3530904 7677
b6af05a9
KT
76782013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7679
7680 PR target/56315
7681 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
7682 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
7683 * config/arm/neon.md (iordi3_neon): Remove.
7684 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
7685 * config/arm/predicates.md (imm_for_neon_logic_operand):
7686 Move to earlier in the file.
7687 (neon_logic_op2): Likewise.
7688 (arm_iordi_operand_neon): New predicate.
7689
f800c166
RB
76902013-05-31 Richard Biener <rguenther@suse.de>
7691
7692 PR tree-optimization/57478
7693 PR tree-optimization/57453
7694 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
7695 are life as well.
7696
e571fa59
KP
76972013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
7698
7699 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
7700 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
7701
0fa6e0ef
TB
77022013-05-30 Tobias Burnus <burnus@net-b.de>
7703 Thomas Koenig <tkoenig@gcc.gnu.org>
7704
7705 PR middle-end/57073
7706 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
7707 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
7708
4688ddf5
SB
77092013-05-30 Steven Bosscher <steven@gcc.gnu.org>
7710
0fa6e0ef 7711 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
4688ddf5 7712
3b9ceb4b
VM
77132013-05-30 Vladimir Makarov <vmakarov@redhat.com>
7714
7715 * target.def (register_usage_leveling_p): New hook.
7716 * targhooks.c (default_register_usage_leveling_p): New.
7717 * targhooks.h (default_register_usage_leveling_p): New prototype.
7718 * lra-assigns.c (register_usage_leveling_p): Use the hook.
7719 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
7720 * doc/tm.texi: Update.
7721 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
7722
65f9e789
IB
77232013-05-30 Ian Bolton <ian.bolton@arm.com>
7724
7725 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
7726 (*insv_reg<mode>): New define_insn.
7727
12211b99 77282013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
ca035367
JR
7729
7730 PR rtl-optimization/57439
7731 * postreload.c (move2add_valid_value_p): Check that we have
7732 a zero subreg_regno_offset when accessing the register in
7733 the requested mode.
7734
0b871ccf
YR
77352013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
7736 Igor Zamyatin <igor.zamyatin@intel.com>
7737
7738 Silvermont (SLM) architecture pipeline model, tuning and
7739 insn selection.
7740 * config.gcc: Add slm config options and target.
7741
7742 * config/i386/slm.md: New.
7743
7744 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
7745
7746 * gcc/config/i386/i386-c.c (ix86_target_macros_internal): New case
7747 PROCESSOR_SLM.
7748 (ix86_target_macros_internal): Likewise.
7749
7750 * gcc/config/i386/i386.c (slm_cost): New cost.
7751 (m_SLM): New macro flag.
7752 (initial_ix86_tune_features): Set m_SLM.
7753 (x86_accumulate_outgoing_args): Likewise.
7754 (x86_arch_always_fancy_math_387): Likewise.
7755 (processor_target_table): Add slm cost.
7756 (cpu_names): Add slm cpu name.
7757 (x86_option_override_internal): Set SLM ISA.
7758 (ix86_issue_rate): New case PROCESSOR_SLM.
7759 (ia32_multipass_dfa_lookahead): Likewise.
7760 (fold_builtin_cpu): Add slm.
7761
7762 * config/i386/i386.h (TARGET_SLM): New target macro.
7763 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
7764 (processor_type): Add PROCESSOR_SLM.
7765
7766 * config/i386/i386.md (cpu): Add new value "slm".
7767 (slm.md): Include slm.md.
7768
24d5b097
XG
77692013-05-30 Bernd Schmidt <bernds@codesourcery.com>
7770 Zhenqiang Chen <zhenqiang.chen@linaro.org>
7771
7772 * config/arm/arm-protos.h: Add and update function protos.
7773 * config/arm/arm.c (use_simple_return_p): New added.
7774 (thumb2_expand_return): Check simple_return flag.
7775 * config/arm/arm.md: Add simple_return and conditional simple_return.
7776 * config/arm/iterators.md: Add iterator for return and simple_return.
7777
c1cccc15
ZC
77782013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
7779
7780 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
7781 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
7782 (arm_emit_vfp_multi_reg_pop): Likewise.
7783 (thumb2_emit_ldrd_pop): Likewise.
7784 (arm_expand_epilogue): Add misc REG_CFA notes.
7785 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
7786
3a4f280b
LC
77872013-05-29 Lawrence Crowl <crowl@google.com>
7788
7789 * config/arm/t-arm: Update for below.
7790
7791 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
7792 Change type to hash_table. Update dependent calls and types.
7793
7794 * config/i386/t-cygming: Update for below.
7795
7796 * config/i386/t-interix: Update for below.
7797
7798 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
7799 Change type to hash_table. Update dependent calls and types.
7800 (i386_find_on_wrapper_list::wrappers): Likewise.
7801
7802 * config/ia64/t-ia64: Update for below.
7803
7804 * config/ia64/ia64.c (bundle_state_table):
7805 Change type to hash_table. Update dependent calls and types.
7806
7807 * config/mips/mips.c (mips_reorg_process_insns::htab):
7808 Change type to hash_table. Update dependent calls and types.
7809
7810 * config/sol2.c (solaris_comdat_htab):
7811 Change type to hash_table. Update dependent calls and types.
7812
7813 * config/t-sol2: Update for above.
7814
1388a0e3
TJ
78152013-05-29 Teresa Johnson <tejohnson@google.com>
7816
7817 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
7818 functions are not yet marked as defined.
7819
a5965b52 78202013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
7821 Pat Haugen <pthaugen@us.ibm.com>
7822 Peter Bergner <bergner@vnet.ibm.com>
a5965b52
MM
7823
7824 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
7825 instructions.
7826 (VEC_A): Likewise.
7827 (VEC_C): Likewise.
7828 (vrotl<mode>3): Likewise.
7829 (vashl<mode>3): Likewise.
7830 (vlshr<mode>3): Likewise.
7831 (vashr<mode>3): Likewise.
7832
7833 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7834 support for power8 V2DI builtins.
7835
7836 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
7837 power8 V2DI builtins.
7838 (vupkhsw): Likewise.
7839 (vupklsw): Likewise.
7840 (vaddudm): Likewise.
7841 (vminsd): Likewise.
7842 (vmaxsd): Likewise.
7843 (vminud): Likewise.
7844 (vmaxud): Likewise.
7845 (vpkudum): Likewise.
7846 (vpksdss): Likewise.
7847 (vpkudus): Likewise.
7848 (vpksdus): Likewise.
7849 (vrld): Likewise.
7850 (vsld): Likewise.
7851 (vsrd): Likewise.
7852 (vsrad): Likewise.
7853 (vsubudm): Likewise.
7854 (vcmpequd): Likewise.
7855 (vcmpgtsd): Likewise.
7856 (vcmpgtud): Likewise.
7857 (vcmpequd_p): Likewise.
7858 (vcmpgtsd_p): Likewise.
7859 (vcmpgtud_p): Likewise.
7860 (vupkhsw): Likewise.
7861 (vupklsw): Likewise.
7862 (vaddudm): Likewise.
7863 (vmaxsd): Likewise.
7864 (vmaxud): Likewise.
7865 (vminsd): Likewise.
7866 (vminud): Likewise.
7867 (vpksdss): Likewise.
7868 (vpksdus): Likewise.
7869 (vpkudum): Likewise.
7870 (vpkudus): Likewise.
7871 (vrld): Likewise.
7872 (vsld): Likewise.
7873 (vsrad): Likewise.
7874 (vsrd): Likewise.
7875 (vsubudm): Likewise.
7876
7877 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
7878 support for power8 V2DI instructions.
7879
7880 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
7881 power8 V2DI instructions. Combine pack and unpack insns to use an
7882 iterator for each mode. Check whether a particular mode supports
7883 Altivec instructions instead of just checking TARGET_ALTIVEC.
7884 (UNSPEC_VPKUWUM): Likewise.
7885 (UNSPEC_VPKSHSS): Likewise.
7886 (UNSPEC_VPKSWSS): Likewise.
7887 (UNSPEC_VPKUHUS): Likewise.
7888 (UNSPEC_VPKSHUS): Likewise.
7889 (UNSPEC_VPKUWUS): Likewise.
7890 (UNSPEC_VPKSWUS): Likewise.
7891 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
7892 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
7893 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
7894 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
7895 (UNSPEC_VUPKHSB): Likewise.
7896 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
7897 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
7898 (UNSPEC_VUPKHSH): Likewise.
7899 (UNSPEC_VUPKLSB): Likewise.
7900 (UNSPEC_VUPKLSH): Likewise.
7901 (VI2): Likewise.
7902 (VI_char): Likewise.
7903 (VI_scalar): Likewise.
7904 (VI_unit): Likewise.
7905 (VP): Likewise.
7906 (VP_small): Likewise.
7907 (VP_small_lc): Likewise.
7908 (VU_char): Likewise.
7909 (add<mode>3): Likewise.
7910 (altivec_vaddcuw): Likewise.
7911 (altivec_vaddu<VI_char>s): Likewise.
7912 (altivec_vadds<VI_char>s): Likewise.
7913 (sub<mode>3): Likewise.
7914 (altivec_vsubcuw): Likewise.
7915 (altivec_vsubu<VI_char>s): Likewise.
7916 (altivec_vsubs<VI_char>s): Likewise.
7917 (altivec_vavgs<VI_char>): Likewise.
7918 (altivec_vcmpbfp): Likewise.
7919 (altivec_eq<mode>): Likewise.
7920 (altivec_gt<mode>): Likewise.
7921 (altivec_gtu<mode>): Likewise.
7922 (umax<mode>3): Likewise.
7923 (smax<mode>3): Likewise.
7924 (umin<mode>3): Likewise.
7925 (smin<mode>3): Likewise.
7926 (altivec_vpkuhum): Likewise.
7927 (altivec_vpkuwum): Likewise.
7928 (altivec_vpkshss): Likewise.
7929 (altivec_vpkswss): Likewise.
7930 (altivec_vpkuhus): Likewise.
7931 (altivec_vpkshus): Likewise.
7932 (altivec_vpkuwus): Likewise.
7933 (altivec_vpkswus): Likewise.
7934 (altivec_vpks<VI_char>ss): Likewise.
7935 (altivec_vpks<VI_char>us): Likewise.
7936 (altivec_vpku<VI_char>us): Likewise.
7937 (altivec_vpku<VI_char>um): Likewise.
7938 (altivec_vrl<VI_char>): Likewise.
7939 (altivec_vsl<VI_char>): Likewise.
7940 (altivec_vsr<VI_char>): Likewise.
7941 (altivec_vsra<VI_char>): Likewise.
7942 (altivec_vsldoi_<mode>): Likewise.
7943 (altivec_vupkhsb): Likewise.
7944 (altivec_vupkhs<VU_char>): Likewise.
7945 (altivec_vupkls<VU_char>): Likewise.
7946 (altivec_vupkhsh): Likewise.
7947 (altivec_vupklsb): Likewise.
7948 (altivec_vupklsh): Likewise.
7949 (altivec_vcmpequ<VI_char>_p): Likewise.
7950 (altivec_vcmpgts<VI_char>_p): Likewise.
7951 (altivec_vcmpgtu<VI_char>_p): Likewise.
7952 (abs<mode>2): Likewise.
7953 (vec_unpacks_hi_v16qi): Likewise.
7954 (vec_unpacks_hi_v8hi): Likewise.
7955 (vec_unpacks_lo_v16qi): Likewise.
7956 (vec_unpacks_hi_<VP_small_lc>): Likewise.
7957 (vec_unpacks_lo_v8hi): Likewise.
7958 (vec_unpacks_lo_<VP_small_lc>): Likewise.
7959 (vec_pack_trunc_v8h): Likewise.
7960 (vec_pack_trunc_v4si): Likewise.
7961 (vec_pack_trunc_<mode>): Likewise.
7962
7963 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
7964 V2DI builtins.
7965 (vec_vmaxsd): Likewise.
7966 (vec_vmaxud): Likewise.
7967 (vec_vminsd): Likewise.
7968 (vec_vminud): Likewise.
7969 (vec_vpksdss): Likewise.
7970 (vec_vpksdus): Likewise.
7971 (vec_vpkudum): Likewise.
7972 (vec_vpkudus): Likewise.
7973 (vec_vrld): Likewise.
7974 (vec_vsld): Likewise.
7975 (vec_vsrad): Likewise.
7976 (vec_vsrd): Likewise.
7977 (vec_vsubudm): Likewise.
7978 (vec_vupkhsw): Likewise.
7979 (vec_vupklsw): Likewise.
7980
e70670cf
JH
79812013-05-29 Jan Hubicka <jh@suse.cz>
7982
7983 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
7984 flags; reorder rest of fields in more consistent way.
7985 (varpool_node): Remove analyzed, finalized and alias.
7986 (cgraph_ndoe): Likewise.
7987 (symtab_alias_ultimate_target): New function.
7988 (cgraph_function_node): Move offline.
7989 (cgraph_reset_node): Declare.
7990 (cgraph_comdat_can_be_unshared_p): Remove.
7991 (varpool_remove_initializer): Declare.
7992 (varpool_first_defined_variable, varpool_next_defined_variable
7993 cgraph_first_defined_function, cgraph_next_defined_function): Update.
7994 (cgraph_function_with_gimple_body_p): Update.
7995 (varpool_all_refs_explicit_p): Update.
7996 (symtab_alias_target): New function.
7997 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
7998 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
c1e183a9
UB
7999 (cgraph_function_or_thunk_node): Simplify using
8000 symtab_alias_ultimate_target.
e70670cf
JH
8001 (varpool_variable_node): Likewise.
8002 * cgraph.c (cgraph_create_function_alias): Update.
8003 (cgraph_add_thunk): Update.
8004 (cgraph_remove_node): Update.
8005 (dump_cgraph_node): Do not dump removed flags.
8006 (cgraph_function_body_availability): Update.
8007 (cgraph_propagate_frequency): Update.
8008 (verify_cgraph_node): Check sanity of local flag.
8009 (cgraph_function_node): Move here from cgraph.h; revamp for
8010 cgraph_function_or_thunk_node.
8011 * lto-symtab.c (lto_varpool_replace_node): Update.
8012 (lto_symtab_resolve_can_prevail_p): Update.
8013 (lto_symtab_merge_cgraph_nodes): Update.
8014 * ipa-cp.c (determine_versionability, initialize_node_lattices,
8015 propagate_constants_accross_call, devirtualization_time_bonus,
8016 ipcp_propagate_stage): Update.
8017 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
c1e183a9
UB
8018 * ipa-inline-transform.c (clone_inlined_nodes,
8019 preserve_function_body_p): Update.
e70670cf
JH
8020 * ipa-reference.c (propagate): Update.
8021 (write_node_summary_p): Update.
8022 * toplev.c (wrapup_global_declaration_2): Update.
8023 * cgraphunit.c (cgraph_analyze_function): Rename to ...
8024 (analyze_function) ... this one.
8025 (cgraph_process_new_functions): Update.
8026 (cgraph_reset_node): Export.
8027 (cgraph_finalize_function): Update.
8028 (cgraph_add_new_function): Update.
8029 (process_function_and_variable_attributes): Update.
8030 (varpool_finalize_decl): Update.
8031 (symbol_finalized): Remove.
8032 (symbol_finalized_and_needed): Rename to ...
8033 (symbol_defined_and_needed): ... update.
8034 (cgraph_analyze_functions): Update.
8035 (handle_alias_pairs): Update.
8036 (mark_functions_to_output): Update.
8037 (assemble_thunk): Update.
8038 (output_in_order): Update.
8039 (output_weakrefs): Update.
8040 (finalize_compilation_unit): Update.
8041 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
8042 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
8043 input_node, input_varpool_node): Update.
8044 * dbxout.c (dbxout_expand_expr): Update.
8045 * cgraphclones.c (cgraph_clone_node): Update.
8046 (cgraph_copy_node_for_versioning): Update.
8047 (cgraph_materialize_clone): Update.
8048 (cgraph_materialize_all_clones): Update.
8049 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
8050 propagate_pure_const, propagate_nothrow): Update.
8051 * lto-streamer-out.c (lto_output, write_symbol): Update.
8052 * ipa-utils.c (ipa_reverse_postorder): Update.
8053 * ipa-inline.c (can_inline_edge_p): Update.
8054 (update_caller_keys, ipa_inline): Update.
8055 * dwarf2out.c (reference_to_unused,
8056 premark_types_used_by_global_vars_helper): Update.
8057 * tree-eh.c (tree_could_trap_p): Update.
8058 * ipa-split.c (consider_split, execute_split_functions): Update.
8059 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
c1e183a9
UB
8060 has_addr_references_p): Update; move ahead in file for better
8061 readability.
e70670cf
JH
8062 (process_references): Simplify.
8063 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
8064 bodies are removed.
8065 (cgraph_comdat_can_be_unshared_p): Make static.
8066 (cgraph_externally_visible_p): Update.
8067 (varpool_externally_visible_p): Update.
8068 (function_and_variable_visibility): Update.
8069 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
8070 ipa_tm_mark_force_output_node): Update.
8071 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
8072 estimate_edge_devirt_benefit, inline_generate_summary,
8073 inline_write_summary): Update.
8074 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
8075 * ipa-prop.c (ipa_compute_jump_functions): Update.
c1e183a9
UB
8076 (ipa_print_node_params, ipa_prop_read_section,
8077 ipa_update_after_lto_read, read_replacements_section): Update.
e70670cf
JH
8078 * varasm.c (mark_decl_referenced): Update.
8079 (assemble_alias, dump_tm_clone_pairs): Update.
8080 * tree-inline.c (copy_bb): Update.
8081 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
8082 Update.
8083 * symtab.c (dump_symtab_base): Print new flags.
8084 (verify_symtab_base): Verify new flags.
8085 (symtab_alias_ultimate_target): New function.
8086 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
8087 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
8088 Update.
c1e183a9
UB
8089 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
8090 Update.
e70670cf
JH
8091 * i386.c (ix86_get_function_versions_dispatcher,
8092 ix86_generate_version_dispatcher_body): Update.
8093 (fold_builtin_cpu): Use varpool_add_new_variable.
8094 * varpool.c (varpool_remove_initializer): Break out from ...
8095 (varpool_remove_node): ... this one.
8096 (dump_varpool_node, varpool_node_for_asm,
8097 cgraph_variable_initializer_availability, varpool_analyze_node,
8098 varpool_assemble_decl, varpool_remove_unreferenced_decls,
c1e183a9
UB
8099 varpool_finalize_named_section_flags, varpool_create_variable_alias):
8100 Update.
e70670cf 8101
182802ad
JH
81022013-05-29 Jan Hubicka <jh@suse.cz>
8103
8104 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
8105
8190b609
ER
81062013-05-29 Easwaran Raman <eraman@google.com>
8107
8108 PR tree-optimization/57442
8109 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
8110 when control exits the main loop.
8111
69f5aa9b
SKS
81122013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
8113
8114 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
8115 and RX600.
c1e183a9 8116 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
69f5aa9b
SKS
8117 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
8118 * rx/t-rx: Add rx100 under multi library matches option for nofpu
8119 option.
8120
4b847da9
BS
81212013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8122
8123 PR tree-optimization/57441
8124 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
8125 Don't limit size of incr_vec to number of candidates.
8126
4fc43c39
SE
81272013-05-29 Steve Ellcey <sellcey@imgtec.com>
8128
8129 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
8130 and mips16 directories.
c1e183a9 8131 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
4fc43c39
SE
8132 (MULTILIB_DIRNAMES): Ditto.
8133 (MULTILIB_EXCEPTIONS): Add new exceptions.
8134 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
8135 (MULTILIB_DIRNAMES): Ditto.
8136 (MULTILIB_EXCEPTIONS): Add new exceptions.
8137
12211b99 81382012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
a5350ddc
CSS
8139 Marcus Shawcroft <marcus.shawcroft@arm.com>
8140
8141 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
8142 SYMBOL_TINY_ABSOLUTE.
8143 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
8144 SYMBOL_TINY_ABSOLUTE.
8145 (aarch64_expand_mov_immediate): Likewise.
8146 (aarch64_classify_symbol): Likewise.
8147 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
8148 Permit SYMBOL_TINY_ABSOLUTE.
8149 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
8150
12211b99 81512013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
17f4d4bf
CSS
8152 Marcus Shawcroft <marcus.shawcroft@arm.com>
8153
8154 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
8155 Refactor if/switch. Replace gcc_assert with if.
8156
c0186656
GG
81572013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
8158
8159 * config/i386/i386.c (initial_ix86_tune_features): Enable
8160 FP Reassociation for AMD bdver1 and bdver2.
8161
d20188f3
MJ
81622013-05-29 Martin Jambor <mjambor@suse.cz>
8163
8164 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
8165 and IMAGPART_EXPR do not occur within other handled_components.
8166
292cba13
RB
81672013-05-29 Richard Biener <rguenther@suse.de>
8168
8169 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
8170 access on whether the use is in the BB we currently try to
8171 vectorize.
8172 (vect_bb_vectorization_profitable_p): Pass the BB we currently
8173 vectorize to vect_bb_slp_scalar_cost.
8174
6eddf228
RB
81752013-05-29 Richard Biener <rguenther@suse.de>
8176
8177 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
8178 computing scalar cost offsetted by stmts that are kept live
8179 by scalar uses.
8180 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
8181 for computation of scalar cost.
8182
7df36117
SE
81832013-05-28 Steve Ellcey <sellcey@mips.com>
8184
8185 * config/mips/mips-cpus.def (mips32r2): Change processor type.
8186
36536d79
BI
81872013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
8188
8189 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
8190 array notation built-in reduction functions.
8191 * doc/passes.texi (Passes): Added documentation about changes done
8192 for Cilk Plus.
8193 * doc/invoke.texi (C Dialect Options): Added documentation about
8194 the -fcilkplus flag.
8195 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
8196 (BUILTINS_DEF): Depend on cilkplus.def.
8197 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
8198 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
8199 * cilkplus.def: New file.
8200
12211b99 82012013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
b49eefa5
JR
8202
8203 PR rtl-optimization/57439
8204 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
8205
9daf6dbb
ER
82062013-05-28 Easwaran Raman <eraman@google.com>
8207
8208 PR tree-optimization/57337
8209 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
8210 (find_insert_point): Correctly identify the insertion point
8211 when two statements with the same UID is compared.
8212
fbd7e877
RB
82132013-05-28 Richard Biener <rguenther@suse.de>
8214
8215 PR tree-optimization/56787
8216 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
8217 from the list of data references.
8218 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
8219 clobbers.
8220 (vect_analyze_loop_operations): Likewise.
8221 (vect_transform_loop): Remove clobbers.
8222
bbba1117
MJ
82232013-05-28 Martin Jambor <mjambor@suse.cz>
8224
8225 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
8226 and REALPART_EXPRs have scalar type.
8227
bd388c2a
RB
82282013-05-28 Richard Biener <rguenther@suse.de>
8229
8230 PR tree-optimization/57411
8231 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
8232 virtual operands.
8233 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
8234 virtual operand propagation.
8235
2f56a311
EB
82362013-05-28 Eric Botcazou <ebotcazou@adacore.com>
8237
8238 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
8239 destination register for bmasksi_vis.
8240 (vector_init_bshuffle): Likewise.
8241 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
8242
5c3eacbb
EB
82432013-05-28 Eric Botcazou <ebotcazou@adacore.com>
8244
8245 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
8246 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
8247 mode if the instruction isn't available in the original mode.
8248 * config/sparc/sparc.opt (mfix-ut699): New option.
8249 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
8250 (divdf3): Turn into expander.
8251 (divdf3_nofix): New insn.
8252 (divdf3_fix): Likewise.
8253 (divsf3): Disable if -mfix-ut699.
8254 (sqrtdf2): Turn into expander.
8255 (sqrtdf2_nofix): New insn.
8256 (sqrtdf2_fix): Likewise.
8257 (sqrtsf2): Disable if -mfix-ut699.
8258
a1756c0a
RB
82592013-05-27 Richard Biener <rguenther@suse.de>
8260
8261 PR middle-end/57412
8262 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
8263 block for the new loop.
8264
5a892248
RB
82652013-05-27 Richard Biener <rguenther@suse.de>
8266
8267 PR tree-optimization/57343
8268 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
8269 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
8270 (number_of_iterations_cond): Do not build the folded tree.
8271
d1de852b
RB
82722013-05-27 Richard Biener <rguenther@suse.de>
8273
8274 Revert
8275 PR middle-end/57381
8276 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
8277 OEP_CONSTANT_ADDRESS_OF retained.
8278
8279 PR tree-optimization/57417
8280 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
8281 for unchanged base.
8282 (set_ssa_val_to): Compare addresses using
8283 get_addr_base_and_unit_offset.
8284
12211b99 82852013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
7894bc6b
JR
8286
8287 PR rtl-optimization/56833
8288 * postreload.c (move2add_record_mode): New function.
8289 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
8290 (move2add_use_add2_insn): Use move2add_record_sym_value.
8291 (move2add_use_add3_insn): Likewise.
8292 (reload_cse_move2add): Use move2add_valid_value_p and
8293 move2add_record_mode. Invalidate call-clobbered and REG_INC
8294 affected regs by setting reg_mode to VOIDmode.
8295 (move2add_note_store): Don't pretend the inside of a SUBREG is
8296 the actual destination. Invalidate single/leading registers by
8297 setting reg_mode to VOIDmode.
8298 Use move2add_record_sym_value, move2add_valid_value_p and
8299 move2add_record_mode.
8300
b03be25f
RB
83012013-05-27 Richard Biener <rguenther@suse.de>
8302
8303 PR tree-optimization/57396
8304 * tree-affine.c (double_int_constant_multiple_p): Properly
8305 return false for val == 0 and div != 0.
8306
44e88db2
RS
83072013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
8308
8309 * config/mips/mips.h: Use #elif in preprocessor conditions.
8310
3b859704
RS
83112013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
8312
8313 PR target/53916
8314 * config/mips/constraints.md (kl): New constraint.
8315 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
8316 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
8317 constraint for operand 0. Split after CSE for MIPS16. Emit a move
8318 from LO for MIPS16.
8319 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
8320
c979d5f5
RS
83212013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
8322
8323 PR target/55777
8324 * config/mips/mips.c (mips_can_inline_p): New function.
8325 (TARGET_CAN_INLINE_P): Define.
8326
8e90de43
SB
83272013-05-25 Steven Bosscher <steven@gcc.gnu.org>
8328
8329 * sched-int.h (ds_t, dw_t): Make unsigned int.
8330 Fix documentation that describes how all the ds_t bits are used.
8331 Reserve the last bit for delayed-branch scheduling.
8332 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
8333 (BITS_PER_DEP_WEAK): Fix definition and documentation.
8334 (gen_dep_weak_1): Remove prototype.
8335 * sched-deps.c (get_dep_weak_1): Make static.
8336 * target.def (speculate_insn, needs_block_p, gen_spec_check,
8337 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
8338 * doc/tm.texi: Regenerate.
8339 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
8340
cb5cb194
SB
83412013-05-24 Steven Bosscher <steven@gcc.gnu.org>
8342
8343 PR debug/56950
8344 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
8345
5bd93ff6
NS
83462013-05-24 Nathan Sidwell <nathan@codesourcery.com>
8347 Sandra Loosemore <sandra@codesourcery.com>
8348
8349 * config.gcc (powerpc-*): Allow native for with-cpu.
8350
2343af65
JL
83512013-05-24 Jeff Law <law@redhat.com>
8352
8353 PR tree-optimization/57124
8354 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
8355 conversion feeding a condition if the range has an overflow
8356 if -fstrict-overflow. Add warnings for when we do make the
8357 transformation.
8358
3ad695b9
DC
83592013-05-24 Dehao Chen <dehao@google.com>
8360
04960246 8361 * tree-cfg.c (locus_discrim_map): Fix the typo.
3ad695b9
DC
8362 (locus_discrim_hasher): Likewise.
8363 (locus_discrim_hasher::hash): Likewise.
8364 (locus_discrim_hasher::equal): Likewise.
8365
82338059
MJ
83662013-05-24 Martin Jambor <mjambor@suse.cz>
8367
8368 PR tree-optimization/57294
8369 * cgraph.h (ipa_record_stmt_references): Declare.
8370 * cgraphbuild.c (ipa_record_stmt_references): New function.
8371 (build_cgraph_edges): Use ipa_record_stmt_references.
8372 (rebuild_cgraph_edges): Likewise.
8373 (cgraph_rebuild_references): Likewise.
8374 * ipa-prop.c (ipa_modify_call_arguments): Discard references
8375 associated with the old statement and build references from the
8376 newly built statements.
8377 * ipa-ref.c (ipa_remove_stmt_references): New function.
8378 * ipa-ref.h (ipa_remove_stmt_references): Declare.
8379
1ccd4874
VM
83802013-05-24 Vladimir Makarov <vmakarov@redhat.com>
8381
55805e54 8382 * lra-constraints.c (emit_spill_move): Use smaller mode for
1ccd4874 8383 mem-mem moves.
55805e54 8384 (check_and_process_move): Consider mem-reg moves for secondary
1ccd4874 8385 too.
55805e54 8386 (curr_insn_transform): Don't lose insns emitted before for
1ccd4874
VM
8387 secondary memory moves.
8388 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
8389 reg set up in the current insn.
8390
25e25c73
DC
83912013-05-24 Dehao Chen <dehao@google.com>
8392
04960246 8393 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
25e25c73
DC
8394 hash function.
8395 (locus_descrim_hasher::equal): Likewise.
04960246 8396 (build_gimple_cfg): New discriminator assignment algorithm.
25e25c73
DC
8397 (make_edges): Likewise.
8398 (next_discriminator_for_locus): Likewise.
8399 (same_line_p): Likewise.
8400 (assign_discriminators): Likewise.
8401 (make_cond_expr_edges): Likewise.
8402 (make_gimple_switch_edges): Likewise.
8403 (make_goto_expr_edges): Likewise.
8404 (make_gimple_asm_edges): Likewise.
8405
50d38551
IB
84062013-05-24 Ian Bolton <ian.bolton@arm.com>
8407
8408 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
8409 X format specifier to only display bottom 16 bits.
8410 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
8411 immediate to match for operand 2, since it will be masked.
8412
aea0101d
RB
84132013-05-24 Richard Biener <rguenther@suse.de>
8414
8415 PR tree-optimization/57287
8416 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
8417 all SSA names that occur in abnormal PHIs.
8418
634e03d3
AI
84192013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
8420
8421 PR tree-ssa/57385
8422 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
8423 that index is not negative.
8424
b17c024f
EB
84252013-05-24 Eric Botcazou <ebotcazou@adacore.com>
8426
8427 PR rtl-optimization/55177
8428 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
8429 (simplify_byte_swapping_operation): New.
8430 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
8431 (simplify_relational_operation_1): Deal with BSWAP.
8432
46aeac1b
RH
84332013-05-23 Richard Henderson <rth@redhat.com>
8434
8435 PR target/56742
8436 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
8437 (ix86_reorg): Call it.
8438
70cc1536
UB
84392013-05-23 Uros Bizjak <ubizjak@gmail.com>
8440
8441 PR target/57379
8442 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
8443 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
8444 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
8445
b3851501
CB
84462013-05-23 Christian Bruel <christian.bruel@st.com>
8447
8448 PR debug/57351
8449 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
8450
12211b99 84512013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
4e194912
CSS
8452 Marcus Shawcroft <marcus.shawcroft@arm.com>
8453
8454 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
8455 * config/aarch64/constraints.md (Usa): Remove.
8456 * doc/md.texi (AArch64 Usa): Remove.
8457
12211b99 84582013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
83f8c414
CSS
8459 Marcus Shawcroft <marcus.shawcroft@arm.com>
8460
8461 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
8462 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
8463 * config/aarch64/predicates.md (aarch64_const_address): Remove.
8464 (aarch64_mov_operand): Use aarch64_mov_operand_p.
8465
12211b99 84662013-05-23 Vidya Praveen <vidyapraveen@arm.com>
b5574232
VP
8467
8468 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
8469 instruction (AdvSIMD).
8470 * config/aarch64/aarch64-builtins.c
8471 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
8472 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
8473
76c36cb1 84742013-05-23 Martin Jambor <mjambor@suse.cz>
7d2fb524
MJ
8475
8476 PR middle-end/57347
8477 * tree.h (contains_bitfld_component_ref_p): Declare.
8478 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
70cc1536
UB
8479 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
8480 caller.
7d2fb524
MJ
8481 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
8482 not access a bit-field. Assert all final offsets are byte-aligned.
8483
ce521ae6
RB
84842013-05-23 Richard Biener <rguenther@suse.de>
8485
8486 PR tree-optimization/57380
8487 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
8488 least one invariant or re-used load.
8489 * passes.c (init_optimization_passes): Move pass_phiprop before
8490 pass_forwprop.
8491
75c7257f
JG
84922013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
8493
8494 * config/aarch64/aarch64-simd.md
8495 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
8496
af6d44b5
RB
84972013-05-23 Richard Biener <rguenther@suse.de>
8498
8499 PR middle-end/57381
8500 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
8501 OEP_CONSTANT_ADDRESS_OF retained.
8502
bd3647bf
JJ
85032013-05-23 Jakub Jelinek <jakub@redhat.com>
8504
8505 PR middle-end/57344
70cc1536
UB
8506 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
8507 don't lower unit. Handle unit not being always BITS_PER_WORD.
bd3647bf 8508
a55757ea
RB
85092013-05-23 Richard Biener <rguenther@suse.de>
8510
8511 PR rtl-optimization/57341
8512 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
8513 instead of true_dependence.
8514
cfb00b41
DM
85152013-05-22 David Malcolm <dmalcolm@redhat.com>
8516
dd1c676f
DM
8517 * bb-reorder.c (branch_threshold): Make const.
8518 (exec_threshold): Ditto.
cfb00b41 8519
f62511da 85202013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
8521 Pat Haugen <pthaugen@us.ibm.com>
8522 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
8523
8524 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
8525 documentation for the power8 crypto builtins.
8526
8527 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
8528
8529 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
8530 macros for defining power8 builtin functions.
8531 (BU_P8V_AV_2): Likewise.
8532 (BU_P8V_AV_P): Likewise.
8533 (BU_P8V_VSX_1): Likewise.
8534 (BU_P8V_OVERLOAD_1): Likewise.
8535 (BU_P8V_OVERLOAD_2): Likewise.
8536 (BU_CRYPTO_1): Likewise.
8537 (BU_CRYPTO_2): Likewise.
8538 (BU_CRYPTO_3): Likewise.
8539 (BU_CRYPTO_OVERLOAD_1): Likewise.
8540 (BU_CRYPTO_OVERLOAD_2): Likewise.
8541 (XSCVSPDP): Fix typo, point to the correct instruction.
8542 (VCIPHER): Add power8 crypto builtins.
8543 (VCIPHERLAST): Likewise.
8544 (VNCIPHER): Likewise.
8545 (VNCIPHERLAST): Likewise.
8546 (VPMSUMB): Likewise.
8547 (VPMSUMH): Likewise.
8548 (VPMSUMW): Likewise.
8549 (VPERMXOR_V2DI): Likewise.
8550 (VPERMXOR_V4SI: Likewise.
8551 (VPERMXOR_V8HI: Likewise.
8552 (VPERMXOR_V16QI: Likewise.
8553 (VSHASIGMAW): Likewise.
8554 (VSHASIGMAD): Likewise.
8555 (VPMSUM): Likewise.
8556 (VPERMXOR): Likewise.
8557 (VSHASIGMA): Likewise.
8558
8559 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
8560 __CRYPTO__ if the crypto instructions are available.
8561 (altivec_overloaded_builtins): Add support for overloaded power8
8562 builtins.
8563
8564 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
8565 support for power8 crypto builtins.
8566 (builtin_function_type): Likewise.
8567 (altivec_init_builtins): Add support for builtins that take vector
8568 long long (V2DI) arguments.
8569
8570 * config/rs6000/crypto.md: New file, define power8 crypto
8571 instructions.
8572
85732013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
8574 Pat Haugen <pthaugen@us.ibm.com>
8575 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
8576
8577 * doc/invoke.texi (Option Summary): Add power8 options.
8578 (RS/6000 and PowerPC Options): Likewise.
8579
8580 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
8581 constraints.md instead of rs6000.h. Reorder w* constraints. Add
8582 wm, wn, wr documentation.
8583
8584 * gcc/config/rs6000/constraints.md (wm): New constraint for VSX
8585 registers if direct move instructions are enabled.
8586 (wn): New constraint for no registers.
8587 (wq): New constraint for quad word even GPR registers.
8588 (wr): New constraint if 64-bit instructions are enabled.
8589 (wv): New constraint if power8 vector instructions are enabled.
8590 (wQ): New constraint for quad word memory locations.
8591
8592 * gcc/config/rs6000/predicates.md (const_0_to_15_operand): New
8593 constraint for 0..15 for crypto instructions.
8594 (gpc_reg_operand): If VSX allow registers in VSX registers as well
8595 as GPR and floating point registers.
8596 (int_reg_operand): New predicate to match only GPR registers.
8597 (base_reg_operand): New predicate to match base registers.
8598 (quad_int_reg_operand): New predicate to match even GPR registers
8599 for quad memory operations.
8600 (vsx_reg_or_cint_operand): New predicate to allow vector logical
8601 operations in both GPR and VSX registers.
8602 (quad_memory_operand): New predicate for quad memory operations.
8603 (reg_or_indexed_operand): New predicate for direct move support.
8604
8605 * gcc/config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
8606 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
8607 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
8608 (POWERPC_MASKS): Add power8 options.
8609 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
8610 various options.
8611
8612 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
8613 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
8614
8615 * gcc/config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
8616 (-mpower8-fusion): New power8 options.
8617 (-mpower8-fusion-sign): Likewise.
8618 (-mpower8-vector): Likewise.
8619 (-mcrypto): Likewise.
8620 (-mdirect-move): Likewise.
8621 (-mquad-memory): Likewise.
8622
8623 * gcc/config/rs6000/rs6000.c (power8_cost): Initial definition for
8624 power8.
8625 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
8626 registers.
70cc1536 8627 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
f62511da
MM
8628 (rs6000_debug_vector_unit): Add p8_vector.
8629 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
8630 definitions. Also print fusion state.
8631 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
8632 (rs6000_builtin_mask_calculate): Add power8 builtin support.
8633 (rs6000_option_override_internal): Add support for power8.
8634 (rs6000_common_init_builtins): Add debugging for skipped builtins
8635 if -mdebug=builtin.
8636 (rs6000_adjust_cost): Add power8 support.
8637 (rs6000_issue_rate): Likewise.
8638 (insn_must_be_first_in_group): Likewise.
8639 (insn_must_be_last_in_group): Likewise.
8640 (force_new_group): Likewise.
8641 (rs6000_register_move_cost): Likewise.
8642 (rs6000_opt_masks): Likewise.
8643
8644 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
8645 power8 capable assembler, default to power7 options.
8646 (TARGET_DIRECT_MOVE): Likewise.
8647 (TARGET_CRYPTO): Likewise.
8648 (TARGET_P8_VECTOR): Likewise.
8649 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
8650 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
8651 (VECTOR_MEM_P8_VECTOR_P): Likewise.
8652 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
8653 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
8654 (TARGET_XSCVDPSPN): Likewise.
8655 (TARGET_XSCVSPDPN): Likewsie.
8656 (TARGET_SYNC_HI_QI): Likewise.
8657 (TARGET_SYNC_TI): Likewise.
8658 (MASK_CRYPTO): Likewise.
8659 (MASK_DIRECT_MOVE): Likewise.
8660 (MASK_P8_FUSION): Likewise.
8661 (MASK_P8_VECTOR): Likewise.
70cc1536
UB
8662 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
8663 temporary used by some of the direct move instructions to get two FP
8664 temporary registers does not force creation of a stack frame.
f62511da
MM
8665 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
8666 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
8667 that any VSX registers are tieable, even if they are also an
8668 Altivec vector mode.
8669 (r6000_reg_class_enum): Add wm, wr, wv constraints.
8670 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
8671 (RS6000_BTM_CRYPTO): Likewise.
8672 (RS6000_BTM_COMMON): Likewise.
8673
8674 * config/rs6000/rs6000.md (cpu attribute): Add power8.
8675 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
8676 (enum rs6000_vector): Add power8 vector support.
8677
73a1a707
RR
86782013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8679
8680 PR target/19599
8681 PR target/57340
8682 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
8683 (any_sibcall_could_use_r3): this and handle indirect calls.
8684 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
8685
d28073d4
BS
86862013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8687
8688 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
8689
bee0b10c
RB
86902013-05-22 Richard Biener <rguenther@suse.de>
8691
8692 PR middle-end/57349
8693 * profile.c (branch_prob): Do not split blocks that are
8694 abnormally receiving from ECF_RETURNS_TWICE functions.
8695
98409b51
RS
86962013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
8697
8698 * recog.c (offsettable_address_addr_space_p): Fix calculation of
8699 address mode. Move pointer mode initialization to the same place.
8700
c0602ab8
MZ
87012013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8702
8703 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
8704 while it has any effect.
8705
4f7a634e
ER
87062013-05-21 Easwaran Raman <eraman@google.com>
8707
8708 PR tree-optimization/57322
9daf6dbb
ER
8709 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
8710 UID of the statement added to the BB to be 1.
4f7a634e 8711
a4ce1258
JJ
87122013-05-21 Jakub Jelinek <jakub@redhat.com>
8713
8714 PR tree-optimization/57331
70cc1536
UB
8715 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
8716 of conversion from pointer type to integral type with integer.
a4ce1258 8717
1b14621a
MJ
87182013-05-21 Martin Jambor <mjambor@suse.cz>
8719
8720 PR lto/57289
8721 * ipa-prop.c (ipa_read_node_info): Process param_used and
8722 controlled_uses in the same order as when writing.
8723
e60661f0
MG
87242013-05-21 Magnus Granberg <baldrick@free.fr>
8725
8726 PR plugins/56754
ee49aa34 8727 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
e60661f0 8728
4a61be9a
RB
87292013-05-21 Richard Biener <rguenther@suse.de>
8730
8731 PR tree-optimization/57318
8732 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
8733 estimate stmts with side-effects as likely eliminated.
8734
c52da5f7
RB
87352013-05-21 Richard Biener <rguenther@suse.de>
8736
8737 PR tree-optimization/57330
8738 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
8739 preserve the call stmts fntype.
8740
7ec67e2a
RB
87412013-05-21 Richard Biener <rguenther@suse.de>
8742
8743 PR tree-optimization/57303
8744 * tree-ssa-sink.c (statement_sink_location): Improve killing
8745 stmt detection and properly handle self-assignments.
8746
b112d513
CB
87472013-05-21 Christian Bruel <christian.bruel@st.com>
8748
55805e54
YR
8749 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
8750 spanning registers. LEAF_REG_REMAP is supported only for contiguous
b112d513
CB
8751 registers. Set register size out of the PARALLEL loop.
8752
14c2ec26
OE
87532013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
8754
8755 PR target/56547
8756 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
8757 (*fmasf4, *fmasf4_media): New insns.
8758
da734fa1
RS
87592013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
8760
8761 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
8762 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
8763 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
8764 (mips_idiv_insns): Update the comments to say that the returned
8765 instruction counts are in units of BASE_INSN_LENGTH.
8766 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
8767 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
8768 using 2 rather than 4 as the length of indirect MIPS16 and
8769 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
8770 length of a NOP. Don't divide MIPS16 lengths by 2.
8771 (mips16_split_long_branches): Assume a branch is long if the
8772 length is greater than 4 rather than 8.
8773 * config/mips/mips.md (length): Give MIPS16 lengths directly,
8774 rather than multiplying them by 2. Multiply instruction counts
8775 by BASE_INSN_LENGTH rather than 4.
8776 (*jump_mips16, tls_get_tp_mips16_<mode>)
8777 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
8778
13719e8b
RS
87792013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
8780
8781 * config/mips/mips.md (extended_mips16): Remove branch case.
8782 (length): Remove duplicated extended_mips16 test.
8783
c3850d14
RS
87842013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
8785
8786 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
8787
8da2e059
RS
87882013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
8789
8790 * recog.h (Recog_data): Rename to...
8791 (recog_data_d): ...this.
8792 (recog_data): Update accordingly.
8793 * recog.c (recog_data): Likewise.
8794 * reload.c (save_recog_data): Likewise.
8795 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
8796 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
8797
2df013f3
JB
87982013-05-17 Julian Brown <julian@codesourcery.com>
8799
8800 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
8801 found in a REG_EQUAL note, invalidate it.
8802
371e77e3 88032013-05-17 Easwaran Raman <eraman@google.com>
933f507d
ER
8804
8805 * tree-ssa-reassoc.c (find_insert_point): New function.
8806 (insert_stmt_after): Likewise.
8807 (get_def_stmt): Likewise.
8808 (ensure_ops_are_available): Likewise.
8809 (not_dominated_by): Likewise.
8810 (rewrite_expr_tree): Do not move statements beyond what is
8811 necessary. Remove call to swap_ops_for_binary_stmt...
8812 (reassociate_bb): ... and move it here.
8813 (build_and_add_sum): Assign UIDs for new statements.
8814 (linearize_expr): Likewise.
8815 (do_reassoc): Renumber gimple statement UIDs.
8816
e01c7cca
JH
88172013-05-17 Jan Hubicka <jh@suse.cz>
8818
8819 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
8820 weakrefs.
8821 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
e2420687
UB
8822 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
8823 weakrefs.
e01c7cca
JH
8824 (output_weakrefs): Update.
8825
c3272a92
PCC
88262013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
8827 Martin Jambor <mjambor@suse.cz>
8828
8829 PR middle-end/57276
8830 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
8831 value that corresponds to the given aggval is found in values vector.
8832
11c2aa39
UB
88332013-05-17 Uros Bizjak <ubizjak@gmail.com>
8834
8835 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
8836 sse, sse2, sse3, ssse3 and sse4a flags to options.
8837
abecc8c6
DM
88382013-05-17 David Malcolm <dmalcolm@redhat.com>
8839
8840 * gengtype-state.c: (s_expr_writer): New class, to handle
8841 prettifying of output layout of s-expressions.
8842 (state_writer): New class, to write out gtype.state.
8843 (state_written_type_count): Move this variable into member data of
8844 state_writer.
8845 (s_expr_writer::s_expr_writer): New code: constructor for new class
8846 (state_writer::state_writer(): ditto
8847 (s_expr_writer::write_new_line): New function
8848 (s_expr_writer::write_any_indent): ditto
8849 (s_expr_writer::begin_s_expr): ditto
8850 (s_expr_writer::end_s_expr): ditto
8851 (write_state_fileloc): convert to method of state_writer...
8852 (state_writer:: write_state_fileloc): ...and use methods of
8853 s_expr_writer to write indentation into the gtype.state output file
8854 to visually represent the hierarchical structure of the list
8855 structures
8856 (write_state_fields): ditto, renaming to...
8857 (state_writer::write_state_fields)
8858 (write_state_a_string): ditto, renaming to...
8859 (state_writer::write_state_a_string)
8860 (write_state_string_option): ditto, renaming to...
8861 (state_writer::write_state_string_option)
8862 (write_state_type_option): ditto, renaming to...
8863 (state_writer::write_state_type_option)
8864 (write_state_nested_option): ditto, renaming to...
8865 (state_writer::write_state_nested_option)
8866 (write_state_option): ditto, renaming to...
8867 (state_writer::write_state_option)
8868 (write_state_options): ditto, renaming to...
8869 (state_writer::write_state_options)
8870 (write_state_lang_bitmap): ditto, renaming to...
8871 (state_writer::write_state_lang_bitmap)
8872 (write_state_version): ditto, renaming to...
8873 (state_writer::write_state_version)
8874 (write_state_scalar_type): ditto, renaming to...
8875 (state_writer::write_state_scalar_type)
8876 (write_state_string_type): ditto, renaming to...
8877 (state_writer::write_state_string_type)
8878 (write_state_undefined_type): ditto, renaming to...
8879 (state_writer::write_state_undefined_type)
8880 (write_state_struct_union_type): ditto, renaming to...
8881 (state_writer::write_state_struct_union_type)
8882 (write_state_struct_type): ditto, renaming to...
8883 (state_writer::write_state_struct_type)
8884 (write_state_user_struct_type): ditto, renaming to...
8885 (state_writer::write_state_user_struct_type)
8886 (write_state_lang_struct_type): ditto, renaming to...
8887 (state_writer::write_state_lang_struct_type)
8888 (write_state_param_struct_type): ditto, renaming to...
8889 (state_writer::write_state_param_struct_type)
8890 (write_state_pointer_type): ditto, renaming to...
8891 (state_writer::write_state_pointer_type)
8892 (write_state_array_type): ditto, renaming to...
8893 (state_writer::write_state_array_type)
8894 (write_state_gc_used): ditto, renaming to...
8895 (state_writer::write_state_gc_used)
8896 (write_state_common_type_content): ditto, renaming to...
8897 (state_writer::write_state_common_type_content)
8898 (write_state_type): ditto, renaming to...
8899 (state_writer::write_state_type)
8900 (write_state_pair_list): ditto, renaming to...
8901 (state_writer::write_state_pair_list)
8902 (write_state_pair): ditto, renaming to...
8903 (state_writer::write_state_pair)
8904 (write_state_typedefs): ditto, renaming to...
8905 (state_writer::write_state_typedefs)
8906 (write_state_structures): ditto, renaming to...
8907 (state_writer::write_state_structures)
8908 (write_state_param_structs): ditto, renaming to...
8909 (state_writer::write_state_param_structs)
8910 (write_state_variables): ditto, renaming to...
8911 (state_writer::write_state_variables)
8912 (write_state_srcdir): ditto, renaming to...
8913 (state_writer::write_state_srcdir)
8914 (write_state_files_list): ditto, renaming to...
8915 (state_writer::write_state_files_list)
8916 (write_state_languages): ditto, renaming to...
8917 (state_writer::write_state_languages)
8918 (write_state): create a state_writer instance and use it when
8919 writing out the state file
8920
d6545f29
MS
89212013-05-17 Mike Stump <mikestump@comcast.net>
8922
816a3f73 8923 PR rtl-optimization/57304
d6545f29
MS
8924 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
8925 accessing DF_REF_REAL_LOC.
8926
38c821cf
JJ
89272013-05-17 Jakub Jelinek <jakub@redhat.com>
8928
8929 PR rtl-optimization/57281
8930 PR rtl-optimization/57300
8931 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
8932 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
8933 what the other splitter did if the registers are dead.
8934
2a293391
RB
89352013-05-17 Richard Biener <rguenther@suse.de>
8936
8937 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
8938 MEM_REF offsets.
8939
17042d2b
JJ
89402013-05-17 Jakub Jelinek <jakub@redhat.com>
8941
8942 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
8943 linking.
8944
5b115c1f
MP
89452013-05-17 Marek Polacek <polacek@redhat.com>
8946
11c2aa39
UB
8947 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
8948 length when doing non-zero store of storing '\0' to '\0'.
5b115c1f 8949
52d84413
JJ
89502013-05-17 Jakub Jelinek <jakub@redhat.com>
8951
68119618
JJ
8952 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
8953 vect_external_def oprnd1 with loop_vinfo, try to emit
8954 optional cast, negation and and stmts on the loop preheader
8955 edge instead of into the pattern def seq.
8956
52d84413
JJ
8957 PR tree-optimization/57051
8958 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
8959 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
8960
17b962bd
NC
89612013-05-16 Nick Clifton <nickc@redhat.com>
8962
8963 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
8964 (rl78_is_naked_func): New function.
56aefbf7
UB
8965 (rl78_expand_prologue): Skip prologue generation for naked functions.
8966 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
17b962bd
NC
8967 * doc/extend.texi (naked): Add RL78 to the list of processors
8968 that supports this attribute.
8969
b1a0f84e
JL
89702013-05-16 Jeff Law <law@redhat.com>
8971
8972 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
8973
af0e415b
UB
89742013-05-16 Uros Bizjak <ubizjak@gmail.com>
8975
8976 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
8977 cache parameters using detect_caches_amd also for CYRIX,
8978 NSC and TM2 signatures.
8979
19db293a
UB
89802013-05-16 Uros Bizjak <ubizjak@gmail.com>
8981 Dzianis Kahanovich <mahatma@eu.by>
8982
8983 PR target/45359
8984 PR target/46396
8985 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
8986 VIA/Centaur processors and determine their cache parameters
8987 using detect_caches_amd.
8988
251a41b9
TJ
89892013-05-16 Teresa Johnson <tejohnson@google.com>
8990
8991 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
8992 (rtl_verify_edges): New function.
8993 (rtl_verify_bb_insns): Ditto.
8994 (rtl_verify_bb_pointers): Ditto.
8995 (rtl_verify_bb_insn_chain): Ditto.
8996 (rtl_verify_fallthru): Ditto.
8997 (rtl_verify_bb_layout): Ditto.
8998 (rtl_verify_flow_info_1): Outline checks into new functions.
8999 (rtl_verify_flow_info): Ditto.
9000
f14540b6
SE
90012013-05-16 Steve Ellcey <sellcey@imgtec.com>
9002
9003 * cfghooks.c (copy_bbs): Add update_dominance argument.
9004 * cfghooks.h (copy_bbs): Update prototype.
9005 * tree-cfg.c (gimple_duplicate_sese_region):
9006 Add update_dominance argument.
9007 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
9008 * tree-ssa-loop-ch.c (copy_loop_headers): Update
9009 gimple_duplicate_sese_region call.
9010 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
9011 Update copy_bbs call.
9012 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
9013 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
9014
7e9a3abb
JJ
90152013-05-16 Jakub Jelinek <jakub@redhat.com>
9016
9017 * tree-vectorizer.h (NUM_PATTERNS): Increment.
9018 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
9019 vect_recog_rotate_pattern.
9020 (vect_recog_rotate_pattern): New function.
9021
427b248d
JM
90222013-05-16 Jason Merrill <jason@redhat.com>
9023
9024 * Makefile.in (LLINKER): New variable.
9025 (mostlyclean): Remove link mutex.
9026 * configure.ac: Handle --enable-link-mutex.
9027 * lock-and-run.sh: New script.
9028
b871e3d2
RR
90292013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9030
9031 PR target/19599
9032 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
9033 for NULL decl.
9034
ce858126
RO
90352013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9036
9037 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
9038
798d3d04
GY
90392013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
9040
9041 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
9042 * config/arm/arm.c (next_consecutive_mem): New function.
9043 (gen_movmem_ldrd_strd): Likewise.
9044 * config/arm/arm.md (movmemqi): Update condition and code.
9045 (unaligned_loaddi, unaligned_storedi): New patterns.
9046
0baddc45
RO
90472013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9048
9049 * config.gcc: Obsolete *-*-solaris2.9*.
9050 * doc/install.texi (Specific, *-*-solaris2*): Document it.
9051
aa9d5bcf
RB
90522013-05-16 Richard Biener <rguenther@suse.de>
9053
9054 * passes.c (init_optimization_passes): Move pass_parallelize_loops
9055 earlier, after GRAPHITE transforms and IV canonicalization.
9056
5a0f4dd3
JJ
90572013-05-16 Jakub Jelinek <jakub@redhat.com>
9058
9059 * omp-low.c (extract_omp_for_data): For collapsed loops,
9060 if at least one of the loops is known at compile time to
9061 iterate zero times, set count to 0.
9062 (expand_omp_regimplify_p): New function.
9063 (expand_omp_for_generic): For collapsed loops, if at least
9064 one of the loops isn't known to iterate at least once,
9065 add runtime check with setting count to 0.
9066 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
9067 For unsigned types if it isn't known at compile time that
9068 the loop will iterate at least once, add runtime check to bypass
9069 the whole loop if initial condition isn't true.
9070
e3753785
NS
90712013-05-16 Nathan Sidwell <nathan@codesourcery.com>
9072
9073 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
9074
43bb4dd1
MG
90752013-05-16 Marc Glisse <marc.glisse@inria.fr>
9076
9077 PR middle-end/57286
9078 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
9079 transformations to avoid an infinite loop.
9080
3571dde6
MP
90812013-05-16 Marek Polacek <polacek@redhat.com>
9082
9083 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
9084
b8b3f0ca
LE
90852013-05-15 Leif Ekblad <leif@rdos.net>
9086
9087 * config/i386/i386.c (ix86_decompose_address): Use
9088 DEFAULT_TLS_SEG_REG to access TLS segment register.
9089 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
9090 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
9091 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
9092
e299a383
RS
90932013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
9094
9095 PR target/57260
9096 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
9097 sibling calls to functions that would normally be lazily bound,
9098 unless $gp is call-clobbered.
9099
e7208ea3
UB
91002013-05-15 Uros Bizjak <ubizjak@gmail.com>
9101
19db293a 9102 * config/i386/i386.c (ix86_option_override_internal): Update
e7208ea3 9103 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
5d280e2b
UB
9104 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
9105 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
e7208ea3
UB
9106 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
9107 of TARGET_3DNOW.
9108 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
9109
e7413f3d
AS
91102013-05-15 Andreas Schwab <schwab@suse.de>
9111
9112 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
9113 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
9114 third operand.
9115
ad4db775
TJ
91162013-05-15 Teresa Johnson <tejohnson@google.com>
9117
9118 * loop-unroll.c (report_unroll_peel): Check decision before
9119 emitting unroll/peel message.
9120
af205f67
TJ
91212013-05-15 Teresa Johnson <tejohnson@google.com>
9122
9123 * function.h (has_bb_partition): New rtl_data flag.
9124 (bb_reorder_complete): Ditto.
9125 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
9126 instead of flag_reorder_blocks_and_partition.
9127 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
9128 with some enhancements.
9129 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
9130 * bb-reorder.c (connect_traces): Check for has_bb_partition
9131 instead of flag_reorder_blocks_and_partition.
9132 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
9133 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
9134 verify_hot_cold_block_grouping.
9135 (partition_hot_cold_basic_blocks): Set has_bb_partition.
9136
9adcfa3c
RR
91372013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9138
9139 PR target/19599
9140 * config/arm/predicates.md (call_insn_operand): New predicate.
9141 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
9142 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
9143 if insn is not a tail call.
9144 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
9145 registers.
9146 * config/arm/arm.h (enum reg_class): New caller save register class.
9147 (REG_CLASS_NAMES): Likewise.
9148 (REG_CLASS_CONTENTS): Likewise.
9149 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
9150 without decls.
9151
ccb3ad87
RB
91522013-05-15 Richard Biener <rguenther@suse.de>
9153
9154 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
9155 of MSG_OPTIMIZED_LOCATIONS.
9156 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
9157 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
9158 message.
9159 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
9160 of MSG_OPTIMIZED_LOCATIONS.
9161 (execute_vect_slp): Likewise.
9162 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
9163 (vect_create_cond_for_alias_checks): Likewise.
9164 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
9165 (vect_recog_widen_mult_pattern): Likewise.
9166 (vect_recog_widen_sum_pattern): Likewise.
9167 (vect_recog_over_widening_pattern): Likewise.
9168 (vect_recog_widen_shift_pattern): Likewise.
9169 (vect_recog_vector_vector_shift_pattern): Likewise.
9170 (vect_recog_divmod_pattern): Likewise.
9171 (vect_recog_mixed_size_cond_pattern): Likewise.
9172 (vect_recog_bool_pattern): Likewise.
9173 (vect_pattern_recog_1): Likewise.
9174
48b1474e
MJ
91752013-05-15 Martin Jambor <mjambor@suse.cz>
9176
9177 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
9178 non-functions to builtin_unreachable.
9179 * ipa-inline-transform.c (inline_call): Do not assert estimates were
9180 correct when new direct edges were discovered.
9181
9de04252
MJ
91822013-05-15 Martin Jambor <mjambor@suse.cz>
9183
9184 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
9185 header, print symbol order instead of node uid, print more information
9186 about indirect edge targets.
9187 (ipa_make_edge_direct_to_target): Print symbol order instead of node
9188 uids.
9189 (ipa_make_edge_direct_to_target): Likewise.
9190 (remove_described_reference): Likewise.
9191 (propagate_controlled_uses): Likewise.
9192 (ipa_print_node_params): Also print symbol order.
9193 (ipcp_transform_function): Print symbol order instead of node uids.
9194 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
9195 (cgraph_get_create_real_symbol_node): Likewise.
9196 * ipa-cp.c (print_lattice): Likewise.
9197 (print_all_lattices): Likewise.
9198 (determine_versionability): Likewise.
9199 (initialize_node_lattices): Likewise.
9200 (estimate_local_effects): Likewise.
9201 (update_profiling_info): Likewise.
9202 (create_specialized_node): Likewise.
9203 (perhaps_add_new_callers): Likewise.
9204 (decide_about_value): Likewise.
9205 (decide_whether_version_node): Likewise.
9206 (identify_dead_nodes): Likewise.
9207 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
9208 (dump_inline_summary): Likewise.
9209 (estimate_node_size_and_time): Likewise.
9210 (inline_analyze_function): Likewise.
9211 * ipa-inline.c (report_inline_failed_reason): Likewise.
9212 (want_early_inline_function_p): Likewise.
9213 (edge_badness): Likewise.
9214 (update_edge_key): Likewise.
9215 (inline_small_functions): Likewise. Add dumping of order to two other
9216 dumps.
9217 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
9218 instead of node uids.
9219 (propagate_pure_const): Likewise.
9220 (propagate_pure_const): Likewise.
9221 * ipa-utils.c (dump_cgraph_node_set): Likewise.
9222 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
9223 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
9224 of node uids.
9225 * tree-pretty-print.c (dump_function_header): Likewise.
9226 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
9227 Print symbol order instead of node uids.
9228
1dd03b91
AK
92292013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9230
9231 * config/s390/s390.c (s390_register_move_cost): Don't impose the
9232 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
9233
fdf6a7b9
RB
92342013-05-15 Richard Biener <rguenther@suse.de>
9235
9236 PR tree-optimization/57275
9237 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
9238 return value for fail to do runtime alias checks for gather loads.
9239
2d6e4603
JH
92402013-05-15 Jan Hubicka <jh@suse.cz>
9241
9242 PR lto/57038
9243 PR lto/47375
e7208ea3
UB
9244 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
9245 weakrefs are not external.
9246 (lto_symtab_merge_decls): Fix thinko when dealing with
9247 non-lto_symtab decls.
2d6e4603
JH
9248 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
9249 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
9250 * varpool.c (dump_varpool_node): Dump more flags.
9251
83f44b39
GG
92522013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
9253
9254 * config/i386/i386.c (processor_alias_table): Add instruction
9255 FSGSBASE for AMD bdver3 architecture.
9256
2e55d062
JJ
92572013-05-14 Jakub Jelinek <jakub@redhat.com>
9258
9259 * tree.c (warn_deprecated_use): Print file:line using locus color.
9260 * diagnostic.c (diagnostic_report_current_module): Print file:line
9261 and file:line:column using locus color.
9262
0bfdb81e
MS
92632013-05-14 Mike Stump <mikestump@comcast.net>
9264
9265 * gdbinit.in: Add __null.
9266
a508ef22
MS
92672013-05-14 Mike Stump <mikestump@comcast.net>
9268
9269 * recog.h: Rename struct recog_data to Recog_data.
9270 * recog.c: Likewise.
9271 * reload.c (can_reload_into): Likewise.
9272 * config/picochip/picochip.c: Likewise.
9273
e7180acb
MS
92742013-05-14 Mike Stump <mikestump@comcast.net>
9275
9276 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
9277
61216c26
SB
92782013-05-14 Steven Bosscher <steven@gcc.gnu.org>
9279
fd6beed4
SB
9280 * resource.h (struct resources): Remove unch_memory member.
9281 (CLEAR_RESOURCE): Don't clear unch_memory.
9282 * resource.c (mark_referenced_resources): Don't set it.
9283 (mark_set_resources): Likewise.
9284 (mark_target_live_regs): Don't clear it.
9285 (init_resource_info): Likewise.
9286 * reorg.c (resource_conflicts_p): Don't compare it.
9287 (redundant_insn): Don't set it.
9288
61216c26
SB
9289 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
9290 Remove prototypes.
9291 * emit-rtl.c (next_label): Remove unused function.
9292 (skip_consecutive_labels, link_cc0_insns): Move to ...
9293 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
9294 only place where these functions are used, and make them static.
9295
418d1b87
MG
92962013-05-14 Marc Glisse <marc.glisse@inria.fr>
9297
9298 * fold-const.c (fold_negate_expr): Handle vectors.
9299 (fold_truth_not_expr): Make it static.
9300 (fold_invert_truthvalue): New static function.
9301 (invert_truthvalue_loc): Handle vectors. Do not call
9302 fold_truth_not_expr directly.
9303 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
9304 <TRUTH_NOT_EXPR>: Do not cast to boolean.
9305 (fold_comparison): Handle vector constants.
9306 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
9307 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
9308 * tree.h (fold_truth_not_expr): Remove declaration.
9309
fc21784d
JG
93102013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
9311
9312 * config/aarch64/aarch64-simd.md
9313 (aarch64_vcond_internal<mode>): Rename to...
9314 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
9315 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
9316 float modes. Clarify all iterator modes.
9317 (vcond<mode><mode>): Use new name for vcond expanders.
9318 (vcond<v_cmp_result><mode>): Likewise.
9319 (vcondu<mode><mode>: Likewise.
9320 * config/aarch64/iterators.md (VDQF_COND): New.
9321
d4c52634
MG
93222013-05-14 Marc Glisse <marc.glisse@inria.fr>
9323
9324 PR bootstrap/57266
9325 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
9326 variable for the shift amount. Check that we shift by non-negative
9327 amounts.
9328
2b261262
CLT
93292013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
9330
9331 PR target/42017
9332 * config/arm/arm.h (EPILOGUE_USES): Only return true
9333 for LR_REGNUM after epilogue_completed.
9334
12211b99 93352013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
6e022d7b
JR
9336
9337 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
e7208ea3 9338 is error_mark_node.
6e022d7b 9339
56cf7859
RO
93402013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9341
9342 PR target/57261
9343 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
9344 and Solaris 11+/x86 with gld.
9345 * configure: Regenerate.
9346
75776c6d
JJ
93472013-05-14 Jakub Jelinek <jakub@redhat.com>
9348
9349 * expmed.c (expand_shift_1): Canonicalize rotates by
9350 constant bitsize / 2 to bitsize - 1.
7f998021 9351 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
75776c6d
JJ
9352 case ROTATERT>: Likewise.
9353
9354 Revert:
9355 2013-05-10 Jakub Jelinek <jakub@redhat.com>
9356
9357 * config/i386/i386.md (rotateinv): New code attr.
9358 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
9359 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
9360 roll $31, %eax, etc.
9361
df35498a
RB
93622013-05-14 Richard Biener <rguenther@suse.de>
9363
9364 PR middle-end/57235
9365 * tree-eh.c (sink_clobbers): Give up for successors with
9366 multiple predecessors and no virtual uses.
9367
cc6e7ece
EB
93682013-05-14 Eric Botcazou <ebotcazou@adacore.com>
9369
9370 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
9371 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
9372
f778dd4d
JJ
93732013-05-14 Jakub Jelinek <jakub@redhat.com>
9374
9375 PR middle-end/57251
9376 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
9377 the case when both op0 and op1 have VOIDmode.
9378
bad4df9b
KP
93792013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
9380
9381 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
9382 in multiply-accumulate mode.
9383
56f3e9ac
GW
93842013-05-13 Guozhi Wei <carrot@google.com>
9385
9386 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
9387
a3d7ab92
KT
93882013-05-13 Kai Tietz <ktietz@redhat.com>
9389
9390 PR target/56975
9391 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
e7208ea3 9392 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
a3d7ab92 9393 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
e7208ea3 9394 * config/i386/i386.c (ix86_option_override_internal): Likewise.
a3d7ab92
KT
9395 (ix86_expand_prologue): Likewise.
9396 (ix86_expand_split_stack_prologue): Likewise.
9397 (legitimate_pic_address_disp_p): Likewise.
9398 (legitimize_pic_address): Likewise.
9399 (legitimize_tls_address): Likewise.
9400 (legitimize_pe_coff_symbol): Likewise.
9401 (output_pic_addr_const): Likewise.
9402 (construct_plt_address): Likewise.
9403 (ix86_expand_call): Likewise.
9404 (x86_output_mi_thunk): Likewise.
9405 (x86_function_profiler): Likewise.
9406
c59b7e28
SN
94072013-05-13 Sofiane Naci <sofiane.naci@arm.com>
9408
9409 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
9410 similar switch cases.
9411 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
9412 (aarch64_simd_mov_to_<mode>low): Delete.
9413 (aarch64_simd_mov_to_<mode>high): Delete.
9414 (move_lo_quad_<mode>): Add w<-r alternative.
9415 (aarch64_simd_move_hi_quad_<mode>): Likewise.
9416 (aarch64_simd_mov_from_*): Update type attribute.
9417 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
9418 statement.
9419
5f28524a
JH
94202013-05-13 Jan Hubicka <jh@suse.cz>
9421
9422 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
9423 * config/i386/i386.c (ix86_compute_frame_layout,
e7208ea3
UB
9424 ix86_expand_epilogue, emit_i387_cw_initialization,
9425 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
9426 ix86_local_alignment): Fix use of size/speed predicates.
5f28524a 9427
ae6fa899
JJ
94282013-05-13 Jakub Jelinek <jakub@redhat.com>
9429
9430 PR tree-optimization/45216
9431 PR tree-optimization/57157
9432 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
9433 the (-Y) & (B - 1) variant if OP is |.
9434 * expmed.c (expand_shift_1): For rotations by const0_rtx just
9435 return shifted. Use (-op1) & (prec - 1) as other_amount
9436 instead of prec - op1.
9437
4502fe8d
MJ
94382013-05-13 Martin Jambor <mjambor@suse.cz>
9439
9440 PR middle-end/42371
9441 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
9442 (ipa_constant_data): New type.
9443 (ipa_jump_func): Use ipa_constant_data to hold information about
9444 constant jump functions.
9445 (ipa_get_jf_constant): Adjust to jump function type changes.
9446 (ipa_get_jf_constant_rdesc): New function.
9447 (ipa_param_descriptor): New field controlled_uses.
9448 (ipa_get_controlled_uses): New function.
9449 (ipa_set_controlled_uses): Likewise.
9450 * ipa-ref.h (ipa_find_reference): Declare.
9451 * ipa-prop.c (ipa_cst_ref_desc): New type.
9452 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
9453 changes.
9454 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
9455 New parameter cs. Adjust all callers.
9456 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
9457 (remove_described_reference): New function.
9458 (jfunc_rdesc_usable): Likewise.
9459 (try_make_edge_direct_simple_call): Decrement controlled use count,
9460 attempt to remove reference if it hits zero.
9461 (combine_controlled_uses_counters): New function.
9462 (propagate_controlled_uses): Likewise.
9463 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
9464 (ipa_edge_duplication_hook): Duplicate reference descriptions.
9465 (ipa_print_node_params): Print described use counter.
9466 (ipa_write_jump_function): Adjust to jump function type changes.
9467 (ipa_read_jump_function): New parameter CS, pass it to
9468 ipa_set_jf_constant. Adjust caller.
9469 (ipa_write_node_info): Stream controlled use count
9470 (ipa_read_node_info): Likewise.
9471 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
9472 asserting.
9473 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
9474 count. Remove cloning-added reference if it reaches zero.
9475 * ipa-ref.c (ipa_find_reference): New function.
9476
0864bfc2
GG
94772013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
9478
e7208ea3 9479 * config/i386/i386.c (processor_target_table): Modified default
0864bfc2
GG
9480 alignment values for AMD BD and BT architectures.
9481
640bfeb2
MG
94822013-05-13 Marc Glisse <marc.glisse@inria.fr>
9483
9484 * tree-vect-generic.c (uniform_vector_p): Move ...
9485 * tree.c (uniform_vector_p): ... here.
9486 * tree.h (uniform_vector_p): Declare it.
9487 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
9488 into a scalar.
9489
3a60f32b
JJ
94902013-05-13 Jakub Jelinek <jakub@redhat.com>
9491
198fe1bf
JJ
9492 PR tree-optimization/57230
9493 * tree-ssa-strlen.c (handle_char_store): Record length for
9494 array store from STRING_CST.
9495
3a60f32b
JJ
9496 PR tree-optimization/57230
9497 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
9498 check.
9499
566be57c
JR
95002013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
9501
9502 * config/epiphany/epiphany.c (epiphany_init): Check size of
9503 NUM_MODES_FOR_MODE_SWITCHING.
9504 (epiphany_expand_prologue):
9505 Remove CONFIG_REGNUM initial value handling code.
9506 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
9507 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
2710a27a 9508 (emit_set_fp_mode, epiphany_mode_after): Likewise.
566be57c
JR
9509 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
9510 Don't return 1 for FP_MODE_NONE.
9511 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
9512 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
9513 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
9514 * config/epiphany/epiphany.md (save_config): New pattern.
9515
0f2c2331
UB
95162013-05-12 Uros Bizjak <ubizjak@gmail.com>
9517
9518 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
9519
5b3f93c7
UB
95202013-05-10 Uros Bizjak <ubizjak@gmail.com>
9521
9522 * config/i386/i386.md (memory): Handle sseishft1.
9523 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
9524 (*vec_extractv2di_1): Ditto.
9525
1f873f0e
VM
95262013-05-10 Vladimir Makarov <vmakarov@redhat.com>
9527
9528 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
9529 saved registers.
9530
341427fa 95312013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
d7de6455
SH
9532
9533 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
9534 Add mthumb/march=armv7-a multilib.
9535 Add mthumb/march=armv7-r multilib.
9536 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
9537
9e69bdde
RC
95382013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
9539
9540 * config/v850/t-rtems: Add more multilibs.
9541
9ff09a22
RB
95422013-05-10 Richard Biener <rguenther@suse.de>
9543
9544 PR tree-optimization/57214
9545 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
9546 not propagate from SSA names that occur in abnormal PHI nodes.
9547
a5e0cd1d
MG
95482013-05-10 Marc Glisse <marc.glisse@inria.fr>
9549
9550 * stor-layout.c (element_precision): New function.
9551 * machmode.h (element_precision): Declare it.
9552 * tree.c (build_minus_one_cst): New function.
9553 (element_precision): Likewise.
9554 * tree.h (build_minus_one_cst): Declare new function.
9555 (element_precision): Likewise.
9556 * fold-const.c (operand_equal_p): Use element_precision.
9557 (fold_binary_loc): Handle vector types.
9558 * convert.c (convert_to_integer): Use element_precision.
9559 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
9560 separately.
9561
cb2558bc
RS
95622013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
9563
9564 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
9565 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
9566 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
9567 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
9568 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
9569 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
9570 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
9571 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
9572 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
9573 (Uuw8): New constraints.
9574 (Usb4): Move into alphabetical order.
9575 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
9576 (sd8_operand, ub8_operand, uw8_operand): New predicates.
9577 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
9578 previously unnamed patterns.
9579 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
9580 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
9581 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
9582 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
9583 of set_attr_alternative/if_then_else. Use extended_mips16 instead
9584 of specific lengths.
9585
cb3b8d33
JJ
95862013-05-10 Jakub Jelinek <jakub@redhat.com>
9587
6f93c008
JJ
9588 * config/i386/i386.md (rotateinv): New code attr.
9589 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
9590 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
9591 roll $31, %eax, etc.
9592
cb3b8d33
JJ
9593 PR tree-optimization/45216
9594 PR tree-optimization/57157
9595 * tree-ssa-forwprop.c (simplify_rotate): New function.
9596 (ssa_forward_propagate_and_combine): Call it.
9597
afb119be
RB
95982013-05-10 Richard Biener <rguenther@suse.de>
9599
9600 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
9601 disable peeling when we version for aliasing.
9602 (vector_alignment_reachable_p): Honor explicit user alignment.
9603 (vect_supportable_dr_alignment): Likewise.
9604 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
9605 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
9606 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
9607 then peeling to arrange for the cost-model check to come first.
9608
01ae4861
AM
96092013-05-10 Alan Modra <amodra@gmail.com>
9610
9611 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
9612 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
9613 * configure: Regenerate.
9614
ebc9a431
AM
96152013-05-10 Alan Modra <amodra@gmail.com>
9616
9617 PR target/55033
9618 * varasm.c (default_elf_select_section): Move !DECL_P check..
9619 (get_named_section): ..to here before calling get_section_name.
9620 Adjust assertion.
9621 (default_section_type_flags): Add DECL_P check.
9622 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
9623 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
9624
d4bca93c
JR
96252013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
9626
9627 * config/epiphany/epiphany.c (epiphany_expand_prologue):
9628 When using gen_stack_adjust_str with a register offset, add a
9629 REG_FRAME_RELATED_EXPR note.
9630
60ca9a65
UB
96312013-05-09 Uros Bizjak <ubizjak@gmail.com>
9632
9633 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
9634 (*vec_extractv4si_zext_mem): Ditto.
9635 (*vec_extractv2di): Add 0->x and x->x alternatives.
9636 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
9637 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
9638
a3409c02
JM
96392013-05-09 Jason Merrill <jason@redhat.com>
9640
0138d6b2
JM
9641 N3639 C++1y VLA support
9642 * gimplify.c (gimplify_vla_decl): Don't touch an existing
9643 DECL_VALUE_EXPR.
9644
a3409c02
JM
9645 * tree.c (build_constructor_va): New.
9646 * tree.h: Declare it.
9647
66e6b990
MJ
96482013-05-09 Martin Jambor <mjambor@suse.cz>
9649
9650 PR lto/57084
9651 * gimple-fold.c (canonicalize_constructor_val): Call
9652 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
9653
64cfa6c0
JH
96542013-05-09 Jan Hubicka <jh@suse.cz>
9655 Richard Biener <rguenther@suse.de>
9656
9657 PR lto/54095
9658 * symtab.c (symtab_make_decl_local): Do not add private names.
9659
c3167b00
JH
96602013-05-09 Jan Hubicka <jh@suse.cz>
9661
9662 PR lto/54095
9663 * symtab.c (insert_to_assembler_name_hash): Handle clones.
9664 (unlink_from_assembler_name_hash): Likewise.
9665 (symtab_prevail_in_asm_name_hash, symtab_register_node,
9666 symtab_unregister_node, symtab_initialize_asm_name_hash,
9667 change_decl_assembler_name): Update.
9668
12dc6974
SN
96692013-05-09 Sofiane Naci <sofiane.naci@arm.com>
9670
9671 * config/aarch64/aarch64.md: New movtf split.
9672 (*movtf_aarch64): Update.
9673 (aarch64_movdi_tilow): Handle TF modes and rename to
9674 aarch64_movdi_<mode>low.
9675 (aarch64_movdi_tihigh): Handle TF modes and rename to
9676 aarch64_movdi_<mode>high
9677 (aarch64_movtihigh_di): Handle TF modes and rename to
9678 aarch64_mov<mode>high_di
9679 (aarch64_movtilow_di): Handle TF modes and rename to
9680 aarch64_mov<mode>low_di
9681 (aarch64_movtilow_tilow): Remove spurious whitespace.
9682 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
9683 splits.
9684 (aarch64_print_operand): Update.
9685
227eb343
AM
96862013-05-09 Alan Modra <amodra@gmail.com>
9687
9688 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
9689 powerpc64le.
9690 * configure: Regenerate.
9691
0b013847
UB
96922013-05-08 Uros Bizjak <ubizjak@gmail.com>
9693
9694 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
9695 splitter preparation statements.
9696 * config/i386/sse.md (*vec_extract* splitters): Ditto.
9697 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
9698 adjust_address_nv.
9699
1dc3d6e9
BS
97002013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9701
9702 * gimple-ssa-strength-reduction.c (count_candidates): Change
9703 return value to int.
9704 (analyze_candidates_and_replace): Change type of length to int.
9705
e61e7d28
UB
97062013-05-08 Uros Bizjak <ubizjak@gmail.com>
9707
9708 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
9709 (*vec_extract<mode>): Use VI12_128 mode iterator.
9710 (*vec_extract<mode>_mem): Ditto.
9711 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
9712 attribute.
9713
4fbfcf44
DN
97142013-05-08 Diego Novillo <dnovillo@google.com>
9715
9716 PR bootstrap/54659
9717
9718 Revert:
4fbfcf44
DN
9719 2012-08-17 Diego Novillo <dnovillo@google.com>
9720
e61e7d28
UB
9721 PR bootstrap/54281
9722 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
9723 * config.in: Regenerate.
9724 * configure: Regenerate.
9725 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4fbfcf44 9726
702d8703
JH
97272013-05-08 Jan Hubicka <jh@suse.cz>
9728
9729 PR lto/54095
9730 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
9731 * cgraph.h (symtab_node_base): Add unique_name.
9732 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
9733 input_overwrite_node, input_varpool_node): Stream unique_name.
9734 * cgraphclones.c (cgraph_create_virtual_clone,
9735 cgraph_function_versioning): Set unique_name.
9736 * ipa.c (function_and_variable_visibility): Set unique_name.
9737
8b28cf47
BS
97382013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9739
9740 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
9741 (alloc_cand_and_find_basis): Restrict conditional candidate
9742 processing to CAND_MULTs.
9743
e86074fd
JH
97442013-05-08 Jan Hubicka <jh@suse.cz>
9745
9746 PR lto/54095
9747 lto-symtab.c (lto_symtab_symbol_p): New function.
9748 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
9749 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
9750 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
9751 Skip static symbols.
9752
44398cbe
PC
97532013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
9754
9755 PR tree-optimization/57200
9756 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
9757 Only call inform if the preceding warning_at returns true.
9758
f6bc1c4a
HS
97592013-05-07 Han Shen <shenhan@google.com>
9760
9761 * cfgexpand.c (record_or_union_type_has_array_p): New function.
9762 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
9763 * common.opt (fstack-protector-strong): New option.
9764 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
9765 * doc/invoke.texi (Optimization Options): Document
9766 "-fstack-protector-strong".
9767 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
9768
4ffecb1f
SB
97692013-05-06 Steven Bosscher <steven@gcc.gnu.org>
9770
9771 * config/mips/mips.c (mips_machine_reorg2): Return 0.
9772
5a107a0f
VM
97732013-05-07 Vladimir Makarov <vmakarov@redhat.com>
9774
9775 * ira.c (update_equiv_regs): Add insn having equiv memory even if
9776 it is not lhs of the insn.
9777 (setup_reg_equiv): Remove insn having equiv memory which it is not
9778 lhs of the insn.
9779 * lra-constraints.c (process_address): Try to improve generation
9780 code for address base + disp.
9781 (lra_constraints): Make correct the code for checking insn setting
9782 up backward equivalence. Remove insn only if it is in the init
9783 insn list.
9784 * lra-eliminations.c (update_reg_eliminate): Change return value.
9785 (lra_eliminate): Use the result.
9786
3f5783ea
UB
97872013-05-07 Uros Bizjak <ubizjak@gmail.com>
9788
9789 * config/i386/sse.md (ssescalarnummask): New mode attribute.
9790 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
9791 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
9792 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
9793 register target operands.
9794 (*vec_extractv8hi_sse2): New pattern.
9795 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
9796 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
9797 (*vec_extract<mode>_mem): New insn and split pattern.
9798
8a5800b8
CL
97992013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
9800
9801 * config/arm/arm.c (arm_asan_shadow_offset): New function.
9802 (TARGET_ASAN_SHADOW_OFFSET): Define.
9803 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
9804 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
9805
7bf55a70
BS
98062013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9807
9808 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
9809 (incr_vec_index): Return -1 if increment not found.
9810 (create_add_on_incoming_edge): Assert if increment not found.
9811 (record_increment): Limit number of increments recorded.
9812 (all_phi_incrs_profitable): Return false if an increment not found.
9813 (replace_profitable_candidates): Don't process increments that were
9814 not recorded.
9815 (analyze_candidates_and_replace): Limit size of incr_vec.
9816
3f8825c0
RB
98172013-05-07 Richard Biener <rguenther@suse.de>
9818
9819 * calls.c (special_function_p): setjmp-like functions are leaf.
9820 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
9821 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
9822
fd4842cd
SN
98232013-05-07 Sofiane Naci <sofiane.naci@arm.com>
9824
9825 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
9826 (aarch64_simd_mov<mode>): New expander.
9827 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
9828 (aarch64_simd_mov_to_<mode>high): Likewise.
9829 (aarch64_simd_mov_from_<mode>low): Likewise.
9830 (aarch64_simd_mov_from_<mode>high): Likewise.
9831 (aarch64_dup_lane<mode>): Update.
9832 (aarch64_dup_lanedi): New instruction pattern.
9833 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
9834 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
9835
a7a7d10e
BS
98362013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9837
9838 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
9839 (replace_mult_candidate): Remove unnecessary argument; remove
9840 unnecessary parameter from call to introduce_cast_before_cand.
9841 (replace_unconditional_candidate): Remove unnecessary parameter
9842 from call to replace_mult_candidate.
9843 (replace_conditional_candidate): Likewise.
9844 (insert_initializers): Use make_temp_ssa_name.
9845 (introduce_cast_before_cand): Remove unnecessary argument; use
9846 make_temp_ssa_name.
9847 (replace_one_candidate): Remove unnecessary argument; remove
9848 unnecessary parameter from calls to introduce_cast_before_cand.
9849 (replace_profitable_candidates): Remove unnecessary parameters
9850 from calls to replace_one_candidate.
9851
29105868
BS
98522013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9853
9854 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
9855 phi def as possibly hiding a basis for a CAND_ADD whose operands
9856 have been commuted in the analysis.
9857 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
9858
4095f9fa
N
98592013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
9860
9861 * config/aarch64/aarch64.md
9862 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
9863 shift value between 0-4.
9864
39e843e8
RB
98652013-05-07 Richard Biener <rguenther@suse.de>
9866
9867 * double-int.h (rshift): New overload.
9868 * double-int.c (rshift): New function.
9869 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
9870 (create_reference_ops_from_ref): Remove.
9871 (vn_reference_insert): Use shared ops for constructing the
9872 reference and copy it.
9873
0a1a83cb
RB
98742013-05-07 Richard Biener <rguenther@suse.de>
9875
9876 PR middle-end/57190
9877 * tree-eh.c (sink_clobbers): Properly propagate
9878 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
9879
43303d6f
JJ
98802013-05-07 Jakub Jelinek <jakub@redhat.com>
9881
ba7e83f8
JJ
9882 PR tree-optimization/57149
9883 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
9884 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
9885 collect_phi_def_edges, execute_late_warn_uninitialized): Use
9886 uninit_undefined_value_p instead of ssa_undefined_value_p.
9887
43303d6f
JJ
9888 PR debug/57184
9889 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
9890 for modifier == EXPAND_INITIALIZER.
9891
14523c25
AB
98922013-05-07 Anton Blanchard <anton@samba.org>
9893
9894 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
9895 for powerpc64 little endian.
9896 * configure: Regenerate.
9897
cb7c8be9
GS
98982013-05-06 Graham Stott <grahams@btinternet.com>
9899
9900 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
9901 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
9902 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
9903 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
9904
99052013-05-06 Graham Stott <grahams@btinternet.com>
a8fd4225
GS
9906
9907 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
9908 codes which allow non-lvalues.
9909
9a0ee7b0
MG
99102013-05-06 Marc Glisse <marc.glisse@inria.fr>
9911
9912 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
9913 components are all 1s.
9914 (integer_minus_onep): New function.
9915 * tree.h (integer_minus_onep): Declare it.
9916 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
9917 integer_minus_onep instead of integer_all_onesp.
9918
f2c17ea9
OE
99192013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
9920
9921 PR target/52933
9922 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
9923 variations of these patterns.
9924
f75e6a51
UB
99252013-05-06 Uros Bizjak <ubizjak@gmail.com>
9926
9927 * config/i386/i386.md (isa): Add x64_sse4 member.
9928 (enabled): Handle x64_sse4.
9929 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
9930 instruction for 64bit SSE4_1 targets. Update insn attributes.
9931 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
9932 instruction for SSE4_1 targets. Update insn attributes.
9933 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
9934 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
9935 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
9936 const_1 selector.
9937 (*vec_extractv4si): Rename from *sse4_1_pextrd.
9938 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
9939 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
9940
a986d468
OE
99412013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
9942
9943 PR target/57108
9944 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
9945
382522cb
MK
99462013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
9947
9948 * final.c (do_assembler_dialects): Don't handle curly braces and
9949 vertical bar escaped by % as dialect delimiters.
9950 (output_asm_insn): Print curly braces and vertical bar if escaped
9951 by % and ASSEMBLER_DIALECT defined.
9952 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
9953 * doc/tm.texi: Regenerated.
9954
fb0d5c60
SB
99552013-05-06 Steven Bosscher <steven@gcc.gnu.org>
9956
fb0d5c60
SB
9957 * config/mips/mips.c: Include tree-pass.h.
9958 (mips_reorg): Split in pre- and post-dbr_schedule parts.
9959 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
9960 (pass_mips_machine_reorg2): New machine specific pass.
9961 (insert_pass_mips_machine_reorg2): New pass plugin definition.
9962 (mips_option_override): Register the new pass.
9963 * rtl.h (cleanup_barriers): Remove prototype.
9964 (dbr_schedule): Likewise.
9965 * jump.c (cleanup_barriers): Make static.
9966 * reorg.c (dbr_schedule): Likewise.
9967
aa06a978
RB
99682013-05-06 Richard Biener <rguenther@suse.de>
9969
9970 PR tree-optimization/57185
9971 * tree-parloops.c (add_field_for_reduction): Handle anonymous
9972 SSA names properly.
9973
0b953bec
UB
99742013-05-06 Uros Bizjak <ubizjak@gmail.com>
9975
9976 PR target/57106
9977 * config/i386/i386.c (add_parameter_dependencies): Add dependence
9978 between "first_arg" and "insn", not "last" and "insn".
9979
28708525
WS
99802013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9981
9982 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
9983 (find_candidates_in_block): Re-enable slsr_process_phi.
9984 (create_phi_basis): Fix double counting of candidate adjustment.
9985
0107dca2
RB
99862013-05-06 Richard Biener <rguenther@suse.de>
9987
9988 PR middle-end/57147
9989 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
9990 the edge is also fallthru, preserve it and just clear the
9991 abnormal flag.
9992 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
9993 also complex, preserve that and just clear the fallthru flag.
9994 * tree-inline.c (update_ssa_across_abnormal_edges): Also
9995 update virtual operands.
9996
470d4d13
AM
99972013-05-06 Alan Modra <amodra@gmail.com>
9998
9999 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
10000 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
10001 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
10002 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
10003 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
10004 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
10005
8f1dbf8d
AM
100062013-05-06 Alan Modra <amodra@gmail.com>
10007
10008 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
10009 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
10010 (DEFAULT_ASM_ENDIAN): Define.
10011 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
10012 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
10013 Update -K PIC clause from sysv4.h.
10014 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
10015 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
10016
54890767
AM
100172013-05-06 Alan Modra <amodra@gmail.com>
10018
10019 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
10020 twice for little-endian.
10021 (ashrdi3_no_power, ashrdi3): Support little-endian.
10022
2353515d
OE
100232013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
10024
10025 PR target/55303
10026 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
10027 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
10028 related expanders.
10029 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
10030 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
10031 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
10032 New predicates.
10033
33e67557
SB
100342013-05-05 Steven Bosscher <steven@gcc.gnu.org>
10035 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10036
10037 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
10038 * config/pa/pa.opt: Make mbig-switch a no-op.
10039 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
10040 (CASE_VECTOR_MODE): Always return SImode.
10041 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
10042 for the !TARGET_BIG_SWITCH case.
10043 * config/pa/pa-linux.h: Likewise.
10044 * config/pa/pa-openbsd.h: Likewise.
10045 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
10046 * config/pa/pa.md (short_jump): Remove define_insn.
10047 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
10048 (casesi0): Remove define_insn.
10049 (type): Remove btable_branch.
10050 (pa_combine_type): Likewise.
10051 (in_nullified_branch_delay): Likewise.
10052 (in_call_delay): Likewise.
10053 (define_delay): Likewise.
10054 (define_insn_reservation "Z3"): Likewise.
10055 (define_insn_reservation "Z4"): Likewise.
10056 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
10057 (pa_adjust_insn_length): Remove adjustment for btable branches.
10058 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
10059 and mno-big-switch
10060
3095685e
UB
100612013-05-05 Uros Bizjak <ubizjak@gmail.com>
10062
10063 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
10064 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
10065 Add m->r,x alternatives.
10066 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
10067 splitters using SWI48x mode iterator.
10068 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
10069 TARGET_64BIT. Add m->x alternative.
10070 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
10071 Add o->x alternative. Enable for TARGET_SSE.
10072 (sse_storeq): Remove expander.
10073 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
10074 with memory input operand.
10075 (*vec_extractv2di_1 splitter): New.
10076 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
10077 * config/i386/i386.md (ssevecmodelower): New mode attribute.
10078
4b36ae28
SB
100792013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
10080
10081 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
10082 (INT_LOWPART): Delete.
10083 (extract_MB): Adjust.
10084 (extract_ME): Adjust.
10085 (print_operand): Adjust.
10086
da226db2
SB
100872013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
10088
10089 * config/rs6000/predicates.md (reg_or_add_cint_operand,
10090 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
10091 (reg_or_logical_cint_operand, easy_fp_constant,
10092 logical_const_operand): Delete "CONST_DOUBLE" case.
10093 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
10094 "HOST_BITS_PER_WIDE_INT == 64" test.
3095685e 10095 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
da226db2
SB
10096 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
10097 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
10098 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
10099 test.
10100 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
10101 CONST_DOUBLE DImode/VOIDmode case.
10102 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
10103 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
10104 CONST_DOUBLE VOIDmode case.
10105 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
10106 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
10107 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
10108 Delete CONST_DOUBLE case.
10109 (splitters for mov FMOVE64 const_double): Delete
10110 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
10111 "HOST_BITS_PER_WIDE_INT >= 64" test.
10112 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
10113 case.
10114 (mov DI const_double): Delete.
10115
40de22d6
JJ
101162013-05-04 Jakub Jelinek <jakub@redhat.com>
10117
10118 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
10119 on op shows all bits zero in mode of a lowpart subreg, return zero.
10120
5ec6aff2
MM
101212013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
10122
10123 PR target/57150
10124 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
10125 to save TFmode registers and DImode to save TImode registers for
10126 caller save operations.
10127 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
10128 mark being partially clobbered since they only use the first
10129 double word.
10130
10131 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
10132 and TDmode only use the upper 64-bits of each VSX register.
10133
2cefad90
BS
101342013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10135
10136 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
10137 (find_candidates_in_block): Disable slsr_process_phi.
10138
d6d7eee1
GW
101392013-05-03 Guozhi Wei <carrot@google.com>
10140
10141 * coverage.c (coverage_obj_init): Move the construction of gcov
3095685e
UB
10142 constructor to ...
10143 (build_init_ctor): ... here.
d6d7eee1 10144
9b92d12b
BS
101452013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10146
10147 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
10148 (slsr_cand_d): Redefine def_phi.
10149 (stride_status, phi_adjust_status, count_phis_status): New enums.
10150 (find_phi_def): New.
10151 (find_basis_for_base_expr): New.
10152 (find_basis_for_candidate): Handle hidden bases.
10153 (alloc_cand_and_find_basis): Handle phi candidates.
10154 (slsr_process_phi): New.
10155 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
10156 (create_mul_imm_cand): Likewise.
10157 (create_add_ssa_cand): Exclude phi base candidates.
10158 (create_add_imm_cand): Likewise.
10159 (slsr_process_cast): Likewise.
10160 (slsr_process_copy): Likewise.
10161 (find_candidates_in_block): Handle phi candidates.
10162 (dump_candidate): Likewise.
10163 (unconditional_cands): Delete.
10164 (unconditional_cands_with_known_stride_p): Delete.
10165 (phi_dependent_cand_p): New.
10166 (cand_increment): Handle phi-dependent candidates.
10167 (replace_dependent): Delete.
10168 (replace_mult_candidate): New.
10169 (replace_unconditional_candidate): New.
10170 (incr_vec_index): Move to avoid forward reference.
10171 (create_add_on_incoming_edge): New.
10172 (create_phi_basis): New.
10173 (replace_dependents): Delete.
10174 (replace_conditional_candidate): New.
10175 (phi_add_costs): New.
10176 (replace_uncond_cands_and_profitable_phis): New.
10177 (record_increment): Handle phi adjustments.
10178 (record_phi_increments): New.
10179 (record_increments): Handle phi adjustments.
10180 (phi_incr_cost): New.
10181 (lowest_cost_path): Handle phis.
10182 (total_savings): Likewise.
10183 (analyze_increments): Likewise.
10184 (ncd_with_phi): New.
10185 (ncd_of_cand_and_phis): New.
10186 (nearest_common_dominator_for_cands): Handle phi increments.
10187 (all_phi_incrs_profitable): New.
10188 (replace_profitable_candidates): Handle phi-dependent candidates.
10189 (analyze_candidates_and_replace): Likewise.
10190
68f073d4
TJ
101912013-05-03 Teresa Johnson <tejohnson@google.com>
10192
10193 PR bootstrap/57154
10194 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
10195 do not exceed REG_BR_PROB_BASE.
10196
a4ee7cb9
JL
101972013-05-03 Jeff Law <law@redhat.com>
10198
ade67f70 10199 PR tree-optimization/57144
a4ee7cb9
JL
10200 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
10201 operand of the condition will bit into the new type when eliminating
10202 a cast feeding a condition.
10203
47954c4e
JJ
102042013-05-03 Jakub Jelinek <jakub@redhat.com>
10205
10206 PR rtl-optimization/57130
3095685e
UB
10207 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
10208 of COMPARE as in_code to the recursive call if needed.
47954c4e 10209
3c21604f
UB
102102013-05-03 Uros Bizjak <ubizjak@gmail.com>
10211
10212 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
10213 (enabled): Handle new members.
10214 * config/i386/sse.md (*vec_concatv2si): Merge from
10215 *vec_concatv2si_sse2 and vec_concatv2si_sse.
10216 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
10217
12211b99 102182013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
95c03b36
JR
10219
10220 PR tree-optimization/57027
10221 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
10222 for fnms opportunity, check we got the prerequisite kind
10223 of tree / gimple before using accessor functions.
10224
07bfc9ec
RB
102252013-05-03 Richard Biener <rguenther@suse.de>
10226
10227 * double-int.h (lshift): New overload without precision
10228 and arith argument.
10229 (operator *=, operator +=, operator -=): Move ...
10230 * double-int.c (operator *=, operator +=, operator -=): ... here
10231 and implement more efficiently.
10232 (mul_double_with_sign): Remove.
10233 (lshift_double): Adjust to take unsinged shift argument, push
10234 dispatching code to callers.
10235 (mul_double_wide_with_sign): Add early out for callers that
10236 are not interested in high parts or overflow.
10237 (lshift): New function.
10238 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
10239 dispatch code here.
10240 (lrotate, rrotate): Use logical shifts.
10241 * expr.c (get_inner_reference): Use lshift.
10242 * fixed-value.c (do_fixed_divide): Likewise.
10243 * tree-dfa.c (get_ref_base_and_extent): Likewise.
10244 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
10245 (indirect_refs_may_alias_p): Likewise.
10246 (stmt_kills_ref_p_1): Likewise.
10247
7769bb64
VP
102482013-05-03 Vidya Praveen <vidyapraveen@arm.com>
10249
10250 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
10251
1d0c8e5c
VP
102522013-05-03 Vidya Praveen <vidyapraveen@arm.com>
10253
10254 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
10255 scalar form of FABD instruction.
10256
f15feaf9
VM
102572013-05-02 Vladimir Makarov <vmakarov@redhat.com>
10258
10259 * lra-constraints.c (process_alt_operands): Add checking alt
10260 number to choose the best alternative.
10261
d90e76d4
RB
102622013-05-02 Richard Biener <rguenther@suse.de>
10263
10264 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
10265 bitmap and its handling.
10266 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
10267
9f8e7a96
RB
102682013-05-02 Richard Biener <rguenther@suse.de>
10269
10270 PR middle-end/57140
10271 * tree-inline.c (copy_loops): Properly handle removed loops.
10272 (copy_cfg_body): Mark destination loops for fixup if source
10273 loops needed fixup.
10274
f3a81b39
GY
102752013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
10276
10277 PR target/56732
10278 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
10279 generating simple_return for naked functions.
10280
7b920a9a
MJ
102812013-05-02 Martin Jambor <mjambor@suse.cz>
10282
10283 PR middle-end/56988
10284 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
10285 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
10286 flags match.
10287 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
10288 ipa_agg_replacement_value structures.
10289 (known_aggs_to_agg_replacement_list): Likewise.
10290 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
10291 (read_agg_replacement_chain): Likewise.
10292 (ipcp_transform_function): Also check that by_ref flags match.
10293
2c41c19d
RB
102942013-05-02 Richard Biener <rguenther@suse.de>
10295
10296 * graphds.h (struct graph): Add obstack member.
10297 * graphds.c (new_graph): Initialize obstack and allocate
10298 vertices from it.
10299 (add_edge): Allocate edge from the obstack.
3c21604f 10300 (free_graph): Free the obstack instead of all edges and vertices.
2c41c19d 10301
8b47039c
TJ
103022013-05-02 Teresa Johnson <tejohnson@google.com>
10303
10304 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
10305 divides.
10306 * cfg.c (update_bb_profile_for_threading): Ditto.
10307 * tree-inline.c (copy_bb): Ditto.
10308 (copy_edges_for_bb): Ditto.
10309 (initialize_cfun): Ditto.
10310 (copy_cfg_body): Ditto.
10311 (expand_call_inline): Ditto.
10312 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
10313 (estimate_node_size_and_time): Ditto.
10314 (inline_merge_summary): Ditto.
10315 * cgraphclones.c (cgraph_clone_edge): Ditto.
10316 (cgraph_clone_node): Ditto.
10317 * sched-rgn.c (compute_dom_prob_ps): Ditto.
10318 (compute_trg_info): Ditto.
10319
da65928c
IB
103202013-05-02 Ian Bolton <ian.bolton@arm.com>
10321
10322 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
10323 S reg when fp attribute set.
10324 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
10325
add3c965
IB
103262013-05-02 Ian Bolton <ian.bolton@arm.com>
10327
10328 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
10329 New pattern.
10330 (*and_one_cmplsi3_compare0_uxtw): Likewise.
10331 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
10332 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
10333
fdd43ac4
RB
103342013-05-02 Richard Biener <rguenther@suse.de>
10335
10336 * tree-scalar-evolution.c (scev_info_hasher): Remove.
10337 (struct instantiate_cache_entry): New type.
10338 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
10339 (struct instantiate_cache_type): New type.
10340 (set_instantiated_value, get_instantiated_value): Remove.
10341 (get_instantiated_value_entry): New function.
10342 (instantiate_scev_name): Use the new cache and adjust.
10343 (instantiate_scev_poly): Adjust.
10344 (instantiate_scev_binary): Likewise.
10345 (instantiate_array_ref): Likewise.
10346 (instantiate_scev_convert): Likewise.
10347 (instantiate_scev_not): Likewise.
10348 (instantiate_scev_3): Likewise.
10349 (instantiate_scev_2): Likewise.
10350 (instantiate_scev_r): Likewise.
10351 (instantiate_scev): Likewise.
10352 (resolve_mixers): Likewise.
10353
36ff9dfb
VM
103542013-05-01 Vladimir Makarov <vmakarov@redhat.com>
10355
10356 PR target/57091
10357 * lra-constraints.c (best_small_class_operands_num): Remove.
10358 (process_alt_operands): Remove small_class_operands_num. Take
10359 small classes operands into losers and only if the operand is not
10360 matched. Modify debugging output.
10361 (curr_insn_transform): Remove best_small_class_operands_num.
10362 Print insn name.
10363
36054fab
JG
103642013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
10365
10366 * config/aarch64/aarch64-builtins.c
10367 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
10368 * config/aarch64/aarch64-simd-builtins.def
10369 (reduc_splus_): Add new modes.
10370 (reduc_uplus_): New.
10371 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
10372 (reduc_uplus_v4sf): Likewise.
10373 (reduc_splus_v4sf): Likewise.
10374 (aarch64_addv<mode>): Likewise.
10375 (reduc_uplus_<mode>): Likewise.
10376 (reduc_splus_<mode>): Likewise.
10377 (aarch64_addvv2di): Likewise.
10378 (reduc_uplus_v2di): Likewise.
10379 (reduc_splus_v2di): Likewise.
10380 (aarch64_addvv2si): Likewise.
10381 (reduc_uplus_v2si): Likewise.
10382 (reduc_splus_v2si): Likewise.
10383 (reduc_<sur>plus_<mode>): New.
10384 (reduc_<sur>plus_v2di): Likewise.
10385 (reduc_<sur>plus_v2si): Likewise.
10386 (reduc_<sur>plus_v4sf): Likewise.
10387 (aarch64_addpv4sf): Likewise.
10388 * config/aarch64/arm_neon.h
10389 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
10390 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
10391 add UNSPEC_SADDV, UNSPEC_UADDV.
10392 (SUADDV): New.
10393 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
10394
6dce23a8
JG
103952013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
10396
10397 * config/aarch64/arm_neon.h
10398 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
10399
1598945b
JG
104002013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
10401
10402 * config/aarch64/aarch64-builtins
10403 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
10404
998eaf97
JG
104052013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
10406
10407 * config/aarch64/aarch64-simd-builtins.def
10408 (reduc_smax_): New.
10409 (reduc_smin_): Likewise.
10410 (reduc_umax_): Likewise.
10411 (reduc_umin_): Likewise.
10412 (reduc_smax_nan_): Likewise.
10413 (reduc_smin_nan_): Likewise.
10414 (fmax): Remove.
10415 (fmin): Likewise.
10416 (smax): Update for V2SF, V4SF and V2DF modes.
10417 (smin): Likewise.
10418 (smax_nan): New.
10419 (smin_nan): Likewise.
10420 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
10421 (<su><maxmin><mode>3): ...This, refactor.
10422 (s<maxmin><mode>3): New.
10423 (<maxmin_uns><mode>3): Likewise.
10424 (reduc_<maxmin_uns>_<mode>): Refactor.
10425 (reduc_<maxmin_uns>_v4sf): Likewise.
10426 (reduc_<maxmin_uns>_v2si): Likewise.
10427 (aarch64_<fmaxmin><mode>: Remove.
10428 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
10429 new builtin names.
10430 (vmin<q>_f<32,64>): Likewise.
10431 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
10432 (FMAXMIN): New.
10433 (su): Add mappings for smax, smin, umax, umin.
10434 (maxmin): New.
10435 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
10436 (FMAXMIN): Rename as...
10437 (FMAXMIN_UNS): ...This.
10438 (maxminv): Remove.
10439 (fmaxminv): Likewise.
10440 (fmaxmin): Likewise.
10441 (maxmin_uns): New.
10442 (maxmin_uns_op): Likewise.
10443
bd11644e
JG
104442013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
10445
10446 * config/aarch64/arm_neon.h
10447 (vac<ge, gt><sd>_f<32, 64>): Rename to...
10448 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
10449 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
10450
75dd5ace
JG
104512013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
10452
10453 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
10454 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
10455
7c19979f
JG
104562013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
10457
10458 * config/aarch64/aarch64-simd.md
10459 (vcond<mode>_internal): Handle special cases for constant masks.
10460 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
10461 (vcondu<mode><mode>): Likewise.
10462 (vcond<v_cmp_result><mode>): New.
10463
bb60efd9
JG
104642013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
10465
10466 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
10467 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
10468 * config/aarch64/aarch64-simd-builtins.def
10469 (cmeq): Update to BUILTIN_VALLDI.
10470 (cmgt): Likewise.
10471 (cmge): Likewise.
10472 (cmle): Likewise.
10473 (cmlt): Likewise.
10474 * config/aarch64/arm_neon.h
10475 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
10476 to builtins or C as appropriate.
10477
889b9412
JG
104782013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
10479
10480 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
10481 (cmgeu): ...This.
10482 (cmhi): Rename to...
10483 (cmgtu): ...This.
10484 * config/aarch64/aarch64-simd.md
10485 (simd_mode): Add SF.
10486 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
10487 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
10488 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
10489 (cstore<mode>_neg): ...This.
10490 * config/aarch64/iterators.md
10491 (VALLF): new.
10492 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
10493 (COMPARISONS): New.
10494 (UCOMPARISONS): Likewise.
10495 (optab): Add missing comparisons.
10496 (n_optab): New.
10497 (cmp_1): Likewise.
10498 (cmp_2): Likewise.
10499 (CMP): Likewise.
10500 (cmp): Remove.
10501 (VCMP_S): Likewise.
10502 (VCMP_U): Likewise.
10503 (V_cmp_result): Add DF, SF modes.
10504 (v_cmp_result): Likewise.
10505 (v): Likewise.
10506 (vmtype): Likewise.
10507 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
10508
0a7dbb76
GY
105092013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
10510
10511 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
10512 define_insn to define_insn_and_split.
10513 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
10514 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
10515 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
10516 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
10517 (thumb2_negscc): Likewise.
10518
fb614ca6
GY
105192013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
10520
10521 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
10522
9e64a0bf
GY
105232013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
10524
10525 * config/arm/thumb2.md: Remove trailing whitespaces.
10526
d6b28156
RS
105272013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
10528
10529 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
10530 Use gen_int_mode rather than GEN_INT.
10531
f91674c3
L
105322013-04-30 H.J. Lu <hongjiu.lu@intel.com>
10533
b0dec607 10534 * value-prof.c (stream_in_histogram_value): Remove the strayed
f91674c3
L
10535 debug_gimple_stmt.
10536
3551257c
RB
105372013-04-30 Richard Biener <rguenther@suse.de>
10538
10539 PR middle-end/57122
3c21604f 10540 * cfghooks.c (split_edge): Properly check for the loop latch edge.
3551257c 10541
4c1aff1c
RB
105422013-04-30 Richard Biener <rguenther@suse.de>
10543
10544 PR middle-end/57107
10545 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
10546
54b8379a
AB
105472013-04-30 Andrey Belevantsev <abel@ispras.ru>
10548
10549 PR rtl-optimization/56957
10550 PR rtl-optimization/57105
54b8379a
AB
10551 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
10552 variable. Use just INSN_UID for determining whether an insn
10553 should be only disconnected from the insn stream.
10554 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
10555
abc27962
JJ
105562013-04-30 Jakub Jelinek <jakub@redhat.com>
10557
10558 PR tree-optimization/57104
10559 * tsan.c (instrument_expr): Don't instrument accesses to
10560 DECL_HARD_REGISTER VAR_DECLs.
10561
0fc822d0
RB
105622013-04-30 Richard Biener <rguenther@suse.de>
10563
10564 * function.h (loops_for_fn): New inline function.
10565 (set_loops_for_fn): Likewise.
10566 * cfgloop.h (place_new_loop): Add struct function parameter.
10567 (get_loop): Likewise.
10568 (get_loops): Likewise.
10569 (number_of_loops): Likewise.
10570 (fel_next): Adjust.
10571 (fel_init): Likewise.
10572 * cfg.c (get_loop_copy): Adjust.
10573 * cfgloop.c (flow_loops_dump): Likewise.
10574 (record_loop_exits): Likewise.
10575 (verify_loop_structure): Likewise.
10576 * cfgloopanal.c (mark_irreducible_loops): Likewise.
10577 (estimate_reg_pressure_cost): Likewise.
10578 (mark_loop_exit_edges): Likewise.
10579 * cfgloopmanip.c (place_new_loop): Likewise.
10580 (add_loop): Likewise.
10581 (duplicate_loop): Likewise.
10582 * graph.c (draw_cfg_nodes): Likewise.
10583 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
10584 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
10585 (extract_affine_chrec): Likewise.
10586 (build_scop_iteration_domain): Likewise.
10587 * graphite.c (graphite_initialize): Likewise.
10588 * ira-build.c (create_loop_tree_nodes): Likewise.
10589 (more_one_region_p): Likewise.
10590 (rebuild_regno_allocno_maps): Likewise.
10591 (mark_loops_for_removal): Likewise.
10592 (mark_all_loops_for_removal): Likewise.
10593 (remove_unnecessary_regions): Likewise.
10594 (ira_build): Likewise.
10595 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
10596 * loop-init.c (fix_loop_structure): Likewise.
10597 (gate_rtl_move_loop_invariants): Likewise.
10598 (gate_rtl_unswitch): Likewise.
10599 (gate_rtl_unroll_and_peel_loops): Likewise.
10600 (rtl_doloop): Likewise.
10601 * lto-streamer-in.c (input_cfg): Likewise.
10602 * lto-streamer-out.c (output_cfg): Likewise.
10603 * modulo-sched.c (sms_schedule): Likewise.
10604 * predict.c (tree_estimate_probability): Likewise.
10605 (tree_estimate_probability_driver): Likewise.
10606 (estimate_loops): Likewise.
10607 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
10608 (move_sese_region_to_fn): Likewise.
10609 (debug_loop_num): Likewise.
10610 * tree-chrec.c (chrec_evaluate): Likewise.
10611 (hide_evolution_in_other_loops_than_loop): Likewise.
10612 (chrec_component_in_loop_num): Likewise.
10613 (reset_evolution_in_loop): Likewise.
10614 (evolution_function_is_invariant_rec_p): Likewise.
10615 * tree-if-conv.c (main_tree_if_conversion): Likewise.
10616 * tree-inline.c (copy_loops): Likewise.
10617 (copy_cfg_body): Likewise.
10618 (tree_function_versioning): Likewise.
10619 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
10620 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
10621 Likewise.
10622 (add_to_evolution_1): Likewise.
10623 (scev_const_prop): Likewise.
10624 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
10625 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
10626 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
10627 (tree_ssa_lim_initialize): Likewise.
10628 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
10629 (verify_loop_closed_ssa): Likewise.
10630 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
10631 (tree_ssa_loop_im): Likewise.
10632 (tree_ssa_loop_unswitch): Likewise.
10633 (tree_vectorize): Likewise.
10634 (check_data_deps): Likewise.
10635 (tree_ssa_loop_ivcanon): Likewise.
10636 (tree_ssa_loop_bounds): Likewise.
10637 (tree_complete_unroll): Likewise.
10638 (tree_complete_unroll_inner): Likewise.
10639 (tree_parallelize_loops): Likewise.
10640 (tree_ssa_loop_prefetch): Likewise.
10641 (tree_ssa_loop_ivopts): Likewise.
10642 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
10643 * tree-vectorizer.c (vectorize_loops): Likewise.
10644
37953bd3
MF
106452013-04-29 Mike Frysinger <vapier@gentoo.org>
10646
10647 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
10648 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
10649 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
10650 with EABI_LINK_SPEC.
10651
f9ed28db
UB
106522013-04-29 Uros Bizjak <ubizjak@gmail.com>
10653
10654 PR target/44578
10655 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
10656 alternative.
10657
deca73f5
VM
106582013-04-29 Vladimir Makarov <vmakarov@redhat.com>
10659
10660 PR target/57097
37953bd3 10661 * lra-constraints.c (process_alt_operands): Discourage a bit more
deca73f5
VM
10662 using memory for pseudos. Print cost dump for alternatives.
10663 Modify cost values for conflicts with early clobbers.
10664 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
10665
fdca7d03
UB
106662013-04-29 Uros Bizjak <ubizjak@gmail.com>
10667
10668 PR target/57098
10669 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
10670
0b064172
IB
106712013-04-29 Ian Bolton <ian.bolton@arm.com>
10672
10673 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
10674 from/to S register.
10675 (movdi_aarch64): Support LDR/STR from/to D register.
10676
473cec55
IB
106772013-04-29 Ian Bolton <ian.bolton@arm.com>
10678
10679 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
10680 or higher by default.
10681
a6f30e66
RB
106822013-04-29 Richard Biener <rguenther@suse.de>
10683
10684 PR middle-end/57075
10685 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
10686 even if not adding abnormal edges for calls that can make
10687 abnormal gotos.
10688
0c2b2040
RB
106892013-04-29 Richard Biener <rguenther@suse.de>
10690
10691 PR middle-end/57103
10692 * tree-cfg.c (move_stmt_op): Fix condition under which to update
10693 TREE_BLOCK.
10694 (move_stmt_r): Remove redundant checking.
10695
f41f80f9
TJ
106962013-04-29 Teresa Johnson <tejohnson@google.com>
10697
10698 PR bootstrap/57077
10699 * basic-block.h (apply_scale): New function.
10700 (apply_probability): Use apply_scale.
10701 * gimple-streamer-in.c (input_bb): Ditto.
10702 * lto-streamer-in.c (input_cfg): Ditto.
10703 * lto-cgraph.c (merge_profile_summaries): Ditto.
10704 * tree-optimize.c (execute_fixup_cfg): Ditto.
fdca7d03 10705 * tree-inline.c (copy_bb): Update comment to use apply_scale.
f41f80f9
TJ
10706 (copy_edges_for_bb): Ditto.
10707 (copy_cfg_body): Ditto.
10708
315bbd2e
TV
107092013-04-29 Tom de Vries <tom@codesourcery.com>
10710
10711 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
10712 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
10713 (tail_merge_optimize): Handle current_loops == NULL.
10714
ebbd90d8
JL
107152013-04-26 Jeff Law <law@redhat.com>
10716
10717 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
10718 (simplify_cond_using_ranges): Generalize code to simplify
10719 COND_EXPRs where one argument is a constant and the other
10720 is an SSA_NAME created by an integral type conversion.
10721
8b9b57eb
KT
107222013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10723
10724 * config/arm/arm.md (store_minmaxsi): Use only when
10725 optimize_insn_for_size_p.
10726
9498e5dc
CB
107272013-04-29 Christian Bruel <christian.bruel@st.com>
10728
10729 PR target/57108
10730 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
10731
6093bc06
RB
107322013-04-29 Richard Biener <rguenther@suse.de>
10733
10734 PR middle-end/57089
fdca7d03
UB
10735 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
10736 loop tree make sure to schedule a fixup for the child as well.
6093bc06
RB
10737 (expand_omp_for_generic): Properly add loops.
10738 (expand_omp_for_static_nochunk): Likewise.
10739 (expand_omp_for_static_chunk): Likewise.
10740 (expand_omp_for): For the degenerate case fixup loops.
10741 (expand_omp_sections): Fix default bb placement in loops.
10742 (expand_omp_atomic_pipeline): Properly add loops.
10743
84aacbfd
KT
107442013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10745
10746 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
10747
8dee4479
TV
107482013-04-29 Tom de Vries <tom@codesourcery.com>
10749
10750 * tree-ssa-tail-merge.c: Update header comment.
10751
47934dc4
JG
107522013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
10753
10754 * config/aarch64/arm_neon.h
10755 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
10756 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
10757 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
10758 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
10759 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
10760 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
10761 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
10762 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
10763
384be29f
JG
107642013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
10765
10766 * config/aarch64/aarch64-simd.md
10767 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
10768 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
10769 fix_trunc, fixuns_trunc.
10770 (ftrunc<VDQF:mode>2): New.
10771 * config/aarch64/iterators.md (optab): Add fix, fixuns.
10772 (fix_trunc_optab): New.
10773
0386b123
JG
107742013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
10775
10776 * config/aarch64/aarch64-builtins.c
10777 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
10778 iceilf, lround, iroundf.
10779
00fcb892
UB
107802013-04-29 Uros Bizjak <ubizjak@gmail.com>
10781
10782 PR target/54349
10783 * config/i386/i386.h (enum ix86_tune_indices)
10784 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
10785 New, split from X86_TUNE_INTER_UNIT_MOVES.
10786 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
10787 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
10788 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
10789 (TARGET_INTER_UNIT_MOVES): Remove.
10790 * config/i386/i386.c (initial_ix86_tune_features): Update.
10791 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
10792 (ix86_expand_convert_uns_didf_sse): Use
10793 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
10794 (ix86_expand_vector_init_one_nonzero): Ditto.
10795 (ix86_expand_vector_init_interleave): Ditto.
10796 (inline_secondary_memory_needed): Return true for moves from SSE class
10797 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
10798 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
10799 * config/i386/constraints.md (Yi, Ym): Depend on
10800 TARGET_INTER_UNIT_MOVES_TO_VEC.
10801 (Yj, Yn): New constraints.
10802 * config/i386/i386.md (*movdi_internal): Change constraints of
10803 operand 1 from Yi to Yj and from Ym to Yn.
10804 (*movsi_internal): Ditto.
10805 (*movdf_internal): Ditto.
10806 (*movsf_internal): Ditto.
10807 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
10808 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
10809 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
10810 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
10811 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
10812 * config/i386/sse.md (movdi_to_sse): Ditto.
10813 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
10814 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
10815 TARGET_INTER_UNIT_MOVES.
10816 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
10817 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
10818 instead of TARGET_INTER_UNIT_MOVES.
10819 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
10820 operand 1 from Yi to Yj and from Ym to Yn.
10821
4c871069
JG
108222013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
10823
10824 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
10825 (float_truncate_hi_): Likewise.
10826 (float_extend_lo_): Likewise.
10827 (float_truncate_lo_): Likewise.
10828 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
10829 (aarch64_float_extend_lo_v2df): Likewise.
10830 (vec_unpacks_hi_v4sf): Likewise.
10831 (aarch64_float_truncate_lo_v2sf): Likewise.
10832 (aarch64_float_truncate_hi_v4sf): Likewise.
10833 (vec_pack_trunc_v2df): Likewise.
10834 (vec_pack_trunc_df): Likewise.
10835
1709ff9b
JG
108362013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
10837
10838 * config/aarch64/aarch64-builtins.c
10839 (aarch64_fold_builtin): Fold float conversions.
10840 * config/aarch64/aarch64-simd-builtins.def
10841 (floatv2si, floatv4si, floatv2di): New.
10842 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
10843 * config/aarch64/aarch64-simd.md
10844 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
10845 * config/aarch64/iterators.md (FLOATUORS): New.
10846 (optab): Add float, floatuns.
10847 (su_optab): Likewise.
10848
ce966824
JG
108492013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
10850
10851 * config/aarch64/aarch64-builtins.c
10852 (aarch64_builtin_vectorized_function): Use new names for
10853 fcvt builtins.
10854 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
10855 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
10856 (fcvtzu): Split as...
10857 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
10858 (fcvtas): Split as...
10859 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
10860 (fcvtau): Split as...
10861 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
10862 (fcvtps): Split as...
10863 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
10864 (fcvtpu): Split as...
10865 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
10866 (fcvtms): Split as...
10867 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
10868 (fcvtmu): Split as...
10869 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
10870 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
10871 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
10872 (lfrintnusf, lfrintnudf): Likewise.
10873 * config/aarch64/aarch64-simd.md
10874 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
10875 define_insn.
10876 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
10877 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
10878 (fcvt_pattern): Likewise.
10879
b9de24fe
JG
108802013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
10881
10882 * config/aarch64/aarch64-simd.md
10883 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
10884 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
10885
77a205be
JG
108862013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
10887
10888 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
10889 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
10890 (vrnd<a,m,n,p>_f32): Implement using builtins.
10891 (vrnd<i,x><q>_f<32, 64>): New.
10892
0659ce6f
JG
108932013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
10894
10895 * config/aarch64/aarch64-builtins.c
10896 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
10897 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
10898 (frintz): Rename to...
10899 (btrunc): ...this.
10900 (frintp): Rename to...
10901 (ceil): ...this.
10902 (frintm): Rename to...
10903 (floor): ...this.
10904 (frinti): Rename to...
10905 (nearbyint): ...this.
10906 (frintx): Rename to...
10907 (rint): ...this.
10908 (frinta): Rename to...
10909 (round): ...this.
10910 * config/aarch64/aarch64-simd.md
10911 (aarch64_frint<frint_suffix><mode>): Delete.
10912 (<frint_pattern><mode>2): Convert to insn.
10913 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
10914 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
10915 (frint_pattern): Likewise.
10916 (frint_suffix): Likewise.
10917
ea78906a
RB
109182013-04-29 Richard Biener <rguenther@suse.de>
10919
10920 PR tree-optimization/57081
10921 * loop-init.c: Include tree-flow.h.
10922 (loop_optimizer_finalize): Free number of iteration estimates.
10923 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
10924
baee1763
JJ
109252013-04-29 Jakub Jelinek <jakub@redhat.com>
10926
94dc5332
JJ
10927 PR tree-optimization/57083
10928 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
10929 non-singleton shift count range, zero extend low_bound for uns case.
10930
baee1763
JJ
10931 * config/i386/predicates.md (general_vector_operand): New predicate.
10932 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
10933 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
10934 if they aren't nonimmediate operands. If their original values
10935 satisfy const_vector_equal_evenodd_p, don't shift them.
10936 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
10937 predicates. For the SSE4.1 case force operands[{1,2}] into registers
10938 if not nonimmediate_operand.
10939 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
10940 instead of register_operand.
10941 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
10942
a9073727 109432013-04-28 Eric Botcazou <ebotcazou@adacore.com>
22ad5e0a
EB
10944
10945 * stor-layout.c (finalize_size_functions): Allocate a structure and
10946 reset cfun before dumping the functions.
10947
ba8011e6
JJ
109482013-04-27 Jakub Jelinek <jakub@redhat.com>
10949
d6fde69e
JJ
10950 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
10951
ba8011e6
JJ
10952 PR target/56866
10953 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
10954 use xop_pmacsdqh if uns_p.
10955 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
10956 the immediate rotate count.
10957
2c62cbaa
VM
109582013-04-26 Vladimir Makarov <vmakarov@redhat.com>
10959
10960 * rtl.h (struct rtx_def): Add comment for field jump.
10961 (LRA_SUBREG_P): New macro.
10962 * recog.c (register_operand): Check LRA_SUBREG_P.
10963 * lra.c (lra): Add note at the end of RTL code. Align non-empty
10964 stack frame.
10965 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
10966 (lra_final_code_change): Skip subreg change for operators.
10967 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
10968 if there are no operand changes.
10969 * lra-constraints.c (curr_insn_set): New.
10970 (match_reload): Set LRA_SUBREG_P.
10971 (emit_spill_move): Ditto.
10972 (check_and_process_move): Use curr_insn_set. Process only single
10973 set insns. Don't initialize sec_mem_p and change_p.
10974 (simplify_operand_subreg): Use LRA_SUBREG_P.
10975 (reg_in_class_p): New function.
10976 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
10977 of #ifdef. Add code to remove cycling.
10978 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
10979 non-null disp. Reload inner instead of disp when base and index
10980 are null. Try to put lo_sum into register.
10981 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
10982 (check_and_process_move): Move code for move cost check to
10983 simple_move_p. Remove equiv_substitution.
10984 (simple_move_p): New function.
10985 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
10986 curr_insn_set. Call check_and_process_move only for single set
10987 insns. Use the new function. Move call of check_and_process_move
10988 after operand equiv substitution and address process.
10989
e7d764f3
JJ
109902013-04-26 Jakub Jelinek <jakub@redhat.com>
10991
10992 PR go/57045
10993 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
10994 with nonlocal goto receivers or returns twice calls, ignore
10995 unininitialized values from abnormal edges to nl goto receiver
10996 or returns twice call.
10997
41e10689
JJ
109982013-04-26 Jakub Jelinek <jakub@redhat.com>
10999
11000 PR tree-optimization/57051
11001 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
11002 and VEC_RSHIFT_EXPR if shift count is a multiple of element
11003 bitsize.
11004
d7ed20db
RB
110052013-04-26 Richard Biener <rguenther@suse.de>
11006
11007 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
11008 (expand_omp_taskreg): Likewise. Mark loops for fixup.
11009 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
11010 (fixup_loop_arrays_after_move): New function.
11011 (move_sese_region_to_fn): Properly outline the loop tree parts
11012 of the SESE region.
11013
df93505e
UB
110142013-04-26 Uros Bizjak <ubizjak@gmail.com>
11015
11016 * config/i386/i386.md (type, unit): Fix long lines.
11017
dd366ec3
RB
110182013-04-26 Richard Biener <rguenther@suse.de>
11019
11020 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
11021 (lto-streamer-out.o): Likewise.
11022 * cfgloop.c (init_loops_structure): Export, add struct function
11023 argument and adjust.
11024 (flow_loops_find): Adjust.
11025 * cfgloop.h (enum loop_estimation): Add EST_LAST.
11026 (init_loops_structure): Declare.
11027 * lto-streamer-in.c: Include cfgloop.h.
11028 (input_cfg): Input the loop tree.
11029 * lto-streamer-out.c: Include cfgloop.h.
11030 (output_cfg): Output the loop tree.
11031 (output_struct_function_base): Do not drop PROP_loops.
11032
a9e0d843
RB
110332013-03-26 Richard Biener <rguenther@suse.de>
11034
11035 * tree-cfg.c (execute_build_cfg): Build the loop tree.
11036 (pass_build_cfg): Provide PROP_loops.
11037 (move_sese_region_to_fn): Remove loops that are outlined into fn
11038 for now.
11039 * tree-inline.c: Include cfgloop.h.
11040 (initialize_cfun): Do not drop PROP_loops.
11041 (copy_loops): New function.
11042 (copy_cfg_body): Copy loop structure.
11043 (tree_function_versioning): Initialize destination loop tree.
11044 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
11045 (pass_parallelize_loops): Do IL verification.
11046 * loop-init.c (loop_optimizer_init): Fixup loops if required.
11047 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
11048 the CFG make sure we fixup loops as well.
11049 * tree-ssa-tail-merge.c: Include cfgloop.h.
11050 (replace_block_by): When merging loop latches mark loops for fixup.
11051 * lto-streamer-out.c (output_struct_function_base): Drop
11052 PROP_loops for now.
11053 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
11054 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
11055 * ipa-split.c: Include cfgloop.h.
11056 (split_function): Add the new return block to the loop tree root.
11057 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
11058 whether we have removed the forwarder block.
11059 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
11060 * cfgloop.h (place_new_loop): Declare.
11061 * cfgloopmanip.c (place_new_loop): Export.
11062 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
11063 (tree-switch-conversion.o): Likewise.
11064 (tree-complex.o): Likewise.
11065 (tree-inline.o): Likewise.
11066 (tree-ssa-tailmerge.o): Likewise.
11067 (ipa-split.o): Likewise.
11068 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
11069 (tree-ssa-copy.o): Likewise.
11070 * tree-switch-conversion.c: Include cfgloop.h
11071 (process_switch): If we emit a bit-test cascade, schedule loops
11072 for fixup.
11073 * tree-complex.c: Include cfgloop.h.
11074 (expand_complex_div_wide): Properly add new basic-blocks to loops.
11075 * asan.c: Include cfgloop.h.
11076 (create_cond_insert_point): Properly add new basic-blocks to
11077 loops, schedule loop fixup.
11078 * cfgloop.c (verify_loop_structure): Check that looks are not
11079 marked for fixup.
11080 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
11081 to loops.
11082 (expand_omp_for_generic): Likewise.
11083 (expand_omp_sections): Likewise.
11084 (expand_omp_atomic_pipeline): Schedule loops for fixup.
11085 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
11086 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
11087 is initialized, not when loops are present.
11088 * tree-parloops.c (parallelize_loops): Remove checking here.
11089 * passes.c (init_optimization_passes): Schedule a copy-propagation
11090 pass before complete unrolling of inner loops.
11091
e78e8a0b
JJ
110922013-04-26 Jakub Jelinek <jakub@redhat.com>
11093
a2e836b2
JJ
11094 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
11095 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
11096 (colorize_init): Add argument to _WIN32 version.
11097 * toplev.c: Include diagnostic-color.h.
11098 (process_options): Default to -fdiagnostics-color=auto if
11099 GCC_COLORS env var is in the environment.
11100 * common.opt (fdiagnostics-color=): Add Var and Init.
df93505e
UB
11101 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
11102 env var is in the environment, the default is auto rather than never.
a2e836b2 11103
e78e8a0b
JJ
11104 * diagnostic.h (file_name_as_prefix): Add context argument.
11105 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
11106 the string as locus.
11107 * langhooks.c (lhd_print_error_function): Adjust caller.
11108
013e5ef9
LC
111092013-04-25 Lawrence Crowl <crowl@google.com>
11110
11111 * var-tracking.c (shared_hash_def::htab):
11112 Change type to hash_table. Update dependent calls and types.
11113
4a8fb1a1
LC
111142013-04-25 Lawrence Crowl <crowl@google.com>
11115
11116 * Makefile.in: Update as needed below.
11117
11118 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
11119 Move declaration to after the type's method definitons.
11120
11121 * attribs.c (htab_t scoped_attributes::attribute_hash):
11122 Change type to hash_table. Update dependent calls and types.
11123
11124 * bitmap.c (htab_t bitmap_desc_hash):
11125 Change type to hash_table. Update dependent calls and types.
11126
11127 * cselib.c (htab_t cselib_hash_table):
11128 Change type to hash_table. Update dependent calls and types.
11129
11130 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
11131 (hash_string_slot_node): Move implementation into lto-streamer.h
11132 struct string_slot_hasher.
11133 (eq_string_slot_node): Likewise.
11134
11135 * data-streamer-out.c: Update output_block::string_hash_table
11136 dependent calls and types.
11137
11138 * dwarf2cfi.c (htab_t trace_index):
11139 Change type to hash_table. Update dependent calls and types.
11140
11141 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
11142 Change type to hash_table. Update dependent calls and types.
11143 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
11144 (htab_t optimize_external_refs::map): Likewise.
11145 (htab_t output_comp_unit::extern_map): Likewise.
11146 (htab_t output_comdat_type_unit::extern_map): Likewise.
11147 (htab_t output_macinfo::macinfo_htab): Likewise.
11148 (htab_t optimize_location_lists::htab): Likewise.
11149 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
11150
11151 * except.c (htab_t ehspec_hash_type):
11152 Change type to hash_table. Update dependent calls and types.
11153 (assign_filter_values::ttypes): Likewise.
11154 (assign_filter_values::ehspec): Likewise.
11155 (sjlj_assign_call_site_values::ar_hash): Likewise.
11156 (convert_to_eh_region_ranges::ar_hash): Likewise.
11157
11158 * gcse.c (htab_t pre_ldst_table):
11159 Change type to hash_table. Update dependent calls and types.
11160
11161 * ggc-common.c (htab_t saving_htab):
11162 Change type to hash_table. Update dependent calls and types.
11163 (htab_t loc_hash): Likewise.
11164 (htab_t ptr_hash): Likewise.
11165 (call_count): Rename ggc_call_count.
11166 (call_alloc): Rename ggc_call_alloc.
11167 (loc_descriptor): Rename make_loc_descriptor.
11168 (add_statistics): Rename ggc_add_statistics.
11169
11170 * ggc-common.c (saving_htab):
11171 Change type to hash_table. Update dependent calls and types.
11172
11173 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
11174 (push_gimplify_context): Likewise.
11175 (pop_gimplify_context): Likewise.
11176 (struct gimple_temp_hash_elt): Added.
11177 (struct gimplify_hasher): Likewise.
11178 (struct gimplify_ctx.temp_htab):
11179 Change type to hash_table. Update dependent calls and types.
11180
11181 * gimple-fold.c: Include gimplify-ctx.h.
11182
11183 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
11184 Change type to hash_table. Update dependent calls and types.
11185 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
11186 avoid potential global name collision.
11187
11188 * gimplify.c: Include gimplify-ctx.h.
11189 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
11190 (htab_t gimplify_ctx::temp_htab):
11191 Update dependent calls and types for new type hash_table.
11192 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
11193 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
11194
11195 * gimplify-ctx.h: New.
11196 (struct gimple_temp_hash_elt): Move from gimplify.c.
11197 (class gimplify_hasher): New.
11198 (struct gimplify_ctx): Move from gimple.h.
11199 (htab_t gimplify_ctx::temp_htab):
11200 Change type to hash_table. Update dependent calls and types.
11201
11202 * graphite-clast-to-gimple.c: Include graphite-htab.h.
11203 (htab_t ivs_params::newivs_index):
11204 Change type to hash_table. Update dependent calls and types.
11205 (htab_t ivs_params::params_index): Likewise.
11206 (htab_t print_generated_program::params_index): Likewise.
11207 (htab_t gloog::newivs_index): Likewise.
11208 (htab_t gloog::params_index): Likewise.
11209
11210 * graphite.c: Include graphite-htab.h.
11211 4htab_t graphite_transform_loops::bb_pbb_mapping):
11212 Change type to hash_table. Update dependent calls and types.
11213
11214 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
11215 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
11216 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
11217
11218 * graphite-dependences.c: Include graphite-htab.h.
11219 (loop_is_parallel_p): Change hash table type of parameter.
11220
11221 * graphite-htab.h: New.
11222 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
11223 (extern find_pbb_via_hash): Move from graphite-poly.h.
11224 (extern loop_is_parallel_p): Move from graphite-poly.h.
11225 (extern get_loop_body_pbbs): Move from graphite-poly.h.
11226
11227 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
11228 (extern loop_is_parallel_p): Move to graphite-htab.h.
11229 (extern get_loop_body_pbbs): Move to graphite-htab.h.
11230
11231 * haifa-sched.c (htab_t delay_htab):
11232 Change type to hash_table. Update dependent calls and types.
11233 (htab_t delay_htab_i2): Likewise.
11234
11235 * ira-color.c (htab_t allocno_hard_regs_htab):
11236 Change type to hash_table. Update dependent calls and types.
11237
11238 * ira-costs.c (htab_t cost_classes_htab):
11239 Change type to hash_table. Update dependent calls and types.
11240
11241 * loop-invariant.c (htab_t merge_identical_invariants::eq):
11242 Change type to hash_table. Update dependent calls and types.
11243
11244 * loop-iv.c (htab_t bivs):
11245 Change type to hash_table. Update dependent calls and types.
11246
11247 * loop-unroll.c (htab_t opt_info::insns_to_split):
11248 Change type to hash_table. Update dependent calls and types.
11249 (htab_t opt_info::insns_with_var_to_expand): Likewise.
11250
11251 * lto-streamer.h (struct string_slot): Move from data-streamer.h
11252 (struct string_slot_hasher): New.
11253 (htab_t output_block::string_hash_table):
11254 Change type to hash_table. Update dependent calls and types.
11255
11256 * lto-streamer-in.c (freeing_string_slot_hasher): New.
11257 (htab_t file_name_hash_table):
11258 Change type to hash_table. Update dependent calls and types.
11259
11260 * lto-streamer-out.c: Update output_block::string_hash_table dependent
11261 calls and types.
11262
11263 * lto-streamer.c (htab_t tree_htab):
11264 Change type to hash_table. Update dependent calls and types.
11265
11266 * omp-low.c: Include gimplify-ctx.h.
11267
11268 * passes.c (htab_t name_to_pass_map):
11269 Change type to hash_table. Update dependent calls and types.
11270 (pass_traverse): Rename to passes_pass_traverse.
11271
11272 * plugin.c (htab_t event_tab):
11273 Change type to hash_table. Update dependent calls and types.
11274
11275 * postreload-gcse.c (htab_t expr_table):
11276 Change type to hash_table. Update dependent calls and types.
11277 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
11278
11279 * sese.c (debug_rename_map_1): Make extern.
11280 (htab_t copy_bb_and_scalar_dependences::rename_map):
11281 Change type to hash_table. Update dependent calls and types.
11282
11283 * sese.h (extern debug_rename_map): Move to .c file.
11284
11285 * store-motion.c (htab_t store_motion_mems_table):
11286 Change type to hash_table. Update dependent calls and types.
11287
11288 * trans-mem.c (htab_t tm_new_mem_hash):
11289 Change type to hash_table. Update dependent calls and types.
11290
11291 * tree-browser.c (htab_t TB_up_ht):
11292 Change type to hash_table. Update dependent calls and types.
11293
11294 * tree-cfg.c (htab_t discriminator_per_locus):
11295 Change type to hash_table. Update dependent calls and types.
11296
11297 * tree-complex.c: Include tree-hasher.h
11298 (htab_t complex_variable_components):
11299 Change type to hash_table. Update dependent calls and types.
11300
11301 * tree-eh.c (htab_t finally_tree):
11302 Change type to hash_table. Update dependent calls and types.
11303
11304 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
11305 struct int_tree_hasher.
11306 (extern int_tree_map_eq): Likewise.
11307 (uid_decl_map_hash): Removed.
11308 (extern decl_tree_map_eq): Likewise.
11309
11310 * tree-hasher.h: New.
11311 (struct int_tree_hasher): New.
11312 (typedef int_tree_htab_type): New.
11313
11314 * tree-inline.c: Include gimplify-ctx.h.
11315
11316 * tree-mudflap.c: Include gimplify-ctx.h.
11317
11318 * tree-parloops.c: Include tree-hasher.h.
11319 (htab_t eliminate_local_variables_stmt::decl_address):
11320 Change type to hash_table. Update dependent calls and types.
11321 (htab_t separate_decls_in_region::decl_copies): Likewise.
11322
11323 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
11324 Change type to hash_table. Update dependent calls and types.
11325
11326 * tree-sra.c (candidates):
11327 Change type to hash_table. Update dependent calls and types.
11328
11329 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
11330 in tree-flow.h.
11331 (int_tree_map_hash): Likewise.
11332
11333 * tree-ssa-dom.c (htab_t avail_exprs):
11334 Change type to hash_table. Update dependent calls and types.
11335
11336 * tree-ssa-live.c (var_map_base_init::tree_to_index):
11337 Change type to hash_table. Update dependent calls and types.
11338
11339 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
11340 Change type to hash_table. Update dependent calls and types.
11341
11342 * tree-ssa-phiopt.c (seen_ssa_names):
11343 Change type to hash_table. Update dependent calls and types.
11344
11345 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
11346 Change type to hash_table. Update dependent calls and types.
11347
11348 * tree-ssa-uncprop.c (equiv):
11349 Change type to hash_table. Update dependent calls and types.
11350
c5a44004
JJ
113512013-04-25 Jakub Jelinek <jakub@redhat.com>
11352
11353 PR rtl-optimization/57003
11354 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
11355 call note_stores with kill_clobbered_value callback again after
11356 killing regs_invalidated_by_call.
11357
09962a4a
JG
113582013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
11359
11360 * config/aarch64/aarch64-simd.md
11361 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
11362 (aarch64_simd_bsl<mode>): Likewise.
11363 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
11364
ea28bb0b
MP
113652013-04-25 Marek Polacek <polacek@redhat.com>
11366
11367 PR tree-optimization/57066
3c21604f 11368 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
ea28bb0b 11369
96659611
JG
113702013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
11371
11372 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
11373
9697e620
JG
113742013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
11375
11376 * config/aarch64/aarch64-builtins.c
11377 (aarch64_fold_builtin): New.
11378 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
11379 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
11380 * config/aarch64/aarch64-simd-builtins.def (abs): New.
11381 * config/aarch64/arm_neon.h
11382 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
11383
0ac198d3
JG
113842013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
11385 Tejas Belagod <tejas.belagod@arm.com>
11386
11387 * config/aarch64/aarch64-builtins.c
11388 (aarch64_gimple_fold_builtin): New.
11389 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
11390 * config/aarch64/aarch64-simd-builtins.def (addv): New.
11391 * config/aarch64/aarch64-simd.md (addpv4sf): New.
11392 (addvv4sf): Update.
11393 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
11394
58cff58c
N
113952013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
11396
df93505e 11397 * config/aarch64/aarch64.md
58cff58c
N
11398 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
11399
7e0228bf
N
114002013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
11401
11402 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
11403 (*ngcsi_uxtw): New pattern.
11404
5819f96f 114052013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3c21604f 11406 Julian Brown <julian@codesourcery.com>
5819f96f
KT
11407
11408 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
11409 (TB_DREG): Add T_V4HF.
11410 (v4hf_UP): New macro.
11411 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
df93505e 11412 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
11413 Handle initialisation of V4HF. Adjust initialisation of reinterpret
11414 built-ins.
df93505e 11415 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
11416 (arm_vector_mode_supported_p): Handle V4HF.
11417 (arm_mangle_map): Handle V4HFmode.
11418 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
11419 * config/arm/arm_neon_builtins.def: Add entries for
11420 vcvtv4hfv4sf, vcvtv4sfv4hf.
11421 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
11422 (neon_vcvtv4hfv4sf): Likewise.
11423 * config/arm/neon-gen.ml: Handle half-precision floating point
11424 features.
11425 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
11426 * config/arm/arm_neon.h: Regenerate.
11427 * config/arm/neon.ml (type elts): Add F16.
11428 (type vectype): Add T_float16x4, T_floatHF.
11429 (type vecmode): Add V4HF.
11430 (type features): Add Requires_FP_bit feature.
11431 (elt_width): Handle F16.
11432 (elt_class): Likewise.
11433 (elt_of_class_width): Likewise.
11434 (mode_of_elt): Refactor.
11435 (type_for_elt): Handle F16, fix error messages.
11436 (vectype_size): Handle T_float16x4.
11437 (vcvt_sh): New function.
11438 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
11439 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
11440 (string_of_mode): Handle V4HF.
11441 * doc/arm-neon-intrinsics.texi: Regenerate.
11442
1ef395e4
JG
114432013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
11444
11445 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
11446 format specifier in 'X' case.
11447
41c34e94
AM
114482013-04-25 Alan Modra <amodra@gmail.com>
11449
11450 PR target/57052
11451 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
11452 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
11453 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
11454 Repeat for many other rotate/shift and mask patterns using subregs.
11455 Name lshiftrt insns.
11456 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
11457 on WORDS_BIG_ENDIAN.
11458
b9a7eb5d
AM
114592013-04-25 Alan Modra <amodra@gmail.com>
11460
11461 * config.gcc: Support little-endian powerpc-linux targets.
11462 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
11463 (LINK_OS_LINUX_SPEC): Define.
11464 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
11465 Preserve MASK_LITTLE_ENDIAN.
11466 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
11467 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
11468 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
11469 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
11470 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
11471 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
11472 Correct fp word order for little-endian. Don't shift toc entries
11473 smaller than a word for little-endian.
11474 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
11475 (bswapdi2 splits): Correct low-part subreg for little-endian.
11476 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
11477 low/high where such is correct only for be.
11478 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
11479 little-endian for -mcall-aixdesc.
11480
87f73374
AM
114812013-04-25 Alan Modra <amodra@gmail.com>
11482
11483 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
11484 replace_equiv_address_nv.
11485
cabf91cd
AM
114862013-04-25 Alan Modra <amodra@gmail.com>
11487
11488 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
11489
0ae24cc8
VM
114902013-04-24 Vladimir Makarov <vmakarov@redhat.com>
11491
11492 Revert:
11493 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
11494 * rtl.h (struct rtx_def): ...
cabf91cd 11495
77bce07c
VM
114962013-04-24 Vladimir Makarov <vmakarov@redhat.com>
11497
11498 PR rtl-optimizations/57046
11499 * lra-constraints (split_reg): Set up lra_risky_transformations_p
11500 for multi-reg splits.
11501
0db63e7f
L
115022013-04-24 H.J. Lu <hongjiu.lu@intel.com>
11503
11504 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
11505
3362b6b6
SA
115062013-04-24 Sterling Augustine <saugustine@google.com>
11507
11508 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
11509 (comp_dir_string, debug_str_dwo_section): New.
11510 (DEBUG_STR_DWO_SECTION): Rename to ...
11511 (DEBUG_DWO_STR_SECTION): ... this.
11512 (DEBUG_NORM_STR_SECTION): Delete.
11513 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
11514 (DEBUG_STR_DWO_SECTION_FLAGS): New.
11515 (find_AT_string): Move most logic to ...
11516 (find_AT_string_in_table): ... here. New.
11517 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
11518 add_skeleton_AT_string. Delete logic.
11519 (output_skeleton_debug_sections): Remove call to
11520 add_top_level_skeleton_die_attrs.
11521 (add_comp_dir_attribute): Move logic to comp_dir_string.
11522 (dwarf2out_init): Initialize debug_str_dwo_section.
11523 (output_indirect_string): Call find_string_form.
11524 (output_indirect_strings): Rewrite.
11525 (prune_unused_types): Empty skeleton_debug_str_hash.
11526 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
11527 (dwarf2out_finish): Call output_indirect_strings.
11528
e93e18e9
PC
115292013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
11530
11531 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
11532
f6ce35ac
VM
115332013-04-24 Vladimir Makarov <vmakarov@redhat.com>
11534
cabf91cd 11535 * rtl.h (struct rtx_def): Add comment for field jump.
f6ce35ac
VM
11536 (LRA_SUBREG_P): New macro.
11537 * recog.c (register_operand): Check LRA_SUBREG_P.
11538 * lra.c (lra): Add note at the end of RTL code. Align non-empty
11539 stack frame.
11540 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
11541 (lra_final_code_change): Skip subreg change for operators.
11542 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
11543 if there are no operand changes.
11544 * lra-constraints.c (curr_insn_set): New.
11545 (match_reload): Set LRA_SUBREG_P.
11546 (emit_spill_move): Ditto.
11547 (check_and_process_move): Use curr_insn_set. Process only single
11548 set insns. Don't initialize sec_mem_p and change_p.
11549 (simplify_operand_subreg): Use LRA_SUBREG_P.
11550 (reg_in_class_p): New function.
11551 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
11552 of #ifdef. Add code to remove cycling.
11553 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
11554 non-null disp. Reload inner instead of disp when base and index
11555 are null. Try to put lo_sum into register.
11556 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
cabf91cd 11557 (check_and_process_move): Move code for move cost check to
f6ce35ac 11558 simple_move_p. Remove equiv_substitution.
cabf91cd 11559 (simple_move_p): New function.
f6ce35ac
VM
11560 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
11561 curr_insn_set. Call check_and_process_move only for single set
11562 insns. Use the new function. Move call of check_and_process_move
11563 after operand equiv substitution and address process.
11564
38047d90
JG
115652013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
11566
11567 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
11568 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
11569 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
11570
13f39b2e
PC
115712013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
11572
11573 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
11574
97c116dc
MP
115752013-04-24 Marek Polacek <polacek@redhat.com>
11576
11577 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
11578 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
11579 (select_loops_exit_conditions): Likewise.
11580 (number_of_iterations_for_all_loops): Likewise.
11581 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
11582 (scev_analysis): Likewise.
11583
83082391 115842013-04-02 Catherine Moore <clm@codesourcery.com>
12211b99 11585 Chao-ying Fu <fu@mips.com>
83082391 11586
cabf91cd
AM
11587 * config/mips/micromips.md (jraddiusp): New pattern.
11588 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
11589 instruction if possible.
83082391 11590
19e34aa2
AM
115912013-04-24 Alan Modra <amodra@gmail.com>
11592
11593 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
11594
fdb6603c
JB
115952013-04-24 Julian Brown <julian@codesourcery.com>
11596 Chung-Lin Tang <cltang@codesourcery.com>
11597
11598 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
df93505e
UB
11599 dependency behavior in enumeration type DIE generation. Add TODO note
11600 to comments about future DW_FORM_sdata/udata re-work of related code.
fdb6603c 11601
bf190e8d
LC
116022013-04-23 Lawrence Crowl <crowl@google.com>
11603
11604 * Makefile.in: Update as needed below.
11605
11606 * hash-table.h (class hash_table):
11607 Correct many methods with parameter types compare_type to the correct
11608 value_type. (Correct code was unlikely to notice the change.)
11609 (hash_table::elements_with_deleted) New.
11610 (class hashtable::iterator): New.
11611 (hashtable::begin()): New.
11612 (hashtable::end()): New.
11613 (FOR_EACH_HASH_TABLE_ELEMENT): New.
11614
11615 * statistics.c (statistics_hashes):
11616 Change type to hash_table. Update dependent calls and types.
11617
11618 * tree-into-ssa.c (var_infos):
11619 Change type to hash_table. Update dependent calls and types.
11620
11621 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
11622 Change type to hash_table. Update dependent calls and types.
11623
11624 * tree-ssa-loop-im.c (struct mem_ref.refs):
11625 Change type to hash_table. Update dependent calls and types.
11626
11627 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
11628 Change type to hash_table. Update dependent calls and types.
11629
11630 * tree-ssa-sccvn.c (vn_tables_s::nary):
11631 Change type to hash_table. Update dependent calls and types.
11632 (vn_tables_s::phis): Likewise.
11633 (vn_tables_s::references): Likewise.
11634
11635 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
11636 (vn_reference_eq): Update parameter and return types.
11637
11638 * tree-ssa-structalias.c (pointer_equiv_class_table):
11639 Change type to hash_table. Update dependent calls and types.
11640 (location_equiv_class_table): Likewise.
11641
11642 * tree-vect-data-refs.c: Consequential changes for making
11643 peeling a hash_table.
11644
11645 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
11646 (destroy_loop_vec_info): Dependent hash_table update.
11647
11648 * tree-vectorizer.h (peeling_htab):
11649 Change type to hash_table. Update dependent calls and types.
11650
d70a81dd
SC
116512013-04-23 Shiva Chen <shiva0217@gmail.com>
11652
cabf91cd
AM
11653 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
11654 to check the register content is equal or not.
11655 * lra-constraints.c (match_reload): Use lra_assign_reg_val
11656 to assign register content record.
11657 * lra-eliminations.c (update_reg_eliminate): Use
d70a81dd 11658 lra_update_reg_val_offset to update register content offset.
cabf91cd
AM
11659 * lra-int.h (struct lra_reg): Add offset member.
11660 (lra_reg_val_equal_p): New static inline function.
11661 (lra_update_reg_val_offset): New static inline function.
11662 (lra_assign_reg_val): New static inline function.
11663 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
11664 to assign register content record.
11665 (initialize_lra_reg_info_element): Initial offset to zero.
d70a81dd 11666
b894a1f3
CM
116672013-04-23 Catherine Moore <clm@codesourcery.com>
11668
11669 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
11670 operands. Record compression.
11671
ecd14de9
XDL
116722013-04-23 Xinliang David Li <davidxl@google.com>
11673
11674 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
11675
92e776e9
RB
116762013-04-23 Richard Biener <rguenther@suse.de>
11677
11678 PR middle-end/57036
11679 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
11680 parameter, only add abnormal goto edges from the copied body
11681 if the call could perform abnormal gotos.
11682 (copy_cfg_body): Adjust.
11683
a15ee567
SN
116842013-04-23 Sofiane Naci <sofiane.naci@arm.com>
11685
11686 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
11687
08c52234
AS
116882013-04-23 Andreas Schwab <schwab@linux-m68k.org>
11689
11690 * coretypes.h (gimple_stmt_iterator): Add struct to make
11691 compatible with C.
11692
999c1171
RB
116932013-04-23 Richard Biener <rguenther@suse.de>
11694
11695 PR tree-optimization/57026
11696 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
11697 from SSA names occuring in abnormal PHI nodes.
11698
53669259
AK
116992013-04-22 Andi Kleen <ak@linux.intel.com>
11700
11701 * lto/lto.c (print_lto_report_1): Fix LTO report names.
11702
1a0ad150
AK
117032013-04-22 Andi Kleen <ak@linux.intel.com>
11704
11705 * lto/lto.c (print_lto_report_1): Declare early.
11706 (read_cgraph_and_symbols): Call print_lto_report_1 early.
11707
057f8f20
AK
117082013-04-22 Andi Kleen <ak@linux.intel.com>
11709
11710 * common.opt (-flto-report-wpa): Add.
11711 * doc/invoke.texi (-flto-report-wpa): Add.
11712 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
11713 (lto_main): dito.
11714
473b1e05
XDL
117152013-04-22 Xinliang David Li <davidxl@google.com>
11716
11717 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
11718 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
11719 * Makefile.in: New dependency
11720
cabf91cd 11721 David Daney <ddaney.cavm@gmail.com>
b1485a33 11722
cabf91cd
AM
11723 * configure.ac (gcc_cv_as_micromips_support): Use the
11724 --fatal-warnings option.
11725 * configure: Regenerate.
b1485a33 11726
829d0168
MP
117272013-04-22 Marek Polacek <polacek@redhat.com>
11728
11729 PR sanitizer/56990
11730 * tsan.c (instrument_expr): Don't instrument expression
11731 in case its size is zero.
11732
6d9b7208
UB
117332013-04-22 Uros Bizjak <ubizjak@gmail.com>
11734
11735 PR target/57032
11736 Revert:
11737 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
11738
11739 * config/alpha/alpha.c (TARGET_LRA_P): New define.
11740
ea679d55
JG
117412013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
11742
11743 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
11744 (gimple_stmt_iterator): New typedef.
11745 * gimple.h (gimple_stmt_iterator): Rename to...
11746 (gimple_stmt_iterator_d): ... This.
11747 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
11748 trees be valid for GIMPLE and GENERIC.
11749 (TARGET_GIMPLE_FOLD_BUILTIN): New.
11750 * gimple-fold.c (gimple_fold_call): Call target hook
11751 gimple_fold_builtin.
11752 * hooks.c (hook_bool_gsiptr_false): New.
11753 * hooks.h (hook_bool_gsiptr_false): New.
11754 * target.def (fold_stmt): New.
11755 * doc/tm.texi: Regenerate.
11756
88a581da
VM
117572013-04-22 Vladimir Makarov <vmakarov@redhat.com>
11758
11759 PR target/57018
11760 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
11761 a set sp if no stack realignment.
11762
92be22dc
NC
117632013-04-22 Nick Clifton <nickc@redhat.com>
11764
11765 * config.gcc (tilegx-linux): Extend extra_objs rather than
11766 overwriting it.
11767 (tilepro-linux): Likewise.
11768
0ddec79f
JG
117692013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
11770
11771 * config/aarch64/aarch64-builtins.c
11772 (CF): Remove.
11773 (CF0, CF1, CF2, CF3, CF4, CF10): New.
11774 (VAR<1-12>): Add MAP parameter.
11775 (BUILTIN_*): Likewise.
11776 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
11777 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
11778 (aarch64_ushl_n<mode>): Likewise.
11779 (aarch64_sshr_n<mode>): Likewise.
11780 (aarch64_ushr_n<mode>): Likewise.
11781 (aarch64_<maxmin><mode>): Likewise.
11782 (aarch64_sqrt<mode>): Likewise.
11783 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
11784 (vshr<q>_n_*): Likewise.
11785
0050faf8
JG
117862013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
11787
11788 * config/aarch64/aarch64-builtins.c
11789 (aarch64_simd_builtin_type_mode): Handle SF types.
11790 (sf_UP): Define.
11791 (BUILTIN_GPF): Define.
11792 (aarch64_init_simd_builtins): Handle SF types.
11793 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
11794 (frecps): Likewise.
11795 (frecpx): Likewise.
11796 * config/aarch64/aarch64-simd.md
11797 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
11798 (aarch64_frecpe<mode>): New.
11799 (aarch64_frecps<mode>): Likewise.
11800 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
11801 (v8type): Add frecp<esx>.
11802 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
11803 (aarch64_frecps<mode>): Likewise.
11804 * config/aarch64/iterators.md (FRECP): New.
11805 (frecp_suffix): Likewise.
11806 * config/aarch64/arm_neon.h
11807 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
11808
0fad3dbc 118092013-04-22 Christian Bruel <christian.bruel@st.com>
1818d01c
CB
11810
11811 PR target/56995
11812 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
11813 (REG_CLASS_NAMES): Idem.
11814 (REG_CLASS_CONTENTS): Idem.
11815 (REGCLASS_HAS_FP_REG): Idem.
11816 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
11817 (sh_conditional_register_usage): Idem.
11818
3e8a33f9
JL
118192013-04-21 Jeff Law <law@redhat.com>
11820
11821 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
11822 (ssa_forward_propagate_and_combine): Use it.
11823
f38e1b0a
VM
118242013-04-19 Vladimir Makarov <vmakarov@redhat.com>
11825
11826 * lra.c: Update the flow chart diagram.
11827
682303da
VM
118282013-04-19 Vladimir Makarov <vmakarov@redhat.com>
11829
11830 PR rtl-optimization/56847
11831 * lra-constraints.c (process_alt_operands): Discourage alternative
11832 with non-matche doffsettable memory constraint fro memory with
11833 known offset.
11834
f6b64c35
RB
118352013-04-19 Richard Biener <rguenther@suse.de>
11836
11837 PR tree-optimization/56982
11838 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
11839 function.
11840 * gimplify.c (gimplify_call_expr): Notice special calls.
11841 (gimplify_modify_expr): Likewise.
11842 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
11843 abnormal control flow receivers.
11844 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
11845 in the same way as cfun->has_nonlocal_labels.
11846 (gimple_purge_dead_abnormal_call_edges): Likewise.
11847 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
11848 receivers start a basic-block.
11849
01d8bf07
RB
118502013-04-19 Richard Biener <rguenther@suse.de>
11851
11852 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
11853 member ...
11854 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
11855 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
11856 (SLP_TREE_LOAD_PERMUTATION): Add.
11857 (vect_transform_slp_perm_load): Adjust prototype.
11858 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
11859 (vect_free_slp_instance): Likewise.
11860 (vect_create_new_slp_node): Likewise.
11861 (vect_supported_slp_permutation_p): Remove.
11862 (vect_slp_rearrange_stmts): Adjust.
11863 (vect_supported_load_permutation_p): Likewise. Inline
11864 vect_supported_slp_permutation_p here.
11865 (vect_analyze_slp_instance): Compute load permutations per
11866 slp node instead of per instance.
11867 (vect_get_slp_defs): Adjust.
11868 (vect_transform_slp_perm_load): Likewise.
11869 (vect_schedule_slp_instance): Remove redundant code.
11870 (vect_schedule_slp): Remove hack for PR56270, add it ...
11871 * tree-vect-stmts.c (vectorizable_load): ... here, do not
11872 CSE loads for SLP. Adjust.
11873
ede22fc3
GY
118742013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
11875
11876 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
11877 spelling in two comments.
11878
67bc84fb
GY
118792013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
11880
11881 PR target/56797
11882 * config/arm/arm.c (load_multiple_sequence): Require SP
11883 as base register for loads if SP is in the register list.
11884
e248d83f
MJ
118852013-04-19 Martin Jambor <mjambor@suse.cz>
11886
11887 PR tree-optimization/56718
11888 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
11889 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
11890 and made public. Adjusted all callers.
11891 (ipa_intraprocedural_devirtualization): New function.
11892 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
11893 (ipa_intraprocedural_devirtualization): Likewise.
11894 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
11895
4891e8f8
RB
118962013-04-19 Richard Biener <rguenther@suse.de>
11897
11898 PR tree-optimization/57000
11899 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
11900
dad89f7c
TG
119012013-04-19 Terry Guo <terry.guo@arm.com>
11902
11903 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
11904 Replace with ...
11905 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
11906 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
11907 (cortex_m4_fmacs): Use new reservations.
11908 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
11909
72ea0d47
VM
119102013-04-18 Vladimir Makarov <vmakarov@redhat.com>
11911
f1e6512c 11912 PR rtl-optimization/56999
72ea0d47
VM
11913 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
11914 related code.
11915 (lra_coalesce): Remove split_origin_bitmap and related code.
11916 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
11917 ranges if necessary.
11918
780a5b71
UB
119192013-04-18 Uros Bizjak <ubizjak@gmail.com>
11920
11921 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
11922 New array.
11923 (ix86_expand_call): Remove clobbered_registers array and use
11924 x86_64_ms_sysv_extra_clobbered_registers instead.
11925 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
11926 Declare here.
11927 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
11928 predicate.
11929 * config/i386/i386.md (*call_rex64_ms_sysv): Use
11930 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
11931 (*call_value_rex64_ms_sysv): Ditto.
11932
6f5a366a
CC
119332013-04-18 Cary Coutant <ccoutant@google.com>
11934
11935 * dwarf2out.c (output_pubnames): Check die_perennial_p of
11936 parent instead of die_mark.
11937
475b8f37
DN
119382013-04-18 Diego Novillo <dnovillo@google.com>
11939
11940 * gimple.c (create_gimple_tmp): New.
11941 (get_expr_type): New.
11942 (build_assign): New.
11943 (build_type_cast): New.
11944 * gimple.h (enum ssa_mode): Define.
11945 (gimple_seq_set_location): New.
11946 * asan.c (build_check_stmt): Change some gimple_build_* calls
780a5b71 11947 to use build_assign and build_type_cast.
475b8f37 11948
08940f33
RB
119492013-04-18 Richard Biener <rguenther@suse.de>
11950
11951 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
11952 handle negative step. Remove redundant checks.
11953 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
11954 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
11955 for negative step and grouped loads fail to vectorize.
11956
0e0f87d4
SB
119572013-04-18 Steven Bosscher <steven@gcc.gnu.org>
11958
11959 * emit-rtl.c (reset_insn_used_flags): New function.
11960 (reset_all_used_flags): Use it.
11961 (verify_insn_sharing): New function.
11962 (verify_rtl_sharing): Fix verification for SEQUENCEs.
11963
4c445590
JJ
119642013-04-18 Jakub Jelinek <jakub@redhat.com>
11965
11966 PR tree-optimization/56984
11967 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
11968 and (x >> M) >= N don't register any assertion if N << M is the
11969 minimum value.
11970
6873ecab
SB
119712013-04-18 Steven Bosscher <steven@gcc.gnu.org>
11972
11973 * lower-subreg.c (resolve_simple_move): If called self-recursive,
11974 do not delete_insn insns that have not yet been emitted, only
11975 unlink them with remove_insn.
11976 * df-scan.c (df_insn_delete): Revert r197492.
11977
3ccb989e
SB
119782013-04-17 Steven Bosscher <steven@gcc.gnu.org>
11979
11980 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
11981 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
11982
119832013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
0480fff0
GY
11984
11985 * config/arm/arm.md (movsicc_insn): Convert define_insn into
11986 define_insn_and_split.
11987 (and_scc,ior_scc,negscc): Likewise.
11988 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
11989
3ccb989e 119902013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
367075fe
GY
11991
11992 * config/arm/arm.c (use_return_insn): Return 0 for targets that
11993 can benefit from using a sequence of LDRD instructions in epilogue
11994 instead of a single LDM instruction.
11995
6d10a203
MLI
119962013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
11997
11998 PR 45688
11999 * doc/extend.texi: Fix typo.
12000
6983e6b5
RB
120012013-04-17 Richard Biener <rguenther@suse.de>
12002
12003 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
12004 (vect_build_slp_tree): ... here.
12005 (vect_build_slp_tree_1): Compute which stmts of the SLP group
12006 match. Remove special-casing of mismatched complex loads.
12007 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
12008 re-try the match with swapped commutative operands.
12009 (vect_supported_load_permutation_p): Remove special-casing of
12010 mismatched complex loads.
12011 (vect_analyze_slp_instance): Adjust.
12012
ef23e6a2
RB
120132013-04-17 Richard Biener <rguenther@suse.de>
12014
12015 PR rtl-optimization/56921
12016 * cfgloop.h (struct loop): Add simple_loop_desc member.
12017 (struct niter_desc): Mark with GTY(()).
12018 (simple_loop_desc): Do not use aux field but simple_loop_desc.
12019 * loop-iv.c (get_simple_loop_desc): Likewise.
12020 (free_simple_loop_desc): Likewise.
12021
12022 Revert
12023 2013-04-16 Richard Biener <rguenther@suse.de>
12024
12025 PR rtl-optimization/56921
12026 * loop-init.c (pass_rtl_move_loop_invariants): Add
12027 TODO_do_not_ggc_collect to todo_flags_finish.
12028 (pass_rtl_unswitch): Same.
12029 (pass_rtl_unroll_and_peel_loops): Same.
12030 (pass_rtl_doloop): Same.
12031
fc6f94f5
EB
120322013-04-17 Eric Botcazou <ebotcazou@adacore.com>
12033
12034 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
12035 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
12036 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
12037 references.
12038 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
12039 * tree-streamer.c (record_common_node): Adjust reference in comment.
12040
10a88311
TG
120412013-04-17 Terry Guo <terry.guo@arm.com>
12042
12043 * config/arm/cortex-m4.md: Add a new bypass.
12044
6d9b7208 120452013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f3d096b0
N
12046
12047 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
12048 New pattern.
12049 (*subs_<optab><mode>_multp2): New pattern.
12050 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
12051 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
12052
6d9b7208 120532013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
860ad33f
N
12054
12055 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
12056 (*subs_mul_imm_<mode>): New pattern.
12057
18a6701e
DE
120582013-04-16 David Edelsohn <dje.gcc@gmail.com>
12059
12060 PR target/56948
12061 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
12062 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
12063 (vsx_movti_32bit): Change j->wa to O->wa.
12064
07c37b2f
RB
120652013-04-16 Richard Biener <rguenther@suse.de>
12066
12067 PR rtl-optimization/56921
12068 * loop-init.c (pass_rtl_move_loop_invariants): Add
12069 TODO_do_not_ggc_collect to todo_flags_finish.
12070 (pass_rtl_unswitch): Same.
12071 (pass_rtl_unroll_and_peel_loops): Same.
12072 (pass_rtl_doloop): Same.
12073
0e0f87d4 120742013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
974ba22d
GY
12075
12076 * config/arm/arm.c (emit_multi_reg_push): New declaration
12077 for an existing function.
12078 (arm_emit_strd_push): New function.
12079 (arm_expand_prologue): Used here.
12080 (arm_emit_ldrd_pop): New function.
12081 (arm_expand_epilogue): Used here.
12082 (arm_get_frame_offsets): Update condition.
12083 (arm_emit_multi_reg_pop): Add a special case for load of a single
12084 register with writeback.
12085
5e8e2af4
UB
120862013-04-16 Uros Bizjak <ubizjak@gmail.com>
12087
12088 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
12089 description.
12090
9fd9ccf7
RB
120912013-04-16 Richard Biener <rguenther@suse.de>
12092
12093 PR tree-optimization/56756
12094 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
12095 (first_mem_ref_loc): New.
12096 (execute_sm): Place the load temporarily before a previous
12097 access instead of in the latch edge to ensure its SSA dependencies
12098 are defined at points dominating the load.
12099
96fba521
SB
121002013-04-16 Steven Bosscher <steven@gcc.gnu.org>
12101
4c8af858
SB
12102 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
12103 correct fix by moving header and footer insn to the footer of
12104 the merged basic block. Clear BB_END of the merged-away block.
12105
96fba521
SB
12106 PR middle-end/43631
12107 * emit-rtl.c (make_note_raw): New function.
12108 (link_insn_into_chain): New static inline function.
12109 (add_insn): Use it.
12110 (add_insn_before, add_insn_after): Factor insn chain linking code...
12111 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
12112 using link_insn_into_chain.
12113 (note_outside_basic_block_p): New helper function for emit_note_after
12114 and emit_note_before.
12115 (emit_note_after): Use nobb variant of add_insn_after if the note
12116 should not be contained in a basic block.
12117 (emit_note_before): Use nobb variant of add_insn_before if the note
12118 should not be contained in a basic block.
12119 (emit_note_copy): Use make_note_raw.
12120 (emit_note): Likewise.
12121 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
12122 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
12123 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
12124 the moved barrier the tail of the basic block it follows.
12125 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
12126
7b8265ba
JJ
121272013-04-15 Jakub Jelinek <jakub@redhat.com>
12128
12129 PR tree-optimization/56962
12130 * gimple-ssa-strength-reduction.c (record_increment): Only set
12131 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
12132 either rhs1 or rhs2 is equal to c->base_expr.
12133
5185d248
RB
121342013-04-15 Richard Biener <rguenther@suse.de>
12135
12136 PR tree-optimization/56933
12137 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
12138 member.
12139 (GROUP_READ_WRITE_DEPENDENCE): Remove.
12140 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
12141 * tree-vect-data-refs.c (vect_analyze_group_access): Move
12142 dependence check ...
12143 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
12144 ... here.
12145 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
12146 GROUP_READ_WRITE_DEPENDENCE.
12147
a24243a0
AK
121482013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12149
12150 * emit-rtl.c (reset_all_used_flags): New function.
12151 (verify_rtl_sharing): Call reset_all_used_flags before and after
12152 performing the checks.
12153
1c50eada
KT
121542013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12155
12156 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
12157 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
12158 * config/arm/constraints.md (De): New constraint.
12159 * config/arm/neon.md (anddi3_neon): Delete.
12160 (neon_vand<mode>): Expand to standard anddi3 pattern.
12161 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
12162 Move earlier in the file.
12163 (neon_inv_logic_op2): Likewise.
12164 (arm_anddi_operand_neon): New predicate.
12165
e927b6ad
RO
121662013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12167
12168 * configure.ac (gcc_cv_ld_as_needed): Set
12169 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
12170 Use -z ignore, -z record on *-*-solaris2*.
12171 (HAVE_LD_AS_NEEDED): Update comment.
12172 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
12173 * configure: Regenerate.
12174 * config.in: Regenerate.
12175 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
12176 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
12177 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
12178 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
12179 equivalents. Fix markup.
12180 * doc/tm.texi: Regenerate.
12181
e0ea8797
AH
121822013-04-15 Andrew Hsieh <andrewhsieh.google.com>
12183
12184 * config/i386/i386.opt: New option mstack-protector-guard=.
12185 * config/i386/i386-opts.h: Add enum stack_protector_guard.
12186 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
12187 TARGET_SSP_TLS_GUARD.
12188 * config/i386/i386.c (ix86_option_override_internal): Set
12189 ix86_stack_protector_guard.
12190 * config/i386/i386.md (stack_protect_set): Enable for
12191 TARGET_SSP_TLS_GUARD only.
12192 (stack_protect_set_<mode>): Ditto.
12193 (stack_protect_test): Ditto.
12194 (stack_protect_test_<mode>): Ditto.
12195 * doc/invoke.texi (i386 Option): Document.
12196
811b72f9
EB
121972013-04-15 Eric Botcazou <ebotcazou@adacore.com>
12198
12199 PR target/56890
12200 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
12201 (S_MODES): Set H_MODE bit.
12202 (SF_MODES): Set only S_MODE and SF_MODE bits.
12203 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
12204 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
12205 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
12206 <MODE_FLOAT>: Likewise.
12207
5529fdd6
JY
122082013-04-15 Joey Ye <joey.ye@arm.com>
12209
12210 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
12211
517b1da2
JY
122122013-04-15 Joey Ye <joey.ye@arm.com>
12213
12214 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
12215 for real far jump.
12216 (thumb_far_jump_used_p): Count instruction size and set
12217 far_jump_used.
12218
01007ae0
EB
122192013-04-14 Eric Botcazou <ebotcazou@adacore.com>
12220
12221 * reorg.c (fill_simple_delay_slots): Reindent block of code.
12222 * resource.c (mark_target_live_regs): Reformat conditional block.
12223
c46f6580
SB
122242013-04-13 Steven Bosscher <steven@gcc.gnu.org>
12225
12226 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
12227 notes, they are emitted only just before final.
12228 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
12229
1f397f45
SB
122302013-04-13 Steven Bosscher <steven@gcc.gnu.org>
12231
12232 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
12233 * cfgrtl.c (delete_insn): Call it here instead.
12234 * lra-spills.c (lra_final_code_change): Use delete_insn.
12235 * haifa-sched.c (sched_remove_insn): Likewise.
12236 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
12237 returning to the nop pool.
12238 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
12239 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
12240
58a51369
SB
122412013-04-12 Steven Bosscher <steven@gcc.gnu.org>
12242
12243 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
12244 * doc/tm.texi: Regenerated.
12245
33159866
UB
122462013-04-12 Uros Bizjak <ubizjak@gmail.com>
12247
12248 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
12249 QImode checks.
12250
226e378f
SB
122512013-04-12 Steven Bosscher <steven@gcc.gnu.org>
12252
12253 * df-core.c (df_find_def): Compare register numbers.
12254 (df_find_use): Likewise.
12255
fafb9b18
VM
122562013-04-12 Vladimir Makarov <vmakarov@redhat.com>
12257
12258 PR target/56903
12259 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
12260 lra_in_progress for return.
12261
9a946fd6
GY
122622013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
12263
12264 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
12265 define_insn into define_insn_and_split and emit movsicc patterns.
12266
41b83758
GY
122672013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
12268
12269 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
12270
d3afd9aa
RB
122712013-04-12 Richard Biener <rguenther@suse.de>
12272
12273 * tree-pass.h (TODO_do_not_ggc_collect): New.
12274 * passes.c (execute_one_ipa_transform_pass): Honor
12275 TODO_do_not_ggc_collect.
12276 (execute_one_pass): Likewise.
12277
12278 Revert
12279 2013-04-10 Richard Biener <rguenther@suse.de>
12280
12281 * passes.c (init_optimization_passes): Remove reload pass.
12282 * ira.c (do_reload): Merge into ...
12283 (ira): ... this.
12284 (rest_of_handle_reload): Remove.
12285 (pass_reload): Likewise.
12286 * config/i386/i386.c (ix86_option_override): Refer to ira instead
12287 of reload for vzeroupper pass placement.
12288
06f9b387
JJ
122892013-04-12 Jakub Jelinek <jakub@redhat.com>
12290
12291 PR tree-optimization/56918
12292 PR tree-optimization/56920
12293 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
12294 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
12295 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
12296 use wide_mul_with_sign method.
12297
953094d2
RB
122982013-04-12 Richard Biener <rguenther@suse.de>
12299
12300 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
12301 not be considered a gimple constant.
12302
bb506982
MG
123032013-04-12 Marc Glisse <marc.glisse@inria.fr>
12304
12305 * fold-const.c (const_binop): Handle vector shifts by a scalar.
12306 (fold_binary_loc): Call const_binop also for mixed vector-scalar
12307 operations.
12308
4b84d650
JJ
123092013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
12310 Jakub Jelinek <jakub@redhat.com>
12311
12312 * opts.c: Include diagnostic-color.h.
12313 (common_handle_option): Handle OPT_fdiagnostics_color_.
12314 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
12315 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
12316 (diagnostic-color.o): New.
12317 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
12318 (diagnostic_color_rule): New enum.
12319 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
12320 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
12321 the location string.
12322 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
12323 either NULL, or color kind.
12324 * diagnostic-color.c: New file.
12325 * diagnostic-color.h: New file.
12326 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
12327 arguments.
12328 * doc/invoke.texi (-fdiagnostics-color): Document.
12329 * pretty-print.h (pp_show_color): Define.
12330 (struct pretty_print_info): Add show_color field.
12331 * diagnostic.c: Include diagnostic-color.h.
12332 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
12333 macros. Colorize error:, warning: etc. strings and also the location
12334 string.
12335 (diagnostic_show_locus): Colorize the caret line.
12336 * pretty-print.c: Include diagnostic-color.h.
12337 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
12338 inside of %< %> quotes or quoted through q format modifier.
12339
067a1e71
AK
123402013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12341
33159866 12342 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
067a1e71 12343
33159866 123442013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b056c910
N
12345
12346 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
12347 code in CC_NZ mode.
12348 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
12349 pattern.
12350
7b55f98f
MP
123512013-04-11 Marek Polacek <polacek@redhat.com>
12352
12353 PR tree-optimization/48184
33159866 12354 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7b55f98f 12355
966b587e
EB
123562013-04-11 Eric Botcazou <ebotcazou@adacore.com>
12357
12358 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
12359 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
12360 (skip_simple_arithmetic): Tidy up.
12361 * tree.h (skip_simple_constant_arithmetic): Declare.
12362
33159866 123632013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f8bf91ab
N
12364
12365 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
12366
1d42c1ec
RB
123672013-04-11 Richard Biener <rguenther@suse.de>
12368
12369 * tree-vect-loop.c (get_initial_def_for_induction): Properly
12370 generate vector constants.
12371
4ba5ea11
RB
123722013-04-11 Richard Biener <rguenther@suse.de>
12373
12374 PR tree-optimization/56878
12375 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
12376 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
12377 New function.
12378 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
12379 Prefer to align the DR with the most invariant base address.
12380
f0defe58
SKS
123812013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
12382
12383 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
12384 comment.
12385
d07458be
JG
123862013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
12387
12388 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
12389 floating-point vector comparisons against 0.
12390
146b8692
JJ
123912013-04-11 Jakub Jelinek <jakub@redhat.com>
12392
12393 PR tree-optimization/56899
12394 * fold-const.c (extract_muldiv_1): Apply distributive law
12395 only if TYPE_OVERFLOW_WRAPS (ctype).
12396
b8578ff7
BC
123972013-04-11 Bin Cheng <bin.cheng@arm.com>
12398
12399 PR target/56124
12400 * ira-costs.c (scan_one_insn): Check whether the source rtx of
12401 loading has side effect.
12402
0ea8a6f9
SB
124032013-04-10 Steven Bosscher <steven@gcc.gnu.org>
12404
12405 * config/sparc/sparc.c: Include tree-pass.h.
12406 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
12407 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
12408 head of file. Change return type. Split off gate function.
12409 (sparc_gate_work_around_errata): New function.
12410 (pass_work_around_errata): New pass definition.
12411 (insert_pass_work_around_errata) New pass insert definition to
12412 insert pass_work_around_errata just after delayed-branch scheduling.
12413 (sparc_option_override): Insert the pass.
12414 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
12415
42e37616
DM
124162013-04-10 David S. Miller <davem@davemloft.net>
12417
89deeb3b
DM
12418 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
12419 or -mcpu=hypersparc.
12420
42e37616
DM
12421 * target.def (cstore_mode): New hook.
12422 * target.h: Include insn-codes.h
12423 * targhooks.c: Likewise.
12424 (default_cstore_mode): New function.
12425 * targhooks.h: Declare it.
12426 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
12427 * doc/tm.texi: Rebuild.
12428 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
12429 target hook, rather than inspecting the insn_data.
12430 * config/sparc/sparc.c (sparc_cstore_mode): New function.
12431 (TARGET_CSTORE_MODE): Redefine.
12432 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
12433 result patterns.
12434 * config/sparc/predicates.md (cstore_result_operand): New special
12435 predicate.
12436 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
12437 Use it for operand 0.
12438 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
12439 (*snesi_special): Likewise.
12440 (*snesi_zero): Likewise.
12441 (*seqsi_zero): Likewise.
12442 (*sltu_insn): Likewise.
12443 (*sgeu_insn): Likewise.
12444 (*seqdi_special): Make operand 0 and comparison operation be of
12445 DImode.
12446 (*snedi_special): Likewise.
12447 (*snedi_special_vis3): Likewise.
12448 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
12449 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
12450 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
12451 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
12452 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
12453 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
12454 (*sltu_extend_sp64): Likewise.
12455 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
12456 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
12457 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
12458 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
12459 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
12460
95ca411e
YZ
124612013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
12462
12463 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
12464 (aarch64_start_file): Use the new function.
12465
6782438d 124662013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33159866 12467 Jason Merrill <jason@redhat.com>
6782438d
SKS
12468
12469 * common.opt: Add -gdwarf.
12470 * opts.c (common_handle_option): Handle it.
12471 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
12472
bb313b93
RB
124732013-04-10 Richard Biener <rguenther@suse.de>
12474
12475 * passes.c (execute_todo): Do not call ggc_collect conditional here.
12476 (execute_one_ipa_transform_pass): But unconditionally here.
12477 (execute_one_pass): And here.
12478 (init_optimization_passes): Remove reload pass.
12479 * tree-pass.h (TODO_ggc_collect): Remove.
12480 (pass_reload): Likewise.
12481 * ira.c (do_reload): Merge into ...
12482 (ira): ... this.
12483 (rest_of_handle_reload): Remove.
12484 (pass_reload): Likewise.
12485 * config/i386/i386.c (ix86_option_override): Refer to ira instead
12486 of reload for vzeroupper pass placement.
12487 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
12488 and todo_flags_finish of all passes.
12489
793d9a16
RB
124902013-04-10 Richard Biener <rguenther@suse.de>
12491
12492 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
12493 first_const_oprnd field, rename first_def_type to first_op_type.
12494 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
12495 (vect_get_and_check_slp_defs): Always use the type of the
12496 operand. Allow mixed vect_external_def, vect_constant_def types.
12497 (vect_get_constant_vectors): Handle mixed vect_external_def,
12498 vect_constant_def types.
12499
12211b99 125002013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
ee8a9b7b
JR
12501
12502 PR tree-optimization/55524
12503 * tree-ssa-math-opts.c
12504 (convert_mult_to_fma): Don't use an fms construct
12505 when we don't have an fms operation, but fnma, and it looks
12506 likely that we'll be able to use the latter.
12507
12211b99 125082013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6957a6f6
ZZ
12509
12510 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
12511 function.
12512 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
12513 inline fail caused by overwritable functions.
12514
34ab4a5b
CJW
125152013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
12516
12517 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
12518 unnecessary bits in the constant power of two case.
12519
abf9bfbc
RB
125202013-04-10 Richard Biener <rguenther@suse.de>
12521
12522 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
12523 broken code swapping operands.
12524 (vect_build_slp_tree): Do not compute load permutations here.
12525 (vect_analyze_slp_instance): Compute load permutations here,
12526 after building the SLP tree.
12527
f408477e
CB
125282013-04-09 Christian Bruel <christian.bruel@st.com>
12529
12530 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
12531 of next/prev_real_insn.
12532
5ac42672
JH
125332013-04-09 Jan Hubicka <jh@suse.cz>
12534
abf9bfbc
RB
12535 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
12536 Drop aliased parameter.
5ac42672
JH
12537 (function_and_variable_visibility): Do not handle alias pairs.
12538 * cgraph.c (varpool_externally_visible_p): Update prototype.
12539 * varpool.c (varpool_add_new_variable): Update.
12540
5017f1d2
KT
125412013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12542
12543 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
12544
48eecbee
SB
125452013-04-09 Steven Bosscher <steven@gcc.gnu.org>
12546
a949cf1c
SB
12547 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
12548
48eecbee
SB
12549 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
12550
75ef8e3d
MP
125512013-04-09 Marek Polacek <polacek@redhat.com>
12552
12553 PR tree-optimization/48762
33159866 12554 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
75ef8e3d 12555
23847df4
RB
125562013-04-09 Richard Biener <rguenther@suse.de>
12557
12558 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
12559 dealing with cost.
12560 (vect_build_slp_tree): Likewise.
12561 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
12562 calculating the cost of a SLP instance.
12563 (vect_analyze_slp_instance): Use it from here, after building
12564 the SLP tree.
12565
ea3a0fde
JJ
125662013-04-09 Jakub Jelinek <jakub@redhat.com>
12567
12568 PR middle-end/56883
12569 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
12570 expand_omp_for_static_chunk): Use simple_p = true in
12571 force_gimple_operand_gsi calls when assigning to addressable decls.
12572
a32dfe9d
JL
125732013-04-09 Jeff Law <law@redhat.com>
12574
12575 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
12576 when the boolean was created by converting a wider object which
12577 had a boolean range.
12578
d755c7ef
RB
125792013-04-09 Richard Biener <rguenther@suse.de>
12580
12581 * tree-vectorizer.h (slp_void_p): Remove.
12582 (slp_tree): Typedef before _slp_tree declaration.
12583 (struct _slp_tree): Use a vector of slp_tree as children.
12584 (vect_get_place_in_interleaving_chain): Remove.
12585 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
12586 Move ...
12587 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
12588 and make static.
12589 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
12590 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
12591 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
12592 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
12593 Use slp_node instead of slp_void_p and adjust.
12594
3d741091
RB
125952013-04-09 Richard Biener <rguenther@suse.de>
12596
12597 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
12598 work that is not necessary.
12599
39307ba7
JJ
126002013-04-09 Jakub Jelinek <jakub@redhat.com>
12601
12602 PR tree-optimization/56854
12603 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
12604 forward into clobber stmts if it would change MEM_REF lhs into
12605 non-MEM_REF.
12606
343881fd
MK
126072013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
12608
12609 * tree.c (type_hash_lookup, type_hash_add): Make static.
12610 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
12611
3922658a
RB
126122013-04-09 Richard Biener <rguenther@suse.de>
12613
12614 * tree.h (unsave_expr_now): Remove.
12615 * tree-inline.c (mark_local_for_remap_r): Remove.
12616 (unsave_expr_1): Likewise.
12617 (unsave_r): Likewise.
12618 (unsave_expr_now): Likewise.
12619 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
12620 (propagate_tree_value): Likewise.
12621
9fb6b620
SB
126222013-04-08 Steven Bosscher <steven@gcc.gnu.org>
12623
12624 * doc/rtl.texi (sequence): Rewrite documentation to match the
12625 current use of SEQUENCE rtl objects.
12626 * rtl.def (SEQUENCE): Likewise.
12627
12628 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
12629 Update documentation.
12630 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
12631 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
12632
12633 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
12634
8ddb5a29
TJ
126352013-04-08 Teresa Johnson <tejohnson@google.com>
12636
12637 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
12638 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33159866 12639 methods.
8ddb5a29
TJ
12640 (estimate_edge_size_and_time): Add comment to suggest using rounding
12641 methods.
12642 (estimate_node_size_and_time): Ditto.
12643 (remap_edge_change_prob): Use helper rounding divide methods.
12644 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
12645 (gimple_mod_pow2_value_transform): Ditto.
12646 (gimple_mod_subtract_transform): Ditto.
12647 (gimple_ic_transform): Ditto.
12648 (gimple_stringops_transform): Ditto.
12649 * stmt.c (conditional_probability): Ditto.
12650 (emit_case_dispatch_table): Ditto.
12651 * lto-cgraph.c (merge_profile_summaries): Ditto.
12652 * tree-optimize.c (execute_fixup_cfg): Ditto.
12653 * cfgcleanup.c (try_forward_edges): Ditto.
12654 * cfgloopmanip.c (scale_loop_profile): Ditto.
12655 (loopify): Ditto.
12656 (duplicate_loop_to_header_edge): Ditto.
12657 (lv_adjust_loop_entry_edge): Ditto.
12658 * tree-vect-loop.c (vect_transform_loop): Ditto.
12659 * profile.c (compute_branch_probabilities): Ditto.
12660 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
12661 * lto-streamer-in.c (input_cfg): Ditto.
12662 * gimple-streamer-in.c (input_bb): Ditto.
12663 * ipa-cp.c (update_profiling_info): Ditto.
12664 (update_specialized_profile): Ditto.
12665 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
12666 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33159866 12667 rounding methods.
8ddb5a29
TJ
12668 * sched-rgn.c (compute_dom_prob_ps): Ditto.
12669 (compute_trg_info): Ditto.
12670 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
12671 (purge_dead_edges): Ditto.
12672 * loop-unswitch.c (unswitch_loop): Ditto.
12673 * cgraphclones.c (cgraph_clone_edge): Ditto.
12674 (cgraph_clone_node): Ditto.
12675 * tree-inline.c (copy_bb): Ditto.
12676 (copy_edges_for_bb): Ditto.
12677 (initialize_cfun): Ditto.
12678 (copy_cfg_body): Ditto.
12679 (expand_call_inline): Ditto.
12680
661e6bd7
KT
126812013-04-08 Kai Tietz <ktietz@redhat.com>
12682
12683 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
12684 TARGET_CYGWIN64 by TARGET_64BIT.
12685
105766f3
JR
126862013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
12687
12688 * config/epiphany/epiphany.md (GPR_1): New constant.
12689 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
12690 * config/epiphany/epiphany.c (gen_compare_reg):
12691 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
12692 is already in place.
12693 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
12694 Don't require being called during rtl expansion; If y operlaps r0,
12695 return 0.
12696 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
12697 (epiphany_expand_epilogue): Likewise.
12698
8afab237
JR
12699 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
12700 Don't use CC_FPmode for ORDERED / UNORDERED.
33159866 12701 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
8afab237 12702
fa7707d6
JR
12703 * config/epiphany/constraints.md (CnL): New constraint.
12704 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
12705 * config/epiphany/predicates.md (add_operand): Allow 1024.
12706
5138e18d
JR
12707 * config/epiphany/epiphany.md (logical_op): New code iterator.
12708 (op_mnc): New code attribute.
12709 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
12710 (mov_f+1, mov_f+2): New peephole2 patterns.
12711
2ccc703d
JR
12712 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
12713 (cstoresi4): Also allow re-use of zero result when doing a NE
12714 comparison to a non-zero operand.
aefb0819 12715 Use (clobber (scratch)) for first insn if the gpr output is not needed.
2ccc703d 12716
093ac0a5
JR
12717 * config/epiphany/epiphany.md (<insn_opname>v2si3):
12718 Use gen_addsi3_i / gen_subsi3_i.
12719
f223bb13
JJ
127202013-04-08 Jakub Jelinek <jakub@redhat.com>
12721
12722 PR c++/34949
12723 PR c++/50243
12724 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
12725 contain anything but clobbers, at most one __builtin_stack_restore,
12726 optionally debug stmts and final resx, and if it has at least one
12727 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
12728 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
12729 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
12730 which isn't defaut definition, remove them.
12731 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
12732 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
12733 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
12734 with MEM_REF LHS with SSA_NAME address.
12735
4481581f
JL
127362013-04-08 Jeff Law <law@redhat.com>
12737
12738 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
a32dfe9d 12739
451dabda
RB
127402013-04-08 Richard Biener <rguenther@suse.de>
12741
12742 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
12743 extra newline.
12744 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
12745 determined vector type.
12746 (vect_analyze_data_refs): Likewise.
12747 (vect_get_new_vect_var): Adjust.
12748 (vect_create_destination_var): Preserve SSA name versions.
12749 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
12750 not dump anything here.
12751
3b088b47
JR
127522013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
12753
12754 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
12755 Add member lr_slot_known.
12756 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
12757 if necessary.
12758 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
12759 Remove code that sets lr_slot_offset according to what a previous
12760 version of epiphany_emit_save_restore used to do.
12761 (epiphany_emit_save_restore): When doing an lr save or restore,
12762 set/verify lr_slot_known and lr_slot_offset.
12763
d8484d41
XQ
127642013-04-08 Xinyu Qi <xyqi@marvell.com>
12765
33159866
UB
12766 PR target/54338
12767 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
d8484d41
XQ
12768 in ALL_REGS.
12769
481be1c4
RB
127702013-04-08 Richard Biener <rguenther@suse.de>
12771
12772 * alias.c (find_base_term): Fix thinko in previous change.
12773
401f3a81
JJ
127742013-04-08 Jakub Jelinek <jakub@redhat.com>
12775
12776 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
12777 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
12778 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
12779 if possible to compute val.
12780 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
12781 For QImode integers don't require anything about precision. Use
12782 const_with_all_bytes_same to find out if the constant doesn't have
12783 repeated bytes in it.
12784
03ed99a8
AK
127852013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12786
12787 * config/s390/s390.c (s390_expand_insv): Only accept insertions
12788 within mode size.
12789
781b2e62
MP
127902013-04-08 Marek Polacek <polacek@redhat.com>
12791
12792 PR rtl-optimization/48182
12793 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
12794 value to 1.
12795
27e430a2
JDA
127962013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12797
12798 PR target/55487
12799 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
12800 nuses, make sure we have a label.
12801
4902aa64
BS
128022013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12803
12804 PR target/56843
12805 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
12806 (rs6000_emit_swdiv_low_precision): Remove.
12807 (rs6000_emit_swdiv): Rewrite to handle between one and four
12808 iterations of Newton-Raphson generally; modify required number of
12809 iterations for some cases.
12810 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
12811
7bca81dc
SB
128122013-04-05 Steven Bosscher <steven@gcc.gnu.org>
12813
12814 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
12815 set-but-unused variable.
12816
12817 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
12818 basic blocks of released function bodies garbage-collectable.
12819
12820 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
12821 (struct rtl_opt_pass): Add TODO_df_finish.
12822
12823 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
12824
4542a38a
GY
128252013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
12826
12827 * config/arm/constraints.md (q): New constraint.
12828 * config/arm/ldrdstrd.md: New file.
12829 * config/arm/arm.md (ldrdstrd.md) New include.
12830 (arm_movdi): Use "q" instead of "r" constraint
12831 for double-word memory access.
12832 (movdf_soft_insn): Likewise.
12833 * config/arm/vfp.md (movdi_vfp): Likewise.
12834 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33159866 12835 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4542a38a
GY
12836 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
12837 (mem_ok_for_ldrd_strd): Likewise.
12838 (output_move_double): Update assertion.
12839
2385b218
GY
128402013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
12841
12842 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
12843
75fe1cb5
GY
128442013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
12845
12846 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
12847 define_insn_and_split.
12848 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
12849
dd660e8e
GY
128502013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
12851
12852 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
12853 define_insn_and_split.
33159866 12854 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
dd660e8e
GY
12855 (shiftsi3_compare): New pattern.
12856 (rrx): New pattern.
12857 * config/arm/unspecs.md (UNSPEC_RRX): New.
12858
045e472c
GY
128592013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
12860
12861 * config/arm/arm.md (negdi_extendsidi): New pattern.
12862 (negdi_zero_extendsidi): Likewise.
12863
3f3bf1a8
GY
128642013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
12865
12866 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
12867 define_insn_and_split.
12868 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
12869 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
12870
b0b49556
GY
128712013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
12872
12873 * config/arm/arm.md (arm_subdi3): Convert define_insn into
12874 define_insn_and_split.
12875 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
12876 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
12877
d633dd84
GY
128782013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
12879
12880 * config/arm/arm.md (subsi3_carryin): New pattern.
12881 (subsi3_carryin_const): Likewise.
12882 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
12883 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
12884
f4499066
GY
128852013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
12886
12887 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
12888
ceef6fd9
GY
128892013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
12890
12891 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 12892 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 12893
ddbdd8a7
KT
128942013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12895
12896 * config/arm/arm.c (arm_expand_builtin): Change fcode
12897 type to unsigned int.
12898
8456d78a
RR
128992013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12900
12901 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
12902
526c230f
ILT
129032013-04-04 Ian Lance Taylor <iant@google.com>
12904
33159866
UB
12905 * doc/standards.texi (Standards): The Go frontend supports the Go 1
12906 language standard.
526c230f 12907
3cfbe04d
SB
129082013-04-04 Steven Bosscher <steven@gcc.gnu.org>
12909
12910 PR middle-end/56729
12911 * df-scan.c (df_insn_delete): Disable failing assert.
12912
dfa3f8d0
KT
129132013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12914
12915 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
12916 New function prototype.
12917 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
12918 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
12919 (arm_builtin_vectorized_function): New function.
12920
f7837758
KT
129212013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12922
12923 * config/arm/arm_neon_builtins.def: New file.
12924 * config/arm/arm.c (neon_builtin_data): Move contents to
12925 arm_neon_builtins.def.
12926 (enum arm_builtins): Include neon builtin definitions.
12927 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33159866 12928 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
f7837758 12929
39c1b6db
MP
129302013-04-04 Marek Polacek <polacek@redhat.com>
12931
12932 PR tree-optimization/48186
12933 * predict.c (maybe_hot_frequency_p): Return false if
12934 HOT_BB_FREQUENCY_FRACTION is 0.
12935 (cgraph_maybe_hot_edge_p): Likewise.
12936
314f64eb
RB
129372013-04-04 Richard Biener <rguenther@suse.de>
12938
12939 PR tree-optimization/56826
12940 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
12941 more accurately.
12942
51a905b2
RB
129432013-04-04 Richard Biener <rguenther@suse.de>
12944
12945 PR tree-optimization/56213
12946 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33159866 12947 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
51a905b2 12948
f1bf4f3a
RB
129492013-04-04 Richard Biener <rguenther@suse.de>
12950
12951 PR tree-optimization/56837
12952 * tree-loop-distribution.c (classify_partition): For non-zero
12953 values require that the value has the same precision as its
12954 mode to be useful as memset value.
12955
0bca7ded
NC
129562013-04-03 Nick Clifton <nickc@redhat.com>
12957
33159866 12958 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
0bca7ded
NC
12959 (fmssf4): Use fmsf.s on E3V5 architectures.
12960 (fnmasf4): Use fnmaf.s on E3V5 architectures.
12961 (fnmssf4): Use fnmsf.s on E3V5 architectures.
12962
b4019227
JL
129632013-04-03 Jeff Law <law@redhat.com>
12964
12965 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
12966 (lra-eliminations.o): Likewise.
12967
f57ddb5b
TJ
129682013-04-03 Teresa Johnson <tejohnson@google.com>
12969
12970 * gcov-io.c (compute_working_sets): Moved most of body of old
33159866 12971 compute_working_sets here from profile.c.
f57ddb5b 12972 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33159866
UB
12973 (gcov_working_set_t): Moved typedef here from basic-block.h
12974 (compute_working_set): Declare.
f57ddb5b
TJ
12975 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
12976 (get_working_sets): Renamed from compute_working_set,
33159866 12977 replace most of body with call to new compute_working_sets.
f57ddb5b 12978 (get_exec_counts): Replace call to compute_working_sets
33159866
UB
12979 to get_working_sets.
12980 * profile.h (get_working_sets): Renamed from compute_working_set.
f57ddb5b 12981 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33159866 12982 to get_working_sets.
f57ddb5b
TJ
12983 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
12984 * gcov-dump.c (dump_working_sets): New function.
12985
12211b99 129862013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
5e0919f1
KZ
12987
12988 * hwint.c (sext_hwi, zext_hwi): New functions.
12989 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
12990 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
12991 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
12992 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
12993 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
12994 (sext_hwi, zext_hwi): New functions.
0bca7ded 12995
be672e08
JL
129962013-04-03 Jeff Law <law@redhat.com>
12997
12998 PR tree-optimization/56799
33159866
UB
12999 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
13000 back test for widening conversion erroneously dropped in prior change.
be672e08 13001
9d821fa5
KT
130022013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13003
13004 PR target/56809
13005 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
13006 instead of next_real_insn.
13007
71c581e7
MP
130082013-04-03 Marek Polacek <polacek@redhat.com>
13009
13010 PR sanitizer/55702
33159866 13011 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
71c581e7 13012
4a32ef80
KT
130132013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13014
13015 PR target/56809
13016 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
13017 next_real_insn.
13018 (thumb1_output_casesi): Likewise.
13019 (thumb2_output_casesi): Likewise.
13020
1b2253d4
RB
130212013-04-03 Richard Biener <rguenther@suse.de>
13022
13023 PR tree-optimization/56817
13024 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
13025 Split out ...
13026 (tree_unroll_loops_completely_1): ... new function to manually
13027 walk the loop tree, properly defering outer loops of unrolled
13028 loops to later iterations.
13029
38000232
MG
130302013-04-03 Marc Glisse <marc.glisse@inria.fr>
13031
13032 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
13033 (vectorizable_load): Likewise.
13034 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
13035 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
13036
3fa35298
MG
130372013-04-03 Marc Glisse <marc.glisse@inria.fr>
13038
13039 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
13040 BIT_FIELD_REF.
13041
b3d45ff0
UW
130422013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13043
13044 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
13045
ec9202a8
BC
130462013-04-03 Bin Cheng <bin.cheng@arm.com>
13047
13048 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
13049
6805bd36
MG
130502013-04-03 Marc Glisse <marc.glisse@inria.fr>
13051
13052 PR tree-optimization/56790
33159866
UB
13053 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
13054 folding.
6805bd36 13055
da694a77
MG
130562013-04-03 Marc Glisse <marc.glisse@inria.fr>
13057
13058 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
13059 Handle VEC_MERGE.
13060 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
13061 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
13062 equal arguments.
13063
4e7d7b3d
JJ
130642013-04-03 Jakub Jelinek <jakub@redhat.com>
13065
13066 PR c/19449
13067 * tree.h (force_folding_builtin_constant_p): New decl.
13068 * builtins.c (force_folding_builtin_constant_p): New variable.
13069 (fold_builtin_constant_p): Fold immediately also if
13070 force_folding_builtin_constant_p.
13071
e6c9d234
RB
130722013-04-03 Richard Biener <rguenther@suse.de>
13073
13074 PR tree-optimization/56812
13075 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
13076 DRs of the same interleaving chain are independent.
13077
984d07dd
JM
130782013-04-02 Jason Merrill <jason@redhat.com>
13079
13080 * gdbinit.in (pbb): Use debug fn.
13081
622849c9
LC
130822013-04-02 Lawrence Crowl <crowl@google.com>
13083
13084 * sese.h (struct ivtype_map_elt_s): Remove unused.
13085 (extern debug_ivtype_map): Remove unused.
13086 (extern eq_ivtype_map_elts): Remove unused.
13087 * sese.c (debug_ivtype_map): Removed unused.
13088 (debug_ivtype_map_1): Removed unused.
13089 (debug_ivtype_elt): Remove unused.
13090 (eq_ivtype_map_elts): Remove unused.
13091
13092
82c0e1a0
KT
130932013-04-02 Kai Tietz <ktietz@redhat.com>
13094
13095 PR target/52790
13096 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
13097 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33159866
UB
13098 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
13099 function.
82c0e1a0
KT
13100 (legitimize_pe_coff_symbol): Likewise.
13101 (is_imported_p): New helper-function.
13102 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
13103 for Windows x64 targets.
13104 (ix86_expand_prologue): Optimize for pe-coff targets.
13105 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
13106 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
13107 medium/large code-model.
13108 (legitimize_pic_address): Likewise.
13109 (legitimize_tls_address): Likewise.
13110 (ix86_expand_call): Likewise.
13111 (x86_output_mi_thunk): Likewise.
13112 (get_dllimport_decl): Add new beimport argument.
13113 (construct_plt_address): Don't assert for x64 pe-coff targets.
13114 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
13115 targets.
13116 (SYMBOL_FLAG_STUBVAR): New macro.
13117 (SYMBOL_REF_STUBVAR_P): Likewise.
13118 * config/i386/winnt.c (stub_list): New structure.
13119 (stub_head): New local variable.
13120 (i386_pe_record_stub): New function.
13121 (i386_pe_file_end): Emit refptr-stubs.
13122
5d751b0c
JJ
131232013-04-02 Jakub Jelinek <jakub@redhat.com>
13124
09bb4c99
JJ
13125 PR rtl-optimization/56745
13126 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
13127 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
13128
a1d8947a
JJ
13129 PR c++/34949
13130 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
13131 and both of them are MEM_REFs, just compare first argument for
13132 equality and attempt to deal even with differing offsets.
13133
5d751b0c
JJ
13134 PR c++/34949
13135 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
13136 of gimple_clobber_p to be MEM_REF.
13137 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
13138 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
13139 after gimplification.
13140 * asan.c (get_mem_ref_of_assignment): Don't instrument
13141 gimple_clobber_p stmts.
13142 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
13143 gimple_clobber_p stmt if they have MEM_REF lhs and
13144 are dead because of another gimple_clobber_p stmt.
13145 * tree-ssa-live.c (clear_unused_block_pointer): Treat
13146 gimple_clobber_p stmts like debug stmts.
13147 (remove_unused_locals): Remove clobbers with MEM_REF lhs
13148 that refer to unused VAR_DECLs or uninitialized values.
13149 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
13150 gimple_clobber_p stmts if they refer to removed parameters.
13151 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
13152 formatting.
13153
e594716a
UB
131542013-04-02 Uros Bizjak <ubizjak@gmail.com>
13155
13156 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
13157 using SWI48 mode attribute.
13158
7a80735b
WM
131592013-04-02 Wei Mi <wmi@google.com>
13160
13161 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
13162 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
13163 *<rotate_insn><mode>3_mask in i386.md.
13164
f423a9e4
AI
131652013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
13166
13167 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
13168
90eb75f2
RB
131692013-04-02 Richard Biener <rguenther@suse.de>
13170
13171 PR tree-optimization/56778
13172 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
13173 Runtime alias tests are not supported for gather loads.
13174 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
13175 stmts referenced from SSA operands before updating SSA form.
13176
d8c69a92
IC
131772013-04-02 Ian Caulfield <ian.caulfield@arm.com>
13178 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13179
13180 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
13181 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
13182 * config/arm/cortex-a53.md: New file.
13183 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
13184 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
13185 * config/arm/arm.c (arm_issue_rate): Likewise.
13186 * config/arm/arm-tune.md: Regenerate
13187 * config/arm/arm-tables.opt: Regenerate.
13188 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 13189
239eb04c
ZC
131902013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
13191
13192 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
13193 non-static link.
13194
c902d3c8
SN
131952013-04-02 Sofiane Naci <sofiane.naci@arm.com>
13196
d8c69a92
IC
13197 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
13198 scalar load/store operations using B/H registers.
c902d3c8
SN
13199 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
13200
051d0e2f
SN
132012013-04-02 Sofiane Naci <sofiane.naci@arm.com>
13202
13203 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
13204 scalar move.
13205 * config/aarch64/aarch64.c
13206 (aarch64_simd_scalar_immediate_valid_for_move): New.
13207 * config/aarch64/aarch64-protos.h
13208 (aarch64_simd_scalar_immediate_valid_for_move): New.
13209 * config/aarch64/constraints.md (Dh, Dq): New.
13210 * config/aarch64/iterators.md (hq): New.
13211
0ee1e3d9
EB
132122013-04-02 Eric Botcazou <ebotcazou@adacore.com>
13213
13214 * reorg.c (get_branch_condition): Deal with conditional returns.
13215 (fill_simple_delay_slots): Remove dead code dealing with jumps.
13216
136fb3f7
WM
132172013-04-01 Wei Mi <wmi@google.com>
13218
13219 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
13220 Truncate operand 2 using %b asm operand modifier.
13221 (*<shift_insn><mode>3_mask): Ditto.
13222 (*<rotate_insn><mode>3_mask): Ditto.
13223
6388c738
SB
132242013-04-01 Steven Bosscher <steven@gcc.gnu.org>
13225
13226 PR middle-end/56798
13227 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
13228
f7a4d826
KK
132292013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
13230
13231 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
13232 of next_real_insn.
13233 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
13234
4b943a49
LC
132352013-03-30 Lawrence Crowl <crowl@google.com>
13236
13237 * dse.c (clear_alias_sets): Remove never set.
13238 (disqualified_clear_alias_sets): Remove never set.
13239 (clear_alias_mode_pool): Remove never set.
13240 (dse_step0): Remove condition that is never true.
13241 (canon_address): Remove condition that is never true.
13242 (dse_step7): Remove condition that is never true.
13243 (rest_of_handle_dse): Remove condition that is never true.
13244 (rest_of_handle_dse::did_global): Remove never read from above.
13245 (dse_step2_spill): Remove never called from above.
13246 (dse_step5_spill): Remove never called from above.
13247
39718607
SB
132482013-03-30 Steven Bosscher <steven@gcc.gnu.org>
13249
da5c6bde
SB
13250 * doc/md.texi (Standard Names) <casesi>: Update documentation for
13251 JUMP_TABLE_DATA changes.
13252 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
13253 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
13254 (Insns) <jump_table_data>: New entry.
13255 * doc/tm.texi: Regenerate.
13256
39718607
SB
13257 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
13258
13259 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
13260 for table jump at the end of a basic block using tablejump_p.
13261 * targhooks.c (default_invalid_within_doloop): Likewise.
13262 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
13263 target hook implementation that is identical to the default hook.
13264 (rs6000_invalid_within_doloop): Remove.
13265
13266 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
13267 unused variable from tablejump_p call.
13268
13269 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
13270 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
13271 (INSN_DELETED_P): Likewise.
13272 (emit_jump_table_data): New prototype.
13273 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
13274 after 4th as unused.
13275 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
13276 * sched-vis.c (print_insn): Likewise.
13277 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
13278 insn for compatibility with back ends that use next_active_insn to
13279 identify jump table data.
13280 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
13281 (remove_insn): Likewise.
13282 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
13283 to be emitted.
13284 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
13285 (emit_jump_table_data): New function.
13286
13287 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
13288 basic block, a JUMP_TABLE_DATA never is.
13289 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
13290 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
13291 off from code handling real insns.
13292 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
13293 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
13294 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
13295 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
13296 is not a NONDEBUG_INSN_P.
13297 * ira-costs.c (scan_one_insn): Likewise.
13298 * jump.c (mark_all_labels): Likewise.
13299 (mark_jump_label_1): Likewise.
13300 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
13301 * lra.c (get_insn_freq): Expect all insns reaching here to be in
13302 a basic block.
13303 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
13304 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
13305 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
13306 JUMP_TABLE_DATA_P insns.
13307 (calculate_elim_costs_all_insns): Likewise.
13308 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
13309 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
13310 (delete_output_reload): Code style fixups.
13311 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
13312 insn flags on this non-insn.
13313 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
13314 as scheduling barriers, for pre-change compatibility.
13315 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
13316 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
13317
13318 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
13319 redundant JUMP_TABLE_DATA_P test.
13320 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
13321 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
13322 (frv_for_each_packet): Likewise.
13323 * config/i386/i386.c (min_insn_size): Likewise.
13324 (ix86_avoid_jump_mispredicts): Likewise.
13325 * config/m32r/m32r.c (m32r_is_insn): Likewise.
13326 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
13327 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
13328 (mips16_insn_length): Robustify.
13329 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
13330 (mips16_split_long_branches): Likewise.
13331 * config/pa/pa.c (pa_combine_instructions): Likewise.
13332 * config/rs6000/rs6000.c (get_next_active_insn): Treat
13333 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
13334 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
13335 as contributing to pool range lengths.
13336 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
13337 Remove redundant JUMP_TABLE_DATA_P test.
13338 (sh_loop_align): Likewise.
13339 (split_branches): Likewise.
13340 (sh_insn_length_adjustment): Likewise.
13341 * config/spu/spu.c (get_branch_target): Likewise.
13342
0208f7da
JH
133432013-03-29 Jan Hubicka <jh@suse.cz>
13344
13345 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
13346 gcov streaming; stream hot bb threshold to ltrans.
13347 * predict.c (get_hot_bb_threshold): Break out from ....
13348 (maybe_hot_count_p): ... here.
13349 (set_hot_bb_threshold): New function.
13350 * lto-section-in.c (lto_section_name): Add profile.
13351 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
13352 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
13353 and data-streamer.h
13354 (histogram_entry): New structure.
13355 (histogram, histogram_pool): New global vars.
13356 (histogram_hash): New structure.
13357 (histogram_hash::hash): New method.
13358 (histogram_hash::equal): Likewise.
13359 (account_time_size): New function.
13360 (cmp_counts): New function.
13361 (dump_histogram): New function.
13362 (ipa_profile_generate_summary): New function.
13363 (ipa_profile_write_summary): New function.
13364 (ipa_profile_read_summary): New function.
13365 (ipa_profile): Decide on threshold.
e594716a
UB
13366 (pass_ipa_profile): Add ipa_profile_write_summary and
13367 ipa_profile_read_summary.
0208f7da
JH
13368 * Makefile.in (ipa.o): Update dependencies.
13369 * lto-streamer.h (LTO_section_ipa_profile): New section.
13370
5a6ccc94
GDR
133712013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
13372
13373 * tree.h (VAR_P): New.
13374
39385fa6
PC
133752013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
13376
13377 PR lto/56777
13378 * doc/invoke.texi ([-fwhole-program]): Fix typo.
13379
34f0d87a
SB
133802013-03-29 Steven Bosscher <steven@gcc.gnu.org>
13381
13382 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
13383 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
13384 (control_flow_insn_p): Likewise.
13385 * cfgrtl.c (duplicate_insn_chain): Likewise.
13386 * final.c (get_attr_length_1): Likewise.
13387 (shorten_branches): Likewise.
13388 (final_scan_insn): Likewise.
13389 * function.c (instantiate_virtual_regs): Likewise.
13390 * gcse.c (insert_insn_end_basic_block): Likewise.
13391 * ira-costs.c (scan_one_insn): Likewise.
13392 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
13393 * lra.c (check_rtl): Likewise.
13394 * reload1.c (elimination_costs_in_insn): Likewise.
13395 * reorg.c (follow_jumps): Likewise.
13396
13397 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
13398 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
13399 (thumb_far_jump_used_p): Likewise.
13400 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
13401 (workaround_speculation): Likewise.
13402 (add_sched_insns_for_speculation): Likewise.
13403 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
13404 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
13405 (frv_for_each_packet): Likewise.
13406 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
13407 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
13408 (final_emit_insn_group_barriers): Likewise.
13409 * config/m32r/m32r.c (m32r_is_insn): Likewise.
13410 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
13411 (mips16_insn_length): Likewise.
13412 * config/pa/pa.c (pa_reorg): Likewise.
13413 (pa_combine_instructions): Likewise.
13414 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
13415 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
13416 (sh_reorg): Likewise.
13417 (split_branches): Likewise.
13418 * config/spu/spu.c (get_branch_target): Likewise.
13419
13420 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
13421 JUMP_TABLE_DATA_P.
13422
4ac761b0
KY
134232013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
13424
39385fa6 13425 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
13426 Fix declaration name.
13427
58a49189
LC
134282013-03-28 Lawrence Crowl <crowl@google.com>
13429
13430 * graphds.h (struct graph.indicies): Remove unused.
13431 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
13432 (SCOP_ORIGINAL_PDDRS): Remove unused.
13433 * sese.h (extern insert_loop_close_phis): Removed unused.
13434 (extern insert_guard_phis): Removed unused.
13435 (extern ivtype_map_elt_info): Removed unused.
13436 (new_ivtype_map_elt): Removed unused.
13437 * sese.c (ivtype_map_elt_info): Removed unused.
13438
7b3b6ae4
LC
134392013-03-28 Lawrence Crowl <crowl@google.com>
13440
13441 * Makefile.in: Add several missing include dependences.
13442 (DUMPFILE_H): New.
13443 (test-dump.o): New. This object is not added to any executable,
13444 but is present for ad-hoc testing.
13445 * bitmap.c
13446 (debug (const bitmap_head_def &)): New.
13447 (debug (const bitmap_head_def *)): New.
13448 * bitmap.h
13449 (extern debug (const bitmap_head_def &)): New.
13450 (extern debug (const bitmap_head_def *)): New.
13451 * cfg.c
13452 (debug (edge_def &)): New.
13453 (debug (edge_def *)): New.
13454 * cfghooks.c
13455 (debug (basic_block_def &)): New.
13456 (debug (basic_block_def *)): New.
13457 * dumpfile.h
13458 (dump_node (const_tree, int, FILE *)): Correct source file.
13459 * dwarf2out.c
13460 (debug (die_struct &)): New.
13461 (debug (die_struct *)): New.
13462 * dwarf2out.h
13463 (extern debug (die_struct &)): New.
13464 (extern debug (die_struct *)): New.
13465 * gimple-pretty-print.c
13466 (debug (gimple_statement_d &)): New.
13467 (debug (gimple_statement_d *)): New.
13468 * gimple-pretty-print.h
13469 (extern debug (gimple_statement_d &)): New.
13470 (extern debug (gimple_statement_d *)): New.
13471 * ira-build.c
13472 (debug (ira_allocno_copy &)): New.
13473 (debug (ira_allocno_copy *)): New.
13474 (debug (ira_allocno &)): New.
13475 (debug (ira_allocno *)): New.
13476 * ira-int.h
13477 (extern debug (ira_allocno_copy &)): New.
13478 (extern debug (ira_allocno_copy *)): New.
13479 (extern debug (ira_allocno &)): New.
13480 (extern debug (ira_allocno *)): New.
13481 * ira-lives.c
13482 (debug (live_range &)): New.
13483 (debug (live_range *)): New.
13484 * lra-int.h
13485 (debug (lra_live_range &)): New.
13486 (debug (lra_live_range *)): New.
13487 * lra-lives.c
13488 (debug (lra_live_range &)): New.
13489 (debug (lra_live_range *)): New.
13490 * omega.c
13491 (debug (omega_pb_d &)): New.
13492 (debug (omega_pb_d *)): New.
13493 * omega.h
13494 (extern debug (omega_pb_d &)): New.
13495 (extern debug (omega_pb_d *)): New.
13496 * print-rtl.c
13497 (debug (const rtx_def &)): New.
13498 (debug (const rtx_def *)): New.
13499 * print-tree.c
13500 (debug_tree (tree): Move within file.
13501 (debug_raw (const tree_node &)): New.
13502 (debug_raw (const tree_node *)): New.
13503 (dump_tree_via_hooks (const tree_node *, int)): New.
13504 (debug (const tree_node &)): New.
13505 (debug (const tree_node *)): New.
13506 (debug_verbose (const tree_node &)): New.
13507 (debug_verbose (const tree_node *)): New.
13508 (debug_head (const tree_node &)): New.
13509 (debug_head (const tree_node *)): New.
13510 (debug_body (const tree_node &)): New.
13511 (debug_body (const tree_node *)): New.
13512 (debug_vec_tree (tree): Move and reimplement in terms of dump.
13513 (debug (vec<tree, va_gc> &)): New.
13514 (debug (vec<tree, va_gc> *)): New.
13515 * rtl.h
13516 (extern debug (const rtx_def &)): New.
13517 (extern debug (const rtx_def *)): New.
13518 * sbitmap.c
13519 (debug_raw (simple_bitmap_def &)): New.
13520 (debug_raw (simple_bitmap_def *)): New.
13521 (debug (simple_bitmap_def &)): New.
13522 (debug (simple_bitmap_def *)): New.
13523 * sbitmap.h
13524 (extern debug (simple_bitmap_def &)): New.
13525 (extern debug (simple_bitmap_def *)): New.
13526 (extern debug_raw (simple_bitmap_def &)): New.
13527 (extern debug_raw (simple_bitmap_def *)): New.
13528 * sel-sched-dump.c
13529 (debug (vinsn_def &)): New.
13530 (debug (vinsn_def *)): New.
13531 (debug_verbose (vinsn_def &)): New.
13532 (debug_verbose (vinsn_def *)): New.
13533 (debug (expr_def &)): New.
13534 (debug (expr_def *)): New.
13535 (debug_verbose (expr_def &)): New.
13536 (debug_verbose (expr_def *)): New.
13537 (debug (vec<rtx> &)): New.
13538 (debug (vec<rtx> *)): New.
13539 * sel-sched-dump.h
13540 (extern debug (vinsn_def &)): New.
13541 (extern debug (vinsn_def *)): New.
13542 (extern debug_verbose (vinsn_def &)): New.
13543 (extern debug_verbose (vinsn_def *)): New.
13544 (extern debug (expr_def &)): New.
13545 (extern debug (expr_def *)): New.
13546 (extern debug_verbose (expr_def &)): New.
13547 (extern debug_verbose (expr_def *)): New.
13548 (extern debug (vec<rtx> &)): New.
13549 (extern debug (vec<rtx> *)): New.
13550 * sel-sched-ir.h
13551 (_list_iter_cond_expr): Make inline instead of static.
13552 * sreal.c
13553 (debug (sreal &)): New.
13554 (debug (sreal *)): New.
13555 * sreal.h
13556 (extern debug (sreal &)): New.
13557 (extern debug (sreal *)): New.
13558 * tree.h
13559 (extern debug_raw (const tree_node &)): New.
13560 (extern debug_raw (const tree_node *)): New.
13561 (extern debug (const tree_node &)): New.
13562 (extern debug (const tree_node *)): New.
13563 (extern debug_verbose (const tree_node &)): New.
13564 (extern debug_verbose (const tree_node *)): New.
13565 (extern debug_head (const tree_node &)): New.
13566 (extern debug_head (const tree_node *)): New.
13567 (extern debug_body (const tree_node &)): New.
13568 (extern debug_body (const tree_node *)): New.
13569 (extern debug (vec<tree, va_gc> &)): New.
13570 (extern debug (vec<tree, va_gc> *)): New.
13571 * tree-cfg.c
13572 (debug (struct loop &)): New.
13573 (debug (struct loop *)): New.
13574 (debug_verbose (struct loop &)): New.
13575 (debug_verbose (struct loop *)): New.
13576 * tree-dump.c: Add header dependence.
13577 * tree-flow.h
13578 (extern debug (struct loop &)): New.
13579 (extern debug (struct loop *)): New.
13580 (extern debug_verbose (struct loop &)): New.
13581 (extern debug_verbose (struct loop *)): New.
13582 * tree-data-ref.c
13583 (debug (data_reference &)): New.
13584 (debug (data_reference *)): New.
13585 (debug (vec<data_reference_p> &)): New.
13586 (debug (vec<data_reference_p> *)): New.
13587 (debug (vec<ddr_p> &)): New.
13588 (debug (vec<ddr_p> *)): New.
13589 * tree-data-ref.h
13590 (extern debug (data_reference &)): New.
13591 (extern debug (data_reference *)): New.
13592 (extern debug (vec<data_reference_p> &)): New.
13593 (extern debug (vec<data_reference_p> *)): New.
13594 (extern debug (vec<ddr_p> &)): New.
13595 (extern debug (vec<ddr_p> *)): New.
13596 * tree-ssa-alias.c
13597 (debug (pt_solution &)): New.
13598 (debug (pt_solution *)): New.
13599 * tree-ssa-alias.h
13600 (extern debug (pt_solution &)): New.
13601 (extern debug (pt_solution *)): New.
13602 * tree-ssa-alias.c
13603 (debug (_var_map &)): New.
13604 (debug (_var_map *)): New.
13605 (debug (tree_live_info_d &)): New.
13606 (debug (tree_live_info_d *)): New.
13607 * tree-ssa-alias.h
13608 (extern debug (_var_map &)): New.
13609 (extern debug (_var_map *)): New.
13610 (extern debug (tree_live_info_d &)): New.
13611 (extern debug (tree_live_info_d *)): New.
13612
be77e1e5
JH
136132013-03-28 Jan Hubicka <jh@suse.cz>
13614
13615 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
13616
777e6976
IB
136172013-03-28 Ian Bolton <ian.bolton@arm.com>
13618
13619 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
13620 record only when desired or required.
13621
9cd347ae
UB
136222013-03-28 Uros Bizjak <ubizjak@gmail.com>
13623
13624 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
13625 *vec_extractv2di_1_rex64. Use x64 isa attribute.
13626
33159866 136272013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2a1d1991
N
13628
13629 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
13630 (*andsi3_compare0_uxtw): New pattern.
13631 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
13632 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
13633
89ab31c1
JH
136342013-03-28 Jan Hubicka <jh@suse.cz>
13635
13636 * data-streamer-in.c (streamer_read_gcov_count): New function.
13637 * gimple-streamer-out.c: Include value-prof.h.
13638 (output_gimple_stmt): Output histogram.
13639 (output_bb): Use streamer_write_gcov_count.
13640 * value-prof.c: Include data-streamer.h
13641 (dump_histogram_value): Add HIST_TYPE_MAX.
13642 (stream_out_histogram_value): New function.
13643 (stream_in_histogram_value): New function.
13644 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
13645 (stream_out_histogram_value, stream_in_histogram_value): Declare.
13646 * data-streamer-out.c (streamer_write_gcov_count): New function.
13647 (streamer_write_gcov_count_stream): New function.
13648 * lto-cgraph.c (lto_output_edge): Update counter streaming.
13649 (lto_output_node): Likewise.
13650 (input_node, input_edge): Likewise.
13651 * lto-streamer-out.c (output_cfg): Update streaming.
13652 * lto-streamer-in.c (input_cfg): Likewise.
13653 * data-streamer.h (streamer_write_gcov_count,
13654 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
13655 * gimple-streamer-in.c: Include value-prof.h
13656 (input_gimple_stmt): Input histograms.
13657 (input_bb): Update profile streaming.
13658
e594716a 136592013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 13660
33159866 13661 * genmodes.c (emit_max_int): New function.
8697be17 13662 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
13663 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
13664 Added doc.
8697be17 13665 * machmode.def: Fixed comment.
89ab31c1 13666
e594716a 136672013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
13668
13669 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
13670 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
13671
74946978
MP
136722013-03-28 Marek Polacek <polacek@redhat.com>
13673 Richard Biener <rguenther@suse.de>
13674
13675 PR tree-optimization/56695
13676 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
13677 build signed result of a vector comparison.
13678 * tree-cfg.c (verify_gimple_comparison): Check that a result
13679 of a vector comparison has signed type.
13680
a64b9c26
RB
136812013-03-28 Richard Biener <rguenther@suse.de>
13682
13683 PR tree-optimization/37021
13684 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
13685 do not restrict gaps between groups.
13686 * tree-vect-stmts.c (vectorizable_load): Properly account for
13687 a gap between groups.
13688
a9dc2a2f
EB
136892013-03-28 Eric Botcazou <ebotcazou@adacore.com>
13690
13691 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
13692 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
13693 is not enabled.
13694
53cb97f9
GP
136952013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
13696
13697 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
13698 * doc/extend.texi (Named Address Spaces): Ditto.
13699 (Variable Attributes): Ditto.
13700
b802ae5c
KT
137012013-03-27 Kai Tietz <ktietz@redhat.com>
13702
eddae10a
KT
13703 * config.build: Add support for cygwin x64 target.
13704 * config.gcc: Likewise.
13705 * config.host: Likewise.
13706 * configure.ac: Likewise
13707 * configure: Regenerated.
b802ae5c 13708
371e77e3 137092013-03-27 Kai Tietz <ktietz@redhat.com>
8269de54
KT
13710
13711 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
13712 * config/i386/t-cygwin-w64: New file.
13713 * config/i386/cygwin-w64.h: New file.
13714 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
13715 and add support for x64-cygwin target.
13716 (CPP_SPEC): Likewise.
13717 (CXX_WRAP_SPEC_LIST): Undefine before define.
13718 (LIBGCJ_SONAME): Use 15 as version.
13719
f49b33cb
RB
137202013-03-27 Richard Biener <rguenther@suse.de>
13721
13722 PR tree-optimization/56716
13723 * tree-ssa-structalias.c (perform_var_substitution): Adjust
13724 dumping for ref nodes.
13725
b37a6ce5
MJ
137262013-03-27 Martin Jambor <mjambor@suse.cz>
13727
13728 PR tree-optimization/55334
13729 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
13730 restricted pointers to arrays.
13731
9469b9b2
GDR
137322013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
13733
13734 * Makefile.in (.SUFFIXES): Add .cc.
13735 (.c.o): Apply same recipe for implicit rule .cc.o.
13736
7d24f650
RB
137372013-03-27 Richard Biener <rguenther@suse.de>
13738
13739 PR tree-optimization/37021
13740 * tree-vect-data-refs.c (vect_check_strided_load): Allow
13741 REALPART/IMAGPART_EXPRs around the supported refs.
13742 * tree-ssa-structalias.c (find_func_aliases): Assume that
13743 floating-point values are not used to transfer pointers.
13744
2f251a05
AI
137452013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
13746
d33d9e47
AI
13747 * gcc/target.def (TARGET_HAS_IFUNC_P): New target hook.
13748 * gcc/doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
13749 * gcc/doc/tm.texi: Regenerate.
13750 * gcc/targhooks.h (default_has_ifunc_p): New.
13751 * gcc/targhooks.c (default_has_ifunc_p): Ditto.
13752 * gcc/config/linux-protos.h: New file.
13753 * gcc/config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of
2f251a05
AI
13754 this hook for linux which disables support of indirect functions in
13755 android.
d33d9e47
AI
13756 * gcc/config/linux-android.c: New file.
13757 * gcc/config/t-linux-android.c: Ditto.
13758 * gcc/config.gcc: Added new object file linux-android.o.
13759 * gcc/config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 13760 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
d33d9e47 13761 * gcc/varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
13762 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
13763 doesn't support indirect functions.
13764 * configure: Regenerate.
13765
78b4e425
BC
137662013-03-27 Bin Cheng <bin.cheng@arm.com>
13767
13768 PR target/56102
13769 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
13770 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
13771 mult-word mode.
13772
a5ba7b92
AK
137732013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13774
13775 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
13776
be624986
TG
137772013-03-27 Terry Guo <terry.guo@arm.com>
13778
13779 * config/arm/arm-cores.def: Added core cortex-r7.
13780 * config/arm/arm-tune.md: Regenerated.
13781 * config/arm/arm-tables.opt: Regenerated.
13782 * doc/invoke.texi: Added entry for core cortex-r7.
13783
0a514f47
WL
137842013-03-27 Walter Lee <walt@tilera.com>
13785
13786 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
13787 double-decrement of next_scratch_regno.
13788
9332b0d2
WL
137892013-03-27 Walter Lee <walt@tilera.com>
13790
801d9b2a 13791 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
13792 input operands.
13793 (insn_v1mulus): Ditto.
13794 (insn_v2muls): Ditto.
13795
f54ea5dd
WL
137962013-03-27 Walter Lee <walt@tilera.com>
13797
e594716a 13798 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
13799 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
13800
bf60f4ca
WL
138012013-03-27 Walter Lee <walt@tilera.com>
13802
e594716a 13803 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
13804 (*sibcall_value): Ditto.
13805
e3b51eeb
WL
138062013-03-27 Walter Lee <walt@tilera.com>
13807
13808 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
13809 (insn_mnz_v8qi): ... this ...
13810 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
13811 vector equivalent.
13812 (insn_v<n>mnz): Replaced by ...
13813 (insn_v1mnz): ... this ...
13814 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
13815 equivalent.
13816 (insn_mz_<mode>): Replaced by ...
13817 (insn_mz_v8qi): ... this ...
13818 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
13819 vector equivalent.
13820 (insn_v<n>mz): Replaced by ...
13821 (insn_v1mz): ... this ...
13822 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
13823 equivalent.
13824
4fc7b145
EB
138252013-03-26 Eric Botcazou <ebotcazou@adacore.com>
13826
13827 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
13828
6f33817e
RM
138292013-03-26 Roland McGrath <mcgrathr@google.com>
13830
13831 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
13832 than fprintf with a non-constant, non-format string.
13833
93a4145b
UB
138342013-03-26 Uros Bizjak <ubizjak@gmail.com>
13835
13836 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
13837 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
13838 operand 0 predicate.
13839 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
13840 attribute. Use general_x64nomem_operand as operand 1 predicate.
13841 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
13842 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
13843 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
13844 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
13845 (mov<mode>_insv_1): Remove expander. Merge insn with
13846 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
13847 Use general_x64nomem_operand as operand 1 predicate.
13848 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
13849 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
13850 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
13851 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
13852 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
13853 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
13854 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
13855 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
13856 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
13857 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
13858 (general_x64nomem_operand): Ditto.
13859
c6a9ed5a 138602013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
13861
13862 * config/rtems.opt: Add -pthread option.
13863
31b0a960
RB
138642013-03-26 Richard Biener <rguenther@suse.de>
13865
93a4145b
UB
13866 * alias.c (find_base_term): Avoid redundant and not used recursion.
13867 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
13868 (true_dependence_1): Compute and pass base terms to base_alias_check.
13869 (write_dependence_p): Likewise.
13870 (may_alias_p): Likewise.
13871
79517551
SN
138722013-03-26 Sofiane Naci <sofiane.naci@arm.com>
13873
13874 * config/aarch64/aarch64.c (aarch64_classify_address): Support
13875 PC-relative load in SI modes and above only.
13876
a76213b9
XQ
138772013-03-26 Xinyu Qi <xyqi@marvell.com>
13878
13879 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33159866
UB
13880 * config/arm/iwmmxt.md (WCGR0): Update.
13881 (WCGR1, WCGR2, WCGR3): Likewise.
a76213b9 13882
37ff9355
UB
138832013-03-26 Uros Bizjak <ubizjak@gmail.com>
13884
13885 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
13886 Use x64 and nox64 isa attributes.
13887
30b0317c
RB
138882013-03-26 Richard Biener <rguenther@suse.de>
13889
13890 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
13891 alignment computations and rely on get_object_alignment_1
13892 for the !TYPE_P case.
13893 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
13894
cbcdb140
WL
138952013-03-26 Walter Lee <walt@tilera.com>
13896
13897 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
13898 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
13899
dd884525 139002013-03-25 Jeff Law <law@redhat.com>
be672e08 13901
33159866
UB
13902 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
13903 check for INTEGRAL_TYPE_P that was missing due to checking in
dd884525
JL
13904 wrong version of prior patch.
13905
0051d3ec
WL
139062013-03-25 Walter Lee <walt@tilera.com>
13907
13908 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
13909 TILEGX_INSN_SHUFFLEBYTES1.
13910 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
13911 shufflebytes1.
13912 (tilegx_builtins): Ditto.
13913 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
13914
065a3605
WL
139152013-03-25 Walter Lee <walt@tilera.com>
13916
13917 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
13918 (floatunssisf2): New pattern.
13919 (floatsidf2): New pattern.
13920 (floatunssidf2): New pattern.
065a3605 13921
5b2a3c82
WL
139222013-03-25 Walter Lee <walt@tilera.com>
13923
13924 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
13925 tests for constraint J, K, N, P.
13926
192ea533
WL
139272013-03-25 Walter Lee <walt@tilera.com>
13928
13929 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
13930 Use indirect/pcrel encoding.
13931 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
13932 Ditto.
13933
855e0d0b
SE
139342013-03-25 Steve Ellcey <sellcey@mips.com>
13935
13936 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
13937 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
13938 * config/mips/mips.c (mips_option_override): Set IMADD default.
13939 * config/mips/mips.h (PTF_AVOID_IMADD): New.
13940 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
13941 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
13942 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
13943 * doc/invoke.texi (-mimadd/-mno-imadd): New.
13944
39e45653
JL
139452013-03-25 Jeff Law <law@redhat.com>
13946
13947 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
13948 slightly to avoid creating and folding useless trees. Simplify
13949 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
13950
7482c470
UB
139512013-03-25 Uros Bizjak <ubizjak@gmail.com>
13952
13953 * config/i386/i386.md (*zero_extendsidi2): Merge with
13954 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
13955 * config/i386/predicates.md (x86_64_zext_operand): Rename from
13956 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
13957 targets. Clarify comment.
13958
4a53743e
MJ
139592013-03-25 Martin Jambor <mjambor@suse.cz>
13960
13961 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
13962 pass-through jump functions differently.
13963 (ipa_read_jump_function): Likewise. Also use setter functions to set
13964 up jump functions.
13965
162712de
MJ
139662013-03-25 Martin Jambor <mjambor@suse.cz>
13967
13968 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
13969 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
13970 process it.
13971 (ipa_get_indirect_edge_target): New function.
13972 (devirtualization_time_bonus): New parameter known_aggs, pass it to
13973 ipa_get_indirect_edge_target. Update all callers.
13974 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
13975 ipa_get_indirect_edge_target_1 instead of calling
13976 ipa_get_indirect_edge_target.
13977 (create_specialized_node): Pass aggvlas to
13978 ipcp_discover_new_direct_edges.
13979
a5a4c20a
KT
139802013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13981
13982 * config/arm/arm.md (f_sels, f_seld): New types.
13983 (*cmov<mode>): New pattern.
13984 * config/arm/predicates.md (arm_vsel_comparison_operator): New
13985 predicate.
13986
f992b9fc
KT
139872013-03-25 Kai Tietz <ktietz@redhat.com>
13988
13989 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
13990 POSIX-printf for mingw-hosted builds.
13991
c16fd676
RB
139922013-03-25 Richard Biener <rguenther@suse.de>
13993
13994 PR middle-end/56694
13995 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
13996 must-not-throw stmt location.
13997
5ad29f12
KT
139982013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13999
14000 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
14001 Emit load-acquire versions when acq is true.
14002 (arm_emit_store_exclusive): Add rel parameter.
14003 Emit store-release versions when rel is true.
14004 (arm_split_compare_and_swap): Use acquire-release instructions
14005 instead.
14006 of barriers when appropriate.
14007 (arm_split_atomic_op): Likewise.
14008 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
14009 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
14010 (VUNSPEC_SLX): Likewise.
14011 (VUNSPEC_LDA): Likewise.
14012 (VUNSPEC_STL): Likewise.
14013 * config/arm/sync.md (atomic_load<mode>): New pattern.
14014 (atomic_store<mode>): Likewise.
14015 (arm_load_acquire_exclusive<mode>): Likewise.
14016 (arm_load_acquire_exclusivesi): Likewise.
14017 (arm_load_acquire_exclusivedi): Likewise.
14018 (arm_store_release_exclusive<mode>): Likewise.
14019
03a7dddb
CM
140202013-03-25 Catherine Moore <clm@codesourcery.com>
14021
14022 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
14023 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
14024 * config/mip/predicates.md (lwsp_swsp_operand,
14025 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
14026 sb16_operand, db4_operand, db7_operand, ib3_operand,
14027 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
14028 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
14029 andi16_operand): New predicates.
14030 * config/mips/mips.md (compression): New attribute.
14031 (enabled): New attribute.
14032 (length): Consider compression in computing length.
14033 (shift_compression): New code attribute.
14034 (*add<mode>3): New operands. Record compression.
14035 (sub<mode>3): Likewise.
14036 (one_cmpl<mode>2): Likewise.
14037 (*and<mode>3): Likewise.
14038 (*ior<mode>3): Likewise.
14039 (unnamed pattern for xor): Likewise.
14040 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
14041 (*<optab><mode>3): Likewise.
14042 (*mov<mode>_internal: Likewise.
14043 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
14044 (mips_unsigned_immediate_p): New.
14045 (umips_lwsp_swsp_address_p): New.
14046 (m16_based_address_p): New.
14047 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
14048 (mips_unsigned_immediate_p): New prototype.
14049 (lwsp_swsp_address_p): New prototype.
14050 (m16_based_address_p): New prototype.
14051 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
14052 (mips_signed_immediate_p): New function.
14053 (m16_based_address_p): New function.
14054 (lwsp_swsp_address_p): New function.
14055 (mips_print_operand_punctuation): Recognize short delay slot insns
14056 for microMIPS.add<mode>3"
14057
f35c297f 140582013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 14059
f35c297f
KT
14060 PR target/56720
14061 * config/arm/iterators.md (v_cmp_result): New mode attribute.
14062 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
14063
051b9446
RB
140642013-03-25 Richard Biener <rguenther@suse.de>
14065
14066 PR tree-optimization/56689
14067 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
14068 any edge.
14069
374001cb
RB
140702013-03-25 Richard Biener <rguenther@suse.de>
14071
14072 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
14073 of bitmap.
14074 (memory_references): Likewise.
14075 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
14076 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
14077 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
14078 (gather_mem_refs_in_loops): Fold into ...
14079 (analyze_memory_references): ... this. Move initialization
14080 to tree_ssa_lim_initialize.
14081 (fill_always_executed_in): Rename to ...
14082 (fill_always_executed_in_1): ... this.
14083 (fill_always_executed_in): Move contains_call computation to
14084 this new function from ...
14085 (tree_ssa_lim_initialize): ... here.
14086 (tree_ssa_lim): Call fill_always_executed_in.
14087
57895947
EB
140882013-03-25 Eric Botcazou <ebotcazou@adacore.com>
14089
14090 * postreload.c (reload_combine): Fix code detecting returns.
14091
1e1b18c1
EB
140922013-03-25 Eric Botcazou <ebotcazou@adacore.com>
14093
14094 * function.c (emit_use_return_register_into_block): On cc0 targets,
14095 do not emit the sequence between cc0 setter and user.
14096
9216baf1
KT
140972013-03-25 Kai Tietz <ktietz@redhat.com>
14098
1e1b18c1
EB
14099 * config/i386/predicates.md (local_symbolic_operand): Interpret
14100 dll-imported symbols as none-local.
9216baf1 14101
76421b44
RB
141022013-03-25 Richard Biener <rguenther@suse.de>
14103
14104 * tree-ssa-loop-im.c (struct depend): Remove.
14105 (struct lim_aux_data): Make depends a vec of gimples.
14106 (free_lim_aux_data): Adjust.
14107 (add_dependency): Likewise.
14108 (set_level): Likewise.
14109
d154bfa2
RB
141102013-03-25 Richard Biener <rguenther@suse.de>
14111
14112 PR middle-end/56434
14113 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
14114 the pointer returned by calls with ECF_MALLOC set.
14115
2cd9804e
UB
141162013-03-24 Uros Bizjak <ubizjak@gmail.com>
14117
acef5fe0
UB
14118 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
14119
141202013-03-24 Uros Bizjak <ubizjak@gmail.com>
14121
14122 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
14123 using MMXMODE mode iterator.
14124 (*move<mode>_internal): Merge with *movv2sf_internal and
14125 *movv2sf_internal_rex64 using MMXMODE mode iterator.
14126
225ccc68
SB
141272013-03-23 Steven Bosscher <steven@gcc.gnu.org>
14128
85c0f02d
SB
14129 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
14130 (record_last_mem_set_info): Likewise.
14131
225ccc68
SB
14132 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
14133 of XNEWVEC followed by memset.
14134 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
14135
b64925dc
SB
141362013-03-23 Steven Bosscher <steven@gcc.gnu.org>
14137
14138 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
14139 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
14140 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
14141 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
14142 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
14143 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
14144 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
14145 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
14146 BARRIER_P instead of GET_CODE.
14147
b9aaf52e
EB
141482013-03-23 Eric Botcazou <ebotcazou@adacore.com>
14149
14150 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
14151 inaccuracy in the probing code.
14152
14153 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
14154 (ctrapdi4): Likewise.
14155
66de4d7c
EB
141562013-03-23 Eric Botcazou <ebotcazou@adacore.com>
14157
14158 * calls.c (expand_call): Add missing guard to code handling return
14159 of non-BLKmode structures in MSB.
14160 * function.c (expand_function_end): Likewise.
14161
4f25c8fb
EB
141622013-03-23 Eric Botcazou <ebotcazou@adacore.com>
14163
14164 * combine.c (try_combine): Adjust comment. Do not add the set of
14165 insn #0 if the destination indirectly is set or dies in insn #2.
14166 Tidy up code to distribute a new note.
14167
23b7850d
UB
141682013-03-22 Uros Bizjak <ubizjak@gmail.com>
14169
14170 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
14171 also for alternatives 16 and 17.
14172
bed852cf
UB
141732013-03-22 Uros Bizjak <ubizjak@gmail.com>
14174
14175 * config/i386/sse.md (*mov<mode>_internal): Merge with
14176 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
14177 Emit insn template depending on type attribute. Use
14178 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
14179 movd instead of movq mnemonic for interunit moves. Rewrite mode
14180 attribute calculation. Remove unit attribute calculation.
14181 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
14182 Set prefix_data16 attribute for DImode ssemov types.
14183 Use Ym instead of y for SSE-MMX conversion alternatives.
14184 Reorder operand constraints.
14185
1e8a7937
SB
141862013-03-22 Steven Bosscher <steven@gcc.gnu.org>
14187
14188 * df.h (df_insn_delete): Adjust prototype.
14189 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
14190 and let it decide whether mark the basic block dirty.
14191 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
14192 * df-scan.c (df_insn_info_delete): New helper function, split
14193 off from df_insn_delete.
14194 (df_scan_free_bb_info): Use it.
14195 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
14196 Likewise.
14197 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
14198 that the insn is actually an insn and it has a non-NULL basic block.
14199 Do not mark basic block dirty if only deleting a DEBUG_INSN.
14200
e14d094c
RB
142012013-03-22 Richard Biener <rguenther@suse.de>
14202
14203 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
14204 dep_ref members.
14205 (mem_ref_alloc): Do not allocate them.
14206 (refs_independent_p): Do not query or maintain a cache.
14207
e9cf7316
RB
142082013-03-22 Richard Biener <rguenther@suse.de>
14209
14210 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
14211 (gather_mem_refs_in_loops): Do not compute it.
14212 (analyze_memory_references): Do not allocate it.
14213 (tree_ssa_lim_finalize): Do not free it.
14214 (for_all_locs_in_loop): Do not query all_refs_in_loop.
14215
f046e81b
RB
142162013-03-22 Richard Biener <rguenther@suse.de>
14217
14218 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 14219
a05c0ddf
IB
142202013-03-22 Ian Bolton <ian.bolton@arm.com>
14221
14222 * config/aarch64/aarch64.c (aarch64_print_operand): New
14223 format specifier for printing a constant in hex.
14224 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
14225 format specifier for printing second operand.
14226
c00217fc
RB
142272013-03-22 Richard Biener <rguenther@suse.de>
14228
14229 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
14230 bitmaps.
14231 (gather_mem_refs_in_loops): Perform store accumulation here.
14232 (create_vop_ref_mapping_loop): Remove.
14233 (create_vop_ref_mapping): Likewise.
14234 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 14235 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
14236 (record_indep_loop): Remove.
14237 (record_dep_loop): New function.
14238 (ref_indep_loop_p_1): Adjust to only walk over references
14239 in the loop, not its subloops.
14240 (ref_indep_loop_p): Rename to ...
14241 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
14242 maintaining a more fine-grained cache.
14243 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
14244 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
14245
15d19bf8
RB
142462013-03-22 Richard Biener <rguenther@suse.de>
14247
14248 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
14249 (struct mem_ref): Make accesses_in_loop a vec of a vec of
14250 aggregate mem_ref_loc.
14251 (free_mem_ref_locs): Inline into ...
14252 (memref_free): ... this and adjust.
14253 (mem_ref_alloc): Adjust.
14254 (mem_ref_locs_alloc): Remove.
14255 (record_mem_ref_loc): Adjust.
14256 (get_all_locs_in_loop): Rewrite into ...
14257 (for_all_locs_in_loop): ... this iterator.
14258 (rewrite_mem_ref_loc): New functor.
14259 (rewrite_mem_refs): Use for_all_locs_in_loop.
14260 (sm_set_flag_if_changed): New functor.
14261 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
14262 (ref_always_accessed): New functor.
14263 (ref_always_accessed_p): Use for_all_locs_in_loop.
14264
6f37411d
MG
142652013-03-21 Marc Glisse <marc.glisse@inria.fr>
14266
14267 * tree-pass.h (PROP_gimple_lvec): New.
14268 * passes.c (dump_properties): Handle PROP_gimple_lvec.
14269 (init_optimization_passes): Move pass_lower_vector.
14270 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
14271 PROP_gimple_lvec.
14272 (pass_lower_vector): Provide PROP_gimple_lvec.
14273 (pass_lower_vector_ssa): Likewise.
14274 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
14275
511ef689
MW
142762013-03-21 Mark Wielaard <mjw@redhat.com>
14277
14278 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
14279
cc1df30b
UB
142802013-03-21 Uros Bizjak <ubizjak@gmail.com>
14281
14282 * config/i386/i386.md (*movdi_internal): Disparage slightly
14283 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
14284 conversion alternatives.
14285
c845cfe1
JJ
142862013-03-21 Jakub Jelinek <jakub@redhat.com>
14287
37e99116
JJ
14288 PR middle-end/48087
14289 * diagnostic.def (DK_WERROR): New kind.
14290 * diagnostic.h (werrorcount): Define.
14291 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
14292 promoted to DK_ERROR, increment DK_WERROR counter instead of
14293 DK_ERROR counter.
14294 * toplev.c (toplev_main): Call print_ignored_options even if
14295 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
14296 even if just werrorcount is non-zero.
14297
c845cfe1
JJ
14298 PR debug/55608
14299 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
14300 on failure.
14301 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
14302 (string_cst_pool_decl): New function.
14303 (optimize_one_addr_into_implicit_ptr): New function.
14304 (resolve_addr_in_expr): Optimize DWARF location expression
14305 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
14306 which doesn't live in memory, but has DW_AT_location or
14307 DW_AT_const_value, or refers to a string literal, into
14308 DW_OP_GNU_implicit_pointer.
14309 (optimize_location_into_implicit_ptr): New function.
14310 (resolve_addr): If removing DW_AT_location of a variable because
14311 it was DW_OP_addr of address of the variable, but the variable doesn't
14312 live in memory, try to emit const value attribute for the initializer.
14313
08e0cda6
MG
143142013-03-21 Marc Glisse <marc.glisse@inria.fr>
14315
14316 * tree.h (VECTOR_TYPE_P): New macro.
14317 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
14318 TYPE_MODE): Use it.
14319 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
14320 VEC_COND_EXPR cannot be lvalues.
14321 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
14322
d08633b4
MG
143232013-03-21 Marc Glisse <marc.glisse@inria.fr>
14324
14325 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
14326 Restrict the transformation to equal modes.
14327
e6647190
RB
143282013-03-21 Richard Biener <rguenther@suse.de>
14329
14330 PR tree-optimization/39326
14331 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
14332 (MEM_ANALYZABLE): Adjust.
14333 (record_mem_ref_loc): Move bitmap ops ...
14334 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
14335 unanalyzable refs, do not record locations for it.
14336 (analyze_memory_references): Allocate ref zero as shared
14337 unanalyzable ref.
14338 (refs_independent_p): Do not test for unanalyzed mems here.
14339 (ref_indep_loop_p_1): Special-case disambiguation against
14340 the unanalyzed ref.
cc1df30b 14341 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 14342
65074f54
CL
143432013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
14344
14345 * config/arm/arm-protos.h (tune_params): Add
14346 prefer_neon_for_64bits field.
14347 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
14348 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
14349 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
14350 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
14351 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
14352 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
14353 (arm_option_override): Handle -mneon-for-64bits new option.
14354 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
14355 (prefer_neon_for_64bits): Declare new variable.
14356 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 14357 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
14358 (arch_enabled): Handle new arch types. Remove support for onlya8
14359 and nota8.
14360 (one_cmpldi2): Use new arch names.
bc5faa5b 14361 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
14362 * config/arm/arm.opt (mneon-for-64bits): Add option.
14363 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
14364 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
14365 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
14366 of onlya8.
14367 * doc/invoke.texi (-mneon-for-64bits): Document.
14368
5a2d2a79
RB
143692013-03-21 Richard Biener <rguenther@suse.de>
14370
14371 PR tree-optimization/39326
14372 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
14373 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 14374 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 14375
5abe1e05
RB
143762013-03-21 Richard Biener <rguenther@suse.de>
14377
14378 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
14379 (vect_insert_into_interleaving_chain): Likewise.
14380 (vect_drs_dependent_in_basic_block): Inline ...
14381 (vect_slp_analyze_data_ref_dependence): ... here. New function,
14382 split out from ...
14383 (vect_analyze_data_ref_dependence): ... here. Simplify.
14384 (vect_check_interleaving): Simplify.
14385 (vect_analyze_data_ref_dependences): Likewise. Split out ...
14386 (vect_slp_analyze_data_ref_dependences): ... this new function.
14387 (dr_group_sort_cmp): New function.
14388 (vect_analyze_data_ref_accesses): Compute data-reference groups
14389 here instead of in vect_analyze_data_ref_dependence. Use
14390 a more efficient algorithm.
14391 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
14392 vect_slp_analyze_data_ref_dependences. Call
14393 vect_analyze_data_ref_accesses earlier.
14394 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
14395 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
14396 (vect_slp_analyze_data_ref_dependences): New prototype.
14397
cad1735b
RB
143982013-03-21 Richard Biener <rguenther@suse.de>
14399
14400 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
14401 ref is stored in the loop.
14402 (find_refs_for_sm): Walk only over all stores.
14403 (store_motion_loop): Allocate from lim_bitmap_obstack.
14404 (store_motion): Likewise.
14405
141310ef
RB
144062013-03-21 Richard Biener <rguenther@suse.de>
14407
14408 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
14409 Update virtual SSA form.
14410
5022315a
RO
144112013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14412
14413 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
14414 * configure: Regenerate.
14415 * config.in: Regenerate.
14416 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
14417 if !HAVE_LD_EH_FRAME_CIEV3.
14418
50d4421c
RB
144192013-03-21 Richard Biener <rguenther@suse.de>
14420
14421 * tree-cfg.c (verify_expr_no_block): New function.
14422 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
14423 nor DECL_VALUE_EXPR have locations with associated blocks.
14424 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
14425 (clear_unused_block_pointer): Remove code dealing with
14426 blocks in DECL_DEBUG_EXPR locations.
14427
839b422f
RB
144282013-03-21 Richard Biener <rguenther@suse.de>
14429
14430 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
14431 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
14432 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
14433 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
14434 instead of DECL_DEBUG_EXPR_IS_FROM.
14435 * gimplify.c (gimplify_modify_expr): Likewise.
14436 * tree-cfg.c (verify_expr_location_1): Likewise.
14437 * tree-complex.c (create_one_component_var): Likewise.
14438 * tree-sra.c (create_access_replacement): Likewise.
14439 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
14440 (clear_unused_block_pointer): Likewise.
14441 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
14442 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
14443 * var-tracking.c (var_debug_decl): Likewise.
14444 (track_expr_p): Likewise.
14445 * tree-inline.c (add_local_variables): Likewise. Set
14446 DECL_HAS_DEBUG_EXPR_P after copying it.
14447 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
14448 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
14449
fe04878d
UB
144502013-03-21 Uros Bizjak <ubizjak@gmail.com>
14451
14452 PR bootstrap/56656
14453 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
14454 * configure: Regenerate.
14455 * config.in: Regenerate.
14456 * config/i386/i386.md (*movdf_internal): Use
14457 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
14458 movd instead of movq mnemonic for interunit moves.
14459 (*movdi_internal): Ditto.
14460
bd059b26 144612013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
14462
14463 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
14464 (abd<mode>_3): New pattern.
14465 (aba<mode>_3): New pattern.
14466 (fabd<mode>_3): New pattern.
14467
bd059b26 144682013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
14469
14470 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
14471 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
14472 occurrence of REGISTER_PREFIX as its empty string.
14473
4f1f78b9
JL
144742013-03-20 Jeff Law <law@redhat.com>
14475
14476 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
14477 addititional equivalences for equality comparisons between an SSA_NAME
14478 and a constant where the SSA_NAME was set from a widening conversion.
14479
327a1118
WL
144802013-03-20 Walter Lee <walt@tilera.com>
14481
14482 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
14483
813e0036
UB
144842013-03-20 Uros Bizjak <ubizjak@gmail.com>
14485
14486 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
14487 depending on type attribute.
14488 (*movti_internal): Ditto.
14489 (*movtf_internal): Ditto.
14490 (*movxf_internal): Ditto.
14491 (*movdf_internal): Ditto.
14492 (*movsf_internal): Ditto.
14493
7cf34aae
UB
144942013-03-20 Uros Bizjak <ubizjak@gmail.com>
14495
14496 * config/i386/i386.md (*movti_internal): Set prefix attribute to
14497 maybe_vex for sselog1 and ssemov types.
14498 (*movdi_internal): Reorder operand constraints.
14499 (*movsi_internal): Ditto. Set prefix attribute to
14500 maybe_vex for sselog1 and ssemov types.
14501 (*movtf_internal): Set prefix attribute to maybe_vex
14502 for sselog1 and ssemov types.
14503 (*movdf_internal): Ditto. Set prefix_data16 attribute for
14504 DImode ssemov types. Reorder operand constraints.
14505 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
14506 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
14507 attribute for SImode ssemov types. Reorder operand constraints.
14508
19321415
MJ
145092013-03-20 Martin Jambor <mjambor@suse.cz>
14510
14511 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
14512 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
14513
12211b99 145142013-03-20 Pat Haugen <pthaugen@us.ibm.com>
c6d5ff83
MM
14515
14516 * config/rs6000/predicates.md (indexed_address, update_address_mem
14517 update_indexed_address_mem): New predicates.
14518 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
14519 attribute for load/store instructions.
14520 * config/rs6000/dfp.md (movsd_store): Likewise.
14521 (movsd_load): Likewise.
14522 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
14523 (unnamed HI->DI extend define_insn): Likewise.
14524 (unnamed SI->DI extend define_insn): Likewise.
14525 (unnamed QI->SI extend define_insn): Likewise.
14526 (unnamed QI->HI extend define_insn): Likewise.
14527 (unnamed HI->SI extend define_insn): Likewise.
14528 (unnamed HI->SI extend define_insn): Likewise.
14529 (extendsfdf2_fpr): Likewise.
14530 (movsi_internal1): Likewise.
14531 (movsi_internal1_single): Likewise.
14532 (movhi_internal): Likewise.
14533 (movqi_internal): Likewise.
14534 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
14535 attribute for load/store instructions.
14536 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
14537 instructions.
14538 (mov<mode>_softfloat): Likewise.
14539 (mov<mode>_hardfloat32): Likewise.
14540 (mov<mode>_hardfloat64): Likewise.
14541 (mov<mode>_softfloat64): Likewise.
14542 (movdi_internal32): Likewise.
14543 (movdi_internal64): Likewise.
14544 (probe_stack_<mode>): Likewise.
14545
145462013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
14547
14548 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
14549 floating point, and decimal floating point to reload iterator.
14550
14551 * config/rs6000/constraints.md (wl constraint): New constraints to
14552 return FLOAT_REGS if certain options are used to reduce the number
14553 of separate patterns that exist in the file.
14554 (wx constraint): Likewise.
14555 (wz constraint): Likewise.
14556
14557 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
14558 -mdebug=reg, print wg, wl, wx, and wz constraints.
14559 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
14560 Initialize the reload functions for 64-bit binary/decimal floating
14561 point types.
14562 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
14563 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
14564 create the buffer on the stack to overcome not having a 32-bit
14565 load and store.
14566 (rs6000_emit_move): Likewise.
14567 (rs6000_secondary_memory_needed_rtx): Likewise.
14568 (rs6000_alloc_sdmode_stack_slot): Likewise.
14569 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
14570 via xxlxor, just like DFmode 0.0.
14571
14572 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
14573 define as 1 if we are running on a power7 or newer.
14574 (enum r6000_reg_class_enum): Add new constraints.
14575
14576 * config/rs6000/dfp.md (movsd): Delete, combine with binary
14577 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
14578 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 14579 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
14580 (movsd splitter): Likewise.
14581 (movsd_hardfloat): Likewise.
14582 (movsd_softfloat): Likewise.
14583
14584 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
14585 binary and decimal floating point moves.
14586 (fmove_ok): New attributes to combine binary and decimal floating
14587 point moves, and to combine power6x (mfpgpr) moves along normal
14588 floating moves.
14589 (real_value_to_target): Likewise.
14590 (f32_lr): Likewise.
14591 (f32_lm): Likewise.
14592 (f32_li): Likewise.
14593 (f32_sr): Likewise.
14594 (f32_sm): Likewise.
14595 (f32_si): Likewise.
14596 (movsf): Combine binary and decimal floating point moves. Combine
14597 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 14598 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
14599 (mov<mode> for SFmode/SDmode); Likewise.
14600 (SFmode/SDmode splitters): Likewise.
14601 (movsf_hardfloat): Likewise.
14602 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
14603 (movsf_softfloat): Likewise.
14604 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
14605
14606 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
14607 wx and wz constraints.
14608
14609 * config/rs6000/constraints.md (wg constraint): New constraint to
14610 return FLOAT_REGS if -mmfpgpr (power6x) was used.
14611
14612 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
14613 constraint.
14614
14615 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
14616 -mdebug=reg, print wg, wl, wx, and wz constraints.
14617 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
14618 Initialize the reload functions for 64-bit binary/decimal floating
14619 point types.
14620 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
14621 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
14622 create the buffer on the stack to overcome not having a 32-bit
14623 load and store.
14624 (rs6000_emit_move): Likewise.
14625 (rs6000_secondary_memory_needed_rtx): Likewise.
14626 (rs6000_alloc_sdmode_stack_slot): Likewise.
14627 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
14628 via xxlxor, just like DFmode 0.0.
14629
c6d5ff83
MM
14630 * config/rs6000/dfp.md (movdd): Delete, combine with binary
14631 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
14632 with other moves by using conditional constraits (wg). Use LFIWZX
14633 and STFIWX for loading SDmode on power7.
14634 (movdd splitters): Likewise.
14635 (movdd_hardfloat32): Likewise.
14636 (movdd_softfloat32): Likewise.
14637 (movdd_hardfloat64_mfpgpr): Likewise.
14638 (movdd_hardfloat64): Likewise.
14639 (movdd_softfloat64): Likewise.
14640
14641 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
14642 64-bit binary and decimal floating point moves.
14643 (FMOVE64X): Likewise.
14644 (movdf): Combine 64-bit binary and decimal floating point moves.
14645 Combine power6x (mfpgpr) moves with other moves by using
14646 conditional constraits (wg).
14647 (mov<mode> for DFmode/DDmode): Likewise.
14648 (DFmode/DDmode splitters): Likewise.
14649 (movdf_hardfloat32): Likewise.
14650 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
14651 (movdf_softfloat32): Likewise.
14652 (movdf_hardfloat64_mfpgpr): Likewise.
14653 (movdf_hardfloat64): Likewise.
14654 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
14655 (movdf_softfloat64): Likewise.
14656 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
14657 (reload_<mode>_load): Move to later in the file so they aren't in
14658 the middle of the floating point move insns.
14659 (reload_<mode>_store): Likewise.
14660
14661 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
14662 constraint.
14663
14664 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
14665 constraint if -mdebug=reg.
bd059b26
UB
14666 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
14667 Enable using dd reload support if needed.
c6d5ff83
MM
14668
14669 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
14670 binary and decimal floating point moves in rs6000.md.
14671 (movtd_internal): Likewise.
14672
14673 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
14674 decimal floating point moves.
14675 (movtf): Likewise.
14676 (movtf_internal): Likewise.
14677 (mov<mode>_internal, TDmode/TFmode): Likewise.
14678 (movtf_softfloat): Likewise.
14679 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
14680
14681 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
14682 movdi_internal64, using wg constraint for move direct operations.
14683 (movdi_internal64): Likewise.
14684
14685 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
14686 MODES_TIEABLE_P for selected modes. Print the numerical value of
14687 the various virtual registers. Use GPR/FPR first/last values,
14688 instead of hard coding the register numbers. Print which modes
14689 have reload functions registered.
bd059b26
UB
14690 (rs6000_option_override_internal): If -mdebug=reg, trace the options
14691 settings before/after setting cpu, target and subtarget settings.
14692 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
14693 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
14694 (rs6000_secondary_reload_fail): Likewise.
14695 (rs6000_secondary_reload_inner): Likewise.
14696
14697 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
14698 macros for first/last GPR and FPR registers.
14699 (LAST_GPR_REGNO): Likewise.
14700 (FIRST_FPR_REGNO): Likewise.
14701 (LAST_FPR_REGNO): Likewise.
14702
14703 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
14704 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
14705 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
14706 (vcond<mode><mode>): Likewise.
14707 (vcondu<mode><mode>): Likewise.
14708 (vector_gtu<mode>): Likewise.
14709 (vector_gte<mode>): Likewise.
14710 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 14711 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
14712 (ior<mode>3): Likewise.
14713 (and<mode>3): Likewise.
14714 (one_cmpl<mode>2): Likewise.
14715 (nor<mode>3): Likewise.
14716 (andc<mode>3): Likewise.
14717
14718 * config/rs6000/constraints.md (wt constraint): New constraint
14719 that returns VSX_REGS if TImode is allowed in VSX registers.
14720
14721 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
14722 constant under VSX.
14723
14724 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
14725 similar to TImode, but it is restricted to being in the GPRs.
14726
14727 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
14728 TImode to occupy a single VSX register.
14729
14730 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
14731 -mvsx-timode for power7/power8.
14732 (power7 cpu): Likewise.
14733 (power8 cpu): Likewise.
14734
14735 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
14736 sure that TFmode/TDmode take up two registers if they are ever
14737 allowed in the upper VSX registers.
14738 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
14739 registers.
14740 (rs6000_init_hard_regno_mode_ok): Likewise.
14741 (rs6000_debug_reg_global): Add debugging for PTImode and wt
14742 constraint. Print if LRA is turned on.
14743 (rs6000_option_override_internal): Give an error if -mvsx-timode
14744 and VSX is not enabled.
14745 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
14746 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
14747 to reg+offset addressing. Use PTImode when checking offset
14748 addresses for validity.
14749 (reg_offset_addressing_ok_p): Likewise.
14750 (rs6000_legitimate_offset_address_p): Likewise.
14751 (rs6000_legitimize_address): Likewise.
14752 (rs6000_legitimize_reload_address): Likewise.
14753 (rs6000_legitimate_address_p): Likewise.
14754 (rs6000_eliminate_indexed_memrefs): Likewise.
14755 (rs6000_emit_move): Likewise.
14756 (rs6000_secondary_reload): Likewise.
14757 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
14758 reloads to fpr registers to continue to use reg+offset addressing,
14759 but 64-bit reloads to altivec registers need reg+reg addressing.
14760 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
14761 it. Treat LO_SUM like a PLUS operation.
14762 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 14763 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
14764 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
14765 registers to share a register with a smaller sized type, since VSX
14766 puts scalars in the upper 64-bits.
14767 (print_operand): Add support for PTImode.
14768 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
14769 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
14770 registers, but don't have arithmetic support.
14771 (rs6000_memory_move_cost): Add test for VSX.
14772 (rs6000_opt_masks): Add -mvsx-timode.
14773
14774 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
14775 for TImode.
14776 (VSs): Likewise.
14777 (VSr): Use wt constraint for TImode.
14778 (VSv): Drop TImode support.
14779 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
14780 (vsx_movti_64bit): Likewise.
14781 (vsx_movti_32bit): Likewise.
14782 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
14783 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
14784 one '?' on the appropriate output constraint. Do not allow TImode
14785 logical operations on 32-bit systems.
14786 (vsx_ior<mode>3): Likewise.
14787 (vsx_xor<mode>3): Likewise.
14788 (vsx_one_cmpl<mode>2): Likewise.
14789 (vsx_nor<mode>3): Likewise.
14790 (vsx_andc<mode>3): Likewise.
14791 (vsx_concat_<mode>): Likewise.
14792 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
14793
14794 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
14795 OPTION_MASK_VSX_TIMODE.
14796 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
14797 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
14798
14799 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
14800 (TI2 iterator): New iterator for TImode, PTImode.
14801 (wd mode attribute): Add values for vector types.
bd059b26
UB
14802 (movti_string): Replace TI move operations with operations for TImode
14803 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
14804 (mov<mode>_string, TImode/PTImode): Likewise.
14805 (movti_ppc64): Likewise.
14806 (mov<mode>_ppc64, TImode/PTImode): Likewise.
14807 (TI mode splitters): Likewise.
14808
14809 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
14810 constraint.
14811
1fc5eced
MG
148122013-03-20 Marc Glisse <marc.glisse@inria.fr>
14813
14814 PR tree-optimization/56355
14815 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
14816 Also handle integers with undefined overflow.
14817
22c4c869
CM
148182013-03-20 Catherine Moore <clm@codesourcery.com>
14819 Maciej W. Rozycki <macro@codesourcery.com>
14820 Tom de Vries <tom@codesourcery.com>
12211b99 14821 Nathan Sidwell <nathan@codesourcery.com>
22c4c869
CM
14822 Iain Sandoe <iain@codesourcery.com>
14823 Nathan Froyd <froydnj@codesourcery.com>
12211b99 14824 Chao-ying Fu <fu@mips.com>
22c4c869
CM
14825
14826 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 14827 Document new function attributes.
22c4c869
CM
14828 * doc/invoke.texi (minterlink-compressed, mmicromips,
14829 m14k, m14ke, m14kec): Document new options.
14830 (minterlink-mips16): Update documentation.
14831 * doc/md.texi (ZC, ZD): Document new constraints.
14832 * configure.ac (gcc_cv_as_micromips): Check if linker
14833 supports the .set micromips directive.
14834 * configure: Regenerate.
14835 * config.in: Regenerate.
14836 * config/mips/mips-tables.opt: Regenerate.
14837 * config/mips/micromips.md: New file.
14838 * constraints.md (ZC, ZD): New constraints.
14839 * config/mips/predicates.md (movep_src_register): New predicate.
14840 (movep_src_operand): New predicate.
14841 (non_volatile_mem_operand): New predicate.
14842 * config/mips/mips.md (multimem): New type.
14843 (length): Differentiate between 17-bit and 18-bit branch offsets.
14844 (MOVEP1, MOVEP2): New mode iterator.
33159866 14845 (mov_<load>l): Use ZC constraint.
22c4c869
CM
14846 (mov_<load>r): Likewise.
14847 (mov_<store>l): Likewise.
14848 (mov_<store>r): Likewise.
14849 (*branch_equality<mode>_inverted): Add microMIPS support.
14850 (*branch_equality<mode>): Likewise.
14851 (*jump_absolute): Likewise.
14852 (indirect_jump_<mode>): Likewise.
14853 (tablejump_<mode>): Likewise.
14854 (<optab>_internal): Likewise.
14855 (sibcall_internal): Likewise.
14856 (sibcall_value_internal): Likewise.
14857 (prefetch): Use constraint ZD.
14858 * config/mips/mips.opt (minterlink-compressed): New option.
14859 (minterlink-mips16): Now an alias for minterlink-compressed.
14860 (mmicromips): New option.
14861 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
14862 (compare_and_swap_12): Likewise.
14863 (sync_add<mode>): Likewise.
14864 (sync_<optab>_12): Likewise.
14865 (sync_old_<optab>_12): Likewise.
14866 (sync_new_<optab>_12): Likewise.
14867 (sync_nand_12): Likewise.
14868 (sync_old_nand_12): Likewise.
14869 (sync_new_nand_12): Likewise.
14870 (sync_sub<mode>): Likewise.
14871 (sync_old_add<mode>): Likewise.
14872 (sync_old_sub<mode>): Likewise.
14873 (sync_new_add<mode>): Likewise.
14874 (sync_new_sub<mode>): Likewise.
14875 (sync_<optab><mode>): Likewise.
14876 (sync_old_<optab><mode>): Likewise.
14877 (sync_new_<optab><mode>): Likewise.
14878 (sync_nand<mode>): Likewise.
14879 (sync_old_nand<mode>): Likewise.
14880 (sync_new_nand<mode>): Likewise.
14881 (sync_lock_test_and_set<mode>): Likewise.
14882 (test_and_set_12): Likewise.
14883 (atomic_compare_and_swap<mode>): Likewise.
14884 (atomic_exchange<mode>_llsc): Likewise.
14885 (atomic_fetch_add<mode>_llsc): Likewise.
14886 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
14887 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
14888 (umips_save_restore_pattern_p): Likewise.
14889 (umips_load_store_pair_p): Likewise.
14890 (umips_output_load_store_pair): Likewise.
14891 (umips_movep_target_p): Likewise.
14892 (umips_12bit_offset_address_p): Likewise.
14893 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
14894 (mips_base_mips16): Rename this...
14895 (mips_base_compression_flags): ...to this. Update all uses.
14896 (mips_attribute_table): Add micromips, nomicromips and nocompression.
14897 (mips_mips16_decl_p): Delete.
14898 (mips_nomips16_decl_p): Delete.
33159866 14899 (mips_get_compress_on_flags): New function.
22c4c869
CM
14900 (mips_get_compress_off_flags): New function.
14901 (mips_get_compress_mode): New function.
14902 (mips_get_compress_on_name): New function.
14903 (mips_get_compress_off_name): New function.
14904 (mips_insert_attributes): Support multiple compression types.
14905 (mips_merge_decl_attributes): Likewise.
14906 (umips_12bit_offset_address_p): New function.
14907 (mips_start_function_definition): Emit .set micromips directive.
14908 (mips_call_may_need_jalx_p): New function.
14909 (mips_function_ok_for_sibcall): Add microMIPS support.
14910 (mips_print_operand_punctuation): Support short delay slots and
14911 compact jumps.
14912 (umips_swm_mask, umips_swm_encoding): New.
14913 (umips_build_save_restore): New function.
14914 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
14915 (was_mips16_p): Remove.
14916 (old_compression_mode): New.
14917 (mips_set_compression_mode): New function.
14918 (mips_set_current_function): Add microMIPS support.
14919 (mips_option_override): Likewise.
14920 (umips_save_restore_pattern_p): New function.
14921 (umips_output_save_restore): New function.
14922 (umips_load_store_pair_p_1): New function.
14923 (umips_load_store_pair_p): New function.
14924 (umips_output_load_store_pair_1): New function.
14925 (umips_output_load_store_pair): New function.
14926 (umips_movep_target_p) New function.
14927 (mips_prepare_pch_save): Add microMIPS support.
14928 * config/mips/mips.h (TARGET_COMPRESSION): New.
14929 (TARGET_CPU_CPP_BUILTINS): Update macro
14930 to use new compression flags and to support microMIPS.
14931 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
14932 (MIPS_ARCH_FLOAT_SPEC): Likewise.
14933 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
14934 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
14935 (ASM_SPEC): Support mmicromips and mno-micromips.
14936 (M16STORE_REG_P): New macro.
14937 (MIPS_CALL): Support TARGET_MICROMIPS.
14938 (MICROMIPS_J): New macro.
14939 (mips_base_mips16): Rename this...
14940 (mips_base_compression_flags): ...to this.
14941 (UMIPS_12BIT_OFFSET_P): New macro.
14942 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
14943 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
149442013-03-20 Richard Biener <rguenther@suse.de>
14945
14946 PR tree-optimization/56661
14947 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
14948 the result does not have to be distinct.
14949
54714c68
RB
149502013-03-20 Richard Biener <rguenther@suse.de>
14951
14952 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
14953 remap_gimple_op_r.
14954
cca1130d 149552013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 14956 Steven Bosscher <steven@gcc.gnu.org>
cca1130d
BS
14957
14958 PR rtl-optimization/56605
14959 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
14960
2a930377
UB
149612013-03-20 Uros Bizjak <ubizjak@gmail.com>
14962
14963 PR bootstrap/56656
14964 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
14965 that require movd instead of movq.
14966
d6d305fe
RB
149672013-03-20 Richard Biener <rguenther@suse.de>
14968
14969 * tree-ssa-structalias.c (struct variable_info): Add pointer
14970 to the first field of an aggregate with sub-vars. Make
14971 this and the pointer to the next subfield its ID.
14972 (vi_next): New function.
14973 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
14974 storedanything_id, integer_id): Increment by one.
14975 (new_var_info, get_call_vi, lookup_call_clobber_vi,
14976 get_call_clobber_vi): Adjust.
14977 (solution_set_expand): Simplify and speedup.
14978 (solution_set_add): Inline into ...
14979 (set_union_with_increment): ... this. Adjust accordingly.
14980 (do_sd_constraint): Likewise.
14981 (do_ds_constraint): Likewise.
14982 (do_complex_constraint): Simplify.
14983 (build_pred_graph): Adjust.
14984 (solve_graph): Likewise. Simplify and speedup.
14985 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
14986 get_constraint_for_component_ref, get_constraint_for_1,
14987 first_vi_for_offset, first_or_preceding_vi_for_offset,
14988 create_function_info_for, create_variable_info_for_1,
14989 create_variable_info_for, intra_create_variable_infos): Adjust.
14990 (init_base_vars): Push NULL for ID zero.
14991 (compute_points_to_sets): Adjust.
14992
a271b42d
RB
149932013-03-20 Richard Biener <rguenther@suse.de>
14994
14995 * cfgloop.c (verify_loop_structure): Streamline and avoid
14996 ICEing on corrupt loop tree.
14997 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
14998 loop tree.
14999
ebd65954
RB
150002013-03-20 Richard Biener <rguenther@suse.de>
15001
15002 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
15003 check whether an SSA update is needed.
15004
4547b7ee
RS
150052013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
15006
15007 * config/mips/constraints.md (T): Rename to...
15008 (Yf): ...this.
15009 (U): Rename to...
15010 (Yd): ...this.
15011 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
15012 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
15013
0b8cdc58
IB
150142013-03-19 Ian Bolton <ian.bolton@arm.com>
15015
15016 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
15017 (*subsi3_carryin_uxtw): Likewise.
15018
5977a10d
IB
150192013-03-19 Ian Bolton <ian.bolton@arm.com>
15020
15021 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
15022 (*rorsi3_insn_uxtw): Likewise.
15023
bd83ff2c
IB
150242013-03-19 Ian Bolton <ian.bolton@arm.com>
15025
15026 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
15027 (*extrsi5_insn_uxtw): Likewise.
15028
ba65123c
RB
150292013-03-19 Richard Biener <rguenther@suse.de>
15030
15031 PR tree-optimization/56273
15032 * passes.c (init_optimization_passes): Move second VRP after DOM.
15033
2eac0476
UB
150342013-03-19 Uros Bizjak <ubizjak@gmail.com>
15035
15036 * config/i386/i386.md (*movti_internal): Merge from
15037 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
15038 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
15039 nox64 isa attributes.
15040
6e55eda7
RB
150412013-03-18 Richard Biener <rguenther@suse.de>
15042
15043 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
15044 (unite): Likewise.
15045 (merge_node_constraints): Likewise.
15046 (build_succ_graph): Likewise.
15047 (valid_graph_edge): Inline into single caller.
15048 (unify_nodes): Likewise. Use bitmap_set_bit return value
15049 and cache varinfo.
15050 (scc_visit): Fix formatting and variable use.
15051 (do_sd_constraint): Use gcc_checking_assert.
15052 (do_ds_constraint): Likewise.
15053 (do_complex_constraint): Likewise.
15054 (condense_visit): Likewise. Cleanup.
15055 (dump_pred_graph): New function.
15056 (perform_var_substitution): Dump the pred-graph before
15057 variable substitution.
15058 (find_equivalent_node): Use gcc_checking_assert.
15059 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
15060
4bdd44c4
RB
150612013-03-18 Richard Biener <rguenther@suse.de>
15062
15063 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
15064 Remove cond_expr_stmt_list argument and do not gimplify the
15065 built expression.
15066 (vect_loop_versioning): Adjust.
15067 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
15068 Cleanup to use less temporaries.
15069 (vect_create_data_ref_ptr): Cleanup.
15070
38c56a5b
JJ
150712013-03-18 Jakub Jelinek <jakub@redhat.com>
15072
15073 PR tree-optimization/56635
15074 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
15075 require types_compatible_p types.
15076
20b2e6a0
NC
150772013-03-18 Nick Clifton <nickc@redhat.com>
15078
a6178a25
NC
15079 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
15080 spurious backslash.
15081
20b2e6a0
NC
15082 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
15083 Add missing line to comment describing function.
15084
92608d0e
RB
150852013-03-18 Richard Biener <rguenther@suse.de>
15086
15087 PR tree-optimization/56210
15088 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
15089 Handle string / character search functions.
15090 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
15091
31348d52
RB
150922013-03-18 Richard Biener <rguenther@suse.de>
15093
15094 PR middle-end/56483
15095 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
15096 and implement properly.
15097 * gimple.h (gimple_cond_single_var_p): Remove.
15098
fcac74a1
RB
150992013-03-18 Richard Biener <rguenther@suse.de>
15100
15101 * tree-data-ref.h (find_data_references_in_loop): Declare.
15102 * tree-data-ref.c (get_references_in_stmt): Use a stack
15103 vector pre-allocated in the callers.
15104 (find_data_references_in_stmt): Adjust.
15105 (graphite_find_data_references_in_stmt): Likewise.
15106 (create_rdg_vertices): Likewise.
15107 (find_data_references_in_loop): Export.
15108 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
15109 Compute dependences here...
15110 (vect_analyze_data_refs): ...not here. When we encounter
15111 a non-vectorizable data reference in basic-block vectorization
15112 truncate the data reference vector. Do not bother to
15113 fixup data-dependence information for gather loads.
15114 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
15115 of data references, as reported.
15116
0d5a1b56
RB
151172013-03-18 Richard Biener <rguenther@suse.de>
15118
15119 PR tree-optimization/3713
15120 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
15121 has_constants and expr.
15122 (stmt_has_constants): Properly valueize SSA names when deciding
15123 whether the stmt has constants.
15124
789c34e3
RB
151252013-03-18 Richard Biener <rguenther@suse.de>
15126
15127 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
15128 whole function when there is nothing to do.
15129 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
15130 * tree-vectorizer.c (vectorize_loops): Update virtual and
15131 loop-closed SSA once.
15132 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
15133
076b4605
RB
151342013-03-18 Richard Biener <rguenther@suse.de>
15135
15136 PR middle-end/56113
15137 * domwalk.c (bb_postorder): New global static.
15138 (cmp_bb_postorder): New function.
15139 (walk_dominator_tree): Replace scheme imposing an order for
15140 visiting dominator sons by one sorting them at the time they
15141 are pushed on the stack.
15142
bdb01696
RB
151432013-03-18 Richard Biener <rguenther@suse.de>
15144
15145 PR tree-optimization/39326
15146 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
15147 (struct mem_ref): Replace mem member with ao_ref typed member.
15148 (MEM_ANALYZABLE): Adjust.
15149 (memref_eq): Likewise.
15150 (mem_ref_alloc): Likewise.
15151 (gather_mem_refs_stmt): Likewise.
15152 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
15153 (execute_sm_if_changed_flag_set): Adjust.
15154 (execute_sm): Likewise.
15155 (ref_always_accessed_p): Likewise.
15156 (refs_independent_p): Likewise.
15157 (can_sm_ref_p): Likewise.
15158
12d2dc5e
JJ
151592013-03-18 Jakub Jelinek <jakub@redhat.com>
15160
15161 PR c/56566
15162 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
15163 return 1 even for !unsignedp.
15164
286fb677
UB
151652013-03-17 Uros Bizjak <ubizjak@gmail.com>
15166
15167 * config/i386/i386.md (isa): Add x64 and nox64.
15168 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
15169 (*pushtf): Enable *roF alternative for x64 isa only.
15170 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
15171 mode attribute of integer alternatives to DImode for TARGET_64BIT.
15172 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
15173 (*movtf_internal): Merge from *movtf_internal_rex64 and
15174 *movtf_internal_sse. Use x64 and nox64 isa attributes.
15175 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
15176 nox64 isa attributes.
15177 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
15178 nox64 isa attributes.
15179 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
15180
88b97037
UB
151812013-03-17 Uros Bizjak <ubizjak@gmail.com>
15182
15183 * config/alpha/alpha.c (TARGET_LRA_P): New define.
15184
9f4f1735
JJ
151852013-03-17 Jakub Jelinek <jakub@redhat.com>
15186
15187 PR target/56640
15188 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
15189 class names. Remove trailing comma after "ALL_REGS".
15190
48f4a6fa
JH
151912013-03-16 Jan Hubicka <jh@suse.cz>
15192
15193 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
15194 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
15195 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
15196 of cgraph_get_create_node.
15197 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
15198
98e81123
JM
151992013-03-16 Jason Merrill <jason@redhat.com>
15200
15201 PR debug/49090
15202 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
15203 with DW_AT_default_value.
15204
8a298c04
JJ
152052013-03-16 Jakub Jelinek <jakub@redhat.com>
15206
15207 * BASE-VER: Set to 4.9.0.
15208
4323afa0
AK
152092013-03-14 Andi Kleen <ak@linux.intel.com>
15210
15211 PR target/56619
15212 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
15213 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
15214 Document _x* TSX intrinsics.
15215
b3c0d469
JJ
152162013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
15217 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
15218
15219 * configure.ac: Add MicroBlaze TLS support detection.
15220 * configure: Regenerate.
88b97037
UB
15221 * config/microblaze/microblaze-protos.h
15222 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
15223 symbol_mentioned_p, label_mentioned_p): Add prototypes.
15224 * config/microblaze/microblaze.c (microblaze_address_type): Add
15225 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
15226 (microblaze_address_info): Add tls_reloc.
15227 (TARGET_HAVE_TLS): Define.
15228 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
15229 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
15230 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
15231 load_tls_operand, microblaze_call_tls_get_addr,
15232 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
15233 (microblaze_classify_unspec): Handle UNSPEC_TLS.
15234 (get_base_reg): Use microblaze_tls_symbol_p.
15235 (microblaze_classify_address): Handle TLS.
88b97037
UB
15236 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
15237 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
15238 (microblaze_legitimize_address): Handle TLS.
15239 (microblaze_address_insns): Handle ADDRESS_TLS.
15240 (pic_address_needs_scratch): Handle TLS.
15241 (print_operand_address): Handle TLS.
15242 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
15243 (microblaze_expand_move): Handle TLS.
88b97037
UB
15244 (microblaze_legitimate_constant_p): Check
15245 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
15246 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
15247 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
15248 (PIC_OFFSET_TABLE_REGNUM): Set.
15249 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
15250 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
15251 (addsi3, movsi_internal2, movdf_internal): Update constraints
15252 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
15253 (move_operand): Redefine as move_src_operand,
15254 check microblaze_tls_referenced_p.
8cc9a5a5 15255
d803a491
IB
152562013-03-14 Ian Bolton <ian.bolton@arm.com>
15257
15258 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
15259 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
15260
a8504f22
IB
152612013-03-14 Ian Bolton <ian.bolton@arm.com>
15262
15263 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
15264 CC mode for AND.
15265
df2dfaea
JJ
152662013-03-14 Jakub Jelinek <jakub@redhat.com>
15267
fbd28bc3
JJ
15268 PR tree-optimization/53265
15269 * common.opt (Waggressive-loop-optimizations): New option.
15270 * tree-ssa-loop-niter.c: Include tree-pass.h.
15271 (do_warn_aggressive_loop_optimizations): New function.
15272 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
15273 if number_of_latch_executions returned constant.
15274 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
15275 early. If number_of_latch_executions returned constant, set
15276 nb_iterations_upper_bound back to it.
15277 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
15278 field.
15279 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
15280 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
15281
df2dfaea
JJ
15282 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
15283 (MULTILIB_OSDIRNAMES): Set.
15284 * genmultilib: If defaultosdirname doesn't start with :: , set
15285 defaultosdirname2 instead, clear it and emit two . multilib_raw
15286 entries instead of just one.
15287
ee0d2b68
KK
152882013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
15289
15290 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
15291 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
15292 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
15293 (SUBTARGET_OVERRIDE_OPTIONS): New.
15294
decc676e
OE
152952013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
15296
15297 PR target/49880
15298 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
15299 (musermode): Convert to Var(TARGET_USERMODE).
15300 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
15301 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
15302 * config/sh/sh.c (sh_option_override): Use
15303 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
15304 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
15305 condition.
15306 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
15307 TARGET_SH4.
15308 (udivsi3_i4_single, divsi3_i4_single): Use
15309 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
15310
f4b719c7
DK
153112013-03-13 Dave Korn <dave.korn.cygwin@....>
15312
15313 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
15314 default setting.
15315
c40eced0
RB
153162013-03-13 Richard Biener <rguenther@suse.de>
15317
15318 PR tree-optimization/56608
15319 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
15320 calls when vectorizing basic-blocks.
15321
1bfa5973
JJ
153222013-03-13 Jakub Jelinek <jakub@redhat.com>
15323
15324 PR plugins/45078
15325 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
15326 tm_file.
15327
6fcf5434
JJ
153282013-03-12 Jakub Jelinek <jakub@redhat.com>
15329
15330 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
15331
4f38fa8c
JH
153322013-03-11 Jan Hubicka <jh@suse.cz>
15333
15334 PR lto/56557
15335 * lto-streamer-out.c (output_symbol_p): Skip references from
15336 constructors of external variables.
15337
c5c5ba89
JH
153382013-03-11 Jan Hubicka <jh@suse.cz>
15339
15340 PR middle-end/56571
15341 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
15342 from pseudos.
15343 * emit-rtl.c (verify_rtx_sharing): Likewise.
15344 (copy_insn_1): Likewise.
15345 * rtl.c (copy_rtx): Likewise.
15346
c2a939b1
GJL
153472013-03-11 Georg-Johann Lay <avr@gjlay.de>
15348
15349 PR target/56591
15350 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
15351 output_operand_lossage message.
88b97037 15352
3c3279fb
RE
153532013-03-11 Richard Earnshaw <rearnsha@arm.com>
15354
15355 PR target/56470
15356 * arm.c (shift_op): Validate RTL pattern on the fly.
15357 (arm_print_operand, case 'S'): Don't use shift_operator to validate
15358 the RTL.
15359
aef5ef9d
JDA
153602013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15361
15362 PR target/56347
15363 * config/pa/pa.md (call_value): Check for calls to powf and direct to
15364 new call patterns that clobber %fr12.
15365 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
15366 split and postreload patterns.
15367 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
15368 registers %fr12 and %fr12R as call used.
15369
456610d3
SB
153702013-03-09 Steven Bosscher <steven@gcc.gnu.org>
15371
15372 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
15373 (canon_address, record_store, replace_read, check_mem_read_rtx,
15374 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
15375 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
15376 rest_of_handle_dse): Likewise.
15377
4b1baac8
RS
153782013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
15379
15380 PR middle-end/56524
15381 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
15382 Add base_optabs.
15383 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
15384 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
15385 (save_optabs_if_changed): Replace with...
15386 (init_tree_optimization_optabs): ...this.
15387 * optabs.c (save_optabs_if_changed): Rename to...
15388 (init_tree_optimization_optabs): ...this. Take the optimization node
15389 as argument. Do nothing if the base optabs are already correct.
15390 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
15391 to recompute optabs.
15392 * function.h (function): Remove optabs field.
15393 * function.c (invoke_set_current_function_hook): Call
15394 init_tree_optimization_optabs. Use the result to initialize
15395 this_fn_optabs.
15396
b7a78683
AH
153972013-02-27 Aldy Hernandez <aldyh@redhat.com>
15398
15399 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
15400 if GTMA_HAS_NO_INSTRUMENTATION.
15401 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
15402 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
15403 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
15404 * gimple-pretty-print.c (dump_gimple_transaction): Handle
15405 GTMA_HAS_NO_INSTRUMENTATION.
15406
6384c29b
JJ
154072013-03-08 Jakub Jelinek <jakub@redhat.com>
15408
15409 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
15410 libasan_preinit.o.
15411
ecd4f20a
MP
154122013-03-08 Marek Polacek <polacek@redhat.com>
15413 Jakub Jelinek <jakub@redhat.com>
15414
15415 PR tree-optimization/56478
15416 * predict.c (is_comparison_with_loop_invariant_p): Change the
15417 type of loop_step to tree.
15418 (predict_loops): Adjust.
15419 (predict_iv_comparison): Perform the computations on double_ints.
15420
64366d35
RB
154212013-03-08 Richard Biener <rguenther@suse.de>
15422
15423 PR tree-optimization/56570
15424 * tree-cfg.c (verify_expr_location_1): Verify locations for
15425 DECL_DEBUG_EXPR.
15426 * tree-sra.c (create_access_replacement): Strip locations
15427 from DECL_DEBUG_EXPRs.
15428
a9d5a059
RB
154292013-03-08 Richard Biener <rguenther@suse.de>
15430
15431 * tree-inline.c (expand_call_inline): Do not associate
15432 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
15433 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
15434
b7aa4e9a
RB
154352013-03-08 Richard Biener <rguenther@suse.de>
15436
15437 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
15438 or block changes with -Og. Fix for location / block encoding
15439 changes and PHI arguments with locations.
15440
c4c2f9fa
SB
154412013-03-07 Steven Bosscher <steven@gcc.gnu.org>
15442
15443 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
15444 for all counters.
15445 (struct output_info): Likewise.
15446 (register_overhead): Remove bad gcc_assert.
15447 (bitmap_find_bit): If there is only a single bitmap element, do not
15448 count a miss as a search.
15449 (print_statistics): Update for counter type changes.
15450 (dump_bitmap_statistics): Likewise. Print headers such that they
15451 are properly lined up with the printed counters.
15452
5bf6606a
JJ
154532013-03-07 Jakub Jelinek <jakub@redhat.com>
15454
15455 PR tree-optimization/56559
15456 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
15457 check that it has only a single use.
15458
2c653d46
RB
154592013-03-07 Richard Biener <rguenther@suse.de>
15460
15461 * doc/invoke.texi (fwhole-program): Discourage use in combination
15462 with -flto.
15463
a72d8780
JJ
154642013-03-06 Jakub Jelinek <jakub@redhat.com>
15465
01a454df
JJ
15466 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
15467
c1781047
JJ
15468 PR tree-optimization/56539
15469 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
15470 instead of GSI_CONTINUE_LINKING as last argument to
15471 force_gimple_operand_gsi. Adjust function comment.
15472
9772c47a
JJ
15473 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
15474 aarch64-cores.def.
15475
a72d8780
JJ
15476 PR middle-end/56548
15477 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
15478 promoted mode, convert the result back to the original mode.
15479
fa5556de
RB
154802013-03-06 Richard Biener <rguenther@suse.de>
15481
15482 PR middle-end/56294
15483 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
15484 (insert_updated_phi_nodes_compare_uids): New function.
15485 (update_ssa): Sort symbols_to_rename after UID before
15486 traversing it to insert PHI nodes.
15487
010403d1
RB
154882013-03-06 Richard Biener <rguenther@suse.de>
15489
15490 PR middle-end/50494
15491 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
15492 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
15493
15494 Revert
15495 2013-02-13 Richard Biener <rguenther@suse.de>
15496
15497 PR lto/50494
15498 * varasm.c (output_constant_def_1): Get the decl representing
15499 the constant as argument.
15500 (output_constant_def): Wrap output_constant_def_1.
15501 (make_decl_rtl): Use output_constant_def_1 with the decl
15502 representing the constant.
15503 (build_constant_desc): Optionally re-use a decl already
15504 representing the constant.
15505 (tree_output_constant_def): Adjust.
15506
3c27ce4c
JY
155072013-03-06 Joey Ye <joey.ye@arm.com>
15508
15509 PR lto/50293
15510 * gcc.c (convert_white_space): New function.
15511 (main): Handles white space in function name.
15512
8f6d1c86
OE
155132013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
15514
15515 PR target/56529
15516 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
15517 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
15518 to SH_DIV_CALL_TABLE for TARGET_SH2.
15519 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
15520 list.
15521 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
15522 call-table options.
15523
798a209f
SA
155242013-03-05 Sterling Augustine <saugustine@google.com>
15525 Cary Coutant <ccoutant@google.com>
15526
15527 PR debug/55364
15528 * dwarf2out.c (resolve_addr): Don't call
15529 remove_loc_list_addr_table_entries a second time for the same
15530 expression.
15531
6cfa417f 155322013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 15533
6cfa417f
JJ
15534 PR debug/56510
15535 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
15536 (avoid_complex_debug_insns): New function.
15537 (expand_debug_locations): Call it.
15538
15539 PR rtl-optimization/56484
15540 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
15541 lifetimes of hard registers on small register class machines.
15542
155432013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
15544
15545 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 15546 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 15547 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
15548 fast_interrupt.
15549 (microblaze_fast_interrupt_function_p): New function.
15550 (microblaze_is_interrupt_handler): Rename to
15551 microblaze_is_interrupt_variant and add fast_interrupt check.
15552 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
15553 (save_restore_insns): Likewise.
15554 (compute_frame_size): Likewise.
15555 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
15556 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
15557 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
15558 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
15559 microblaze_is_interrupt_variant.
15560
731aefac
KT
155612013-03-05 Kai Tietz <ktietz@redhat.com>
15562
15563 * sdbout.c (sdbout_one_type): Switch to current function's section
15564 supporting cold/hot.
15565
a72d8780 155662013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
15567
15568 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
15569 -mxl-reorder.
15570
334e71e8
JJ
155712013-03-05 Jakub Jelinek <jakub@redhat.com>
15572
0b50e654
JJ
15573 PR middle-end/56461
15574 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
15575 if VALGRIND_GET_VBITS is defined, temporarily make object
15576 memory all defined, and restore previous valgrind addressability
15577 and definability afterwards. Free this_object at the end.
15578
4ccf8f43
JJ
15579 PR middle-end/56461
15580 * lra.c (lra): Call lra_clear_live_ranges if live_p,
15581 right before calling lra_create_live_ranges, also call it
15582 when clearing live_p. Only call lra_clear_live_ranges
15583 at the end if live_p.
15584
334e71e8
JJ
15585 PR middle-end/56461
15586 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
15587
9ca966ca
RB
155882013-03-05 Richard Biener <rguenther@suse.de>
15589
15590 PR tree-optimization/56521
15591 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
15592 value-id.
15593
d273b176
SB
155942013-03-05 Steven Bosscher <steven@gcc.gnu.org>
15595
15596 PR c++/55135
15597 * except.h (remove_unreachable_eh_regions): New prototype.
15598 * except.c (remove_eh_handler_splicer): New function, split out
15599 of remove_eh_handler.
15600 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
15601 warning about running it on many EH regions one at a time.
15602 (remove_unreachable_eh_regions_worker): New function, walk the
15603 EH tree in depth-first order and remove non-marked regions.
15604 (remove_unreachable_eh_regions): New function.
15605 * tree-eh.c (mark_reachable_handlers): New function, split out
15606 from remove_unreachable_handlers.
15607 (remove_unreachable_handlers): Use mark_reachable_handlers and
15608 remove_unreachable_eh_regions.
15609 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
15610 and remove_unreachable_eh_regions.
15611
5e7f1aef
RB
156122013-03-05 Richard Biener <rguenther@suse.de>
15613
15614 PR middle-end/56525
15615 * loop-init.c (fix_loop_structure): Remove loops in two stages,
15616 not freeing them until the end.
15617
f276b762
AK
156182013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15619
15620 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
15621
12a43ab8
RB
156222013-03-05 Richard Biener <rguenther@suse.de>
15623
15624 PR tree-optimization/56270
15625 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
15626 of loads after scheduling an SLP instance.
15627
93675444
JJ
156282013-03-05 Jakub Jelinek <jakub@redhat.com>
15629
db4138e3
JJ
15630 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
15631 tic6x.exp.
15632 (check_gcc_parallelize): Run guality.exp as a separate job from
15633 vect.exp with unsorted.exp and $(dg_target_exps) separately from
15634 struct-layout-1.exp with stackalign.exp.
15635
dd3d1ec0
JJ
15636 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
15637
b8d381a3
JJ
15638 PR middle-end/56461
15639 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
15640 load_index sbitmap even if some bit in it isn't set.
15641
b4f9786b
JJ
15642 PR middle-end/56461
15643 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
15644 (discover_iteration_bound_by_body_walk): Change queues to
15645 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
15646 spelling in comment. Call safe_push on queues[bound_index] directly.
15647 Release queues[queue_index] in every iteration unconditionally.
15648 Release bounds vector.
15649
93675444
JJ
15650 PR middle-end/56461
15651 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
15652 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
15653 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
15654 inner_phis vector.
15655
3e492e9c
RB
156562013-03-05 Richard Biener <rguenther@suse.de>
15657
15658 PR lto/56515
15659 * tree-inline.c (remap_blocks_to_null): New function.
15660 (expand_call_inline): When expanding a call stmt without
15661 an associated block inline remap all callee blocks to NULL.
15662
a5d1569a
JJ
156632013-03-05 Jakub Jelinek <jakub@redhat.com>
15664
86efb5cd
JJ
15665 PR rtl-optimization/56494
15666 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
15667 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
15668 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
15669
85f5dbea
JJ
15670 PR middle-end/56461
15671 * sel-sched-ir.c (free_sched_pools): Release
15672 succs_info_pool.stack[succs_info_pool.max_top] vectors too
15673 if succs_info_pool.max_top isn't -1.
15674
a5d1569a
JJ
15675 PR bootstrap/56509
15676 * opts.c (opts_obstack, opts_concat): Moved to...
15677 * opts-common.c (opts_obstack, opts_concat): ... here.
15678
4432aa6c
JJ
156792013-03-04 Jakub Jelinek <jakub@redhat.com>
15680
15681 PR middle-end/56461
15682 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
15683
f3a1fb91
MJ
156842013-03-04 Martin Jambor <mjambor@suse.cz>
15685
15686 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
15687 all appropriate places.
15688
22110e6c
EB
156892013-01-04 Eric Botcazou <ebotcazou@adacore.com>
15690
15691 PR tree-optimization/56424
15692 * ipa-split.c (split_function): Do not set the RSO flag if result is
15693 not by reference and its type is a register type.
15694
a72d8780 156952013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 15696
88b97037 15697 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 15698 (microblaze_legitimate_pic_operand): Likewise
88b97037 15699 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
15700 new function microblaze_legitimate_pic_operand
15701 * config/microblaze/microblaze-protos.h
15702 (microblaze_legitimate_pic_operand): Declare.
15703
a72d8780 157042013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 15705
a72d8780 15706 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 15707 New predicate for supported rtx code types.
a72d8780 15708 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
15709 call_insn_simple_operand predicate.
15710
541d9ac8
JJ
157112013-03-04 Jakub Jelinek <jakub@redhat.com>
15712
5eb010bc
JJ
15713 PR middle-end/56461
15714 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
15715 partitions.ordered_remove.
15716
30862efc
JJ
15717 PR middle-end/56461
15718 * tree-vect-stmts.c (vectorizable_conversion): Don't call
15719 vec_oprnds0.create (1) for modifier == NONE.
15720
8930f723
JJ
15721 PR middle-end/56461
15722 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
15723 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
15724 vec_oprnds1 right before pushing anything to it for
15725 scalar_shift_arg.
15726
541d9ac8
JJ
15727 PR middle-end/56461
15728 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
15729 set nbbs to 0 instead of having separate code path.
15730 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
15731 instead of false as last argument if returning NULL.
15732
7aa7f2e3
SL
157332013-03-03 Sandra Loosemore <sandra@codesourcery.com>
15734
15735 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
15736 the attribute is now called "target" instead of "option".
15737 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
15738 * doc/tm.texi.in (Target Attributes): Likewise document the correct
15739 attribute/pragma name for TARGET_OPTION_VALID_P and
15740 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
15741 * doc/tm.texi: Regenerated.
15742
8930f723 157432013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 15744
8930f723 15745 * config/microblaze/microblaze.c:
cb8a1637 15746 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
15747 * config/microblaze/microblaze.h: Add -mxl-reorder to
15748 DRIVER_SELF_SPECS.
15749 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
15750 instructions emitted if TARGET_REORDER.
88b97037
UB
15751 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
15752 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 15753 separately.
cb8a1637 15754
4dc1d68c
XDL
157552013-03-01 Xinliang David Li <davidxl@google.com>
15756
15757 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
15758 walk length.
15759
689eaba3
JJ
157602013-03-01 Jakub Jelinek <jakub@redhat.com>
15761
9d676bf6
JJ
15762 PR middle-end/56461
15763 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
15764 vector even when returning true. Fix up function comment formatting.
15765
caff7edf
JJ
15766 PR middle-end/56461
15767 * ira-build.c (ira_loop_nodes_count): New variable.
15768 (create_loop_tree_nodes): Initialize it.
15769 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
15770
b6b9227d
JJ
15771 PR middle-end/56461
15772 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
15773 method on dr_chain and result_chain.
15774 * tree-vect-stmts.c (vectorizable_store): Only call
15775 result_chain.create if j == 0.
15776
689eaba3
JJ
15777 PR middle-end/56461
15778 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
15779 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
15780 before overwriting it.
15781
40bf31ed
TB
157822013-03-01 Tobias Burnus <burnus@net-b.de>
15783
15784 * doc/extended.texi (C Extensions): Change order in @menu
15785 to match @node.
15786 (Other MIPS Built-in Functions): Move last MIPS entry before
15787 "picoChip Built-in Functions".
15788 (SH Built-in Functions): Move after RX Built-in Functions.
15789 * doc/gcc.texi (Introduction): Change order in @menu
15790 to match @node.
15791 * doc/md.texi (Constraints): Ditto.
15792 * gty.texi (Type Information): Ditto.
15793 (User-provided marking routines for template types): Make
15794 subsection.
15795 * doc/invoke.texi (AArch64 Options): Move before
15796 "Adapteva Epiphany Options".
15797
e664c61c
KS
157982013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
15799 Jakub Jelinek <jakub@redhat.com>
15800
15801 PR sanitizer/56454
15802 * asan.c (gate_asan): Lookup no_sanitize_address instead of
15803 no_address_safety_analysis attribute.
15804 * doc/extend.texi (no_address_safety_attribute): Rename to
15805 no_sanitize_address attribute, mention no_address_safety_analysis
15806 attribute as deprecated alias.
15807
37b5ec8f
JJ
158082013-02-28 Jakub Jelinek <jakub@redhat.com>
15809
15810 PR middle-end/56461
15811 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
15812 type to vec<vec<tree> > *.
15813 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
15814 to be vec<tree> instead of vec<tree> *, set vec_defs
15815 to vNULL and call vec_defs.create (number_of_vects), adjust other
15816 uses of vec_defs.
15817 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
15818 vectorizable_condition): Adjust vect_get_slp_defs callers.
15819
ba96cdfb
JG
158202013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
15821
15822 * config/aarch64/aarch64.c
15823 (aarch64_float_const_representable): Remove unused variable.
15824
6f549691
JG
158252013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
15826
15827 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
15828
af55e82d
JG
158292013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
15830
15831 * config/aarch64/aarch64-builtins.c
15832 (aarch64_init_simd_builtins): Make static.
15833
1df3f464
JG
158342013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
15835
15836 * config/aarch64/aarch64.c
15837 (aarch64_simd_make_constant): Make static.
15838
f8f42513
MJ
158392013-02-28 Martin Jambor <mjambor@suse.cz>
15840
15841 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
15842 with no initialization to the RHS of debug statements.
15843
b48b3fc4
MJ
158442013-02-28 Martin Jambor <mjambor@suse.cz>
15845
15846 PR tree-optimization/56294
15847 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
15848 Adjust dumping.
15849 (get_access_replacement): Do not call create_access_replacement.
15850 Assert a replacement exists.
15851 (get_repl_default_def_ssa_name): Create the replacement declaration
15852 itself.
15853
c3ae224c
RR
158542013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15855
15856 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
15857 final_end_function.
15858
45fa0eef
MP
158592013-02-28 Marek Polacek <polacek@redhat.com>
15860
15861 PR rtl-optimization/56466
15862 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
15863 if we're changing a loop.
15864 (peel_loops_completely): Likewise.
15865
502c067d
PC
158662013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
15867
15868 PR c++/55813
15869 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
15870
ff24afc8
GJL
158712013-02-28 Georg-Johann Lay <avr@gjlay.de>
15872
15873 PR target/56445
15874 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
15875 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
15876 INTX_FTYPE_FX, FX_FTYPE_INTX.
15877 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
15878
c7b1fc1b
GJL
158792013-02-28 Georg-Johann Lay <avr@gjlay.de>
15880
15881 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
15882 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
15883 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
15884 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
15885 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
15886 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
15887 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
15888 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
15889 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
15890 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
15891 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
15892 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
15893 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
15894 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
15895 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
15896 (avrxmega6): Increase max flash segments from 5 to 6.
15897 * config/avr/t-multilib: Regenerate.
15898 * config/avr/avr-tables.opt: Regenerate.
15899 * doc/avr-mmcu.texi: Regenerate.
15900
4a0e3cfe
GJL
159012013-02-28 Georg-Johann Lay <avr@gjlay.de>
15902
15903 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
15904 (avr_device_to_arch): Rename to avr_device_to_ld.
15905 (avr_device_to_as): New prototype.
15906 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
15907 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
15908 * config/avr/driver-avr.c (avr_device_to_as): New.
15909 (avr_device_to_arch): Rename to avr_device_to_ld.
15910
97785e52
JJ
159112013-02-27 Jakub Jelinek <jakub@redhat.com>
15912
3f292312
JJ
15913 PR middle-end/56461
15914 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
15915 method on dr_chain and result_chain.
15916
a344216b
JJ
15917 PR middle-end/56461
15918 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
15919 pointer_set_destroy on not_executed_last_iteration.
15920
f121ad02 15921 PR middle-end/56461
88b97037 15922 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 15923
307f83a3
JJ
15924 PR middle-end/56461
15925 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
15926 FOR_EACH_DEFINED_FUNCTION when freeing state.
15927
e19624ee
JJ
15928 PR middle-end/56461
15929 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
15930 pool_free.
15931 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
15932 overwriting it.
15933
90e709fd
JJ
15934 PR middle-end/56461
15935 * ipa-cp.c (decide_whether_version_node): Call vec_free on
15936 known_aggs[i].items and release known_aggs vector.
15937
97785e52
JJ
15938 PR middle-end/56461
15939 * ipa-reference.c (propagate): Free node_info even for alias nodes.
15940
159412013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 15942
97785e52
JJ
15943 * config/microblaze/microblaze.c (microblaze_emit_compare):
15944 Use xor for EQ/NE comparisions.
15945 * config/microblaze/microblaze.md (cstoresf4): Add constraints
15946 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 15947
6fa5e0ed
JJ
159482013-02-27 Jakub Jelinek <jakub@redhat.com>
15949
15950 PR middle-end/56461
15951 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
15952 vector.
15953 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
15954 vec_safe_push, always update *slot.
15955 (redirect_edge_var_map_clear): Use vec_free.
15956 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
15957 (free_var_map_entry): Use vec_free.
15958 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
15959 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
15960
436a956a
AB
159612013-02-27 Andrey Belevantsev <abel@ispras.ru>
15962
15963 PR middle-end/45472
436a956a
AB
15964 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
15965 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
15966 Reorder tests for speculativeness in the logical and operator.
15967
f5c2caca
JJ
159682013-02-27 Jakub Jelinek <jakub@redhat.com>
15969
0fcb564b
JJ
15970 * incpath.c (add_standard_paths): Use reconcat instead of concat
15971 where appropriate and avoid leaking memory.
15972
dc357798
JJ
15973 * opts.h: Include obstack.h.
15974 (opts_concat): New prototype.
15975 (opts_obstack): New declaration.
15976 * opts.c (opts_concat): New function.
15977 (opts_obstack): New variable.
15978 (init_options_struct): Call gcc_init_obstack on opts_obstack.
15979 (finish_options): Use opts_concat instead of concat
15980 and XOBNEWVEC instead of XNEWVEC.
15981 * opts-common.c (generate_canonical_option, decode_cmdline_option,
15982 generate_option): Likewise.
15983 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
15984 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
15985
f5c2caca
JJ
15986 PR target/56455
15987 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
15988 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
15989
d0163673
JJ
159902013-02-26 Jakub Jelinek <jakub@redhat.com>
15991
15992 PR middle-end/56461
15993 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
15994
b5ad2b8e
JR
159952013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
15996
15997 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
15998 (arm_block_move_unaligned_straight): Likewise.
15999 (arm_adjust_block_mem): Likewise.
16000
9b639e2c
JR
160012013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
16002
16003 PR target/48901
16004 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
16005 temp, cond and label.
16006 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
16007
e13a0ccb
JR
16008 PR target/52500
16009 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
16010 * config/c6x/c6x.h (dbx_register_map): Update declaration.
16011
fbe4f171
JR
16012 PR target/52501
16013 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
16014 of prologue/epilogue functions.
16015
ae006543
JR
16016 PR target/52550
16017 * config/tilegx/tilegx.c (tilegx_expand_prologue):
16018 Remove unused variable cfa_offset.
16019 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
16020
c81369fa
JR
16021 PR target/54639
16022 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
16023 type promotion to unsigned.
16024
f8a8fea7
JR
16025 PR target/54640
16026 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
16027 for HOST_WIDE_INT of 32 bit / same size as int.
16028 (arm_block_move_unaligned_straight): Likewise.
16029 (arm_adjust_block_mem): Likewise.
16030
f8be5169
JR
16031 PR target/54662
16032 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
16033 ALL_CFLAGS.
16034
f1ad3354
MP
160352013-02-26 Marek Polacek <polacek@redhat.com>
16036
16037 PR tree-optimization/56426
88b97037 16038 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 16039
a6af0f42
RB
160402013-02-26 Richard Biener <rguenther@suse.de>
16041
16042 PR target/56444
16043 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
16044 unused variable loops.
16045
aca43c6c
JJ
160462013-02-26 Jakub Jelinek <jakub@redhat.com>
16047
cecbe5d9
JJ
16048 PR tree-optimization/56448
16049 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
16050 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
16051 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
16052 later operands of the references, or even first operand for
16053 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
16054
aca43c6c
JJ
16055 PR tree-optimization/56443
16056 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
16057 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
16058 to type_for_mode langhook.
16059
53e2e141
MT
160602013-02-25 Matt Turner <mattst88@gmail.com>
16061
16062 * doc/invoke.texi: Document r4700.
16063
259ee451
RB
160642013-02-25 Richard Biener <rguenther@suse.de>
16065
16066 PR tree-optimization/56175
16067 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
16068 split out from ...
16069 (simplify_bitwise_binary): ... here. Also guard the conversion
16070 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
16071
6d65e8f1
CM
160722013-02-25 Catherine Moore <clm@codesourcery.com>
16073
16074 Revert:
16075 2013-02-24 Catherine Moore <clm@codesourcery.com>
16076 Maciej W. Rozycki <macro@codesourcery.com>
16077 Tom de Vries <tom@codesourcery.com>
a72d8780 16078 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
16079 Iain Sandoe <iain@codesourcery.com>
16080 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 16081 Chao-ying Fu <fu@mips.com>
88b97037 16082
6d65e8f1 16083 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 16084 Document new function attributes.
6d65e8f1
CM
16085 * doc/invoke.texi (minterlink-compressed, mmicromips,
16086 m14k, m14ke, m14kec): Document new options.
16087 (minterlink-mips16): Update documentation.
16088 * doc/md.texi (ZC, ZD): Document new constraints.
16089 * configure.ac (gcc_cv_as_micromips): Check if linker
16090 supports the .set micromips directive.
16091 * configure: Regenerate.
16092 * config.in: Regenerate.
16093 * config/mips/mips-tables.opt: Regenerate.
16094 * config/mips/micromips.md: New file.
16095 * constraints.md (ZC, AD): New constraints.
16096 * config/mips/predicates.md (movep_src_register): New predicate.
16097 (movep_src_operand): New predicate.
16098 (non_volatile_mem_operand): New predicate.
16099 * config/mips/mips.md (multimem): New type.
16100 (length): Differentiate between 17-bit and 18-bit branch offsets.
16101 (MOVEP1, MOVEP2): New mode iterator.
16102 (mov_<load>l): Use ZC constraint.
16103 (mov_<load>r): Likewise.
16104 (mov_<store>l): Likewise.
16105 (mov_<store>r): Likewise.
16106 (*branch_equality<mode>_inverted): Add microMIPS support.
16107 (*branch_equality<mode>): Likewise.
16108 (*jump_absolute): Likewise.
16109 (indirect_jump_<mode>): Likewise.
16110 (tablejump_<mode>): Likewise.
16111 (<optab>_internal): Likewise.
16112 (sibcall_internal): Likewise.
16113 (sibcall_value_internal): Likewise.
16114 (prefetch): Use constraint ZD.
16115 * config/mips/mips.opt (minterlink-compressed): New option.
16116 (minterlink-mips16): Now an alias for minterlink-compressed.
16117 (mmicromips): New option.
16118 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
16119 (compare_and_swap_12): Likewise.
16120 (sync_add<mode>): Likewise.
16121 (sync_<optab>_12): Likewise.
16122 (sync_old_<optab>_12): Likewise.
16123 (sync_new_<optab>_12): Likewise.
16124 (sync_nand_12): Likewise.
16125 (sync_old_nand_12): Likewise.
16126 (sync_new_nand_12): Likewise.
16127 (sync_sub<mode>): Likewise.
16128 (sync_old_add<mode>): Likewise.
16129 (sync_old_sub<mode>): Likewise.
16130 (sync_new_add<mode>): Likewise.
16131 (sync_new_sub<mode>): Likewise.
16132 (sync_<optab><mode>): Likewise.
16133 (sync_old_<optab><mode>): Likewise.
16134 (sync_new_<optab><mode>): Likewise.
16135 (sync_nand<mode>): Likewise.
16136 (sync_old_nand<mode>): Likewise.
16137 (sync_new_nand<mode>): Likewise.
16138 (sync_lock_test_and_set<mode>): Likewise.
16139 (test_and_set_12): Likewise.
16140 (atomic_compare_and_swap<mode>): Likewise.
16141 (atomic_exchange<mode>_llsc): Likewise.
16142 (atomic_fetch_add<mode>_llsc): Likewise.
16143 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
16144 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
16145 (umips_save_restore_pattern_p): Likewise.
16146 (umips_load_store_pair_p): Likewise.
16147 (umips_output_load_store_pair): Likewise.
16148 (umips_movep_target_p): Likewise.
16149 (umips_12bit_offset_address_p): Likewise.
16150 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
16151 (mips_base_mips16): Rename this...
16152 (mips_base_compression_flags): ...to this. Update all uses.
16153 (mips_attribute_table): Add micromips, nomicromips and nocompression.
16154 (mips_mips16_decl_p): Delete.
16155 (mips_nomips16_decl_p): Delete.
16156 (mips_get_compress_on_flags): New function.
16157 (mips_get_compress_off_flags): New function.
16158 (mips_get_compress_mode): New function.
16159 (mips_get_compress_on_name): New function.
16160 (mips_get_compress_off_name): New function.
16161 (mips_insert_attributes): Support multiple compression types.
16162 (mips_merge_decl_attributes): Likewise.
16163 (umips_12bit_offset_address_p): New function.
16164 (mips_start_function_definition): Emit .set micromips directive.
16165 (mips_call_may_need_jalx_p): New function.
16166 (mips_function_ok_for_sibcall): Add microMIPS support.
16167 (mips_print_operand_punctuation): Support short delay slots and
16168 compact jumps.
16169 (umips_swm_mask, umips_swm_encoding): New.
16170 (umips_build_save_restore): New function.
16171 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
16172 (was_mips16_p): Remove.
16173 (old_compression_mode): New.
16174 (mips_set_compression_mode): New function.
16175 (mips_set_current_function): Add microMIPS support.
16176 (mips_option_override): Likewise.
16177 (umips_save_restore_pattern_p): New function.
16178 (umips_output_save_restore): New function.
16179 (umips_load_store_pair_p_1): New function.
16180 (umips_load_store_pair_p): New function.
16181 (umips_output_load_store_pair_1): New function.
16182 (umips_output_load_store_pair): New function.
16183 (umips_movep_target_p) New function.
16184 (mips_prepare_pch_save): Add microMIPS support.
16185 * config/mips/mips.h (TARGET_COMPRESSION): New.
16186 (TARGET_CPU_CPP_BUILTINS): Update macro
16187 to use new compression flags and to support microMIPS.
16188 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
16189 (MIPS_ARCH_FLOAT_SPEC): Likewise.
16190 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
16191 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
16192 (ASM_SPEC): Support mmicromips and mno-micromips.
16193 (M16STORE_REG_P): New macro.
16194 (MIPS_CALL): Support TARGET_MICROMIPS.
16195 (MICROMIPS_J): New macro.
16196 (mips_base_mips16): Rename this...
16197 (mips_base_compression_flags): ...to this.
16198 (UMIPS_12BIT_OFFSET_P): New macro.
16199 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
16200 (MULTILIB_DIRNAMES): Likewise.
16201
5e5df392
TV
162022013-02-25 Tom de Vries <tom@codesourcery.com>
16203
16204 PR rtl-optimization/56131
16205 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
16206 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
16207 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
16208
3fdb53c1
TB
162092013-02-25 Tobias Burnus <burnus@net-b.de>
16210
16211 * doc/invoke.texi (-fsanitize=): Move from optimization
16212 to debugging options.
16213
ed358aea
AB
162142013-02-25 Andrey Belevantsev <abel@ispras.ru>
16215
16216 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
16217
f45e9053
AB
162182013-02-25 Andrey Belevantsev <abel@ispras.ru>
16219 Alexander Monakov <amonakov@ispras.ru>
16220
16221 PR middle-end/56077
16222 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
16223 flush pending lists also on non-jumps. Adjust comment.
16224
6941b508
CM
162252013-02-24 Catherine Moore <clm@codesourcery.com>
16226 Maciej W. Rozycki <macro@codesourcery.com>
16227 Tom de Vries <tom@codesourcery.com>
a72d8780 16228 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
16229 Iain Sandoe <iain@codesourcery.com>
16230 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 16231 Chao-ying Fu <fu@mips.com>
6941b508
CM
16232
16233 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 16234 Document new function attributes.
6941b508
CM
16235 * doc/invoke.texi (minterlink-compressed, mmicromips,
16236 m14k, m14ke, m14kec): Document new options.
16237 (minterlink-mips16): Update documentation.
16238 * doc/md.texi (ZC, ZD): Document new constraints.
16239 * configure.ac (gcc_cv_as_micromips): Check if linker
16240 supports the .set micromips directive.
16241 * configure: Regenerate.
16242 * config.in: Regenerate.
16243 * config/mips/mips-tables.opt: Regenerate.
16244 * config/mips/micromips.md: New file.
16245 * constraints.md (ZC, AD): New constraints.
16246 * config/mips/predicates.md (movep_src_register): New predicate.
16247 (movep_src_operand): New predicate.
16248 (non_volatile_mem_operand): New predicate.
16249 * config/mips/mips.md (multimem): New type.
16250 (length): Differentiate between 17-bit and 18-bit branch offsets.
16251 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 16252 (mov_<load>l): Use ZC constraint.
6941b508
CM
16253 (mov_<load>r): Likewise.
16254 (mov_<store>l): Likewise.
16255 (mov_<store>r): Likewise.
16256 (*branch_equality<mode>_inverted): Add microMIPS support.
16257 (*branch_equality<mode>): Likewise.
16258 (*jump_absolute): Likewise.
16259 (indirect_jump_<mode>): Likewise.
16260 (tablejump_<mode>): Likewise.
16261 (<optab>_internal): Likewise.
16262 (sibcall_internal): Likewise.
16263 (sibcall_value_internal): Likewise.
16264 (prefetch): Use constraint ZD.
16265 * config/mips/mips.opt (minterlink-compressed): New option.
16266 (minterlink-mips16): Now an alias for minterlink-compressed.
16267 (mmicromips): New option.
16268 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
16269 (compare_and_swap_12): Likewise.
16270 (sync_add<mode>): Likewise.
16271 (sync_<optab>_12): Likewise.
16272 (sync_old_<optab>_12): Likewise.
16273 (sync_new_<optab>_12): Likewise.
16274 (sync_nand_12): Likewise.
16275 (sync_old_nand_12): Likewise.
16276 (sync_new_nand_12): Likewise.
16277 (sync_sub<mode>): Likewise.
16278 (sync_old_add<mode>): Likewise.
16279 (sync_old_sub<mode>): Likewise.
16280 (sync_new_add<mode>): Likewise.
16281 (sync_new_sub<mode>): Likewise.
16282 (sync_<optab><mode>): Likewise.
16283 (sync_old_<optab><mode>): Likewise.
16284 (sync_new_<optab><mode>): Likewise.
16285 (sync_nand<mode>): Likewise.
16286 (sync_old_nand<mode>): Likewise.
16287 (sync_new_nand<mode>): Likewise.
16288 (sync_lock_test_and_set<mode>): Likewise.
16289 (test_and_set_12): Likewise.
16290 (atomic_compare_and_swap<mode>): Likewise.
16291 (atomic_exchange<mode>_llsc): Likewise.
16292 (atomic_fetch_add<mode>_llsc): Likewise.
16293 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
16294 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
16295 (umips_save_restore_pattern_p): Likewise.
16296 (umips_load_store_pair_p): Likewise.
16297 (umips_output_load_store_pair): Likewise.
16298 (umips_movep_target_p): Likewise.
16299 (umips_12bit_offset_address_p): Likewise.
16300 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
16301 (mips_base_mips16): Rename this...
16302 (mips_base_compression_flags): ...to this. Update all uses.
16303 (mips_attribute_table): Add micromips, nomicromips and nocompression.
16304 (mips_mips16_decl_p): Delete.
16305 (mips_nomips16_decl_p): Delete.
3fdb53c1 16306 (mips_get_compress_on_flags): New function.
6941b508
CM
16307 (mips_get_compress_off_flags): New function.
16308 (mips_get_compress_mode): New function.
16309 (mips_get_compress_on_name): New function.
16310 (mips_get_compress_off_name): New function.
16311 (mips_insert_attributes): Support multiple compression types.
16312 (mips_merge_decl_attributes): Likewise.
16313 (umips_12bit_offset_address_p): New function.
16314 (mips_start_function_definition): Emit .set micromips directive.
16315 (mips_call_may_need_jalx_p): New function.
16316 (mips_function_ok_for_sibcall): Add microMIPS support.
16317 (mips_print_operand_punctuation): Support short delay slots and
16318 compact jumps.
16319 (umips_swm_mask, umips_swm_encoding): New.
16320 (umips_build_save_restore): New function.
16321 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
16322 (was_mips16_p): Remove.
16323 (old_compression_mode): New.
16324 (mips_set_compression_mode): New function.
16325 (mips_set_current_function): Add microMIPS support.
16326 (mips_option_override): Likewise.
16327 (umips_save_restore_pattern_p): New function.
16328 (umips_output_save_restore): New function.
16329 (umips_load_store_pair_p_1): New function.
16330 (umips_load_store_pair_p): New function.
16331 (umips_output_load_store_pair_1): New function.
16332 (umips_output_load_store_pair): New function.
16333 (umips_movep_target_p) New function.
16334 (mips_prepare_pch_save): Add microMIPS support.
16335 * config/mips/mips.h (TARGET_COMPRESSION): New.
16336 (TARGET_CPU_CPP_BUILTINS): Update macro
16337 to use new compression flags and to support microMIPS.
16338 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
16339 (MIPS_ARCH_FLOAT_SPEC): Likewise.
16340 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
16341 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
16342 (ASM_SPEC): Support mmicromips and mno-micromips.
16343 (M16STORE_REG_P): New macro.
16344 (MIPS_CALL): Support TARGET_MICROMIPS.
16345 (MICROMIPS_J): New macro.
16346 (mips_base_mips16): Rename this...
16347 (mips_base_compression_flags): ...to this.
16348 (UMIPS_12BIT_OFFSET_P): New macro.
16349 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
16350 (MULTILIB_DIRNAMES): Likewise.
16351
cdebbc6d
JJ
163522013-02-24 Jakub Jelinek <jakub@redhat.com>
16353
16354 PR target/52555
16355 * target-globals.c (save_target_globals): For init_reg_sets and
16356 target_reinit remporarily set this_fn_optabs to this_target_optabs.
16357
18c63565
JG
163582013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
16359
16360 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
16361 * config/aarch64/t-aarch64
16362 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
16363
2194f7a2
VM
163642013-02-22 Vladimir Makarov <vmakarov@redhat.com>
16365
16366 PR inline-asm/56148
16367 * lra-constraints.c (process_alt_operands): Reload operand
16368 conflicting with earlier clobber only if no more other conflicting
16369 operands.
16370
7d613735
JJ
163712013-02-22 Jakub Jelinek <jakub@redhat.com>
16372
16373 PR sanitizer/56393
16374 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
16375 if not linking a shared library.
16376
ac8d93a7
SL
163772013-02-22 Seth LaForge <sethml@google.com>
16378
16379 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
16380
e0237780
GY
163812013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
16382
3fdb53c1
TB
16383 * config/arm/arm.md (split for extendsidi): Update condition.
16384 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
16385 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
16386 (qhs_zextenddi_cstr): Likewise.
e0237780 16387
d7fde18c
JJ
163882013-02-21 Jakub Jelinek <jakub@redhat.com>
16389
be63b77d
JJ
16390 PR middle-end/56420
16391 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
16392 avoid signed wrapping.
16393 (expand_mult): Handle properly multiplication by
16394 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
16395 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
16396 in the compiler if coeff is HOST_WIDE_INT_MIN.
16397 (expand_divmod): Don't make ext_op1 static, change it's type to
16398 uhwi. Avoid undefined behavior in -INTVAL (op1).
16399
d7fde18c
JJ
16400 PR rtl-optimization/50339
16401 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
16402 field.
16403 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
16404 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
16405 into splitting_ashiftrt field.
16406 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
16407 ASHIFTRT.
16408 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
16409 choices.
16410
6aad4455
AH
164112013-02-20 Aldy Hernandez <aldyh@redhat.com>
16412
16413 PR middle-end/56108
16414 * trans-mem.c (execute_tm_mark): Do not expand transactions that
16415 are sure to go irrevocable.
16416
38fe784d
HPN
164172013-02-21 Hans-Peter Nilsson <hp@axis.com>
16418
16419 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
16420 scalars are valid operands.
16421
0fd44da3
MJ
164222013-02-21 Martin Jambor <mjambor@suse.cz>
16423
16424 PR tree-optimization/56310
16425 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
16426 only matching indices and non-negative final offsets.
16427 (intersect_aggregates_with_edge): Pass src_idx to
16428 agg_replacements_to_vector. Pass src_idx insstead of index to
16429 intersect_with_agg_replacements.
16430
7a92038b
MJ
164312013-02-21 Martin Jambor <mjambor@suse.cz>
16432
16433 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
16434 instead of hard-wired defaults.
16435
c0da9c37
MR
164362013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
16437
16438 * doc/invoke.texi (MIPS Options): Update documentation of the
16439 floating-point multiply-accumulate instruction restrictions.
16440
d247ea0c 164412013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
16442
16443 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
16444 asan_shadow_offset on x86_64 linux.
16445
22deefcb
RB
164462013-02-21 Richard Biener <rguenther@suse.de>
16447
16448 PR tree-optimization/56415
16449 Revert
16450 2013-02-11 Richard Biener <rguenther@suse.de>
16451
16452 PR tree-optimization/56273
16453 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
16454 first VRP run.
16455
7bcc6e75
JJ
164562013-02-21 Jakub Jelinek <jakub@redhat.com>
16457
a0ad148f
JJ
16458 PR bootstrap/56258
16459 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
16460 instead of @itemx.
16461
7bcc6e75
JJ
16462 PR inline-asm/56405
16463 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
16464 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
16465
a0a7b611
JH
164662013-02-20 Jan Hubicka <jh@suse.cz>
16467
16468 PR tree-optimization/56265
88b97037
UB
16469 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
16470 when target is referenced for first time.
a0a7b611 16471
c0e50f72
RB
164722013-02-20 Richard Biener <rguenther@suse.de>
16473
16474 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
16475 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
16476 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
16477 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
16478 not return anything.
16479 (rename_ssa_copies): Do not remove unused locals.
16480 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 16481 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
16482 * passes.c (execute_function_todo): Do not schedule unused locals
16483 removal if cleanup_tree_cfg did something.
16484 * tree-ssa-live.c (remove_unused_locals): Dump statistics
16485 about the number of removed locals.
16486
a52ca739
RB
164872013-02-20 Richard Biener <rguenther@suse.de>
16488
16489 PR tree-optimization/56398
88b97037 16490 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 16491
ec9c9d1b
MJ
164922013-02-20 Martin Jambor <mjambor@suse.cz>
16493
16494 PR tree-optimization/55334
16495 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
16496 restricted pointers to arrays.
16497
e91c8ed6 164982013-02-20 Richard Biener <rguenther@suse.de>
88b97037 16499 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
16500
16501 PR tree-optimization/56396
16502 * tree-ssa-ccp.c (n_const_val): New static variable.
16503 (get_value): Return NULL for SSA names we don't have a lattice
16504 entry for.
16505 (ccp_initialize): Initialize n_const_val.
16506 * tree-ssa-copy.c (n_copy_of): New static variable.
16507 (init_copy_prop): Initialize n_copy_of.
16508 (get_value): Return NULL_TREE for SSA names we don't have a
16509 lattice entry for.
16510
3d916479
MJ
165112013-02-20 Martin Jambor <mjambor@suse.cz>
16512
16513 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
16514
71a86758
RB
165152013-02-20 Richard Biener <rguenther@suse.de>
16516
16517 * genpreds.c (write_lookup_constraint): Do not compare first
16518 letter of the constraint again.
16519
79836a12
RB
165202013-02-20 Richard Biener <rguenther@suse.de>
16521
16522 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
16523 and ceil_log2.
16524 (get_use_iv_cost): Terminate hashtable walk when coming across
16525 an empty entry.
16526
bbe4fb2c
IZ
165272013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
16528
16529 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
16530 reassociation for avx2 targets.
16531
a72d8780 165322012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 16533
c77f83d5
EI
16534 * config/microblaze/microblaze.c: microblaze_has_clz = 0
16535 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 16536 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
16537 version and TARGET_PATTERN_COMPARE check
16538 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 16539
a72d8780 165402012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 16541
a72d8780 16542 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
16543 function before branching.
16544
242387fa
AB
165452012-02-19 Andrey Belevantsev <abel@ispras.ru>
16546
16547 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
16548 DUMP_INSN_RTX_UID.
16549 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
16550
b4979ab9
AB
165512012-02-19 Andrey Belevantsev <abel@ispras.ru>
16552
16553 PR middle-end/55889
b4979ab9
AB
16554 * sel-sched.c: Include ira.h.
16555 (implicit_clobber_conflict_p): New function.
16556 (moveup_expr): Use it.
88b97037 16557 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 16558
24d63016
RB
165592013-02-19 Richard Biener <rguenther@suse.de>
16560
16561 PR tree-optimization/56384
16562 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
16563 (vn_hash_type): Split out from ...
16564 (vn_hash_constant_with_type): ... here.
16565 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
16566 (vn_phi_eq): Compare types from vn_phi_s structure.
16567 (vn_phi_lookup): Populate vn_phi_s type.
16568 (vn_phi_insert): Likewise.
16569
a475fd3d
JJ
165702013-02-19 Jakub Jelinek <jakub@redhat.com>
16571
47cc28f5
JJ
16572 PR tree-optimization/56350
16573 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
16574 if haven't found reduction or nested cycle operand, rather than
16575 asserting we must find it.
16576
a475fd3d
JJ
16577 PR tree-optimization/56381
16578 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
16579 to fold_build3.
16580
165812013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
16582 Jakub Jelinek <jakub@redhat.com>
16583
16584 PR target/52555
16585 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
16586 (swap_optab_enable): Same.
16587 (init_all_optabs): Use argument instead of global.
88b97037 16588 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
16589 * expr.h (init_all_optabs): Add argument to prototype.
16590 (TREE_OPTIMIZATION_OPTABS): New.
16591 (save_optabs_if_changed): Protoize.
16592 * optabs.h: Declare this_fn_optabs.
16593 * optabs.c (save_optabs_if_changed): New.
16594 Declare this_fn_optabs.
16595 (init_optabs): Add argument to init_all_optabs() call.
16596 * function.c (invoke_set_current_function_hook): Handle per
16597 function optabs.
16598 * function.h (struct function): New field optabs.
16599 * config/mips/mips.c (mips_set_mips16_mode): Handle when
16600 optimization_current_node has changed.
16601 * target-globals.h (save_target_globals_default_opts): Protoize.
16602 * target-globals.c (save_target_globals_default_opts): New.
16603
3f587ca3
JDA
166042013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16605
16606 PR target/56347
16607 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
16608 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
16609
16610 PR target/56214
16611 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
16612 and HImode, require all displacements to be an integer multiple of
16613 their mode size.
ceaca33e
JDA
16614 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
16615 only allow QImode and HImode when reload is in progress and strict is
16616 true. Likewise for symbolic addresses. Use base14_operand to check
16617 displacements in REG+BASE addresses.
16618
fe0b4796
RB
166192013-02-18 Richard Biener <rguenther@suse.de>
16620
16621 PR tree-optimization/56366
16622 * tree-vect-loop.c (get_initial_def_for_induction): Properly
16623 handle sign-conversion of outer-loop initial induction value.
16624
6aaf596b
RB
166252013-02-18 Richard Biener <rguenther@suse.de>
16626
73db8ff1 16627 PR middle-end/56349
6aaf596b
RB
16628 * cfghooks.c (merge_blocks): If we merge a latch into another
16629 block adjust references to it.
16630 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
16631 (verify_loop_structure): Verify that a recorded latch is in fact
16632 a latch.
16633
5e97dfb6
RB
166342013-02-18 Richard Biener <rguenther@suse.de>
16635
16636 PR tree-optimization/56321
16637 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
16638 order SSA name release and virtual operand unlinking.
16639
825527e8
EI
166402013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
16641
16642 * config/microblaze/microblaze.md (save_stack_block): Define.
16643 (restore_stack_block): Likewise.
16644
debd11d9
EI
166452013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
16646
16647 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
16648 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
16649 * config/microblaze/microblaze.c (microblaze_option_override):
16650 Bail out early for PIC modes when target does not support PIC.
16651
8ec77be0
EI
166522013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
16653
88b97037 16654 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
16655 Replace with a microblaze version.
16656 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 16657 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
16658 microblaze.
16659
b41288b3
JJ
166602013-02-16 Jakub Jelinek <jakub@redhat.com>
16661 Dodji Seketeli <dodji@redhat.com>
16662
16663 PR asan/56330
88b97037 16664 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
16665 (instrument_mem_region_access): Do not forget to always put
16666 instrumentation of the of 'base' and 'base + len' in a "if (len !=
16667 0) statement, even for cases where either 'base' or 'base + len'
16668 are not instrumented -- because they have been previously
16669 instrumented. Simplify the logic by putting all the statements
16670 instrument 'base + len' inside a sequence, and then insert that
16671 sequence right before the current insertion point. Then, to
16672 instrument 'base + len', just get an iterator on that statement.
16673 And do not forget to update the pointer to iterator the function
16674 received as argument.
16675
47918951
VM
166762013-02-15 Vladimir Makarov <vmakarov@redhat.com>
16677
16678 PR rtl-optimization/56348
16679 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
16680
3fb7c699
SB
166812013-02-15 Steven Bosscher <steven@gcc.gnu.org>
16682
16683 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
16684 (clean_graph_dump_file): Pass base to start_graph_dump.
16685
576fe41a
RH
166862013-02-14 Richard Henderson <rth@redhat.com>
16687
16688 PR target/55941
16689 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
16690
bb3accfa
SB
166912013-02-14 Steven Bosscher <steven@gcc.gnu.org>
16692
16693 * collect2-aix.h: Define F_LOADONLY.
16694
03143140
RB
166952013-02-14 Richard Biener <rguenther@suse.de>
16696
16697 PR lto/50494
16698 * varasm.c (output_constant_def_1): Get the decl representing
16699 the constant as argument.
16700 (output_constant_def): Wrap output_constant_def_1.
16701 (make_decl_rtl): Use output_constant_def_1 with the decl
16702 representing the constant.
16703 (build_constant_desc): Optionally re-use a decl already
16704 representing the constant.
16705 (tree_output_constant_def): Adjust.
16706
8fb06726
DS
167072013-02-14 Dodji Seketeli <dodji@redhat.com>
16708
16709 Fix an asan crash
16710 * asan.c (instrument_builtin_call): Really put the length of the
16711 second source argument into src1_len.
16712
c4bfe8bf
JJ
167132013-02-13 Jakub Jelinek <jakub@redhat.com>
16714
16715 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
16716 argument. If it is false, don't create edge from then_bb to
16717 fallthru_bb.
16718 (insert_if_then_before_iter): Pass true to it.
16719 (build_check_stmt): Pass false to it.
16720 (transform_statements): Flush hash table only on extended basic
16721 block boundaries, rather than at the beginning of every bb.
16722 Don't flush hash table on nonfreeing_call_p calls.
16723 * tree-flow.h (nonfreeing_call_p): New prototype.
16724 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
16725
7afe2801
DM
167262013-02-13 David S. Miller <davem@davemloft.net>
16727
16728 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
16729
70cc3288
VM
167302013-02-13 Vladimir Makarov <vmakarov@redhat.com>
16731
16732 PR target/56184
16733 * ira.c (max_regno_before_ira): Move from ...
16734 (ira): ... here.
16735 (fix_reg_equiv_init): Use max_regno_before_ira instead of
16736 vec_safe_length.
16737
6422242b
JJ
167382013-02-13 Jakub Jelinek <jakub@redhat.com>
16739
16740 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
16741
976a81ee
RB
167422013-02-13 Richard Biener <rguenther@suse.de>
16743
16744 PR lto/56295
16745 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
16746 globals in MEM_REFs.
16747
c1874a87
RB
167482013-02-13 Richard Biener <rguenther@suse.de>
16749
16750 * loop-init.c (loop_optimizer_init): Clear loop state when
16751 re-initializing preserved loops.
16752 * loop-unswitch.c (unswitch_single_loop): Return whether
16753 we unswitched the loop. Do not verify loop state here.
88b97037 16754 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 16755
b4ab7d34
KS
167562013-02-13 Kostya Serebryany <kcc@google.com>
16757
88b97037
UB
16758 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
16759 on x86_64 linux.
b4ab7d34
KS
16760 * sanitizer.def: Rename __asan_init to __asan_init_v1.
16761
bdcbe80c
DS
167622013-02-12 Dodji Seketeli <dodji@redhat.com>
16763
16764 Avoid instrumenting duplicated memory access in the same basic block
16765 * Makefile.in (asan.o): Add new dependency on hash-table.h
16766 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
16767 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
16768 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
16769 (free_mem_ref_resources, has_mem_ref_been_instrumented)
16770 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
16771 (get_mem_ref_of_assignment): New functions.
16772 (get_mem_refs_of_builtin_call): Extract from
16773 instrument_builtin_call and tweak a little bit to make it fit with
16774 the new signature.
16775 (instrument_builtin_call): Use the new
16776 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
16777 of is_gimple_builtin_call.
16778 (instrument_derefs, instrument_mem_region_access): Insert the
16779 instrumented memory reference into the hash table.
16780 (maybe_instrument_assignment): Renamed instrument_assignment into
16781 this, and change it to advance the iterator when instrumentation
16782 actually happened and return true in that case. This makes it
16783 homogeneous with maybe_instrument_assignment, and thus give a
16784 chance to callers to be more 'regular'.
16785 (transform_statements): Clear the memory reference hash table
16786 whenever we enter a new BB, when we cross a function call, or when
16787 we are done transforming statements. Use
16788 maybe_instrument_assignment instead of instrumentation. No more
16789 need to special case maybe_instrument_assignment and advance the
16790 iterator after calling it; it's now handled just like
16791 maybe_instrument_call. Update comment.
16792
4861a1f7
RB
167932013-02-13 Richard Biener <rguenther@suse.de>
16794
16795 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
16796 Fix loop discovery code.
16797
1c86bd80
VM
167982013-02-12 Vladimir Makarov <vmakarov@redhat.com>
16799
16800 PR inline-asm/56148
16801 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 16802 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
16803 the operand is not reloaded. Prefer to reload conflicting operand
16804 if earlyclobber and matching operands are the same.
16805
7cbda518
RB
168062013-02-12 Richard Biener <rguenther@suse.de>
16807
16808 PR lto/56297
16809 * lto-streamer-out.c (write_symbol): Do not output symbols
16810 for hard register variables.
16811
e68a4ef6
GJL
168122013-02-12 Georg-Johann Lay <avr@gjlay.de>
16813
16814 PR target/54222
16815 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
16816 (umulsidi3_insn, mulsidi3_insn): New insns.
16817
a72d8780 168182013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
16819
16820 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
16821 (struct tune_params): Add vec_costs field.
16822 * config/arm/arm.c (arm_builtin_vectorization_cost)
16823 (arm_add_stmt_cost): New functions.
16824 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
16825 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
16826 (arm_default_vec_cost): New struct of type cpu_vec_costs.
16827 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
16828 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
16829 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
16830 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
16831
43320568
RB
168322013-02-12 Richard Biener <rguenther@suse.de>
16833
16834 PR lto/56295
16835 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
16836 decls again if possible.
16837
a011aa39
RB
168382013-02-12 Richard Biener <rguenther@suse.de>
16839
16840 PR middle-end/56288
16841 * tree-ssa.c (verify_ssa_name): Fix check, move
16842 SSA_NAME_IN_FREE_LIST check up.
16843
6da26889
JJ
168442013-02-12 Jakub Jelinek <jakub@redhat.com>
16845 Steven Bosscher <steven@gcc.gnu.org>
16846
16847 PR rtl-optimization/56151
16848 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
16849 equal to op0 or op1, and last_insn pattern is CODE operation
16850 with MEM dest and one of the operands matches that MEM.
16851
f80e0faf
ST
168522013-02-11 Sriraman Tallam <tmsriramgoogle.com>
16853
16854 * doc/extend.texi: Document Function Multiversioning and "default"
16855 parameter string to target attribute.
16856 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
16857 target attribute parameter is "default".
16858 (ix86_compare_version_priority): Remove checks for target attribute.
16859 (ix86_mangle_function_version_assembler_name): Change error to sorry.
16860 Remove check for target attribute equal to NULL. Add assert.
16861 (ix86_generate_version_dispatcher_body): Change error to sorry.
16862
6c59ffd1
IS
168632013-02-11 Iain Sandoe <iain@codesourcery.com>
16864 Jack Howarth <howarth@bromo.med.uc.edu>
16865 Patrick Marlier <patrick.marlier@gmail.com>
16866
16867 PR libitm/55693
16868 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
16869 define ENDFILE_SPEC as TM_DESTRUCTOR.
16870 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
16871
a72d8780 168722013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
16873 Jack Howarth <howarth@bromo.med.uc.edu>
16874 Jakub Jelinek <jakub@redhat.com>
16875
16876 PR sanitizer/55617
16877 * config/darwin.c (cdtor_record): Rename ctor_record.
16878 (sort_cdtor_records): Rename sort_ctor_records.
16879 (finalize_dtors): New routine to sort destructors by
16880 priority before use in assemble_integer.
16881 (machopic_asm_out_destructor): Use finalize_dtors if needed.
16882
b63fe007
UB
168832013-02-11 Uros Bizjak <ubizjak@gmail.com>
16884
16885 PR rtl-optimization/56275
16886 * simplify-rtx.c (avoid_constant_pool_reference): Check that
16887 offset is non-negative and less than cmode size before
16888 calling simplify_subreg.
16889
8e89b5b5
RB
168902013-02-11 Richard Biener <rguenther@suse.de>
16891
16892 PR tree-optimization/56264
16893 * cfgloop.h (fix_loop_structure): Adjust prototype.
16894 * loop-init.c (fix_loop_structure): Return the number of
16895 newly discovered loops.
16896 * tree-cfgcleanup.c (repair_loop_structures): When new loops
16897 are discovered, do a full loop-closed SSA rewrite.
16898
b4a4b56d
RB
168992013-02-11 Richard Biener <rguenther@suse.de>
16900
16901 PR tree-optimization/56273
16902 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
16903 first VRP run.
16904 (check_array_ref): Fix missing newline in dumps.
16905 (search_for_addr_array): Likewise.
16906
0c885229
DE
169072013-02-09 David Edelsohn <dje.gcc@gmail.com>
16908
16909 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
16910
59ac9a55
JJ
169112013-02-09 Jakub Jelinek <jakub@redhat.com>
16912
16913 PR target/56256
16914 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
16915
25bb0bb5
VM
169162013-02-08 Vladimir Makarov <vmakarov@redhat.com>
16917
16918 PR rtl-optimization/56246
0c885229 16919 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
16920 reload pseudo.
16921 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
16922 constraints are satisfied.
16923
a698cc03
JL
169242013-02-08 Jeff Law <law@redhat.com>
16925
16926 PR debug/53948
16927 * emit-rtl.c (reg_is_parm_p): New function.
16928 * regs.h (reg_is_parm_p): New prototype.
16929 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
16930 callee-clobbered registers.
16931
e1122ddd
MM
169322013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
16933
16934 PR target/56043
16935 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
16936 If there is no implicit builtin declaration, just return NULL.
16937
19c5f6e6
UB
169382013-02-08 Uros Bizjak <ubizjak@gmail.com>
16939
16940 * config/i386/sse.md (FMAMODEM): New mode iterator.
16941 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
16942 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
16943
2480f2ca 169442013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 16945
2480f2ca
UB
16946 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
16947 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
16948 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
16949
169502013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
16951
16952 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
16953 (microblaze*-*-elf): Likewise.
16954 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
16955 LINK_SPEC.
16956 * config/microblaze/microblaze-c.c: Add builtin defines for
16957 _LITTLE_ENDIAN and _BIG_ENDIAN.
16958 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
16959 add to TARGET_DEFAULT flags.
76ef61fb 16960 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
16961 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
16962 * config/microblaze/microblaze.md: Update extendsidi2 and
16963 movdi_internal instructions to use low-order / high-order reg
16964 print_operands.
16965 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
16966 options and inversemask / mask of LITTLE_ENDIAN.
16967 * config/microblaze/t-microblaze: Expand multilib options to
16968 include mlittle-endian (le) and update exceptions patterns.
16969
600a5961
JJ
169702013-02-08 Jakub Jelinek <jakub@redhat.com>
16971
5df81313
JJ
16972 PR rtl-optimization/56195
16973 * lra-constraints.c (get_reload_reg): Don't reuse regs
16974 if they have smaller mode than requested, if they have
16975 wider mode than requested, try to return a SUBREG.
16976
600a5961
JJ
16977 PR tree-optimization/56250
16978 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
16979 if type is unsigned and code isn't MULT_EXPR.
16980
ff544649
GJL
169812013-02-08 Georg-Johann Lay <avr@gjlay.de>
16982
16983 PR tree-optimization/56064
16984 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
16985 bits according to mode.
16986 * fixed-value.h (fixed_from_double_int)
16987 (const_fixed_from_double_int): Adjust comments.
16988
e45cde98
RB
169892013-02-08 Richard Biener <rguenther@suse.de>
16990
16991 PR lto/56231
16992 * lto-streamer.h (struct data_in): Remove current_file, current_line
16993 and current_col members.
16994 * lto-streamer-out.c (lto_output_location): Stream changed bits
16995 en-block for efficiency.
16996 * lto-streamer-in.c (clear_line_info): Remove.
16997 (lto_input_location): Cache current file, line and column
16998 globally via local statics. Read changed bits en-block.
16999 (input_function): Do not call clear_line_info.
17000 (lto_read_body): Likewise.
17001 (lto_input_toplevel_asms): Likewise.
17002
c1ca73d8
MM
170032013-02-08 Michael Matz <matz@suse.de>
17004
17005 PR tree-optimization/52448
17006 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
17007 (nt_call_phase): New static.
17008 (add_or_mark_expr): Only mark accesses with newer phase than any
17009 call seen.
17010 (nonfreeing_call_p): New.
17011 (nt_init_block): Update nt_call_phase, mark blocks as visited.
17012 (nt_fini_block): Keep blocks marked as visited.
17013 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
17014
57548aa2
RB
170152013-02-08 Richard Biener <rguenther@suse.de>
17016
17017 * ira.c (ira): Free broken dominator information.
17018
8e10366f
UB
170192013-02-08 Uros Bizjak <ubizjak@gmail.com>
17020
17021 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
17022
f64fb0fa
MP
170232013-02-08 Marek Polacek <polacek@redhat.com>
17024
8e10366f 17025 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 17026
0375167b
RB
170272013-02-08 Richard Biener <rguenther@suse.de>
17028
17029 PR middle-end/56181
17030 * cfgloop.h (flow_loops_find): Adjust.
17031 (bb_loop_header_p): Declare.
17032 * cfgloop.c (bb_loop_header_p): New function split out from ...
17033 (flow_loops_find): ... here. Adjust function signature,
17034 support incremental loop structure update.
17035 (verify_loop_structure): Cleanup. Verify a loop is a loop.
17036 * cfgloopmanip.c (fix_loop_structure): Move ...
17037 * loop-init.c (fix_loop_structure): ... here.
17038 (apply_loop_flags): Split out from ...
17039 (loop_optimizer_init): ... here.
17040 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
17041 in incremental mode, only remove dead loops here.
17042
85d768f3
GJL
170432013-02-08 Georg-Johann Lay <avr@gjlay.de>
17044
17045 PR target/54222
17046 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
17047 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
17048 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
17049 (*round<mode>3.libgcc): New insns for fixed-modes.
17050 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
17051 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
17052 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
17053 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
17054 implementations. Define to __builtin_avr_absFX,
17055 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
17056 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
17057 __builtin_avr_countlsFX, respectively.
17058 * config/avr/avr-c.c (target.h): Include it.
17059 (enum avr_builtin_id): New enum.
17060 (avr_resolve_overloaded_builtin): New static function.
17061 (avr_register_target_pragmas): Use it to set
17062 targetm.resolve_overloaded_builtin.
17063 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
17064 tree nodes used by DEF_BUILTIN.
17065 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
17066 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
17067 <AVR_BUILTIN_xxBITS>: Same.
17068
661bc682
RB
170692013-02-08 Richard Biener <rguenther@suse.de>
17070
17071 * cfgloop.c (verify_loop_structure): Properly handle
17072 a loop exiting to another loop header.
17073 * ira-int.h (ira_loops): Remove.
17074 * ira.c (ira_loops): Remove.
17075 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
17076 (do_reload): Use loop_optimizer_finalize.
17077 * ira-build.c (create_loop_tree_nodes): Use get_loops and
17078 number_of_loops to access the loop tree.
17079 (more_one_region_p): Likewise.
17080 (finish_loop_tree_nodes): Likewise.
17081 (rebuild_regno_allocno_maps): Likewise.
17082 (mark_loops_for_removal): Likewise.
17083 (mark_all_loops_for_removal): Likewise.
17084 (remove_unnecessary_regions): Likewise.
17085 (ira_build): Likewise.
17086 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
17087
0d5049b2
RB
170882013-02-08 Richard Biener <rguenther@suse.de>
17089
17090 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
17091 * ipa-pure-const.c (analyze_function): Avoid calling
17092 mark_irreducible_loops twice.
8e10366f 17093 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 17094
499f32e8
DM
170952013-02-07 David S. Miller <davem@davemloft.net>
17096
17097 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
17098 on 'reg'.
17099 * var-tracking.c (vt_add_function_parameter): Test the presence of
17100 HAVE_window_save properly and do not remap argument registers when
17101 we have a leaf function.
17102
6edc3e32
UB
171032013-02-07 Uros Bizjak <ubizjak@gmail.com>
17104
17105 PR bootstrap/56227
17106 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
17107 instead of "ll".
17108 * config/i386/i386.c (ix86_print_operand): Ditto.
17109
5306401f
VM
171102013-02-07 Vladimir Makarov <vmakarov@redhat.com>
17111
6edc3e32 17112 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 17113
027ece11
VM
171142013-02-07 Vladimir Makarov <vmakarov@redhat.com>
17115
17116 PR rtl-optimization/56225
17117 * lra-constraints.c (process_alt_operands): Check that reload hard
17118 reg can hold value for strict_low_part.
17119
f980dfdb
JJ
171202013-02-07 Jakub Jelinek <jakub@redhat.com>
17121
17122 PR debug/56154
17123 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
17124 dwarf2out_end_function.
17125 (in_first_function_p, maybe_at_text_label_p,
17126 first_loclabel_num_not_at_text_label): New variables.
17127 (dwarf2out_var_location): In the first function find out
6edc3e32 17128 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
17129 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
17130 functions.
17131
73dd3123
EB
171322013-02-07 Eric Botcazou <ebotcazou@adacore.com>
17133
17134 PR rtl-optimization/56178
17135 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
17136 SUBREG of a register. Tidy up related block of code.
17137 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
17138 note if the source is a register or a SUBREG of a register.
17139
e3936f47
JJ
171402013-02-07 Jakub Jelinek <jakub@redhat.com>
17141
17142 PR target/56228
17143 * config/rs6000/rs6000.md (ptrm): New mode attr.
17144 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
17145 call_value_indirect_aix<pttrsize>,
17146 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
17147 m in constraints.
17148
d96d674b
MH
171492013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
17150
17151 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
17152 if -bnortl. Convert to strcmp and strncmp.
17153
921f2dee
AM
171542013-02-07 Alan Modra <amodra@gmail.com>
17155
17156 PR target/54009
17157 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
17158 addresses won't wrap when offsetting.
17159 (rs6000_secondary_reload): Provide secondary reloads needed for
17160 wrapping LO_SUM addresses.
17161
d09c7dba
TS
171622013-02-06 Thomas Schwinge <thomas@codesourcery.com>
17163
17164 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
17165 MACH, just __MACH__.
17166
a44bbd48
RB
171672013-02-06 Richard Biener <rguenther@suse.de>
17168
17169 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
17170 instead of calling fix_loop_structure.
17171
6d840d99
JJ
171722013-02-06 Jakub Jelinek <jakub@redhat.com>
17173
17174 PR middle-end/56217
17175 * omp-low.c (use_pointer_for_field): Return false if
17176 lower_send_shared_vars doesn't generate any copy-out code.
17177
0f33baa9
TV
171782013-02-06 Tom de Vries <tom@codesourcery.com>
17179
17180 PR rtl-optimization/56131
17181 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
17182 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
17183 of the label is NULL. Add comment.
17184
11f1e3ab
JJ
171852013-02-05 Jakub Jelinek <jakub@redhat.com>
17186
31502f9f
JJ
17187 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
17188
a74db9bd
JJ
17189 PR sanitizer/55374
17190 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
17191 (STATIC_LIBTSAN_LIBS): Likewise.
17192 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
17193 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
17194 is defined, don't add anything else beyond that.
17195 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
17196 (LINK_COMMAND_SPEC): Use them.
17197
11f1e3ab
JJ
17198 PR tree-optimization/56205
17199 * tree-stdarg.c (check_all_va_list_escapes): Return true if
17200 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
17201 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
17202
14ac6aa2
RB
172032013-02-05 Richard Biener <rguenther@suse.de>
17204
17205 PR tree-optimization/53342
17206 PR tree-optimization/53185
17207 * tree-vectorizer.h (vect_check_strided_load): Remove.
17208 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
17209 not disallow peeling for vectorized strided loads.
17210 (vect_check_strided_load): Make static and simplify.
17211 (vect_analyze_data_refs): Adjust.
17212 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
17213 correctly when vectorizing strided loads.
17214
6f22445a
RB
172152013-02-05 Richard Biener <rguenther@suse.de>
17216
17217 * doc/install.texi: Refer to ISL, not PPL.
17218
39f9719e
JH
172192013-02-05 Jan Hubicka <jh@suse.cz>
17220
ec4224ac
JH
17221 PR tree-optimization/55789
17222 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
17223
172242013-02-05 Jan Hubicka <jh@suse.cz>
17225
17226 PR tree-optimization/55789
39f9719e
JH
17227 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
17228 the dead call anyway.
17229
956d3b33
EB
172302013-02-05 Eric Botcazou <ebotcazou@adacore.com>
17231
17232 PR sanitizer/55374
17233 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
17234
172352013-02-04 Alexander Potapenko <glider@google.com>
17236 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
17237 Jakub Jelinek <jakub@redhat.com>
17238
17239 PR sanitizer/55617
17240 * config/darwin.c (sort_ctor_records): Stabilized qsort
17241 on constructor priority by using original position.
17242 (finalize_ctors): New routine to sort constructors by
17243 priority before use in assemble_integer.
17244 (machopic_asm_out_constructor): Use finalize_ctors if needed.
17245
7ac3af38
JJ
172462013-02-04 Jakub Jelinek <jakub@redhat.com>
17247
17248 PR libstdc++/54314
17249 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
17250 about visibility on artificial decls.
17251 * config/sol2.c (solaris_assemble_visibility): Likewise.
17252
152689dc
KT
172532013-02-04 Kai Tietz <ktietz@redhat.com>
17254
17255 PR target/56186
17256 * config/i386/i386.c (function_value_ms_64): Add additional valtype
17257 argument and improve checking of return-argument types for 16-byte
17258 modes.
17259 (ix86_function_value_1): Add additional valtype argument on call
17260 of function_value_64.
17261 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
17262 handling infunction_value_64 function.
17263
2b5987b5
MGD
172642013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
17265
7ac3af38 17266 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 17267
14597080
RB
172682013-02-04 Richard Biener <rguenther@suse.de>
17269
17270 PR tree-optimization/56188
17271 * tree-ssa-structalias.c (label_visit): Consider case with
17272 initially non-empty points-to set.
17273 (perform_var_substitution): Dump node mapping and clean up.
17274
ed73881e
RG
172752013-02-04 Richard Guenther <rguenther@suse.de>
17276
17277 PR lto/56168
17278 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
17279 node prevail as last resort.
17280 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 17281 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 17282
139a0707
RB
172832013-02-04 Richard Biener <rguenther@suse.de>
17284
17285 PR tree-optimization/56113
17286 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
17287 Merge into ...
17288 (equiv_class_lookup_or_add): ... this.
17289 (label_visit): Adjust and fix error in previous patch.
17290 (perform_var_substitution): Adjust.
17291
50fe8924
OE
172922013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
17293
17294 * config/sh/divtab.c: Fix formatting and comments throughout the file.
17295 * config/sh/sh4-300.md: Likewise.
17296 * config/sh/sh4a.md: Likewise.
17297 * config/sh/constraints.md: Likewise.
17298 * config/sh/sh.md: Likewise.
17299 * config/sh/netbsd-elf.h: Likewise.
17300 * config/sh/predicates.md: Likewise.
17301 * config/sh/sh-protos.h: Likewise.
17302 * config/sh/ushmedia.h: Likewise.
17303 * config/sh/linux.h: Likewise.
17304 * config/sh/sh.c: Likewise.
17305 * config/sh/superh.h: Likewise.
17306 * config/sh/elf.h: Likewise.
17307 * config/sh/sh4.md: Likewise.
17308 * config/sh/sh.h: Likewise.
17309
1a04ac2b
JDA
173102013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17311
17312 * config/pa/constraints.md: Adjust unused letters. Change "T"
17313 constraint to match_test floating_point_store_memory_operand().
17314 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
17315 (base14_operand): New.
17316 (floating_point_store_memory_operand): New.
17317 (integer_store_memory_operand): Revise to use base14_operand and
17318 reg_plus_base_memory_operand.
17319 (move_dest_operand): Allow symbolic_memory_operands.
17320 (symbolic_memory_operand): Check for LO_SOM.
17321 (symbolic_operand): Change default case to break.
17322 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
17323 CONST_DOUBLE values to be reloaded by putting them into memory when
17324 the destination is a floating point register.
17325 (movdf): Remove code to handle CONST_DOUBLE.
17326 (movsf): Likewise.
17327 (reload_indf_r1): New.
17328 (reload_insf_r1): New.
17329 Consistently use "Q" and "T" constraints with integer and floating
17330 point move instructions, respectively.
17331 (movdi): Remove FAIL.
17332 Change predicate for source operand unamed DImode move from
17333 general_operand to move_src_operand.
17334 (umulsidi3): Change predicate for destination operand to
17335 register_operand.
17336 Likewise for similar unamed patterns.
17337 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
17338 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
17339 (hppa_legitimize_address): Simplify mask calculation.
17340 (pa_emit_move_sequence): Revised handling of secondary reloads from
17341 REG+D addresses for floating point loads and stores. Directly handle
17342 loading CONST0_RTX (mode) to a floating point register.
17343 (pa_secondary_reload): Handle reloading DF and SFmode constant values
17344 to floating point registers. Don't restrict secondary reloads to
17345 floating point registers to integer modes. Revise some comments and
17346 cleanup some code.
17347 (TARGET_LEGITIMATE_ADDRESS_P): Define.
17348 (pa_legitimate_address_p): New.
17349 (pa_legitimize_reload_address): New.
17350 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
17351 (STRICT_REG_OK_FOR_BASE_P): New.
17352 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
17353 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
17354
3bf65591
DE
173552013-02-03 David Edelsohn <dje.gcc@gmail.com>
17356 Andrew Dixie <andrewd@gentrack.com>
17357
17358 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
17359 flag set.
17360
c0a8a3e6
RS
173612013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
17362
17363 * expmed.c (extract_bit_field_1): Pass the full width of the
17364 structure to get_best_reg_extraction_insn.
17365
99113dff
DE
173662013-02-01 David Edelsohn <dje.gcc@gmail.com>
17367
17368 PR target/54601
17369 * configure.ac (use_cxa_atexit): Add AIX.
17370 * configure: Regenerate.
17371
17372 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
17373
ddd84654
JJ
173742013-02-01 Jakub Jelinek <jakub@redhat.com>
17375
17376 PR debug/54793
17377 * final.c (need_profile_function): New variable.
17378 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
17379 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
17380 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
17381 notes, targetm.asm_out.function_prologue doesn't emit anything,
17382 HAVE_prologue and profiler should be emitted before prologue,
17383 set need_profile_function instead of emitting it.
17384 (final_scan_insn): If need_profile_function, emit
17385 profile_function on the first NOTE_INSN_BASIC_BLOCK or
17386 NOTE_INSN_FUNCTION_BEG note.
17387
173882013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
17389
17390 * config/rs6000/rs6000.md (smulditi3): New.
17391 (umulditi3): New.
17392
ff2a9d88
RH
17393 * config/alpha/alpha.md (umulditi3): New.
17394
14d52b90
DE
173952013-02-01 David Edelsohn <dje.gcc@gmail.com>
17396
17397 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
17398 (ASM_OUTPUT_ALIGNED_LOCAL): New.
17399
8c7ca45c
RB
174002013-02-01 Richard Biener <rguenther@suse.de>
17401
17402 PR tree-optimization/56113
17403 * tree-ssa-structalias.c (label_visit): Reduce work for
17404 single-predecessor nodes.
17405
9f419393
EB
174062013-02-01 Eric Botcazou <ebotcazou@adacore.com>
17407
17408 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
17409 range isn't testing for zero.
17410
c5f4be84
SB
174112013-01-31 Steven Bosscher <steven@gcc.gnu.org>
17412
17413 PR middle-end/56113
17414 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
17415
dbdbd982
NC
174162013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
17417 Nick Clifton <nickc@redhat.com>
17418
17419 * config/v850/constraints.md (Q): Define as a memory constraint.
17420 * config/v850/predicates.md (label_ref_operand): New predicate.
17421 (e3v5_shift_operand): New predicate.
17422 (ior_operator): New predicate.
17423 * config/v850/t-v850: Add e3v5 multilib.
17424 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
17425 (v850_gen_movdi): Prototype.
17426 * config/v850/v850.c: Add support for e3v5 architecture.
17427 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
17428 TARGET_V850E_UP.
17429 (construct_save_jarl): Add e3v5 long JARL support.
17430 (v850_adjust_insn_length): New function. Adjust length of call
17431 insns when using e3v5 instructions.
17432 (v850_gen_movdi): New function: Generate instructions to move a
17433 DImode value.
17434 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
17435 (CPP_SPEC): Define __v850e3v5__ as appropriate.
17436 (TARGET_USE_FPU): Enable for e3v5.
17437 (CONST_OK_FOR_W): New macro.
17438 (ADJUST_INSN_LENGTH): Define.
17439 * config/v850/v850.md (UNSPEC_LOOP): Define.
17440 (attr cpu): Add v850e3v5.
17441 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
17442 (movdi): New pattern.
17443 (movdi_internal): New pattern.
17444 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
17445 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
17446 (cstoresf4): Likewise.
17447 (cstoredf4): Likewise.
17448 (insv): New pattern.
17449 (rotlso3_a): New pattern.
17450 (rotlsi3_b): New pattern
17451 (rotlsi3_v850e3v5): New pattern.
17452 (doloop_begin): New pattern.
17453 (fix_loop_counter): New pattern.
17454 (doloop_end): New pattern.
17455 (branch_normal): Add e3v5 long branch support.
17456 (branch_invert): Likewise.
17457 (branch_z_normal): Likewise.
17458 (branch_z_invert): Likewise.
17459 (branch_nz_normal): Likewise.
17460 (branch_nz_invert): Likewise.
17461 (call_internal_short): Add e3v5 register-indirect JARL support.
17462 (call_internal_long): Likewise.
17463 (call_value_internal_short): Likewise.
17464 (call_value_internal_long): Likewise.
17465 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
17466 (mloop): New option.
17467 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 17468 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 17469
73861a41
PK
174702013-01-31 Paul Koning <ni1d@arrl.net>
17471
17472 PR debug/55059
17473 PR debug/54508
17474 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
17475 children if parent is a class.
17476 (prune_unused_types_prune): Don't add DW_AT_declaration.
17477
e44978dc
RB
174782013-01-31 Richard Biener <rguenther@suse.de>
17479
17480 PR tree-optimization/56157
17481 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
17482 match up operand with SLP child.
17483
90b10dec
JM
174842013-01-31 Jason Merrill <jason@redhat.com>
17485
04d2dadd 17486 PR debug/54410
90b10dec
JM
17487 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
17488 parameters the first time.
17489 (gen_scheduled_generic_parms_dies): Check completeness here.
17490
6e616110
RB
174912013-01-31 Richard Biener <rguenther@suse.de>
17492
17493 PR middle-end/53073
17494 * common.opt (faggressive-loop-optimizations): New flag,
17495 enabled by default.
17496 * doc/invoke.texi (faggressive-loop-optimizations): Document.
17497 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
17498 infer_loop_bounds_from_undefined by it.
17499
636f59cf
RB
175002013-01-31 Richard Biener <rguenther@suse.de>
17501
17502 PR tree-optimization/56150
17503 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
17504 visit virtual operands.
17505 (find_uses_to_rename_bb): Likewise.
17506
175072013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
17508
17509 PR tree-optimization/56150
17510 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
17511 mixed store non-store stmts.
17512
32887460
JJ
175132013-01-30 Jakub Jelinek <jakub@redhat.com>
17514
e60e09a0
JJ
17515 PR sanitizer/55374
17516 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
17517 LIBASAN_EARLY_SPEC is defined.
17518 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
17519 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
17520 before %o.
17521 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
17522
32887460
JJ
17523 PR c++/55742
17524 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
17525 invalid args instead of ICEing on it.
17526 (ix86_valid_target_attribute_tree): Return error_mark_node if
17527 ix86_valid_target_attribute_inner_p failed.
17528 (ix86_valid_target_attribute_p): Return false only if
17529 ix86_valid_target_attribute_tree returned error_mark_node. Allow
17530 target("default") attribute.
17531 (sorted_attr_string): Change argument from const char * to tree,
17532 merge in all target attribute arguments rather than just one.
17533 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
17534 instead of free. Avoid using strcat.
17535 (ix86_mangle_function_version_assembler_name): Mangle
17536 target("default") as if no target attribute is present. Adjust
17537 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
17538 instead of xmalloc and XDELETEVEC instead of free.
17539 (ix86_function_versions): Don't return true if one of the decls
17540 doesn't have target attribute. If they don't and one of the decls
17541 is DECL_FUNCTION_VERSIONED, report an error. Adjust
17542 sorted_attr_string caller. Use XDELETEVEC instead of free.
17543 (ix86_supports_function_versions): Remove.
17544 (make_name): Fix up formatting.
17545 (make_dispatcher_decl): Remove resolver_name and its initialization.
17546 Avoid leaking memory.
17547 (is_function_default_version): Return true if there is
17548 target("default") attribute rather than no target attribute at all.
17549 (make_resolver_func): Avoid leaking memory.
17550 (ix86_generate_version_dispatcher_body): Likewise.
17551 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
17552 * target.def (supports_function_versions): Remove.
17553 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
17554 * doc/tm.texi: Regenerated.
17555
73cca0cc
VM
175562013-01-30 Vladimir Makarov <vmakarov@redhat.com>
17557
17558 PR rtl-optimization/56144
17559 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
17560 for values with side effects.
17561
11452e7b
RB
175622013-01-30 Richard Biener <rguenther@suse.de>
17563
17564 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
17565 (sparseset_pop): Likewise.
17566 * cfganal.c (compute_idf): Likewise. Increase work-stack size
17567 to be able to use quick_push in the worker loop.
17568
01cb1ef5
MP
175692013-01-30 Marek Polacek <polacek@redhat.com>
17570
17571 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
17572
e892936e
RB
175732013-01-30 Richard Biener <rguenther@suse.de>
17574
17575 PR lto/56147
6edc3e32 17576 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 17577
cc06c01d
GJL
175782013-01-30 Georg-Johann Lay <avr@gjlay.de>
17579
17580 PR tree-optimization/56064
17581 * fixed-value.c (fixed_from_double_int): New function.
17582 * fixed-value.h (fixed_from_double_int): New prototype.
17583 (const_fixed_from_double_int): New static inline function.
17584 * fold-const.c (native_interpret_fixed): New static function.
17585 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
17586 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
17587 (native_encode_fixed): New static function.
17588 (native_encode_expr) <FIXED_CST>: Use it.
17589 (native_interpret_int): Move double_int worker code to...
17590 * double-int.c (double_int::from_buffer): ...this new static method.
17591 * double-int.h (double_int::from_buffer): Prototype it.
17592
d394a308
RB
175932013-01-30 Richard Biener <rguenther@suse.de>
17594
17595 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
17596 New pointer-map and obstack.
17597 (init_alias_vars): Allocate pointer-map and obstack.
17598 (delete_points_to_sets): Free them.
17599 (find_what_var_points_to): Cache result.
17600 (find_what_p_points_to): Adjust for changed interface of
17601 find_what_var_points_to.
17602 (compute_points_to_sets): Likewise.
17603 (ipa_pta_execute): Likewise.
17604
20804d96
RO
176052013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17606
17607 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
17608 * configure: Regenerate.
17609 * config.in: Regenerate.
17610 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
17611 #nobits/#progbits if supported.
17612
a7ad88a2
OE
176132013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
17614
17615 PR target/56121
17616 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
17617 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
17618 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
17619
7af79f92
GY
176202013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
17621
91bfca59
OE
17622 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
17623 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 17624
753bcf7b
GY
176252013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
17626
91bfca59
OE
17627 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
17628 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 17629
8cbc2ea8
GY
176302013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
17631
91bfca59
OE
17632 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
17633 declaration.
17634 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
17635 * config/arm/cortex-a7.md: New bypasses using
17636 arm_mac_accumulator_is_result.
8cbc2ea8 17637
697a3325
GY
176382013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
17639
91bfca59 17640 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 17641 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
17642 (cortex_a7_fpfmad): New reservation.
17643 (cortex_a7_fpmacs): Use ffmas and update required units.
17644 (cortex_a7_fpmuld): Update required units and latency.
17645 (cortex_a7_fpmacd): Likewise.
17646 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
17647 (cortex_a7_neon). Likewise.
17648 (bypass) Update participating units.
697a3325 17649
29637783
GY
176502013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
17651
91bfca59
OE
17652 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
17653 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
17654 from fmac to ffma.
17655 * config/arm/vfp11.md (vfp_farith): Use ffmas.
17656 (vfp_fmul): Use ffmad.
17657 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
17658 (cortex_r4_fmacd): Use ffmad.
17659 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
17660 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
17661 (cortex_a9_fmacd): Use ffmad.
17662 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
17663 (cortex_a8_vfp_macd): Use ffmad.
17664 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
17665 (cortex_a5_fpmacd): Use ffmad.
17666 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
17667 (cortex_a15_vfp_macd): Use ffmad.
17668 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 17669
2ee8a2d5
JM
176702013-01-29 Jason Merrill <jason@redhat.com>
17671
17672 PR libstdc++/54314
17673 * varasm.c (default_assemble_visibility): Don't warn about
17674 visibility on artificial decls.
17675
78d087bc
RB
176762013-01-29 Richard Biener <rguenther@suse.de>
17677
17678 PR tree-optimization/56113
17679 * tree-ssa-structalias.c (equiv_class_lookup): Also return
17680 the bitmap leader.
17681 (label_visit): Free duplicate bitmaps and record the leader instead.
17682 (perform_var_substitution): Adjust.
17683
83ba4d6f
RB
176842013-01-29 Richard Biener <rguenther@suse.de>
17685
17686 PR tree-optimization/55270
17687 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
17688 the CFG, schedule loops for fixup.
17689
66dfe13f
NC
176902013-01-29 Nick Clifton <nickc@redhat.com>
17691
17692 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
17693 SP_REG.
17694
5a579c3b
LE
176952013-01-28 Leif Ekblad <leif@rdos.net>
17696
17697 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
17698 * config/i386/i386.h (TARGET_RDOS): New macro.
17699 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
17700 * config/i386/i386.c (ix86_option_override_internal): For 64bit
17701 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
17702 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
17703 DEFAULT_LARGE_SECTION_THRESHOLD.
17704 * config/i386/i386.md (R14_REG, R15_REG): New constants.
17705 * config/i386/rdos.h: New file.
17706 * config/i386/rdos64.h: New file.
17707
51e44392
BS
177082013-01-28 Bernd Schmidt <bernds@codesourcery.com>
17709
17710 PR other/54814
17711 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
17712 TEST_HARD_REG_BIT.
17713
db1fb332
JJ
177142013-01-28 Jakub Jelinek <jakub@redhat.com>
17715
17716 PR rtl-optimization/56117
17717 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
17718 call cselib_lookup_from_insn on the MEM before calling
17719 add_insn_mem_dependence.
17720
16917761
RB
177212013-01-28 Richard Biener <rguenther@suse.de>
17722
17723 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
17724 to a stmt that didn't have one.
17725 (copy_phis_for_bb): Likewise for PHI arguments.
17726 (copy_debug_stmt): Likewise for debug stmts.
17727
b9fc0497
RB
177282013-01-28 Richard Biener <rguenther@suse.de>
17729
17730 PR tree-optimization/56034
6edc3e32 17731 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
17732 (partition_builtin_p): Adjust.
17733 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
17734 it is the last partition.
17735 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
17736 up the vertex for the definition.
17737 (classify_partition): Classify whether a partition is a
17738 PKIND_REDUCTION, thus has uses outside of the loop.
17739 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
17740 Merge all PKIND_REDUCTION partitions into the last partition.
17741 (tree_loop_distribution): Seed partitions from reductions as well.
17742
aa710d25
JJ
177432013-01-28 Jakub Jelinek <jakub@redhat.com>
17744
0bfbca58
JJ
17745 PR tree-optimization/56125
17746 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
17747 pow(x,c) into sqrt(x) * powi(x, n/2) or
17748 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
17749 optimizing for size.
17750 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
17751 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
17752 integer.
17753
aa710d25
JJ
17754 PR tree-optimization/56094
17755 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
17756 to UNKNOWN_LOCATION while gimplifying expr.
17757
77dc5297
UB
177582013-01-27 Uros Bizjak <ubizjak@gmail.com>
17759
17760 PR target/56114
17761 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
17762 operand 0 in movabs insn template for -masm=intel asm alternative.
17763 (*movabs<mode>_2): Ditto for operand 1.
17764
0bfbca58 177652013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
17766
17767 PR target/54663
17768 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
17769 of microblaze-c.o
17770
0bfbca58 177712013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
17772
17773 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
17774 tm_file.
17775
0bfbca58 177762013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
17777
17778 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
17779 Undef to avoid warning.
17780
478f60f9
MH
177812013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
17782
17783 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
17784 * configure: Regenerate.
17785
d7fa6ee2
JJ
177862013-01-25 Jakub Jelinek <jakub@redhat.com>
17787
17788 PR tree-optimization/56098
17789 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
17790 for stmts with volatile ops.
17791 (cond_store_replacement): Don't optimize if assign has volatile ops.
17792 (cond_if_else_store_replacement_1): Don't optimize if either
17793 then_assign or else_assign have volatile ops.
17794 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
17795 volatile ops.
17796
f8fe87bd
GJL
177972013-01-25 Georg-Johann Lay <avr@gjlay.de>
17798
17799 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
17800
28398d0d
GJL
178012013-01-25 Georg-Johann Lay <avr@gjlay.de>
17802
17803 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
17804 missing ':' in asm example.
17805
b7d7d917
TB
178062013-01-25 Tejas Belagod <tejas.belagod@arm.com>
17807
17808 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
17809 entries into lane and laneq entries.
77dc5297
UB
17810 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
17811 Remove AdvSIMD scalar modes.
b7d7d917
TB
17812 (aarch64_sq<r>dmulh_laneq<mode>): New.
17813 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
17814 modes.
17815 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
17816 builtin implementations to relfect changes in RTL in aarch64-simd.md.
17817 * config/aarch64/iterators.md (VCOND): New.
17818 (VCONQ): New.
17819
556f9906
GJL
178202013-01-25 Georg-Johann Lay <avr@gjlay.de>
17821
17822 PR target/54222
17823 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
17824 Add NULL LIBNAME argument to existing definitions.
17825 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
17826 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
17827 * config/avr/avr.c (DEF_BUILTIN): Same.
17828 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
17829 (avr_expand_builtin): Expand to a vanilla call if a libgcc
17830 implementation is available (DECL_ASSEMBLER_NAME is set).
17831 (avr_fold_absfx): New static function.
17832 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
17833 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
17834 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
17835 AVR_BUILTIN_ABSLLK.
17836 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
17837 (abshk, absk, abslk, absllk): Provide as static inline functions.
17838
1f546bbb
MP
178392013-01-25 Marek Polacek <polacek@redhat.com>
17840
17841 PR tree-optimization/56035
17842 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
17843
7e184bd7
UB
178442012-01-24 Uros Bizjak <ubizjak@gmail.com>
17845
17846 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
17847 (*movtf_internal_rex64): Add (!o,C) alternative
17848 (*movxf_internal_rex64): Ditto.
17849 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
17850
f5ba49ac
SM
178512013-01-24 Shenghou Ma <minux.ma@gmail.com>
17852
17853 * doc/invoke.texi: fix typo.
17854 * doc/objc.texi: fix typo.
17855
a6343728
RS
178562013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
17857
17858 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
17859 for the first two alternatives.
17860
cd030c07
DN
178612013-01-24 Diego Novillo <dnovillo@google.com>
17862
77dc5297 17863 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
17864 (ggc-zone.o): Remove.
17865 * configure.ac: Remove option --with-gc.
17866 * configure: Re-generate.
17867 * doc/install.texi: Remove documentation for --with-gc.
17868 * gengtype.c (write_enum_defn): Remove. Update all users.
17869 (write_Types_process_field): Remove generation of gt_e_* argument.
17870 (output_type_enum): Remove. Update all users.
17871 (write_enum_defn): Remove. Update all users.
17872 (enum alloc_zone): Remove. Update all users.
77dc5297 17873 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
17874 * ggc-common.c (ggc_splay_alloc): Remove first argument.
17875 Update all callers.
17876 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 17877 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
17878 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
17879 Update all users.
aaf1e810 17880 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
17881 (struct alloc_zone): Remove.
17882 (ggc_internal_alloc_zone_stat): Remove.
17883 (ggc_internal_cleared_alloc_zone_stat): Remove.
17884 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
17885 (ggc_pch_count_object): Remove last argument. Update all users.
17886 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
17887 (struct alloc_zone): Remove.
17888 * ggc-zone.c: Remove.
77dc5297 17889 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
17890 (struct alloc_zone): Remove.
17891 (ggc_alloc_typed_stat): Remove.
17892 (ggc_alloc_typed): Remove.
17893 (ggc_splay_alloc): Remove first argument.
17894 (rtl_zone): Remove. Update all users.
17895 (tree_zone): Remove. Update all users.
17896 (tree_id_zone): Remove. Update all users.
17897 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 17898 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 17899 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 17900 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 17901
a861ffa4
GJL
179022013-01-24 Georg-Johann Lay <avr@gjlay.de>
17903
17904 * config/avr/avr.c (avr_out_fract): Make register numbers that
17905 might be outside of source operand signed.
17906
593c0ddd
UB
179072013-01-24 Uros Bizjak <ubizjak@gmail.com>
17908
17909 * config/i386/constraints.md (Yf): New constraint.
17910 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
17911 of f constraint to conditionaly disable x87 register preferences.
17912 (*movdf_internal): Ditto.
17913 (*movsf_internal): Ditto.
17914
e86c0101
SB
179152013-01-24 Steven Bosscher <steven@gcc.gnu.org>
17916
17917 PR inline-asm/55934
17918 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
17919 that have operands with impossible constraints.
17920 Add a FIXME for a speed-up opportunity.
17921 * lra-constraints.c (process_alt_operands): Verify that a class
17922 selected from constraints on asms is valid for the operand mode.
17923 (curr_insn_transform): Remove incorrect comment.
17924
f6fee35f
DE
179252013-01-23 David Edelsohn <dje.gcc@gmail.com>
17926
17927 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
17928 TOC operand is a valid symbol ref in the constant pool.
17929
179302013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 17931
aaf1e810 17932 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 17933
dc62d7d1
GJL
179342013-01-23 Georg-Johann Lay <avr@gjlay.de>
17935
17936 PR target/54222
17937 * config/avr/stdfix.h: New file.
17938 * t-avr (stdfix-gcc.h): New rule to build it.
17939 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
17940
2660d12d
KS
179412013-01-23 Kostya Serebryany <kcc@google.com>
17942
77dc5297
UB
17943 * config/darwin.h: remove dependency on
17944 CoreFoundation (asan on Mac OS).
2660d12d 17945
a70418fc
JJ
179462013-01-23 Jakub Jelinek <jakub@redhat.com>
17947
17948 PR target/49069
17949 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
17950 instead of cmpdi_operand for first comparison operand.
17951 Don't assert that comparison operands aren't both constants.
17952
47876a2a
JW
179532013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
17954
17955 * doc/install.texi (Downloading the Source): Update references to
17956 downloading separate components.
17957
179582013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
17959
17960 * doc/extend.texi (__int128): Improve grammar.
17961
47876a2a 179622013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
17963
17964 PR target/56028
17965 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
17966 alternative to (o,r).
17967 (*movdi_internal_rex64): Remove (!o,n) alternative.
17968 (DImode immediate->memory splitter): Remove.
17969 (DImode immediate->memory peephole2): Remove.
17970 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
17971 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
17972 alternative to (!o,*r).
17973 (*movtf_internal_sse): New pattern.
17974 (*movxf_internal_rex64): New pattern.
17975 (*movxf_internal): Disable for TARGET_64BIT.
17976 (*movdf_internal_rex64): Remove (!o,F) alternative.
17977
3a984f10
JJ
179782013-01-22 Jakub Jelinek <jakub@redhat.com>
17979
502498d5
JJ
17980 PR middle-end/56074
17981 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
17982 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
17983 * tree-vect-loop-manip.c (find_loop_location): Also ignore
17984 stmt locations where LOCATION_LOCUS of the stmt location is
17985 UNKNOWN_LOCATION or BUILTINS_LOCATION.
17986
3a984f10
JJ
17987 PR target/55686
17988 * config/i386/i386.md (UNSPEC_STOS): New.
17989 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
17990 *strsetqi_1): Add UNSPEC_STOS.
17991
fa817f7f
PC
179922013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
17993
17994 PR c++/56067
17995 * doc/invoke.texi: Remove left over -Wsynth example.
17996
8f498c1b
JJ
179972013-01-21 Jakub Jelinek <jakub@redhat.com>
17998
17999 PR tree-optimization/56051
18000 * fold-const.c (fold_binary_loc): Don't fold
18001 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
18002 a narrowing conversion, or widening conversion from signed
18003 to unsigned.
18004
47876a2a 180052013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
18006
18007 PR rtl-optimization/56023
18008 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
18009 dependent on debug instruction.
18010
5b9db1bc
MJ
180112013-01-21 Martin Jambor <mjambor@suse.cz>
18012
18013 PR middle-end/56022
18014 * function.c (allocate_struct_function): Call
18015 invoke_set_current_function_hook earlier.
18016
e8bb7d68
JJ
180172013-01-21 Jakub Jelinek <jakub@redhat.com>
18018
18019 * reload1.c (init_reload): Only initialize reload_obstack
18020 during the first call.
18021
616a4e32
MP
180222013-01-21 Marek Polacek <polacek@redhat.com>
18023
18024 * cfgloop.c (verify_loop_structure): Fix up grammar.
18025
4401981b
YHH
180262013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
18027
18028 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
18029 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
18030
8e87740b
RR
180312013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18032
18033 PR target/56058
18034 * config/arm/marvell-pj4.md: Update copyright year.
18035 Fix up use of alu to alu_reg and simple_alu_imm.
18036
47876a2a 180372013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
18038
18039 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
18040
89d56d79
VM
180412013-01-20 Vladimir Makarov <vmakarov@redhat.com>
18042
18043 PR target/55433
18044 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 18045 insn for secondary memory move when memory mode should be different.
89d56d79 18046
fe603553
JDA
180472013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18048
18049 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
18050 atomic_storedi_1): New patterns.
18051
01284895
VK
180522013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
18053
18054 btver2 pipeline descriptions.
18055 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
18056 descriptions.
18057 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 18058 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
18059 type attributes.
18060 * config/i386/btver2.md: New file describing btver2 pipelines.
18061
5630e3e1
JL
180622013-01-19 Andrew Pinski <apinski@cavium.com>
18063
18064 PR tree-optimization/52631
18065 * tree-ssa-sccvn (visit_use): Before looking up the original
18066 statement, try looking up the simplified expression.
18067
650ae806
AG
180682013-01-19 Anthony Green <green@moxielogic.com>
18069
18070 * config/moxie/moxie.c (moxie_expand_prologue): Set
18071 current_function_static_stack_size.
18072
e300ec2d
JJ
180732013-01-18 Jakub Jelinek <jakub@redhat.com>
18074
18075 PR tree-optimization/56029
18076 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
18077 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
18078
a3d7af04
SS
180792013-01-18 Sharad Singhai <singhai@google.com>
18080
18081 PR tree-optimization/55995
18082 * dumpfile.c (dump_loc): Print location only if available.
18083 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
18084
66aa7879
VM
180852013-01-18 Vladimir Makarov <vmakarov@redhat.com>
18086
18087 PR target/55433
18088 * lra-constraints.c (curr_insn_transform): Reuse original insn for
18089 secondary memory move.
18090 (inherit_reload_reg): Use rclass instead of cl for
18091 check_secondary_memory_needed_p.
18092
3f0fee7b
JJ
180932013-01-18 Jakub Jelinek <jakub@redhat.com>
18094
18095 PR middle-end/56015
18096 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 18097 the case where writing real complex part of target modifies op1.
3f0fee7b 18098
70c67693
JG
180992013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
18100
18101 * config/aarch64/aarch64-simd.md
18102 (aarch64_vcond_internal<mode>): Handle unordered cases.
18103 * config/aarch64/iterators.md (v_cmp_result): New.
18104
df8de9b3
YHH
181052013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
18106 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18107
18108 * config/arm/marvell-pj4.md: New file.
18109 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
18110 * config/arm/arm.md (generic_sched): Add marvell_pj4.
18111 (generic_vfp): Likewise.
18112 * config/arm/arm-cores.def: Add marvell-pj4.
18113 * config/arm/arm-tune.md: Regenerate.
18114 * config/arm/arm-tables.opt: Regenerate.
18115 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
18116 * doc/invoke.texi: Document marvell-pj4.
18117
be30c356
TB
181182013-01-18 Tejas Belagod <tejas.belagod@arm.com>
18119
18120 * config/aarch64/arm_neon.h: Map scalar types to standard types.
18121
0bfbca58 181222013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
18123
18124 PR debug/54114
18125 PR debug/54402
18126 PR debug/49888
18127 * var-tracking.c (negative_power_of_two_p): New.
18128 (global_get_addr_cache, local_get_addr_cache): New.
18129 (get_addr_from_global_cache, get_addr_from_local_cache): New.
18130 (vt_canonicalize_addr): Rewrite using the above. Adjust the
18131 heading comment.
18132 (vt_stack_offset_p): Remove.
18133 (vt_canon_true_dep): Always canonicalize loc's address.
18134 (clobber_overlapping_mems): Make sure we have a MEM.
18135 (local_get_addr_clear_given_value): New.
18136 (val_reset): Clear local cached entries.
18137 (compute_bb_dataflow): Create and release the local cache.
18138 Disable duplicate MEMs clobbering.
18139 (emit_notes_in_bb): Clobber MEMs likewise.
18140 (vt_emit_notes): Create and release the local cache.
18141 (vt_initialize, vt_finalize): Create and release the global
18142 cache, respectively.
1f6bc337 18143 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 18144
0bfbca58 181452013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
18146
18147 PR libmudflap/53359
18148 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
18149 not found in the symtab.
18150
0bfbca58 181512013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 18152
c350ba53 18153 PR debug/56006
3aa03517
AO
18154 PR rtl-optimization/55547
18155 PR rtl-optimization/53827
18156 PR debug/53671
18157 PR debug/49888
18158 * alias.c (offset_overlap_p): New, factored out of...
18159 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
18160 the conservative special case for symbolic constants. Don't
18161 adjust zero sizes on alignment.
18162
c664546f
JL
181632013-01-18 Bernd Schmidt <bernds@codesourcery.com>
18164
18165 PR rtl-optimization/52573
18166 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
18167 REG_UNUSED for the same register.
18168
1bd3f750
MP
181692013-01-17 Richard Biener <rguenther@suse.de>
18170 Marek Polacek <polacek@redhat.com>
18171
18172 PR rtl-optimization/55833
18173 * loop-unswitch.c (unswitch_loops): Move loop verification...
18174 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
18175 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
18176 Set it to true when we're removing a loop from hierarchy tree in
18177 an irreducible region.
18178 (fix_bb_placements): Adjust caller.
18179 (fix_loop_placements): Likewise.
18180
e52a8b71
GJL
181812013-01-17 Georg-Johann Lay <avr@gjlay.de>
18182
18183 * config/avr/builtins.def (DEF_BUILTIN): Factor out
18184 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
18185 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
18186 Remove ID. Adjust comments.
18187 * config/avr/avr-c.c (avr_builtin_name): Remove.
18188 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
18189 * config/avr/avr.c (avr_tolower): New static function.
18190 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
18191 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
18192 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
18193 default expansion.
18194
8386a7ea
JH
181952013-01-17 Jan Hubicka <jh@suse.cz>
18196
610fb637 18197 PR tree-optimization/55273
8386a7ea
JH
18198 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
18199
47876a2a 182002013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
18201
18202 PR target/55981
18203 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
18204 store through atomic_store<mode>_1.
18205 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
18206
8222c37e
MJ
182072013-01-17 Martin Jambor <mjambor@suse.cz>
18208
18209 PR tree-optimizations/55264
18210 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
18211 for virtual methods.
18212 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
18213 virtual methods before inlining is over.
18214 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
18215 virtual functions.
18216 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
18217 non-virtual.
18218
79f01c76
VM
182192013-01-16 Vladimir Makarov <vmakarov@redhat.com>
18220
18221 PR rtl-optimization/56005
18222 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
18223 pending reads for prefetch.
18224
d0b6bb1b
IB
182252013-01-16 Ian Bolton <ian.bolton@arm.com>
18226
aaf1e810 18227 * config/aarch64/aarch64.md
d0b6bb1b
IB
18228 (*cstoresi_neg_uxtw): New pattern.
18229 (*cmovsi_insn_uxtw): New pattern.
18230 (*<optab>si3_uxtw): New pattern.
18231 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
18232 (*<optab>si3_insn_uxtw): New pattern.
18233 (*bswapsi2_uxtw): New pattern.
18234
cb9cf03b
RB
182352013-01-16 Richard Biener <rguenther@suse.de>
18236
18237 * tree-inline.c (tree_function_versioning): Remove set but
18238 never used variable.
18239
2cfc56b9
RB
182402013-01-16 Richard Biener <rguenther@suse.de>
18241
18242 PR tree-optimization/55964
18243 * tree-flow.h (rename_variables_in_loop): Remove.
18244 (rename_variables_in_bb): Likewise.
18245 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
18246 (copy_loop_before): Adjust and delete update-ssa status.
18247 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 18248 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
18249 (rename_variables_in_loop): Remove.
18250 (slpeel_update_phis_for_duplicate_loop): Likewise.
18251 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
18252 use available cfg machinery instead of duplicating it.
18253 Update PHI nodes and perform poor-mans SSA update here.
18254 (slpeel_tree_peel_loop_to_edge): Adjust.
18255
c25a0c60
RB
182562013-01-16 Richard Biener <rguenther@suse.de>
18257
18258 PR tree-optimization/54767
18259 PR tree-optimization/53465
18260 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
18261 (vrp_visit_phi_node): For PHI arguments coming via backedges
18262 drop all symbolical range information.
18263 (execute_vrp): Compute backedges.
18264
04b535af
RB
182652013-01-16 Richard Biener <rguenther@suse.de>
18266
18267 * doc/install.texi: Update CLooG and ISL requirements to
18268 0.18.0 and 0.11.1.
18269
8b0a1e0b
CB
182702013-01-16 Christian Bruel <christian.bruel@st.com>
18271
18272 PR target/55301
18273 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
18274 (broken_move): Handle UNSPECV_SP_SWITCH_B.
18275 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
18276
182772013-01-16 DJ Delorie <dj@redhat.com>
18278
18279 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
18280 (UNSPECV_SP_SWITCH_E): New.
18281 (sp_switch_1): Change to an unspec.
18282 (sp_switch_2): Change to an unspec. Don't use post-inc when we
18283 replace $r15.
18284
182852013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
18286
18287 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
18288 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
18289 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
18290 (expand_mem_thread_fence): Ditto.
18291 (expand_mem_signal_fence): Ditto.
18292 (expand_atomic_load): Ditto.
18293 (expand_atomic_store): Ditto.
18294
0bfbca58 182952013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
18296
18297 PR rtl-optimization/55547
18298 PR rtl-optimization/53827
18299 PR debug/53671
18300 PR debug/49888
18301 * alias.c (memrefs_conflict_p): Set sizes to negative after
18302 AND adjustments.
18303
305e3ac1
JJ
183042013-01-15 Jakub Jelinek <jakub@redhat.com>
18305
18306 PR target/55940
18307 * function.c (thread_prologue_and_epilogue_insns): Always
18308 add crtl->drap_reg to set_up_by_prologue.set, even if
18309 stack_realign_drap is false.
18310
f78ac4f2
JBG
183112013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
18312
18313 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
18314 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
18315 *call): Fix indention.
18316
a78a8cc4
TV
183172013-01-15 Tom de Vries <tom@codesourcery.com>
18318
18319 PR target/55876
18320 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
18321 Update comment.
18322
0e80383f
VM
183232013-01-15 Vladimir Makarov <vmakarov@redhat.com>
18324
305e3ac1 18325 PR rtl-optimization/55153
0e80383f
VM
18326 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
18327
207b5956
MJ
183282013-01-15 Martin Jambor <mjambor@suse.cz>
18329
18330 PR tree-optimization/55920
18331 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
18332 accesses as grp_to_be_debug_replaced.
18333
a7818b54
JJ
183342013-01-15 Jakub Jelinek <jakub@redhat.com>
18335
18336 PR tree-optimization/55920
18337 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
18338 there is non-useless type conversion needed from debug rhs to lhs,
18339 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
18340
b0fe107e
JM
183412013-01-15 Joseph Myers <joseph@codesourcery.com>
18342 Mikael Pettersson <mikpe@it.uu.se>
18343
18344 PR target/43961
18345 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
18346 Thumb.
18347 (ASM_OUTPUT_CASE_LABEL): Remove.
18348 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
18349 * final.c (shorten_branches): Update alignment of labels before
18350 jump tables if CASE_VECTOR_SHORTEN_MODE.
18351
34ab62ee
RB
183522013-01-15 Richard Biener <rguenther@suse.de>
18353
18354 PR bootstrap/55961
18355 * system.h: Do not include gmp.h for building host tools.
18356
783a3a05
RB
183572013-01-15 Richard Biener <rguenther@suse.de>
18358
18359 PR middle-end/55882
18360 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
18361 account for bitpos when computing alignment.
18362
3a579e09
VY
183632013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
18364
18365 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
18366 (ix86_target_macros_internal): Likewise.
18367
18368 * config/i386/i386.c (m_CORE2I7): Removed.
18369 (m_CORE_HASWELL): New macro.
18370 (m_CORE_ALL): Likewise.
18371 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
18372 (initial_ix86_arch_features): Likewise.
18373 (processor_target_table): Initializations for Core avx2.
18374 (cpu_names): New names "core-avx2".
18375 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
18376 PROCESSOR_CORE_HASWELL.
18377 (ix86_issue_rate): New case.
18378 (ia32_multipass_dfa_lookahead): Likewise.
18379 (ix86_sched_init_global): Likewise.
18380
18381 * config/i386/i386.h (TARGET_HASWELL): New macro.
18382 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
18383 (processor_type): New PROCESSOR_HASWELL.
18384
955f5a07
JJ
183852013-01-15 Jakub Jelinek <jakub@redhat.com>
18386
ff784829
JJ
18387 PR tree-optimization/55955
18388 * tree-vect-loop.c (vectorizable_reduction): Give up early on
18389 *SHIFT_EXPR and *ROTATE_EXPR codes.
18390
955f5a07
JJ
18391 PR tree-optimization/48766
18392 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
18393 -ftrapv disable -fwrapv.
18394
aeb8b4e9
GJL
183952013-01-14 Georg-Johann Lay <avr@gjlay.de>
18396
18397 PR target/55974
18398 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
18399 etc. to 1 and not to __flash.
18400 Use LL suffix for __INT24_MAX__ with -mint8.
18401 Use ULL suffix for __UINT24_MAX__ with -mint8.
18402
1c494c6a
GJL
184032013-01-14 Georg-Johann Lay <avr@gjlay.de>
18404
18405 * config/avr/avr-arch.h
18406 (struct base_arch_s): Use typedef avr_arch_t instead.
18407 (struct arch_info_s): Use typedef avr_arch_info_t instead.
18408 (struct mcu_type_s): Use typedef avr_mcu_t instead.
18409 * config/avr/avr.c: Same.
18410 * config/avr/avr-devices.c: Same.
18411 * config/avr/driver-avr.c: Same.
18412 * config/avr/gen-avr-mmcu-texi.c: Same.
18413 * config/avr/avr-mcus.def: Adjust comment.
18414
a50344cb
TB
184152013-01-14 Tejas Belagod <tejas.belagod@arm.com>
18416
88e784e6
UB
18417 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
18418 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 18419
47876a2a 184202013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
18421 Andi Kleen <ak@linux.intel.com>
18422
18423 PR target/55948
18424 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
18425 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
18426 memmodel flag.
18427
00892272
GJL
184282013-01-14 Georg-Johann Lay <avr@gjlay.de>
18429
18430 * config/avr/avr-stdint.h: Remove trailing blanks.
18431 * config/avr/avr-log.h: Same.
18432 * config/avr/avr-arch.h: Same.
18433 * config/avr/avr-devices.c: Same.
18434 * config/avr/avr-dimode.md: Same.
18435 * config/avr/predicates.md: Same.
18436 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 18437
00892272
GJL
18438 * config/avr/avr-protos.h: Same. And:
18439 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
18440 (init_cumulative_args): Rename to avr_init_cumulative_args.
18441 (expand_prologue): Rename to avr_expand_prologue.
18442 (expand_epilogue): Rename to avr_expand_epilogue.
18443 (adjust_insn_length): Rename to avr_adjust_insn_length.
18444 (notice_update_cc): Rename to avr_notice_update_cc.
18445 (final_prescan_insn): Rename to avr_final_prescan_insn.
18446 * config/avr/avr.c: Same.
18447 * config/avr/avr.h: Same.
18448 * config/avr/avr.md: Remove trailing blanks.
18449 (prologue): Use avr_expand_prologue.
18450 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
18451
7bb01996
RB
184522013-01-14 Richard Biener <rguenther@suse.de>
18453
18454 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
18455 verify_location, collect_subblocks): New functions.
18456 (verify_gimple_in_cfg): Verify that locations only reference
18457 BLOCKs in the functions BLOCK tree.
18458
2724573f
RB
184592013-01-14 Richard Biener <rguenther@suse.de>
18460
18461 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
18462 PHI argument.
18463 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
18464 unshare reference.
18465 (insert_out_of_ssa_copy_on_edge): Likewise.
18466 (rewrite_close_phi_out_of_ssa): Likewise.
18467 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
18468 debug expressions.
18469 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
18470 propagated constants.
18471 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
18472 can not be shared.
18473
9a0bbab6
GJL
184742013-01-14 Georg-Johann Lay <avr@gjlay.de>
18475
18476 * config/avr/avr-modes.def: Add GPL copyright notice.
18477
45805f17
UB
184782013-01-13 Uros Bizjak <ubizjak@gmail.com>
18479
18480 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
18481 MEMMODEL_MASK to determine memory model.
18482 (atomic_store<mode>): Ditto from operands[2].
18483 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
18484
9d60be38
JJ
184852013-01-13 Jakub Jelinek <jakub@redhat.com>
18486
18487 PR fortran/55935
45805f17 18488 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
18489 (fold_gimple_assign): Don't call unshare_expr here.
18490 (fold_ctor_reference): Call unshare_expr.
18491
e7f49d92
TG
184922013-01-13 Terry Guo <terry.guo@arm.com>
18493
aaf1e810
EB
18494 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
18495 * doc/fragments.texi: Document MULTILIB_REUSE.
18496 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 18497 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 18498 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
18499 (tmpmultilib4): Ditto.
18500 (multilib_reuse): New multilib argument.
18501
fbd03a27
RS
185022013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
18503
18504 * Makefile.in: Update copyright.
18505
b3681f13
TV
185062013-01-12 Tom de Vries <tom@codesourcery.com>
18507
18508 PR middle-end/55890
18509 * calls.c (expand_call): Check if arg_nr is valid.
18510
3f287e4b
MM
185112013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
18512
18513 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
18514 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
18515 documentation. Add missing '__' in front of
18516 __builtin_ia32_packssdw256.
3f287e4b 18517
1abcd5eb
AK
185182013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18519
18520 PR target/55719
18521 * config/s390/s390.c (s390_preferred_reload_class): Do not return
18522 NO_REGS for larl operands.
18523 (s390_reload_larl_operand): Use s390_load_address instead of
18524 emit_move_insn.
18525
980d0812
RB
185262013-01-11 Richard Biener <rguenther@suse.de>
18527
18528 * tree-cfg.c (verify_node_sharing_1): Split out from ...
18529 (verify_node_sharing): ... here.
18530 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
18531
7cb9fd07
EB
185322013-01-11 Eric Botcazou <ebotcazou@adacore.com>
18533
18534 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
18535 Substitute TREECHECKING.
18536 * configure: Regenerate.
18537 * Makefile.in (TREECHECKING): New.
18538
47876a2a 185392013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
18540
18541 PR tree-optimization/44061
18542 * tree-vrp.c (extract_range_basic): Compute zero as
18543 value-range for __builtin_constant_p of function parameters.
18544
d1e082c2
RS
185452013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
18546
45805f17 18547 Update copyright years.
d1e082c2 18548
f85021b0
VM
185492013-01-10 Vladimir Makarov <vmakarov@redhat.com>
18550
9d60be38 18551 PR rtl-optimization/55672
0160442c
VM
18552 * lra-eliminations.c (mark_not_eliminable): Permit addition with
18553 const to be eliminable.
f85021b0 18554
7a8b1ec4
DE
185552013-01-10 David Edelsohn <dje.gcc@gmail.com>
18556
18557 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
18558 * configure: Regenerate.
18559
ad2e5b71
RB
185602013-01-10 Richard Biener <rguenther@suse.de>
18561
ddf9322d 18562 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 18563
ffc5b2bb
RB
185642013-01-10 Richard Biener <rguenther@suse.de>
18565
18566 PR bootstrap/55792
18567 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
18568 locations for virtual PHI arguments.
18569 (rewrite_update_phi_arguments): Likewise.
18570
e1f674e4
JS
185712013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
18572
18573 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
18574 on to assembler.
18575
a57fc743
JJ
185762013-01-10 Jakub Jelinek <jakub@redhat.com>
18577
18578 PR tree-optimization/55921
18579 * tree-complex.c (expand_complex_asm): New function.
18580 (expand_complex_operations_1): Call it for GIMPLE_ASM.
18581
0ff4390d
AK
185822013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18583
18584 PR target/55718
18585 * config/s390/s390.c (s390_symref_operand_p)
18586 (s390_loadrelative_operand_p): Merge the two functions.
18587 (s390_check_qrst_address, print_operand_address): Add parameters
18588 to s390_loadrelative_operand_p invokation.
18589 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
18590 (s390_reload_larl_operand, s390_secondary_reload): Use
18591 s390_loadrelative_operand_p instead of s390_symref_operand_p.
18592 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
18593
6f557e0e
MS
185942013-01-09 Mike Stump <mikestump@comcast.net>
18595
18596 * dse.c (record_store): Remove unnecessary assert.
18597
7770c9e9
JH
185982013-01-09 Jan Hubicka <jh@suse.cz>
18599
18600 PR tree-optimization/55569
18601 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
18602 * cfgloop.h (scale_loop_profile): Likewise.
18603
a19b1432
JH
186042013-01-09 Jan Hubicka <jh@suse.cz>
18605
18606 PR lto/45375
ddf9322d
UB
18607 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
18608 functions.
a19b1432
JH
18609 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
18610
9a002da8
RS
186112013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
18612
18613 PR middle-end/55114
18614 * expr.h (maybe_emit_group_store): Declare.
18615 * expr.c (maybe_emit_group_store): New function.
18616 * builtins.c (expand_builtin_int_roundingfn): Call it.
18617 (expand_builtin_int_roundingfn_2): Likewise.
18618
511dcace
VM
186192013-01-09 Vladimir Makarov <vmakarov@redhat.com>
18620
e1f2b729 18621 PR rtl-optimization/55829
511dcace
VM
18622 * lra-constraints.c (match_reload): Add code for absent output.
18623 (curr_insn_transform): Add code for reloads of matched inputs
18624 without output.
18625
7b0fe4f4
UB
186262013-01-09 Uros Bizjak <ubizjak@gmail.com>
18627
18628 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
18629 attribute of movddup insn to DF.
18630 (*vec_interleave_lowv2df): Ditto.
18631 (vec_dupv2df): Ditto.
18632
870ca331
JH
186332013-01-09 Jan Hubicka <jh@suse.cz>
18634
18635 PR tree-optimiation/55875
18636 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
18637 EVERY_ITERATION parameter.
7b0fe4f4 18638 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
18639 (idx_infer_loop_bounds): Similarly here.
18640 (n_of_executions_at_most): Simplify
18641 to only test for cases where statement is dominated by the
7b0fe4f4 18642 particular bound; handle correctly the "postdominance" test.
870ca331
JH
18643 (scev_probably_wraps_p): Use max loop iterations info
18644 as a global bound first.
18645
6f575fe4 186462013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
18647 Nick Clifton <nickc@redhat.com>
18648
18649 * config/v850/v850.md (cbranchsf4): New pattern.
18650 (cstoresf4): New pattern.
18651 (cbranchdf4): New pattern.
18652 (cstoredf4): New pattern.
18653 (movsicc): Disallow floating point comparisons.
18654 (cmpsf_le_insn): Fix order of operators.
18655 (cmpsf_lt_insn): Likewise.
18656 (cmpsf_eq_insn): Likewise.
18657 (cmpdf_le_insn): Likewise.
18658 (cmpdf_lt_insn): Likewise.
18659 (cmpdf_eq_insn): Likewise.
18660 (cmpsf_ge_insn): Use LE comparison.
18661 (cmpdf_ge_insn): Likewise.
18662 (cmpsf_gt_insn): Use LT comparison.
18663 (cmpdf_gt_insn): Likewise.
18664 (cmpsf_ne_insn): Delete pattern.
18665 (cmpdf_ne_insn): Delete pattern.
18666 * config/v850/v850.c (v850_gen_float_compare): Use
18667 gen_cmpdf_eq_insn for NE comparison.
18668 (v850_float_z_comparison_operator)
18669 (v850_float_nz_comparison_operator): Move from here ...
18670 * config/v850/predicates.md: ... to here. Move GT and GE
18671 comparisons into v850_float_z_comparison_operator.
18672 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
18673 Delete prototype.
18674 (v850_float_nz_comparison_operator): Likewise.
18675
f0d54148
JDA
186762013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18677
18678 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
18679 with calls to gen_insvsi/gen_insvdi.
18680
8f01beca
VK
186812013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
18682
18683 * config/i386/i386.c (initial_ix86_tune_features): Set up
18684 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
18685
2aa579ad
JJ
186862013-01-09 Steven Bosscher <steven@gcc.gnu.org>
18687 Jakub Jelinek <jakub@redhat.com>
18688
18689 PR tree-optimization/48189
18690 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
18691 If nitercst is 0, don't predict the exit edge.
18692
6edc3e32 186932013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
18694
18695 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
18696 in asm_fprintf with reg_names.
18697 (aarch64_print_operand_address): Likewise.
18698 (aarch64_return_addr): Likewise.
18699 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
18700
f6f94d94
JDA
187012013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18702
18703 * config/pa/pa.h (VAL_U6_BITS_P): Define.
18704 (INT_U6_BITS): Likewise.
18705 * config/pa/predicates.md (uint6_operand): New predicate.
18706 (shift5_operand, shift6_operand): Likewise.
18707 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
18708 arith32_operand.
18709 (lshrdi3): Use shift6_operand.
18710 (shrpsi4, shrpdi4): New insn patterns.
18711 (extzv): Delete expander.
18712 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
18713 predicates in unamed zero extract patterns. Tighten common constraint.
18714 (extv): Delete expander.
18715 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
18716 predicates in unamed sign extract patterns. Tighten common constraint.
18717 (insv): Delete expander.
18718 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
18719 predicates in unamed insert patterns. Tighten common constraint.
18720 Change uint32_operand predicate to uint6_operand predicate in unamed
18721 DImode pattern to insert constant values of type 1...1xxxx.
18722
36b72910
JH
187232013-01-04 Jan Hubicka <jh@suse.cz>
18724
18725 PR tree-optimization/55823
7b0fe4f4
UB
18726 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
18727 issue.
36b72910 18728
47876a2a 187292013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
18730 Uros Bizjak <ubizjak@gmail.com>
18731
18732 PR rtl-optimization/55845
18733 * df-problems.c (can_move_insns_across): Stop scanning at
18734 volatile_insn_p source instruction or give up if
18735 across_from .. across_to range contains any volatile_insn_p
18736 instructions.
18737
4369c11e
TB
187382013-01-08 Tejas Belagod <tejas.belagod@arm.com>
18739
7b0fe4f4
UB
18740 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
18741 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
18742 Declare.
4369c11e 18743 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 18744 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 18745
aeb7e7c1
JJ
187462013-01-08 Jakub Jelinek <jakub@redhat.com>
18747
18748 PR fortran/55341
18749 * asan.c (asan_clear_shadow): New function.
18750 (asan_emit_stack_protection): Use it.
18751
a02ad1aa
TB
187522013-01-08 Tejas Belagod <tejas.belagod@arm.com>
18753
18754 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
18755 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
18756 with tab instead of space.
18757
f90d87f5
NC
187582013-01-08 Nick Clifton <nickc@redhat.com>
18759
18760 * config/rl78/rl78.c (rl78_expand_prologue): Always select
18761 register bank 0 at the start of an interrupt handler.
83ffd964
NC
18762 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
18763 MDBH registers.
f90d87f5 18764
385eb93d
JG
187652013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
18766
18767 * config/aarch64/aarch64-simd.md
18768 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
18769 (aarch64_simd_bsl): Likewise.
18770 (aarch64_vcond_internal<mode>): Likewise.
18771 (vcond<mode><mode>): Likewise.
18772 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
18773 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
18774
4dcd1054
JG
187752013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
18776
18777 * config/aarch64/aarch64-builtins.c
18778 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
18779
4267a4a6
MJ
187802013-01-08 Martin Jambor <mjambor@suse.cz>
18781
18782 PR debug/55579
18783 * tree-sra.c (analyze_access_subtree): Return true also after
18784 potentially creating a debug-only replacement.
18785
5f4e6de3
JJ
187862013-01-08 Jakub Jelinek <jakub@redhat.com>
18787
3138f224
JJ
18788 PR middle-end/55890
18789 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
18790
5f4e6de3
JJ
18791 PR tree-optimization/54120
18792 * tree-vrp.c (range_fits_type_p): Don't allow
18793 src_precision < precision from signed vr to unsigned_p
18794 if vr->min or vr->max is negative.
18795 (simplify_float_conversion_using_ranges): Test can_float_p
18796 against CODE_FOR_nothing.
18797
f3ef18ff
JJ
187982013-01-08 Jakub Jelinek <jakub@redhat.com>
18799 Richard Biener <rguenther@suse.de>
18800
18801 PR middle-end/55851
18802 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
18803 types instead of just INTEGER_TYPE types.
18804
25c210f9
MK
188052013-01-07 Mark Kettenis <kettenis@openbsd.org>
18806
18807 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
18808 TF_SIZE): Define.
f90d87f5 18809
81826a7b
SE
188102013-01-07 Steve Ellcey <sellcey@mips.com>
18811
18812 PR target/42661
18813 * config/mips/mips.opt: Change mad to mmad to match documentation.
18814
35678514
GJL
188152013-01-07 Georg-Johann Lay <avr@gjlay.de>
18816
18817 PR target/55897
18818 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
18819 .progmemx.data now.
18820
e5669488
GJL
188212013-01-07 Georg-Johann Lay <avr@gjlay.de>
18822
18823 PR target/55897
18824 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
18825 (avr_addrspace_t): Add .section_name field.
18826 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
18827 array size.
18828 (avr_addrspace): Same. Initialize .section_name. Remove last
18829 NULL entry. Put __memx into .progmemx.data.
18830 (progmem_section_prefix): Remove.
18831 (avr_asm_init_sections): No need to initialize progmem_section.
18832 (avr_asm_named_section): Use avr_addrspace[].section_name to get
18833 section name prefix.
18834 (avr_asm_select_section): Ditto. And use get_unnamed_section to
18835 retrieve the progmem section.
18836 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
18837 boundary to run over avr_addrspace[].
18838 (avr_register_target_pragmas): Ditto.
18839
656e6f37
JJ
188402013-01-06 Jakub Jelinek <jakub@redhat.com>
18841
18842 * varasm.c (output_constant_def_contents): For asan_protect_global
18843 protected strings, adjust DECL_ALIGN if needed, before testing for
18844 anchored symbols.
18845 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
18846 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
18847 normal decls.
18848 (output_object_block): For asan protected decls, emit asan padding
18849 after their contents.
18850 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
18851 (asan_finish_file): Test it here instead.
18852
6edc3e32
UB
188532013-01-07 Nick Clifton <nickc@redhat.com>
18854 Matthias Klose <doko@debian.org>
18855 Doug Kwan <dougkwan@google.com>
18856 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
18857
18858 PR driver/55470
18859 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
18860
18861 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
18862
18863 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
18864
7b0fe4f4 18865 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
18866
18867 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
18868
2a095093
GJL
188692013-01-07 Georg-Johann Lay <avr@gjlay.de>
18870
f3b503f4 18871 PR target/54461
2a095093
GJL
18872 * doc/install.texi (Cross-Compiler-Specific Options): Document
18873 --with-avrlibc.
18874
383f9b34
TB
188752013-01-07 Tejas Belagod <tejas.belagod@arm.com>
18876
18877 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
18878 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
18879 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
18880 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
18881 vqmovun_high_s64): Fix source operand number and update copyright.
18882
3626621a
RB
188832013-01-07 Richard Biener <rguenther@suse.de>
18884
18885 PR middle-end/55890
18886 * gimple.h (gimple_call_builtin_p): New overload.
18887 * gimple.c (validate_call): New function.
18888 (gimple_call_builtin_p): Likewise.
18889 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
18890 Use gimple_call_builtin_p.
18891 (find_func_clobbers): Likewise.
18892 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
18893 (strlen_optimize_stmt): Likewise.
18894
8b2ea410
JG
188952013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
18896
18897 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
18898 (vld1q_dup_*): Likewise.
18899 (vld1_*): Likewise.
18900 (vld1q_*): Likewise.
18901 (vld1_lane_*): Likewise.
18902 (vld1q_lane_*): Likewise.
18903
9713d329
RB
189042013-01-07 Richard Biener <rguenther@suse.de>
18905
18906 * lto-streamer.h (LTO_minor_version): Bump to 2.
18907
3520f7cc
JG
189082013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
18909
18910 * config/aarch64/aarch64-protos.h
18911 (aarch64_const_double_zero_rtx_p): Rename to...
18912 (aarch64_float_const_zero_rtx_p): ...this.
18913 (aarch64_float_const_representable_p): New.
18914 (aarch64_output_simd_mov_immediate): Likewise.
18915 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
18916 move immediate case.
18917 * config/aarch64/aarch64.c
18918 (aarch64_const_double_zero_rtx_p): Rename to...
18919 (aarch64_float_const_zero_rtx_p): ...this.
18920 (aarch64_print_operand): Allow printing of new constants.
18921 (aarch64_valid_floating_const): New.
18922 (aarch64_legitimate_constant_p): Check for valid floating-point
18923 constants.
18924 (aarch64_simd_valid_immediate): Likewise.
18925 (aarch64_vect_float_const_representable_p): New.
18926 (aarch64_float_const_representable_p): Likewise.
18927 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
18928 (aarch64_output_simd_mov_immediate): New.
18929 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
18930 (*movdf_aarch64): Likewise.
18931 * config/aarch64/constraints.md (Ufc): New.
18932 (Y): call aarch64_float_const_zero_rtx.
18933 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
18934
e167c04d
RB
189352013-01-07 Richard Biener <rguenther@suse.de>
18936
18937 PR tree-optimization/55888
18938 PR tree-optimization/55862
18939 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
18940 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
18941 not if it is contained therein.
18942
0139aaab
GJL
189432013-01-07 Georg-Johann Lay <avr@gjlay.de>
18944
18945 * config/avr/t-avr: Typo.
18946
4a176b23
GJL
189472013-01-07 Georg-Johann Lay <avr@gjlay.de>
18948
18949 PR55243
18950 * config/avr/t-avr: Don't automatically rebuild
18951 $(srcdir)/config/avr/t-multilib
18952 $(srcdir)/config/avr/avr-tables.opt
18953 $(srcdir)/doc/avr-mmcu.texi
18954 (avr-mcus): New phony target to build them on request.
18955 (s-avr-mlib, s-avr-mmcu-texi): Remove.
18956 * avr/avr-mcus.def: Adjust comments.
18957
c7afdc98
UB
189582013-01-07 Uros Bizjak <ubizjak@gmail.com>
18959
18960 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
18961
1ab05c31
RS
189622013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
18963
18964 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
18965
488e3acc
RS
189662013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
18967
18968 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
18969
a89599d2
DE
189702013-01-05 David Edelsohn <dje.gcc@gmail.com>
18971
18972 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
18973 to generate profiling.
18974 * config/rs6000/aix64.h (LIB_SPEC): Same.
18975
70f09188
AP
189762013-01-04 Andrew Pinski <apinski@cavium.com>
18977
18978 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
18979 New function.
18980 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
18981
918d445f
UB
189822013-01-04 Uros Bizjak <ubizjak@gmail.com>
18983
18984 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
18985 unconditionally.
18986 (ix86_expand_move): Ditto.
18987 (ix86_zero_extend_to_Pmode): Ditto.
18988 (ix86_expand_call): Ditto.
18989 (ix86_expand_special_args_builtin): Ditto.
18990 (ix86_expand_builtin): Ditto.
18991
361618ec
RB
189922013-01-04 Richard Biener <rguenther@suse.de>
18993
18994 PR tree-optimization/55862
18995 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
18996 translating them through PHI nodes.
18997
87eab554
MJ
189982013-01-04 Martin Jambor <mjambor@suse.cz>
18999
19000 PR tree-optimization/55755
19001 * tree-sra.c (sra_modify_assign): Do not check that an access has no
19002 children when trying to avoid producing a VIEW_CONVERT_EXPR.
19003
33879b9f
MP
190042013-01-04 Marek Polacek <polacek@redhat.com>
19005
19006 PR middle-end/55859
19007 * opts.c (default_options_optimization): Clarify error message.
19008
3068819a
RB
190092013-01-04 Richard Biener <rguenther@suse.de>
19010
19011 PR middle-end/55863
19012 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
19013 reassociation.
19014
0e4ae794
JDA
190152013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19016
19017 PR target/53789
19018 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
19019 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
19020 references.
0e4ae794 19021
65c88cef
RH
190222013-01-03 Richard Henderson <rth@redhat.com>
19023
19024 * config/i386/i386.c (ix86_expand_move): Always assign to op1
19025 after eliminating TLS symbols.
19026
8ac16127
MG
190272013-01-03 Marc Glisse <marc.glisse@inria.fr>
19028
19029 PR bootstrap/50167
19030 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
19031 * graphite-poly.c (debug_gmp_value): Likewise.
19032
bb664f09
UB
190332013-01-03 Uros Bizjak <ubizjak@gmail.com>
19034
19035 PR target/55712
19036 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
19037 selected code model, define __code_mode_small__, __code_model_medium__,
19038 __code_model_large__, __code_model_32__ or __code_model_kernel__.
19039 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
19040 xchg temporary register with %k. Declare temporary register as
19041 early clobbered.
19042 [__x86_64__]: For medium and large code models, preserve %rbx register.
19043
bcf1ef00
RB
190442013-01-03 Richard Biener <rguenther@suse.de>
19045
0506634a 19046 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
19047 (dump_subscript): Adjust.
19048 (finalize_ddr_dependent): Do not dump redundant info.
19049 (analyze_siv_subscript): Adjust.
19050 (subscript_dependence_tester): Likewise.
19051 (compute_affine_dependence): Likewise.
19052
59fd17e3
RB
190532013-01-03 Richard Biener <rguenther@suse.de>
19054
19055 Revert
19056 2013-01-03 Richard Biener <rguenther@suse.de>
19057
19058 PR tree-optimization/55857
19059 * tree-vect-stmts.c (vectorizable_load): Do not setup
19060 re-alignment for invariant loads.
19061
19062 2013-01-02 Richard Biener <rguenther@suse.de>
19063
19064 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 19065 invariant load do not generate a vector load from the scalar location.
59fd17e3 19066
595c2679
RB
190672013-01-03 Richard Biener <rguenther@suse.de>
19068
19069 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
19070 for not vectorizing.
19071 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
19072 not build INDIRECT_REFs, call get_name once only.
19073 (vect_create_data_ref_ptr): Likewise. Dump base object kind
19074 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
19075
90bb7d7a
RB
190762013-01-03 Richard Biener <rguenther@suse.de>
19077
19078 PR tree-optimization/55857
19079 * tree-vect-stmts.c (vectorizable_load): Do not setup
19080 re-alignment for invariant loads.
19081
f09b77ca
RB
190822013-01-03 Richard Biener <rguenther@suse.de>
19083
19084 PR lto/55848
19085 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
19086 prefer a built-in decl.
19087
3461a16e
JJ
190882013-01-03 Jakub Jelinek <jakub@redhat.com>
19089
df8e2b4f
JJ
19090 * gcc.c (process_command): Update copyright notice dates.
19091 * gcov.c (print_version): Likewise.
19092 * gcov-dump.c (print_version): Likewise.
19093
3461a16e
JJ
19094 PR rtl-optimization/55838
19095 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
19096 iv0.step, iv1.step and step.
19097
8b5546d6
JJ
190982013-01-03 Jakub Jelinek <jakub@redhat.com>
19099 Marc Glisse <marc.glisse@inria.fr>
19100
19101 PR tree-optimization/55832
19102 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
19103 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
19104 integer_{one,zero}_node.
19105
8ab1d2e9
JJ
191062013-01-03 Jakub Jelinek <jakub@redhat.com>
19107
19108 PR debug/54402
19109 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
19110 * var-tracking.c (reverse_op): Don't add reverse ops to
19111 VALUEs that have already
0506634a 19112 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 19113
5b9ad1d4
GP
191142013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
19115
19116 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
19117
e25a6711
TJ
191182013-01-02 Teresa Johnson <tejohnson@google.com>
19119
19120 * dumpfile.c (dump_loc): Print filename with location.
19121 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
19122 new location_t parameter to emit complete unroll message with
19123 new dump framework.
19124 (canonicalize_loop_induction_variables): Compute loops location
19125 and pass to try_unroll_loop_completely.
19126 * loop-unroll.c (report_unroll_peel): New function.
19127 (peel_loops_completely): Use new dump format with location
19128 for main dumpfile message, and invoke report_unroll_peel on success.
19129 (decide_unrolling_and_peeling): Ditto.
19130 (decide_peel_once_rolling): Remove old dumpfile message subsumed
19131 by report_unroll_peel.
19132 (decide_peel_completely): Ditto.
19133 (decide_unroll_constant_iterations): Ditto.
19134 (decide_unroll_runtime_iterations): Ditto.
19135 (decide_peel_simple): Ditto.
19136 (decide_unroll_stupid): Ditto.
19137 * cfgloop.c (get_loop_location): New function.
19138 * cfgloop.h (get_loop_location): Declare.
19139
77878621
ST
191402013-01-02 Sriraman Tallam <tmsriram@google.com>
19141
19142 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
19143 NULL.
19144
9e65d03e
JDA
191452013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19146
19147 PR middle-end/55198
19148 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
19149 BLKmode objects when EXPAND_MEMORY is specified.
19150
6a7da30f
ST
191512013-01-02 Sriraman Tallam <tmsriram@google.com>
19152
19153 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
19154 in loop predicate.
19155 (fold_builtin_cpu): Do not share cpu model decls across statements.
19156
e78167f2
JM
191572013-01-02 Jason Merrill <jason@redhat.com>
19158
19159 PR c++/55804
19160 * tree.c (build_array_type_1): Revert earlier change.
19161
8c075fb4
YZ
191622013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
19163
19164 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
19165 "cortex-a57".
19166 * config/aarch64/aarch64-tune.md: Re-generate.
19167
0682ed3e
RB
191682013-01-02 Richard Biener <rguenther@suse.de>
19169
19170 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 19171 invariant load do not generate a vector load from the scalar location.
0682ed3e 19172
b8f6a302
RB
191732013-01-02 Richard Biener <rguenther@suse.de>
19174
19175 PR bootstrap/55784
19176 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
19177 * configure: Regenerate.
19178
04b80dbb
RS
191792013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
19180
19181 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
19182 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
19183 (expand_builtin_int_roundingfn_2): Keep the original target around
19184 for the fallback case.
19185
635b0b0c
RS
191862013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
19187
19188 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
19189 to be clear for sign changes.
19190
42d57399
JH
191912013-01-01 Jan Hubicka <jh@suse.cz>
19192
19193 * ipa-inline-analysis.c: Fix formatting.
19194
5bb6669d
JJ
191952013-01-01 Jakub Jelinek <jakub@redhat.com>
19196
19197 PR tree-optimization/55831
19198 * tree-vect-loop.c (get_initial_def_for_induction): Use
19199 gsi_after_labels instead of gsi_start_bb.
ad41bd84 19200\f
86a2db33 19201Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
19202
19203Copying and distribution of this file, with or without modification,
19204are permitted in any medium without royalty provided the copyright
19205notice and this notice are preserved.